Vyriešené: ako skontrolovať, či je poloha povolená pre Android

Posledná aktualizácia: 09/11/2023

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.

Úprava pre rôzne verzie systému Android

Android sa za desaťročie výrazne vyvinul a každá verzia prichádza so svojimi špecifickými funkciami a nastaveniami. Preto musí inštruktážny kód zohľadňovať jemné nuansy, ktoré sa prejavujú v rôznych verziách systému Android.

Daný kód komplexne kontroluje povolenú polohu vo všetkých verziách Androidu, s osobitným zameraním na verziu KitKat, kde bol zavedený „Režim polohy“. Táto dichotómia rozdeľuje prístup k hodnoteniu do dvoch hlavných kategórií – jednu pre verzie systému Android KitKat a vyššie a druhú pre verzie pod KitKat.

Aby som to zhrnul, kontrola, či je služba určovania polohy povolená na zariadení s Androidom, je pre vývojárov neoceniteľným zistením. Pomáha pri pochopení funkčnosti a umožňuje vývojárom prejaviť užívateľsky špecifickejšiu interpretáciu aplikácie.

Súvisiace príspevky: