Android Ble 一连多笔记

本文分享了在Android平台上实现蓝牙BLE并发通讯的经验教训。详细介绍了连接多蓝牙设备时遇到的各种问题及其解决办法,包括设备连接顺序、释放BLE资源、多线程操作锁等问题。

Android 一连多很多坑啊。

不同的手机反响不一样;双外设的应用。

第一版,按正常逻辑进行连接,正常,可以工作;测试后,发现偶尔设备完全连不上了。

设备丢了。

修改第二版,只要有设备处于连接时,不进行其他设备连接;第二版,在一些手机上稳定运行。

扩大测试了,某些手机出问题,发现偶尔设备完全连不上了。

网上百度文章:

看了这一篇文章,发现里面的重点:

Android连接多蓝牙设备ble 并发通讯小框架 --Android连接多ble蓝牙设备--Android与多ble蓝牙设备连接 - 老凯瑞 - 博客园

(二)Android APP与蓝牙多设备连接注意的点:

    1、设备一个一个连,连接成功一个再一个,如果同时连多个,可能一个都连不上。具体原因没有深究

    2、如果一个设备被你连过,然后一系列操作后,无法再扫描到,用其他工具APP也扫描不到,说明这个设备被你连着,没有彻底的释放掉!如何完全释放ble,具体看源码,其中部分我也是参考了网上著名的蓝牙框架 fastble:https://www.jianshu.com/p/795bb0a08beb ,感谢作者

    3、对APP对ble的每一步操作间,必须加延时,否则会有意想不到的问题。具体看源码

    4、ble被断开后,必须延时1-2秒,再去连接他(不通过扫描直接连的情况),否则会有意想不到的问题

             5. 注意对mBluetoothLeScanner操作,存在多线程的操作的时候,记得加锁。不然可能出现意想不到的溢出,多次开关软件/扫描后;蓝牙不能扫描了等意想不到的结果。

              6. 注意对mBluetoothGatt操作,存在多线程的操作的时候,记得加锁。 不然可能导致影响其他蓝牙设备或是蓝牙底层。 

原来问题出在这里,修改第三版:

连接前,关闭广播,等连接成功或失败回调,或超时才打开广播。

一个一个连接。

现在扩大测试样本。

修改第四版:

第三版每次都能连接上,但会出现连接超时,导致有时连接时长超过30s以上。

修改:

    connec

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值