Pisanje obsežnega članka o tem, kako preveriti, ali je lokacija omogočena v napravi Android, lahko zahteva precejšnje razumevanje programiranja Java in uporabe različnih knjižnic Android. Zato se poglobimo v to.
V sodobni pokrajini mobilnih aplikacij je dostop do lokacije uporabnika postal ključnega pomena za zagotavljanje prilagojenih izkušenj glede na geografski položaj uporabnika. Ta funkcija je v izobilju na voljo v napravah, ki jih poganja Android. Vendar pa je kritičen vidik tudi ugotavljanje, ali je lokacija omogočena ali ne.
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);
}
}
Razumevanje kode
Zgornja koda preveri, ali so lokacijske storitve omogočene v kateri koli napravi Android v dveh glavnih korakih:
– Če je različica naprave KitKat ali novejša, poskuša pridobiti nastavitev lokacijskega načina in preveri, ali ni »Location Mode Off«. Če je tako, potem potrdi, da je lokacija omogočena.
– Za naprave, ki delujejo na različicah, starejših od KitKat, pridobi seznam dovoljenih ponudnikov lokacij in preveri, ali je izključno prazen. Če seznam ni prazen, je potrjeno, da je lokacija omogočena.
Vloga različnih knjižnic in funkcij
V tej kodi smo uporabili nekaj posebnih funkcij in knjižnic, predvsem iz kompleta za razvijalce Android:
- Build.VERSION.SDK_INT: To je polje, ki vsebuje različico SDK platforme, ki se trenutno izvaja v napravi.
- Nastavitve. Varno: To je razred, ki upravlja dostop do globalnih varnih sistemskih nastavitev, predvsem sistemskih nastavitev, ki vplivajo na zasebnost uporabnikov.
- Settings.Secure.getInt: Ta metoda vrne vrednost nastavitve varnega celega števila za dano ime.
- Nastavitve.Varno.LOCATION_MODE: To se uporablja za pridobitev trenutne nastavitve načina lokacije.
- Nastavitve.Varno.LOCATION_PROVIDERS_ALLOWED: Pridobi seznam dovoljenih ponudnikov lokacij.
Preberi več