2017-09-29 104 views
0

我正在使用AltBeacon android库在我的应用程序中检测Eddystone信标。AltBeacon Android Beacon库区域ID为空

我设置这样的区域:

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回报空值。

相反,如果我这样做:

Region region = new Region("backgroundRegion", Identifier.parse("0x0b85497366bad1356d69"), null, null); 

ID1回报`b85497366bad1356d69``

我想检测所有埃迪斯通设备。如果我没有为该标识符设置区域,我可以获取设备标识符吗?

回答

1

didEnterRegion回调中的Ranging对象只是您用来开始监控的对象的副本,因此如果初始Region的标识符都为null,则标识符将全为空。

解决方案?使用startRangingBeaconsInRegion()和didRangeBeaconsInRegion回调。该回调将为您提供与该地区匹配的检测到的信标列表,因此您可以阅读所有实际的标识符。

+0

非常感谢。解决了。 – Favolas