我有一個關於我的android編程方法的問題 - 無論它是否有效。只是想給你一個想法,我想實現什麼:Android:感知當前位置與某個興趣點之間距離的正確方法?
在地圖上有多個興趣點。如果用戶靠近PIT,則會出現關於距離的通知。我們可以說3個通知:距離1英里,0.5英里和0.1英里。當用戶或多或少地處於PIT時,不會顯示更多通知。用戶應該駕駛汽車或其他車輛。
我目前使用Geofences來檢測用戶是否輸入了半徑1英里。如果是這樣,我檢查他的當前位置到PIT的距離。如果距離大約0.5或0.1英里,則會發出通知。因此,我經常檢查當前位置(現在每隔10秒)。如果用戶喜歡PIT或非常接近,則Geofence會退出並完成。
代碼工作正常,這種方法是我在閱讀Android開發人員教程時想到的第一件事情。但是,還有另一種更有效的方法嗎?
雖然這是(目前)滿足我的需求,我有兩個主要問題:
這似乎耗盡電池頗多。由於用戶最有可能在使用過程中可以爲他的手機充電,所以這可能不是什麼問題。
我從SD卡上的文件中讀取PIT的數量。在我的例子中,我只有幾個PIT。但是用戶可以修改源數據,以便他可以添加儘可能多的數據。谷歌表示,每個用戶只支持100個有效的地理柵欄。但是如果我的用戶有超過100個PIT呢?由於我使用Geofence來檢測是否必須觸發第一個通知 - 這是一個嚴重的問題。那麼有沒有其他的選擇?
我也有一個關於100的限制的問題。以Android開發者頁面作爲源代碼,它並不是100%清楚100的含義是什麼意思。我可以同時只有100個有效的地理柵欄嗎?或者我的整個應用程序只能有100個不同的地理柵欄總數? – h4wX
根據我的經驗,它是應用程序中100個併發活動地理柵欄的限制。這也是爲什麼它可以幫助我重建地理柵欄,因爲有源地理柵欄的總數不會超過100。通過主動我的意思是註冊的操作系統來監控,所以地理圍欄的狀態是無關緊要的。 – cYrixmorten