2017-09-13 68 views
6

W kilku słowach używam Android.Location, aby uzyskać moją lokalizację i nie widzę żadnej różnicy między tym, kiedy aplikacja jest na pierwszym planie lub w tle. Moja pierwsza myśl polegała na tym, że Android powiedział nam, aby użyć Google Location Services API, aby uzyskać lokalizację. Przetestowałem to również z tym (Google Location Services API) i działa to samo. Nie ma różnicy, gdy uzyskuje się lokalizację między foregoundem a tłem.Ograniczenia lokalizacji tła Oreo dla Androida

Moje pytanie brzmi: czy znasz jakiś powód, dla którego działa tak samo? Wiedząc, że https://developer.android.com/about/versions/oreo/background-location-limits.html powiedział nam, że gdy aplikacja jest w tle, otrzymamy wolniejsze oddzwanianie z lokalizacją ("Aplikacje mogą otrzymywać aktualizacje lokalizacji tylko kilka razy na godzinę").

Dzięki!

+0

Sprawdź, czy parametr targetSdkVersion jest niższy niż 26 – Nikaoto

+0

google nie powiedział nic o docelowej wersji SDK. Nie sądzę, aby miało znaczenie to, do czego została użyta wartość targetSDKVersion. –

Odpowiedz

0

Bravo Google. Chcą więc zmniejszyć zużycie energii poprzez restrykcyjne usługi/zadania w tle. Wszystkie lokalizatory aplikacji, które próbują pracować z lokalizacją, będą musiały zostać uruchomione na pierwszym planie z włączonym LCD. Prawdopodobnie nie przyniesie to oszczędności.

Nie trzeba nawet próbować określić liczby skanów na godzinę.

Dodałem nowe pozwolenie, takie jak, zezwól na zadania tła z lokalizacją bez ograniczeń, będą one lepsze.

Android 8 będzie bardzo udaną wersją. Ponieważ docelowy sdk nie robi różnicy, a nie jak w przypadku dodania modelu uprawnień do środowiska wykonawczego.