Android How to read BLE properties Readable Writable Notifiable GATT Characteristics

前端 未结 2 1530
春和景丽
春和景丽 2021-02-14 02:09

How to read BluetoothGattCharacteristic properties like is characteristic Readable, Writable or Notifiable.

相关标签:
2条回答
  • 2021-02-14 02:48

    I ran into the similar problem where the sample code ONLY works when the characteristic is READ because of the operator "|". If the characteritic is of other types such as Notification or Write, the code will always set it sup as READ. The correct code should be as the following:

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

    (...Continue with other cases)

    Again, the google sample code is NOT correct.

    David

    0 讨论(0)
  • 2021-02-14 03:07
        /**
         * @return Returns <b>true</b> if property is writable
         */
        public static boolean isCharacteristicWritable(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 isCharacteristicReadable(BluetoothGattCharacteristic pChar) {
            return ((pChar.getProperties() & BluetoothGattCharacteristic.PROPERTY_READ) != 0);
        }
    
        /**
         * @return Returns <b>true</b> if property is supports notification
         */
        public boolean isCharacteristicNotifiable(BluetoothGattCharacteristic pChar) {
            return (pChar.getProperties() & BluetoothGattCharacteristic.PROPERTY_NOTIFY) != 0;
        }
    
    0 讨论(0)
提交回复
热议问题