簡體   English   中英

應用程序后台的Android位置監聽器

[英]Android location listener in Application background

我想在我的應用程序中實現一個位置偵聽器,它會在后台運行,即使應用程序關閉也是如此。 我發現了很多實現位置偵聽器的結果,但我仍然感到困惑。

我的用例是以所有可能的方式獲取位置,無論是 GPS、網絡提供商還是任何其他方式。 該應用程序需要在后台定期更新位置

我找到了一個類似於下面的示例來獲取精確位置:

    LocationManager lm = getSystemService(Context.LOCATION_SERVICE);
    LocationListener ll = new mylocationlistener();
    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);

以下鏈接中的更多示例:

https://zgrepcode.com/examples/android/android/location/locationmanager-implementations

這不能很准確地工作,偵聽器沒有在后台服務中工作。

那么這是在后台獲取位置的最佳方式嗎? 我發現的大多數帖子看起來都很舊,我們是否有更好的方法在較新的 API 中實現后台位置偵聽器?

我在 StackOverflow 上搜索了相同但沒有找到任何相關帖子,如果有回答相同問題的帖子,請分享鏈接。 或者讓我知道實現它的最佳方法是什么。

提前致謝 :-)

應用每小時只能接收幾次位置更新。 Google對於此信息非常保護。 主動GPS也會消耗大量電池,因此,如果手動完成操作,則AGPS可能是更好的選擇。

每小時僅向幾次后台應用提供位置更新。

一個應用程序被認為是在前台 ,如果以下任一為

  • 它具有可見的活動,無論該活動是開始還是暫停。
  • 它具有前台服務。
  • 另一個前台應用程序通過綁定到其服務之一或通過使用其內容提供商之一而連接到該應用程序。 例如,如果前台應用程序綁定到另一個應用程序中的以下任何組件,則該另一個應用程序將被視為位於前台,輸入法編輯器(IME),牆紙服務,通知偵聽器,語音或文本服務中。

如果所有這些條件都不成立,則認為該應用程序處於后台。

考慮使用FusedLocationProviderClient ,但是它依賴於Google Play服務 這是最好的選擇。 您可以在這里了解更多信息

我使用Jobscheduler制作了一個應用程序。 工作正常。 但是,當其他應用程序(例如)導航sw正在使用位置管理器時,就會發生沖突。 我現在正在尋找解決方案。

暫無
暫無

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

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