Android 10 में निजता से जुड़े बदलाव

Android 10 (एपीआई लेवल 29) में, उपयोगकर्ताओं की निजता को बेहतर तरीके से सुरक्षित रखने के लिए कई सुविधाएं जोड़ी गई हैं और व्यवहार में बदलाव किए गए हैं. इन बदलावों से, उपयोगकर्ताओं को अपने डेटा और ऐप्लिकेशन को दी गई अनुमतियों के बारे में ज़्यादा पारदर्शिता मिलेगी. साथ ही, उन्हें अपने डेटा पर ज़्यादा कंट्रोल मिलेगा. इन सुविधाओं का मतलब यह हो सकता है कि आपके ऐप्लिकेशन के कुछ खास फ़ंक्शन या डेटा, प्लैटफ़ॉर्म के पुराने वर्शन की तुलना में अलग तरीके से काम करें. अगर आपका ऐप्लिकेशन, उपयोगकर्ता के डेटा को मैनेज करने के लिए मौजूदा सबसे सही तरीकों का पालन कर रहा है, तो आपके ऐप्लिकेशन पर इसका कम से कम असर पड़ेगा.

इस पेज पर, हर बदलाव की खास जानकारी दी गई है.

सबसे अहम बदलाव

इस सेक्शन में, Android 10 में निजता से जुड़े मुख्य बदलावों के बारे में बताया गया है.

ऐप्लिकेशन की फ़ाइलों और मीडिया के लिए, बाहरी स्टोरेज का ऐक्सेस

डिफ़ॉल्ट रूप से, Android 10 और उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन को बाहरी स्टोरेज का स्कोप किया गया ऐक्सेस या स्कोप किया गया स्टोरेज दिया जाता है. इस तरह के ऐप्लिकेशन, बाहरी स्टोरेज डिवाइस में मौजूद इन फ़ाइलों को देख सकते हैं. इसके लिए, उन्हें स्टोरेज से जुड़ी उपयोगकर्ता की अनुमतियों का अनुरोध करने की ज़रूरत नहीं होती:

  • ऐप्लिकेशन के हिसाब से डायरेक्ट्री में मौजूद फ़ाइलें, जिन्हें getExternalFilesDir() का इस्तेमाल करके ऐक्सेस किया जाता है.
  • ऐसी फ़ोटो, वीडियो, और ऑडियो क्लिप जिन्हें ऐप्लिकेशन ने मीडिया स्टोर से बनाया है.

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

बैकग्राउंड में डिवाइस की जगह की जानकारी ऐक्सेस करने के लिए अनुमति ज़रूरी है

Android 10 में, ACCESS_BACKGROUND_LOCATION अनुमति की सुविधा दी गई है. इससे उपयोगकर्ताओं को किसी ऐप्लिकेशन को अपनी जगह की जानकारी का ऐक्सेस देने पर ज़्यादा कंट्रोल मिलता है.

ACCESS_FINE_LOCATION और ACCESS_COARSE_LOCATION अनुमतियों के उलट, ACCESS_BACKGROUND_LOCATION अनुमति से सिर्फ़ बैकग्राउंड में चल रहे ऐप्लिकेशन को जगह की जानकारी का ऐक्सेस मिलता है. किसी ऐप्लिकेशन को बैकग्राउंड में जगह की जानकारी ऐक्सेस करने वाला ऐप्लिकेशन तब तक माना जाता है, जब तक इनमें से कोई एक शर्त पूरी नहीं हो जाती:

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

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

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

Android 9 या इससे पहले वाले वर्शन को टारगेट करने पर, ऐक्सेस अपने-आप मिल जाता है

अगर आपका ऐप्लिकेशन, Android 10 या इसके बाद के वर्शन पर काम करता है, लेकिन Android 9 (एपीआई लेवल 28) या इससे पहले के वर्शन को टारगेट करता है, तो प्लैटफ़ॉर्म इन तरीकों से काम करेगा:

  • अगर आपका ऐप्लिकेशन, ACCESS_FINE_LOCATION या ACCESS_COARSE_LOCATION में से किसी एक के लिए <uses-permission> एलिमेंट का एलान करता है, तो सिस्टम इंस्टॉल करने के दौरान ACCESS_BACKGROUND_LOCATION के लिए <uses-permission> एलिमेंट को अपने-आप जोड़ देता है.
  • अगर आपका ऐप्लिकेशन ACCESS_FINE_LOCATION या ACCESS_COARSE_LOCATION में से किसी एक के लिए अनुरोध करता है, तो सिस्टम अनुरोध में ACCESS_BACKGROUND_LOCATION को अपने-आप जोड़ देता है.

