जगह की जानकारी की अनुमतियों का अनुरोध करें

उपयोगकर्ता की निजता को सुरक्षित रखने के लिए, जगह की जानकारी की सेवाओं का इस्तेमाल करने वाले ऐप्लिकेशन को जगह की जानकारी ऐक्सेस करने की अनुमतियों का अनुरोध करना होगा.

जगह की जानकारी से जुड़ी कई अनुमतियां होती हैं. जगह की जानकारी इस्तेमाल करने के उदाहरण के लिए, आपके ऐप्लिकेशन की ज़रूरी शर्तों के आधार पर यह तय होता है कि आपको कौनसी अनुमतियां मांगनी हैं और उन्हें कैसे मांगना है.

इस पेज पर, जगह की जानकारी से जुड़ी अलग-अलग ज़रूरी शर्तों के बारे में बताया गया है. साथ ही, यह भी बताया गया है कि हर मामले में जगह की जानकारी ऐक्सेस करने की अनुमतियों का अनुरोध कैसे किया जाता है.

जगह की जानकारी की अनुमतियों का अनुरोध करने के लिए, सभी रनटाइम अनुमतियों के लिए सबसे सही तरीके अपनाएं.

जगह की जानकारी ऐक्सेस करने के टाइप

हर अनुमति में, यहां दी गई विशेषताएं होती हैं:

फ़ोरग्राउंड लोकेशन

अगर आपके ऐप्लिकेशन में ऐसी सुविधा है जो सिर्फ़ एक बार या तय समय के लिए जगह की जानकारी शेयर करती है या उसे ऐक्सेस करती है, तो उस सुविधा के लिए फ़ोरग्राउंड में जगह की जानकारी ऐक्सेस करने की अनुमति ज़रूरी है. यहां कुछ उदाहरण दिए गए हैं:

  • नेविगेशन ऐप्लिकेशन में, एक सुविधा होती है. इसकी मदद से लोग, मोड़-दर-मोड़ निर्देश पा सकते हैं.
  • मैसेजिंग ऐप्लिकेशन में, एक सुविधा होती है. इसकी मदद से उपयोगकर्ता, अपनी मौजूदा जगह की जानकारी किसी दूसरे उपयोगकर्ता के साथ शेयर कर सकते हैं.

सिस्टम आपके ऐप्लिकेशन को फ़ोरग्राउंड में जगह की जानकारी का इस्तेमाल करने वाला ऐप्लिकेशन मानता है. ऐसा तब होता है, जब आपके ऐप्लिकेशन की कोई सुविधा, डिवाइस की मौजूदा जगह की जानकारी को इनमें से किसी एक स्थिति में ऐक्सेस करती है:

  • आपके ऐप्लिकेशन से जुड़ी कोई गतिविधि दिख रही हो.
  • आपका ऐप्लिकेशन, फ़ोरग्राउंड सेवा चला रहा हो. जब कोई फ़ोरग्राउंड सेवा चल रही होती है, तो सिस्टम उपयोगकर्ता को इसकी जानकारी देता है. इसके लिए, वह लगातार दिखने वाली सूचना दिखाता है. जब आपका ऐप्लिकेशन बैकग्राउंड में चलता है, तब भी उसके पास जगह की जानकारी ऐक्सेस करने की अनुमति बनी रहती है. जैसे, जब उपयोगकर्ता अपने डिवाइस पर होम बटन दबाता है या अपने डिवाइस का डिसप्ले बंद कर देता है.

    इसके अलावा, आपको फ़ोरग्राउंड सेवा के टाइप location के बारे में जानकारी देनी होगी. इसके लिए, यहां दिए गए कोड स्निपेट का इस्तेमाल करें. Android 10 (एपीआई लेवल 29) और इसके बाद के वर्शन पर, आपको फ़ोरग्राउंड सेवा के इस टाइप का एलान करना होगा.

    <!-- Recommended for Android 9 (API level 28) and lower. -->
    <!-- Required for Android 10 (API level 29) and higher. -->
    <service
        android:name="MyNavigationService"
        android:foregroundServiceType="location" ... >
        <!-- Any inner elements would go here. -->
    </service>
    

जब आपका ऐप्लिकेशन, ACCESS_COARSE_LOCATION अनुमति या ACCESS_FINE_LOCATION अनुमति का अनुरोध करता है, तब आपको फ़ोरग्राउंड में जगह की जानकारी ऐक्सेस करने की अनुमति के बारे में बताना होता है. इस स्निपेट में दिखाया गया है:

<manifest ... >
  <!-- Always include this permission -->
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

  <!-- Include only if your app benefits from precise location access. -->
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
</manifest>

बैकग्राउंड में लोकेशन ऐक्सेस करना

किसी ऐप्लिकेशन को बैकग्राउंड में जगह की जानकारी ऐक्सेस करने की ज़रूरत तब होती है, जब ऐप्लिकेशन में मौजूद कोई सुविधा, लगातार अन्य उपयोगकर्ताओं के साथ जगह की जानकारी शेयर करती है या Geofencing API का इस्तेमाल करती है. इसके कई उदाहरणों में ये शामिल हैं:

  • परिवार के सदस्यों के साथ जगह की जानकारी शेयर करने वाले ऐप्लिकेशन में, एक ऐसी सुविधा होती है जिसकी मदद से उपयोगकर्ता, परिवार के सदस्यों के साथ लगातार जगह की जानकारी शेयर कर सकते हैं.
  • किसी IoT ऐप्लिकेशन में, एक ऐसी सुविधा होती है जिसकी मदद से उपयोगकर्ता अपने होम डिवाइसों को कॉन्फ़िगर कर सकते हैं. इससे, उपयोगकर्ता के घर से बाहर जाने पर डिवाइस बंद हो जाते हैं और घर वापस आने पर चालू हो जाते हैं.

सिस्टम यह मानता है कि आपका ऐप्लिकेशन बैकग्राउंड में जगह की जानकारी का इस्तेमाल कर रहा है. ऐसा तब होता है, जब वह फ़ोरग्राउंड में जगह की जानकारी सेक्शन में बताई गई स्थितियों के अलावा, किसी अन्य स्थिति में डिवाइस की मौजूदा जगह की जानकारी ऐक्सेस करता है. बैकग्राउंड में जगह की सटीक जानकारी, फ़ोरग्राउंड में जगह की सटीक जानकारी के बराबर होती है. यह इस बात पर निर्भर करती है कि आपके ऐप्लिकेशन ने जगह की अनुमतियों के बारे में क्या बताया है.

Android 10 (एपीआई लेवल 29) और इसके बाद के वर्शन पर, आपको अपने ऐप्लिकेशन के मेनिफ़ेस्ट में ACCESS_BACKGROUND_LOCATION अनुमति के बारे में एलान करना होगा. ऐसा करने से, रनटाइम के दौरान