BLE断开并关闭Gatt,getConnectionState为STATE_CONNECTED,但设备连接仍然有效

时间:2019-02-17 18:06:31

标签: java android bluetooth-lowenergy android-bluetooth bluetooth-gatt

我有一个用于控制多个蓝牙LE灯的应用程序。

当我想同时断开所有设备的连接时,我将其称为BluetoothGatt断开连接,并从onConnectionStateChange关闭,getConnectionState将返回STATE_DISCONNECTED,但有时某些设备的连接仍然有效。

我可以看到关闭的日志。

BluetoothGatt: close()

unregisterApp() - mClientIf=xx

但是我看不到断开的日志。

onReceive: android.bluetooth.device.action.ACL_DISCONNECTED

TrustAgent.Tracker: [BluetoothConnectionTracker] Bluetooth disconnect broadast for xxx

我使用ReentrantLock来确保每个设备只有一个Gatt,并通过MainThread注释在主线程上执行控制功能,但是问题仍然存在。

如何解决此问题?


最后,我解决了这个问题。 原因是我不能同时连接多个设备。 因此,我使用了一个队列来逐一连接设备。

0 个答案:

没有答案