Android如何阅读BLE属性可读写可通报的GATT特性

时间:2014-01-23 06:26:44

标签: android bluetooth-lowenergy gatt characteristics

如何阅读BluetoothGattCharacteristic属性,例如特色ReadableWritableNotifiable

2 个答案:

答案 0 :(得分:13)

    /**
     * @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;
    }

答案 1 :(得分:0)

由于操作员&#34; |&#34;我遇到了类似的问题,其中示例代码仅在特征为READ时起作用。如果特征属于其他类型,例如Notification或Write,则代码将始终将其设置为READ。正确的代码应如下所示:

if((charaProp & BluetoothGattCharacteristic.PROPERTY_READ) > 0){ 

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

(......继续其他案例)

同样,谷歌示例代码不正确。

大卫