我们有一个蓝牙设备。蓝牙设备有一个公共蓝牙设备地址(BDA)。在android中他们得到像(30:03:5B:00:15:12)
这样的蓝牙。我只能获得设备名称和设备UUID
像这样
-(void) centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI {
NSLog(@"Discovered peripheral %@ (%@) (%@)",peripheral.name,peripheral.identifier.UUIDString); //PHARMACELL CAREOUSEL (0BEF07EA-7680-4223-2D5E-6CE159333F7E)
}
请向我们提供如何获得BDA值的任何指南
答案 0 :(得分:1)
简单的答案显然是:不。 (实际上)从生成特定UUID的种子中获取BDA是不可能的。前提是实际上生成UUID的算法确实使用了设备的MAC地址来生成它,我想您不能保证您使用的UUID生成器就是这种情况,除非您有权访问UUID生成器代码或算法
由于苹果在生成UUID时可能会使用设备的MAC地址,其他组件如时间戳,散列,UDID(iOS设备)以及其他一些因素,因此它看起来也无法从UDID中恢复。
答案 1 :(得分:0)
Android 6具有REMOVED读取自身设备WIFI和BT MAC地址的能力,它们将被硬编码为02:00:00:00:00:00
。
这是“保护用户数据”或更正确的“隐私”。太多的大型商场滥用这些地址来获取用户行为信息。
答案 2 :(得分:0)
在iOS上,无法获取设备的MAC地址,它由CBPeripheral
类抽象,并由os identifier
属性在内部标识。获得MAC地址的一种方法是在扫描响应中包含MAC地址,这实际上是最受欢迎的。您可以从BLE设备制造商处询问此功能。此外,MAC地址可以从GATT特征之一读取。请向您的BLE制造商咨询更多详情。