关闭蓝牙适配器未调用onConnectionStateChange Android 8.1.0

时间:2018-04-25 22:28:58

标签: android bluetooth android-bluetooth android-ble bluetooth-gatt

关闭Android系统设置中的蓝牙功能,我们可以在Android< 1< 27(奥利奥)。但是,当我在Pixel或Nexus 5X(Android 8.1.0)上试用它时,我没有得到回调。是否对蓝牙代码进行了一些更改,我们不会通过蓝牙设置更改通知BluetoothGattCallback.onConnectionStateChange()。我注意到设备已断开连接。此外,当关闭BLE设备时,会调用回调。任何见解都表示赞赏!

此处提出问题Google Issue

1 个答案:

答案 0 :(得分:0)

我想这是预料之中的,或者至少这一直是我们的行为。当蓝牙关闭(或由于某种原因而死)时,蓝牙守护进程退出。但这是发送GATT回调的相同过程。如果该进程终止,则无法发送任何回调。

使用https://developer.android.com/reference/android/bluetooth/BluetoothAdapter#ACTION_STATE_CHANGED来检测蓝牙何时关闭,这时您应该去关闭所有BluetoothGatt对象。