Android Cómo leer las propiedades de BLE Readable Writable Notifiable GATT Características

Cómo leer las características de BluetoothGattCharacteristic como es característica Readable , Writable o Notifiable .

  /** * @return Returns <b>true</b> if property is writable */ public static boolean isCharacteristicWriteable(BluetoothGattCharacteristic pChar) { return (pChar.getProperties() & (BluetoothGattCharacteristic.PROPERTY_WRITE | BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE)) != 0; } /** * @return Returns <b>true</b> if property is Readable */ public static boolean isCharacterisitcReadable(BluetoothGattCharacteristic pChar) { return ((pChar.getProperties() & BluetoothGattCharacteristic.PROPERTY_READ) != 0); } /** * @return Returns <b>true</b> if property is supports notification */ public boolean isCharacterisiticNotifiable(BluetoothGattCharacteristic pChar) { return (pChar.getProperties() & BluetoothGattCharacteristic.PROPERTY_NOTIFY) != 0; } 

Corrí en el problema similar donde el código de la muestra SOLAMENTE trabaja cuando la característica es LEÍDO debido al operador "|". Si la característica es de otros tipos como Notificación o Escribir, el código siempre lo configurará como READ. El código correcto debe ser como el siguiente:

 if((charaProp & BluetoothGattCharacteristic.PROPERTY_READ) > 0){ } else if(charaProp | BluetoothGattCharacteristic.PROPERTY_NOTIFICATION) > 0){ } 

(… Continuar con otros casos)

Una vez más, el código de ejemplo de google no es correcto.

David

  • StartLeScan con 128 UUIDs de bits no funciona en la implementación BLE de Android nativa
  • ¿Tiene la naturaleza nativa de sincronización BLE GATT de implementación de Android?
  • Lectura de múltiples características de un dispositivo BLE de forma sincrónica (método recomendado para Android)
  • BluetoothGatt que muestra 10.000 características idénticas para el servicio
  • BLE GATT onCharacteristicChanged no se llama después de suscribirse a la notificación
  • BluetoothGatt: la negociación de nuevos MTU tiene éxito pero el nuevo tamaño no se puede utilizar (diferencia de 3 bytes)
  • Error Android Bluetooth LE: Error al registrar la devolución de llamada
  • Cambio de tiempo de gatt de bajo consumo de energía de bluetooth o descarga de flujo de lectura para detectar el evento de desconexión más rápido
  • Android BluetoothGatt - estado 133 - registro de devolución de llamada
  • Android BLE 4.3 onDescriptorWrite devuelve el estado 128 al habilitar la notificación de características
  • Desactivar con fuerza el dispositivo BLE conectado a la aplicación de Android activa onConnectionStateChange con el estado 8
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.