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šą.
Skaityti daugiau