3

在 Android 系统设置中关闭蓝牙会给我们BluetoothGattCallback.onConnectionStateChange()在 Android < 27 (Oreo) 中的调用。但是,当我在 Pixel 或 Nexus 5X (Android 8.1.0) 上尝试时,我没有收到该回调。蓝牙代码是否有一些变化,我们没有收到BluetoothProfile.STATE_DISCONNECTED蓝牙设置更改的通知。我注意到设备断开连接。此外,当关闭 BLE 设备时,回调会被调用。任何见解表示赞赏!

在此处作为问题归档Google 问题

4

1 回答 1

0

我想这是意料之中的,或者至少这一直是行为。当蓝牙关闭(或因某种原因死机)时,蓝牙守护进程退出。但同样的过程也会发出 GATT 回调。如果进程终止,它不能发送任何回调。

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

于 2020-06-03T00:34:19.890 回答