我们可以像监视信标(进入区域,退出区域)一样监视BLE服务吗?

时间:2019-01-08 17:09:15

标签: android ios bluetooth-lowenergy ibeacon

我正在努力解决常规BLE服务和Beacon之间的区别。基于此post BLE信标帧只是BLE广告帧内的专用有效负载。 iOS和Android都允许我们监视是否进入或退出信标区域。 BLE服务是否可以做同样的事情?

1 个答案:

答案 0 :(得分:1)

简短的回答是是的,您可以通过类似的方式使用BLE服务监视信标。但是有缺点:

术语BLE服务更精确地称为Bluetooth LE GATT服务。这比蓝牙LE Beacon使用的独立蓝牙LE广告要复杂得多。

要使用蓝牙LE信标:

  1. Bluetooth LE设备以固定的一系列字节来通告Bluetooth LE广告,该字节固定地标识了信标,通常以1Hz到10HZ之间的速率发送一个数据包。

  2. 移动电话通过Bluetooth LE扫描收听Bluetooth LE广告。

  3. 手机使用信标SDK(例如,iOS上的CoreBluetooth和Android上的Beacon Library或其他Android上的信标)将广告在这些扫描中的出现/消失转换为“进入区域”和“退出区域”事件。信标标识符嵌入在广告中,并由SDK通过这些事件传递。

要使用Bluetooth LE GATT服务,步骤1和2与上述相同。但是事情变得更加复杂了:

  1. 手机上的软件与蓝牙LE设备建立连接。
  2. 手机上的软件向Bluetooth LE设备查询GATT服务
  3. 手机上的软件向蓝牙LE设备查询特定GATT服务支持的GATT特性
  4. 手机上的软件读取GATT特征值,该值将返回存储在Bluetooth LE设备内部的值。对于类似信标的用例,此特征通常会存储一个信标标识符,就像在传统的蓝牙LE信标中嵌入广告本身一样。
  5. 定制软件根据嵌入在GATT特征中的标识符将托管Bluetooth LE GATT服务的该设备的外观/外观转换为进入/退出区域事件。

使用上述技术,您当然可以使用信标之类的Bluetooth LE服务。但这要复杂得多,并且需要定制软件来完成。这就是为什么使用更标准的不使用服务的方法更为普遍的原因。