奇怪的BLE行为Android

问题描述:


我试图开发一个应用程序,通过BLE连接到我的来自德克萨斯州的CC2650传感器标签。
我能够使用GATT协议连接到我的标签问题是,如果我连接时连接失败,它不会恢复。但是,如果我将手机重新连接到设备,并重复此过程(关闭并打开标签),它会自动重新连接到手机。
我只是不明白第一个行为和重新连接后的区别...
任何想法?
Alex奇怪的BLE行为Android

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都会尝试尝试重新连接到设备。

您可以在此查看我的autoConnect差异列表:https://stackoverflow.com/a/40187086/556495

+0

非常感谢。简单而准确的解释。 –