Android Altbeacon图书馆;扫描不能正常工作

时间:2016-10-31 07:56:43

标签: android altbeacon

我正在研究需要扫描一组信标的Android应用程序。前景扫描的默认配置表示在10秒的时间间隔内,将执行10个扫描周期;因为

DEFAULT_FOREGROUND_SCAN_PERIOD = 1100L;

在第一阶段,我正在以这种方式扫描一组带有mac地址列表的信标:

public void startScanningRegions(){
  try {
    Region region = null;
    for(int i = 0; i < beaconsMacAddresses.size(); i++){
        region = new Region("region_" + i,beaconsMacAddresses.get(i));
        beaconManager.startRangingBeaconsInRegion(region);
    }
  } catch (RemoteException e) {
    e.printStackTrace();
  }    
}

    @Override
    public void onBeaconServiceConnect() {
        beaconManager.addRangeNotifier(new RangeNotifier() {
            @Override
            public synchronized void didRangeBeaconsInRegion(Collection<org.altbeacon.beacon.Beacon> beacons, Region region) {
                if (beacons.size() > 0) {
                    Log.d(TAG, "Collected beacons size: " + beacons.size());
                }
            }
        }); 
        startScanningRegions();
    }

这种方法运行良好,即每个回调对应某个区域,并且包含一个非空的收集信标列表,通常是一个项目,因为默认扫描周期为1.1秒,信标传输频率为1 /第

然而,我将在我的应用程序中使用的信标数量将是一个巨大的数字,并且通过为每个信标创建新区域来扫描它们,我发现共同的UUID可能有所帮助。所以我将扫描代码更新为:

public void startScanningRegions(){
        Region region1 = new Region("uuid_region", Identifier.parse(ConstantStrings.AXA_BEACON_UUID),null,null);
        beaconManager.startRangingBeaconsInRegion(region1);

    } catch (RemoteException e) {
        e.printStackTrace();
    }
}

此处出现问题。在10秒的时间间隔内,正在调用大约10个回调,每个回调最多包含2-3个信标,即每个信标现在在10秒间隔内被收集一次或两次,但是它被收集7-8时间由mac_address区域。

我需要捕捉范围内的每个信标,至少5-6次/ 10秒才能登录工作。我怎样才能改善这一点?

0 个答案:

没有答案