簡體   English   中英

如何提高Android地理圍欄進入/退出通知的一致性?

[英]How to increase consistency of Android geofence enter/exit notifications?

我正在使用內置的地理圍欄API(播放服務),並且結果好壞參半。 看起來在設置地理圍欄之后,即使GPS打開,進入/退出的通知也非常不一致,具有最新位置(連接了LocationClient,在后台運行。)我開始監控(輪詢)位置變化和調試文本字段中的距離,並且即使基於設備注冊的位置和地理圍欄的位置(我在技術上是在地理圍欄的內部/外部),通常有時會觸發通知,有時也不會。 有什么方法可以讓它更具可預測性? 我幾乎想要放棄這個api並根據設備位置的輪詢實現我自己的(電池耗盡)地理圍欄。

一些建議:

  1. 確保你使用BroadcastReceiver而不是服務來接收轉換,否則如果你的應用被殺/關閉,你將不會/可能不會得到它。 正如這里所討論的: Android Geofence最終會停止獲得轉換意圖

  2. 確保在重新啟動設備后重新創建地理圍欄,最好使用啟動廣播接收器。 如下所述: 在設備重啟后,Geofences在android中保持活動狀態

  3. 另一個常見的誤解,因為它與IOS不同而難以理解的是,如果設備在創建時發現你在地理圍欄中,你將會立即獲得新創建的地理圍欄的觸發器。 我已經使用新創建的地理圍欄的“寬限期”解決了這個問題,我在這個帖子中解釋過: addProximityAlert無法按預期工作

最后一件重要的事情: 如果您遵循以上幾點,在您的應用中連接您的LocationClient 應該無關緊要 我在代碼中添加或刪除Geofences的過程基本上是:

  1. 創建並連接locationclient。

  2. 在連接回調中,添加/刪除地理圍欄

  3. 在geofence-result回調中,斷開locationclient。

每次發生這種情況時,我的位置客戶端總共只連接幾秒鍾。 操作系統仍會產生地理圍欄警報,並在發生時調用我的BroadcastReceiver。

如果你做這些事我敢打賭你的經歷會有所改善。

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM