从低功耗蓝牙设备读取流数据
Reading stream data from Bluetooth Low Energy device
我在使用 Bluetooth Low Energy on Android. I have closely done the guide I linked, as well as checked the full example code 时遇到了一些困难。我有一个 BLE 设备,我需要连接它并从中检索数据帧。文档在某一点指示
Discover/Enable service: Service UUID UUID1
, Characteristic UUID UUID2
正确执行此操作后,设备应开始流式传输以特定方式格式化的 20 字节帧。
搜索设备、连接到设备并发现设备上的服务我都没有问题。但后来我被困住了。要获得服务,BluetoothGatt
's method getServices()
is called. This returns a list of BluetoothGattService
's, which on their part also contain a list of BluetoothGattCharacteristic
's。显然BluetoothGattService
的UUID必须等于提供的UUID1,BluetoothGattCharacteristic
的UUID等于UUID2。但是我不知道如何'enable'这个具有某些特征的服务。
我的文档也没有提到描述符。我检查过 UUID2
特性中只有一个描述符。所以现在我拥有了可能需要的一切——服务 UUID、特征 UUID 和描述符……但是我该如何读取数据?
您可以遍历所有找到的特征并获取具有 UUID1 和 UUID2 的 BluetoothGattCharacteristic 对象。使用 "UUID.fromString()" 将表示 UUID 的字符串转换为 UUID 对象,然后可以与 ".equals" 一起使用以与 "characteristic.getUuid()".
进行比较
如果我没听错的话,你想读取某个特征的一些数据。当您在 BluetoothDevice 上调用 "connectGatt" 时,您会得到一个 "BluetoothGatt" 类型的对象。在发现服务和特征后使用此 gatt 对象调用 "readCharacteristic()",将所需的 BluetoothCharacteristic 作为参数传递。
我希望我能提供帮助,让我知道我是否应该澄清我的答案
林纳德
我在使用 Bluetooth Low Energy on Android. I have closely done the guide I linked, as well as checked the full example code 时遇到了一些困难。我有一个 BLE 设备,我需要连接它并从中检索数据帧。文档在某一点指示
Discover/Enable service: Service UUID
UUID1
, Characteristic UUIDUUID2
正确执行此操作后,设备应开始流式传输以特定方式格式化的 20 字节帧。
搜索设备、连接到设备并发现设备上的服务我都没有问题。但后来我被困住了。要获得服务,BluetoothGatt
's method getServices()
is called. This returns a list of BluetoothGattService
's, which on their part also contain a list of BluetoothGattCharacteristic
's。显然BluetoothGattService
的UUID必须等于提供的UUID1,BluetoothGattCharacteristic
的UUID等于UUID2。但是我不知道如何'enable'这个具有某些特征的服务。
我的文档也没有提到描述符。我检查过 UUID2
特性中只有一个描述符。所以现在我拥有了可能需要的一切——服务 UUID、特征 UUID 和描述符……但是我该如何读取数据?
您可以遍历所有找到的特征并获取具有 UUID1 和 UUID2 的 BluetoothGattCharacteristic 对象。使用 "UUID.fromString()" 将表示 UUID 的字符串转换为 UUID 对象,然后可以与 ".equals" 一起使用以与 "characteristic.getUuid()".
进行比较如果我没听错的话,你想读取某个特征的一些数据。当您在 BluetoothDevice 上调用 "connectGatt" 时,您会得到一个 "BluetoothGatt" 类型的对象。在发现服务和特征后使用此 gatt 对象调用 "readCharacteristic()",将所需的 BluetoothCharacteristic 作为参数传递。
我希望我能提供帮助,让我知道我是否应该澄清我的答案
林纳德