ज़्यादा संवेदनशील जानकारी के ऐक्सेस के बारे में बताना

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

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

खास तौर पर, अपने ऐप्लिकेशन में ये काम करें:

  • डिवाइस के कैमरे को तब तक ऐक्सेस न करें, जब तक उपयोगकर्ता आपके ऐप्लिकेशन को CAMERA अनुमति न दे.
  • डिवाइस के माइक्रोफ़ोन को तब तक ऐक्सेस न करें, जब तक उपयोगकर्ता आपके ऐप्लिकेशन को RECORD_AUDIO अनुमति न दे.
  • जगह की जानकारी की अनुमतियों का अनुरोध करने के तरीके की गाइड में बताया गया है कि ACCESS_COARSE_LOCATION या ACCESS_FINE_LOCATION की अनुमति का अनुरोध करने से पहले, तब तक इंतज़ार करें, जब तक उपयोगकर्ता आपके ऐप्लिकेशन में मौजूद उस सुविधा के साथ इंटरैक्ट न कर ले जिसके लिए जगह की जानकारी की ज़रूरत होती है.
  • उपयोगकर्ता की ओर से आपके ऐप्लिकेशन को ACCESS_COARSE_LOCATION की अनुमति मिलने तक इंतज़ार करें अनुमति या ACCESS_FINE_LOCATION अनुमति का अनुरोध करने से पहले ACCESS_BACKGROUND_LOCATION अनुमति.

प्राइवसी डैशबोर्ड

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

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

डेटा ऐक्सेस करने की वजह बताएं

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

यह समझाने के लिए कि आपका ऐप्लिकेशन जगह की जानकारी, कैमरे, और माइक्रोफ़ोन की जानकारी को क्यों ऐक्सेस करता है, इन चरणों को पूरा करें:

  1. कोई ऐसी गतिविधि जोड़ें जिसे शुरू करने पर, यह जानकारी मिलती हो कि आपका ऐप्लिकेशन, डेटा ऐक्सेस करने से जुड़ी किसी खास कार्रवाई को क्यों करता है. इस गतिविधि में, android:permission एट्रिब्यूट की वैल्यू को START_VIEW_PERMISSION_USAGE पर सेट करें.

    अगर आपका ऐप्लिकेशन Android 12 या उसके बाद के वर्शन को टारगेट करता है, तो आपको साफ़ तौर पर android:exported एट्रिब्यूट की वैल्यू तय करनी होगी.

  2. हाल ही में जोड़ी गई गतिविधि में, यह इंटेंट फ़िल्टर जोड़ें:

    <!-- 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>
  3. तय करें कि आपके डेटा ऐक्सेस की वजह बताने वाली गतिविधि में क्या दिखना चाहिए. उदाहरण के लिए, अपने ऐप्लिकेशन की वेबसाइट या सहायता केंद्र का लेख दिखाया जा सकता है. ज़्यादा जानकारी देने के लिए आपका ऐप्लिकेशन किस तरह के डेटा को ऐक्सेस करता है, इस बारे में पूरी जानकारी ऐक्सेस होने के बाद, उन अतिरिक्त चीज़ों को मैनेज करें जिन्हें सिस्टम शामिल करता है अनुमति के इस्तेमाल के इंटेंट को शुरू करता है:

    • अगर सिस्टम 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
}

टॉगल

क्विक सेटिंग टाइल को &#39;कैमरे का ऐक्सेस&#39; और
         &#39;माइक का ऐक्सेस&#39; के तौर पर लेबल किया गया है
तीसरी इमेज. क्विक सेटिंग में, माइक्रोफ़ोन और कैमरे के टॉगल
.

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

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

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

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

डिवाइस के लिए सहायता देखना

यह पता लगाने के लिए कि किसी डिवाइस पर माइक्रोफ़ोन और कैमरे के टॉगल काम करते हैं या नहीं, नीचे दिए गए कोड स्निपेट में दिखने वाला लॉजिक जोड़ें:

KotlinJava
val sensorPrivacyManager = applicationContext
        .getSystemService(SensorPrivacyManager::class.java)
        as SensorPrivacyManager
val supportsMicrophoneToggle = sensorPrivacyManager
        .supportsSensorToggle(Sensors.MICROPHONE)
val supportsCameraToggle = sensorPrivacyManager
        .supportsSensorToggle(Sensors.CAMERA)
SensorPrivacyManager sensorPrivacyManager = getApplicationContext()
        .getSystemService(SensorPrivacyManager.class);
boolean supportsMicrophoneToggle = sensorPrivacyManager
        .supportsSensorToggle(Sensors.MICROPHONE);
boolean supportsCameraToggle = sensorPrivacyManager
        .supportsSensorToggle(Sensors.CAMERA);