开始使用 iBeacon

Getting Started with iBeacon
Version 1.0

iBeacon 入门概述

在 iOS 7 中引入的 iBeacon 是一项令人兴奋的技术,可以为应用程序提供新的位置感知功能。利用蓝牙低功耗(BLE),采用iBeacon技术的设备可以用来在一个物体周围建立一个区域。这允许iOS设备确定它何时进入或离开该区域,以及估计与信标的接近度。在使用iBeacon技术时,需要考虑硬件和软件两个组件,本文将介绍两者,以及建议的用途和最佳实践,以帮助确保高度有效的部署,带来出色的用户体验。

iBeacon 有3种不同的受众。你可能会陷入其中的一、二或三种类别,取决于你的角色。

  1. 应用程序开发人员
    如果想要向应用程序添加新的位置感知,可以使用 iOS 中的 Core Location API,以便在 iOS 设备进入或离开 iBeacon 区域时通知它。还可以估算离发送 iBeacon 广播设备的距离。所需的一切都在 iOS SDK 中,不需要额外的许可。

  2. 使用 iBeacon 技术部署设备的人员
    无论你是管理一个体育场馆,一个博物馆,一个零售店,还是其他任何一个可以使用信标的物理位置,你都需要知道这些设备是如何工作的,围绕着信号强度和材料的问题,并且了解如何校准和测试你的部署。如果你有兴趣在一个地点使用iBeacon标志,但不会用iBeacon技术制造设备,你需要在使用iBeacon标志之前获得一个iBeacon标志许可证。请访问 https://developer.apple.com/ibeacon/ 申请许可使用iBeacon标志。

  3. 使用 iBeacon 技术制作设备的人员
    如果您对使用 iBeacon 技术的制造设备感兴趣,在构建这些设备之前,您需要获得许可。请访问 https://developer.apple.com/ 申请 ibeacon 许可证。 被许可人可以获得技术规格,使用 iBeacon 徽标的许可以及 iBeacon 标识准则。

设备与 iBeacon 技术

带有 iBeacon 技术的设备可以使用钮扣电池供电一个月或更长时间,或者使用较大的电池一次运行数月,或者可以长时间在外部供电。 iOS设备也可以配置为生成iBeacon广播,虽然这个功能的范围是有限的。这适用于诸如销售点或售货亭应用程序之类的应用程序,或适用于希望在有人正在使用应用程序的情况下短时间成为iBeacon的应用程序。

iBeacon广播通过低功耗蓝牙提供以下信息:

FieldSizeDescription
UUID16 bytes应用程序开发人员应该为他们的应用程序和部署用例定义一个 UUID
Major2 bytes进一步指定特定的iBeacon和用例。例如,这可以定义由UUID定义的较大区域内的子区域。
Minor2 bytes允许进一步细分区域或用例,由应用程序开发人员指定。

UUID、Major 和 Minor 的值为 iBeacon 提供标识信息。一般来说,这些信息在本质上是分层的,Major 和 Minor 的字段允许由 UUID 建立的标识的细分。UUIDs 可以通过在 OS X 中使用uuidgen命令行工具来生成,或者使用 NSUUID Foundation类以编程方式生产。

下面的表格展示了如何将这些值用于全国性的零售商店。UUID 由所有位置共享。这使得 iOS 设备可以使用单一标识符来识别在一个区域内的任何商店。每个特定的商店,旧金山,巴黎和伦敦,都被分配了一个独特的 Major 值,允许设备识别它在哪个特定的商店。在每个单独的商店中,各个部门都有单独的 Minor 值,尽管这些值在不同的商店中是相同的,以便让设备上的应用程序更容易识别部门。

Store LocationSanFranciscoParis London
UUIDD9B9EC1F-3925-43D0-80A9-1E39D4CEA95CD9B9EC1F-3925-43D0-80A9-1E39D4CEA95CD9B9EC1F-3925-43D0-80A9-1E39D4CEA95C
Major123
Minor Clothing101010
Minor Housewares202020
Minor Automotive303030

