我正在使用AltBeacon
Android库来检测我的应用程序上的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设备。如果我不设置该标识符的区域,我可以获取设备标识符吗?
didenterregion回调中的范围对象只是您用来启动监视的一个副本,因此,如果初始区域的标识符全部为空,则标识符将全部为空。
解决方案?使用StartrangingBeaconSinregion()和DidrangeBeaconRegion回调。该回调将为您提供与该区域相匹配的检测的信标列表,因此您可以读取所有实际标识符。