BLE отключите и закройте Gatt, getConnectionState имеет значение STATE_CONNECTED, но соединение с устройством все еще активно - PullRequest
0 голосов
/ 17 февраля 2019

У меня есть приложение для управления несколькими лампами Bluetooth 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, но проблема все еще существует.

Как я могу исправить эту проблему?


НаконецЯ решил эту проблему.Причина в том, что я не могу подключить несколько устройств одновременно.Поэтому я использовал очередь для подключения устройств одно за другим.

...