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