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 के बाद, ऐप्लिकेशन यह नहीं देख सकते कि यूज़र इंटरफ़ेस में अनुमतियां कैसे ग्रुप की गई हैं.