ibeacon是基于低功耗蓝牙4.0技术的,可以用来打造一个信号基站,当用户持有IOS设备进入该区域时,就会获得该基站的推送信息。
ibeacon使用的是BLE技术,具体而言,利用的是BLE中的名为“通告帧”的广播帧,通告帧是定期发送的帧,只要是支持BLE的设备就可以接收到,ibeacon通过在这种通告帧的有效负载部分通过嵌入苹果自主格式的数据来实现。
ibeacon的数据主要有4中资讯构成,分别是:通用唯一标示符UUID,Major,Minor,Measured Power.
UUID规定为标准的128位标示符,Major 和Mainor由ibeacon发行者自行决定,都是16位标示符,连锁店可以在Major中写入区域资讯,可在Minor中写入个别店铺的ID等。另外,在家电中嵌入iBeacon功能时,可以用Major表示产品型号,用Minor表示错误代码,用来向外部通知故障。Measure Power是ibeacon模块与接收器之间相距1米时的信号参考强度(RSSI),接收器根据该参考RSSI与接收器的信号强度来推送发射模块与接收器之间的距离。
有意思的是,苹果在iOS中并不仔细推断距离,而只采用贴近(Immediate)、1m以内(Near)、1m以上(Far)三种距离状态。距离在1m以内时,RSSI值基本上成比例减少,而距离在1m以上时,由于反射波的影响等,RSSI不减少而是上下波动。也就是说,相距1m以上时无法推断距离,因此就简单判定为Far。
iOS7对接收到的iBeacon信号进行解释后,向等待iBeacon资讯的所有应用软件发送UUID、Major、Minor及靠近程度。发送的靠近程度资讯是Immidiate、Near、Far中的一种。
接收资讯的应用软件先确认UUID,如果确认是发送给自己的资讯,则再根据Major、Minor的组合进行处理。