iBeacon基础

iBeacon 标准是Apple在2013年WWDC上提出的,运行在iOS7+系统的设备上,且要求设备配备低功耗蓝牙BLE通信功能。本文简单介绍下iBeacon在位置、感知、距离方面的基本能力。

位置服务

​ 位置服务(Location Service)通常是在某个区域(Region),通过GPS来实现的某些功能。比如当你手持安装星巴克应用的苹果手机在星巴克附近时,锁屏状态下会在屏幕左下角显示该应用的图标。 高德地图 中的地理围栏就是一个实际应用场景。位置服务有以下缺点:

  • GPS本身定位精度能力有限,位置服务不可能提供精确的位置服务;
  • 室内环境下GPS信号普遍不好,或者信号不可达;

iBeacon

​ iBeacon技术是基于基站的形式。一个iBeacon可以被认为是一个区域(物体所在位置+覆盖半径),由于使用低功耗蓝牙技术,实验环境下其精度可以达到10cm范围内(虽然有些吹嘘,但亲测是相当精确的)。关于iBeacon的软件部分,需要了解以下几个概念:

  • Region : ProximityUUID & Major & Minor
  • Advertise Interval
  • Measured Power
  • RSSI

关于iBeacon区域的定义,由3个值来唯一确定一个区域,举例如下图:

图描述的很清楚了,我们可以通过ProximityUUID、Major和Minor三个值来定义不同的有关联的区域(事物),并通过不同的值组合来做很多有意思的事情。

iBeacon基础场景

监听

​ 区域监听(Region Monitoring)即当设备进入/离开某个/某类区域的时候,可以触发后续联动,其监听的区域可能是ProximityUUID代表的某个大的类别区域比如一个公司在全国的所有子公司、或者由ProximityUUID和Major组合的相对小的区域比如某个城市中的子公司。至于什么区域就比较灵活了。
​ 一般情况下,iOS程序退出或者后台挂起后,程序是不能执行的(其他Background-Mode除外)。但是这里所说的区域监听是托管给iOS系统,也就是说程序设置完监听区域后,iOS系统会托管,当设备进入/离开监听区域时,系统会触发相应的操作,并唤醒程序。

测距

测距(Ranging)即设备与Beacon区域中心点的接近距离(接近状态),包括:

  • Immediate 非常近
  • Near 1~3米
  • Far 3米以外
  • Unknown 距离不可测量

测距是在iOS程序处于前台激活状态下使用的,程序推到后台时,该功能便不可用。

应用场景举例

监听:由iOS系统接管,所以该功能需慎用,搞不好会让用户厌烦。

  • 欢迎语:比如商店入口/出口放置,用来给顾客相关提示。
  • 物品介绍:比如在博物馆某些区域,导游和网络信号不好的情况下,可以通过给文物贴上标签(iBeacon),让每个设备都当导游。
  • 业务确认:比如在某些病房中放置,在特定时刻向病人确定吃药情况。
  • 预警:比如钥匙坠,当不在身边时及时提醒。
  • 其他:比如门禁、宠物饰品等

测距:需要程序处于前台激活状态下使用,这里主要用在区域相关和用户互动的场景。

  • 商场活动:比如现场抽奖、现场摇一摇
  • 自动售货机:付款
  • 活动签到:上课/开会等
  • 商场导购:在某个商品前停留,自动推该商品信息、折扣信息等
  • 微信摇一摇周边
  • 其他:室内导航等

现状

​ 经过这么多年的发展,iBeacon技术并没有达到前几年预想的效果。可能是受成本及运维的影响,也可能是关于位置感知的场景化需求太少,一直没有流行起来。目前国内主要的厂商包括:智石科技、四月兄弟、DropBeacon等,提供了Beacon的基础能力,但在设备美观及精确度方面个人不敢恭维。
国外Beacon技术相对先进不少,应该是受苹果的影响。比较突出的一个是 Estiomte ,他家的产品及配套SDK是真心不错,就是略贵。

坚持原创技术分享,您的支持将鼓励我继续创作!