Psanรญ rozsรกhlรฉho ฤlรกnku o tom, jak zkontrolovat, zda je umรญstฤnรญ povoleno na zaลรญzenรญ Android, mลฏลพe vyลพadovat dลฏkladnou znalost programovรกnรญ Java a pouลพรญvรกnรญ rลฏznรฝch knihoven Android. Pojฤme se tedy do toho ponoลit.
V souฤasnรฉm prostลedรญ mobilnรญch aplikacรญ se pลรญstup k poloze uลพivatele stal zรกsadnรญm pro poskytovรกnรญ personalizovanรฝch zรกลพitkลฏ na zรกkladฤ geografickรฉ polohy uลพivatele. Tato funkce je hojnฤ dostupnรก v zaลรญzenรญch se systรฉmem Android. Kritickรฝm aspektem je vลกak takรฉ urฤenรญ, zda je umรญstฤnรญ povoleno ฤi nikoli.
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);
}
}
Pochopenรญ kรณdu
Vรฝลกe uvedenรฝ kรณd zkontroluje, zda jsou sluลพby urฤovรกnรญ polohy povoleny na jakรฉmkoli zaลรญzenรญ Android ve dvou hlavnรญch krocรญch:
โ Pokud je verze zaลรญzenรญ KitKat nebo vyลกลกรญ, pokusรญ se zรญskat nastavenรญ reลพimu polohy a ovฤลรญ, zda je jinรฉ neลพ โReลพim polohy vypnutoโ. Pokud ano, potvrdรญ, ลพe je umรญstฤnรญ povoleno.
โ U zaลรญzenรญ bฤลพรญcรญch na verzรญch starลกรญch neลพ KitKat zรญskรก seznam povolenรฝch poskytovatelลฏ polohy a zkontroluje, zda je vรฝhradnฤ prรกzdnรฝ. Pokud seznam nenรญ prรกzdnรฝ, je potvrzeno, ลพe umรญstฤnรญ je povoleno.
Role rลฏznรฝch knihoven a funkcรญ
V tomto kรณdu jsme pouลพili nฤkolik specifickรฝch funkcรญ a knihoven, pลedevลกรญm ze sady Android Developer's Kit:
- Build.VERSION.SDK_INT: Toto je pole, kterรฉ obsahuje verzi SDK platformy aktuรกlnฤ spuลกtฤnรฉ na zaลรญzenรญ.
- Settings.Secure: Jednรก se o tลรญdu, kterรก spravuje pลรญstup ke globรกlnรญm nastavenรญm zabezpeฤenรฉho systรฉmu, pลedevลกรญm nastavenรญ systรฉmu, kterรก ovlivลujรญ soukromรญ uลพivatelลฏ.
- Settings.Secure.getInt: Tato metoda vracรญ hodnotu nastavenรญ zabezpeฤenรฉho celรฉho ฤรญsla pro danรฉ jmรฉno.
- Settings.Secure.LOCATION_MODE: Slouลพรญ k zรญskรกnรญ aktuรกlnรญho nastavenรญ reลพimu umรญstฤnรญ.
- Settings.Secure.LOCATION_PROVIDERS_ALLOWED: Zรญskรก seznam povolenรฝch poskytovatelลฏ polohy.
Vรญce