簡體   English   中英

最節能的位置跟蹤實現? 意圖/廣播接收器/ LocationListener的/服務/ IntentService / AlarmManager?

[英]Most power efficient location tracking implementation? Intent/BroadcastReceiver/LocationListener/Service/IntentService/AlarmManager?

我已經通過解決方案,發現有很多方法可以實現位置跟蹤邏輯。

  1. 意向+廣播接收器+ LocationListener的
  2. 意向+ IntentService + AlarmManager
  3. LocationListener的
  4. 其他技術或上述的不同組合......

我試圖找出實現相同的最佳實踐(最節能的方式)...

我有一個庫類MyLocationClass.java,它有兩個方法1.startTracking() - 開始在T時間后發送用戶位置,並且只有當用戶移動了X距離時2. stopTracking() - 停止發送位置更新。

一個簡單的答案似乎是LocationListener,因為它內置的Time Passed / Distance Moved功能提供了更好的用戶體驗,但隨后......

我不希望GPS始終開啟? 實際上它應該僅在T和X交叉時打開。 使用Service / IntentService和/或/與警報管理器Timer將是一個更好的解決方案嗎? 具有LocationListeners的BroadcaastReceivers可以證明是更好的解決方案嗎?

請建議。

我想,您可以使用服務中實現的位置監聽器。 在服務啟動時開始收聽GPS,並在服務停止時移除GPS收聽者。 想要收聽GPS時啟動此服務。

另請參閱“requestLocationUpdates”方法。 該函數的minTime和minDistance字段解釋如下:

minTime通知的最小時間間隔,以毫秒為單位。 此字段僅用作節省電量的提示,位置更新之間的實際時間可能大於或小於此值。

minDistance通知的最小距離間隔,以米為單位

 > Most power efficient location tracking implementation?

最省電(和最簡單)的解決方案是根本不使用gps ,因為gps接收器(至少在我的三星智能手機上)會顯着增加功耗。

如果您的Android應用程序在登錄到其手機提供商的手機上運行,則有手機小區廣播 ,告訴手機該小區位置已發生變化。 您的應用可以收到這些。 太。

手機接收器已經在運行,手機必須喚醒以保持連接,因此能量消耗最小。

但是你必須找到一種方法將cell-id轉換回一個位置。

Android應用程序llama使用此cellid-broadcast來觸發基於位置的操作。 它有一個學習模式,我可以說:“現在我在工作7個小時。在后台它收集所有cellid-s並將這些標記為”job“。

暫無
暫無

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

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