【问题标题】:How to check if my phone entered the Estimote beacon's range?如何检查我的手机是否进入了 Estimote 信标的范围?
【发布时间】:2015-02-20 00:00:06
【问题描述】:

我正在尝试使用 Estimote 信标在 Android Studio 中制作应用。 我需要一张这样的支票。当我的手机进入我的信标范围时。

我的应用程序将显示一条消息,例如“您进入了信标区域!”

谢谢。

【问题讨论】:

  • 这个问题太宽泛了。 Android 中没有内置的 iBeacon 协议,因此不仅仅是即插即用的方式。您可以使用(这个)[github.com/AltBeacon/android-beacon-library] 之类的库,但要让它发挥作用还有很多工作要做。
  • 仅仅因为 Android 可以响应 Apple iBeacon 信号,并不意味着您应该这样做。将 iBeacon 支持添加到 Android 所需的 hack 会强制手机从低功耗状态唤醒或阻止手机进入低功耗状态,以便蓝牙无线电可以定期扫描。这会耗尽电池电量(最终导致用户删除您的应用或关闭蓝牙)。最好使用上面提到的使用标准 BLE 4.0 协议的 AltBeacon 规范和硬件,而不是只有 iOS 设备才能有效监控的专有协议。

标签: java android ibeacon ibeacon-android estimote


【解决方案1】:

如果您想在有人进入信标范围时发出通知,则需要实施区域监控。您应该使用 Estimote SDK 定义一个区域:如果您只希望它使用单个信标,您应该使用所有值(UUID、Major 和 Minor)定义该区域。

如果您使用 onEnteredRegion 方法设置,当有人到达信标范围时会触发通知。还有 onExitedRegion,用于在用户离开该区域时触发操作。您可以在 BeaconManager 类下的 SDK 文档中查找它:http://estimote.github.io/Android-SDK/JavaDocs/

干杯。

【讨论】:

    【解决方案2】:

    使用Estimote SDK 或使用BluetoothAdapter.startLeScan(android.bluetooth.BluetoothAdapter.LeScanCallback) 实现您自己的通用BLE 解决方案。

    基本逻辑:

    1. 开始扫描
    2. 检查已知的信标 MAC 地址。
    3. 停止扫描
    4. 间隔重复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-06
      • 2014-12-16
      • 2017-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多