2

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

4

3 回答 3

1

简单的答案很明显:不。(实际上)不可能从生成特定 UUID 的种子中获取 BDA。假设实际上生成你的 UUID 的算法确实使用了你设备的 MAC 地址来生成它,我猜你不能保证你使用的 UUID 生成器就是这种情况,除非你可以访问 UUID 生成器代码或算法。

由于苹果在生成 UUID 时可能会使用设备的 MAC 地址、时间戳、哈希、UDID(iOS 设备)等其他组件以及其他一些因素,因此看起来也无法从 UDID 中获取它。

于 2015-10-12T10:30:15.940 回答
0

在 iOS 上,无法获取设备的 MAC 地址,它由CBPeripheral类抽象,并在 os 内部由identifier属性标识。获取 MAC 地址的一种方法,实际上是最流行的,是在扫描响应中包含 MAC 地址。您可以向 BLE 设备制造商询问此功能。MAC 地址也可以从 GATT 特征之一中读取。向您的 BLE 制造商咨询更多详细信息。

于 2015-10-13T09:45:54.133 回答
0

Android 6 已移除读取自己设备 WIFI 和 BT MAC 地址的能力,它们将被硬编码为02:00:00:00:00:00. 这是“保护用户数据”或更准确地说是“隐私”。太多的大型购物中心滥用收集这些地址来获取用户行为信息。

于 2015-10-12T12:52:43.553 回答