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