这是使用AltBeacon的Android Beacon Library检测iBeacons的正确布局吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (49)

我手边的iBeacon显示设备:

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
        beaconManager.getBeaconParsers().add(new BeaconParser().
               setBeaconLayout("m:0-3=4c000215,i:4-19,i:20-21,i:22-23,p:24-24"));
        beaconManager.bind(this);
    }
}

我不确定这是否是正确的布局。该库支持AltBeacon标准,其文档没有提及如何检测iBeacon设备:

  • 此代码是否会检测所有 iBeacon设备?即m:前缀是否过于严格,还是与iBeacon规范匹配的正确字节序列?
  • 同样,布局的其余部分是否完全符合iBeacon规范?
提问于
用户回答回答于

我不认为你需要匹配4c00的部分,因为这是制造商的ID,所以你可以离开它,以m:2-3 = 0215开头。其他的一切都看起来很正确,而且看起来很正常。

用户回答回答于

你可以下载iBeacon规格:

在当前版本中,公司ID 必须0x4C00,并且信标类型必须是0x0215。所有其他字段都是必需的,正如您指定的那样。

所以是的,你完全正确,它会检测到所有符合标准的iBeacons。

OT:它还规定广告时间间隔必须是100ms,但我严重怀疑所有iBeacons都坚持这一点。

扫码关注云+社区