यह जांचने के तरीके के बारे में एक व्यापक लेख लिखने के लिए कि एंड्रॉइड डिवाइस पर कोई स्थान सक्षम है या नहीं, जावा प्रोग्रामिंग की पर्याप्त समझ और विभिन्न एंड्रॉइड लाइब्रेरीज़ के उपयोग की आवश्यकता हो सकती है। इस प्रकार, आइए इस पर गहराई से गौर करें।
समकालीन मोबाइल एप्लिकेशन परिदृश्य में, उपयोगकर्ता की भौगोलिक स्थिति के आधार पर व्यक्तिगत अनुभव प्रदान करने के लिए उपयोगकर्ता के स्थान तक पहुंच महत्वपूर्ण हो गई है। यह कार्यक्षमता Android द्वारा संचालित उपकरणों में प्रचुर मात्रा में उपलब्ध है। हालाँकि, यह निर्धारित करना भी एक महत्वपूर्ण पहलू है कि स्थान सक्षम है या नहीं।
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);
}
}
कोड को समझना
ऊपर दिया गया कोड दो मुख्य चरणों में जाँचता है कि किसी एंड्रॉइड डिवाइस पर स्थान सेवाएँ सक्षम हैं या नहीं:
- यदि डिवाइस संस्करण किटकैट या उससे ऊपर है, तो यह स्थान मोड सेटिंग प्राप्त करने का प्रयास करता है और सत्यापित करता है कि यह 'स्थान मोड बंद' के अलावा अन्य है या नहीं। यदि ऐसा है, तो यह पुष्टि करता है कि स्थान सक्षम है।
- किटकैट से पुराने संस्करणों पर चलने वाले उपकरणों के लिए, यह अनुमत स्थान प्रदाताओं की सूची प्राप्त करता है और जांचता है कि क्या यह विशेष रूप से खाली है। यदि सूची खाली नहीं है, तो यह पुष्टि हो गई है कि स्थान सक्षम है।
विभिन्न पुस्तकालयों और कार्यों की भूमिका
इस कोड में, हमने कुछ विशिष्ट फ़ंक्शंस और लाइब्रेरीज़ का उपयोग किया है, मुख्य रूप से एंड्रॉइड डेवलपर किट से:
- बिल्ड.संस्करण.SDK_INT: यह एक ऐसा फ़ील्ड है जो डिवाइस पर वर्तमान में चल रहे प्लेटफ़ॉर्म का SDK संस्करण रखता है।
- सेटिंग्स.सुरक्षित: यह एक ऐसा वर्ग है जो वैश्विक सुरक्षित सिस्टम सेटिंग्स तक पहुंच का प्रबंधन करता है, मुख्य रूप से सिस्टम सेटिंग्स जो उपयोगकर्ता की गोपनीयता को प्रभावित करती हैं।
- सेटिंग्स.सुरक्षित.getInt: यह विधि किसी दिए गए नाम के लिए सुरक्षित पूर्णांक सेटिंग मान लौटाती है।
- सेटिंग्स.सुरक्षित.LOCATION_MODE: इसका उपयोग वर्तमान स्थान मोड सेटिंग प्राप्त करने के लिए किया जाता है।
- सेटिंग्स.सुरक्षित.LOCATION_PROVIDERS_ALLOWED: अनुमत स्थान प्रदाताओं की सूची प्राप्त करता है।
विस्तार में पढ़ें