我正在使用AltBeacon
安卓库来检测我的应用上的Eddystone信标。
我正在设置这样的区域:
Region region = new Region("backgroundRegion", null, null, null);
每当我的应用检测到范围内的信标时,我都会记录下来:
@Override public void didEnterRegion(Region region) {
Log.v(TAG, "didEnterRegion() called with: region = [" + region.toString() + "]");
}
id1,id2和id3返回null。
相反,如果我这样做:
Region region = new Region("backgroundRegion", Identifier.parse("0x0b85497366bad1356d69"), null, null);
id1返回`b85497366bad1356d69``
我想检测所有Eddystone设备。如果我没有为该标识符设置区域,我可以获取设备标识符吗?
答案 0 :(得分:1)
didEnterRegion回调中的Ranging对象只是您用于开始监视的副本的副本,因此如果初始Region的标识符全为null,则标识符将全为null。
解决方案?使用startRangingBeaconsInRegion()和didRangeBeaconsInRegion回调。该回调将为您提供与该区域匹配的检测到的信标列表,以便您可以读取所有实际标识符。