使用这些信息,iOS 设备可以识别什么时候进入或者离开了其中一个商店,它是哪个特定商店,以及用户可能站在哪个部门。这些值由部署信标设备的人员或组织确定。 UUID、Major 和 Minor 值未在苹果公司注册。

iBeacon 依赖 BLE ,因此需要 iPhone 4S(或更高版本),iPod touch(第5代),iPad(第3代或更高版本)或 iPad mini。

有关将iBeacon技术整合到产品中的更多详细信息,您需要从Apple获得许可证。 请访问 https://developer.apple.com/ibeacon 申请 iBeacon 许可证。

iBeacon 软件 - Core Location API

在 iOS 7 之前,核心位置使用由地理位置(经度和纬度)和半径定义的区域,称为“地理围栏”。iBeacon 通过定义具有标识符的区域来实现新的灵活性。这使得信标可以被固定在没有绑定到单一位置的对象上。例如,一个信标设备可以用来在一个移动物体周围设置一个区域,比如一辆食品卡车或一艘游艇。此外,相同的标识符可以被多个设备使用。这将使零售连锁店能够在他们所有的位置使用 iBeacon 设备,并让iOS设备知道什么时候进入其中任何一个。

第1节 隐私和位置

由于 iBeacon 是 Core Location 的一部分,因此需要使用相同的用户授权才能使用。 当应用程序尝试使用 iBeacon API 时,用户将看到相同的位置授权警报:

使用 Core Location 中的 iBeacon API 的应用程序将显示在“设置>隐私>定位服务”目录下,用户可以随时允许或拒绝应用程序对 iBeacon 功能的访问。此外,任何与 iBeacon 关联的蓝牙数据包都将被排除在 CoreBluetooth API 之外。与地理围栏区域监视一样,当处于活动状态时,状态栏将显示空心箭头。 使用测距时,状态栏将显示实心箭头。

第2节 iBeacon 精度

为了确保有效的用户体验,重要的是要考虑如何检测到信号的信号,并使用它来确定准确性。当一个iOS设备探测到信标信号时,它会利用信号的强度(RSSI或接收信号强度信号)来确定信标的远近,以及它对距离的估计的准确性。信号越强,越准确。信号越弱,iOS越不可靠。

通过将其与GPS在iOS平台上的工作方式联系起来,我们可以更好地理解精确度。当一个 iOS 设备可以很清晰地接收 GPS 信号,比如当一个设备在户外的时候,相对在轨道上 GPS 卫星无障碍物遮挡,那么定位就能更准确。这在地图应用程序中很容易看到,位置精度是由你当前位置指示器周围的蓝色圆圈表示的。如果一个装置在室内,或者卫星的视线被阻挡,一个大的蓝色圆圈表示的精确度较低。也就是说,这个设备可以位于蓝圈内的任何地方。随着对卫星的视线的改善(例如,该设备是在室外拍摄的,或者从背包中移走),精确度会得到提高,这是由一个较小的蓝色圆圈所代表的。由于接收到的信号强度更好,该设备可以缩小误差范围,定位更准确。

从使用 iBeacon 技术的设备接收信号,信号强度通常与设备离信标的距离有关。在理想条件下(即设备的天线和信标之间的畅通无阻的视线),距离越近,结果就越准确。

如图 1 所示,当一个设备远离信标时,信号强度将比接近时低。由于信号强度减弱,iOS 对信标的距离估计精度没有很高的准确度。这类似于上面的 GPS 例子中的蓝色大圆。

图 1:当设备远离信标时,信号强度会降低,因此精度估计值将会增加。

随着设备靠近信标,接收到的信号强度增加,因此接近度估计的准确度增加。 这将类似于GPS例子中较小的蓝色圆圈。 如图2所示,靠近信标的设备对其靠近发射信号的信标具有更高的可信度。

图 2:随着设备靠近信标,信号强度增加,提高准确度。

然而,就像GPS信号强度可以被建筑物影响或放置在背包、钱包或口袋里被削弱一样,灯塔的信号强度也会减弱。信号的衰减,或信号强度的丧失,可能是由许多因素引起的。信标周围的物理材料,如图 3 中所示的设备与信标之间的墙,将影响接收到的信号强度。这可能会使设备相信信标比实际更远。

