所以我有外设BLE
设备,我需要一些标识符,以便稍后与另一个iPhone共享。例如,我使用iPhone
'A‘连接到外设。iPhone
'A‘将外围设备的标识符保存到数据库中,稍后我可以轻松地获取iPhone
'B’并连接到通过该标识符找到的外围设备。
现在,每个iPhone-peripheral
连接都会更改UUID
,但MAC Address
不可用。你有什么建议吗?
发布于 2017-08-15 10:36:53
如果您不是自己制造外围设备,则无法在不同的iOS设备上唯一地识别外围设备。这正是苹果想要的,因为这意味着开发者不能根据设备地址跟踪用户的位置或移动模式。这将是一个隐私问题。
如果你自己制造外围设备,那么你可以做任何你想做的事情。例如:使用自定义服务uuid,将uuid添加到广告中的制造商数据,设置唯一的广告名称等。但如果这一切的核心目的是跟踪你的用户,那么我猜苹果可能会拒绝你的提交。
发布于 2017-08-13 12:14:02
我也有类似的问题,很多像this这样的帖子说你不能通过CoreBluetooth获取MAC地址。我想连接到BLE外围设备(我指的是开放的和可连接的外围设备),并在数据库中存储一些信息,以便不同的iPhone可以读取相同的数据库,并在连接到相同类型的BLE外围设备时使用这些信息。现在,我依赖于设备名称,如下所示:
-(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的组合,但出于同样的原因,如果名称更改,它是无用的。有人找到解决方案了吗?
https://stackoverflow.com/questions/34525203
复制相似问题