我已经使用以下beacon layout成功地修改了Android Beacon Library的reference implementation app,以便它可以检测我手头上的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设备。
m:
前缀是否过于严格,或者它是否是匹配iBeacon spec?参考资料:
发布于 2014-07-31 10:20:19
这对我很有效:"m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24“
我不认为你需要匹配4c00部分,因为这是制造商的id,所以你可能可以把它去掉,从m:2-3=0215开始,其他的一切看起来都是正确的,而且它似乎可以工作。
发布于 2015-11-04 00:02:45
你可以下载iBeacon spec (点击“下载图片和规格”)。
在当前版本中,公司ID必须为0x4C00
,信标类型必须为0x0215
。所有其他字段都是必填字段,如您所指定的。
所以,是的,你是完全正确的,它将检测所有兼容的iBeacons。
OT:它还规定广告间隔必须是100ms,但我严重怀疑所有iBeacons都遵守这一点。
https://stackoverflow.com/questions/25027983
复制相似问题