我有一个BLE Beacon,它不是不断广播,而是在你按下按钮时广播一条消息。这是一条委托信息。我到处找,但找不到一个能听Beacon消息的图书馆。
我看了一眼并尝试了这些解决方案:
https://altbeacon.github.io/android-beacon-library/index.html
https://developers.google.com/nearby/messages/android/get-started
有允许这样做的图书馆吗?
为了检测按下按钮时发送的信标消息,你需要移动应用程序一直在监听("扫描"是BLE术语(,因为它不知道你什么时候要按下按钮。
你可以使用你的问题中提到的开源安卓信标库来做到这一点。你会想使用它的";信标测距";API扫描信标,并通过每秒回调告诉你的应用程序它看到了什么信标(如果有的话(。如果有人点击信标按钮,你的应用程序将获得一个回调到didRangeBeaconsInRegion
,列表中只有一个信标。(如果没有人点击按钮,应用程序将得到一个列表中没有信标的回调。(
几个要点:
-
你需要知道你的硬件正在传输的信标的格式(iBeacon,AltBeacon,Eddystone UID,Eddytone URL等(,这样你就可以设置扫描库来寻找那种信标。
-
您需要知道硬件信标发送的是什么类型的标识符。像iBeacon和Altbeacon这样的格式发送长的十六进制UUID标识符;2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6";。你需要知道它发送了什么,这样你才能知道信标是否是你的。否则,即使其他人的信标正在发送,你的程序也会做出反应。
全面披露:我是安卓信标库开源项目的首席开发人员