Ratkaistu: kuinka tarkistaa, onko sijainti käytössä Androidissa

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.

Säätäminen eri Android-versioille

Android on kehittynyt merkittävästi yli vuosikymmenen, ja jokaisessa versiossa on omat ominaisuudet ja asetukset. Tästä syystä opettavassa koodissa on otettava huomioon eri Android-versioissa ilmenevät hienovaraiset vivahteet.

Annettu koodi tarkistaa kattavasti käytössä olevan sijainnin kaikissa Android-versioissa, keskittyen erityisesti KitKat-versioon, jossa 'Location Mode' otettiin käyttöön. Tämä kaksijakoisuus jakaa arviointimenetelmän kahteen pääluokkaan – yksi Android-versioille KitKat ja sitä uudemmat ja erillinen versiot KitKatin alemmille versioille.

Yhteenvetona voidaan todeta, että sen tarkistaminen, onko sijaintipalvelu käytössä Android-laitteella, on kehittäjille korvaamaton oivallus. Se auttaa ymmärtämään toiminnallisuutta ja antaa kehittäjille mahdollisuuden tuoda esiin käyttäjäkohtaisemman sovelluksen tulkinnan.

Related viestiä:

Jätä kommentti