iBeacon入门

iBeacon入门

iBeacon入门概述

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

iBeacon有3个不同的受众。 根据您的角色,您可能会属于上述一类,两类或全部三类。

  • 应用程式开发人员

如果要向应用程序添加新的位置感知,则可以在iOS设备移入或移出信标区域时使用iOS中的核心位置API进行通知。 您还可以确定与生成iBeacon广告的设备的近似距离。 您需要入门的所有内容都包含在iOS SDK中,不需要其他许可证。

  • 人们使用iBeacon技术部署设备

无论您是管理运动场,博物馆,零售店,还是可以使用信标的众多其他物理位置,您都需要了解这些设备的工作原理,信号强度和材料方面的问题,并了解如何校准并测试您的部署。 如果您有兴趣在会场的标牌上使用iBeacon徽标,但不会使用iBeacon技术制造设备,则在使用iBeacon徽标之前,您需要获得iBeacon徽标许可。 请访问https://developer.apple.com/ibeacon/申请使用iBeacon徽标的许可证。

  • 人们使用iBeacon技术制造设备

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

采用iBeacon技术的设备

采用iBeacon技术的设备可以使用纽扣电池供电一个月或更长时间,或者一次使用较大的电池一次运行数月,或者可以长期外部供电。iOS设备也可以配置为生成iBeacon广告,尽管此功能的范围受到限制。这适用于诸如销售点或信息亭应用程序之类的用途,或者适合于在有人正在积极使用该应用程序的情况下在短时间内成为iBeacon的应用程序。

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

领域

大小

描述

UUID

16字节

应用程序开发人员应定义特定于其应用程序和部署用例的UUID。

Major

2字节

进一步指定特定的iBeacon和用例。 例如,这可以在由UUID定义的较大区域内定义子区域。

Minor

2字节

允许进一步细分应用程序开发人员指定的区域或用例。

UUID,主要和次要值提供iBeacon的标识信息。一般而言,此信息本质上是分层的,主要字段和次要字段允许细分由UUID建立的身份。可以通过使用OS X中的uuidgen命令行实用程序或使用NSUUID Foundation类以编程方式来生成UUID。

下表显示了如何将这些值用于全国性零售商店的示例。UUID由所有位置共享。这允许iOS设备使用单个标识符来识别具有单个区域的任何商店。然后,为每个特定的商店(旧金山,巴黎和伦敦)分配一个唯一的主要值,从而使设备可以识别其所在的特定商店。在每个单独的商店中,部门均获得单独的次要值,尽管各个部门的次要值相同商店,以使设备上的应用更容易识别部门。

店面位置

旧金山

巴黎

伦敦

UUID

D9B9EC1F-3925-43D0-80A9-1E39D4CEA95C

Major

1

2

3

 

Minor

服装

10

10

10

家庭用品

20

20

20

汽车行业

30

30

30

使用此信息,iOS设备可以识别何时进入或离开商店之一,它是哪个特定商店以及用户可能所在的部门。这些值由部署信标设备的人员或组织确定。 UUID以及主要和次要值未在Apple中注册。

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

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

iBeacon软件-核心位置API

在iOS 7之前,Core Location使用的地理位置由地理位置(纬度和经度)和半径(称为“地理范围”)定义。iBeacon通过使用标识符定义区域,将灵活性提高到一个新水平。这允许将信标粘贴到未绑定到单个位置的对象上。例如,信标设备可用于在可移动物体(如餐车)或游轮上设置区域。此外,多个设备可以使用相同的标识符。这将使零售连锁店可以在所有位置使用信标,并允许iOS设备知道何时进入它们中的任何一个。

  • 隐私权和位置

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

         在CoreLocation中使用信标区域API的应用程序将显示在“设置”应用程序中的“隐私”>“位置服务”下,用户可以随时允许或拒绝应用程序访问iBeacon功能。 此外,任何与iBeacon关联的蓝牙数据包都将从CoreBluetooth API中排除。

与地理围栏区域监视一样,在激活状态下,状态栏将显示空心箭头。使用测距时,状态栏将显示实心位置箭头。

  • iBeacon的准确性

为了确保有效的用户体验,重要的是考虑如何检测到来自信标的信号并将其用于确定准确性。当iOS设备检测到信标信号时,它会使用信号强度(RSSI或接收信号强度指示)来确定与信标之间的接近度以及其接近度估计的准确性。信号越强,iOS对信标的距离越有信心。 信号越弱,iOS对信标的信心就越差。

准确度可以通过将其与当今GPS在iOS中的工作方式联系起来来最好地理解。当iOS设备可以清楚地接收GPS信号时,例如,设备处于室外,并且在运行中GPS卫星的视线不受阻碍,则可以更准确地确定您的位置。这可以在“地图”应用程序中轻松看到,该应用程序的位置精度由当前位置指示器周围的蓝色圆圈表示。如果设备在室内或到卫星的视线被遮挡,则大的蓝色圆圈表示精度较低。也就是说,设备可以位于蓝色圆圈内的任何位置。随着到卫星的视线改善(例如,将设备带到室外或从背包中取出),精度会提高,以较小的蓝色圆圈表示。利用更好的接收信号强度,该设备可以缩小误差范围,并对其位置更有信心。

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

