Anbu Mani
Anbu Mani

Reputation: 68

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

I want to get current location, when app went into sleep mode or Background.Currently i am using > Plugin.Geolocator.CrossGeolocator.Current DLL in App OnSleep() , But Its Working Till Android 8.1 but Android Pie Not updating current Location Values.. How to Achieve in Android Pie?

Sample Code :

 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
 });
 });
 }

Upvotes: 2

Views: 760

Answers (1)

SushiHangover
SushiHangover

Reputation: 74114

You can not just spin up a thread and expect it to keep running after the OS places the app into the background or battery saving mode.

You will have to setup an Android Service (and foreground it) at a minimum to handle your location updates.

Background Execution Limits

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

Foreground Services

Schedule tasks with WorkManager

Upvotes: 1

Related Questions