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ฤ