【问题标题】:how to get public Bluetooth Device Address using core_bluetooth如何使用 core_bluetooth 获取公共蓝牙设备地址
【发布时间】:2016-01-09 18:54:41
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-06-13
          • 1970-01-01
          • 1970-01-01
          • 2020-10-27
          • 1970-01-01
          • 2013-03-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多