Android上的iBeacon SDK

ibeacon SDK

信标的可能用例和业务模型,即使在建筑物内部也能实现与位置相关的用户交互,目前正引起激烈的争论。. 店内广告和折扣, 移动支付, 导航, 公共交通, 公共建筑和博物馆的本地化以及家庭自动化只是冰山一角. 当然,无所不在的数据收集 – 现已推出,并且具有精确的位置信息. 在了解有关iBeacon技术的更多信息之前, 我们还将在文章中提及iBeacon SDK.

什么是炒作?

苹果公司基于低功耗蓝牙技术开发的iBeacon协议受多种设备支持. 本文介绍了iBeacons和低功耗蓝牙,并以开发基于位置的购物清单的Android应用为例,展示了应用与iBeacons的位置相关的交互. 该实现基于MOKOSmart iBeacon SDK.

信标, 蓝牙 4.0, 博美, 聪明. ot?

iBeacon的基本技术是蓝牙. 低功耗蓝牙 (博美), 通常称为Bluetooth Smart营销标签, 已包含在版本中 4.0 蓝牙标准. BLE与称为Bluetooth Classic的先前版本不向后兼容. 蓝牙 4.0 指定符合标准的设备必须实现一个或两个变体, 即. 低能耗或经典.

几乎所有当前的智能手机(例如iPhone)都实现了BLE 4+ 和三星Galaxy 3+. iPhone既可以充当iBeacon信号的接收者,又可以充当 – 不像Android – 作为一个 信标 本身. Android包含API版本的BLE驱动程序 18, 即. 安卓系统 4.3. 顺便, 当前的计算机也具有BLE功能. 在Windows中, 然而, 仅在Windows上提供驱动程序 8 从2011年中开始, BLE已在Apple计算机上可用.

BLE继续支持各种外围设备,例如心率监视器和玩具直升机, 温度计, 健身器材和牙刷, 是, 牙刷和运动鞋.

与iBeacons相关的有趣的是Sensor

德州仪器(TI)的标签, 它不仅可以充当iBeacon,还可以测量温度, 湿度, 压力, 和加速. 传感器标签还带有陀螺仪, 磁力计, 和两个硬件按钮. 在传输和显示演讲者手的湿度和温度的同时,远程控制演示文稿的理想设备. 我认为我的下一个沙坑项目将是怯场. 您可以在蓝牙官方网站上找到设备的详细列表。.

关贸总协定已准备就绪

设备用来交换数据的通信模型称为GATT – 通用属性配置文件. GATT定义了客户端和服务器的角色. 客户端通过服务从服务器请求数据. 一个服务将几个原子键/值对分组, 被称为特征. 服务和特征都通过UUID进行标识,并且还可以包含进一步的描述. 服务及其特征以配置文件的形式进行分类; 该规范定义了医疗保健领域中的全部范围, 运动和健身以及 – 在我们的情况下很有趣 – 接近感应. 可以在GATT规范下的Bluetooth开发人员门户中找到各个配置文件及其服务和特性。.

加特·伊巴肯SDK

到达灯塔