图 3:物理物体和材料可以阻挡信号,降低接收信号的强度。

人体本身就是一个极好的蓝牙信号衰减器。简单来说把你的身体放置在设备和信标之间就会影响信号强度,从而降低准确度。图 4 显示当有人在 iOS 设备和信标之间进行物理定位时,信号强度减弱。

图 4:人体也可以阻挡信号。

在构建使用GPS或信标的应用程序时,精度是重要考虑参数的。

Core Location 对象所报告的值( CLLocation 类中的 horizontalAccuracy 属性,或 CLBeacon 类中的精度属性)表明了这种不确定度,或误差范围。两者都以米为单位。值越高,设备或信标位置的确定性越低。要记住,依赖于物理环境的低精度值可能是不可靠的。

#### 第3节 区域监测
类似于现有的地理栅栏区域监视,当设备进入或离开由信标定义的区域时,应用程序可以请求通知。当应用程序使用这个请求开始监视信标区域时,它必须指定 iBeacon 广播的 UUID 。虽然一个应用程序被限制在20个被监视的区域,但通过在多个位置使用单个 UUID,设备可以轻松地同时监视多个物理位置。使用前面表中所示的零售商店示例,设备可以使用相同的 UUID 监控3个不同的物理位置(旧金山,巴黎和伦敦)。与地理围栏相比这种基于 UUID 的方法的影响不敢相信:只需一行代码,应用程序就可以在任意数量的对象或位置周围建立监控区域。

除UUID外,应用程序还可以选择提供 major 和 minor 字段,以进一步指定要监视的信标区域。继续我们的零售连锁示例,如果应用程序仅指定信标区域的 UUID,那么当用户进入或离开任何零售商店时将被通知。由于 major 用于确定特定的商店,如果用户只想在进入特定商店时得到通知,应用程序可以使用UUID +major 来配置信标区域。或者也许用户只有在他们进入该商店中的特定部门时才被通知。在这种情况下,应用程序将使用 UUID + major + minor 值配置信标。这种粒度级别取决于应用程序开发人员,可以在运行时动态指定。

与现有的区域监视一样,当用户进入或退出信标区域时,应用程序将被通知。如果应用程序当前没有运行(例如,如果由于设备上的内存压力而终止了应用程序),则在后台启动应用程序,并发送通知。需要重点关注的一点是在 iOS 7 中,如果用户明确地不允许使用应用后台刷新(全部禁止或专门禁止的的应用程序),那么你的应用程序将不再接收区域监控通知。 但是,它可以继续使用测距 API 。

基于 BLE,可靠监测的范围将在几十米,这提供了比地理栅栏区域监测更准确的监测(通常在100米以上)。如上所述,在室内,地理围栏的准确度往往较低,所以使用 iBeacon 技术可以显着改善室内使用情况下的区域监测结果。然而,信标的物理定位、用户是否在口袋里有设备、或者是在用户前面或后面的信标设备都能影响到一个区域进入或退出的位置,从而影响精度。

第4节 测距

iOS 7 引入了一组新的 API ,用于确定使用 iBeacon 技术的附近的设备,这个过程称为“测距”。基于常见的使用场景,iOS 使用过滤器进行精度估计,以确定离信标的距离。
这个估计值使用以下四个邻近状态之一来表示:

状态值描述
Immediate设备在物理上非常靠近信标。很有可能直接挨着
Near从设备到信标的视线清晰,这表示接近大约1-3米。正如在精度部分所描述的那样,如果设备和信标之间存在障碍,导致信号衰减,那么即使设备处于这个范围内,也可能无法报告这个接近状态。
Far该状态表示可以检测到信标设备,但是准确度太低而无法确定 Near 或 Immediate . 需要注意的是 Far 不一定意味着物理上不靠近。如果指示的是“Far”,则依靠精度属性来确定估算距离。
Unknown信标的距离无法确定。 这可能表明测距刚刚开始,或者测量结果不足以确定状态。
第5节 iBeacon 用户体验考虑

