Ulatusliku artikli kirjutamine selle kohta, kuidas kontrollida, kas asukoht on Android-seadmes lubatud, võib nõuda Java programmeerimise ja erinevate Androidi teekide kasutamise põhjalikku mõistmist. Seega, süveneme sellesse.
Kaasaegsel mobiilirakenduste maastikul on kasutaja asukohale juurdepääs muutunud ülioluliseks kasutaja geograafilisel asukohal põhinevate isikupärastatud kogemuste pakkumisel. See funktsioon on Androidi toega seadmetes laialdaselt saadaval. Siiski on oluline määrata, kas asukoht on lubatud või mitte.
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);
}
}
Koodi mõistmine
Ülaltoodud kood kontrollib kahes peamises etapis, kas asukohateenused on mis tahes Android-seadmes lubatud.
– Kui seadme versioon on KitKat või uuem, proovib see hankida asukoharežiimi sätte ja kontrollib, kas see on muu kui asukoharežiim väljas. Kui jah, kinnitab see, et asukoht on lubatud.
– Seadmete puhul, mis töötavad KitKatist vanemates versioonides, hangib see lubatud asukohapakkujate loendi ja kontrollib, kas see on ainult tühi. Kui loend ei ole tühi, kinnitatakse, et asukoht on lubatud.
Erinevate raamatukogude ja funktsioonide roll
Selles koodis oleme kasutanud mõnda konkreetset funktsiooni ja teeki, peamiselt Androidi arendajakomplektist.
- Järk.VERSION.SDK_INT: See on väli, mis sisaldab seadmes praegu töötava platvormi SDK versiooni.
- Seaded. Turvaline: See on klass, mis haldab juurdepääsu globaalsetele turvalisele süsteemisätetele, peamiselt süsteemisätetele, mis mõjutavad kasutaja privaatsust.
- Settings.Secure.getInt: See meetod tagastab etteantud nime jaoks turvalise täisarvu sätte väärtuse.
- Seaded.Turvaline.LOCATION_MODE: Seda kasutatakse praeguse asukoharežiimi seadistuse saamiseks.
- Seaded.Turvaline.LOCATION_PROVIDERS_ALLOWED: Hangi lubatud asukohapakkujate loendi.
Loe rohkem