BLE设备断开连接,然后出现两个相反的异常BleAlreadyConnectedException与BleDisconnectedException

时间:2018-11-15 15:47:08

标签: android rxandroidble

我正在研究DFU OTA(正在实时更新设备固件)。

要执行此操作,我必须连接设备,然后发送命令以命令设备切换到引导加载程序模式。执行此命令后,设备将重启,因此连接断开。在这种状态之后,如果我尝试重新连接

rxBledevice
?.establishConnection(false)
?.subscribe({/**/},{/**/})

引发错误BleAlreadyConnectedException

然后,如果我向设备发送任何命令,例如使用

rxBleConnection
?.writeCharacteristic(UUID, ba)
?.subscribe({/**/},{/**/})

引发错误BleDisconnectedException。

我尝试处置连接观察器,但没有任何改变。唯一的方法(不可接受)是在BleDevice重新启动并断开连接后重新启动应用程序。

如果有帮助,我还会得到以下日志:

E/BLE: write control OTA failed : com.polidea.rxandroidble2.exceptions.BleGattCallbackTimeoutException: GATT exception from MAC address 00:0B:57:4C:6C:9B, with type BleGattOperation{description='CHARACTERISTIC_WRITE'}
D/BluetoothGatt: onClientConnectionState() - status=22 clientIf=7 device=00:0B:57:4C:6C:XX
E/BLE: error connection BLE Disconnected from 00:0B:57:4C:6C:9B with status 22 (UNKNOWN)

您知道我在做什么错吗?

谢谢。

0 个答案:

没有答案