项目场景:
设备开启BLE广播,通过nrf app/系统蓝牙搜索设备并进行连接
描述问题
手机APP可以搜索设备BLE广播,并可以建立连接,
但是手机系统蓝牙搜索不到设备BLE广播,或无法建立连接
原因分析:
1. 系统蓝牙发起连接时会主动发起配对
2. 部分安卓系统和苹果系统,会过滤未配对或非常见服务的设备,以节省电量或减少干扰
3. 苹果系统蓝牙上显示模块的名称是gap name(0x2A00对应值)
解决方案:
1. 广播数据中添加手机厂商支持的常见服务UUID(如
0x180A
设备信息服务)2. 开启广播之前同时修改advertising name和gap name
3. 手机系统蓝牙连接时会主动发起配对,如果需要建立连接,则设备必须要开启配对功能,如果未开启,手机端会显示:
注意
1. OS系统可能会出现这个现象
首次连接成功过后,IOS系统会将gap name记录,下次重新搜索时,搜索到广播设备时可能名称是之前缓存的蓝牙名称