我有以下问题 - 我必须在我的应用程序工作时动态更改我的特征 (BluetoothGattCharacteristic) 中的描述符 (BluetoothGattDescriptor)。
不幸的是,来自 BluetoothGattServer 的函数 notifyCharacteristicChanged() 仅更新特征的值(在 Andoird 源中查找此函数 - https://github.com/android/platform_frameworks_base/blob/master/core/java/android/bluetooth/BluetoothGattServer.java ),它会忽略描述符。
我的描述符只读取一次 - 建立连接时。但我想动态地改变它,每次重新连接都不是这里的选择。
添加两个具有相同 UUID 但描述符不同的服务或特征并不能解决问题 - 无法区分它们。
有人遇到过类似的问题吗?
这是代码:
BluetoothGattCharacteristic bc = mBluetoothGattServer.getService(service).getCharacteristic(characteristic);
bc.setValue(data);
bc.getDescriptor(descriptor).setValue(new byte[]{0, 0}); <- no effect here
mBluetoothGattServer.notifyCharacteristicChanged(connectedDevice, bc, false);
感谢您的任何建议!