我已经成功地使用以下的信标布局修改了Android Beacon Library的参考实现应用程序, 使它能够检测到我手头上的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 规范?
参考文献: