iOS 蓝牙BLE外设名称修改后不更新的解决方案

本文探讨了iOS设备在连接蓝牙BLE外设后,若外设名称更改,系统无法显示新名称的问题。解决方案是通过读取广播数据包中的kCBAdvDataLocalName字段来获取最新名称,因为首次连接后iOS会缓存GAP name。同时指出,GAP name和advertising name可能不同,硬件工程师也可直接修改GAP name来避免此类问题。
摘要由CSDN通过智能技术生成

最近做一个BLE相关的项目,遇到一个问题。

现象:

当一个外设(peripheral)已经与iPhone连接成功后,如果修改外设的名称,iPhone重新扫描外设后获得的仍然是之前的名称。打印的perpheral.name依然是以前的值。

解决方法:

首次连接成功过后,iOS系统内会将改外设缓存记录下来,下次重新搜索时,搜索到的蓝牙外设时,直接打印peripheral.name,得到的是之前缓存中的蓝牙名称,如果此期间蓝牙外设有更新蓝牙名称的话,这个参数并不会改变,所以需要换一种方式获取蓝牙外设的名称,广播数据包内就有一个字段kCBAdvDataLocalName,可以从中获取。

代码:

-(void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值