这是使用 AltBeacon 的 Android 信标库检测 iBeacons 的正确布局吗?



我已经成功修改了Android信标库的参考实现应用程序,使用以下信标布局,以便它检测到我手头的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);
    }
}

作为BLE包内部的新手,我不确定这是否是正确的布局。该库支持AltBeacon标准,其文档没有提到如何检测iBeacon设备。

  • 这个代码会检测所有 iBeacon设备吗?即是m:前缀过于限制,还是它是正确的字节序列,匹配iBeacon规范?
  • 同样,布局的其余部分是否与iBeacon规范完全匹配?
参考:

  • 在SO
  • 上看到的iBeacon数据包示例

这工作对我来说:"2 - 3 = 0215,我:4-19,我:20日至21日,我:- p: 24-24"

我不认为你需要匹配4c00部分,因为那是制造商id,所以你可以把它去掉,从m:2-3=0215开始。

您可以下载iBeacon规格(点击"下载图稿和规格")

当前版本"Company ID"必须为"0x4C00",信标类型必须为"0x0215"。所有其他字段都是必需的,并且如您指定的。

所以,是的,你是完全正确的,它将检测所有兼容的iBeacons。

OT:它还指定广告间隔必须为100ms,但我严重怀疑所有iBeacons都遵守这一规定。

相关内容

  • 没有找到相关文章

最新更新