RxAndroidBle:读取预定义的 GATT 特性
RxAndroidBle: Reading Pre-Defined GATT Characteristics
我有一个具有多个特性的 BLE 设备,默认地址定义为 here
制造商名称字符串、硬件版本字符串、序列号字符串等内容
使用 UUID class 我尝试了几种不同的方法来构建 RxAndroidBle 会接受并从这些特征中读取的 UUID。
我觉得最有用的是这个:
UUID GATT_DSR1_MANUFACTURER_NAME = new UUID(0L, 0x2A29L);
但我刚刚返回错误回调。
RxBleConnection.readCharacteristic 只接受 UUID 或使用 UUID 创建的 BluetoothGattCharacteristic...
创建 UUID
(从 复制)
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 Bluetooth Core 规范中获得的四个字符的位置。为方便起见,标准 UUID 通常使用四个字符的标识符来引用。
你的0x2A29L
代表"2A29"
字符串作为xxxx。
获取BluetoothGattCharacteristic
在 Android 上,无法创建带有 UUID
的工作 BluetoothGattCharacteristic
。仍然可以调用 RxBleConnection.discoverServices()
并从结果中获取它。
我有一个具有多个特性的 BLE 设备,默认地址定义为 here
制造商名称字符串、硬件版本字符串、序列号字符串等内容
使用 UUID class 我尝试了几种不同的方法来构建 RxAndroidBle 会接受并从这些特征中读取的 UUID。
我觉得最有用的是这个:
UUID GATT_DSR1_MANUFACTURER_NAME = new UUID(0L, 0x2A29L);
但我刚刚返回错误回调。
RxBleConnection.readCharacteristic 只接受 UUID 或使用 UUID 创建的 BluetoothGattCharacteristic...
创建 UUID
(从
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 是填写您从SensorTagBluetooth Core 规范中获得的四个字符的位置。为方便起见,标准 UUID 通常使用四个字符的标识符来引用。
你的0x2A29L
代表"2A29"
字符串作为xxxx。
获取BluetoothGattCharacteristic
在 Android 上,无法创建带有 UUID
的工作 BluetoothGattCharacteristic
。仍然可以调用 RxBleConnection.discoverServices()
并从结果中获取它。