我正在使用樹莓派作爲燈塔。當我更改信標的UUID時,我希望我的Android應用程序使用Android Beacon Library儘快檢測新的UUID。據我所知,兩個參數可以影響這個:掃描週期和傳輸速率。我在傳輸中使用10Hz,在setForegroundScanPeriod參數中使用300 ms。我正在檢測UUID變化的速度相當快,但我想知道是否存在這兩個參數的最佳值來更快地檢測變化?有沒有其他參數可以影響這個?儘可能快地檢測UUID更改
回答
Android的燈塔圖書館的範圍API是被設計給哪個信標是可見的,默認情況下每1.1秒定期更新。這意味着使用默認設置以及以10Hz(每0.1秒)通告的信標,第一次檢測將在0.1-1.1秒之後出現。
可以通過降低在庫中的掃描間隔減少對這個範圍的上限。如果您致電setForegroundScanPeriod(300l)
,則最長檢測時間可能會減少到300毫秒(0.3秒)。爲了達到這個目的,你必須確保你的信標廣告至少在10赫茲,否則較短的掃描週期往往會錯過檢測,實際上導致更長的檢測時間。
你可以更降低這個數字,但一般要掃描週期至少爲1.1倍的傳輸速率爲罕見的傳輸頻繁傳輸的長度,或2倍。因此,對於每1秒發送一個信標,將其設置爲1100ms。對於每100ms發送一次,將其設置爲200ms。
感謝您的回答。你能解釋我還是張貼鏈接爲什麼這個1.1x和傳輸和掃描期間的2倍關係,我真的不明白嗎? – Keyb
您不希望掃描週期恰好爲廣告週期的1倍,因爲您錯過了在掃描週期邊界(當您停止並重新開始掃描時)看到任何數據包正在傳輸。如果這個比例恰好爲1.0,如果他們總是在邊界上,你可能會錯過所有這些比例。如果您的掃描週期非常快,則可以使用2x建議。通過快速週期,您在掃描過程中可以進行更多的開/關轉換,因此您將有更高的數據包在邊界上傳輸。 2.0比率使得在每個掃描週期中至少有一個數據包是可能的。 – davidgyoung
- 1. 結構 - 儘可能快地更改值
- 2. 儘可能快地執行代碼
- 3. 儘可能快地返回請求HttpModules
- 4. 儘可能快地發送HTTP請求
- 5. 儘可能快地做大量的upserts
- 6. Maven的:建立不僅改變模塊和儘可能快地
- 7. 儘可能檢查圖案
- 8. 如何在Json.NET中儘可能快地檢索大文件中的幾個值?
- 9. 儘可能修改nuget
- 10. 如何在Hibernate中儘可能快地插入數據
- 11. 如何使用線程儘可能快地讀取zip流?
- 12. 使用CUDA儘可能快地訪問只讀全局數組?
- 13. 儘可能快地從陣列組重疊矩形
- 14. 儘可能快地將數據打包到數組中
- 15. 儘可能快地放大畫布數據
- 16. R - 儘可能快地初始化數據幀
- 17. 如何儘可能快地獲得網站的來源
- 18. 如何在Java中儘可能快地模擬鼠標點擊?
- 19. 使用(整數)縮放盡可能快地繪製位圖
- 20. 如何儘可能快地在Ruby中執行子進程?
- 21. 如何儘可能快地交換緩衝區
- 22. 算法儘可能快地選擇正確的RegEx
- 23. 如何從CherryPy BackgroundTask儘可能快地運行數據返回
- 24. 如何在c中儘可能快地填充內存#
- 25. SDL2:如何儘可能快地繪製矩形?
- 26. 如何使CreateFile儘可能快
- 27. 比較緩衝區儘可能快
- 28. 多行插入儘可能快
- 29. 清晰透明的BufferedImage儘可能快
- 30. 如何使queue.get儘可能快
你優化的背景或前景的Android檢測時間?你的目標是什麼操作系統版本?答案根據這些問題的答案而有所不同。 – davidgyoung
我只對前景檢測感興趣,我正在使用android 6.0.1 – Keyb