2015-04-05 33 views
0

我正在创建一个不遵循Apples iBeacon规范的BLE Beacon。原因是“灯塔”将是一个arduino设备,应用程序也应该能够沟通并指示它执行操作。这在iOS上支持吗?我听说iOS 8的传言通过蓝牙锁定了通用设备广告。在iOS中使用通用BLE信标?

在此先感谢。

回答

1

是的,您可以使用CoreBluetooth API来做到这一点,但根据您使用的是哪种类型的蓝牙LE广告,存在一些限制。

1.厂商广告

您可以阅读使用CoreBluetooth制造商广告(最多24个字节)的所有字节,但只有当应用程序在前台。在后台,你将不会有任何回调。这通常与第二个iBeacon广告搭配,可以在iOS的后台将应用程序唤醒。对于这种类型的广告的一个例子,请参见AltBeacon specification.

2. GATT服务广告

甲GATT服务广告检测将由CoreBluetooth被发送到一个应用程序,即使应用在后台,提供该应用程序专门寻找信标的GATT服务UUID。这种方法的缺点是数据有效载荷通常仅限于2字节服务UUID之后的18个字节。

其他信息

在这两种广告类型的情况下,可以连接到使用关贸总协定的设备,读取和写入数据。但请注意,一旦连接设备,通常会停止发布广告作为灯塔。

上述两项工作都与iOS 8中描述的一致。很难预测未来,但Apple似乎不太可能锁定上述两种用例,因为它们广泛用于除信标之外的蓝牙LE应用程序。

您可以在this blog post中看到阅读这些广告的基本步骤。虽然这篇文章是专门介绍Apple如何过滤出iBeacon广告,但如果您制作自己的定制制造商广告,它将允许您按照文章所述读取字节。

为了完整起见,上述两种广告类型均可由Android设备在前景和背景中选取。

+0

问题,这些解决方案不要求CoreBluetooth有扫描模式吗? – rclai 2016-01-20 16:14:00