Napísanie rozsiahleho článku o tom, ako skontrolovať, či je umiestnenie povolené na zariadení so systémom Android, môže vyžadovať dôkladné pochopenie programovania Java a používania rôznych knižníc pre Android. Poďme sa teda ponoriť do tohto.
V súčasnom prostredí mobilných aplikácií sa prístup k polohe používateľa stal kľúčovým pre poskytovanie personalizovaných skúseností na základe geografickej polohy používateľa. Táto funkcia je hojne dostupná v zariadeniach so systémom Android. Dôležitým aspektom je však aj určenie, či je umiestnenie povolené alebo nie.
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);
}
}
Pochopenie kódu
Vyššie uvedený kód skontroluje, či sú služby určovania polohy povolené na akomkoľvek zariadení so systémom Android, v dvoch hlavných krokoch:
– Ak je verzia zariadenia KitKat alebo vyššia, pokúsi sa získať nastavenie režimu polohy a overí, či je iné ako „Režim polohy vypnutý“. Ak áno, potvrdí, že umiestnenie je povolené.
– Pre zariadenia bežiace na verziách starších ako KitKat získa zoznam povolených poskytovateľov polohy a skontroluje, či je výlučne prázdny. Ak zoznam nie je prázdny, potvrdí sa, že umiestnenie je povolené.
Úloha rôznych knižníc a funkcií
V tomto kóde sme použili niekoľko špecifických funkcií a knižníc, predovšetkým zo súpravy Android Developer's Kit:
- Build.VERSION.SDK_INT: Toto je pole, ktoré obsahuje verziu SDK platformy, ktorá je momentálne spustená na zariadení.
- Settings.Secure: Toto je trieda, ktorá spravuje prístup ku globálnym nastaveniam zabezpečeného systému, predovšetkým systémovým nastaveniam, ktoré ovplyvňujú súkromie používateľov.
- Settings.Secure.getInt: Táto metóda vráti hodnotu nastavenia zabezpečeného celého čísla pre daný názov.
- Settings.Secure.LOCATION_MODE: Používa sa na získanie aktuálneho nastavenia režimu polohy.
- Settings.Secure.LOCATION_PROVIDERS_ALLOWED: Získa zoznam povolených poskytovateľov polohy.
Čítaj viac