如何使用core_bluetooth获取公共蓝牙设备地址

时间:2015-10-12 10:18:16

标签: ios objective-c bluetooth-lowenergy core-bluetooth ios-bluetooth

我们有一个蓝牙设备。蓝牙设备有一个公共蓝牙设备地址(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值的任何指南

3 个答案:

答案 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制造商咨询更多详情。