因为iBeacon信号只是具有预定义BLE配置文件的BLE广播,所以我认为我可以编写一个iOS应用程序,扫描BLE广播信号并分析是否发现任何iBeacon信号。但是如何做到呢?
- 如何扫描周围所有BLE广播信号?
- 如何区分BLE广播信号是否为iBeacon信号?
不幸的是,在iOS上,您必须提供一个ProximityUUID才能看到iBeacons。在Android上,无论UUID如何,您都可以看到所有的iBeacons。此外,在iOS上,您不能使用CoreBluetooth API查看广告是iBeacons。
有关详细信息,请在此处查看。
@davidgyoung的回答并不完全正确。在iOS上,您可以订阅进入/离开区域,但必须事先知道UUID。
但是,您可以使用常规的蓝牙设备扫描来检测所有蓝牙设备。然后,您可以查看广告数据以查看它是否实际上正在使用iBeacon标识符,并列出其iBeacon UUID。
centralManager:didDiscoverPeripheral:advertisementData:RSSI:
方法,广告数据是提供的。20个字节组成的UUID、major和minor只是其中的一部分。 - Bouke