簡體   English   中英

Xamarin Forms Android Pie 在應用程序后台睡眠模式下無法獲取當前位置

[英]Xamarin Forms Android Pie Not Getting Current Location in App Background Sleep Mode

我想在應用程序進入睡眠模式或背景時獲取當前位置。目前我在 App OnSleep()使用 > Plugin.Geolocator.CrossGeolocator.Current DLL ,但它可以工作到 Android 8.1Android Pie沒有更新當前位置值。 . 如何在Android Pie中實現?

示例代碼:

 protected override async void OnSleep()
 {
 var minute = TimeSpan.FromSeconds(30);
 Device.StartTimer(minute, () =>
 { 
 await Task.Run(async () =>
 {
 TimeSpan t = TimeSpan.FromSeconds(10);
 var locator = Plugin.Geolocator.CrossGeolocator.Current;
 locator.DesiredAccuracy = 5;
 var position = await locator.GetPositionAsync(timeout: t); 
 //API Method
 });
 });
 }

您不能只是啟動一個線程並期望它在操作系統將應用程序置於后台或省電模式后繼續運行。

您必須至少設置一個 Android Service (並將其置於前台)來處理您的位置更新。

后台執行限制

https://developer.android.com/about/versions/oreo/background

前台服務

使用 WorkManager 安排任務

暫無
暫無

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

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