ble无法连接到已绑定的设备

k3bvogb1  于 2021-07-09  发布在  Java
关注(0)|答案(0)|浏览(350)

我在连接android上的设备时遇到问题。第一次连接到设备,其中包括键合是成功的,我能够读取所有的特点和连接保持稳定。
当我关闭应用程序或手动断开连接并尝试再次使用相同的代码(绑定本身除外)连接到设备时,我从android端断开连接,错误代码为22,这意味着“连接被localhost终止”。
在这两个我不知道的场景中,引擎盖下和android端有什么区别吗?我基本上使用的教程代码,我可以提供,如果必要的话,但我已经尝试了从改变gatt参数到自动连接/不,添加 BluetoothDevice.TRANSPORT_LE 作为运输旗还是什么都没有。
这个问题一直发生在我的像素,摩托g4和所有最新的nexus设备。
外设使用的是高通芯片csr1010 uenergy,正在做广告,需要配对才能建立连接。以下是连接的片段:

val bondCreated = device.createBond()

在广播接收机的键合状态发生变化时,我调用connect方法。我试着用这两种方法做实验,忽略其中一种,改变参数,但什么都不做

bluetoothGatt = device.connectGatt(context, false, gattCallback, BluetoothDevice.TRANSPORT_LE)
bluetoothGatt?.connect()

如果我收到断开连接信息,我会呼叫:

bluetoothGatt?.close()

bluetoothGatt?.disconnect()

我试着用上面相同的代码再次连接
我已经试着在关贸总协定的每一项行动中到处拖延,但仍然没有成功。在我被android断开连接后,将auto connect更改为true不起作用。
我还尝试了一些第三方ios应用程序,所有这些都可以毫无问题地连接到设备。他们的android版本总是像我的一样断开连接。
你能帮忙吗?非常感谢。
日志如下:
d/BlegatController:设备已绑定:设备
d/bluetoothgatt:connect()-设备:40:80:08:af:dc:6b,自动:假
d/bluetoothgatt:注册应用()
d/bluetoothgatt:onclientregistered()-状态=0 clientif=8
d/bluetoothgatt:onclientconnectionstate()-状态=0 clientif=8设备=40:80:08:af:dc:6b
d/blegattcontroller$gattc:onconnectionstatechange 0-已连接
d/blegattcontroller$gattc:状态\u已连接
d/bluetoothgatt:onconnectionupdated()-device=40:80:08:af:dc:6b interval=6 latency=0 timeout=500 status=0
d/bluetoothgatt:onclientconnectionstate()-状态=22 clientif=8设备=40:80:08:af:dc:6b
d/BLEGATTC控制器$gattc:onconnectionstatechange 22-已断开
d/blegattcontroller$gattc:状态\u已断开

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题