2016-05-10 74 views
0

我正在使用樹莓派作爲燈塔。當我更改信標的UUID時,我希望我的Android應用程序使用Android Beacon Library儘快檢測新的UUID。據我所知,兩個參數可以影響這個:掃描週期和傳輸速率。我在傳輸中使用10Hz,在setForegroundScanPeriod參數中使用300 ms。我正在檢測UUID變化的速度相當快,但我想知道是否存在這兩個參數的最佳值來更快地檢測變化?有沒有其他參數可以影響這個?儘可能快地檢測UUID更改

+0

你優化的背景或前景的Android檢測時間?你的目標是什麼操作系統版本?答案根據這些問題的答案而有所不同。 – davidgyoung

+0

我只對前景檢測感興趣,我正在使用android 6.0.1 – Keyb

回答

1

Android的燈塔圖書館的範圍API是被設計給哪個信標是可見的,默認情況下每1.1秒定期更新。這意味着使用默認設置以及以10Hz(每0.1秒)通告的信標,第一次檢測將在0.1-1.1秒之後出現。

可以通過降低在庫中的掃描間隔減少對這個範圍的上限。如果您致電setForegroundScanPeriod(300l),則最長檢測時間可能會減少到300毫秒(0.3秒)。爲了達到這個目的,你必須確保你的信標廣告至少在10赫茲,否則較短的掃描週期往往會錯過檢測,實際上導致更長的檢測時間。

你可以更降低這個數字,但一般要掃描週期至少爲1.1倍的傳輸速率爲罕見的傳輸頻繁傳輸的長度,或2倍。因此,對於每1秒發送一個信標,將其設置爲1100ms。對於每100ms發送一次,將其設置爲200ms。

+0

感謝您的回答。你能解釋我還是張貼鏈接爲什麼這個1.1x和傳輸和掃描期間的2倍關係,我真的不明白嗎? – Keyb

+0

您不希望掃描週期恰好爲廣告週期的1倍,因爲您錯過了在掃描週期邊界(當您停止並重新開始掃描時)看到任何數據包正在傳輸。如果這個比例恰好爲1.0,如果他們總是在邊界上,你可能會錯過所有這些比例。如果您的掃描週期非常快,則可以使用2x建議。通過快速週期,您在掃描過程中可以進行更多的開/關轉換,因此您將有更高的數據包在邊界上傳輸。 2.0比率使得在每個掃描週期中至少有一個數據包是可能的。 – davidgyoung