RxAndroidBle:读取预定义的GATT特征

时间:2017-05-02 19:10:39

标签: bluetooth-lowenergy gatt characteristics rxandroidble

我有一个具有多个特征的BLE设备,默认地址为here

制造商名称字符串,硬件修订字符串,序列号字符串等等。

使用UUID类我尝试了几种不同的方法来构造一个RxAndroidBle可以接受并读取这些特征的UUID。

我最喜欢的那个是:

UUID GATT_DSR1_MANUFACTURER_NAME = new UUID(0L, 0x2A29L);

但我刚回到onError回调。

RxBleConnection.readCharacteristic仅接受使用UUID创建的UUID或BluetoothGattCharacter ......

1 个答案:

答案 0 :(得分:1)

创建UUID (从How to correctly use UUID.fromString method?复制)

在BLE规范中,有两种UUID。

  • 完全限定128位长,通常为非标准功能的BLE设备的特定供应商分配:UUID.fromString(“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”);
  • 同样完全限定(但由标准定义)具有相同前缀和后缀的UUID: UUID.fromString("F000xxxx-0451-4000-B000-000000000000"); UUID.fromString("0000xxxx-0000-1000-8000-00805f9b34fb") 其中xxxx是地方填写从 SensorTag 蓝牙核心规范中获得的四个字符。为方便起见,标准UUID通常用四个字符标识符引用。

您的0x2A29L代表"2A29"字符串为xxxx。

获取BluetoothGattCharacteristic

在Android上,无法使用BluetoothGattCharacteristic创建有效的UUID。仍然可以调用RxBleConnection.discoverServices()并从结果中获取它。