Android LocationMenager i GetSystemService

Android LocationMenager i GetSystemService

Wątek przeniesiony 2021-05-10 09:01 z C# i .NET przez Ktos.

MivS
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 90
0

Witam. Natknąłem się na mały problem i nie wiem jak go rozwiązać. A dokładniej:

LocationManager lm = (LocationManager)Application.Context.GetSystemService(Context.LocationService); bool isEnabled = lm.IsLocationEnabled;

Funkcja która sprawdza czy usługa lokalizacji jest włączona działa tylko wyłącznie na wersji androida 9.0 w górę.
Wiem że system 9.0 wprowadził zmianę w ustawieniach i funkcja lokalizacji została tak jakby rozdzielona. Być może potrzebne jest inne odwołanie.
Czy ktoś z was wie jak uporać się z tym problemem?

Ktos
  • Rejestracja: dni
  • Ostatnio: dni
1

A możesz użyć Xamarin.Essentials? Wtedy zapewne Permissions.CheckStatusAsync<Permissions.LocationWhenInUse>() oraz Permissions.CheckStatusAsync<Permissions.LocationAlways>().

...choć w zasadzie to nie sprawdza czy usługa lokalizacji jest włączona, ale czy masz do niej dostęp...

MivS
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 90
0

@Ktos: W zasadzie mogę tego użyć ale głównym moim celem było wyświetlić okno dialogowe aby powiadomić użytkownika o wyłączonej lokalizacji i jej ręcznym włączeniu.

MivS
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 90
0

Udało mi się znaleźć błąd. Powinno wyglądać to tak:

Kopiuj
 Context appContext = Application.Context;
 LocationManager lm = (LocationManager)appContext.GetSystemService(Context.LocationService);

 bool isEnabled = lm.IsProviderEnabled(LocationManager.GpsProvider);

Błąd powodował nie sam LocationMenager a odwołanie IsLocationEnabled

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.