Napisanie obszernego artykuลu o tym, jak sprawdziฤ, czy lokalizacja jest wลฤ
czona na urzฤ
dzeniu z Androidem, moลผe wymagaฤ znacznej wiedzy na temat programowania w Javie i korzystania z rรณลผnych bibliotek Androida. Zagลฤbmy siฤ w to.
We wspรณลczesnym ลwiecie aplikacji mobilnych dostฤp do lokalizacji uลผytkownika staล siฤ kluczowy dla zapewnienia spersonalizowanych doลwiadczeล w oparciu o poลoลผenie geograficzne uลผytkownika. Funkcjonalnoลฤ ta jest powszechnie dostฤpna na urzฤ
dzeniach z systemem Android. Jednak okreลlenie, czy lokalizacja jest wลฤ
czona, czy nie, rรณwnieลผ jest krytycznym aspektem.
public boolean isLocationEnabled(Context context) {
int locationMode = 0;
String locationProviders;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
try {
locationMode = Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.LOCATION_MODE);
} catch (Settings.SettingNotFoundException e) {
e.printStackTrace();
}
return locationMode != Settings.Secure.LOCATION_MODE_OFF;
} else {
locationProviders = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
return !TextUtils.isEmpty(locationProviders);
}
}
Zrozumienie kodu
Powyลผszy kod sprawdza, czy usลugi lokalizacyjne sฤ
wลฤ
czone na dowolnym urzฤ
dzeniu z Androidem w dwรณch gลรณwnych krokach:
โ Jeลli wersja urzฤ
dzenia to KitKat lub nowsza, prรณbuje uzyskaฤ ustawienie trybu lokalizacji i sprawdza, czy jest ono inne niลผ โWyลฤ
czony tryb lokalizacjiโ. Jeลli tak, potwierdza, ลผe โโlokalizacja jest wลฤ
czona.
โ W przypadku urzฤ
dzeล dziaลajฤ
cych na wersjach starszych niลผ KitKat pobiera listฤ dozwolonych dostawcรณw lokalizacji i sprawdza, czy jest ona wyลฤ
cznie pusta. Jeลli lista nie jest pusta, potwierdza siฤ, ลผe lokalizacja jest wลฤ
czona.
Rola rรณลผnych bibliotek i funkcji
W tym kodzie wykorzystaliลmy kilka konkretnych funkcji i bibliotek, gลรณwnie z zestawu Android Developerโs Kit:
- Kompilacja.VERSION.SDK_INT: To pole zawiera wersjฤ pakietu SDK platformy aktualnie uruchomionej na urzฤ
dzeniu.
- Ustawienia.Bezpieczne: Jest to klasa zarzฤ
dzajฤ
ca dostฤpem do globalnych bezpiecznych ustawieล systemowych, przede wszystkim ustawieล systemowych wpลywajฤ
cych na prywatnoลฤ uลผytkownikรณw.
- Ustawienia.Secure.getInt: Ta metoda zwraca bezpiecznฤ
wartoลฤ ustawienia liczby caลkowitej dla danej nazwy.
- Ustawienia.Bezpieczne.LOCATION_MODE: Sลuลผy do uzyskania bieลผฤ
cego ustawienia trybu lokalizacji.
- Ustawienia.Bezpieczne.LOCATION_PROVIDERS_ALLOWED: Pobiera listฤ dozwolonych dostawcรณw lokalizacji.
Czytaj wiฤcej