我一直在用他们的Android SDK玩Estimote iBeacons。但是,我仍然对为什么有这么多SDK可用而感到困惑。
iBeacons只是标准的蓝牙设备,具有蓝牙低功耗(BLE)蓝牙4.0规范的一部分。只要您拥有“Bluetooth Smart Ready”(iPhone 4S +和Android 4.3+)设备,您就能够检测到所有iBeacons,无论信标制造商如何。 Android(Bluetooth Low Energy Connectivity)和iPhone(iOS Developer Library)都提供系统级库来开发应用程序以使用iBeacons。
那么为什么有这么多用于连接iBeacons的SDK(Gimbal,Estimote,Radius Networks,open source Android API)。
所以我有几个问题:
为什么有这么多SDK可用?制造商可以锁定他们的信标只能通过他们的SDK访问吗?
Android 4.3 Bluetooth Connectivity library可以查询并查找任何iBeacon吗?
答案 0 :(得分:13)
了解Beacons是Bluetooth LE的特定应用。蓝牙LE是一种通用的短距离通信技术,可以执行许多操作,例如将音频传输到扬声器。
Android的内置蓝牙API和Apple的CoreBluetooth
API等低级API适用于通用蓝牙应用。他们不做灯塔特定的事情,如:
为了完成这些工作,您需要编写自己的软件(这很容易出错并且非常耗时),或者使用预先构建的更高级别的库。对于iOS设备,Apple具有使用CoreLocation
API内置于操作系统的信标功能。 Android没有这样的内置库。
由于Android没有内置信标库,因此不同的第三方已经构建了它们。我的公司于2013年9月成为第一个,现已发展成为今天的开源Android Beacon Library。
其他销售信标的公司通常会创建自己的库(有些基于这个开源库,有些则不是),以支持其信标或基于它们的专有云服务的专有功能。
所以你最后两个问题的答案是:
是的,Android 4.3蓝牙连接库可以轮询并查找任何iBeacon,但您必须在该库之上编写大量代码才能实现。
使用附加库的优点是您不必编写和调试所有代码。您可以专注于需要进入应用程序的逻辑,而不是将所有时间花在低级信标处理上。
完全披露:我是Radius Networks的总工程师,也是Android Beacon Library的作者。