那么什么是iBeacons? iBeacon是一项非常简单的技术 (和Apple的商标,可实现与应用程序的位置相关的交互. 信标发出一个可以被BLE兼容设备接收并由其上安装的应用程序处理的信号信号包含信标的标识和接收强度. 信标本身就是, 因此 – 与新闻界的不实陈述相反 – 无法传递内容或跟踪客户行为. 这是接收应用程序以及开发人员的责任.

iBeacon IRL

在德国大规模部署iBeacons可能需要很长时间, 但是有一些来自美国和荷兰的例子. 例如, 美国职棒大联盟已配备 28 iBeacons的体育场馆并使用它们, 除其他事项外, 在MLB应用中签到 “在球场”.

在安特卫普的鲁本斯故居安装了一个展示柜, 为访客提供背景信息,例如绘画X射线和寻宝游戏.

就尺寸而言,最典型的例子来自苹果本身. 过度 250 苹果商店已经配备了iBeacons. 与Apple Store应用结合使用, 位置相关的消息发送给商店中的买家. 然而, 当前可能的交互作用似乎非常有限: 初次审核仅报告两种不同 (而且很通用) 他们本应收到的消息. 未提供有关附近单个产品的特别优惠或特定信息.

功能性

iBeacon SDK不使用单独的BLE配置文件, 而是蓝牙广告套餐, 即. 广播包, 用于发现蓝牙设备. 如果您对包装的确切结构感兴趣, 你可以看一下, 例如, 在Adam Warski的博客上.

这样的程序包定期发送,可以通过GATT配置. 它包含信标的UUID, 通常由制造商预先配置. 因此,所有MOKOSmart信标都发送相同的UUID. 主要和次要ID也用于识别单个信标. 主要ID可以代表, 例如, 连锁店中商店或饭店的分支, 次要ID是单个架子或桌子.

此外, 信号强度包含在广告包装中, 可以用来测量接收器到信标的距离. 然而, 您不能在这里期望高精度, 因为信号可能会受到诸如家具或人的空间障碍物的阻碍.

IBeacon SDK为应用程序与该信息的交互提供了两个概念: 测距和区域监控. 测距时, 确定到信标的距离. 由于上述错误, 这只有三个阶段. “即时” 是几厘米的距离, “近” 是几米, “远” 超过十米的距离. 仅在接收应用程序处于活动状态时才可以进行测距.

这对于区域监视不是必需的. 在这种模式下, 当进入或离开一个或多个信标定义的区域时,也可以通知不活动的应用程序. 最迟到现在,很清楚是什么使该技术对广告和零售具有吸引力. 此外, 对于大多数信标, 可以配置传输强度和间隔,以根据当地情况优化电池寿命.

“大多数信标” 表示市场上有多家iBeacons制造商. 事实上, 有很多: MOKOSmart, Kontakt.io, 冰, 我感激你, 和云台. 除了硬件, 这些制造商还提供iBeacon SDK服务和云解决方案来管理信标. 我们中的爱好者可以使用Raspberry Pi或Arduino相对轻松地自行设置iBeacon发射器.

闪烁的清单

让我们为实现示例假设以下情况: 开发商星期六早上在超市里. 饥饿的孩子在家里等着,下午在学校里有个义卖. 只有这样,周末才能真正开始. 这么好的理由快点. 不幸, 购物清单很长,不适合超市的布局. 如果超市在不同部门都配备了iBeacons, 购物清单应用可以突出显示适当的条目,并显着降低 (当然完全是虚构的) 开发商.

由于我们的应用必须与蓝牙通信, 我们首先需要Android清单中的BLUETOOTH和BLUETOOTH_ADMIN授权. 为了能够使用Estimote API提供的服务与iBeacons进行交互, 我们还必须使其公开,并将下载的API放在我们的libs /目录中.

我们的原型包括一个简单的, 预填充列表和预定义区域, 即. 超市的部门. 列表条目知道将其分配给哪个区域. 在我们的例子中, 我们只为每个区域分配一个信标. 也可以将信标列表合并到一个区域中. 主要活动负责识别当前区域,并将此信息转发给适配器, 负责突出显示列表条目. 此外, 我们添加了选择活动区域而不使用信标的选项,以使我们的UI在无需其他硬件的情况下就可以测试.

在活动的“创建”方法中, 我们为我们的应用实例化了MOKOSmart的Beacon Manager. 通过使适配器知道当前区域并定义信标扫描的间隔,我们使用侦听器进行区域监视. 在这个例子中, 我们定义应该扫描一秒钟,然后 250 ms应该等待. 相对积极地选择这些值以在测试中获得快速结果. 事实上, 响应与vs之间的困难平衡. 满足电池寿命. 在这个原型中, 我们还用虚拟值填充购物清单. 我们开始或停止对 () 开始或停止 () 主要活动方法.

物品清单

该适配器实现为android.widget.Array适配器的派生版本,并覆盖get视图 () 方法, 对于要显示的每一行都会调用. 项目标题写在版面中定义的评论的第一行, 在第二个分配的区域.

如清单所示 1, 输入的区域将转移到打开的输入区域中的适配器 () MonitoringListener的回调, 分配给我们的BeaconManager: 项目列表适配器. 隔离 (地区). 调用getView时 (), 这将检查行中条目的区域是否与当前区域匹配. 如果是这样的话, 它为线条的背景上色. 附加地或替代地, 也可以通过排序列表将当前区域的条目放在开头.

该应用程序的代码很清楚; 接收iBeacon信号并在应用程序中处理它们并不需要太多的实现工作. iBeacon概念的范围和监视已映射在MOKOSmart iBeacon SDK中,因此可以直观地使用它们. 该应用程序的完整源代码可以在GitHub上找到.

结论与展望

我们发现使用MOKOSmart iBeacon SDK与iBeacons进行交互很容易. 因此,我认为实施技术不会遇到重大障碍, 而是在信标的部署和传输功率的调整中. 当位置改变时,这些参数直接影响应用程序的响应能力. 任何状况之下, 平衡应该很困难.

对于特别有趣, 例如. 乙. 在家庭自动化领域, 我考虑将iBeacon与传感器结合使用, 如上述德州仪器(TI)的传感器标签中所述. Estimote还将在市场上推出带有Estimote Stickers的带有运动和温度传感器的移动信标. 第一个开发人员预览版应该在10月底发布 2014, 但到年底时仍未运送任何工具包 2014.

这项技术能否可靠地映射“室内导航”应用领域还有待观察. 由于蓝牙信号易受干扰因素的影响, 需要使用相应区域的iBeacon信号进行强光照,并需要使用三角测量和房间平面图进行位置计算. MOKOSmart提供适当的解决方案 (室内导航iBeacon SDK) 和其他各种制造商,例如LabWerk, 但是作者没有任何实际的报道.

随着与iBeacons交互的应用程序的开发, 安全性和数据保护方面也必须考虑在内. 由于信号简单, iBeacon容易被欺骗, 在开发过程中不应忘记. 可以基于用户行为收集的数据(例如当前位置和移动配置文件)也非常需要保护.

MOKOSMART iBeacon SDK

ibeacon SDK解决方案

 

与专家交谈