2016-07-22 118 views
0

我在Android设备(android-beacon-library)上使用AltBeacon进行蓝牙iBeacon检测。目前,我可以通过回拨来接收信标:RangeNotifier。然而,我希望的功能是每5秒钟执行一次对附近信标的扫描,并且只做总共10次(即扫描大约一分钟)。我希望能够在for循环中进行扫描,但似乎到目前为止,执行回调的唯一方法是回调,并且我无法控制它何时被触发。Altbeacon扫描命令

有谁知道这种行为是否可以使用Android AltBeacon?

回答

1

该库是不适合这种即席扫描,但它是可以做到的你具有以下技术喜欢什么:

  1. 设置扫描周期为五秒钟:

    mBeaconManager.setForegroundBetweenScanPeriod(5000l); 
    
  2. 设置一个开始时间戳,当你开始为:

    mScanStartTime = System.currentTimeMillis(); 
    mBeaconManager.startRangingBeaconsInRegion(region); 
    
  3. 扫描回调将每五秒钟检测一次信标列表。处理这些信标,并且如果在50秒(10次扫描)已通过停止扫描:

    @Override 
    public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) { 
        // Process beacons here 
        if (System.currentTimeMillis() - mScanStartTime > 50*1000l) { 
        mBeaconManager.stopRangingBeaconsInRegion(region); 
        } 
    } 
    
+0

真棒,我希望我能引发他们的命令,但这个解决方案将工作的伟大。谢谢@davidgyoung –