我有一个与BLE设备保持永久连接的应用程序。我正在使用RxAndroidBle来简化BLE部分。
我必须告知BLE设备与我的接近程度,因此我必须获取RSSI并将其发送。通过扫描的RSSI并不是解决方案,我们无法每10秒断开/重新连接一次,这对电池消耗非常不利。
因此,唯一的方法是使用RxAndroidBle库中的“ readRemoteRssi” Gatt函数或readRssi()。
一开始它运行良好,但是我的手机随机变了“砖头”,并且readRemoteRssi()不再起作用(在BLE设备端进行了检查,我们看不到智能手机发出的任何请求)。我调用了readRemoteRssi函数,但从未触发过回调。但是连接,读/写/通知,如果其他一切正常...
解决此“僵化”问题的唯一解决方案是重置智能手机的连接设置(重新启动,开/关BT,刷新Gatt堆栈,什么都不起作用)。
我在所有开发手机,Nexus 6,三星A3,华为p20 ...所有Android 7+上都遇到了问题。 我尝试了一切,我得到了一个空的应用程序,它与GATT SDK进行了连接+ readRemoteRSSI,我还有另一个空的应用程序,该应用程序具有相同的场景,但具有RxAndroidBle。重置连接后,它们都可以正常工作,但是由于我忽略了智能手机“变砖”的原因。我敢肯定,如果我启动NrfConnect,智能手机将立即“变砖” ...
有人遇到这个问题吗?我不知道这些功能可以做什么...