Išspręsta: kaip patikrinti, ar „Android“ įjungta vieta

Norint parašyti išsamų straipsnį apie tai, kaip patikrinti, ar vieta įjungta „Android“ įrenginyje, gali prireikti iš esmės suprasti „Java“ programavimą ir naudoti skirtingas „Android“ bibliotekas. Taigi, pasigilinkime į tai.

Šiuolaikinėje mobiliųjų programų aplinkoje prieiga prie vartotojo buvimo vietos tapo itin svarbi siekiant suteikti suasmenintą patirtį, pagrįstą vartotojo geografine padėtimi. Ši funkcija gausiai pasiekiama įrenginiuose, kuriuose veikia „Android“. Tačiau nustatyti, ar vieta įjungta, ar ne, taip pat labai svarbu.

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);
    }
}

Kodo supratimas

Aukščiau pateiktas kodas patikrina, ar vietos nustatymo paslaugos įjungtos bet kuriame „Android“ įrenginyje, atliekant du pagrindinius veiksmus:

– Jei įrenginio versija yra „KitKat“ arba naujesnė, jis bando gauti vietos režimo nustatymą ir patvirtina, ar jis nėra „Vietos režimas išjungtas“. Jei taip, tai patvirtina, kad vieta įjungta.
– Įrenginiams, kuriuose veikia senesnės nei „KitKat“ versijos, jis gauna leistinų vietos teikėjų sąrašą ir patikrina, ar jis tik tuščias. Jei sąrašas nėra tuščias, patvirtinama, kad vieta įjungta.

Įvairių bibliotekų ir funkcijų vaidmuo

Šiame kode panaudojome keletą konkrečių funkcijų ir bibliotekų, visų pirma iš „Android“ kūrėjų rinkinio:

  • Build.VERSION.SDK_INT: Tai laukas, kuriame yra šiuo metu įrenginyje veikiančios platformos SDK versija.
  • Nustatymai.Saugus: Tai klasė, valdanti prieigą prie visuotinių saugių sistemos nustatymų, visų pirma sistemos nustatymų, kurie turi įtakos vartotojo privatumui.
  • Settings.Secure.getInt: Šis metodas grąžina saugaus sveikojo skaičiaus nustatymo reikšmę duotam vardui.
  • Nustatymai.Saugus.LOCATION_MODE: Tai naudojama norint gauti dabartinės vietos režimo nustatymą.
  • Nustatymai.Saugus.LOCATION_PROVIDERS_ALLOWED: Gauna leidžiamų vietos teikėjų sąrašą.

Pritaikymas skirtingoms Android versijoms

„Android“ per dešimtmetį smarkiai išsivystė, o kiekviena versija turi specifines funkcijas ir nustatymus. Taigi pamokomasis kodas turi atsižvelgti į subtilius niuansus, kurie pasireiškia įvairiose „Android“ versijose.

Pateiktas kodas visapusiškai tikrina, ar įjungta vieta visose „Android“ versijose, ypatingą dėmesį skiriant „KitKat“ versijai, kurioje buvo pristatytas „Vietos režimas“. Ši dichotomija padalija vertinimo metodą į dvi pagrindines kategorijas – vieną, skirtą „Android“ versijoms „KitKat“ ir naujesnėms versijoms, ir atskirą, skirtą žemesnėms nei „KitKat“ versijoms.

Apibendrinant galima pasakyti, kad tikrinimas, ar vietos nustatymo paslauga įjungta „Android“ įrenginyje, kūrėjams yra neįkainojama įžvalga. Tai padeda suprasti funkcionalumą ir leidžia kūrėjams pateikti vartotojui labiau pritaikytą programos interpretaciją.

Susijusios naujienos:

Palikite komentarą