【问题标题】:Getting a single message from a BLE Beacon (ANDROID)从 BLE 信标 (ANDROID) 获取单个消息
【发布时间】:2021-04-30 15:57:03
【问题描述】:

我有一个 BLE 信标,它不是不断广播,而是在您按下按钮时广播一条消息。这是一个调试消息。我到处找,但找不到收听 Beacon 消息的库。

我已经查看并尝试了这些解决方案:

https://altbeacon.github.io/android-beacon-library/index.html

https://developers.google.com/nearby/messages/android/get-started

是否有允许这样做的库?

【问题讨论】:

  • 我写了一篇关于扫描 Eddystone 的博客,并且还有一个指向示例源代码的链接,您可以查看它。它不是您要求的图书馆,但您可以开始。 talentica.com/blogs/…
  • 嘿丁卡,谢谢你的评论,我很感激。我以前使用过 android 本机扫描仪,但我只是假设它在我的情况下不起作用,因为它是我试图捕获的单个消息而不是设备。
  • 最后所有设备只发送一种或另一种类型的协议消息(eddystone-uid、iBeacon 等)。它不像您的消息应该是连续的才能被您的扫描仪听到,如果您正在广播一次并且如果您的扫描仪已经激活,它会接收到。
  • 嘿 Dinkar,我终于可以扫描这些邮件了。原来是这么简单的事情。我把这些概念搞混了。感谢您澄清这些!有一个伟大的 w/e
  • 太棒了。周末愉快吗????

标签: android bluetooth-lowenergy beacon altbeacon ibeacon-android


【解决方案1】:

为了检测在按下按钮时发送的信标消息,您需要移动应用不断监听(“扫描”是 BLE 术语),因为它不知道您何时按下按钮.

您可以使用问题中提到的开源Android Beacon Library 来执行此操作。你会想要使用它的“信标测距”API,它会扫描信标并告诉你的应用程序它看到了什么信标(如果有的话)并每秒回调一次。如果有人点击信标按钮,您的应用程序将收到一个回调到didRangeBeaconsInRegion,列表中有一个信标。 (如果没有人点击按钮,应用程序将收到一个回调,列表中的信标为零。)

几个要点:

  1. 您需要知道您的硬件正在传输的信标的格式(iBeacon、AltBeacon、Eddystone-UID、Eddystone-URL 等),以便您可以设置扫描库来查找这种信标。

  2. 您需要知道硬件信标发出什么样的标识符。 iBeacon 和 Altbeacon 等格式传输长的十六进制 UUID 标识符,如“2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6”。您需要知道它发送的内容,以便判断信标是否属于您。否则即使其他人的信标正在传输,您的程序也会做出反应。

全面披露:我是 Android Beacon 库开源项目的首席开发人员

【讨论】:

  • 嘿大卫。非常感谢你花时间写下所有这些。我已经实现了您的解决方案,但遗憾的是,即使按下按钮,我仍然看到 0 个信标。目前我不知道我手头有哪种类型的信标,所以我没有设置扫描库来扫描这种类型的信标。你觉得是因为这个?我不应该能够扫描任何类型的信标吗?
  • 尝试使用我在 Google Play 商店中的 BeaconScope 应用程序来查找信标格式。它将扫描任何 iBeacon、AltBeacon 或 Eddystone 传输等。你可以让 Android Beacon Library 做同样的事情,但默认情况下它不会这样做,因为它在手机电池使用方面有成本。
猜你喜欢
  • 2013-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多