2016-07-22 120 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 –