我是 Android BLE 的新手,所以我的问题在某种程度上可能不正确或幼稚。如果是这种情况,请向我解释我错在哪里,并请告诉我管理这种情况的正确方法。
场景如下:我的 Android 应用程序与 BLE 设备通信,发送命令并使用 BLE 特性从设备获取答案。
顺序是:
- 设备唤醒应用(
onConnectionStateChange
方法被调用) - 我的应用程序在特征中写入命令(我
writeCharacteristic
称将命令放入value
参数中)。 - 设备将命令的答案发送回我的应用程序(该
onCharacteristicChanged
方法被触发并且value
参数包含答案)
唤醒应用程序后,设备不会执行任何操作,直到通过writeCharacteristic
. 设备接受不同的命令。
到目前为止一切都很好,但最近我开发了第二个不同的应用程序来与同一设备通信。
当我在同一部 Android 手机上运行这两个应用程序时,一个应用程序向设备发送命令,两个应用程序都会收到响应!当然,未发送命令的应用程序会收到意外的答案并进入意外状态。
好的,知道问题我可以修改我的两个应用程序来处理这种情况,但问题是:当同一设备中的两个应用程序与同一 BLE 设备通信时,这种行为是否正常?
有没有办法让应用程序与 BLE 设备建立通信通道,以避免向除发送请求的应用程序之外的任何其他应用程序发送特定命令的响应?
我的猜测是,这writeCharacteristic
不是onNotificationChanged
这种通信的正确功能,但在这种情况下,哪些是替代方案?