gpt4 book ai didi

Android Bluetooth Low Energy 有时会锁定

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:54:41 26 4
gpt4 key购买 nike

我有一个完整的应用程序,可以连接到我们制作的定制蓝牙外围设备并准备发布。但是,我刚刚发现该应用存在一个我无法确定的问题。

我在 Service 中运行我所有的蓝牙操作,有时当我想要结束蓝牙操作时,我最终仍然连接了 1 个外围设备,但我已经丢失了所有指向它的指针。时不时地,整个蓝牙堆栈似乎会锁定,需要重新启动手机。

我认为问题是在我停止扫描后尝试清除所有连接的设备时出现的。我有这个清理方法

private void clearAllDevices() {
Log.e(TAG, "Clear all devices");
for (int i = 0; i < _connectedPeripherals.size(); i++) {
Log.e(TAG, "int i:" + i + " _connectedPeripherals size:" + _connectedPeripherals.size());
BluetoothGatt gatt = (BluetoothGatt) _connectedPeripherals.get(i);
gatt.disconnect();
}
}

但是我认为有时外围设备在连接到一半的同时与所有连接的东西断开连接。

有没有更好的方法来清除所有已连接的设备或正在连接的设备?

最佳答案

bluetoothGatt.disconnect() 是不够的。您还应该调用 bluetoothGatt.close()

Once your app has finished using a BLE device, it should call close() so the system can release resources appropriately.

参见:API Guides > Bluetooth Low Energy

您可以通过 BluetoothGattCallback.onConnectionStateChange 回调检查 bluetoothGatt.disconnect() 的结果。

关于Android Bluetooth Low Energy 有时会锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26403405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com