【问题标题】:How to identify a device found via bluetooth using BLE for iOS如何使用 BLE for iOS 识别通过蓝牙找到的设备
【发布时间】:2018-04-10 18:25:21
【问题描述】:

我正在编写一个应用程序,用于通过蓝牙检查教室的出勤情况。到目前为止它工作得很好,我一直在用我的 Macbook、iPad、Apple TV 进行测试。我得到了他们的名字,例如:“Eduardo 的 iPad、Apple TV、Eduardo 的 Macbook”。 问题是昨天我在一个商场里测试了它,我得到的只是一堆“未命名”的设备。这也会成为课堂上的问题。

我也得到了一个 id,但我不知道如何在 iOS 或 Android 设备上识别该 id,这是我扫描时得到的对象类型:

{
  id: "2BD5D5A7-EF50-B4F4-D4FD-9A8413006D4B",
  rssi: -24,
  advertising: {
    kCBAdvDataIsConnectable: true
  },
  name: "Eduardo's iPad"
}

请注意,我在这里得到的 id 是 2BD5D5A7-EF50-B4F4-D4FD-9A8413006D4B,但如果我在 iPad 上转到 Settings/General/About/Bluetooth,那里显示的 id 是 F0:D1:A9:E3:F9:E9

那么,我能以某种方式从长 id 中获取短 id 吗?或者,有没有办法使用他们的图形界面在 iOS 或 Android 上获得那个长 ID?提前致谢。

【问题讨论】:

  • 无法将标识符映射到设备 MAC。标识符是 Core Bluetooth 创建的用于标识外围设备的值,但没有记录标识符的派生方式。根据我的经验,您往往只会获得具有相同 iCloud 帐户的设备的名称,因为这会导致 iOS 将这些设备配对以进行切换等工作。 iOS(可能还有 Android)具有 MAC 随机化功能,专门用于阻止跟踪设备的尝试,这也给您带来了挑战。

标签: ios bluetooth-lowenergy ionic3


【解决方案1】:

在 iOS 中不允许获取外围设备(BLE 设备)的 MAC 地址,因此 iOS 为外围设备生成 UUID。

差异。 iOS 设备分配差异。 UUID。

因此,在 iOS 中没有任何其他方法可以识别外围设备。

如果外围广告数据显示任何 Id,则我们可以识别 BLE 设备。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    相关资源
    最近更新 更多