我遇到Android BLE堆栈导致的随机断开连接问题。
在致电device.connectGatt
后,我在onConnectionStateChange
方法中收到状态为133的断开连接。
我已经在运行各种Android版本的多个设备上对此进行了测试,并且它在大多数设备上都会发生。 (或多或少)
我读到了其他情况,其中这种行为似乎是由太多请求或错误的注册指示引起的,但在我的情况下,在断开连接之前甚至没有活动连接。此外,除了在发生这种情况之前将连接请求发送到设备之外,我确定没有别的。
希望有人能帮助我。
答案 0 :(得分:0)
对“旧”Android版本的BLE支持可能非常危险,并且BLE机制不容易掌握。
我和你一样有同样的问题。我目前正在使用RxAndroidBle,但它基本上是OS API的包装器,并且非常方便了工作,因此我推荐它。
处理BLE时必须记住一些事项:
- 一次一个命令
- 始终关闭连接
在旧版本中,当您不扫描时,在尝试连接设备时,必须(非常神秘地)将boolean autoConnect
参数设置为true。
我刚刚无法在我的BLE设备上连接Android< 6,设置这个参数,并且发生了魔法。