如图1所示,当设备距离信标较远时,信号强度会比关闭时低。 由于信号强度的降低,iOS对信标的接近度估计的准确性没有很高的信心。这类似于上面的GPS示例中的蓝色大圆圈。

         随着设备越来越靠近信标,接收信号强度会增加,因此接近度估计的准确性也会提高。 这将类似于GPS示例中的较小的蓝色圆圈。 如图2所示,距离信标更近的设备对其与发出信号的信标的接近程度具有更高的置信度。

         但是,就像GPS信号强度可以通过建筑物或放置在背包,钱包或口袋中的物理物体减弱一样,信标的信号强度也可以降低。信号衰减或信号强度损失可能由许多因素引起。围绕信标的物理材料(例如图3中设备与信标之间的壁)将影响接收信号的强度。这可能会导致设备相信信标比实际距离更远。

         人体本身就是蓝牙信号的极佳衰减器。简单地将您背向信标(即您的身体位于设备和信标之间的位置)会影响信号强度,从而降低准确性。图4显示,当有人物理上放置在iOS设备和信标之间时,该信号强度会降低。

在构建使用GPS或信标的应用程序时,重要的是要考虑这种准确性。核心位置对象报告的值(CLLocation类中的水平精度属性或CLBeacon类中的精度属性)指示此不确定性级别或误差范围。两者均以米为单位。值越高,设备或信标位置的确定性越低。请记住,根据实际环境,可能无法实现较低的精度。

  • 区域监控

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

除了UUID,应用程序还可以选择提供主字段和次字段,以进一步指定要监视的信标区域。继续我们的零售链示例,如果该应用仅为信标区域指定了UUID,那么当用户进入或离开任何零售商店时,都会收到通知。由于主要字段用于确定特定商店,因此,如果仅在进入特定商店时希望通知用户,则应用程序可以使用UUID +主要值来配置信标区域。或者,也许只有当用户进入该商店的特定部门时,才有兴趣收到通知。在那种情况下,应用程序将使用UUID +主+次值来配置信标。粒度级别取决于应用程序开发人员,可以在运行时动态指定。

与现有区域监视一样,当用户进入或退出信标区域时,将通知该应用程序。如果应用程序当前未在运行(例如,由于设备内存不足而终止),则该应用程序将在后台启动并传递通知。一个重要的考虑因素是在iOS 7中,如果用户明确禁止后台应用程序刷新(全局或专门针对您的应用程序),则您的应用程序将不再接收区域监视通知。但是,它可以继续使用测距API。

基于低功耗蓝牙技术,典型范围将在数十米之内,这将提供比地理围栏区域监视更为精确的监视(通常最小为100米)。 如上所述,地理围栏在室内往往不太准确,因此使用iBeacon技术可以显着改善室内用例的区域监视结果。但是,准确性可能会受到信标的物理位置,用户是否将其设备放在口袋中,或者信标是在用户前面还是后面的影响,都可能影响进入区域的位置或退出。

  • 测距

iOS 7引入了一组新的API,用于使用iBeacon技术确定与设备的近似距离,该过程称为“测距”。 根据常见的使用场景,iOS将过滤器应用于准确性估计,以确定估计到信标的距离。使用以下四个邻近状态之一指示此估计:

邻近状态

描述

即时

这表示设备在物理上非常接近信标,具有很高的置信度。 非常有可能直接被信标保持住。

在从设备到信标的清晰视线下,这表示接近1-3米。 如准确性部分所述,如果设备和信标之间存在阻碍信号衰减的障碍物,则即使设备在此范围内,也可能不会报告此近距离状态。

此状态表明可以检测到信标设备,但是准确性的置信度太低,无法确定“接近”还是“立即”。一个重要的考虑因素是,“远”状态并不一定意味着“不在物理上靠近”信标。当指示为“远”时,请依靠准确性属性来确定与信标的潜在距离。

未知

无法确定信标的接近度。这可能表明测距才刚刚开始,或者没有足够的测量值来确定状态。

  • iBeacon用户体验注意事项

虽然邻近状态和准确性之间存在相关性,但映射不一定是1:1。考虑我们全国零售商店的示例,其中在整个商店中都部署了信标。应用程序可能会使用区域监视来检测商店的条目,以触发本地通知,欢迎用户进入商店并邀请他们启动应用程序。为避免惹恼用户,该应用可能只希望在用户第一次进入商店时才显示一次此通知。

一旦进入应用程序,就可以显示自定义的店内界面。如果iBeacon广告中包含的主要价值代表特定的商店位置,则该应用程序会立即知道用户所在的商店。将应用程序放在最前面,将设备放在用户手中,然后打开屏幕,这是开始的理想情况 存储中所有信标的范围。大型的家居装饰店往往有许多过道和部门。将信标放置在每个通道的末端和部门内部,应用程序应该能够使用可见状态的信标接近状态,该应用程序可以在地图上显示用户的大概位置。