डिवाइस को Android 10 पर अपग्रेड करने के बाद ऐक्सेस करना

अगर कोई व्यक्ति आपके ऐप्लिकेशन को डिवाइस की जगह की जानकारी ऐक्सेस करने की अनुमति देता है – ACCESS_COARSE_LOCATION या ACCESS_FINE_LOCATION – और फिर अपने डिवाइस को Android 9 से Android 10 पर अपग्रेड करता है, तो सिस्टम आपके ऐप्लिकेशन को दी गई जगह की जानकारी ऐक्सेस करने की अनुमतियों के सेट को अपने-आप अपडेट कर देता है. अपग्रेड के बाद, आपके ऐप्लिकेशन को मिलने वाली अनुमतियों का सेट, उसके टारगेट एसडीके वर्शन और उसकी तय की गई अनुमतियों पर निर्भर करता है. इसे नीचे दी गई टेबल में दिखाया गया है:

पहली टेबल. डिवाइस को Android 10 पर अपग्रेड करने के बाद, जगह की जानकारी ऐक्सेस करने की अनुमति की स्थिति में हुए बदलाव

टारगेट प्लैटफ़ॉर्म वर्शन क्या मोटे तौर पर या सटीक
जगह की जानकारी पाने की अनुमति दी गई है?
क्या मेनिफ़ेस्ट में बैकग्राउंड में जगह की जानकारी ऐक्सेस करने की अनुमति
तय की गई है?
अनुमति की डिफ़ॉल्ट स्थिति अपडेट की गई
Android 10 हां हां फ़ोरग्राउंड और बैकग्राउंड ऐक्सेस
Android 10 हां नहीं सिर्फ़ स्क्रीन पर खुले ऐप्लिकेशन को मिलने वाला ऐक्सेस
Android 10 नहीं (सिस्टम ने अनदेखा किया) कोई ऐक्सेस नहीं
Android 9 या इससे पहले वाला वर्शन हां डिवाइस अपग्रेड करते समय, सिस्टम की ओर से अपने-आप जोड़ा जाता है फ़ोरग्राउंड और बैकग्राउंड ऐक्सेस
Android 9 या इससे पहले वाला वर्शन नहीं (सिस्टम ने अनदेखा किया) कोई ऐक्सेस नहीं

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

Android 10 डिवाइसों पर टारगेट एपीआई लेवल अपडेट करने पर, ऐक्सेस रद्द कर दिया जाता है

मान लें कि आपका ऐप्लिकेशन, Android 10 पर काम करने वाले किसी डिवाइस पर पहले से इंस्टॉल है. अगर इस स्थिति में, Android 10 को टारगेट करने के लिए ऐप्लिकेशन को अपडेट किया जाता है, तो डिवाइस ACCESS_BACKGROUND_LOCATION की अनुमति रद्द कर देता है.

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

बैकग्राउंड से चालू की जा रही गतिविधियों पर पाबंदियां

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

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

आइडेंटिफ़ायर और डेटा

इस सेक्शन में, डिवाइस आइडेंटिफ़ायर और डेटा के साथ काम करने से जुड़े बदलावों की सूची दी गई है.

संपर्कों के बीच अफ़िनिटी की जानकारी हटाना

Android 10 से, प्लैटफ़ॉर्म संपर्कों से जुड़ी अफ़िनिटी की जानकारी को ट्रैक नहीं करता है. इस वजह से, अगर आपका ऐप्लिकेशन उपयोगकर्ता के संपर्कों में खोज करता है, तो नतीजे इंटरैक्शन की फ़्रीक्वेंसी के हिसाब से क्रम में नहीं होते.

