奇怪的 BLE 行为 Android

Weird BLE behaviour Android


我正在尝试开发一个应用程序,通过 BLE 连接到我来自德克萨斯州的 CC2650 传感器标签。
我能够使用 GATT 协议连接到我的标签,问题是如果当我连接时连接失败,它不会恢复。但是,如果我将 phone 重新连接到设备并重复该过程(关闭并打开标签),它会自动重新连接到 phone。
我只是不明白第一个行为和重新连接后的行为之间的区别...
有什么想法吗?
亚历克斯

Android 应该更好地记录。无论如何,这是解释:

当您调用 connectGatt (https://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#connectGatt(android.content.Context, boolean, android.bluetooth.BluetoothGattCallback)) 并将 autoConnect 设置为 false 时,这只会与设备建立一次性连接。当它断开连接时,它不会重新连接。

当您改为使用 BluetoothGatt 对象上的 .connect() 方法进行连接时,这与关闭当前 BluetoothGatt 对象然后使用 connectGatt 再次连接并将 autoConnect 参数设置为 true 是一样的。

当 autoConnect 参数设置为 true 时,这意味着您希望设备永远保持连接状态,即无论出于何种原因断开连接,Android 将始终尝试重新连接到设备。

您可以在此处查看我的自动连接差异列表: