亲宝软件园·资讯

展开

iOS蓝牙设备名称缓存 iOS蓝牙设备名称缓存问题的解决办法

蓝天 人气:0
想了解iOS蓝牙设备名称缓存问题的解决办法的相关内容吗,蓝天在本文为您仔细讲解iOS蓝牙设备名称缓存的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:ios,蓝牙名称缓存,ios,蓝牙,下面大家一起来学习吧。

1. 问题背景

2. 问题分析

当 APP 为中心连接其他的蓝牙设备时。

首次连接成功过后,iOS系统内会将该外设缓存记录下来。

下次重新搜索时,搜索到的蓝牙设备时,直接打印 (peripheral.name),得到的是之前缓存中的蓝牙名称。

如果此期间蓝牙设备更新了名称,(peripheral.name)这个参数并不会改变,所以需要换一种方式获取设备的名称,在广播数据包内有一个字段为 kCBAdvDataLocalName,可以实时获取当前设备名称。

3. 问题解决

下面给出OC 和 Swift 的解决方法:

OC

-(void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary<NSString *,id> *)advertisementData RSSI:(NSNumber *)RSSI{
    NSString *localName = [advertisementData objectForKey:@"kCBAdvDataLocalName"];
} 

Swift

func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
    let localName = advertisementData["kCBAdvDataLocalName"]
}

总结

加载全部内容

相关教程
猜你喜欢
用户评论