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