ContactsProvider के बारे में जानकारी देने वाली गाइड में एक सूचना दी गई है. इसमें उन फ़ील्ड और तरीकों के बारे में बताया गया है जो Android 10 से शुरू होने वाले सभी डिवाइसों पर काम नहीं करते हैं.

एमएसी पता बदलने की सुविधा

Android 10 या इसके बाद के वर्शन पर काम करने वाले डिवाइसों पर, सिस्टम डिफ़ॉल्ट रूप से रैंडमाइज़ किए गए मैक पते ट्रांसमिट करता है.

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

  • रैंडम तौर पर चुना गया एमएसी पता पाना: डिवाइस के मालिक के ऐप्लिकेशन और प्रोफ़ाइल के मालिक के ऐप्लिकेशन, किसी खास नेटवर्क को असाइन किया गया रैंडम तौर पर चुना गया एमएसी पता पा सकते हैं. इसके लिए, उन्हें getRandomizedMacAddress() को कॉल करना होगा.
  • फ़ैक्ट्री एमएसी पता पाना: डिवाइस के मालिक के ऐप्लिकेशन, डिवाइस के हार्डवेयर का असली एमएसी पता पा सकते हैं. इसके लिए, उन्हें getWifiMacAddress() को कॉल करना होगा. यह तरीका, डिवाइसों के फ़्लीट को ट्रैक करने के लिए काम का है.

/proc/net फ़ाइल सिस्टम को ऐक्सेस करने पर पाबंदी

Android 10 या इसके बाद के वर्शन पर काम करने वाले डिवाइसों पर, ऐप्लिकेशन /proc/net को ऐक्सेस नहीं कर सकते. इसमें डिवाइस के नेटवर्क की स्थिति की जानकारी शामिल होती है. जिन ऐप्लिकेशन को इस जानकारी को ऐक्सेस करने की ज़रूरत होती है उन्हें NetworkStatsManager या ConnectivityManager क्लास का इस्तेमाल करना चाहिए. जैसे, वीपीएन.

रीसेट नहीं किए जा सकने वाले डिवाइस आइडेंटिफ़ायर पर पाबंदी

Android 10 से, ऐप्लिकेशन को डिवाइस के ऐसे आइडेंटिफ़ायर ऐक्सेस करने के लिए READ_PRIVILEGED_PHONE_STATE खास अनुमति लेनी होगी जिन्हें रीसेट नहीं किया जा सकता. इनमें IMEI और सीरियल नंबर, दोनों शामिल हैं.

इन तरीकों पर असर पड़ेगा:

अगर आपके ऐप्लिकेशन के पास अनुमति नहीं है और इसके बावजूद, रीसेट न किए जा सकने वाले आइडेंटिफ़ायर के बारे में जानकारी का अनुरोध किया जाता है, तो प्लैटफ़ॉर्म का जवाब, टारगेट किए गए SDK टूल के वर्शन के आधार पर अलग-अलग होता है:

  • अगर आपका ऐप्लिकेशन, Android 10 या इसके बाद के वर्शन को टारगेट करता है, तो SecurityException दिखेगा.
  • अगर आपका ऐप्लिकेशन, Android 9 (एपीआई लेवल 28) या उससे पहले के वर्शन को टारगेट करता है, तो इस तरीके से null या प्लेसहोल्डर डेटा मिलता है. ऐसा तब होता है, जब ऐप्लिकेशन के पास READ_PHONE_STATE अनुमति हो. ऐसा न होने पर, SecurityException होता है.

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

क्लिपबोर्ड के डेटा का सीमित ऐक्सेस

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

यूएसबी डिवाइस के सीरियल नंबर की सुरक्षा

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

यूएसबी डिवाइसों के साथ काम करने के बारे में ज़्यादा जानने के लिए, यूएसबी होस्ट कॉन्फ़िगर करने के तरीके से जुड़ी गाइड देखें.

कैमरा और कनेक्टिविटी

इस सेक्शन में, कैमरे के मेटाडेटा और कनेक्टिविटी एपीआई से जुड़े बदलावों के बारे में बताया गया है.

कैमरे की जानकारी और मेटाडेटा के ऐक्सेस पर पाबंदी

