这是用AltBeacon的Android Beacon库检测iBeacons的正确布局吗?
我已经使用以下信标布局成功修改了Android Beacon库的参考实现应用程序 ,以便它可以检测到我手边的一个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包的例子
这也对我有用!
我不认为你需要匹配的4c00部分,因为这是制造商的ID,所以你可以离开,并从m:2-3 = 0215开始一切看起来是正确的,它似乎工作。
您可以下载iBeacon规格 (点击“下载graphics和规格”)。
在当前版本中,公司ID 必须是0x4C00
,而信标types必须是0x0215
。 所有其他领域是必需的,并按照您的指定。
所以是的,你是完全正确的,它会检测所有符合的iBeacons。
OT:它也指定广告间隔时间必须是100ms,但我严重怀疑所有iBeacons坚持。