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 पर अपग्रेड करता है, तो सिस्टम आपके ऐप्लिकेशन को दी गई, जगह की जानकारी पर आधारित अनुमतियों के सेट को अपने-आप अपडेट कर देता है. अपग्रेड के बाद, आपके ऐप्लिकेशन को मिलने वाली अनुमतियों का सेट, इसके टारगेट किए गए SDK टूल के वर्शन और तय की गई अनुमतियों पर निर्भर करता है. इस बारे में यहां दी गई टेबल में बताया गया है:
टारगेट किए गए प्लैटफ़ॉर्म का वर्शन | मोटे या बारीक अनुमति दी गई है? |
क्या मेनिफ़ेस्ट में बैकग्राउंड में जगह की जानकारी ऐक्सेस करने की अनुमति तय की गई है? |
अनुमति की डिफ़ॉल्ट स्थिति अपडेट की गई |
---|---|---|---|
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 या इसके बाद के वर्शन वाले डिवाइसों पर, सिस्टम डिफ़ॉल्ट रूप से रैंडमाइज़ किए गए मैक पते भेजता है.
अगर आपका ऐप्लिकेशन एंटरप्राइज़ के इस्तेमाल के उदाहरण को मैनेज करता है, तो प्लैटफ़ॉर्म, MAC पतों से जुड़े कई ऑपरेशन के लिए एपीआई उपलब्ध कराता है:
- अपने-आप चुना गया मैक पता पाना: डिवाइस के मालिक के ऐप्लिकेशन और प्रोफ़ाइल के मालिक के ऐप्लिकेशन, किसी नेटवर्क को असाइन किया गया मैक पता पा सकते हैं. इसके लिए, उन्हें
getRandomizedMacAddress()
को कॉल करना होगा. - असल, फ़ैक्ट्री मैक पता पाना: डिवाइस के मालिक के ऐप्लिकेशन,
getWifiMacAddress()
को कॉल करके, डिवाइस के असल हार्डवेयर मैक पते की जानकारी पा सकते हैं. यह तरीका, फ़्लीट में शामिल डिवाइसों को ट्रैक करने के लिए काम का है.
/proc/net फ़ाइल सिस्टम के ऐक्सेस पर पाबंदी
Android 10 या इसके बाद के वर्शन वाले डिवाइसों पर, ऐप्लिकेशन /proc/net
को ऐक्सेस नहीं कर सकते. इसमें डिवाइस की नेटवर्क स्थिति की जानकारी शामिल होती है. जिन ऐप्लिकेशन को इस जानकारी का ऐक्सेस चाहिए, जैसे कि वीपीएन, उन्हें NetworkStatsManager
या ConnectivityManager
क्लास का इस्तेमाल करना चाहिए.
रीसेट नहीं किए जा सकने वाले डिवाइस आइडेंटिफ़ायर पर पाबंदी
Android 10 से, ऐप्लिकेशन के पास डिवाइस के ऐसे आइडेंटिफ़ायर को ऐक्सेस करने के लिए, READ_PRIVILEGED_PHONE_STATE
खास अनुमति होनी चाहिए जिन्हें रीसेट नहीं किया जा सकता. इनमें IMEI और सीरियल नंबर, दोनों शामिल हैं.
जिन तरीकों पर असर पड़ा है उनमें ये शामिल हैं:
Build
TelephonyManager
अगर आपके ऐप्लिकेशन के पास अनुमति नहीं है और फिर भी, रीसेट नहीं किए जा सकने वाले आइडेंटिफ़ायर के बारे में जानकारी मांगी जाती है, तो टारगेट किए गए 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
दिखाता है.
अगर आपको उपयोगकर्ताओं को वाई-फ़ाई चालू और बंद करने के लिए कहना है, तो सेटिंग पैनल का इस्तेमाल करें.
कॉन्फ़िगर किए गए वाई-फ़ाई नेटवर्क को सीधे ऐक्सेस करने पर पाबंदियां
उपयोगकर्ता की निजता को सुरक्षित रखने के लिए, वाई-फ़ाई नेटवर्क की सूची को मैन्युअल तरीके से कॉन्फ़िगर करने की अनुमति, सिर्फ़ सिस्टम ऐप्लिकेशन और डिवाइस नीति नियंत्रकों (डीपीसी) को दी गई है. कोई डीपीसी, डिवाइस का मालिक या प्रोफ़ाइल का मालिक हो सकता है.
अगर आपका ऐप्लिकेशन Android 10 या उसके बाद के वर्शन को टारगेट करता है और यह सिस्टम ऐप्लिकेशन या डीपीसी नहीं है, तो नीचे दिए गए तरीके से काम का डेटा नहीं मिलता:
getConfiguredNetworks()
वाला तरीका, हमेशा खाली सूची दिखाता है.नेटवर्क ऑपरेशन का हर वह तरीका जो पूर्णांक वैल्यू दिखाता है, जैसे कि
addNetwork()
औरupdateNetwork()
, हमेशा -1 दिखाता है.हर नेटवर्क ऑपरेशन,
removeNetwork()
,reassociate()
,enableNetwork()
,disableNetwork()
,reconnect()
, औरdisconnect()
जैसी बूलियन वैल्यू दिखाता है.false
अगर आपके ऐप्लिकेशन को वाई-फ़ाई नेटवर्क से कनेक्ट करना है, तो इन वैकल्पिक तरीकों का इस्तेमाल करें:
- वाई-फ़ाई नेटवर्क से तुरंत लोकल कनेक्शन ट्रिगर करने के लिए, स्टैंडर्ड
NetworkRequest
ऑब्जेक्ट मेंWifiNetworkSpecifier
का इस्तेमाल करें. - उपयोगकर्ता को इंटरनेट ऐक्सेस देने के लिए, वाई-फ़ाई नेटवर्क जोड़ने के लिए,
WifiNetworkSuggestion
ऑब्जेक्ट का इस्तेमाल करें. अपने-आप कनेक्ट होने वाले नेटवर्क चुनने के लिए दिखने वाले डायलॉग बॉक्स में, नेटवर्क जोड़े और हटाए जा सकते हैं. इसके लिए,addNetworkSuggestions()
औरremoveNetworkSuggestions()
को क्रमशः बोलें. इन तरीकों के लिए, जगह की जानकारी ऐक्सेस करने की अनुमति की ज़रूरत नहीं होती.
टेलीफ़ोन, ब्लूटूथ, और वाई-फ़ाई के कुछ एपीआई के लिए, जगह की सटीक जानकारी ऐक्सेस करने की अनुमति ज़रूरी है
अगर आपका ऐप्लिकेशन Android 10 या उसके बाद के वर्शन को टारगेट करता है, तो वाई-फ़ाई, वाई-फ़ाई अवेयर या ब्लूटूथ एपीआई के कई तरीकों का इस्तेमाल करने के लिए, आपके ऐप्लिकेशन के पास ACCESS_FINE_LOCATION
अनुमति होनी चाहिए. यहां दिए गए सेक्शन में, उन क्लास और तरीकों की सूची दी गई है जिन पर असर पड़ा है.
टेलीफ़ोनी
TelephonyManager
getCellLocation()
getAllCellInfo()
requestNetworkScan()
requestCellInfoUpdate()
getAvailableNetworks()
getServiceState()
TelephonyScanManager
requestNetworkScan()
TelephonyScanManager.NetworkScanCallback
onResults()
PhoneStateListener
onCellLocationChanged()
onCellInfoChanged()
onServiceStateChanged()
वाई-फ़ाई
WifiManager
startScan()
getScanResults()
getConnectionInfo()
getConfiguredNetworks()
WifiAwareManager
WifiP2pManager
WifiRttManager
ब्लूटूथ
BluetoothAdapter
startDiscovery()
startLeScan()
BluetoothAdapter.LeScanCallback
BluetoothLeScanner
startScan()
अनुमतियां
इस सेक्शन में, Android की अनुमतियों के मॉडल में हुए अपडेट के बारे में बताया गया है.
स्क्रीन पर दिखने वाले कॉन्टेंट का ऐक्सेस सीमित करना
उपयोगकर्ताओं की स्क्रीन पर मौजूद कॉन्टेंट की सुरक्षा के लिए, Android 10 ने READ_FRAME_BUFFER
, CAPTURE_VIDEO_OUTPUT
, और CAPTURE_SECURE_VIDEO_OUTPUT
अनुमतियों के दायरे में बदलाव किया है. इससे, डिवाइस की स्क्रीन पर मौजूद कॉन्टेंट को बिना अनुमति के ऐक्सेस करने से रोका जा सकता है. Android 10 के बाद, ये अनुमतियां सिर्फ़ हस्ताक्षर का ऐक्सेस के लिए होती हैं.
जिन ऐप्लिकेशन को डिवाइस की स्क्रीन पर मौजूद कॉन्टेंट को ऐक्सेस करना है उन्हें MediaProjection
एपीआई का इस्तेमाल करना चाहिए. यह एपीआई, उपयोगकर्ता से सहमति देने के लिए कहने वाला प्रॉम्प्ट दिखाता है.
लेगसी ऐप्लिकेशन पर, उपयोगकर्ता से अनुमति लेने की सुविधा
अगर आपका ऐप्लिकेशन Android 5.1 (एपीआई लेवल 22) या उससे पहले के वर्शन को टारगेट करता है, तो उपयोगकर्ताओं को पहली बार Android 10 या उसके बाद के वर्शन वाले डिवाइस पर आपका ऐप्लिकेशन इस्तेमाल करते समय, अनुमतियों की स्क्रीन दिखेगी. जैसा कि पहली इमेज में दिखाया गया है. इस स्क्रीन पर, उपयोगकर्ताओं को उन अनुमतियों का ऐक्सेस रद्द करने का मौका मिलता है जिन्हें सिस्टम ने ऐप्लिकेशन इंस्टॉल करते समय, पहले ही आपके ऐप्लिकेशन को दे दिया था.
शारीरिक गतिविधि की पहचान करने की सुविधा
Android 10 में, android.permission.ACTIVITY_RECOGNITION
रनटाइम की अनुमति की सुविधा जोड़ी गई है. यह सुविधा उन ऐप्लिकेशन के लिए है जिन्हें उपयोगकर्ता के कदमों की संख्या का पता लगाना है या उपयोगकर्ता की शारीरिक गतिविधि की कैटगरी तय करनी है. जैसे, पैदल चलना, साइकल चलाना या वाहन चलाना. इसे इस तरह से डिज़ाइन किया गया है कि उपयोगकर्ताओं को यह जानकारी मिल सके कि सेटिंग में डिवाइस के सेंसर के डेटा का इस्तेमाल कैसे किया जाता है.
Google Play services की कुछ लाइब्रेरी, जब तक उपयोगकर्ता आपके ऐप्लिकेशन को अनुमति नहीं देता, तब तक नतीजे नहीं दिखातीं. जैसे, गतिविधि पहचानने वाला एपीआई और Google Fit एपीआई.
डिवाइस में पहले से मौजूद सिर्फ़ इन सेंसर के लिए, आपको यह अनुमति देनी होगी: कदमों की गिनती करने वाला और कदमों का पता लगाने वाला सेंसर.
अगर आपका ऐप्लिकेशन 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 के बाद, ऐप्लिकेशन यह नहीं देख सकते कि यूज़र इंटरफ़ेस में अनुमतियां कैसे ग्रुप की गई हैं.