Ang pagsulat ng isang malawak na artikulo tungkol sa kung paano tingnan kung ang isang lokasyon ay pinagana sa isang Android device ay maaaring mangailangan ng malaking pag-unawa sa Java programming at paggamit ng iba't ibang Android library. Kaya, tingnan natin ito.
Sa kontemporaryong mobile application landscape, ang pag-access sa lokasyon ng isang user ay naging mahalaga para sa pagbibigay ng mga personalized na karanasan batay sa heograpikal na posisyon ng isang user. Ang functionality na ito ay maraming available sa mga device na pinapagana ng Android. Gayunpaman, ang pagtukoy kung ang lokasyon ay pinagana o hindi ay isang kritikal na aspeto din.
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);
}
}
Pag-unawa sa code
Sinusuri ng ibinigay na code sa itaas kung ang mga serbisyo ng lokasyon ay pinagana sa anumang Android device sa dalawang pangunahing hakbang:
โ Kung ang bersyon ng device ay KitKat o mas mataas, sinusubukan nitong kunin ang setting ng location mode at patunayan kung ito ay iba sa 'Location Mode Off'. Kung gayon, kinukumpirma nito na ang lokasyon ay pinagana.
โ Para sa mga device na tumatakbo sa mga bersyon na mas luma sa KitKat, nakukuha nito ang listahan ng mga pinapayagang provider ng lokasyon at sinusuri kung ito ay eksklusibong walang laman. Kung walang laman ang listahan, nakumpirma na naka-enable ang lokasyon.
Tungkulin ng Iba't ibang Aklatan at Pag-andar
Sa code na ito, gumamit kami ng ilang partikular na function at library, pangunahin mula sa Android Developer's Kit:
- Build.VERSION.SDK_INT: Isa itong field na naglalaman ng bersyon ng SDK ng platform na kasalukuyang tumatakbo sa device.
- Mga Setting. Secure: Isa itong klase na namamahala ng access sa mga pandaigdigang secure na setting ng system, pangunahin ang mga setting ng system na nakakaapekto sa privacy ng user.
- Settings.Secure.getInt: Ibinabalik ng pamamaraang ito ang halaga ng setting ng secure na integer para sa isang ibinigay na pangalan.
- Mga Setting.Secure.LOCATION_MODE: Ito ay ginagamit upang makuha ang kasalukuyang setting ng mode ng lokasyon.
- Mga Setting.Secure.LOCATION_PROVIDERS_ALLOWED: Nakukuha ang listahan ng mga pinapayagang provider ng lokasyon.
Magbasa Pa