【问题标题】:Find Eddystone Beacons using Nearby Google API使用 Nearby Google API 查找 Eddystone 信标
【发布时间】:2015-09-08 08:44:42
【问题描述】:

我使用 Proximity Beacon API 将数据附加到 Eddystone Beacon。我想使用 Nearby Messages API 获取 Beacon 附件。

我按照https://developers.google.com/nearby/messages/android/get-beacon-messages 中提到的步骤进行操作。

但我无法阅读 Beacon 附件。 onFound() 方法没有被调用

【问题讨论】:

    标签: beacon eddystone google-nearby proximityapi


    【解决方案1】:

    检查以下...

    • 如果 Status 是 APP_NOT_OPTED_IN ,则对订阅的响应设置回调并在 Status 对象上调用 startResolutionForResult。见github example

    • 确保您已在开发者控制台中为您的应用启用 Nearby API。第三步here

    • 在订阅调用中使用 Strategy.BLE_ONLY

    • 最后,如果这些都无济于事,请尝试独立的 BLE 扫描应用程序,以确保信标确实在广播。

    如果您想发布更完整的代码示例,我们的一位工程师可以查看

    (我在 Nearby API 上工作)

    【讨论】:

    • 谢谢安德鲁..我检查了 BLE 扫描应用程序,信标正在广播,我也按照你列出的前两个步骤进行操作。我在 github 示例中使用了相同的代码,并且能够检测到附近的 android 设备。为了发现信标,我将订阅方法 Nearby.Messages.subscribe(mGoogleApiClient, mMessageListener, PUB_SUB_STRATEGY) 修改为 Nearby.Messages.subscribe(mGoogleApiClient, messageListener, Strategy.BLE_ONLY)..
    • 不错!很高兴你解决了。我在上面更新了我的答案,提到了 Strategy.BLE_ONLY ...我们已确保 beacon page 上的代码反映了这一点
    • 对不起安德鲁,我没有正确评论。我的意思是,即使在尝试之后,我也无法检测到信标。
    • 您在调用 Proximity Beacon 服务时使用的开发控制台项目 ID 是否与您在订阅应用程序中使用的相同?默认情况下,Beacon 附件仅对您的项目进行 ACL - 应用程序必须具有与您在添加附件时使用的同一项目关联的 API 密钥。
    【解决方案2】:

    另一个想法:确保清单中的 API 密钥来自您在将数据附加到信标时使用的同一 Google Developers Console 项目。信标附件对于创建它们的项目是私有的。

    【讨论】:

    • 我尝试使用与 Proximity Beacon API 相同的 API 密钥,仍然无法检测到信标
    【解决方案3】:

    对于其他阅读此问题但连接有问题的人的另一个建议。摘自另一个答案:

    这听起来可能很奇怪 - 但请尝试打开和关闭 wifi。很多便宜的设备蓝牙真的很糟糕,无法连接,但出于某种原因,关闭 wifi 并打开一段时间后会修复它。

    我遇到了类似的问题 - 我的代码中的所有内容都是正确的,但没有检测到信标。我什至尝试使用制造商的应用程序,他们的也无法检测到信标(但他们的 iPhone 版本可以)。我关闭了 wifi,然后重新打开,制造商的应用程序正常工作,我的也是。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多