我有一个Beacon skybeacon Forecum 201,它可以作为iBeacon或Eddystone(URL / UID)进行广告宣传。它有温度和湿度传感器。
在我的项目中,我使用AltBeacon库进行监控和测距等工作信标。如在示例或文档中所述,我可以使用getExtraDataFields()
方法从iBeacon获取额外数据。
当我将信标配置为作为iBeacon传输时,getExtraDataFields()
返回0,因此没有传感器值。但是,当我将其配置为使用TLM传输为Eddystone UID时,我可以读取额外的字段,并返回温度等(我使用其他信标测试它,MINEW E7信标并且工作方式相同,仅作为Eddyston UID / TLM传感器值是可读的)
我甚至在RadiusNetwork Locate应用程序中进行了检查,它的工作方式与我的应用程序相同(仅在广告为EddyStone时读取传感器值)。
那么有什么方法可以在Android上使用AltBeacon读取iBeacon广告类型的传感器值吗?或者它只能由Eddystone UID / TLM读取?那么如果使用iOS开发和接收iBeacons呢?
答案 0 :(得分:0)
信标数据字段的传感器映射取决于信标硬件制造商的实现。在Forecum 201的情况下,似乎只对Eddystone-TLM进行了映射。其他信标制造商就像Radius网络一样将信标传感器字段映射到AltBeacon。 AltBeacon只有一个单字节的额外数据字段,Radius用它来暴露电池传感器。 (像Kontalt.io这样的其他制造商也这样做。)对于iBeacon,布局中根本没有额外的数据字段,因此传感器在iBeacon广告中被制造商暴露是非常罕见的。
底线:您必须使用Eddystone-TLM从此灯塔的广告中读取值。