我的android应用程序运行时,中央连接到外围设备,启用通知,外围设备开始发送。
我的问题是大约13秒后连接终止。
下面我有logcat信息。
Android中蓝牙LE的状态59是什么?
BluetoothGatt: connect() - device: C5:7F:B0:8E:AA:91, auto: false
BluetoothGatt: registerApp()
BluetoothGatt: registerApp() - UUID=3a9c080d-ae20-47ea-b34c-7ea7798204cc
BluetoothGatt: onClientRegistered() - status=0 clientIf=5
BluetoothGatt: onClientConnectionState() - status=0 clientIf=5 device=C5:7F:B0:8E:AA:91
BluetoothGatt: discoverServices() - device: C5:7F:B0:8E:AA:91
BluetoothGatt: onSearchComplete() = Device=C5:7F:B0:8E:AA:91 Status=0
BluetoothGatt: setCharacteristicNotification() - uuid: 00002a05-0000-1000-8000-00805f9b34fb enable: true
BluetoothGatt: setCharacteristicNotification() - uuid: 00001625-1212-efde-1523-785feabcd123 enable: true
BluetoothGatt: cancelOpen() - device: C5:7F:B0:8E:AA:91
BluetoothGatt: onClientConnectionState() - status=59 clientIf=5 device=C5:7F:B0:8E:AA:91
BluetoothGatt: close()
BluetoothGatt: unregisterApp() - mClientIf=5
答案 0 :(得分:3)
我有同样的问题。经过一些挖掘后,我发现在我们的案例中,状态码59(或0x3B十六进制)指向HCI_ERR_UNACCEPT_CONN_INTERVAL
。
通过检查手机上的蓝牙HCI监听日志,我发现ble设备正在与手机协商连接参数。设备请求连接间隔为7.5毫秒,手机拒绝了这个。三次(15ms)后,设备断开连接并重置。
我发现this post表示Android 6.0中的最小连接间隔已更改为12.5毫秒。因此,如果您调整设备请求的连接间隔,您可能会保持连接。