Android BLE-iBeacon系列(一)iBeacon介绍


干货分享:Android BLE 框架,简单易用,可能是迄今为止功能最全面的
https://github.com/a1anwang/okble


iBeacon系列文章:



Android BLE-iBeacon系列(一)iBeacon介绍
Android BLE-iBeacon系列(二)扫描识别iBeacon设备
Android BLE-iBeacon系列(三)iBeacon区域介绍
Android BLE-iBeacon系列(四)iBeacon区域的进入和退出监听
Android BLE-iBeacon系列(五)手机模拟为iBeacon(待续)


正文

以下是百度结果:

iBeacon [1] 是苹果公司2013年9月发布的移动设备用OS(iOS7)上配备的新功能。其工作方式是,配备有 低功耗蓝牙(BLE)通信功能的设备使用BLE技术向周围发送自己特有的ID,接收到该ID的应用软件会根据该ID采取一些行动。比如,在店铺里设置iBeacon通信模块的话,便可让iPhone和iPad上运行一资讯告知服务器,或者由服务器向顾客发送折扣券及进店积分。此外,还可以在家电发生故障或停止工作时使用iBeacon向应用软件发送资讯。

其实iBeacon就是一个BLE(低功耗蓝牙)设备,不断的发出BLE广播。 iBeacon规定了广播里的数据格式,iBeacon理论上应该不能被连接,假如被连上了,别的手机就搜不到了,这样就失去了iBeacon广播数据的功能。

解释一下上面百度的应用场景:
(1)向顾客发送折扣券及进店积分
iBeacon的广播字段里有uuid,major,minor等名词的数据,简单点认为这3者的组合可以唯一确定一个iBeacon设备。 微信里面的摇一摇就有这个发送折扣券的类似功能.。 一个店铺通过微信平台进行申请,微信会给店铺提供uuid,major,minor等信息。店铺可以在微信平台的后台进行设置相关的H5展示网页,折扣券等, 然后店铺再通过一些渠道(微信会推荐一些iBeacon制造商家,当然我们也可以使用我们的手机来模拟成iBeacon设备,系列文章里都会讲到)购买若干个iBeacon设备,iBeacon设备到手之后,需要进行配置,把设备广播的uuid,major,minor设置成微信平台分配给商铺的uuid,major,minor。这样,当用户进入店铺附近时,掏出手机,打开微信,摇一摇,就会显示出商铺的信息。原理就是微信APP调用了BLE扫描方法,识别出了周围有iBeacon设备,然后把iBeacon设备的uuid,major,minor信息请求微信服务器看是不是有注册的店铺信息,有的话就把店铺在后台设置的H5等信息展现出来。
(2)家电发生故障检修
家里购买了一个洗衣机,这个洗衣机比较高级,里面装了iBeacon设备,干什么用呢?假如洗衣机坏了,得找人修,官方维修人员上门,掏出手机,打开一个APP,得出故障原因,这个过程可能只要2秒钟。然后根据原因选择维修方法是返厂修还是师傅就地拆机啪啪啪搞定。(更简单点的,官方客服告知用户你去下载一个我们的检修APP,打开APP会检测出故障原因,你把检测结果告诉我们,我们来安排维修)什么原理?洗衣机出故障后,内部的iBeacon可以通过uuid,major,minor等广播信息告知故障类型,检修APP扫描到iBeacon信息,根据这些信息匹配故障表,得到发生故障的部位和原因。

iBeacon还可以用于很多其他的场景,比如展馆自动播报展位信息,室内定位等。

稍微解释一下uuid,major,minor的意思,上面提到:简单点认为这3者的组合可以唯一确定一个iBeacon设备。
uuid是一个xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12) 16字节128位的字符串,major,minor都是一个两字节的int型,那么取值范围即为0~0xFFFF(0-65535)。还是举例来说明有何用处,比如有一个展会,特别大,邀请了很多参展商,比如百度,阿里,腾讯,他们各自展出了很多产品。展会开发了一个app,用户使用这个app可以快速定位自己属于哪里,不怕迷路。怎么做的呢,就是在每个展位上放置iBeacon设备,iBeacon设备的uuid,major,minor设置是有讲究的,比如给腾讯展区的所有iBeacon设备的uuid为uuid_A, 腾讯展区里的智能家居区域的所有iBeacon设备的major为1,腾讯展区的游戏区域的所有iBeacon设备的major为2,腾讯展出的智能电视(属于智能家居)的iBeacon设备的minor为1,腾讯展出的智能电灯(属于智能家居)的iBeacon设备的minor为2,腾讯代理的堡垒之夜(一款游戏)的展位的iBeacon设备的minor为1,腾讯代理的绝地求生(一款游戏)的展位的iBeacon设备的minor为2。 那么,当用户想知道自己处于何处时,打开app,app可以扫描识别周围的iBeacon信息,当识别出最近的iBeacon信息的uuid为uuid_A,major为1,minor为2时,app即告知用户,当前处于腾讯展区的智能家具里的智能电灯展位附近。

提问环节:app识别出最近的iBeacon信息的uuid为uuid_A,major为2,minor为1,这时处于哪个位置?

答案:腾讯展区的游戏区的堡垒之夜展位附近。

uuid,major,minor不一定就是按照上面的例子来划分,在具体应用中有很大的灵活性。只需要知道,根据这个信息可以区分设备,知道自己处于哪个设备或区域附近。
iBeacon的广播里面还有一个信息叫measuredPower,一个字节的int型,假如识别出的iBeacon设备广播里的measuredPower为-59, 即表示手机距离该iBeacon设备1米距离的参考信号强度(RSSI)为-59。可以根据这个参考值来做测距,常用来做室内定位,但是RSSI受很多因素影响,而且不稳定,室内定位需要很多优化,高德就有基于iBeacon的室内定位SDK。

你可能感兴趣的:(Android BLE-iBeacon系列(一)iBeacon介绍)