关于使用新的android BLE 4.3启用特性的问题:
我没有收到来自BLE设备的任何通知,尽管我使用队列异步地逐个启用了特征通知。
我还用ENABLE_NOTIFICATION_VALUE编写了UUID为"00002902-0000-1000-8000-00805f9b34fb“的描述符。
我遵循了来自Google sdk文档的建议,以及来自各种论坛的建议。
顺便说一句,我在"onDescriptorWrite“上得到status = 128。你知道这种状态意味着什么吗?
我通过谷歌代码,没有看到任何关于这方面的信息。即使是源代码也没有说明这种状态是如何设置的。
当您为正文媒体设备启用通知时,请让我知道您是否遇到过这种情况。有时,我会在描述符写入时得到状态133。我使用最新的Nexus 7进行测试。
发布于 2013-10-31 21:26:58
我遇到了同样的问题,并通过禁用和重新启用蓝牙接口解决了这个问题。
Android BLE堆栈似乎仍然不成熟,并且存在不稳定问题。
发布于 2015-01-29 10:32:08
此错误可能与Android操作系统设置的最大阈值有关。
#define BTA_GATTC_NOTIF_REG_MAX 15
- for 4.3 max number of notification/indication is 4
- for 4.4 max number of notification/indication is 7
- for 5.0 max number of notification/indication is 15
https://groups.google.com/forum/#!topic/android-platform/FNHO5KB4sKI
发布于 2017-05-27 10:27:18
非常晚的应答,但对于在gatt.writedescriptor()
呼叫中遇到状态128 (GATT_NO_RESOURCES
)的任何人来说,这可能是很有价值的。
在我的例子中,当试图为需要通过ENABLE_INDICATION_VALUE
订阅指示的特性编写一个值为ENABLE_NOTIFICATION_VALUE
的描述符时,就会出现状态128。
因此,不是
BluetoothGattDescriptor descriptor = bluetoothGattCharacteristic.getDescriptor(DESCRIPTOR_UUID);
descriptor.setValue(ENABLE_NOTIFICATION_VALUE);
mGatt.writeDescriptor(descriptor);
去找
BluetoothGattDescriptor descriptor = bluetoothGattCharacteristic.getDescriptor(DESCRIPTOR_UUID);
descriptor.setValue(ENABLE_INDICATION_VALUE);
mGatt.writeDescriptor(descriptor);
已修复此问题。我假设反过来也会产生相同的错误状态128。
https://stackoverflow.com/questions/18450591
复制相似问题