Android 10 में, getCameraCharacteristics() तरीके से डिफ़ॉल्ट रूप से मिलने वाली जानकारी की सीमा में बदलाव किया गया है. खास तौर पर, आपके ऐप्लिकेशन के पास CAMERA अनुमति होनी चाहिए, ताकि वह डिवाइस के हिसाब से मेटाडेटा को ऐक्सेस कर सके. यह मेटाडेटा, इस तरीके के रिटर्न वैल्यू में शामिल होता है.

इन बदलावों के बारे में ज़्यादा जानने के लिए, कैमरे के उन फ़ील्ड के बारे में जानकारी वाला सेक्शन देखें जिनके लिए अनुमति ज़रूरी है.

वाई-फ़ाई को चालू और बंद करने पर पाबंदी

Android 10 या इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन, वाई-फ़ाई को चालू या बंद नहीं कर सकते. WifiManager.setWifiEnabled() वाला तरीका हमेशा false दिखाता है.

अगर आपको उपयोगकर्ताओं को वाई-फ़ाई चालू और बंद करने के लिए सूचना देनी है, तो सेटिंग पैनल का इस्तेमाल करें.

कॉन्फ़िगर किए गए वाई-फ़ाई नेटवर्क को सीधे तौर पर ऐक्सेस करने से जुड़ी पाबंदियां

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

अगर आपका ऐप्लिकेशन, Android 10 या उसके बाद के वर्शन को टारगेट करता है और यह सिस्टम ऐप्लिकेशन या DPC नहीं है, तो इन तरीकों से काम का डेटा नहीं मिलता:

  • getConfiguredNetworks() वाला तरीका हमेशा एक खाली सूची दिखाता है.

  • नेटवर्क ऑपरेशन का हर ऐसा तरीका जो पूर्णांक वैल्यू दिखाता है—addNetwork() और updateNetwork()—हमेशा -1 दिखाता है.

  • हर नेटवर्क ऑपरेशन, बूलियन वैल्यू दिखाता है. जैसे, removeNetwork(), reassociate(), enableNetwork(), disableNetwork(), reconnect(), और disconnect(). ये हमेशा false दिखाते हैं.

अगर आपके ऐप्लिकेशन को वाई-फ़ाई नेटवर्क से कनेक्ट करना है, तो इन तरीकों का इस्तेमाल करें:

  • किसी वाई-फ़ाई नेटवर्क से तुरंत लोकल कनेक्शन ट्रिगर करने के लिए, स्टैंडर्ड NetworkRequest ऑब्जेक्ट में WifiNetworkSpecifier का इस्तेमाल करें.
  • उपयोगकर्ता को इंटरनेट ऐक्सेस देने के लिए, वाई-फ़ाई नेटवर्क जोड़ने के लिए WifiNetworkSuggestion ऑब्जेक्ट का इस्तेमाल करें. अपने-आप कनेक्ट होने वाले नेटवर्क चुनने के डायलॉग बॉक्स में दिखने वाले नेटवर्क जोड़े और हटाए जा सकते हैं. इसके लिए, addNetworkSuggestions() और removeNetworkSuggestions() को कॉल करें. इन तरीकों के लिए, जगह की जानकारी ऐक्सेस करने की अनुमति की ज़रूरत नहीं होती.

टेलीफ़ोनी, ब्लूटूथ, और वाई-फ़ाई के कुछ एपीआई के लिए, जगह की सटीक जानकारी ऐक्सेस करने की अनुमति ज़रूरी होती है

अगर आपका ऐप्लिकेशन, Android 10 या उसके बाद के वर्शन को टारगेट करता है, तो उसके पास ACCESS_FINE_LOCATION अनुमति होनी चाहिए. ऐसा इसलिए, ताकि वह Wi-Fi, Wi-Fi Aware या Bluetooth API में कई तरीकों का इस्तेमाल कर सके. यहां दिए गए सेक्शन में, उन क्लास और तरीकों की सूची दी गई है जिन पर असर पड़ा है.

टेलीफ़ोनी

वाई-फ़ाई

ब्लूटूथ

अनुमतियां

इस सेक्शन में, Android की अनुमतियों के मॉडल से जुड़े अपडेट के बारे में बताया गया है.

स्क्रीन पर मौजूद कॉन्टेंट के ऐक्सेस पर पाबंदी

