我想看看是否可以使用Android信标库在物理信标上设置数据字段。函数setExtraDataFields
存在,如果我在Beacon
对象上调用它并立即调用getExtraDataFields
,则对象本身已经改变,但在下一次测距中,当我拾取信标信号时,getExtraDataFields
保持不变。是否需要调用一些"强制"或"更新"函数来实施/保存更改?我觉得这样的事情是可能的,因为我相信Location应用程序试图更改设备的RSSI,但到目前为止,我发现的所有代码示例都是将Android设备用作模拟信标的。
不幸的是,无法使用Android信标库来修改硬件信标的值。getExtraDataFields返回的值实际上是只读的。
原因有二:
-
蓝牙信标是单向发射器,用于发送唯一标识符和相关数据。它们不接收数据,也无法通过同一通道进行远程更新。
-
一些信标硬件制造商确实有专有扩展,允许外部应用程序使用蓝牙服务来配置信标的标识符和数据字段。但是,每个制造商这样做的机制是不同的。安卓信标库甚至不可能弄清楚是哪个制造商制造了它看到的每个信标,更不用说使用他们的专有SDK或服务来更新字段了。
底线:如果你想从你的应用程序中更新字段,你需要询问你的硬件制造商给你如何做的说明。