首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >外围BLE设备的唯一标识符

外围BLE设备的唯一标识符
EN

Stack Overflow用户
提问于 2015-12-30 07:48:29
回答 2查看 2.5K关注 0票数 7

所以我有外设BLE设备,我需要一些标识符,以便稍后与另一个iPhone共享。例如,我使用iPhone 'A‘连接到外设。iPhone 'A‘将外围设备的标识符保存到数据库中,稍后我可以轻松地获取iPhone 'B’并连接到通过该标识符找到的外围设备。

现在,每个iPhone-peripheral连接都会更改UUID,但MAC Address不可用。你有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2017-08-15 10:36:53

如果您不是自己制造外围设备,则无法在不同的iOS设备上唯一地识别外围设备。这正是苹果想要的,因为这意味着开发者不能根据设备地址跟踪用户的位置或移动模式。这将是一个隐私问题。

如果你自己制造外围设备,那么你可以做任何你想做的事情。例如:使用自定义服务uuid,将uuid添加到广告中的制造商数据,设置唯一的广告名称等。但如果这一切的核心目的是跟踪你的用户,那么我猜苹果可能会拒绝你的提交。

票数 1
EN

Stack Overflow用户

发布于 2017-08-13 12:14:02

我也有类似的问题,很多像this这样的帖子说你不能通过CoreBluetooth获取MAC地址。我想连接到BLE外围设备(我指的是开放的和可连接的外围设备),并在数据库中存储一些信息,以便不同的iPhone可以读取相同的数据库,并在连接到相同类型的BLE外围设备时使用这些信息。现在,我依赖于设备名称,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-(void)addDiscoveredDevice:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
{
    NSString * name = [peripheral name];
}

因为在不同的iOS设备上,NSString * uuid = [[peripheral identifier] UUIDString];会给我不同的结果。

因此,假设我的第一个问题是知道我的iPhone附近有多少个Apple Watch,第二个问题是知道给定的Apple Watch (例如John的Apple Watch)是否靠近我的iPhone。不幸的是,这种方法不起作用,因为用户(例如John)或公司可以更改其外围设备的名称。

是的,我可以依靠名称+服务uuid +特征uuid的组合,但出于同样的原因,如果名称更改,它是无用的。有人找到解决方案了吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34525203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文