【发布时间】: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