At skrive en omfattende artikel om, hvordan man kontrollerer, om en placering er aktiveret på en Android-enhed, kan kræve en omfattende forståelse af Java-programmering og brug af forskellige Android-biblioteker. Lad os derfor dykke ned i dette.
I det moderne mobile applikationslandskab er adgang til en brugers placering blevet afgørende for at give personlige oplevelser baseret på en brugers geografiske position. Denne funktionalitet er rigeligt tilgængelig på enheder drevet af Android. Det er dog også et kritisk aspekt at bestemme, om placeringen er aktiveret eller ej.
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);
}
}
Forståelse af koden
Den ovenfor angivne kode kontrollerer, om placeringstjenesterne er aktiveret på enhver Android-enhed i to hovedtrin:
– Hvis enhedsversionen er KitKat eller nyere, forsøger den at hente placeringstilstandsindstillingen og validerer, om den er andet end 'Placeringstilstand fra'. Hvis det er tilfældet, bekræfter det, at placeringen er aktiveret.
– For enheder, der kører på versioner, der er ældre end KitKat, henter den listen over tilladte lokationsudbydere og kontrollerer, om den udelukkende er tom. Hvis listen ikke er tom, bekræftes det, at placeringen er aktiveret.
Rolle af forskellige biblioteker og funktioner
I denne kode har vi gjort brug af nogle få specifikke funktioner og biblioteker, primært fra Android Developer's Kit:
- Build.VERSION.SDK_INT: Dette er et felt, der indeholder SDK-versionen af den platform, der i øjeblikket kører på enheden.
- Indstillinger.Sikker: Dette er en klasse, der administrerer adgang til globale sikre systemindstillinger, primært systemindstillinger, der påvirker brugernes privatliv.
- Settings.Secure.getInt: Denne metode returnerer den sikre heltalsindstillingsværdi for et givet navn.
- Settings.Secure.LOCATION_MODE: Dette bruges til at få den aktuelle placeringsindstilling.
- Settings.Secure.LOCATION_PROVIDERS_ALLOWED: Henter listen over tilladte lokationsudbydere.
Læs mere