0

我有一个具有多个特性的 BLE 设备,由此处定义的默认地址寻址

制造商名称字符串、硬件版本字符串、序列号字符串等。

使用 UUID 类,我尝试了几种不同的方法来构建 RxAndroidBle 将接受并从这些特征中读取的 UUID。

我最想工作的一个是:

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

但我只是回到 onError 回调。

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

4

1 回答 1

1

创建 UUID (复制自How to correct 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 是填写您从传感器标签 蓝牙核心规范。为方便起见,标准 UUID 通常使用四个字符标识符来引用。

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

获取 BluetoothGattCharacteristic

在 Android 上,不可能BluetoothGattCharacteristic使用UUID. 尽管如此,仍然可以调用RxBleConnection.discoverServices()并从结果中获取它。

于 2017-05-08T20:35:31.647 回答