尽管接近状态和准确度之间存在相关性,但映射不一定是1:1。考虑我们在全国范围内零售商店的例子,信标已经在店内部署。应用程序可能会使用区域监视来检测商店的入口,以触发本地通知,欢迎用户访问商店并邀请他们启动应用程序。为了避免惹恼用户,应用程序可能只想显示这个通知一次,只有第一次用户进入商店。

一旦进入应用程序,可以呈现定制的店内界面。如果包含在 iBeacon 广播中的主要价值代表特定的商店位置,则应用立即知道用户所在的商店。在理想状态下用户使用设备,打开屏幕,打开应用程序,在商店内开始测距所有信标。大型家装商店往往有许多走道和部门。通过将信标固定在每个通道的末端和部门内部,应用程序应该能够使用可以看到的信标的接近状态,应用程序可以在地图上显示用户的大致位置。

在这个例子中的许多情况可能导致接近状态为 Near 或 Immediate(例如,如果用户将他们的iPhone拿到具有信标设备定位的显示设备上);由于物理对象(通常是金属搁架,大体积显示项目等)或商店中的其他客户,应用程序可能只能看到 Far 的估值。在这种情况下,应用程序可能会显示一个界面,突出显示有关附近信标的信息,但不会将用户锁定到特定的信标。相反,应用可能希望让用户选择与他们最相关的项目(或者是由于他们的兴趣,或者是因为他们可以容易地识别哪个信标实际上是最接近的)。

第6节 Passbook 集成

Passbook 通行证也可以利用带有 iBeacon 技术的设备。通过包含信标的 UUID,当它在信标区域时,Passbook 通行证可以被关联。这与在传递的位置数组中指定纬度和经度值的方式相同。可以在传递信标位置的数组中指定UUID 以及(可选)major、minor 值。

部署 iBeacon

在准备部署基于 iBeacon 技术的任何实现时,您需要仔细评估解决方案的真实性能。

第1节 物理限制

iBeacon 设备使用 BLE 来广播信号。BLE 基于2.4 GHz频率,因此会受到各种物理材料(如墙壁,门或其他物理结构)的衰减。2.4 GHz 的频率也会受到水的影响,也就是说人体也会影响信号。这一点很重要,因为当蓝牙信号衰减或减弱时,这会影响 iOS 设备接收到的信号强度。如上所述,当接收到的信号强度减弱时,iOS 设备估算与 iBeacon 设备的距离的能力被降低。

第2节 iBeacon 校准

为了提供最佳的用户体验,在部署环境中执行校准至关重要。 在安装每个信标时,您应该执行校准步骤。核心位置使用一个估计模型,需要在离信标1米远的地方进行校准。 要执行此校准,应该:
1. 安装信标并发出信号。
2. 使用运行 iOS 7 或更高版本的 iPhone 或 iPod touch,并使用蓝牙4.0无线电,在1米距离内重复采样信号强度至少10秒钟。当读取这些信号强度读数时,应该保持设备纵向朝上,而设备的上半部分无遮挡。
3. 将设备在30厘米的线上前后缓慢移动,保持方向,并保持与测量设备的距离(见图)

  1. 在校准过程中,收集 CLBeacon 的 rssi 属性中报告的值。
  2. 平均收集的 rssi 值以获取测量功率值。
  3. 将此测量功率值应用于信标。 请参阅所使用的信标的详细信息,因为它们可能因制造商而异。

如上所述,物理环境会影响信号强度。 由于环境在安装位置之间几乎肯定会有所不同,因此对于安装的每个信标重复这些步骤是很重要的。

最佳实践

