我正在开发 2 个 Android BLE 应用程序。一个应用程序将充当外围角色,另一个应用程序将充当中心角色。在外围应用上,有一个带有 PROPERTY_WRITE
和 PERMISSION_WRITE_ENCRYPTED
的加密特征。
中央应用程序能够连接到外围设备并发现其服务。中央第一次尝试写入加密特征时,系统开始绑定(bind)过程,并出现输入 PIN 的对话框。正确输入PIN后,即可成功写入特征。如果中央设备与外围设备断开连接然后尝试重新连接,则会短暂建立连接,然后断开连接。外围设备收到 onConnectionStateChange
回调,状态为 STATE_CONNECTED
然后立即再次调用,状态为 STATE_DISCONNECTED
。
除非我手动取消设备配对(从蓝牙设置),然后再次启动连接过程,否则中央设备无法连接到外围设备。
我已经尝试过这个解决方案,但它对我不起作用。 BLE Device Bonding Remove Automatically in Android
这两个应用程序都在运行 Android 5 的设备上运行。
最佳答案
此问题似乎已在 Android 5.1.1 中得到解决。最初,我在运行 Android 5.0.2 的 Samsung Galaxy Tab A 上运行外围应用程序。我切换到运行 5.1.1 和 6.0.1 的 Nexus 9,没有遇到上述问题。
关于Android BLE 在绑定(bind)后断开连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35046084/