उपयोगकर्ताओं की स्क्रीन पर मौजूद कॉन्टेंट को सुरक्षित रखने के लिए, Android 10 में डिवाइस की स्क्रीन पर मौजूद कॉन्टेंट को बिना किसी सूचना के ऐक्सेस करने की सुविधा बंद कर दी गई है. इसके लिए, READ_FRAME_BUFFER, CAPTURE_VIDEO_OUTPUT, और CAPTURE_SECURE_VIDEO_OUTPUT अनुमतियों के स्कोप में बदलाव किया गया है. Android 10 से, ये अनुमतियां सिर्फ़ signature-access हैं.

जिन ऐप्लिकेशन को डिवाइस की स्क्रीन के कॉन्टेंट को ऐक्सेस करना है उन्हें MediaProjection एपीआई का इस्तेमाल करना चाहिए. यह एपीआई, उपयोगकर्ता को एक प्रॉम्प्ट दिखाता है, जिसमें उससे सहमति देने के लिए कहा जाता है.

लेगसी ऐप्लिकेशन पर, उपयोगकर्ता को दिखने वाली अनुमतियों की जांच करना

अगर आपका ऐप्लिकेशन Android 5.1 (एपीआई लेवल 22) या इससे पहले के वर्शन को टारगेट करता है, तो Android 10 या उसके बाद के वर्शन वाले डिवाइस पर पहली बार आपका ऐप्लिकेशन इस्तेमाल करने पर, लोगों को अनुमति वाली स्क्रीन दिखेगी. जैसा कि इमेज 1 में दिखाया गया है. इस स्क्रीन पर, उपयोगकर्ताओं को उन अनुमतियों का ऐक्सेस रद्द करने का विकल्प मिलता है जो सिस्टम ने इंस्टॉल करते समय आपके ऐप्लिकेशन को दी थीं.

डायलॉग बॉक्स का स्क्रीन कैप्चर
पहली इमेज. उपयोगकर्ता को दिखने वाला डायलॉग, जिससे लेगसी अनुमतियों की समीक्षा की जा सकती है

शारीरिक गतिविधि की पहचान करने की सुविधा

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

Google Play services की कुछ लाइब्रेरी, जैसे कि Activity Recognition API और Google Fit API, तब तक नतीजे नहीं देतीं, जब तक उपयोगकर्ता आपके ऐप्लिकेशन को यह अनुमति नहीं दे देता.

डिवाइस पर मौजूद सिर्फ़ बिल्ट-इन सेंसर के लिए, आपको इस अनुमति के बारे में बताना होगा. ये सेंसर हैं: स्टेप काउंटर और स्टेप डिटेक्टर.

अगर आपका ऐप्लिकेशन, Android 9 (एपीआई लेवल 28) या इससे पहले के वर्शन को टारगेट करता है, तो सिस्टम आपके ऐप्लिकेशन को ज़रूरत के मुताबिक android.permission.ACTIVITY_RECOGNITION अनुमति अपने-आप दे देता है. हालांकि, इसके लिए ज़रूरी है कि आपका ऐप्लिकेशन इन सभी शर्तों को पूरा करता हो:

  • मेनिफ़ेस्ट फ़ाइल में com.google.android.gms.permission.ACTIVITY_RECOGNITION से जुड़ी अनुमति शामिल है.
  • मेनिफ़ेस्ट फ़ाइल में android.permission.ACTIVITY_RECOGNITION अनुमति शामिल नहीं है.

अगर सिस्टम अपने-आप android.permission.ACTIVITY_RECOGNITION अनुमति देता है, तो Android 10 को टारगेट करने के लिए ऐप्लिकेशन को अपडेट करने के बाद भी, आपके ऐप्लिकेशन के पास अनुमति बनी रहती है. हालांकि, उपयोगकर्ता सिस्टम की सेटिंग में जाकर, इस अनुमति को कभी भी रद्द कर सकता है.

यूज़र इंटरफ़ेस (यूआई) से अनुमतियों के ग्रुप हटाए गए

Android 10 से, ऐप्लिकेशन यह नहीं देख सकते कि यूज़र इंटरफ़ेस (यूआई) में अनुमतियों को कैसे ग्रुप किया गया है.