एंड्रॉइड 6 और उच्चतर में रनटाइम अनुमतियाँ उपयोगकर्ताओं को यह नियंत्रण देती हैं कि वे किसी डिवाइस के माइक्रोफ़ोन से ऑडियो या डिवाइस के कैमरे से वीडियो रिकॉर्ड करने की अनुमति कब देते हैं। किसी ऐप को रिकॉर्ड करने से पहले, उपयोगकर्ता को सिस्टम द्वारा प्रस्तुत संवाद के माध्यम से उसे अनुमति देनी होगी या अस्वीकार करना होगा।
जब कोई ऐप कैमरे और माइक्रोफ़ोन ऐप-ऑप अनुमतियों के माध्यम से निजी डेटा स्रोत का उपयोग करता है तो एंड्रॉइड 12 उपयोगकर्ताओं को संकेतक प्रदर्शित करके पारदर्शिता प्रदान करता है। ऐप-ऑप्स रिकॉर्ड रनटाइम अनुमति-संरक्षित एपीआई तक पहुंच प्राप्त करता है।
ऐप-ऑप गतिविधि की स्थिति और व्यक्तिगत एपीआई कॉल की संख्या दोनों को ट्रैक करता है, और उपयोगकर्ताओं को यह दिखाने के लिए एंड्रॉइड 12 में माइक्रोफ़ोन और कैमरा संकेतक के साथ इंटरैक्ट करता है कि ऐप्स ने उनके डिवाइस पर ऑडियो और कैमरा डेटा तक पहुंच प्राप्त की है। जब उपयोगकर्ता माइक्रोफ़ोन या कैमरा संकेतक पर क्लिक करते हैं, तो वे देखते हैं कि कौन से ऐप्स ने उनका डेटा एक्सेस किया है। यह सुविधा सभी ओईएम के लिए अनिवार्य है।
संकेतक दृश्यता आवश्यकताएँ
Android 12 या उच्चतर पर चलने वाले उपकरणों पर माइक्रोफ़ोन और कैमरा संकेतक के लिए ये आवश्यकताएँ हैं:
- संकेतकों को स्टेटस बार में दिखना चाहिए, और उच्चतम दृश्य प्राथमिकता बरकरार रखनी चाहिए (उदाहरण के लिए, शीर्ष-दाएं कोने में सबसे दाहिने स्थान पर स्थित)।
- संकेतक लगातार एक ही स्थिति में स्थित होने चाहिए, और लॉन्च होने पर ऐप द्वारा अवरुद्ध नहीं किया जाना चाहिए।
- दोनों संकेतक हरे (या हरे रंग का एक प्रकार) रंग में होने चाहिए ।
- एक या दोनों संकेतकों पर क्लिक करने से एक एप्लिकेशन एट्रिब्यूशन अफोर्डेंस अधिसूचना प्रस्तुत होनी चाहिए जो निम्नलिखित कार्य करती है:
- उस ऐप का नाम प्रदर्शित करता है जो माइक्रोफ़ोन और (या) कैमरे का उपयोग कर रहा है
- उस ऐप का नाम प्रदर्शित करता है जिसने पिछले 15 सेकंड के भीतर माइक्रोफ़ोन और (या) कैमरे का उपयोग किया था
- उपयोगकर्ताओं को सेटिंग्स में ऐप अनुमति पृष्ठ पर ले जाता है
उपयोग एवं विशेषताएँ
एंड्रॉइड 12 में, यूआई चल रहे उपयोग और हाल के उपयोग के बीच अंतर करता है। उपयोगों को "सक्रिय" माना जाता है यदि उन्हें सिस्टम द्वारा "चालू" के रूप में चिह्नित किया गया है, या 5 सेकंड से कम पुराना है।
- स्टेटस बार आइकन हर बार तब दिखाते हैं जब किसी ऐप के पास उपयोगकर्ता-संवेदनशील माइक्रोफ़ोन या कैमरा एक्सेस चालू होता है।
- उपयोगकर्ता इन आइकन पर क्लिक कर सकते हैं और देख सकते हैं कि कौन से ऐप्स माइक्रोफ़ोन, कैमरा या दोनों तक पहुंच रहे हैं।
चित्र 1. उपयोग में आने वाले माइक्रोफोन और कैमरे के संकेतक सक्रिय पहुंच दिखा रहे हैं (ऊपरी-दाएं कोने में)
जब तक संकेतक दिखाते हैं तब तक पहुंच सक्रिय मानी जाती है। पहले एक आइकन दिखता है, फिर एक बिंदु पर परिवर्तित होता है जो तब तक बना रहता है जब तक कि ऐप खारिज या बंद न हो जाए।
जब कोई उपयोगकर्ता संकेतकों पर टैप करता है, तो एक संवाद बॉक्स खुलता है, जो दिखाता है कि कोई ऐप वर्तमान में कैमरा, माइक्रोफ़ोन या दोनों का उपयोग कर रहा है।
चित्र 2. सक्रिय और हालिया पहुंच संकेतक
चित्र 2 में छवि सक्रिय एक्सेस संकेतक दिखाती है जब किसी चालू ऐप द्वारा पिछले 5 सेकंड में डेटा एक्सेस किया गया हो।
हाल के एक्सेस संकेतक दिखाते हैं कि पिछले 15 सेकंड के दौरान किसी ऐप द्वारा डेटा एक्सेस किया गया था, लेकिन ऐप सक्रिय नहीं है। सभी सक्रिय ऐप्स संवाद में दिखते हैं, लेकिन हाल की पहुंच के स्रोत के रूप में केवल एक ऐप दिखता है, भले ही 15 सेकंड से पहले की समय-सीमा के भीतर 1 से अधिक ऐप ने डेटा एक्सेस किया हो। जब तक उपयोगकर्ता अधिसूचना संवाद को खारिज नहीं करता तब तक एक्सेस दृश्य स्थिर रहता है।
वितरित करें और सक्षम करें
PermissionManager
क्लास डायलॉग को पॉप्युलेट करने के लिए एक विधि प्रदान करता है, जो सिस्टम यूआई में रहता है।
- सिस्टम यूआई डिवाइस कॉन्फ़िगरेशन स्विच पर प्रतिक्रिया करता है:
privacy/mic_camera_indicators_enabled
। - स्विच आवश्यक है क्योंकि इस क्रम में दो अलग-अलग डिलीवरी वाहन हैं:
- बाँटना।
- सक्षम करना।
- यदि
PermissionManager
में विधि आवश्यक डेटा प्रदान नहीं कर सकती है तो सिस्टम UI क्रैश नहीं होना चाहिए।
प्रक्रिया प्रवाह
अनुमति संकेतक कार्यक्षमता के तीन मुख्य भाग हैं:
- क्षुधा
- संकेतक (SystemUI द्वारा नियंत्रित)
- यह निर्धारित करने का एक तरीका कि कौन से ऐप्स डेटा का उपयोग कर रहे हैं
PermissionController
यह निर्धारित करने के लिए तंत्र प्रदान करता है कि कौन से ऐप्स डेटा का उपयोग कर रहे हैं। SystemUI निजी डेटा का उपयोग करने वाले ऐप्स को सुनता है। SystemUI शीर्ष नेविगेशन बार में एक आइकन दिखाता है जो उपयोग की गई अनुमतियों से मेल खाता है। जब कोई उपयोगकर्ता किसी आइकन पर क्लिक करता है तो PermissionController
उपयोग के बारे में डेटा प्रदर्शित करता है।
चित्र 3. सिस्टम घटक और (यूआई) संक्रमण प्रवाह
चित्र 3 में क्रमांकित संक्रमण नीचे वर्णित हैं:
1- एक ऐप सिस्टम से निजी डेटा का अनुरोध करता है।
2- सिस्टम अनुमतियों की जाँच करता है। यदि अनुमतियाँ दी जाती हैं, तो सिस्टम डेटा प्रदाता को सूचित करता है, और ऐप-ऑप्स में उपयोग को नोट करता है
3- डेटा प्रोवाइडर ऐप को डेटा देता है.
4-5 उपयोगकर्ता आइकन पर क्लिक करता है। सिस्टम यूआई PermissionManager
से डेटा का अनुरोध करता है और उपयोगकर्ता को संवाद प्रस्तुत करता है।
प्रक्रिया विवरण
- ऐप्स माइक्रोफ़ोन और कैमरे का उपयोग करते हुए
AppOpsManager.startOp
,stopOp
, और (या)noteOp
कॉल करते हैं। यह सिस्टम सर्वर में ऐप-ऑप रिकॉर्ड बनाता है। - सिस्टम यूआई
AppOpsManager.OnOpActiveChangedInternalListener
औरOnOpNotedListener
श्रोताओं का उपयोग करके नए ऐप-ऑप्स को सुनता है। जब कोई नया उपयोग आता है (startOp
याnoteOp
पर कॉल के माध्यम से), सिस्टम यूआई सत्यापित करता है कि उपयोग सिस्टम ऐप द्वारा किया गया है। - यदि सिस्टम यूआई सिस्टम ऐप के उपयोग को सत्यापित करता है, और यदि उपयोग माइक्रोफ़ोन के लिए है, तो सिस्टम यूआई जाँचता है कि माइक्रोफ़ोन म्यूट है या नहीं।
- यदि सिस्टम यूआई गैर-सिस्टम ऐप उपयोग को सत्यापित करता है, (और, माइक्रोफ़ोन उपयोग के लिए, कि माइक्रोफ़ोन अनम्यूट है; कैमरा उपयोग के लिए, कि कैमरा चालू है), यह ऐसे उपयोग को प्रतिबिंबित करने वाला एक आइकन दिखाता है।
यदि सिस्टम यूआई को एक noteOp
प्राप्त होता है, जिसकी कोई अवधि नहीं है, तो यह कम से कम 5 सेकंड के लिए आइकन दिखाता है। अन्यथा, आइकन या तो तब तक दिखता है जब तक उसे stopOp
प्राप्त नहीं हो जाता, या 5 सेकंड के लिए, जो भी अधिक हो। किसी आइकन पर क्लिक करने वाला उपयोगकर्ता एक इरादा शुरू करता है जो डायलॉग शुरू करने के लिए PermissionController
के पास जाता है।
PermissionController
माइक्रोफ़ोन और कैमरे के लिए सभी हालिया उपयोग को लोड करता है। यह जांचता है कि क्या उनमें से कोई वर्तमान में चल रहा है, या सिस्टम यूआई द्वारा निर्धारित समय सीमा के भीतर चल रहा था। यदि इसे कोई मेल मिलता है, तो यह उस ऐप का नाम प्रदर्शित करता है जिसने अनुमति का उपयोग किया है, और ऐप ने किन अनुमतियों का उपयोग किया है।
Android 12 और उच्चतर में इस परिवर्तन के कारण, कुछ ऐप्स को या तो अपना व्यवहार बदलना होगा या विशेष व्यवहार लागू करना होगा।
एंड्रॉइड गूगल सर्च ऐप (एजीएसए) और गूगल मोबाइल सर्विसेज (जीएमएस) के साथ काम करते समय टेलीफोनी को अनुमति उपयोग (फोन कॉल में उपयोग किए जाने वाले अलग माइक्रोफोन स्टैक को ध्यान में रखते हुए) लागू करना होगा।