为了获得最佳的用户体验和成功部署,请务必考虑以下最佳做法:

  • 不建议在后台使用测距 API 。 为了获得最佳效果,在用户使用应用程序时进行测距。
  • 当使用测距 API 并且检测到多个具有 iBeacon 技术的设备时,CoreLocation 将按照它们的距离的从近到远的顺序报告信标。由于上面讨论的信号衰减问题,这个顺序可能不正确。例如,如果两个信标被固定到物体上,并且被iOS设备探测到,但是一个信号比另一个信号要强烈得多,但是在物理上离得更远,这可能会导致更远处的信标被报告。应用程序应仔细检查由信标报告的邻近区域,并且如果所有信标都位于 Far 区域,则考虑向用户呈现在附近检测到两个对象,并允许用户选择感兴趣的对象。
  • 利用位置授权警报中的可选文本字段来解释应用程序要求使用用户位置的原因。如果你的应用在屏幕上显示,请解释为什么用户应该同意允许应用了解其位置的好处。可以使用应用程序的 Info.plist 文件中的 NSLocationUsageDescription 项指定此可选文本。
  • 如果要购买带有 iBeacon 技术的第三方设备,了解如何配置这些设备以及将要执行安装,维护等操作非常重要。
  • 在现场部署信标设备时,一定要培训可能需要与他们交互的员工。例如,如果您正在部署零售解决方案,请确保您的零售销售人员接受 iOS 应用程序与设备交互的培训,对您的客户有哪些好处,所支持的 iOS 设备型号以及解决问题的建议等。
  • 如果计划在所在地区设置标牌,则鼓励拥有 iBeacon 商标和徽标许可证。请访问 https://developer.apple.com/ibeacon 申请 iBeacon 许可证。

    常见问题和解答

    1. 我可以使用iBeacon技术在室内时精确地显示用户在地图上的位置吗?

    由于信号强度的问题以及部署环境的不同,iBeacon技术不适用于特定的位置识别。它应该能够提供房间级别的准确性,但是构建成功部署需要考虑许多因素。信标的数量,定位的位置,预期用例以及其他许多因素都需要进行检查,以提供良好的用户体验。

    2. 如何防止其他应用程序使用 iBeacon 技术检测我的设备?

    为了使应用程序能够响应传输 iBeacon 广播的设备,它必须知道广播中包含的 UUID。由于信标设备正在使用 BLE 进行广播,UUID 有可能被“嗅探”,一旦 UUID 已知,则可以由其他应用程序使用。

    3. 使用 iBeacon 技术是否会将用户的隐私数据置于危险之中?

    iBeacon 广播只包含 UUID,major 和 minor 值。这是一个单向广播; 在 iBeacon 设备和 iOS 设备之间没有经由 iBeacon 技术的双向通信,因此 iBeacon 技术不能通过信标来接收来自用户的信息。如何响应由 iBeacon 广播触发的通知,是应用程序单方面的问题,这与使用现有的地理围栏技术没有区别。

    4. 可以使用 iOS 设备发送 iBeacon 广播吗?

    可以。 任何应用程序都可以使用 Core Bluetooth APIs 发送 iBeacon 广播。

    5. 当应用程序在后台时,可以使用 iOS 设备发布 iBeacon 广播吗?

    不可以。对于 iOS 设备发布 iBeacon 广播,必须设备解锁、屏幕打开、应用程序运行的情况下使用此功能。

    6. 如果应用程序开始监视信标区域,这将如何影响电池性能?

    支持 iBeacon 的 iOS 设备可以后台运行以很低电力消耗,有效地监控 iBeacon 区域。监控 iBeacon 区域比在后台运行正常位置更新的能力要低得多。


本文没有任何内容旨在修改iOS开发人员计划许可协议,Mac开发人员计划许可协议,iOS开发人员计划企业许可协议,iOS开发人员大学协议,iOS开发人员计划大学生许可协议(以下简称“协议”)和/或“App Store评论指南”,因为这些指南可能会由苹果不时修改。如果协议或指南与本文件有冲突或不一致,则以协议或指南为准。苹果公司可能会随时,不时提前通知您修改本文档以及此处所述的任何特性,功能或服务。您理解,任何此类修改都可能要求您自费更改或更新您的应用程序。对于您或任何其他方因任何修改或中断本文档或此处所述的任何特性,功能或服务而引起或与之有关的任何损失,损害或成本,Apple不承担任何责任。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值