我正在开发一个通过蓝牙连接到外部设备的Android应用程序。这款外置设备有两种工作方式:使用经典蓝牙或BLE。只能选择其中一个。
使用任何蓝牙版本连接并绑定到设备后,我必须在X描述符中启用通知。这是主要目标。
假设我之前使用经典蓝牙绑定了设备。 之后,如果我将设备的协议从经典的blueetoth更改为BLE,并尝试连接,绑定和启用通知,则最后一步不会改变任何内容。
我认为Android知道该设备之前使用经典蓝牙绑定,因此步骤未被执行。出于这个原因,“writeDescriptor”函数没有改变任何东西,因为设备需要被绑定才能执行该任务。但是,我正在按照我的预期获得GATT_SUCCESS状态代码而不是GATT_WRITE_NOT_PERMITTED。
是否可以强制粘合过程?我使用了Nordic的nRF Connect,在启用CCCD后,绑定过程开始了,这就是我需要的。
编辑:我尝试使用Android 7.0设备并且可以正常运行,因此问题似乎与Android版本有关。