外围BLE设备的唯一标识符

JIn*_*Inn 7 iphone objective-c ios bluetooth-lowenergy

所以我有外围BLE设备,我需要一些标识符,以便以后与另一个iPhone共享.示例I将iPhone'A' 连接到外设.iPhone'A'将外围设备的标识符保存到数据库中,稍后我可以轻松地将iPhone'B'连接到此标识符找到的外围设备.

现在UUID每个iPhone-peripheral连接都有变化,但是MAC Address不可用.你有什么建议吗?

Enr*_*ini 0

我有一个类似的问题,很多这样的线程说你无法通过 CoreBluetooth 获取 MAC 地址。我想连接到 BLE 外设(我的意思是开放且可连接的外设)并将一些信息存储在数据库中,以便不同的 iPhone 在连接到同类 BLE 外设时可以读取相同的数据库并使用这些信息。现在我依赖于设备名称,如下获取:

-(void)addDiscoveredDevice:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
{
    NSString * name = [peripheral name];
}
Run Code Online (Sandbox Code Playgroud)

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

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

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