尽管此示例中的许多情况可能会导致接近或即时接近状态(例如,如果用户将iPhone举到放置信标设备的特定显示器上),由于物理物体(通常是金属架子,体积较大) 显示商品等)或商店中的其他客户,则该应用可能只会看到Far的邻近区域。 在这种情况下,应用程序可能会显示突出显示附近信标信息的界面,但不会将用户锁定在特定信标中。 相反,应用程序可能希望让用户选择与他们最相关的项目(由于他们的兴趣或因为他们可以轻松地确定哪个信标实际上是最接近的)。

  • 存折整合

存折通行证也可以利用具有iBeacon技术的设备。通过包含信标的UUID,可以使存折通过在信标区域内。这与在通行证的locations数组中指定纬度和经度值的方式相同。您可以在信标密钥的通行证中将UUID以及(可选)主值和次值指定为数组。

部署iBeacon

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

  • 物理限制

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

  • 校准iBeacon

为了提供最佳的用户体验,在部署环境中执行校准至关重要。安装每个信标后,您应该执行校准步骤。核心位置使用估计模型,该模型需要在距信标1米的距离处进行校准。要执行此校准,您应该:

•安装信标并使其发出信号。

•使用运行iOS 7或更高版本且具有Bluetooth 4.0无线电的iPhone或iPod touch,在1米的距离处重复采样信号强度至少10秒钟。读取这些信号强度读数时,应以纵向方向握住设备,并且设备的上半部不受阻碍。

•在30cm的线上缓慢前后移动设备,保持方向,并与测量设备保持等距(见图)。

•在校准过程中,收集CLBeacon的rssi属性中报告的值。

•对收集的rssi值求平均值,以获得“实测功率”值。

•将此测得的功率值应用于信标。请查阅为所用信标提供的详细信息,因为制造商之间可能会有所不同。

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

最佳实践

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

•不应在后台使用Ranging API。为了获得最佳结果,应在您的应用程序位于最前端并且用户与您的应用程序进行交互时使用范围调整。

•当使用测距API并检测到具有iBeacon技术的多个设备时,Core Location将按照最佳推测信标的顺序报告信标。由于上面讨论的信号衰减问题,此顺序可能不正确。例如,如果将两个信标附加到对象并被iOS设备检测到,但是一个信号比另一个信标要强得多,但在物理上距离较远,则可能导致首先报告距离较远的信标。应用程序应仔细检查信标报告的邻近区域,如果所有信标都在“远”区域中,则应考虑向用户显示已在附近检测到两个对象,并允许用户选择它们感兴趣的对象。

•利用位置授权警报中的可选文本字段来说明应用程序为何要求使用用户的位置。 如果您的应用程序具有内置屏幕,请说明为什么用户应该同意允许该应用程序知道其位置的好处。 您可以使用应用的Info.plist文件中的“ NS位置使用说明”键来指定此可选文本。

•如果您购买的是具有iBeacon技术的第三方设备,那么了解如何配置这些设备以及谁来进行安装,维护等工作非常重要。

•在现场部署信标设备时,请确保培训可能需要与其交互的所有员工。例如,如果您要部署零售解决方案,请确保您的零售销售人员已接受有关iOS应用与设备交互的方式,对客户有何好处,受支持的iOS设备型号,故障排除建议等方面的培训。

•如果您打算在自己的位置设置标牌,建议您拥有iBeacon商标和徽标许可证。请访问<https://developer.apple.com/ibeacon>申请iBeacon许可证。

常见问题与解答

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

答:由于围绕信号强度和部署环境中的可变性的问题,iBeacon技术不适用于特定的位置识别。它应该能够提供房间级别的准确性,但是要成功构建部署,需要考虑许多因素。为了提供良好的用户体验,需要检查信标的数量、位置、预期的用例以及更多因素。

 

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

答:为了使应用程序能够响应传输iBeacon广告的设备,它必须知道广告中包含的UUID。 由于信标设备正在使用BLE进行广告发布,因此有可能让UUID处于“嗅探”状态,一旦知道该UUID,它便可以被其他应用程序使用。

 

问:使用iBeacon技术是否会使用户的私人数据面临风险?

答:iBeacon广告仅包含UUID,主要和次要值。这是单向广播;信标设备和iOS设备之间不会通过iBeacon技术进行双向通信,因此,信标不能使用iBeacon技术来接收用户的信息。 应用程序响应iBeacon广告触发的通知所要做的事情是另外一回事,但这与使用现有的地理围栏技术没有什么不同。

 

问:我可以使用iOS设备发布iBeacon广告吗?

答:可以。 任何应用程序都可以使用Core Bluetooth API发送iBeacon广告。

 

问:当我的应用程序处于后台时,我可以使用iOS设备发布iBeacon广告吗?

答:不能。对于要发布iBeacon广告的iOS设备,要求此功能的应用必须位于最前面,并且屏幕必须打开且设备必须解锁。

 

问:如果我的应用开始监视信标区域,这将如何影响电池性能?

答:支持iBeacon的iOS设备可以在后台以有限的功耗有效地监视iBeacon区域。与在后台不断运行正常位置更新相比,监视iBeacon区域所需的功率要少得多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值