在 Android 系统设置中关闭蓝牙可以让我们在 Android < 27 (Oreo) 中调用 BluetoothGattCallback.onConnectionStateChange()
。但是,当我在 Pixel 或 Nexus 5X (Android 8.1.0) 上尝试时,我没有收到该回调。蓝牙代码是否有一些更改,我们没有收到关于蓝牙设置更改的 BluetoothProfile.STATE_DISCONNECTED
通知。我注意到设备断开连接。此外,当关闭回调被调用的 BLE 设备时。感谢任何见解!
在此处作为问题提交 Google Issue
最佳答案
我想这是意料之中的,或者至少这一直是行为。当蓝牙关闭(或由于某种原因而死)时,蓝牙守护进程退出。但它也是发送您的 GATT 回调的相同过程。如果进程终止,它不能发送任何回调。
使用https://developer.android.com/reference/android/bluetooth/BluetoothAdapter#ACTION_STATE_CHANGED而不是检测蓝牙何时关闭,那时你应该去关闭所有 BluetoothGatt 对象。
关于android - 关闭蓝牙适配器不调用 onConnectionStateChange Android 8.1.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50032217/