जगह की जानकारी, माइक्रोफ़ोन, और कैमरे से जुड़ी अनुमतियां देने का मतलब है कि आपने अपने ऐप्लिकेशन को लोगों की संवेदनशील जानकारी को ऐक्सेस करने की अनुमति दी है. इस प्लैटफ़ॉर्म में कई ऐसे तरीके शामिल हैं जिनके बारे में इस पेज पर बताया गया है. इनसे लोगों को यह जानने में मदद मिलती है कि किन ऐप्लिकेशन के पास उनकी जगह की जानकारी, माइक्रोफ़ोन, और कैमरे को ऐक्सेस करने की अनुमति है. साथ ही, वे यह तय कर पाते हैं कि किन ऐप्लिकेशन को यह अनुमति देनी है.
निजता बनाए रखने वाली इन सिस्टम सुविधाओं से, आपके ऐप्लिकेशन के लिए जगह की जानकारी, माइक्रोफ़ोन, और कैमरे से जुड़ी अनुमतियों को मैनेज करने के तरीके पर असर नहीं पड़ना चाहिए. हालांकि, इसके लिए आपको निजता बनाए रखने के सबसे सही तरीकों का पालन करना होगा.
खास तौर पर, पक्का करें कि आपके ऐप्लिकेशन में ये काम किए गए हों:
- डिवाइस के कैमरे को तब तक ऐक्सेस न करें, जब तक उपयोगकर्ता ने आपके ऐप्लिकेशन को
CAMERA
अनुमति न दे दी हो. - जब तक उपयोगकर्ता आपके ऐप्लिकेशन को
RECORD_AUDIO
अनुमति नहीं दे देता, तब तक डिवाइस के माइक्रोफ़ोन को ऐक्सेस न करें. - जब तक उपयोगकर्ता आपके ऐप्लिकेशन में ऐसी सुविधा के साथ इंटरैक्ट न कर ले जिसके लिए जगह की जानकारी की ज़रूरत होती है, तब तक
ACCESS_COARSE_LOCATION
अनुमति याACCESS_FINE_LOCATION
अनुमति का अनुरोध न करें. इसके बारे में, जगह की जानकारी की अनुमतियों का अनुरोध करने के तरीके से जुड़ी गाइड में बताया गया है. ACCESS_BACKGROUND_LOCATION
अनुमति का अनुरोध करने से पहले, उपयोगकर्ता केACCESS_COARSE_LOCATION
अनुमति याACCESS_FINE_LOCATION
अनुमति देने तक इंतज़ार करें.
प्राइवसी डैशबोर्ड
Android 12 या इसके बाद के वर्शन पर काम करने वाले डिवाइसों पर, सिस्टम सेटिंग में निजता डैशबोर्ड की स्क्रीन दिखती है. इस स्क्रीन पर, उपयोगकर्ता अलग-अलग स्क्रीन ऐक्सेस कर सकते हैं. इन स्क्रीन पर यह जानकारी दिखती है कि ऐप्लिकेशन, जगह की जानकारी, कैमरा, और माइक्रोफ़ोन की जानकारी कब ऐक्सेस करते हैं. हर स्क्रीन पर, यह टाइमलाइन दिखती है कि अलग-अलग ऐप्लिकेशन ने कब किसी खास तरह के डेटा को ऐक्सेस किया. पहले चित्र में, जगह की जानकारी के डेटा को ऐक्सेस करने की टाइमलाइन दिखाई गई है.
डेटा ऐक्सेस करने का तर्क दिखाएं
आपका ऐप्लिकेशन, लोगों को यह वजह बता सकता है कि वह जगह की जानकारी, कैमरा या माइक्रोफ़ोन की जानकारी क्यों ऐक्सेस करता है. इससे लोगों को यह समझने में मदद मिलती है कि आपका ऐप्लिकेशन ऐसा क्यों करता है. यह वजह, नई प्राइवसी डैशबोर्ड स्क्रीन, आपके ऐप्लिकेशन की अनुमतियों वाली स्क्रीन या दोनों पर दिख सकती है.
यह बताने के लिए कि आपका ऐप्लिकेशन, जगह की जानकारी, कैमरा, और माइक्रोफ़ोन की जानकारी क्यों ऐक्सेस करता है, यह तरीका अपनाएं:
ऐसी गतिविधि जोड़ें जिसे शुरू करने पर, यह बताया जा सके कि आपका ऐप्लिकेशन किस तरह के डेटा को ऐक्सेस करता है. इस गतिविधि में,
android:permission
एट्रिब्यूट कोSTART_VIEW_PERMISSION_USAGE
पर सेट करें.अगर आपका ऐप्लिकेशन, Android 12 या उसके बाद के वर्शन को टारगेट करता है, तो आपको
android:exported
एट्रिब्यूट के लिए वैल्यू साफ़ तौर पर तय करनी होगी.नई जोड़ी गई गतिविधि में यह इंटेंट फ़िल्टर जोड़ें:
<!-- android:exported required if you target Android 12. --> <activity android:name=".DataAccessRationaleActivity" android:permission="android.permission.START_VIEW_PERMISSION_USAGE" android:exported="true"> <!-- VIEW_PERMISSION_USAGE shows a selectable information icon on your app permission's page in system settings. VIEW_PERMISSION_USAGE_FOR_PERIOD shows a selectable information icon on the Privacy Dashboard screen. --> <intent-filter> <action android:name="android.intent.action.VIEW_PERMISSION_USAGE" /> <action android:name="android.intent.action.VIEW_PERMISSION_USAGE_FOR_PERIOD" /> <category android:name="android.intent.category.DEFAULT" /> ... </intent-filter> </activity>
तय करें कि डेटा ऐक्सेस करने की वजह बताने वाली गतिविधि में क्या दिखना चाहिए. उदाहरण के लिए, अपने ऐप्लिकेशन की वेबसाइट या सहायता केंद्र का लेख दिखाया जा सकता है. आपका ऐप्लिकेशन किस तरह का डेटा ऐक्सेस करता है और कब ऐक्सेस करता है, इसके बारे में ज़्यादा जानकारी देने के लिए, उन अतिरिक्त चीज़ों को मैनेज करें जिन्हें सिस्टम, अनुमति के इस्तेमाल का इंटेंट शुरू करते समय शामिल करता है:
- अगर सिस्टम
ACTION_VIEW_PERMISSION_USAGE
को शुरू करता है, तो आपका ऐप्लिकेशनEXTRA_PERMISSION_GROUP_NAME
के लिए वैल्यू वापस पा सकता है. - अगर सिस्टम
ACTION_VIEW_PERMISSION_USAGE_FOR_PERIOD
को शुरू करता है, तो आपका ऐप्लिकेशनEXTRA_PERMISSION_GROUP_NAME
,EXTRA_ATTRIBUTION_TAGS
,EXTRA_START_TIME
, औरEXTRA_END_TIME
की वैल्यू वापस पा सकता है.
- अगर सिस्टम
आपने जो इंटेंट फ़िल्टर जोड़े हैं उनके आधार पर, उपयोगकर्ताओं को कुछ स्क्रीन पर आपके ऐप्लिकेशन के नाम के बगल में जानकारी वाला आइकॉन दिखता है:
VIEW_PERMISSION_USAGE
ऐक्शन वाला इंटेंट फ़िल्टर जोड़ने पर, लोगों को सिस्टम सेटिंग में आपके ऐप्लिकेशन के अनुमतियों वाले पेज पर आइकॉन दिखता है. इस कार्रवाई को रनटाइम की स��ी अनुमतियों पर लागू किया जा सकता है.- अगर आपने ऐसा इंटेंट फ़िल्टर जोड़ा है जिसमें
VIEW_PERMISSION_USAGE_FOR_PERIOD
ऐक्शन शामिल है, तो निजता डैशबोर्ड की स्क्रीन पर आपका ऐप्लिकेशन दिखने पर, उपयोगकर्ताओं को आपके ऐप्लिकेशन के नाम के बगल में आइकॉन दिखेगा.
जब उपयोगकर्ता उस आइकॉन को चुनते हैं, तब आपके ऐप्लिकेशन की गतिविधि शुरू हो जाती है.
इंडिकेटर
Android 12 या इसके बाद के वर्शन पर काम करने वाले डिवाइसों पर, जब कोई ऐप्लिकेशन माइक्रोफ़ोन या कैमरे को ऐक्सेस करता है, तो स्टेटस बार में एक आइकॉन दिखता है. अगर ऐप्लिकेशन इमर्सिव मोड में है, तो आइकॉन स्क्रीन के सबसे ऊपर दाएं कोने में दिखता है. उपयोगकर्ता, क्विक सेटिंग खोल सकते हैं और यह देखने के लिए आइकॉन चुन सकते हैं कि फ़िलहाल कौनसे ऐप्लिकेशन माइक्रोफ़ोन या कैमरे का इस्तेमाल कर रहे हैं. दूसरी इमेज में, आइकॉन वाला एक उदाहरण स्क्रीनशॉट दिखाया गया है.
इंडिकेटर की स्क्रीन लोकेशन की पहचान करना
अगर आपका ऐप्लिकेशन इमर्सिव मोड या फ़ुल-स्क्रीन यूज़र इंटरफ़ेस (यूआई) के साथ काम करता है, तो हो सकता है कि इंडिकेटर कुछ समय के लिए आपके ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) पर ओवरलैप करें. सिस्टम, आपके यूज़र इंटरफ़ेस (यूआई) को इन इंडिकेटर के हिसाब से ढालने में मदद करने के लिए, getPrivacyIndicatorBounds()
तरीके का इस्तेमाल करता है. इस तरीके के बारे में, यहां दिए गए कोड स्निपेट में बताया गया है. इस एपीआई का इस्तेमाल करके, उन सीमाओं का पता लगाया ��ा सकता है जहां इंडिकेटर दिख सकते हैं. इसके बाद, स्क्रीन के यूज़र इंटरफ़ेस (यूआई) को अलग तरीके से व्यवस्थित किया जा सकता है.
Kotlin
view.setOnApplyWindowInsetsListener { view, windowInsets -> val indicatorBounds = windowInsets.getPrivacyIndicatorBounds() // change your UI to avoid overlapping windowInsets }
टॉगल करता है
Android 12 या इसके बाद के वर्शन पर काम करने वाले इन डिवाइसों पर, उपयोगकर्ता एक टॉगल विकल्प को दबाकर, डिवाइस पर मौजूद सभी ऐप्लिकेशन के लिए कैमरा और माइक्रोफ़ोन का ऐक्सेस चालू और बंद कर सकते हैं. उपयोगकर्ता, टॉगल किए जा सकने वाले विकल्पों को क्विक सेटिंग से ऐक्सेस कर सकते हैं. जैसा कि तीसरे फ़िगर में दिखाया गया है. इसके अलावा, वे इन्हें सिस्टम सेटिंग में जाकर निजता स्क्रीन से भी ऐक्सेस कर सकते हैं.
कैमरे और माइक्रोफ़ोन के टॉगल से, डिवाइस पर मौजूद सभी ऐप्लिकेशन पर असर पड़ता है:
- जब उपयोगकर्ता कैमरे का ऐक्सेस बंद कर देता है, तो आपके ऐप्लिकेशन को कैमरे का खाली फ़ीड मिलता है.
जब उपयोगकर्ता माइक्रोफ़ोन का ऐक्सेस बंद कर देता है, तो आपके ऐप्लिकेशन को साइलेंट ऑडियो मिलता है. इसके अलावा, मोशन सेंसर के लिए, अनुरोधों की संख्या सीमित होती है. भले ही, आपने
HIGH_SAMPLING_RATE_SENSORS
अनुमति का एलान किया हो या नहीं.
जब कोई उपयोगकर्ता, कैमरे या माइक्रोफ़ोन का ऐक्सेस बंद कर देता है और फिर ऐसे ऐप्लिकेशन को लॉन्च करता है जिसे कैमरे या माइक्रोफ़ोन की जानकारी का ऐक्सेस चाहिए, तो सिस्टम उसे याद दिलाता है कि डिवाइस-वाइड टॉगल बंद है.
यह देखना कि सुविधा किन डिवाइसों पर उपलब्ध है
यह देखने के लिए कि कोई डिवाइस, माइक्रोफ़ोन और कैमरे के टॉगल करने की सुविधा के साथ काम करता है या नहीं, यहां दिए गए कोड स्निपेट में दिखने वाला लॉजिक जोड़ें:
Kotlin
val sensorPrivacyManager = applicationContext .getSystemService(SensorPrivacyManager::class.java) as SensorPrivacyManager val supportsMicrophoneToggle = sensorPrivacyManager .supportsSensorToggle(Sensors.MICROPHONE) val supportsCameraToggle = sensorPrivacyManager .supportsSensorToggle(Sensors.CAMERA)
Java
SensorPrivacyManager sensorPrivacyManager = getApplicationContext() .getSystemService(SensorPrivacyManager.class); boolean supportsMicrophoneToggle = sensorPrivacyManager .supportsSensorToggle(Sensors.MICROPHONE); boolean supportsCameraToggle = sensorPrivacyManager .supportsSensorToggle(Sensors.CAMERA);