微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检测Android蓝牙connectGatt()自动连接完成

如何解决如何检测Android蓝牙connectGatt()自动连接完成

(*** 编辑 #2:尝试连接多个设备 ***)

我正在使用 BluetoothDevice.connectGatt() 并将自动连接设置为 true 以连接到多个设备:

bluetoothDevice1.connectGatt(context,true,BLGattCallback(context),BluetoothDevice.TRANSPORT_LE)
bluetoothDevice2.connectGatt(context,BluetoothDevice.TRANSPORT_LE)

(*** 编辑 #1 ***) 我在 BluetoothGattCallback() 中使用 onConnectionStateChange():

internal class BLGattCallback(val context: BTLeashService) : BluetoothGattCallback()        // Todo: Convert to LiveData
{
    override fun onConnectionStateChange(gatt: BluetoothGatt,status: Int,newState: Int)
    {
        super.onConnectionStateChange(gatt,status,newState)

        val connectionStateChange = BLBluetoothManager.ConnectionStateChange(gatt,newState)
        BLBluetoothManager.connectionStateChange.postValue(connectionStateChange)
    }

(结束编辑 #1)

使用这种方法,我必须在执行下一个 connectGat() 之前使用延迟,否则前一个会中止。为什么是这样?我认为它不应该等待,只要连接就回电...

是否有回调让您知道第一个 connectGatt 何时完成,以便我不需要临时延迟?

*** 编辑 #3 ***

我所说的“第一次 connectGatt 已完成”并不是说建立了连接,只是我现在可以执行下一个命令而不会中止前一个命令。

(结束编辑 #3)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。