Laajan artikkelin kirjoittaminen siitä, kuinka tarkistaa, onko sijainti käytössä Android-laitteessa, voi edellyttää laajaa Java-ohjelmoinnin ymmärtämistä ja eri Android-kirjastojen käyttöä. Joten perehdytään tähän.
Nykyaikaisessa mobiilisovellusmaailmassa käyttäjän sijainnin saamisesta on tullut ratkaisevan tärkeää, jotta voidaan tarjota yksilöllisiä kokemuksia käyttäjän maantieteellisen sijainnin perusteella. Tämä toiminto on runsaasti saatavilla Android-laitteissa. Kuitenkin sen määrittäminen, onko sijainti käytössä vai ei, on myös kriittinen näkökohta.
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);
}
}
Koodin ymmärtäminen
Yllä annettu koodi tarkistaa, ovatko sijaintipalvelut käytössä missä tahansa Android-laitteessa kahdessa päävaiheessa:
– Jos laitteen versio on KitKat tai uudempi, se yrittää saada sijaintitilan asetuksen ja tarkistaa, onko se jokin muu kuin Sijaintitila pois päältä. Jos näin on, se vahvistaa, että sijainti on käytössä.
– KitKat-versiota vanhemmissa laitteissa se hakee luettelon sallituista sijainnintarjoajista ja tarkistaa, onko se yksinomaan tyhjä. Jos luettelo ei ole tyhjä, sijainti on vahvistettu.
Eri kirjastojen ja toimintojen rooli
Tässä koodissa olemme käyttäneet muutamia tiettyjä toimintoja ja kirjastoja, pääasiassa Android-kehittäjäpaketista:
- Build.VERSION.SDK_INT: Tämä on kenttä, joka sisältää laitteella tällä hetkellä käynnissä olevan alustan SDK-version.
- Asetukset.Suojattu: Tämä on luokka, joka hallitsee pääsyä maailmanlaajuisiin suojattuihin järjestelmäasetuksiin, pääasiassa järjestelmäasetuksiin, jotka vaikuttavat käyttäjien yksityisyyteen.
- Settings.Secure.getInt: Tämä menetelmä palauttaa suojatun kokonaisluvun asetusarvon tietylle nimelle.
- Asetukset.Suojattu.LOCATION_MODE: Tätä käytetään nykyisen sijaintitilan asetuksen saamiseen.
- Asetukset.Suojattu.LOCATION_PROVIDERS_ALLOWED: Hakee luettelon sallituista sijainnintarjoajista.
Lue lisää