在做蓝牙开发的时候,遇到了蓝牙会异常断开的问题。
项目需求的功能是要求连接两个蓝牙ble设备。
一个蓝牙A设备要求的即时性不高,
可以扫描一段时间然后停止扫描一段时间,
但是另外一个蓝牙B设备要求的即时行较高需要系统去不停的扫描
以便在发现设备后能够迅速的做出反应。
就这样在设备连接上其中的A蓝牙后,在扫描B设备时会偶发性的出现蓝牙断开的错误,从log中找到一些记录,如下:如下是从mtklog中找到的日志
E bt_osi_eager_reader: inbound_data_waiting doing chip-reset//这一行密集 的打印了5s左右
10:54:57.546837 1061 1110 E BluetoothManagerService: MESSAGE_BLUETOOTH_SERVICE_DISCONNECTED: 1
10:54:57.839368 1061 1110 E BluetoothManagerService: MESSAGE_BLUETOOTH_SERVICE_DISCONNECTED: 2
10:55:02.026977 1061 1110 E BluetoothManagerService: recoverBluetoothServiceFromError
从上述的日志信息可以看出是系统的蓝牙服务断开了连接,但是原因目前未知
目前解决方案是定时的重新开启扫描模块,对设备进行重新连接