Pisanje opsežnog članka o tome kako provjeriti je li lokacija omogućena na Android uređaju može zahtijevati značajno razumijevanje Java programiranja i korištenje različitih Android biblioteka. Stoga, zaronimo u ovo.
U suvremenom krajoliku mobilnih aplikacija, pristup korisnikovoj lokaciji postao je ključan za pružanje personaliziranih iskustava na temelju korisnikovog geografskog položaja. Ova je funkcija u izobilju dostupna na uređajima koji pokreću Android. Međutim, određivanje je li lokacija omogućena ili ne također je kritičan aspekt.
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);
}
}
Razumijevanje koda
Gore navedeni kod provjerava jesu li usluge lokacije omogućene na bilo kojem Android uređaju u dva glavna koraka:
– Ako je verzija uređaja KitKat ili novija, on pokušava dobiti postavku načina lokacije i provjerava je li ona drugačija od „Način lokacije isključen”. Ako je tako, potvrđuje da je lokacija omogućena.
– Za uređaje koji rade na verzijama starijim od KitKata, dobiva popis dopuštenih pružatelja lokacija i provjerava je li isključivo prazan. Ako popis nije prazan, potvrđeno je da je lokacija omogućena.
Uloga različitih biblioteka i funkcija
U ovom kodu upotrijebili smo nekoliko specifičnih funkcija i biblioteka, prvenstveno iz Android Developer’s Kit-a:
- Build.VERSION.SDK_INT: Ovo je polje koje sadrži SDK verziju platforme koja se trenutno izvodi na uređaju.
- Postavke. Sigurno: Ovo je klasa koja upravlja pristupom globalnim sigurnim postavkama sustava, prvenstveno postavkama sustava koje utječu na privatnost korisnika.
- Settings.Secure.getInt: Ova metoda vraća vrijednost postavke sigurnog cijelog broja za dano ime.
- Postavke. Sigurno.LOCATION_MODE: Ovo se koristi za dobivanje trenutne postavke načina lokacije.
- Postavke. Sigurno.LOCATION_PROVIDERS_ALLOWED: Dobiva popis dopuštenih pružatelja lokacija.
opširnije