Android 15 के साथ काम करने की परिभाषा

1. परिचय

इस दस्तावेज़ में उन ज़रूरी शर्तों की सूची दी गई है जो डिवाइसों के लिए पूरा होने चाहिए Android 15 के साथ काम करता हो.

"करना चाहिए", "नहीं करना चाहिए", "ज़रूरी", "करना चाहिए", "नहीं करना चाहिए", "चाहिए", "नहीं होना चाहिए", "सुझाया गया", "मई", और "ज़रूरी नहीं" आईईटीएफ़ स्टैंडर्ड के मुताबिक है RFC2119 में बताया गया है.

जैसा कि इस दस्तावेज़ में बताया गया है, "डिवाइस लागू करने वाला" या "लागू करने के लिए" एक व्यक्ति है या Android पर चलने वाले हार्डवेयर/सॉफ़्टवेयर समाधान को डेवलप करने वाला संगठन 15. "डिवाइस लागू करना" या "लागू करना" क्या हार्डवेयर/सॉफ़्टवेयर सलूशन को डेवलप किया गया.

Android 15 के साथ काम करने के लिए, डिवाइस लागू करने के लिए, इस कंपैटबिलिटी में बताई गई ज़रूरी शर्तों का पालन करना ज़रूरी है परिभाषा, जिनमें रेफ़रंस के तौर पर शामिल सभी दस्तावेज़ शामिल हैं.

जहां यह परिभाषा या इसमें बताया गया सॉफ़्टवेयर टेस्ट सेक्शन 10 शांत है, साफ़ तौर पर नहीं बताया गया है या पूरी तरह से अपडेट नहीं किया गया है, तो यह पक्का करना डिवाइस लागू करने वाले की ज़िम्मेदारी है कि मौजूदा फ़ॉर्मैट के साथ काम करता है.

इसी वजह से, Android Open Source Project Android का संदर्भ और पसंदीदा विकल्प, दोनों है. डिवाइस लागू करने वालों को यह सलाह दी जाती है कि वे "अपस्ट्रीम" पर ज़्यादा से ज़्यादा संभव सोर्स कोड यहां से उपलब्ध है: Android ओपन सोर्स प्रोजेक्ट. वहीं कुछ कॉम्पोनेंट, अनुमान के हिसाब से इसे दूसरे तरीकों से बदल दिया जाता है. इसलिए, इस बात पर ज़ोर दिया जाता है कि इसका पालन करें, क्योंकि सॉफ़्टवेयर की जांच में पास होना बहुत और मुश्किल हो जाता है. यह लागू करना लागू करने वाले की ज़िम्मेदारी है कि Android के स्टैंडर्ड वर्शन के साथ काम करने के तरीके के साथ-साथ, कंपैटबिलिटी टेस्ट सुइट में भी उपलब्ध है. आखिर में, ध्यान दें कि कुछ कॉम्पोनेंट इस दस्तावेज़ में बदलाव और उसके बदले किसी और चीज़ को चुनने की अनुमति नहीं है.

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

1.1 दस्तावेज़ का स्ट्रक्चर

1.1.1. डिवाइस के टाइप के हिसाब से ज़रूरी शर्तें

सेक्शन 2 में वे सभी ज़रूरी शर्तें शामिल हैं जो किसी तय करें. सेक्शन 2 का हर एक सब-सेक्शन खास तरह के डिवाइस के लिए बना है.

अन्य सभी ज़रूरी शर्तें, जो सभी Android डिवाइस पर लागू होती हैं लागू करने के तरीकों की जानकारी, सेक्शन 2 के बाद वाले सेक्शन में दी गई है. इन ज़रूरतों को "मुख्य ज़रूरी शर्तें" कहा जाता है इस दस्तावेज़ में.

1.1.2. ज़रूरत आईडी

ज़रूरी आईडी असाइन किया गया है.

  • आईडी सिर्फ़ ज़रूरी शर्तों के लिए असाइन किया गया है.
  • 'सुझाई गई ज़रूरी शर्तें', [SR] के रूप में मार्क की जाती हैं, लेकिन आईडी असाइन नहीं की गई है.
  • आईडी में ये शामिल होते हैं : डिवाइस टाइप आईडी - शर्त का आईडी - ज़रूरी आईडी (जैसे, C-0-1).

हर आईडी के बारे में यहां बताया गया है:

  • डिवाइस टाइप आईडी (2. डिवाइस के टाइप)
    • C: मुख्य (ज़रूरी शर्तें, जो Android डिवाइस पर लागू होने वाले सभी डिवाइसों पर लागू होती हैं)
    • H: Android हैंडहेल्ड डिवाइस
    • T: Android टेलीविज़न डिवाइस
    • जवाब: Android Automotive लागू करना
    • W: Android Watch लागू करना
    • टैब: Android टैबलेट लागू करना
  • शर्त ID
    • जब कोई शर्त पूरी नहीं होती, तब इस आईडी की वैल्यू 0 के तौर पर सेट होती है.
    • अगर शर्त के हिसाब से कोई शर्त पूरी होती है, तो पहले डाइमेंशन के लिए 1 असाइन किया जाता है उसी सेक्शन में शर्त और संख्या में 1 की बढ़ोतरी हो जाती है और एक ही तरह का डिवाइस है.
  • ज़रूरत आईडी
    • यह आईडी 1 से शुरू होता है और उसी सेक्शन में 1 से बढ़ता जाता है और एक जैसी स्थिति.

1.1.3. सेक्शन 2 में ज़रूरी आईडी

सेक्शन 2 में, ज़रूरी शर्त के आईडी के दो हिस्से होते हैं. पहला ऊपर बताई गई सेक्शन आईडी से मेल खाती हो. दूसरा हिस्सा, डिवाइस के नाप या आकार के साथ-साथ डिवाइस के नाप या आकार के लिए ज़रूरी शर्तें.

सेक्शन आईडी के बाद, ऊपर बताई गई ज़रूरी आईडी डालें.

  • सेक्शन 2 के आईडी में ये चीज़ें शामिल हैं : सेक्शन आईडी / डिवाइस टाइप आईडी - शर्त का आईडी - ज़रूरी आईडी (उदाहरण के लिए, 7.4.3/A-0-1).

2. डिवाइस के टाइप

Android ओपन सोर्स प्रोजेक्ट एक ऐसा सॉफ़्टवेयर स्टैक देता है जिसका इस्तेमाल किया जा सकता है के लिए डिज़ाइन किया गया है. डिवाइसों पर सुरक्षा के लिए, सॉफ़्टवेयर स्टैक, जिसमें कोई भी रिप्लेसमेंट ओएस या वैकल्पिक कर्नेल शामिल है लागू किया जाता है, तो सुरक्षित माहौल में एक्ज़ीक्यूट किया जाना चाहिए, जैसा कि बताया गया है सेक्शन 9 और इस CDD के किसी अन्य हिस्से में मौजूद है. कुछ डिवाइस टाइप जिनका ऐप्लिकेशन डिस्ट्रिब्यूशन नेटवर्क पहले से बेहतर है.

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

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

2.1 डिवाइस कॉन्फ़िगरेशन

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

2.2. हैंडहेल्ड की ज़रूरतें

Android हैंडहेल्ड डिवाइस का मतलब ऐसे Android डिवाइस से है जिसे लागू किया गया है आम तौर पर इसे हाथ में पकड़कर इस्तेमाल किया जाता है, जैसे कि mp3 प्लेयर, फ़ोन या टैबलेट.

Android पर इस्तेमाल किए जाने वाले डिवाइसों को हैंडहेल्ड की कैटगरी में तब रखा जाता है, जब वे सभी ज़रूरी शर्तों को पूरा करते हों जैसे:

  • उनमें ऐसी पावर सोर्स हो जो हिलने-डुलने में मदद करता हो, जैसे कि बैटरी.
  • उनका फ़िज़िकल डायगनल स्क्रीन साइज़, रेंज में 4 इंच से 8 इंच.
  • जिसमें टचस्क्रीन इनपुट इंटरफ़ेस हो.

इस सेक्शन के बाकी हिस्से में बताई गई अन्य ज़रूरी शर्तें खास तौर पर Android के लिए हैं हैंडहेल्ड डिवाइस लागू करना.

ध्यान दें: जो ज़रूरी शर्तें Android टैबलेट पर लागू नहीं होती उन पर * का निशान लगा होता है.

2.2.1. हार्डवेयर

हैंडहेल्ड डिवाइस लागू करना:

  • [7.1.1.1/H-0-1] कम से कम एक आईडी होना ज़रूरी है Android के साथ काम करने वाला ऐसा डिसप्ले जिसका साइज़ कम से कम 2.2" हो छोटे किनारे पर और 3.4" लंबे किनारे पर रखा जा सकता है.
  • [7.1.1.3/H-SR-1] का सुझाव दिया जाता है, ताकि इनसे लोगों को डिसप्ले साइज़ (स्क्रीन की सघनता) बदलने की सुविधा मिलती है.

  • [7.1.1.1/H-0-2] जीपीयू कंपोज़िशन के साथ काम करना ज़रूरी है ग्राफ़िक बफ़र का साइज़, कम से कम किसी बिल्ट-इन सुविधा के सबसे ज़्यादा रिज़ॉल्यूशन के हिसाब से होना चाहिए डिसप्ले.

  • [7.1.1.1/H-0-3]* हर UI_MODE_NORMAL को मैप करना ज़रूरी है बिना किसी रुकावट के तीसरे पक्ष के ऐप्लिकेशन के लिए उपलब्ध कराया गया डिसप्ले डिसप्ले एरिया, जो कम से कम 2.2" हो छोटे किनारे पर इंच और 3.4" इंच, लंबे किनारे पर.

  • [7.1.1.3/H-0-1]* DENSITY_DEVICE_STABLE, 92% या असल, फ़िज़िकल डेंसिटी से ज़्यादा हो का इस्तेमाल करें.

अगर हैंडहेल्ड डिवाइस लागू करने के तरीके में Vulkan के साथ काम करने की सुविधा शामिल है, तो ये:

अगर हैंडहेल्ड डिवाइस लागू करने की प्रोसेस, हाई डाइनैमिक रेंज के लिए सहायता का दावा करती है, तो Configuration.isScreenHdr() के ज़रिए दिखाता है , वे:

  • [7.1.4.5/H-1-1] EGL_EXT_gl_colorspace_bt2020_pq, EGL_EXT_surface_SMPTE2086_metadata, EGL_EXT_surface_CTA861_3_metadata, VK_EXT_swapchain_colorspace, और VK_EXT_hdr_metadata एक्सटेंशन.

हैंडहेल्ड डिवाइस लागू करना:

  • [7.1.4.6/H-0-1] यह बताना ज़रूरी है कि डिवाइस सिस्टम प्रॉपर्टी के ज़रिए जीपीयू प्रोफ़ाइलिंग की सुविधा देता है graphics.gpu.profiler.support.

अगर हैंडहेल्ड डिवाइस लागू करने की प्रक्रिया, सिस्टम प्रॉपर्टी के ज़रिए सहायता का एलान करती है graphics.gpu.profiler.support, वे:

हैंडहेल्ड डिवाइस लागू करना:

  • [7.1.5/H-0-1] लेगसी के लिए, सहायता शामिल करना ज़रूरी है ऐप्लिकेशन के साथ काम करने की सुविधा देने वाला मोड, जिसे अपस्ट्रीम Android ओपन के तहत लागू किया गया है सोर्स कोड. इसका मतलब है कि डिवाइस लागू करने के तरीके के हिसाब से ट्रिगर में बदलाव नहीं करना चाहिए या वे थ्रेशोल्ड जिन पर कम्पैटबिलटी मोड चालू होता है. साथ ही, इन थ्रेशोल्ड में बदलाव नहीं करना चाहिए कंपैटबिलिटी मोड के काम करने का तरीका.
  • [7.2.1/H-0-1] तीसरे पक्ष की सहायता शामिल करना ज़रूरी है इनपुट के तरीके का एडिटर (IME) ऐप्लिकेशन.
  • [7.2.3/H-0-2] आपको सामान्य और देर तक, दोनों बटन दबाने होंगे वापस जाएं फ़ंक्शन का इवेंट (KEYCODE_BACK) ऐप्लिकेशन को फ़ोरग्राउंड ऐप्लिकेशन से लिंक करना. सिस्टम इन इवेंट का इस्तेमाल नहीं कर सकता साथ ही, इसे Android डिवाइस के बाहर (जैसे कि बाहरी हार्डवेयर) ट्रिगर किया जा सकता है Android डिवाइस से कनेक्ट किया गया कीबोर्ड).
  • [7.2.3/H-0-3] होम फ़ंक्शन को चालू करना ज़रूरी है Android के साथ काम करने वाले ऐसे सभी डिसप्ले जिनसे होम स्क्रीन मिलती है.
  • [7.2.3/H-0-4] सभी यूआरएल के लिए वापस जाएं वाला फ़ंक्शन देना ज़रूरी है इनमें से किसी एक डिवाइस पर, Android के साथ काम करने वाले डिसप्ले और हाल ही के काम करने की सुविधा Android के साथ काम करने वाले डिसप्ले.
  • [7.2.4/H-0-1] टचस्क्रीन इनपुट पर काम करना ज़रूरी है.
  • [7.2.4/H-SR-1] हमारी सलाह है कि आप उपयोगकर्ता का चुना गया असिस्टेंट ऐप्लिकेशन. दूसरे शब्दों में, वह ऐप्लिकेशन जो इसे लागू करता है Voiceइंटरैक्शनService या ACTION_ASSIST को मैनेज करने वाली कोई गतिविधि है KEYCODE_MEDIA_PLAY_PAUSE को देर तक दबाए रखने पर या KEYCODE_HEADSETHOOK अगर फ़ोरग्राउंड गतिविधि से, उन इवेंट को हैंडल नहीं किया जा सकता जिन्हें दबाकर रखा गया हो.
  • [7.3.1/H-SR-1] 3-ऐक्सिस को शामिल करने का सुझाव दिया जाता है एक्सलरोमीटर.

अगर हैंडहेल्ड डिवाइसों में इस्तेमाल के लिए 3-ऐक्सिस एक्सलरोमीटर शामिल है, तो ये:

  • [7.3.1/H-1-1] इवेंट की रिपोर्ट, फ़्रीक्वेंसी के हिसाब से होनी चाहिए कम से कम 100 हर्ट्ज़.

अगर हैंडहेल्ड डिवाइस में जीपीएस/जीएनएसएस रिसीवर शामिल किया जाता है और android.hardware.location.gps सुविधा का इस्तेमाल करके, ऐप्लिकेशन इस्तेमाल करने की क्षमता फ़्लैग करते हैं, तो:

  • [7.3.3/H-2-1] GNSS मेज़रमेंट को तुरंत रिपोर्ट करना ज़रूरी है मिल जाते हैं, भले ही GPS/GNSS से मिली किसी जगह की जानकारी अभी तक रिपोर्ट न की गई हो.
  • [7.3.3/H-2-2] जीएनएसएस स्यूडोरेंज और स्यूडोरेंज की रिपोर्ट करना ज़रूरी है स्थान का निर्धारण करने के बाद खुले आसमान की स्थितियों में, जबकि स्थिर या 0.2 मीटर प्रति सेकंड के वर्ग से कम के साथ मूविंग त्वरण, 20 मीटर के अंदर स्थिति की गणना करने के लिए पर्याप्त है और 0.2 मीटर प्रति सेकंड के अंदर, कम से कम 95% समय में.

अगर हैंडहेल्ड डिवाइस में किसी 3-ऐक्सिस जाइरोस्कोप का इस्तेमाल किया जाता है, तो वे:

  • [7.3.4/H-3-1] इवेंट की रिपोर्ट, फ़्रीक्वेंसी के हिसाब से होनी चाहिए कम से कम 100 हर्ट्ज़.
  • [7.3.4/H-3-2] स्क्रीन की दिशा में हुए बदलावों को मेज़र करने की सुविधा होनी चाहिए 1000 डिग्री प्रति सेकंड तक.

हैंडहेल्ड डिवाइस में इस तरह से लागू किया जाता है कि वॉइस कॉल किया जा सकता है और getPhoneType में PHONE_TYPE_NONE के अलावा कोई भी मान:

  • [7.3.8/H] इसमें प्रॉक्सिमिटी सेंसर शामिल होना चाहिए.

हैंडहेल्ड डिवाइस लागू करना:

  • [7.3.11/H-SR-1] पोज़ सेंसर के साथ काम करने के लिए बहुत ज़्यादा सुझाव दिया जाता है जिसमें 6 डिग्री की छूट होनी चाहिए.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [7.4.3/H] इसमें ब्लूटूथ और ब्लूटूथ LE.

डिवाइस को हैंडहेल्ड करके, ब्लूटूथ LE के साथ काम करने के लिए:

  • [7.4.3/H-SR-1] को सपोर्ट करने के लिए बहुत ज़्यादा सुझाव दिया जाता है ब्लूटूथ LE डेटा पैकेट की लंबाई का एक्सटेंशन.

नई ज़रूरी शर्तें खत्म करना

अगर डिवाइसों पर, वाई-फ़ाई नेबर अवेयरनेस नेटवर्किंग (एनएएन) प्रोटोकॉल का इस्तेमाल PackageManager.FEATURE_WIFI_AWARE और वाई-फ़ाई की जगह की जानकारी (वाई-फ़ाई राउंड) का एलान किया जा रहा है यात्रा का समय — आरटीटी) और PackageManager.FEATURE_WIFI_RTT का एलान करने पर, वे:

  • [7.4.2.5/H-1-1] ज़रूरी है कि रेंज की सटीक जानकारी 68वें पर्सेंटाइल पर 160 मेगाहर्ट्ज़ बैंडविथ पर +/-1 मीटर के अंदर (जैसा कि कैलकुलेट किया गया है) क्यूमुलेटिव डिस्ट्रिब्यूशन फ़ंक्शन के साथ), +/-2 मीटर पर 80 मेगाहर्ट्ज़ बैंडविड्थ के साथ 68वां पर्सेंटाइल, 68वें पर्सेंटाइल पर 40 मेगाहर्ट्ज़ बैंडविथ पर +/-4 मीटर, और 10 की दूरी पर 68वें पर्सेंटाइल पर 20 मेगाहर्ट्ज़ बैंडविड्थ पर +/-8 मीटर सेमी, 1 मीटर, 3 मीटर, और 5 मीटर. WifiRttManager#startRanging Android API.

  • [7.4.2.5/H-SR-1] हमारी सलाह है कि आप रेंज 90वें पर 160 मेगाहर्ट्ज़ बैंडविड्थ पर +/-1 मीटर के अंदर है पर्सेंटाइल (क्यूमुलेटिव डिस्ट्रिब्यूशन फ़ंक्शन की मदद से कैलकुलेट किया गया), +/-2 90वें पर्सेंटाइल पर 80 मेगाहर्ट्ज़ बैंडविथ पर मीटर, 40 मेगाहर्ट्ज़ पर +/-4 मीटर 90वें पर्सेंटाइल पर बैंडविथ और 20 मेगाहर्ट्ज़ बैंडविड्थ पर +/-8 मीटर 10 सें॰मी॰ की दूरी पर 90वां पर्सेंटाइल, जैसा कि WifiRttManager#startRanging Android API.

हमारा सुझाव है कि मेज़रमेंट सेटअप करने के लिए, यहां दिए गए चरणों को अपनाएं मौजूदगी का कैलिब्रेशन.

अगर हैंडहेल्ड डिवाइस पर लागू होने वाले FEATURE_BLUETOOTH_LE का एलान किया जाता है, तो:

  • [7.4.3/H-1-3] Rx को मेज़र करना और उसकी भरपाई करना ज़रूरी है यह पक्का करने के लिए कि BLE आरएसएसआई का मीडियन -50dBm +/-15 dB है. यह संदर्भ डिवाइस ADVERTISE_TX_POWER_HIGH पर ट्रांसमिट हो रहा है.
  • [7.4.3/H-1-4] Tx को मेज़र करना और उसकी भरपाई करना ज़रूरी है ऑफ़सेट को पक्का करने के लिए कि रेफ़रंस डिवाइस को 1 मीटर की दूरी पर रखा गया हो और ट्रांसमिट किया जा रहा हो ADVERTISE_TX_POWER_HIGH.

अगर हैंडहेल्ड डिवाइस को लागू करने के लिए, एक लॉजिकल कैमरा डिवाइस शामिल है, जिसमें नीचे दी गई सूची ये सुविधाएं मिलती हैं: CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_LOGICAL_MULTI_CAMERA वे:

  • [7.5.4/H-1-1] डिफ़ॉल्ट रूप से, सामान्य फ़ील्ड ऑफ़ व्यू (एफ़ओवी) होना चाहिए और यह 50 और डिग्री.

हैंडहेल्ड डिवाइस लागू करना:

  • [7.6.1/H-0-1] ज़रूरी है कि आपके डिवाइस में कम से कम 4 जीबी स्टोरेज ऐप्लिकेशन के निजी डेटा के लिए, नॉन-वोलाटाइल स्टोरेज उपलब्ध है (यानी "/data" पार्टीशन).
  • [7.6.1/H-0-2] "सही" दिखना चाहिए इसके लिए 1 जीबी से कम मेमोरी होने पर ActivityManager.isLowRamDevice() कर्नेल और यूज़रस्पेस के लिए उपलब्ध होता है.

अगर हैंडहेल्ड डिवाइस लागू करने की प्रक्रिया में, सिर्फ़ 32-बिट एबीआई के साथ काम करने का एलान किया जाता है:

  • [7.6.1/H-1-1] कर्नेल के लिए उपलब्ध मेमोरी और अगर डिफ़ॉल्ट डिसप्ले में फ़्रेमबफ़र का इस्तेमाल किया जाता है, तो यूज़रस्पेस कम से कम 416 एमबी होना चाहिए qHD तक के रिज़ॉल्यूशन (जैसे कि FWVGA).

  • [7.6.1/H-2-1] कर्नेल के लिए उपलब्ध मेमोरी और अगर डिफ़ॉल्ट डिसप्ले में फ़्रेमबफ़र का इस्तेमाल किया जाता है, तो यूज़रस्पेस कम से कम 592 एमबी होना चाहिए HD+ तक के रिज़ॉल्यूशन (जैसे कि HD, WSVGA).

  • [7.6.1/H-3-1] कर्नेल के लिए उपलब्ध मेमोरी और अगर डिफ़ॉल्ट डिसप्ले में फ़्रेमबफ़र का इस्तेमाल किया जाता है, तो यूज़रस्पेस कम से कम 896 एमबी होना चाहिए एफ़एचडी तक के रिज़ॉल्यूशन (उदाहरण के लिए, WSXGA+).

  • [7.6.1/H-4-1] कर्नेल के लिए उपलब्ध मेमोरी और अगर डिफ़ॉल्ट डिसप्ले का इस्तेमाल करता है, तो यूज़रस्पेस कम से कम 1344 एमबी होना चाहिए क्वाड हाई डेफ़िनिशन (क्यूएचडी) तक के फ़्रेम बफ़र रिज़ॉल्यूशन (उदाहरण के लिए, QWXGA).

अगर हैंडहेल्ड डिवाइस पर लागू होने वाले किसी भी 64-बिट एबीआई के साथ काम करने की घोषणा की जाती है (32-बिट एबीआई के साथ या उसके बिना):

  • [7.6.1/H-5-1] कर्नेल के लिए उपलब्ध मेमोरी और उपयोगकर्ता के पास होना ज़रूरी है अगर डिफ़ॉल्ट डिसप्ले, फ़्रेमबफ़र रिज़ॉल्यूशन का इस्तेमाल करता है, तो यह कम से कम 816 एमबी होना चाहिए से qHD (जैसे, FWVGA) को कनेक्ट करता है.

  • [7.6.1/H-6-1] कर्नेल के लिए उपलब्ध मेमोरी और उपयोगकर्ता स्थान कम से कम होना चाहिए अगर डिफ़ॉल्ट डिसप्ले, एचडी+ तक के फ़्रेमबफ़र रिज़ॉल्यूशन का इस्तेमाल करता है, तो 944 एमबी (उदाहरण के लिए, HD, WSVGA).

  • [7.6.1/H-7-1] कर्नेल के लिए उपलब्ध मेमोरी और उपयोगकर्ता स्थान कम से कम होना चाहिए अगर डिफ़ॉल्ट डिसप्ले में एफ़एचडी तक के फ़्रेमबफ़र रिज़ॉल्यूशन का इस्तेमाल किया जाता है, तो 1280 एमबी (उदाहरण के लिए, WSXGA+).

  • [7.6.1/H-8-1] कर्नेल के लिए उपलब्ध मेमोरी और उपयोगकर्ता स्थान कम से कम होना चाहिए अगर डिफ़ॉल्ट डिसप्ले में क्वाड हाई डेफ़िनिशन (क्यूएचडी) तक के फ़्रेमबफ़र रिज़ॉल्यूशन का इस्तेमाल किया जाता है, तो 1824 एमबी (उदाहरण के लिए, QWXGA).

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

अगर हैंडहेल्ड डिवाइस में ज़रूरत के हिसाब से एक जीबी या इससे कम मेमोरी उपलब्ध है कर्नेल और यूज़रस्पेस के लिए उपलब्ध, वे:

  • [7.6.1/H-9-1] फ़ीचर फ़्लैग के बारे में बताना ज़रूरी है android.hardware.ram.low.
  • [7.6.1/H-9-2] ज़रूरी है कि आपके पास कम से कम 1.1 जीबी स्टोरेज हो ऐप्लिकेशन के लिए नॉन-वोलाटाइल स्टोरेज निजी डेटा (यानी "/data" पार्टीशन).

अगर हैंडहेल्ड डिवाइस को लागू करने के लिए उसमें 1 जीबी से ज़्यादा मेमोरी उपलब्ध हो को कर्नेल और यूज़रस्पेस में जोड़ा जाता है, तो वे:

  • [7.6.1/H-10-1] ज़रूरी है कि आपके पास कम से कम 4 जीबी स्टोरेज हो इनके लिए, नॉन-वोलेटाइल स्टोरेज उपलब्ध है ऐप्लिकेशन निजी डेटा (यानी "/data" पार्टीशन).
  • फ़ीचर फ़्लैग android.hardware.ram.normal का एलान करना चाहिए.

अगर हैंडहेल्ड डिवाइस पर 2 जीबी से ज़्यादा या इसके बराबर डेटा लागू किया जाता है और कर्नेल और यूज़रस्पेस के लिए 4 जीबी से कम मेमोरी उपलब्ध होती है, तो वे:

  • [7.6.1/H-SR-1] सिर्फ़ 32-बिट यूज़रस्पेस के साथ काम करने के लिए सुझाव दिया जाता है (ऐप्लिकेशन और सिस्टम कोड दोनों)

अगर हैंडहेल्ड डिवाइस लागू करने के लिए उसमें 2 जीबी से कम मेमोरी उपलब्ध हो कर्नेल और यूज़रस्पेस, वे:

  • [7.6.1/H-1-1] सिर्फ़ एक एबीआई के साथ काम करना ज़रूरी है (सिर्फ़ 64-बिट या 32-बिट .

हैंडहेल्ड डिवाइस लागू करना:

  • [7.6.2/H-0-1] कोई आवेदन नहीं देना चाहिए शेयर किया जाने वाला स्टोरेज, 1 GiB से कम है.
  • [7.7.1/H] इसमें ऐसा यूएसबी पोर्ट होना चाहिए जो सहायक डिवाइस (जैसे, कीबोर्ड, माउस, मॉनिटर, वेबकैम वगैरह) मोड के साथ काम करता हो.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

अगर हैंडहेल्ड डिवाइस में यूएसबी पोर्ट शामिल है सहायता देना इसमें कंट्रोलर का इस्तेमाल किया जा रहा है सहायक डिवाइस (जैसे, कीबोर्ड, माउस, मॉनिटर, वेबकैम वगैरह) मोड का इस्तेमाल करते हैं, वे:

  • [7.7.1/H-1-1] Android ओपन ऐक्सेसरी (एओए) को लागू करना ज़रूरी है एपीआई.

नई ज़रूरी शर्तें खत्म करना

अगर हैंडहेल्ड डिवाइस में किसी ऐसे यूएसबी पोर्ट को शामिल किया गया है जो होस्ट मोड के साथ काम करता है, वे:

हैंडहेल्ड डिवाइस लागू करना:

  • [7.8.1/H-0-1] माइक्रोफ़ोन होना ज़रूरी है.
  • [7.8.2/H-0-1] ज़रूरी है कि आपके पास ऑडियो आउटपुट हो और जिसमें android.hardware.audio.output.

अगर हैंडहेल्ड डिवाइस लागू करने की प्रक्रिया सभी प्रदर्शनों को पूरा करने में सक्षम हो वीआर मोड के साथ काम करने की ज़रूरी शर्तें और इसमें सहायता शामिल है, तो:

  • [7.9.1/H-1-1] ज़रूरी है कि android.hardware.vr.high_performance फ़ीचर फ़्लैग.
  • [7.9.1/H-1-2] आवेदन करना ज़रूरी है android.service.vr.VrListenerService को लागू करना, जिसे वीआर की मदद से चालू किया जा सकता है android.app.Activity#setVrModeEnabled के द्वारा ऐप्स को.

अगर हैंडहेल्ड डिवाइस लागू करने के तरीके में होस्ट में एक या उससे ज़्यादा यूएसबी-सी पोर्ट शामिल हैं को लागू करने और (यूएसबी ऑडियो क्लास) का इस्तेमाल करने के लिए किया जा सकता है. इसके अलावा, सेक्शन 7.7.2 में:

  • [7.8.2.2/H-1-1] यहां दी गई सॉफ़्टवेयर मैपिंग उपलब्ध करानी ज़रूरी है एचआईडी कोड का इस्तेमाल करके:
फ़ंक्शन मैपिंग संदर्भ व्यवहार
A एचआईडी के इस्तेमाल की जानकारी देने वाला पेज: 0x0C
एचआईडी का इस्तेमाल: 0x0CD
Kernel key: KEY_PLAYPAUSE
Android कुंजी: KEYCODE_MEDIA_PLAY_PAUSE
मीडिया प्लेबैक इनपुट: थोड़ी देर दबाएं
आउटपुट: चलाएं या रोकें
इनपुट: दबाकर रखें
आउटपुट: बोलकर निर्देश देने की सुविधा लॉन्च करें
भेजें: android.speech.action.VOICE_SEARCH_HANDS_FREE अगर डिवाइस लॉक हो या उसकी स्क्रीन बंद हो. भेजता है अन्य मामलों में android.speech.RecognizerIntent.ACTION_WEB_SEARCH
आने वाला (इनकमिंग) कॉल इनपुट: थोड़ी देर दबाएं
आउटपुट: कॉल स्वीकार करें
इनपुट: दबाकर रखें
आउटपुट: कॉल काट दें
पहले से जारी कॉल इनपुट: थोड़ी देर दबाएं
आउटपुट: कॉल खत्म करें
इनपुट: दबाकर रखें
आउटपुट: माइक्रोफ़ोन म्यूट या अनम्यूट करें
B एचआईडी के इस्तेमाल की जानकारी देने वाला पेज: 0x0C
एचआईडी का इस्तेमाल: 0x0E9
Kernel key: KEY_VOLUMEUP
Android कुंजी: VOLUME_UP
मीडिया प्लेबैक, जारी कॉल इनपुट: छोटा करना या दबाकर रखना
आउटपुट: सिस्टम या हेडसेट की आवाज़ बढ़ाता है
C एचआईडी के इस्तेमाल की जानकारी देने वाला पेज: 0x0C
एचआईडी का इस्तेमाल: 0x0EA
Kernel key: KEY_VOLUMEDOWN
Android कुंजी: VOLUME_DOWN
मीडिया प्लेबैक, जारी कॉल इनपुट: छोटा करना या दबाकर रखना
आउटपुट: सिस्टम या हेडसेट की आवाज़ कम करता है
D एचआईडी के इस्तेमाल की जानकारी देने वाला पेज: 0x0C
एचआईडी का इस्तेमाल: 0x0CF
Kernel key: KEY_VOICECOMMAND
Android कुंजी: KEYCODE_VOICE_ASSIST
सभी थ्रेड के लिए. किसी भी स्थिति में ट्रिगर किया जा सकता है. इनपुट: छोटा करना या दबाकर रखना
आउटपुट: बोलकर निर्देश देने की सुविधा लॉन्च करें
  • [7.8.2.2/H-1-2] ACTION_HEADSET_PLUG को ट्रिगर करना ज़रूरी है एक प्लग इंसर्ट पर होता है, लेकिन सिर्फ़ यूएसबी ऑडियो इंटरफ़ेस और एंडपॉइंट के कनेक्ट किए गए टर्मिनल के टाइप की पहचान करने के लिए इन्हें सही तरीके से गिना गया है.

यूएसबी ऑडियो टर्मिनल टाइप 0x0302 का पता चलने पर:

  • [7.8.2.2/H-2-1] इंटेंट ACTION_HEADSET_PLUG को "माइक्रोफ़ोन" अतिरिक्त 0 पर सेट किया गया.

यूएसबी ऑडियो टर्मिनल टाइप 0x0402 का पता चलने पर:

  • [7.8.2.2/H-3-1] इंटेंट ACTION_HEADSET_PLUG को "माइक्रोफ़ोन" अतिरिक्त, 1 पर सेट है.

जब यूएसबी सहायक डिवाइस को उन्होंने कनेक्ट किया:

  • [7.8.2.2/H-4-1] AudioDeviceInfo.TYPE_USB_HEADSET टाइप का डिवाइस होना ज़रूरी है और यूएसबी ऑडियो टर्मिनल टाइप फ़ील्ड 0x0302 है, तो भूमिका isSink().

  • [7.8.2.2/H-4-2] ज़रूरी है कि अगर यूएसबी ऑडियो टर्मिनल का इस्तेमाल करना है, तो AudioDeviceInfo.TYPE_USB_HEADSET और रोल isSink() पर जाएं टाइप फ़ील्ड 0x0402 है.

  • [7.8.2.2/H-4-3] टाइप का एक डिवाइस देना ज़रूरी है अगर यूएसबी ऑडियो टर्मिनल का इस्तेमाल करना है, तो AudioDeviceInfo.TYPE_USB_HEADSET और रोल isSource() पर जाएं टाइप फ़ील्ड 0x0402 है.

  • [7.8.2.2/H-4-4] AudioDeviceInfo.TYPE_USB_DEVICE टाइप वाला डिवाइस होना ज़रूरी है और यूएसबी ऑडियो टर्मिनल टाइप फ़ील्ड 0x603 है, तो भूमिका isSink().

  • [7.8.2.2/H-4-5] ज़रूरी है कि अगर यूएसबी ऑडियो टर्मिनल है, तो AudioDeviceInfo.TYPE_USB_DEVICE और भूमिका isSource() प्रकार फ़ील्ड 0x604 है.

  • [7.8.2.2/H-4-6] ज़रूरी है कि अगर यूएसबी ऑडियो टर्मिनल का टाइप है, तो AudioDeviceInfo.TYPE_USB_DEVICE और भूमिका isSink() फ़ील्ड 0x400 है.

  • [7.8.2.2/H-4-7] ज़रूरी है कि अगर यूएसबी ऑडियो टर्मिनल है, तो AudioDeviceInfo.TYPE_USB_DEVICE और भूमिका isSource() प्रकार फ़ील्ड 0x400 है.

  • [7.8.2.2/H-SR-1] का सुझाव दिया जाता है. ऐसा तब किया जाता है, जब यूएसबी-सी ऑडियो पेरिफ़ेरल, यूएसबी डिस्क्रिप्टर की गिनती करने के लिए, टर्मिनल टाइप और ब्रॉडकास्ट इंटेंट ACTION_HEADSET_PLUG से कम में 1000 मिलीसेकंड.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

अगर इसके लिए हैंडहेल्ड डिवाइस लागू करना वह एलान android.hardware.audio.output और android.hardware.microphone, वे: सेक्शन में, आरटीएल और टीटीएल के लिए ज़रूरी शर्तें देखें 5.6.

  • [5.6/H-1-1] के लिए, लगातार दोतरफ़ा यात्रा का औसत होना ज़रूरी है 300 मिलीसेकंड की इंतज़ार का समय या 5 से कम मापों के साथ, औसत कुल विचलन से कम 30 मि॰से॰ से ज़्यादा ये डेटा पाथ: "स्पीकर टू माइक्रोफ़ोन", 3.5 मि॰मी॰ का लूपबैक अडैप्टर (अगर काम करता है), यूएसबी लूपबैक (अगर काम करता है).

  • [5.6/H-1-2] टैप-टू-टोन के दौरान इंतज़ार का औसत समय होना चाहिए 300 मिलीसेकंड या स्पीकर पर कम से कम पांच से कम तापमान मापा जाता है से माइक्रोफ़ोन डेटा पाथ में जोड़ा जा सकता है.

नई ज़रूरी शर्तें खत्म करना

लीनियर रेज़ोनेंट एक्चुएटर (एलआरए), सिंगल-मास स्प्रिंग सिस्टम है. इसमें प्रभावी रेज़ोनेंट फ़्रीक्वेंसी जहां द्रव्यमान का अनुवाद चुनें.

अगर हैंडहेल्ड डिवाइस लागू करने की प्रक्रिया में कम से कम एक सामान्य मकसद 7.10 शामिल है लीनियर रेज़ोनेंट एक्चुएटर, वे:

  • [7.10/H] एक्चुएटर के प्लेसमेंट को इस जगह पर रखना चाहिए: वह जगह जहां डिवाइस को आम तौर पर हाथों से पकड़ा या छुआ जाता है.

  • [7.10/घंटा] X-ऐक्सिस पर हैप्टिक एक्चुएटर को ले जाना चाहिए डिवाइस के नैचुरल ओरिएंटेशन (स्क्रीन की दिशा) के मुताबिक (बाएं-दाएं).

अगर हैंडहेल्ड डिवाइस को लागू करने का कोई सामान्य मकसद है हैप्टिक एक्चुएटर जो एक्स-ऐक्सिस लीनियर रेज़ोनेंट एक्चुएटर (एलआरए) है, वे:

  • [7.10/घंटा] X-ऐक्सिस LRA की रेज़ोनेंट फ़्रीक्वेंसी 200 हर्ट्ज़ से कम होनी चाहिए.

अगर हैंडहेल्ड डिवाइस, हैप्टिक कॉन्सटेंट मैपिंग के हिसाब से लागू होते हैं, तो ये:

2.2.2. मल्टीमीडिया

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

  • [5.1/H-0-1] एएमआर-एनबी
  • [5.1/H-0-2] एएमआर-डब्ल्यूबी
  • [5.1/H-0-3] MPEG-4 एएसी प्रोफ़ाइल (AAC LC)
  • [5.1/H-0-4] MPEG-4 HE AAC प्रोफ़ाइल (AAC+)
  • [5.1/H-0-5] AAC ELD (कम देरी वाले AAC)

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

  • [5.2/H-0-1] H.264 एवीसी
  • [5.2/H-0-2] VP8
  • [5.2/H-0-3] एवी1

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

  • [5.3/H-0-1] H.264 एवीसी
  • [5.3/H-0-2] H.265 एचईवीसी
  • [5.3/H-0-3] MPEG-4 SP
  • [5.3/H-0-4] VP8
  • [5.3/H-0-5] VP9
  • [5.3/H-0-6] AV1

2.2.3. सॉफ़्टवेयर

हैंडहेल्ड डिवाइस लागू करना:

  • [3.2.3.1/H-0-1] ज़रूरी है कि ऐसा ऐप्लिकेशन जो ACTION_GET_CONTENT, ACTION_OPEN_DOCUMENT, ACTION_OPEN_DOCUMENT_TREE, और ACTION_CREATE_DOCUMENT इंटेंट, SDK टूल के दस्तावेज़ों में बताए गए हैं. साथ ही, उपयोगकर्ताओं के लिए DocumentsProvider एपीआई का इस्तेमाल करके, दस्तावेज़ देने वाले का डेटा ऐक्सेस करने के लिए.
  • [3.2.3.1/H-0-2]* एक पेज को पहले से लोड करना ज़रूरी है या उससे ज़्यादा ऐप्लिकेशन या सेवा के कॉम्पोनेंट, इस ऐप्लिकेशन के तय किए गए सभी पब्लिक इंटेंट फ़िल्टर पैटर्न इंटेंट यहां दिए गए हैं.
  • [3.2.3.1/H-SR-1] काफ़ी मज़बूत होते हैं ऐसे ईमेल ऐप्लिकेशन को पहले से लोड करने का सुझाव दिया जाता है जो ACTION_SENDTO को मैनेज कर सकता है या ACTION_SEND या ACTION_SEND_MULTIPLE का मकसद ईमेल भेजना है.
  • [3.4.1/H-0-1] ज़रूरी जानकारी android.webkit.Webview एपीआई को लागू करना.
  • [3.4.2/H-0-1] में एक स्टैंडअलोन ब्राउज़र होना ज़रूरी है सामान्य उपयोगकर्ता वेब ब्राउज़िंग के लिए ऐप्लिकेशन.
  • [3.8.1/H-SR-1] का सुझाव दिया जाता है शॉर्टकट को ऐप्लिकेशन में पिन करने की सुविधा देने वाला डिफ़ॉल्ट लॉन्चर लागू करने के लिए, विजेट और widgetFeatures.
  • [3.8.1/H-SR-2] बहुत ज़्यादा सुझाव दिए जाते हैं एक डिफ़ॉल्ट लॉन्चर लागू करने के लिए जो अतिरिक्त सेटिंग का क्विक ऐक्सेस देता है ShortcutManager के ज़रिए तीसरे पक्ष के ऐप्लिकेशन से मिलने वाले शॉर्टकट एपीआई.
  • [3.8.1/H-SR-3] रखने का सुझाव दिया जाता है एक डिफ़ॉल्ट लॉन्चर ऐप्लिकेशन शामिल करने के लिए, जो ऐप्लिकेशन आइकॉन के लिए बैज दिखाता हो.
  • [3.8.2/H-SR-1] का सुझाव दिया जाता है तीसरे पक्ष के ऐप्लिकेशन विजेट की सुविधा भी मिलेगी.
  • [3.8.3/H-0-1] तीसरे पक्ष को अनुमति देनी होगी ऐसे ऐप्लिकेशन जो उपयोगकर्ताओं को Notification और NotificationManager एपीआई क्लास.
  • [3.8.3/H-0-2] रिच सपोर्ट नोटिफ़िकेशन.
  • [3.8.3/H-0-3] चेतावनी देने की सुविधा का इस्तेमाल करना ज़रूरी है नोटिफ़िकेशन.
  • [3.8.3/H-0-4] ज़रूरी है कि नोटिफ़िकेशन शेड, जिससे उपयोगकर्ता को सीधे उपयोगकर्ता की सुविधा के हिसाब से, सूचनाओं का जवाब देना, स्नूज़ (थोड़ी देर के लिए बंद करना), खारिज करना, ब्लॉक करना) करना. जैसे, AOSP में लागू किए गए ऐक्शन बटन या कंट्रोल पैनल का इस्तेमाल करें.
  • [3.8.3/H-0-5] विकल्प दिखाना ज़रूरी है RemoteInput.Builder setChoices() के ज़रिए दिया गया सूचना शेड में दिखाई देगा.
  • [3.8.3/H-SR-1] का सुझाव दिया जाता है RemoteInput.Builder setChoices() में दिए गए पहले विकल्प को दिखाने के लिए नोटिफ़िकेशन शेड में दिखाई देगा.
  • [3.8.3/H-SR-2] बहुत ज़्यादा सुझाव दिए जाते हैं RemoteInput.Builder setChoices() के ज़रिए दिए गए सभी विकल्पों को दिखाने के लिए सूचना शेड में, जब उपयोगकर्ता यहां दी गई सभी सूचनाओं को बड़ा करता है नोटिफ़िकेशन शेड पर टैप करें.
  • [3.8.3.1/H-SR-1] का बहुत ज़्यादा सुझाव दिया जाता है उन कार्रवाइयों को दिखाने के लिए जिनके लिए Notification.Action.Builder.setContextual के रूप में true इन-लाइन के रूप में सेट किया गया है Notification.Remoteinput.Builder.setChoices.
  • [3.8.4/H-SR-1] का सुझाव दिया जाता है असिस्ट की कार्रवाई को मैनेज करने के लिए, डिवाइस पर Assistant को लागू करना होगा.

क्या हैंडहेल्ड डिवाइस लागू करने पर MediaStyle नोटिफ़िकेशन काम करते हैं वे:

  • [3.8.3.1/H-SR-2] का बहुत ज़्यादा सुझाव दिया जाता है (जैसे, आउटपुट स्विचर) से ऐक्सेस किया जाने वाला सिस्टम का यूज़र इंटरफ़ेस (यूआई), जिसकी मदद से उपयोगकर्ता सही मीडिया पर स्विच कर सकते हैं रूट (उदाहरण के लिए, ब्लूटूथ डिवाइस और MediaRouter2Manager) जब कोई ऐप्लिकेशन MediaSession टोकन के साथ MediaStyle की सूचना पोस्ट करता है.

अगर डिवाइस पर, हाल ही के फ़ंक्शन की नेविगेशन कुंजी को इस तरह लागू किया जाता है सेक्शन 7.2.3 में बताया गया है. इससे इंटरफ़ेस में बदलाव होता है.

  • [3.8.3/H-1-1] स्क्रीन पर ज़रूरी बदलाव करना होगा पिन करने के तरीके पर क्लिक करें और सुविधा.

अगर हैंडहेल्ड डिवाइस लागू करने की सुविधा असिस्ट ऐक्शन की सुविधा देती है, तो ये काम किए जा सकते हैं:

  • [3.8.4/H-SR-2] का सुझाव दिया जाता है को लॉन्च करने के लिए, तय किए गए इंटरैक्शन के तौर पर HOME बटन को दबाकर रखें सहायक ऐप्लिकेशन के बारे में जानकारी होनी चाहिए, जैसा कि सेक्शन 7.2.3 में बताया गया है. लॉन्च करना ज़रूरी है उपयोगकर्ता का चुना गया असिस्टेंट ऐप्लिकेशन. दूसरे शब्दों में, वह ऐप्लिकेशन जो इसे लागू करता है VoiceInteractionService या ACTION_ASSIST इंटेंट से जुड़ी कोई गतिविधि.

अगर हैंडहेल्ड डिवाइस लागू करने की सुविधा conversation notifications का इस्तेमाल करती है, तो और उन्हें सूचना देने और बातचीत के बिना, अलग-अलग सेक्शन में ग्रुप करें सूचनाओं के लिए:

  • [3.8.4/H-1-1]* दिखाना ज़रूरी है गैर-बातचीत वाली सूचनाओं के आगे, बातचीत की सूचनाएं फ़ोरग्राउंड सेवा से जुड़ी मौजूदा सूचनाओं को छोड़कर, अहमियत:ज़्यादा नोटिफ़िकेशन.

अगर Android हैंडहेल्ड डिवाइस, लॉक स्क्रीन पर काम करते हैं, तो ये काम किए जा सकते हैं:

  • [3.8.10/H-1-1] लॉक आइकॉन दिखाना ज़रूरी है स्क्रीन पर सूचनाएं दिखाने की सुविधा चालू करें. इसमें मीडिया सूचना टेंप्लेट भी शामिल है.

अगर हैंडहेल्ड डिवाइस, सुरक्षित लॉक स्क्रीन की सुविधा देते हैं, तो ये काम किए जा सकते हैं:

यदि हैंडहेल्ड डिवाइस कार्यान्वयनों में ControlsProviderService और Control एपीआई और तीसरे पक्ष के ऐप्लिकेशन को डिवाइस कंट्रोल पब्लिश करने की अनुमति देते हैं. इसके बाद, ये काम किए जा सकते हैं:

  • [3.8.16/H-1-1] सुविधा के बारे में एलान करना ज़रूरी है फ़्लैग करें android.software.controls और true पर सेट कर दें.
  • [3.8.16/H-1-2] उपयोगकर्ता को यह जानकारी देनी होगी लोगों के लिए, सेवाओं को जोड़ने, उनमें बदलाव करने, चुनने, और मैनेज करने की सुविधा तीसरे पक्ष के रजिस्टर किए गए कंट्रोल से मिलने वाले पसंदीदा डिवाइस कंट्रोल ControlsProviderService के ज़रिए मिले आवेदन और Control एपीआई.
  • [3.8.16/H-1-3] यह विकल्प, डिफ़ॉल्ट लॉन्चर से तीन इंटरैक्शन के अंदर उपयोगकर्ता के लिए उपलब्ध है.
  • [3.8.16/H-1-4] सही तरीके से रेंडर होना चाहिए उपयोगकर्ता की इस सुविधा में, उन सभी तीसरे पक्ष के ऐप्लिकेशन के नाम और आइकॉन शामिल हैं जो ControlsProviderService के ज़रिए कंट्रोल देता है एपीआई और इसके ज़रिए उपलब्ध कराए गए सभी खास फ़ील्ड Control एपीआई.

  • [3.8.16/H-1-5] उपयोगकर्ता को यह जानकारी देनी होगी ऐप्लिकेशन के लिए तय किए गए पुष्टि करने वाले डिवाइस कंट्रोल से ऑप्ट आउट करने की अनुमति वे नियंत्रण, जो तृतीय-पक्ष ऐप्लिकेशन द्वारा ControlsProviderService और Control Control.isAuthRequired API.

  • [3.8.16/H-1-6] डिवाइस पर सुविधाएं लागू करना लोगों के लिए, खरीदने की सुविधा को इस तरह से सटीक तरीके से दिखाना ज़रूरी है:

    • अगर डिवाइस ने config_supportsMultiWindow=true को सेट किया है और ऐप्लिकेशन, मेटाडेटा का एलान करता है META_DATA_PANEL_ACTIVITY में ControlsProviderService एलान का इस्तेमाल करें, जिसमें कॉम्पोनेंट का नाम शामिल है: मान्य गतिविधि चुनें (जैसा कि एपीआई के मुताबिक तय किया गया है), तो ऐप्लिकेशन को एम्बेड करना ज़रूरी है गतिविधि के लिए इस्तेमाल किया जा सकता है.
    • अगर ऐप्लिकेशन, मेटाडेटा META_DATA_PANEL_ACTIVITY के बारे में जानकारी नहीं देता है, तो उसे ControlsProviderService एपीआई और इसके ज़रिए उपलब्ध कराए गए सभी खास फ़ील्ड Control API.
  • [3.8.16/H-1-7] अगर ऐप्लिकेशन, मेटाडेटा के बारे में जानकारी देता है META_DATA_PANEL_ACTIVITY, इसे [3.8.16/H-1-5] में बताई गई सेटिंग की वैल्यू को पास करना होगा. इसके लिए, EXTRA_LOCKSCREEN_ALLOW_TRIVIAL_CONTROLS एम्बेड की गई गतिविधि को लॉन्च करते समय.

इसके उलट, अगर हैंडहेल्ड डिवाइस पर ये कंट्रोल लागू नहीं किए जाते, वे:

  • [3.8.16/H-2-1] इसके लिए null को रिपोर्ट करना ज़रूरी है ControlsProviderService और Control एपीआई.
  • [3.8.16/H-2-2] सुविधा के बारे में एलान करना ज़रूरी है फ़्लैग करें android.software.controls और false पर सेट कर दें.

अगर लॉक टास्क मोड में हैंडहेल्ड डिवाइस लागू नहीं हो रहे हैं, तो कॉन्टेंट को क्लिपबोर्ड पर कॉपी किए जाने पर, वे:

  • [3.8.17/H-1-1] उपयोगकर्ता को इस बात की पुष्टि करना ज़रूरी है कि डेटा क्लिपबोर्ड पर कॉपी किया गया हो (जैसे, "कॉन्टेंट कॉपी किया गया" का थंबनेल या सूचना). इसके अलावा, यहां यह जानकारी भी शामिल करें कि क्या क्लिपबोर्ड डेटा सिंक किया जाएगा ट्रैक किया जा सकता है.

हैंडहेल्ड डिवाइस लागू करना:

  • [3.10/H-0-1] तीसरे पक्ष की सुलभता सुविधाएं ज़रूरी हैं सेवाओं.
  • [3.10/H-SR-1] को पहले से लोड करने का सुझाव दिया जाता है डिवाइस पर सुलभता सेवाओं की तुलना, जो किसी दूसरी सुविधा के बराबर या उससे ज़्यादा की जा सकती है स् विच ऐक्सेस और TalkBack (पहले से इंस्टॉल किए गए वर्शन के साथ काम करने वाली भाषाओं के लिए) टेक्स्ट-टू-स्पीच इंजन) के तौर पर उपलब्ध सुलभता सेवाएं. सोर्स प्रोजेक्ट.
  • [3.11/H-0-1] को तीसरे पक्ष के टीटीएस इंजन.
  • [3.11/H-SR-1] हमारी सलाह है कि डिवाइस पर उपलब्ध भाषाओं के साथ काम करने वाला TTS इंजन.
  • [3.13/H-SR-1] हमारी सलाह है कि क्विक सेटिंग यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट.

अगर Android हैंडहेल्ड डिवाइस लागू करने के तरीके के बारे में FEATURE_BLUETOOTH या FEATURE_WIFI सहायता, वे:

  • [3.16/H-1-1] साथी डिवाइस से जोड़ने की सुविधा काम करनी चाहिए सुविधा.

अगर नेविगेशन फ़ंक्शन को स्क्रीन पर, जेस्चर पर आधारित कार्रवाई के रूप में दिया गया है, तो:

  • [7.2.3/H] होम के लिए, हाथ के जेस्चर की पहचान करने वाला ज़ोन फ़ंक्शन की ऊंचाई 32 dp से ज़्यादा नहीं होनी चाहिए. स्क्रीन.

अगर हैंडहेल्ड डिवाइस लागू करने की प्रक्रिया में हाथ के जेस्चर के तौर पर नेविगेशन फ़ंक्शन दिया जाता है स्क्रीन के बाएं और दाएं किनारों पर कहीं से भी:

  • [7.2.3/H-0-1] नेविगेशन फ़ंक्शन का जेस्चर एरिया दोनों तरफ़ की चौड़ाई 40 dp से कम होनी चाहिए. जेस्चर क्षेत्र ऐसा होना चाहिए डिफ़ॉल्ट रूप से 24 dp चौड़ाई.

अगर हैंडहेल्ड डिवाइस, सुरक्षित लॉक स्क्रीन की सुविधा देते हैं और उन पर कर्नेल और यूज़रस्पेस के लिए उपलब्ध 2 जीबी मेमोरी से ज़्यादा या उसके बराबर, वे:

  • [3.9/H-1-2] मैनेज की जा रही प्रोफ़ाइल इस्तेमाल करने की सुविधा के बारे में बताना ज़रूरी है. इसके लिए, android.software.managed_users फ़ीचर फ़्लैग.

अगर Android हैंडहेल्ड डिवाइस लागू करने की प्रक्रिया, इसके ज़रिए कैमरा इस्तेमाल करने की सुविधा का एलान करती है android.hardware.camera.any वे:

  • [7.5.4/H-1-1] android.media.action.STILL_IMAGE_CAMERA का पालन करना ज़रूरी है और android.media.action.STILL_IMAGE_CAMERA_SECURE इंटेंट करें और SDK में बताए गए तरीके से कैमरे को स्टिल इमेज मोड में लॉन्च करें.
  • [7.5.4/H-1-2] android.media.action.VIDEO_CAMERA का पालन करना ज़रूरी है SDK में बताए गए तरीके से वीडियो मोड में कैमरा लॉन्च करने के लिए भी कहा जाता है.

अगर डिवाइस लागू करने का सेटिंग ऐप्लिकेशन, स्प्लिट करने की सुविधा, गतिविधि एम्बेड करने की सुविधा का इस्तेमाल करते हैं.

  • [3.2.3.1/ H-1-1] ऐसी गतिविधि होनी चाहिए जो बांटने की सुविधा चालू होने पर, Settings#ACTION_SETTINGS_googleblog_DEEP_LINK_ACTIVITY इंटेंट. गतिविधि को इनसे सुरक्षित किया जाना चाहिए: android.permission.LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK और यह ज़रूरी है इससे पार्स किए गए इंटेंट की गतिविधि शुरू करें सेटिंग#additional_SETTINGS_VERSIONDED_DEEP_LINK_INTENT_uri.

अगर लागू किए गए डिवाइस पर उपयोगकर्ताओं को किसी भी तरह के कॉल करने की सुविधा मिलती है, तो वे

2.2.4. परफ़ॉर्मेंस और पावर

  • [8.1/H-0-1] फ़्रेम रेंडर होने में लगने वाला समय लगातार. फ़्रेम को रेंडर होने में लगने वाले समय के अंतर या रेंडर होने में ज़्यादा समय लगने की ज़रूरत नहीं है एक सेकंड में अक्सर 5 फ़्रेम से कम होनी चाहिए और एक सेकंड में 1 फ़्रेम से कम होनी चाहिए.
  • [8.1/H-0-2] यूज़र इंटरफ़ेस के लिए इंतज़ार का समय. डिवाइस को लागू करने के लिए यह पक्का करना होगा कि उपयोगकर्ता के अनुभव को बेहतर बनाने के लिए, Android कंपैटबिलिटी टेस्ट सुइट की मदद से तय की गई 10 हज़ार सूची एंट्री की (सीटीएस) 36 सेकंड से कम.
  • [8.1/H-0-3] टास्क स्विच करने की सुविधा. टास्क कब शुरू होगा कई ऐप्लिकेशन लॉन्च कर दिए गए हैं. पहले से चल रहे ऐप्लिकेशन को फिर से लॉन्च करके लॉन्च होने के बाद, आवेदन करने में एक सेकंड से भी कम समय लगता है.

हैंडहेल्ड डिवाइस लागू करना:

  • [8.2/H-0-1] यह पक्का करना ज़रूरी है कि हर क्रम में कम से कम 5 एमबी/सेकंड की परफ़ॉर्मेंस लिखें.
  • [8.2/H-0-2] यह पक्का करना ज़रूरी है कि कम से कम 0.5 एमबी/सेकंड की परफ़ॉर्मेंस.
  • [8.2/H-0-3] यह पक्का करना ज़रूरी है कि सभी उपयोगकर्ता, एक ही क्रम में की परफ़ॉर्मेंस रिपोर्ट में कम से कम 15 एमबी/सेकंड की होनी चाहिए.
  • [8.2/H-0-4] यह पक्का करना ज़रूरी है कि कम से कम 3.5 एमबी/सेकंड की परफ़ॉर्मेंस.

अगर हैंडहेल्ड डिवाइस को लागू करने के लिए, डिवाइस की पावर बढ़ाने वाली सुविधाएं शामिल हैं, तो ऐसा मैनेजमेंट जो AOSP में शामिल है या शामिल की गई सुविधाओं का दायरा बढ़ाता है में शामिल हैं, तो वे:

  • [8.3/H-1-1] यह सुविधा चालू करने के लिए, लोगों के लिए ज़रूरी सुविधाएं उपलब्ध कराना ज़रूरी है और बैटरी सेवर सुविधा को बंद करें.
  • [8.3/H-1-2] प्रॉडक्ट दिखाने के लिए, लोगों के पास ज़रूरी अधिकार देना ज़रूरी है ऐसे सभी ऐप्लिकेशन जिन्हें ऐप्लिकेशन स्टैंडबाय और बैटरी सेव करने वाले मोड के इस्तेमाल से छूट मिली हुई है.

हैंडहेल्ड डिवाइस लागू करना:

  • [8.4/H-0-1] ज़रूरी है कि हर कॉम्पोनेंट के लिए पावर प्रोफ़ाइल, जो इस्तेमाल की मौजूदा वैल्यू के बारे में बताती है हर हार्डवेयर कॉम्पोनेंट के लिए और बैटरी के तेज़ी से खर्च होने की समस्या की वजह से कॉम्पोनेंट, जैसा कि Android ओपन सोर्स प्रोजेक्ट की साइट में बताया गया है.
  • [8.4/H-0-2] सभी पावर की जानकारी देना ज़रूरी है मिलीमीटर घंटे (mAh) में खपत की वैल्यू.
  • [8.4/H-0-3] सीपीयू के पावर की जानकारी देना ज़रूरी है इस्तेमाल, हर प्रोसेस के यूआईडी के मुताबिक किया जाता है. Android ओपन सोर्स प्रोजेक्ट ने uid_cputime कर्नेल मॉड्यूल के लागू होने की वजह से ज़रूरी शर्तें.
  • [8.4/H-0-4] बैटरी का इस्तेमाल करना ज़रूरी है adb shell dumpsys batterystats पर उपलब्ध है शेल कमांड, ऐप्लिकेशन डेवलपर को भेजी जाएगी.
  • [8.4/H] एट्रिब्यूट को अगर हार्डवेयर कॉम्पोनेंट के लिए पावर सप्लाई का इस्तेमाल एट्रिब्यूट नहीं किया जा सकता, तो खुद हार्डवेयर कॉम्पोनेंट को ऐप्लिकेशन में बदलें.

अगर हैंडहेल्ड डिवाइस में स्क्रीन या वीडियो आउटपुट शामिल है, तो वे:

  • [8.4/H-1-1] ज़रूरी है कि android.intent.action.POWER_USAGE_SUMMARY इंटेंट पर क्लिक करें और एक सेटिंग मेन्यू दिखाएं, जो पावर के इस इस्तेमाल को दिखाता है.

हैंडहेल्ड डिवाइस लागू करना:

  • [8.5/H-0-1] ज़रूरी है उपयोगकर्ता के पास, चालू फ़ोरग्राउंड सेवाओं वाले सभी ऐप्लिकेशन देखने की सुविधा होती है या उपयोगकर्ता की ओर से शुरू की गई जॉब, जिनमें इनमें से हर एक सेवा की अवधि शामिल है क्योंकि यह SDK टूल के दस्तावेज़ में दी गई जानकारी के हिसाब से शुरू हुआ था.

  • [8.5/H-0-2]लोगों को यह सुविधा देनी होगी कि वे फ़ोरग्राउंड सेवा या उपयोगकर्ता के शुरू किए गए जॉब को चलाने वाले ऐप्लिकेशन को रोकना.

2.2.5. सुरक्षा मॉडल

हैंडहेल्ड डिवाइस लागू करना:

  • [9/H-0-1] android.hardware.security.model.compatible का एलान करना ज़रूरी है सुविधा.
  • [9.1/H-0-1] तीसरे पक्ष के ऐप्लिकेशन को android.permission.PACKAGE_USAGE_STATS अनुमति के ज़रिए इस्तेमाल के आंकड़े और उपयोगकर्ता के लिए, एक आसान तरीका उपलब्ध कराएगा. इस तरह के ऐप्लिकेशन का ऐक्सेस वापस लेने के लिए android.settings.ACTION_USAGE_ACCESS_SETTINGS इंटेंट.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

डिवाइस लागू करने की सुविधा के लिए, इनके लिए समर्थन का एलान करना ज़रूरी है android.software.credentials और:

  • [9/H-0-2] android.settings.CREDENTIAL_PROVIDER के इंटेंट का पालन करना ज़रूरी है क्रेडेंशियल मैनेजर के लिए पसंदीदा कंपनी को चुनने की अनुमति देने के लिए. यह कंपनी ऑटोमैटिक भरने की सुविधा के लिए चालू कर दी जाएगी और नए क्रेडेंशियल सेव करने के लिए भी डिफ़ॉल्ट जगह होगी क्रेडेंशियल मैनेजर के ज़रिए डाला गया.

  • [9/H-0-3] एक साथ कम से कम दो क्रेडेंशियल देने वाली कंपनियों के साथ काम करना ज़रूरी है और Settings ऐप्लिकेशन में, उपयोगकर्ता के लिए अनुभव की सुविधा उपलब्ध कराएं का इस्तेमाल करें.

नई ज़रूरी शर्तें खत्म करना

अगर डिवाइस लागू करने की प्रक्रिया में, android.hardware.telephony के साथ काम करने का एलान किया जाता है, वे:

  • [9.5/H-1-1] UserManager.isHeadlessSystemUserMode को सेट नहीं करना चाहिए true तक.

हैंडहेल्ड डिवाइस लागू करना:

  • [9.11/H-0-2] कीस्टोर को लागू करने के तरीके का बैक अप लेना ज़रूरी है एक आइसोलेटेड एक्ज़ीक्यूशन एनवायरमेंट के साथ.
  • [9.11/H-0-3] आरएसए, एईएस, ईसीडीएसए और एचएमएसी क्रिप्टोग्राफ़िक एल्गोरिदम और MD5, SHA-1, और SHA-2 फ़ैमिली हैश फ़ंक्शन, Android कीस्टोर सिस्टम के साथ काम करने वाले एल्गोरिदम ऐसे क्षेत्र में मौजूद होते हैं, जिसे इस पर चलने वाले कोड से सुरक्षित रूप से अलग कर दिया जाता है कर्नेल और उसके ऊपर का हिस्सा. सिक्योर आइसोलेशन से सभी संभावित तरीकों को ब्लॉक करना चाहिए जिससे कर्नेल या यूज़रस्पेस कोड, आइसोलेटेड एनवायरमेंट, जिसमें डीएमए भी शामिल हैं. अपस्ट्रीम Android ओपन सोर्स प्रोजेक्ट (AOSP) इस ज़रूरी शर्त को पूरा करने के लिए Trusty लागू करने की प्रोसेस का इस्तेमाल करता है. हालांकि, यह अन्य ARM TrustZone पर आधारित समाधान या तीसरे पक्ष की सुरक्षित समीक्षा एक उचित हायपरवाइज़र-आधारित आइसोलेशन लागू करना वैकल्पिक है के विकल्प.
  • [9.11/H-0-4] लॉक स्क्रीन पर काम करना ज़रूरी है पुष्टि करने की प्रक्रिया को, एक ही जगह पर रन करने के दौरान सफलतापूर्वक, पुष्टि करने वाली कुंजियों का इस्तेमाल करने की अनुमति दें. लॉक स् क्रीन क्रेडेंशियल को इस तरह से सेव किया जाना चाहिए कि सिर्फ़ अलग-अलग तरीके से एक्ज़ीक्यूट किया जा सके लॉक स्क्रीन ऑथेंटिकेशन करने के लिए उपलब्ध वातावरण. अपस्ट्रीम Android ओपन सोर्स प्रोजेक्ट गेटकीपर हार्डवेयर ऐब्स्ट्रैक्शन लेयर (एचएएल) और Trusty शामिल है, जिसका इस्तेमाल इस ज़रूरत को पूरा करने के लिए किया जा सकता है.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [9.11/H-0-5] कुंजी को प्रमाणित करने की सुविधा होनी चाहिए, जहां प्रमाणित करने वाली साइनिंग कुंजी को सुरक्षित हार्डवेयर से सुरक्षित किया गया है और साइनिंग कुंजी को सुरक्षित हार्डवेयर में किया जाता है. प्रमाणित करने के लिए हस्ताक्षर करने वाली कुंजी के बीच शेयर की जानी चाहिए सुरक्षा कुंजियों को रोकने के लिए, डिवाइसों की संख्या काफ़ी ज़्यादा होनी चाहिए रोका गया इसका इस्तेमाल हमेशा के लिए किया जा रहा है डिवाइस आइडेंटिफ़ायर. इस शर्त को पूरा करने का एक तरीका यह है कि अगर किसी SKU की कम से कम 1,00,000 यूनिट को बनाया गया. अगर किसी SKU की 1,00,000 से ज़्यादा इकाइयां बनाई जाती हैं, तो हर 1,00,000 यूनिट के लिए कुंजी का इस्तेमाल किया जा सकता है.

नई ज़रूरी शर्तें खत्म करना

ध्यान दें कि अगर किसी डिवाइस पर लागू करने की सुविधा को पहले ही किसी Android डिवाइस पर लॉन्च किया जा चुका है वर्शन न हो, तो ऐसे डिवाइस के लिए कीस्टोर ज़रूरी शर्तें पूरी नहीं करता एक्ज़ीक्यूशन के अलग-अलग एनवायरमेंट का इस्तेमाल किया जाता है और मुख्य पुष्टि के साथ काम किया जाता है, ऐसा तब तक किया जा सकता है, जब तक कि यह android.hardware.fingerprint सुविधा के बारे में न बताता हो. इस सुविधा के लिए ज़रूरी है कि कीस्टोर एक आइसोलेटेड एक्ज़ीक्यूशन एनवायरमेंट का इस्तेमाल करके सुरक्षित किया गया है.

जब हैंडहेल्ड डिवाइस, सुरक्षित लॉक स्क्रीन पर काम करते हैं, तो ये काम किए जाते हैं:

  • [9.11/H-1-1] उपयोगकर्ता को सबसे छोटा विकल्प चुनने की अनुमति देनी होगी स्लीप टाइम आउट. यह अनलॉक किए गए मोड से लॉक किए गए समय में ट्रांज़िशन का समय होता है कम से कम 15 सेकंड तक.
  • [9.11/H-1-2] लोगों के लिए, कॉन्टेंट छिपाने की सुविधा उपलब्ध करानी ज़रूरी है सूचना भेजी जाएगी और पुष्टि करने के सभी तरीके बंद कर दिए जाएंगे. इसमें पुष्टि करने के मुख्य तरीके के बारे में इसमें बताया गया है 9.11.1 सुरक्षित लॉक स्क्रीन. एओएसपी ने ज़रूरत को लॉकडाउन मोड में सेट करें.

अगर लागू किए जाने वाले डिवाइस में एक सुरक्षित लॉक स्क्रीन है और उसमें एक या एक से ज़्यादा ऐसे भरोसेमंद एजेंट शामिल हैं जो TrustAgentService System API को लागू करते हैं, तो वे:

  • [9.11.1/H-1-1] हर 72 घंटे में एक बार से ज़्यादा, उपयोगकर्ता को पुष्टि करने के लिए सुझाए गए मुख्य तरीकों में से किसी एक का इस्तेमाल करने के लिए कहना होगा. जैसे: पिन, पैटर्न, पासवर्ड.

अगर हैंडहेल्ड डिवाइस में कई उपयोगकर्ता और डिवाइस लागू होते हैं android.hardware.telephony फ़ीचर फ़्लैग का एलान नहीं करते, वे:

  • [9.5/H-2-1] प्रतिबंधित प्रोफ़ाइलों का इस्तेमाल करना ज़रूरी है, एक ऐसी सुविधा है जिससे डिवाइस के मालिक, अतिरिक्त उपयोगकर्ताओं और उनके क्षमता. प्रतिबंधित प्रोफ़ाइल के साथ, डिवाइस के मालिक ये काम कर सकते हैं अतिरिक्त उपयोगकर्ताओं के काम करने के लिए, अलग-अलग एनवायरमेंट तुरंत सेट अप कर लें, को मैनेज करने की क्षमता के साथ-साथ, ये सुविधाएं इन एनवायरमेंट में उपलब्ध हैं.

अगर हैंडहेल्ड डिवाइस में कई उपयोगकर्ता और डिवाइस लागू होते हैं android.hardware.telephony फ़ीचर फ़्लैग का एलान करेगा, वे:

  • [9.5/H-3-1] प्रतिबंधित क्षेत्र के लिए सुविधा नहीं दी जानी चाहिए प्रोफ़ाइलें बनाएं. हालांकि, कंट्रोल के लिए एओएसपी को लागू करना ज़रूरी है का इस्तेमाल दूसरे उपयोगकर्ताओं को वॉइस कॉल और एसएमएस ऐक्सेस करने से रोकने के लिए किया जा सकता है.

अगर हैंडहेल्ड डिवाइस लागू करने की प्रोसेस UserManager.isHeadlessSystemUserMode सेट की जाती है, तो true को वे

  • [9.5/H-4-1] में eUICC के लिए सहायता शामिल नहीं होनी चाहिए, कॉल करने की क्षमता वाले ई-सिम के लिए भी नहीं.
  • [9.5/H-4-2] इसके लिए सहायता का एलान नहीं करना चाहिए android.hardware.telephony.

Android, सिस्टम एपीआई के ज़रिए Voiceइंटरैक्शनService के साथ मिलकर, माइक ऐक्सेस संकेत के बिना हमेशा चालू रहने वाले हॉटवर्ड की पहचान और क्वेरी की पहचान करने की सुविधा, बिना माइक या कैमरे के. ऐक्सेस इंंडिकेटर.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

वे सेटिंग जिन पर पाबंदी लगाई गई है

पाबंदी वाली सेटिंग की मदद से, उपयोगकर्ता को दिखने वाली चेतावनियां दिखती हैं और अनुमति देने के लिए उपयोगकर्ता से पुष्टि करने का अनुरोध करता है है जो:

  • किसी ऐप्लिकेशन से डाउनलोड होने के बाद इंस्टॉल होना (उदाहरण के लिए, मैसेजिंग ऐप्लिकेशन या ब्राउज़र) "ऐप स्टोर" PackageManager ने ऐप्लिकेशन की पहचान इस तौर पर की है PACKAGE_DOWNLOADED_FILE.
  • किसी लोकल फ़ाइल से इंस्टॉल किया जा रहा है (उदाहरण के लिए, ऐप्लिकेशन अलग से लोड किया गया था) PackageManager ने पहचान की है: PACKAGE_SOURCE_LOCAL_FILE.

किसी भी लागू अनुमति के लिए और इनसे जुड़े आइडेंटिफ़ायर नीचे दिए गए हैं:

  • अलार्म और रिमाइंडर: AppOpsManager.OPSTR_SCHEDULE_EXACT_ALARM
  • सभी फ़ाइलों का ऐक्सेस: AppOpsManager.OPSTR_MANAGE_EXTERNAL_STORAGE
  • दूसरे ऐप्लिकेशन के ऊपर दिखाएं: AppOpsManager.OPSTR_SYSTEM_ALERT_WINDOW
  • अज्ञात ऐप्लिकेशन इंस्टॉल करें: AppOpsManager.OPSTR_REQUEST_INSTALL_PACKAGES
  • मीडिया मैनेज करें: AppOpsManager.OPSTR_MANAGE_MEDIA
  • सिस् टम सेटिंग को बदलें: AppOpsManager.OPSTR_WRITE_SETTINGS
  • पिक्चर में पिक्चर: AppOpsManager.OPSTR_PICTURE_IN_PICTURE
  • स्क्रीन चालू करें: AppOpsManager.OPSTR_TURN_SCREEN_ON
  • फ़ुल-स्क्रीन पर सूचनाएं: AppOpsManager.OPSTR_USE_FULL_SCREEN_INTENT
  • वाई-फ़ाई कंट्रोल: AppOpsManager.OPSTR_CHANGE_WIFI_STATE
  • सुलभता: AppOpsManager.OPSTR_BIND_ACCESSIBILITY_SERVICE
  • सूचना लिसनर: AppOpsManager.OPSTR_ACCESS_NOTIFICATIONS
  • इस्तेमाल से जुड़े डेटा का ऐक्सेस: AppOpsManager.OPSTR_GET_USAGE_STATS
  • डिवाइस एडमिन: Manifest.permission.BIND_DEVICE_ADMIN
  • परेशान न करें: Manifest.permission.MANAGE_NOTIFICATIONS

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

डिवाइस पर यह सुविधा लागू करना:

  • [9.8/H-0-1] निम्न:

  • [9.8/H-0-2] पाबंदी वाली सेटिंग को डिफ़ॉल्ट के तौर पर चालू करना ज़रूरी है. साथ ही, इस बात का सुझाव दिया जाता है कि आपके पास उपयोगकर्ता के लिए वह कीमत न हो जिससे उपयोगकर्ता को अनुमति मिलती है सभी ऐप्लिकेशन के लिए प्रतिबंधित सेटिंग बंद करने के लिए.

  • [9.8/H-0-3] यह पक्का करना ज़रूरी है कि हर एक के लिए, उपयोगकर्ता की पुष्टि की गई हो किसी भी लागू अनुमति को दिए जाने से पहले कवर किया गया ऐप्लिकेशन.

  • [9.8/H-0-4] उपयोगकर्ता की पुष्टि करने के बाद ही, पाबंदी वाली सेटिंग चालू की जा सकती हैं पाने के लिए, उन्हें कवर किए गए ऐप्लिकेशन के AppInfo पेज पर जाना होगा. बेहतर बनाए गए पुष्टि करने वाले मैनेजर एपीआई का इस्तेमाल करके.

  • [9.8/H-0-5] के साथ इंटिग्रेट करने और कॉल करने का सुझाव दिया जाता है सभी खास अनुमतियों के लिए बेहतर पुष्टि करने वाला मैनेजर, का इस्तेमाल किया जा सकता है.

    • अलार्म और रिमाइंडर: AppOpsManager.OPSTR_SCHEDULE_EXACT_ALARM
    • सभी फ़ाइलों का ऐक्सेस: AppOpsManager.OPSTR_MANAGE_EXTERNAL_STORAGE
    • दूसरे ऐप्लिकेशन के ऊपर दिखाएं: AppOpsManager.OPSTR_SYSTEM_ALERT_WINDOW
    • अज्ञात ऐप्लिकेशन इंस्टॉल करें: AppOpsManager.OPSTR_REQUEST_INSTALL_PACKAGES
    • मीडिया मैनेज करें: AppOpsManager.OPSTR_MANAGE_MEDIA
    • सिस् टम सेटिंग को बदलें: AppOpsManager.OPSTR_WRITE_SETTINGS
    • पिक्चर में पिक्चर: AppOpsManager.OPSTR_PICTURE_IN_PICTURE
    • स्क्रीन चालू करें: AppOpsManager.OPSTR_TURN_SCREEN_ON
    • फ़ुल-स्क्रीन पर सूचनाएं: AppOpsManager.OPSTR_USE_FULL_SCREEN_INTENT
    • वाई-फ़ाई कंट्रोल: AppOpsManager.OPSTR_CHANGE_WIFI_STATE
    • सुलभता: AppOpsManager.OPSTR_BIND_ACCESSIBILITY_SERVICE
    • सूचना लिसनर: AppOpsManager.OPSTR_ACCESS_NOTIFICATIONS
    • इस्तेमाल से जुड़े डेटा का ऐक्सेस: AppOpsManager.OPSTR_GET_USAGE_STATS
    • डिवाइस एडमिन: Manifest.permission.BIND_DEVICE_ADMIN
    • परेशान न करें: Manifest.permission.MANAGE_NOTIFICATIONS

नई ज़रूरी शर्तें खत्म करना

अगर हैंडहेल्ड डिवाइस लागू करने की प्रक्रिया, System API की सुविधा के साथ काम करती है HotwordDetectionService या बिना हॉटवर्ड का पता लगाने के लिए कोई दूसरा तरीका माइक ऐक्सेस इंडिकेटर से:

  • [9.8/H-1-1] यह पक्का करना ज़रूरी है कि हॉटवर्ड का पता लगाने वाली सेवा सिर्फ़ डेटा को सिस्टम, ContentCaptureService, या उपयोगकर्ता के डिवाइस पर बोली पहचानने की सेवा को लॉन्च किया, जिसे SpeechRecognizer#createOnDeviceSpeechRecognizer().
  • [9.8/H-1-2] यह पक्का करना ज़रूरी है कि हॉटवर्ड का पता लगाने वाली सेवा सिर्फ़ माइक वाला ऑडियो डेटा या उससे सिस्टम सर्वर तक मिला डेटा HotwordDetectionService API या ContentCaptureService से ContentCaptureManager एपीआई.
  • [9.8/H-1-3] ऐसा हो सकता है कि कोई हार्डवेयर, हॉटवर्ड का पता लगाने वाली सेवा को ट्रिगर किए जाने का अनुरोध करता हो.
  • [9.8/H-1-4] हॉटवर्ड का पता लगाने वाली सेवा को ऐक्सेस करने का अनुरोध करता है.
  • [9.8/H-1-5] वॉइस इंटरैक्शन सेवा या इससे मिलती-जुलती इकाई.
  • [9.8/H-1-6] 100 बाइट से ज़्यादा डेटा की अनुमति नहीं होनी चाहिए (ऑडियो स्ट्रीम को छोड़कर) को हॉटवर्ड का पता लगाने वाली सेवा से बाहर भेजना होगा. हॉटवर्ड से जुड़े नतीजे.
  • [9.8/H-1-7] डेटा के पांच बिट से ज़्यादा भेजने की अनुमति नहीं होनी चाहिए शामिल की गई है.
  • [9.8/H-1-8] सिर्फ़ हॉटवर्ड से डेटा भेजने की अनुमति होनी चाहिए पहचान सेवा शामिल है.
  • [9.8/H-1-9] उपयोगकर्ता द्वारा इंस्टॉल किए जा सकने वाले ऐप्लिकेशन को हॉटवर्ड का पता लगाने वाली सेवा.
  • [9.8/H-1-10] यूज़र इंटरफ़ेस (यूआई) में, माइक के इस्तेमाल का डेटा नहीं दिखना चाहिए को खोज रहे हैं.
  • [9.8/H-1-11] हर ट्रांसमिशन में शामिल बाइट की संख्या लॉग करना ज़रूरी है को अपडेट करने की सुविधा देता है, ताकि सुरक्षा के लिए जांच की जा सके रिसर्च करने वाले हैं.
  • [9.8/H-1-12] ऐसे डीबग मोड का इस्तेमाल करना ज़रूरी है जो हर बार रॉ कॉन्टेंट लॉग करता है के लिए जांच करने की अनुमति देने के लिए हॉटवर्ड का पता लगाने वाली सेवा से ट्रांसमिशन पर रिसर्च करने वाले लोगों को शामिल किया.
  • [9.8/H-1-14] सेक्शन में बताए गए तरीके के मुताबिक, माइक्रोफ़ोन इंंडिकेटर दिखाना ज़रूरी है 9.8.2, जब सफल हॉटवर्ड नतीजे को बोलकर भेजा जाता है इंटरैक्शन सेवा या इससे मिलती-जुलती इकाई की समीक्षा कर रहे हैं.

  • [9.8/H-1-15] यह पक्का करना ज़रूरी है कि ऑडियो स्ट्रीम, हॉटवर्ड पर दी गई हों परिणामों को हॉटवर्ड पहचान सेवा से वॉइस इंटरैक्शन सेवा.

  • [9.8/H-SR-1] हमारी सलाह है कि आप ऐप्लिकेशन को हॉटवर्ड का पता लगाने वाली सेवा के रूप में इंस्टॉल करता है.

  • [9.8/H-SR-2] हमारी सलाह है कि हॉटवर्ड का पता लगाने वाली सेवा से बाहर के अव्यवस्थित डेटा को हटा दिया गया है.

  • [9.8/H-SR-3] हमारी सलाह है कि आप हॉटवर्ड का पता लगाने वाली सेवा हर घंटे या हर 30 में कम से कम एक बार हार्डवेयर-ट्रिगर इवेंट, जो भी पहले हो.

अगर लागू किए जाने वाले डिवाइस में कोई ऐसा ऐप्लिकेशन शामिल है जो System API का इस्तेमाल करता है HotwordDetectionService या बिना हॉटवर्ड का पता लगाने के लिए इससे मिलते-जुलते तरीके माइक के इस्तेमाल का संकेत, ऐप्लिकेशन:

  • [9.8/H-2-1] उपयोगकर्ता को हर हॉटवर्ड वाक्यांश के लिए साफ़ तौर पर सूचना देनी होगी समर्थित हैं.
  • [9.8/H-2-2] रॉ ऑडियो डेटा या इससे मिले डेटा को सुरक्षित नहीं रखना चाहिए, सुविधा को चालू किया जा सकता है.
  • [9.8/H-2-3] हॉटवर्ड डिटेक्शन सेवा, ऑडियो से ट्रांसमिट नहीं किया जाना चाहिए कोई ऐसा डेटा जिसे ऑडियो को फिर से बनाने में इस्तेमाल किया जा सके (पूरा या कुछ हिस्सा), या ऐसा ऑडियो कॉन्टेंट जो खुद हॉटवर्ड से नहीं जुड़ा है. इनके अलावा, ContentCaptureService या डिवाइस पर बोली पहचान करने वाली सेवा.

अगर हैंडहेल्ड डिवाइस लागू करने की प्रक्रिया, System API की सुविधा के साथ काम करती है VisualQueryDetectionService या क्वेरी का पता लगाने का कोई दूसरा तरीका माइक और/या कैमरा ऐक्सेस इंंडिकेशन के बिना:

  • [9.8/H-3-1] यह पक्का करना ज़रूरी है कि क्वेरी डिटेक्शन सेवा सिर्फ़ ट्रांसमिट कर सके सिस्टम या ContentCaptureService या डिवाइस पर मौजूद बोली का डेटा पहचान करने वाली सेवा (इसे बनाने वाली कंपनी SpeechRecognizer#createOnDeviceSpeechRecognizer()).
  • [9.8/H-3-2] ऑडियो या वीडियो की जानकारी भेजने की अनुमति नहीं होनी चाहिए ContentCaptureService को छोड़कर, VisualQueryDetectionService में से या उपयोगकर्ता के डिवाइस पर बोली पहचानने वाली सेवा का इस्तेमाल करें.
  • [9.8/H-3-3] डिवाइस को उपयोगकर्ता का पता चलने पर, सिस्टम यूज़र इंटरफ़ेस (यूआई) में उपयोगकर्ता सूचना दिखानी ज़रूरी है का इस्तेमाल डिजिटल असिस्टेंट ऐप्लिकेशन के साथ किया जा सकता है.उदाहरण के लिए, कैमरे से उपयोगकर्ता की मौजूदगी.
  • [9.8/H-3-4] माइक्रोफ़ोन इंंडिकेटर दिखाना ज़रूरी है. साथ ही, उपयोगकर्ता की क्वेरी का पता चलने के तुरंत बाद, यूज़र इंटरफ़ेस (यूआई) में उसकी क्वेरी दिखती है.
  • [9.8/H-3-5] उपयोगकर्ता द्वारा इंस्टॉल किए जा सकने वाले ऐप्लिकेशन को विज़ुअल क्वेरी का पता लगाने वाली सेवा.

अगर हैंडहेल्ड डिवाइस पर लागू होने वाले android.hardware.microphone का एलान किया जाता है, तो:

  • [9.8.2/H-4-1] माइक्रोफ़ोन इंंडिकेटर दिखाना ज़रूरी है, जब कोई ऐप्लिकेशन, माइक्रोफ़ोन के ऑडियो डेटा को ऐक्सेस कर रहा है, लेकिन माइक्रोफ़ोन को सिर्फ़ HotwordDetectionService से ऐक्सेस किया जाता है, SOURCE_HOTWORD,ContentCaptureService या किसी भूमिका वाले ऐप्लिकेशन सेक्शन 9.1 में सीडीडी आइडेंटिफ़ायर [C-4-X] के साथ अपडेट किया गया है.
  • [9.8.2/H-4-2] नए और ऐक्टिव कीवर्ड की सूची ज़रूर दिखानी होगी माइक्रोफ़ोन का इस्तेमाल करने वाले ऐप्लिकेशन, जो यहां से लौटाए गए हैं PermissionManager.getIndicatorAppOpUsageData(), किसी भी एट्रिब्यूशन के साथ मैसेज भी दिखेंगे.
  • [9.8.2/H-4-3] माइक्रोफ़ोन के लिए, इंडिकेटर नहीं छिपाया जाना चाहिए ऐसे सिस्टम ऐप्लिकेशन जिनमें यूज़र इंटरफ़ेस या डायरेक्ट यूज़र इंटरैक्शन दिखता हो.
  • [9.8.2/H-4-4] नए और ऐक्टिव कीवर्ड की सूची ज़रूर दिखानी चाहिए माइक्रोफ़ोन का इस्तेमाल करने वाले ऐप्लिकेशन PermissionManager.getIndicatorAppOpUsageData() से लौटाए गए हैं, एट्रिब्यूशन मैसेज भी दिखेंगे.

अगर हैंडहेल्ड डिवाइस पर लागू होने वाले android.hardware.camera.any का एलान किया जाता है, तो:

  • [9.8.2/H-5-1] कैमरा इंंडिकेटर दिखाना ज़रूरी है, जब ऐप लाइव कैमरे का डेटा ऐक्सेस कर रहा है, लेकिन तब नहीं जब कैमरा सिर्फ़ बताई गई भूमिकाओं को होल्ड करने वाले ऐप्लिकेशन से ऐक्सेस किया जाता है सीडीडी आइडेंटिफ़ायर [C-4-X] वाला सेक्शन 9.1.
  • [9.8.2/H-5-2] आपको हाल ही में इस्तेमाल किए गए और हाल ही में इस्तेमाल किए गए उन ऐप्लिकेशन को दिखाना होगा जिनमें इसका इस्तेमाल किया गया है कैमरा PermissionManager.getIndicatorAppOpUsageData() से लौटाया गया है, एट्रिब्यूशन मैसेज भी दिखेंगे.
  • [9.8.2/H-5-3] इस इंडिकेटर के लिए, कैमरा इंडिकेटर को नहीं छिपाया जाना चाहिए ऐसे सिस्टम ऐप्लिकेशन जिनमें यूज़र इंटरफ़ेस या डायरेक्ट यूज़र इंटरैक्शन दिखता हो.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

वेरिफ़ाइड बूट की सुविधा, आपके डिवाइस के सॉफ़्टवेयर को बनाए रखने का काम करती है. अगर लागू किए गए डिवाइस पर यह सुविधा काम करती है, तो वे:

  • [9.10/H-1-1] सभी रीड-ओनली पार्टीशन की पुष्टि करना ज़रूरी है Android के बूट सीक्वेंस और VBMeta डाइजेस्ट के दौरान माउंट किया जाता है इसकी गणना में इन सभी पुष्टि किए गए विभाजनों को शामिल करना चाहिए.

नई ज़रूरी शर्तें खत्म करना

2.2.6. डेवलपर टूल और विकल्पों के साथ काम करने की सुविधा

हैंडहेल्ड डिवाइस कार्यान्वयन (* टैबलेट के लिए लागू नहीं):

  • [6.1/H-0-1]* शेल कमांड काम करना चाहिए cmd testharness.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

हैंडहेल्ड डिवाइस लागू करना (* टैबलेट के लिए लागू नहीं):

  • परफ़ेटो
    • [6.1/H-0-2]* /system/bin/perfetto दिखाना ज़रूरी है उस शेल उपयोगकर्ता की बाइनरी है जिसका cmdline अनुपालन करता है परफ़ेटो दस्तावेज़.
    • [6.1/H-0-3]* परफ़ेटो बाइनरी को इस रूप में स्वीकार करना होगा: एक ऐसा प्रोटोबफ़ कॉन्फ़िगरेशन डालें, जो परफ़ेटो दस्तावेज़.
    • [6.1/H-0-4]* परफ़ेटो बाइनरी को इस रूप में लिखना ज़रूरी है में तय स्कीमा का पालन करने वाला एक प्रोटोबफ़ ट्रेस आउटपुट करता है परफ़ेटो दस्तावेज़.
    • [6.1/H-0-5]* परफ़ेटो का इस्तेमाल करके, यह दस्तावेज़ देना ज़रूरी है बाइनरी, कम से कम वे डेटा सोर्स जिन्हें परफ़ेटो दस्तावेज़.
    • [6.1/H-0-6]* जिस परफ़ेटो की पहचान की गई है उसमें डीमन होना ज़रूरी है डिफ़ॉल्ट रूप से सक्षम होता है (सिस्टम प्रॉपर्टी persist.traced.enable).

नई ज़रूरी शर्तें खत्म करना

2.2.7. हैंडहेल्ड मीडिया परफ़ॉर्मेंस क्लास

की परिभाषा जानने के लिए सेक्शन 7.11 देखें मीडिया परफ़ॉर्मेंस क्लास के बारे में ज़्यादा जानें.

2.2.7.1. मीडिया

अगर हैंडहेल्ड डिवाइस लागू करने पर, android.os.Build.VERSION_CODES.U मिलता है android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS के लिए, वे:

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

अगर हैंडहेल्ड डिवाइस लागू करने की प्रक्रिया वापस आती है android.os.Build.VERSION_CODES.V android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS के लिए, वे:

नई ज़रूरी शर्तें खत्म करना

  • [5.1/H-1-1] हार्डवेयर वीडियो डिकोडर की ज़्यादा से ज़्यादा संख्या का विज्ञापन देना ज़रूरी है ऐसे सत्र जो CodecCapabilities.getMaxSupportedInstances() और VideoCapabilities.getSupportedPerformancePoints() तरीके.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [5.1/H-1-2] 8-बिट (SDR) हार्डवेयर वीडियो डिकोडर के 6 इंस्टेंस के साथ काम करना ज़रूरी है सेशन (एवीसी, एचईवीसी, VP9, AV1 या इसके बाद के वर्शन) किसी भी कोडेक के कॉम्बिनेशन में हो सकते हैं 1080p रिज़ॉल्यूशन पर तीन सेशन@30 FPS (फ़्रेम प्रति सेकंड) पर तीन सेशन और 4K रिज़ॉल्यूशन पर तीन सेशन के साथ रिज़ॉल्यूशन@30fps, जब तक AV1 न हो. सभी सेशन के लिए, एक से ज़्यादा फ़्रेम नहीं होना चाहिए प्रति सेकंड कम हो गया. AV1 कोडेक का इस्तेमाल सिर्फ़ 1080 पिक्सल रिज़ॉल्यूशन के लिए किया जा सकता है. हालांकि, 1080p30fps पर 6 इंस्टेंस के लिए भी यह ज़रूरी है.

नई ज़रूरी शर्तें खत्म करना

  • [5.1/H-1-3] हार्डवेयर वीडियो एन्कोडर की ज़्यादा से ज़्यादा संख्या का विज्ञापन देना ज़रूरी है ऐसे सत्र जो CodecCapabilities.getMaxSupportedInstances() और VideoCapabilities.getSupportedPerformancePoints() तरीके.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [5.1/H-1-4] 8-बिट (SDR) हार्डवेयर वीडियो एन्कोडर के 6 इंस्टेंस के साथ काम करना ज़रूरी है सेशन (एवीसी, एचईवीसी, VP9, AV1 या इसके बाद के वर्शन) किसी भी कोडेक के कॉम्बिनेशन में हो सकते हैं 1080p रिज़ॉल्यूशन@30 FPS पर चार सेशन और 4k रिज़ॉल्यूशन पर दो सेशन के साथ रिज़ॉल्यूशन@30fps, जब तक AV1 न हो. सभी सेशन के लिए, एक से ज़्यादा फ़्रेम नहीं होना चाहिए प्रति सेकंड कम हो गया. AV1 कोडेक का इस्तेमाल सिर्फ़ 1080 पिक्सल रिज़ॉल्यूशन के लिए किया जा सकता है. 1080p30fps पर छह इंस्टेंस काम करना ज़रूरी है.

नई ज़रूरी शर्तें खत्म करना

  • [5.1/H-1-5] हार्डवेयर वीडियो एन्कोडर की अधिकतम संख्या का विज्ञापन करना ज़रूरी है और डिकोडर सत्र जो CodecCapabilities.getMaxSupportedInstances() और VideoCapabilities.getSupportedPerformancePoints() तरीके.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [5.1/H-1-6] 8-बिट (SDR) हार्डवेयर वीडियो डिकोडर के 6 इंस्टेंस के साथ काम करना ज़रूरी है और हार्डवेयर वीडियो एन्कोडर सेशन (एवीसी, एचईवीसी, VP9, AV1 या इसके बाद के वर्शन) 4K@30fps पर तीन सेशन के साथ एक साथ चल रहा कोडेक का कॉम्बिनेशन रिज़ॉल्यूशन (AV1 को छोड़कर) में से ज़्यादा से ज़्यादा दो एन्कोडर सेशन और 3 हो सकते हैं 1080p रिज़ॉल्यूशन पर सेशन. सभी सेशन के लिए, एक से ज़्यादा फ़्रेम नहीं होना चाहिए प्रति सेकंड कम हो गया. AV1 कोडेक का इस्तेमाल सिर्फ़ 1080 पिक्सल रिज़ॉल्यूशन के लिए किया जा सकता है. 1080p30fps पर छह इंस्टेंस काम करना ज़रूरी है.

नई ज़रूरी शर्तें खत्म करना

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [5.1/H-1-19] 10-बिट (एचडीआर) हार्डवेयर वीडियो डिकोडर के 3 इंस्टेंस के साथ काम करना ज़रूरी है और हार्डवेयर वीडियो एन्कोडर सेशन (एवीसी, एचईवीसी, VP9, AV1 या इसके बाद के वर्शन) 4K@30fps रिज़ॉल्यूशन पर एक साथ चल रहे कोडेक का कॉम्बिनेशन (AV1 को छोड़कर) जिसमें से 1 ज़्यादा से ज़्यादा एन्कोडर सेशन होता है. इसे कॉन्फ़िगर किया जा सकता है GL सतह के माध्यम से RGBA_1010102 इनपुट प्रारूप. के लिए सभी सेशन में, हर सेशन में एक फ़्रेम से ज़्यादा नहीं हटाया जाना चाहिए दूसरा. एन्कोडर की मदद से एचडीआर मेटाडेटा जनरेट करना की जीएल सरफ़ेस से एन्कोडिंग की ज़रूरत नहीं है. AV1 कोडेक सेशन सिर्फ़ 1080p रिज़ॉल्यूशन पर काम करने के लिए ज़रूरी हो, भले ही इस तरह की कॉल करने की ज़रूरत हो 4K में वीडियो देखने की सुविधा मिलती है.

नई ज़रूरी शर्तें खत्म करना

  • [5.1/H-1-7] सभी हार्डवेयर वीडियो एन्कोडर के लिए, 1080 पिक्सल या इससे छोटे वीडियो एन्कोडिंग सेशन लोड नहीं किया जा सकता. यहां लोड करें को सिर्फ़ 1080 पिक्सल से 720 पिक्सल वाले वीडियो के तौर पर दिखाया गया है 1080p के साथ हार्डवेयर वीडियो कोडेक का इस्तेमाल करके ट्रांसकोडिंग सेशन ऑडियो-वीडियो रिकॉर्डिंग शुरू करना. Dolby विज़न कोडेक के लिए, कोडेक शुरू होने में 50 मि॰से॰ या इससे कम समय लगना चाहिए.
  • [5.1/H-1-8] सभी ऑडियो एन्कोडर के लिए 128 केबीपीएस या इससे कम बिटरेट वाला ऑडियो एन्कोडिंग सेशन लोड नहीं किया जा सकता. यहां लोड करें को सिर्फ़ 1080 पिक्सल से 720 पिक्सल वाले वीडियो के तौर पर दिखाया गया है 1080p के साथ हार्डवेयर वीडियो कोडेक का इस्तेमाल करके ट्रांसकोडिंग सेशन ऑडियो-वीडियो रिकॉर्डिंग शुरू करना.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [5.1/H-1-9] सिक्योर हार्डवेयर वीडियो डिकोडर के दो इंस्टेंस पर काम करना ज़रूरी है सेशन (एवीसी, एचईवीसी, VP9, AV1 या इसके बाद के वर्शन) किसी भी कोडेक के कॉम्बिनेशन में हो सकते हैं एक ही समय में 4k रिज़ॉल्यूशन@30 FPS (फ़्रेम प्रति सेकंड) पर (AV1 को छोड़कर), 8-बिट (SDR) और 10-बिट एचडीआर वाला कॉन्टेंट. सभी सेशन के लिए, एक से ज़्यादा फ़्रेम नहीं होना चाहिए प्रति सेकंड कम हो गया. AV1 कोडेक सेशन का इस्तेमाल सिर्फ़ 1080 पिक्सल रिज़ॉल्यूशन पर काम करने के लिए ही किया जा सकता है. भले ही, ऐसा तब हो, जब 4K रिज़ॉल्यूशन में कॉन्टेंट अपलोड करना चाहिए.

नई ज़रूरी शर्तें खत्म करना

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [5.1/H-1-10] असुरक्षित हार्डवेयर वीडियो डिकोडर के तीन इंस्टेंस के साथ काम करना ज़रूरी है सिक्योर हार्डवेयर वीडियो डिकोडर सेशन के एक इंस्टेंस के साथ सेशन (कुल चार इंस्टेंस) (एवीसी, एचईवीसी, VP9, AV1 या इसके बाद के वर्शन) किसी भी कोडेक कॉम्बिनेशन में 4K रिज़ॉल्यूशन@30fps पर तीन सेशन के साथ एक साथ चल रहा है (AV1 को छोड़कर) जिसमें 1080p पर एक सुरक्षित डिकोडर सेशन और एक nn-सुरक्षित सेशन शामिल है रिज़ॉल्यूशन@30fps, जहां ज़्यादा से ज़्यादा दो सेशन 10-बिट एचडीआर में हो सकते हैं. सभी सेशन के लिए, एक से ज़्यादा फ़्रेम नहीं होना चाहिए प्रति सेकंड कम हो गया. AV1 कोडेक सेशन का इस्तेमाल सिर्फ़ 1080 पिक्सल रिज़ॉल्यूशन पर काम करने के लिए ही किया जा सकता है. भले ही, ऐसा तब हो, जब 4K रिज़ॉल्यूशन में कॉन्टेंट अपलोड करना चाहिए.

नई ज़रूरी शर्तें खत्म करना

  • [5.1/H-1-11] हर हार्डवेयर एवीसी, एचईवीसी, डिवाइस पर मौजूद VP9 या AV1 डिकोडर.
  • [5.1/H-1-12] सभी हार्डवेयर वीडियो डिकोडर के लिए, 1080 पिक्सल या उससे छोटे वीडियो डिकोड करने का सेशन जब लोड हो रहा हो. यहां लोड करें को एक साथ 1080 से 720 पिक्सल के रूप में दिखाया गया है हार्डवेयर वीडियो कोडेक इस्तेमाल करके, सिर्फ़ वीडियो ट्रांसकोडिंग सेशन 1080p ऑडियो-वीडियो प्लेबैक शुरू करना. Dolby विज़न कोडेक के लिए, कोडेक शुरू होने में 50 मि॰से॰ या इससे कम समय लगना चाहिए.
  • [5.1/H-1-13] सभी ऑडियो डिकोडर के लिए, 128 केबीपीएस या इससे कम बिटरेट वाला ऑडियो डिकोडिंग सेशन लोड नहीं किया जा सकता. यहां लोड करें को सिर्फ़ 1080 पिक्सल से 720 पिक्सल वाले वीडियो के तौर पर दिखाया गया है 1080p के साथ हार्डवेयर वीडियो कोडेक का इस्तेमाल करके ट्रांसकोडिंग सेशन ऑडियो-वीडियो प्लेबैक शुरू करना.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [5.1/H-1-14] AV1 हार्डवेयर डिकोडर मुख्य 10, लेवल 4.1 के साथ काम करना ज़रूरी है और फ़िल्म ग्रेन जीपीयू कंपोज़िशन पर फ़िल्म ग्रेन इफ़ेक्ट के साथ.

नई ज़रूरी शर्तें खत्म करना

  • [5.1/H-1-15] 4K60 रिज़ॉल्यूशन के साथ काम करने वाला कम से कम एक हार्डवेयर वीडियो डिकोडर होना चाहिए.
  • [5.1/H-1-16] इसमें 4K60 के साथ काम करने वाला कम से कम एक हार्डवेयर वीडियो एन्कोडर होना चाहिए.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [5.1/H-1-21] सभी हार्डवेयर वीडियो के लिए, FEATURE_DynamicColorAspect के साथ काम करना ज़रूरी है डिकोडर (AVC, HEVC, VP9, AV1 या उसके बाद के वर्शन). ध्यान दें: इसका मतलब है कि ऐप्लिकेशन ये काम कर सकते हैं: डिकोडिंग सत्र के दौरान वीडियो सामग्री के रंग संबंधी पहलुओं को अपडेट करता है. 10-बिट और 8-बिट कॉन्टेंट के साथ काम करने वाले डिकोडर, डाइनैमिक तौर पर काम करेंगे सरफ़ेस मोड में 8- और 10-बिट कॉन्टेंट के बीच स्विच कर सकता है. काम करने वाले डिकोडर एचडीआर ट्रांसफ़र फ़ंक्शन को डाइनैमिक तरीके से एसडीआर और एचडीआर के बीच स्विच किया जा सकता है कॉन्टेंट.

नई ज़रूरी शर्तें खत्म करना

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [5.1/H-1-22] वीडियो को कोड में बदलने, डिकोड करने, और जीपीयू में बदलाव करने की सुविधा और वीडियो दिखाने की सुविधा ज़रूरी है पोर्ट्रेट आसपेक्ट रेशियो में कॉन्टेंट, भले ही इमेज के लिए रोटेशन मेटाडेटा सबसे बड़ा कैमरा सपोर्ट करने वाला रिज़ॉल्यूशन या 4K (जो भी कम हो). ध्यान दें: यह अगर कोडेक के साथ एचडीआर क्वालिटी के वीडियो बनाए जा सकते हैं, तो इसमें एचडीआर प्रोफ़ाइलें भी शामिल की जाएंगी. AV1 कोडेक की ज़रूरत सिर्फ़ इन कामों के लिए है 1080p रिज़ॉल्यूशन पर काम करता है. यह ज़रूरी शर्त सिर्फ़ हार्डवेयर कोडेक और जीपीयू के लिए है और DPU.

नई ज़रूरी शर्तें खत्म करना

  • [5.3/H-1-1] 10 सेकंड में एक फ़्रेम से ज़्यादा नहीं छोड़ा जाना चाहिए (यानी, इससे कम 4K 60 FPS (फ़्रेम प्रति सेकंड) वाले वीडियो सेशन के लिए लोड हो रहे हैं.
  • [5.3/H-1-2] वीडियो के दौरान 10 सेकंड में एक से ज़्यादा फ़्रेम नहीं छोड़ना चाहिए 4K सेशन के लिए लोड में हो रहे 60 FPS (फ़्रेम प्रति सेकंड) वाले वीडियो सेशन के रिज़ॉल्यूशन में बदलाव.
  • [5.6/H-1-1] इस्तेमाल करने के लिए, टैप-टू-टोन इंतज़ार का समय 80 मिलीसेकंड या इससे कम होना चाहिए CTS Verifier टैप-टू-टोन टेस्ट.
  • [5.6/H-1-2] 80 मिलीसेकंड की दोतरफ़ा ऑडियो अवधि में या कम से कम एक काम करने वाले डेटा पाथ से कम.
  • [5.6/H-1-3] ज़रूरी है >= 3.5 मि॰मी॰ से ज़्यादा के ऑडियो के लिए स्टीरियो आउटपुट के लिए 24-बिट ऑडियो काम करता हो मौजूद होने पर और पूरे डेटा के ज़रिए काम करने पर यूएसबी ऑडियो पर जैक इंतज़ार का समय कम करने और स्ट्रीमिंग कॉन्फ़िगरेशन के लिए पाथ. इंतज़ार का समय कम होने पर कॉन्फ़िगरेशन, लो-लेटेंसी कॉलबैक में ऐप्लिकेशन को Aऑडियो का इस्तेमाल करना चाहिए मोड. स्ट्रीमिंग कॉन्फ़िगरेशन के लिए, Java AudioTrack का इस्तेमाल ऐप खोलें. इंतज़ार का समय कम करने और स्ट्रीमिंग कॉन्फ़िगरेशन, दोनों में एचएएल आउटपुट सिंक में, AUDIO_FORMAT_PCM_24_BIT, AUDIO_FORMAT_PCM_24_BIT_PACKED, AUDIO_FORMAT_PCM_32_BIT या AUDIO_FORMAT_PCM_FLOAT अपने टारगेट आउटपुट फ़ॉर्मैट के लिए.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [5.6/H-1-4] >= चार चैनल वाले यूएसबी ऑडियो डिवाइसों पर भी काम करना ज़रूरी है. (इसका इस्तेमाल डीजे कंट्रोलर करके गानों की झलक देखने के लिए किया जाता है.)

नई ज़रूरी शर्तें खत्म करना

  • [5.6/H-1-5] क्लास का पालन करने वाले एमआईडीआई डिवाइसों के साथ काम करना चाहिए और एमआईडीआई फ़ीचर फ़्लैग.
  • [5.6/H-1-9] कम से कम 12 चैनल के साथ काम करना ज़रूरी है. इसका मतलब है कि 7.1.4 चैनल मास्क के साथ AudioTrack को खोलने की क्षमता सभी चैनलों को स्पेशलाइज़ या डाउनमिक्स करें.
  • [5.6/H-SR] खास तौर पर 24 चैनलों को जोड़ने का सुझाव दिया जाता है में कम से कम 9.1.6 और 22.2 चैनल मास्क की सुविधा हो.
  • [5.7/H-1-2] ज़रूरी है कि वे MediaDrm.SECURITY_LEVEL_HW_SECURE_ALL की में उपलब्ध है.
सैंपल का कम से कम साइज़ 4 एमआईबी
सबसैंपल की कम से कम संख्या - H264 या HEVC 32
सबसैंपल की कम से कम संख्या - VP9 9
सबसैंपल की कम से कम संख्या - AV1 288
सबसैंपल के बफ़र का कम से कम साइज़ 1 एमआईबी
कम से कम सामान्य क्रिप्टो बफ़र साइज़ 500 केआईबी
एक साथ चल रहे सेशन की कम से कम संख्या 30
हर सेशन में बटन की कम से कम संख्या 20
पास की कुल संख्या (सभी सेशन) 80
डीआरएम कुंजियों की कम से कम कुल संख्या (सभी सेशन) 6
मैसेज का साइज़ 16 केआईबी
डिक्रिप्ट किए गए फ़्रेम प्रति सेकंड 60 FPS (फ़्रेम प्रति सेकंड)
  • [5.1/H-1-17] AVIF के साथ काम करने वाला कम से कम एक हार्डवेयर इमेज डिकोडर होना चाहिए बेसलाइन प्रोफ़ाइल.
  • [5.1/H-1-18] AV1 एन्कोडर के साथ काम करना ज़रूरी है, जो 480p तक एन्कोड हो सकता है रिज़ॉल्यूशन 30 एफ़पीएस (फ़्रेम प्रति सेकंड) और 1 एमबीपीएस होना चाहिए.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [5.1/H-1-20] Feature_HdrEditing के साथ काम करना ज़रूरी है डिवाइस पर मौजूद सभी हार्डवेयर AV1 और HEVC एन्कोडर के लिए सुविधा 4K पर काम करती है रिज़ॉल्यूशन या कैमरे के साथ काम करने वाला सबसे बड़ा रिज़ॉल्यूशन, जो भी कम हो.

नई ज़रूरी शर्तें खत्म करना

  • [5.12/H-SR] हमारा सुझाव है कि वे Feature_HdrEditing डिवाइस पर मौजूद सभी हार्डवेयर AV1 और HEVC एन्कोडर के लिए सुविधा.
  • [5.12/H-1-2] सभी हार्डवेयर AV1 और डिवाइस पर मौजूद HEVC एन्कोडर.
  • [5.12/H-1-3] EXT_YUV_target एक्सटेंशन के लिए, सहायता का विज्ञापन देना ज़रूरी है YUV टेक्सचर से, 8 और 10-बिट दोनों फ़ॉर्मैट में सैंपल मिलता है.
  • [7.1.4/H-1-1] डिसप्ले प्रोसेसिंग के दौरान, कम से कम छह हार्डवेयर ओवरले होने चाहिए यूनिट (DPU) में शामिल हैं, जिनमें से कम से कम 2 में 10-बिट वीडियो कॉन्टेंट दिखाने की क्षमता हो.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

अगर हैंडहेल्ड डिवाइस लागू करने की प्रक्रिया वापस आती है android.os.Build.VERSION_CODES.V android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS के लिए और उनमें शामिल है किसी हार्डवेयर एवीसी या एचईवीसी एन्कोडर के लिए काम करते हैं, तो वे:

नई ज़रूरी शर्तें खत्म करना

2.2.7.2. कैमरा

अगर हैंडहेल्ड डिवाइस लागू करने पर, android.os.Build.VERSION_CODES.U मिलता है android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS के लिए, वे:

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

अगर हैंडहेल्ड डिवाइस लागू करने की प्रक्रिया वापस आती है android.os.Build.VERSION_CODES.V android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS के लिए, वे:

नई ज़रूरी शर्तें खत्म करना

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [7.5/H-1-1] फ़ोन के पीछे वाला मुख्य कैमरा होना चाहिए कम से कम 12 मेगापिक्सल का रिज़ॉल्यूशन हो जो वीडियो कैप्चर करने की सुविधा देता है 4k@30fps, 1080p@60fps, और 720p@60fps का समय. पीछे वाला मुख्य कैमरा यह है सबसे कम आईडी वाला पीछे वाला कैमरा.

नई ज़रूरी शर्तें खत्म करना

  • [7.5/H-1-2] फ़ोन के सामने वाला मुख्य कैमरा होना चाहिए, जिसका रिज़ॉल्यूशन कम से कम 6 मेगापिक्सल की क्वालिटी और 1080p@30fps पर वीडियो कैप्चर करने की सुविधा होती है. मुख्य सामने का कैमरा सामने का कैमरा होता है, जिसका आईडी सबसे कम होता है.
  • [7.5/H-1-3] इस तरह से android.info.supportedHardwareLevel प्रॉपर्टी का इस्तेमाल किया जा सकता है बैक प्राइमरी के लिए FULL या इससे बेहतर और फ़्रंट प्राइमरी के लिए बेहतर या LIMITED कैमरा.
  • [7.5/H-1-4] ज़रूरी सहायता दोनों प्राइमरी के लिए CameraMetadata.SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME कैमरे.
  • [7.5/H-1-5] Camera2 JPEG फ़ॉर्मैट में वीडियो रिकॉर्ड करने में लगने वाला समय होना ज़रूरी है < 1,000 1080 पिक्सल रिज़ॉल्यूशन के लिए मि॰से॰ दोनों प्राइमरी कैमरों के लिए उसकी रोशनी की स्थिति (3,000K).
  • [7.5/H-1-6] Camera2 ऐप्लिकेशन के खुलने में लगने वाला समय होना ज़रूरी है (पहली झलक के लिए कैमरा चालू करें फ़्रेम) < आईटीएस के तहत सीटीएस कैमरा परफ़ॉर्मेंसटेस्ट की मदद से मापा गया 500 मि॰से॰ दोनों प्राइमरी कैमरों के लिए लाइटिंग की स्थिति (3,000K).
  • [7.5/H-1-8] CameraMetadata.REQUEST_AVAILABLE_CAPABILITIES_RAW के साथ काम करना ज़रूरी है और मुख्य बैक कैमरे के लिए android.graphics.ImageFormat.RAW_SENSOR.
  • [7.5/H-1-9] पीछे वाला मुख्य कैमरा होना चाहिए, जो 720 पिक्सल या 1080 पिक्सल की क्वालिटी में काम करता हो @ 240 एफ़पीएस (फ़्रेम प्रति सेकंड) पर सेट करें.
  • [7.5/H-1-10] ज़रूरी है कि कम से कम ZOOM_RATIO < 1.0 प्राथमिक कैमरों के लिए, अगर उपलब्ध है अल्ट्रावाइड आरजीबी कैमरा है जो इसी दिशा में है.
  • [7.5/H-1-11] प्राइमरी स्ट्रीम करने के लिए, एक साथ कई फ़्रंट-बैक स्ट्रीमिंग की सुविधा लागू करनी होगी कैमरे.
  • [7.5/H-1-12] ज़रूरी सहायता दोनों प्राइमरी के लिए CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION सामने और प्राइमरी बैक कैमरा है.
  • [7.5/H-1-13] LOGICAL_MULTI_CAMERA सुविधा के साथ काम करना चाहिए प्राइमरी रीयर कैमरे के लिए, अगर पीछे एक से ज़्यादा आरजीबी वाला रीयर कैमरा है कैमरे.
  • [7.5/H-1-14] ज़रूरी है कि ये दोनों मुख्य एपीआई के लिए, STREAM_USE_CASE की सुविधा काम करती हो सामने और प्राइमरी बैक कैमरा है.
  • [7.5/H-1-15] ज़रूरी सहायता प्राइमरी ऐक्शन के लिए, CameraX और Camera2 एक्सटेंशन, दोनों के नाइट मोड एक्सटेंशन कैमरे.
  • [7.5/H-1-16] प्राथमिक बैंक खाते के लिए DYNAMIC_RANGE_TEN_BIT की सुविधा होनी ज़रूरी है कैमरे.
  • [7.5/H-1-17] को Control_SCENE_Mode_FACE_PRIORITY का समर्थन करना चाहिए और चेहरे की पहचान करने की सुविधा (StatISTICS_FACE_DETECT_Mode_SIMPLE या StatISTICS_FACE_DETECT_mode_FULL) आज़माएं.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [7.5/H-1-18] प्राइमरी रीयर के लिए और JPEG_R की सुविधा ज़रूर दी जानी चाहिए मुख्य फ़्रंट कैमरे इस्तेमाल किए जा सकते हैं.
  • [7.5/H-1-19] ज़रूरी सहायता 1080p HLG10 के लिए CONTROL_VIDEO_STABILIZATION_MODE_PREVIEW_STABILIZATION ज़्यादा से ज़्यादा 16:9 आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) JPEG और 720p HLG10 फ़ॉर्मैट में झलक देखने के लिए इमेज में, ज़्यादा से ज़्यादा 16:9 आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) में JPEG स्ट्रीम कॉम्बिनेशन जोड़ा जा सकता है वाला पीछे का कैमरा.
  • [7.5/H-1-20] मुख्य फ़ंक्शन के लिए, डिफ़ॉल्ट रूप से JPEG_R आउटपुट देना ज़रूरी है कैमरे के ऐप्लिकेशन में, रीयर और मुख्य फ़्रंट कैमरे के साथ काम करता है.

नई ज़रूरी शर्तें खत्म करना

2.2.7.3. हार्डवेयर

अगर हैंडहेल्ड डिवाइस लागू करने की प्रक्रिया के लिए, android.os.Build.VERSION_CODES.U फ़ंक्शन लागू होता है, तो android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS, वे:

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

अगर हैंडहेल्ड डिवाइस लागू करने की प्रक्रिया वापस आती है android.os.Build.VERSION_CODES.V android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS के लिए, वे:

नई ज़रूरी शर्तें खत्म करना

  • [7.1.1.1/H-2-1] स्क्रीन का रिज़ॉल्यूशन कम से कम 1080 पिक्सल होना चाहिए.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [7.1.1.3/H-2-1] स्क्रीन की सघनता कम से कम 400 डीपीआई होनी चाहिए अगर डिवाइस की स्क्रीन चौड़ाई है < 600 डीपी.

नई ज़रूरी शर्तें खत्म करना

  • [7.1.1.3/H-3-1] एचडीआर डिसप्ले होना चाहिए, जो कम से कम 1,000 निट के साथ काम करता हो औसत.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [7.6.1/H-2-1] आपके डिवाइस में कम से कम 8 जीबी की फ़िज़िकल मेमोरी होनी चाहिए, जिसमें कर्नेल के लिए कम से कम 6.64 जीबी स्टोरेज उपलब्ध हो, जैसा कि android.app.ActivityManager.MemoryInfo.totalMem.

नई ज़रूरी शर्तें खत्म करना

2.2.7.4. परफ़ॉर्मेंस

अगर हैंडहेल्ड डिवाइस लागू करने की प्रक्रिया के लिए, android.os.Build.VERSION_CODES.U फ़ंक्शन लागू होता है, तो android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS, वे:

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

अगर हैंडहेल्ड डिवाइस लागू करने की प्रक्रिया वापस आती है android.os.Build.VERSION_CODES.V android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS के लिए, वे:

नई ज़रूरी शर्तें खत्म करना

  • [8.2/H-1-1] यह पक्का करना ज़रूरी है कि क्रम में लिखा गया डेटा, कम से कम 150 एमबी/सेकंड हो.
  • [8.2/H-1-2] इस बात का ध्यान रखना ज़रूरी है कि इसमें कम से कम 10 एमबी/सेकंड का रैंडम तरीके से डेटा लिखा गया हो.
  • [8.2/H-1-3] यह पक्का करना ज़रूरी है कि क्रम में कम से कम 250 एमबी/सेकंड की हों.
  • [8.2/H-1-4] यह पक्का करना ज़रूरी है कि आपके ऐप्लिकेशन में कम से कम 100 एमबी/सेकंड का रैंडम रीड परफ़ॉर्मेंस मिले.
  • [8.2/H-1-5] यह पक्का करना ज़रूरी है कि एक साथ क्रम में होने वाली रिपोर्ट में, पढ़ने और लिखने की परफ़ॉर्मेंस एक साथ मौजूद हो 2x रीड और 1 गुना राइट परफ़ॉर्मेंस वाला कम से कम 50 एमबी/सेकंड होना चाहिए.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

2.2.7.5. ग्राफ़िक्स

अगर हैंडहेल्ड डिवाइस लागू करने पर, android.os.Build.VERSION_CODES.V मिलता है android.os.Build.VERSION_CODES.MEDIA_PERFORMANCE_CLASS के लिए, वे:

नई ज़रूरी शर्तें खत्म करना

2.3. टेलीविज़न की आवश्यकताएं

Android Television डिवाइस का मतलब ऐसे Android डिवाइस से है जिसे लागू किया गया है डिजिटल मीडिया, फ़िल्में, गेम, ऐप्लिकेशन, और अन्य और/या करीब दस फ़ीट दूर बैठने वाले उपयोगकर्ताओं के लिए लाइव टीवी ("पीछे की ओर झुकाना" या "10 फ़ुट" यूज़र इंटरफ़ेस") है.

Android डिवाइसों पर लागू होने वाली सभी सेवाओं को टेलीविज़न की कैटगरी में रखा जाता है. ऐसा तब किया जाता है, जब वे सभी ज़रूरी शर्तों को पूरा करते हों जैसे:

  • रेंडर किए गए यूज़र इंटरफ़ेस को रिमोट तरीके से कंट्रोल करने का तरीका उपलब्ध कराया हो डिसप्ले पर दिख सकता है, जो उपयोगकर्ता से दस फ़ीट दूर हो सकता है.
  • एम्बेड की गई स्क्रीन का डिसप्ले, जिसकी डायगनल लंबाई 24 से ज़्यादा हो इंच में या एक वीडियो आउटपुट पोर्ट शामिल करें, जैसे VGA, HDMI, DisplayPort या प्रदर्शन के लिए वायरलेस पोर्ट.

इस सेक्शन के बाकी हिस्से में बताई गई अन्य ज़रूरी शर्तें खास तौर पर Android के लिए हैं टेलीविज़न डिवाइस लागू करना.

2.3.1. हार्डवेयर

टेलीविज़न डिवाइस पर यह सुविधा लागू करना:

  • [7.2.2/T-0-1] डी-पैड के साथ काम करना ज़रूरी है.
  • [7.2.3/T-0-1] होम और वापस जाने की जानकारी देना ज़रूरी है फ़ंक्शन.
  • [7.2.3/T-0-2] आपको सामान्य और देर तक, दोनों तरह से दबाए रखना होगा वापस जाएं फ़ंक्शन का इवेंट (KEYCODE_BACK) ऐप्लिकेशन को फ़ोरग्राउंड ऐप्लिकेशन से लिंक करना.
  • [7.2.6.1/T-0-1] गेम के लिए सहायता शामिल करना ज़रूरी है कंट्रोलर और android.hardware.gamepad फ़ीचर फ़्लैग का एलान करना होगा.
  • [7.2.7/T] ऐसा रिमोट कंट्रोल देना चाहिए जिससे उपयोगकर्ता बिना छुए नेविगेशन को ऐक्सेस कर सकते हैं और नेविगेशन बटन के इनपुट.

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

  • [7.3.4/T-1-1] ज़रूरी है कि कम से कम 100 हर्ट्ज़ की फ़्रीक्वेंसी होनी चाहिए.
  • [7.3.4/T-1-2] ओरिएंटेशन में हुए बदलावों को मेज़र करने की सुविधा होनी चाहिए 1000 डिग्री प्रति सेकंड तक.

टेलीविज़न डिवाइस पर यह सुविधा लागू करना:

  • [7.4.3/T-0-1] ब्लूटूथ और ब्लूटूथ LE.
  • [7.6.1/T-0-1] ज़रूरी है कि आपके पास कम से कम 4 जीबी स्टोरेज हो ऐप्लिकेशन के निजी डेटा के लिए, नॉन-वोलाटाइल स्टोरेज उपलब्ध है (यानी "/data" पार्टीशन).

अगर टेलीविज़न डिवाइस में होस्ट मोड के साथ काम करने वाला यूएसबी पोर्ट शामिल है, वे:

  • [7.5.3/T-1-1] इसमें बाहरी कैमरे के साथ काम करने की सुविधा होनी चाहिए जो इस यूएसबी पोर्ट से कनेक्ट होता है, लेकिन यह ज़रूरी नहीं है कि वह हमेशा कनेक्ट हो.

अगर टीवी डिवाइस में 32-बिट लागू होता है:

  • [7.6.1/T-1-1] कर्नेल के लिए उपलब्ध मेमोरी और अगर नीचे दी गई किसी भी डेंसिटी का इस्तेमाल किया जाता है, तो यूज़रस्पेस कम से कम 896 एमबी होना चाहिए:

    • छोटी/सामान्य स्क्रीन पर 400 डीपीआई या उससे ज़्यादा
    • बड़ी स्क्रीन पर xhdpi या उससे ज़्यादा
    • ज़्यादा बड़ी स्क्रीन पर tvdpi या उसके बाद का वर्शन

अगर टीवी डिवाइस पर 64-बिट वाला फ़ॉर्मैट लागू किया जाता है, तो:

  • [7.6.1/T-2-1] कर्नेल के लिए उपलब्ध मेमोरी और यूज़रस्पेस कम से कम 1280 एमबी होना चाहिए. अगर नीचे दी गई किसी भी सघनता में इस्तेमाल किया गयाः

    • छोटी/सामान्य स्क्रीन पर 400 डीपीआई या उससे ज़्यादा
    • बड़ी स्क्रीन पर xhdpi या उससे ज़्यादा
    • ज़्यादा बड़ी स्क्रीन पर tvdpi या उसके बाद का वर्शन

ध्यान दें कि "कर्नल और यूज़रस्पेस में उपलब्ध मेमोरी" का मतलब है पहले से उपलब्ध किसी मेमोरी के अलावा दिया गया मेमोरी स्पेस रेडियो, वीडियो जैसे हार्डवेयर कॉम्पोनेंट के लिए खास तौर पर काम करने वाले होते हैं. के तहत, डिवाइस लागू करने पर कर्नेल के कंट्रोल में होती है.

टेलीविज़न डिवाइस पर यह सुविधा लागू करना:

  • [7.8.1/T] इसमें माइक्रोफ़ोन शामिल होना चाहिए.
  • [7.8.2/T-0-1] ज़रूरी है कि आपके पास ऑडियो आउटपुट हो और यह जानकारी देना ज़रूरी हो android.hardware.audio.output.

2.3.2. मल्टीमीडिया

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

  • [5.1/T-0-1] MPEG-4 एएसी प्रोफ़ाइल (AAC LC)
  • [5.1/T-0-2] MPEG-4 HE AAC प्रोफ़ाइल (AAC+)
  • [5.1/T-0-3] AAC ELD (कम देरी वाले AAC)

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

  • [5.2/T-0-1] H.264
  • [5.2/T-0-2] VP8
  • [5.2/T-0-3] AV1

टेलीविज़न डिवाइस पर यह सुविधा लागू करना:

  • [5.2.2/T-SR-1] इस्तेमाल करने का सुझाव दिया जाता है 30 फ़्रेम प्रति सेकंड पर 720p और 1080p रिज़ॉल्यूशन वाले वीडियो की H.264 एन्कोडिंग.

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

  • [5.3.3/T-0-1] MPEG-4 एसपी
  • [5.3.4/T-0-2] H.264 एवीसी
  • [5.3.5/T-0-3] H.265 एचईवीसी
  • [5.3.6/T-0-4] VP8
  • [5.3.7/T-0-5] VP9
  • [5.3.1/T-0-6] MPEG-2
  • [5.3.2/T-0-7] AV1

टेलीविज़न डिवाइस को लागू करने के लिए, MPEG-2 डीकोडिंग का इस्तेमाल करना ज़रूरी है. इसके बारे में ज़्यादा जानकारी यहां दी गई है सेक्शन 5.3.1 में, स्टैंडर्ड वीडियो फ़्रेम रेट के साथ और शामिल हैं:

  • [5.3.1/T-1-1] 29.97 फ़्रेम प्रति सेकंड पर एचडी 1080 पिक्सल मुख्य प्रोफ़ाइल के हाई लेवल के साथ.
  • [5.3.1/T-1-2] 59.94 फ़्रेम प्रति सेकंड पर HD 1080i मुख्य प्रोफ़ाइल के हाई लेवल के साथ. उन्हें इंटरलेस किए गए MPEG-2 वीडियो को डिइंटरलेस करना होगा और उसे तीसरे पक्ष के ऐप्लिकेशन के लिए उपलब्ध कराया जाए.

टेलिविज़न डिवाइस को लागू करने के लिए, H.264 डिकोडिंग की सुविधा का इस्तेमाल करना ज़रूरी है. इसके बारे में ज़्यादा जानकारी यहां दी गई है सेक्शन 5.3.4, स्टैंडर्ड वीडियो फ़्रेम रेट के साथ और शामिल हैं:

  • [5.3.4/T-1-1] 60 फ़्रेम प्रति सेकंड पर एचडी 1080 पिक्सल बेसलाइन प्रोफ़ाइल
  • [5.3.4/T-1-2] 60 फ़्रेम प्रति सेकंड पर एचडी 1080 पिक्सल मुख्य प्रोफ़ाइल
  • [5.3.4/T-1-3] 60 फ़्रेम प्रति सेकंड पर एचडी 1080 पिक्सल हाई प्रोफ़ाइल लेवल 4.2

H.265 हार्डवेयर डिकोडर के साथ टेलीविज़न डिवाइस को लागू करना ज़रूरी है H.265 डिकोडिंग, जैसा कि सेक्शन 5.3.5 में बताया गया है. स्टैंडर्ड वीडियो फ़्रेम रेट पर और समाधान. इनमें ये शामिल हैं:

  • [5.3.5/T-1-1] 60 फ़्रेम प्रति सेकंड पर एचडी 1080 पिक्सल मुख्य प्रोफ़ाइल लेवल 4.1

अगर H.265 हार्डवेयर डिकोडर के साथ टेलिविज़न डिवाइस लागू किया जाता है, तो H.265 डिकोडिंग और यूएचडी डिकोडिंग प्रोफ़ाइल, वे:

  • [5.3.5/T-2-1] यूएचडी डिकोड करने वाली प्रोफ़ाइल पर काम करना ज़रूरी है मुख्य 10 लेवल 5 की मुख्य टियर प्रोफ़ाइल के साथ, 60 फ़्रेम प्रति सेकंड पर

टेलीविज़न डिवाइस को लागू करने के लिए, VP8 को डिकोड करना ज़रूरी है. इसके बारे में ज़्यादा जानकारी यहां दी गई है सेक्शन 5.3.6, स्टैंडर्ड वीडियो फ़्रेम रेट के साथ और शामिल हैं:

  • [5.3.6/T-1-1] हर सेकंड डिकोड करने वाली प्रोफ़ाइल पर, 60 फ़्रेम प्रति सेकंड पर एचडी 1080 पिक्सल

VP9 हार्डवेयर डिकोडर के साथ टेलीविज़न डिवाइस को लागू करना, VP9 के साथ काम करना चाहिए जैसा कि सेक्शन 5.3.7 में बताया गया है, स्टैंडर्ड वीडियो फ़्रेम रेट के हिसाब से और इनमें शामिल हैं:

  • [5.3.7/T-1-1] 60 फ़्रेम प्रति सेकंड पर एचडी 1080 पिक्सल प्रोफ़ाइल 0 (8 बिट रंग की गहराई)

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

  • [5.3.7/T-2-1] यूएचडी डिकोड करने वाली प्रोफ़ाइल पर काम करना ज़रूरी है प्रोफ़ाइल 0 (8 बिट रंग गहराई) के साथ 60 फ़्रेम प्रति सेकंड पर.
  • [5.3.7/T-SR1] हमारा सुझाव है कि प्रोफ़ाइल 2 (10 बिट रंग गहराई) के साथ 60 फ़्रेम प्रति सेकंड पर यूएचडी डिकोडिंग प्रोफ़ाइल.

टेलीविज़न डिवाइस पर यह सुविधा लागू करना:

  • [5.5/T-0-1] सिस्टम मास्टर के लिए सहायता शामिल करनी होगी साथ काम करने वाले आउटपुट पर वॉल्यूम और डिजिटल ऑडियो आउटपुट की आवाज़ का वॉल्यूम, कंप्रेस किए गए ऑडियो पासथ्रू आउटपुट (जब ऑडियो को डिकोड नहीं किया जाता है) को छोड़कर आज़माएं).

अगर टेलीविज़न डिवाइस पर दिखाने के लिए, डिसप्ले पहले से मौजूद नहीं है, तो हालांकि, एचडीएमआई के ज़रिए कनेक्ट किए गए बाहरी डिसप्ले के साथ काम करने के बजाय ये काम करते हैं:

  • [5.8/T-0-1] एचडीएमआई आउटपुट मोड को चुने गए पिक्सल फ़ॉर्मैट के लिए सबसे ज़्यादा रिज़ॉल्यूशन, जो 50 हर्ट्ज़ या 60 हर्ट्ज़ पर काम करता है बाहरी डिसप्ले की रीफ़्रेश दर, जो वीडियो की रीफ़्रेश दर पर निर्भर करती है वह क्षेत्र जहां डिवाइस बेचा जाता है.
  • [5.8/T-SR-1] उपयोगकर्ता को जानकारी देने के लिए, इसका सुझाव दिया जाता है कॉन्फ़िगर किया जा सकने वाला एचडीएमआई रीफ़्रेश रेट चुनने वाला टूल.
  • [5.8] एचडीएमआई आउटपुट मोड की रीफ़्रेश दर सेट करनी चाहिए 50 हर्ट्ज़ या 60 हर्ट्ज़ पर क्लिक करें. यह रिज़ॉल्यूशन, वीडियो की रीफ़्रेश दर के हिसाब से तय होता है. डिवाइस की बिक्री होती है.

अगर टेलीविज़न डिवाइस पर दिखाने के लिए, डिसप्ले पहले से मौजूद नहीं है, तो हालांकि, एचडीएमआई के ज़रिए कनेक्ट किए गए बाहरी डिसप्ले के साथ काम करने के बजाय ये काम करते हैं:

  • [5.8/T-1-1] एचडीसीपी 2.2 के साथ काम करना ज़रूरी है.

अगर टेलीविज़न डिवाइस पर, यूएचडी को डिकोड करने की सुविधा काम नहीं करती हो, लेकिन के बजाय एचडीएमआई के ज़रिए कनेक्ट किए गए बाहरी डिसप्ले का इस्तेमाल कर सकते हैं, तो ये काम करते हैं:

  • [5.8/T-2-1] एचडीसीपी 1.4 वर्शन के साथ काम करना ज़रूरी है

2.3.3. सॉफ़्टवेयर

टेलीविज़न डिवाइस पर यह सुविधा लागू करना:

  • [3/T-0-1] सुविधाओं के बारे में बताना ज़रूरी है android.software.leanback और android.hardware.type.television.
  • [3.2.3.1/T-0-1] किसी एक को पहले से लोड करना होगा या ज़्यादा ऐप्लिकेशन या सेवा कॉम्पोनेंट के लिए, इंटेंट हैंडलर के साथ इन ऐप्लिकेशन इंटेंट के हिसाब से, पब्लिक इंटेंट फ़िल्टर पैटर्न को तय किया गया है यहां दी गई है.
  • [3.4.1/T-0-1] ज़रूरी है कि android.webkit.Webview एपीआई को लागू करना.

अगर Android Television डिवाइस लॉक स्क्रीन पर काम करता है,तो वे:

  • [3.8.10/T-1-1] लॉक आइकॉन दिखाना ज़रूरी है स्क्रीन पर सूचनाएं दिखाने की सुविधा चालू करें. इसमें मीडिया सूचना टेंप्लेट भी शामिल है.

टेलीविज़न डिवाइस पर यह सुविधा लागू करना:

  • [3.8.14/T-SR-1] का सुझाव दिया जाता है पिक्चर में पिक्चर (पीआईपी) मोड की मल्टी-विंडो सुविधा भी काम कर सकती है.
  • [3.10/T-0-1] ज़रूरी है कि ये तीसरे पक्ष की सुलभता सुविधाओं के साथ काम करते हों सेवाओं.
  • [3.10/T-SR-1] का सुझाव दिया जाता है, ताकि डिवाइस पर सुलभता सेवाओं को पहले से लोड करने की सुविधा बटन से ऐक्सेस करने और TalkBack की सुविधा (यह इन भाषाओं में काम करती है: में उपलब्ध कराई गई हैं, जिनमें पहले से इंस्टॉल किया गया लिखाई को बोली में बदलने वाला इंजन) की सुलभता सेवाएं talkback ओपन सोर्स प्रोजेक्ट.

अगर टेलीविज़न डिवाइस लागू करने की प्रोसेस के दौरान, android.hardware.audio.output, वे:

  • [3.11/T-SR-1] हमारा सुझाव है कि डिवाइस पर उपलब्ध भाषाओं के साथ काम करने वाला TTS इंजन.
  • [3.11/T-1-1] को तीसरे पक्ष के टीटीएस इंजन.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

टेलीविज़न डिवाइस पर यह सुविधा लागू करना:

  • [3.12/T-0-1] टीवी इनपुट फ़्रेमवर्क के साथ काम करना ज़रूरी है.

नई ज़रूरी शर्तें खत्म करना

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

Android Television इनपुट फ़्रेमवर्क (TIF) की मदद से, Android Television डिवाइसों पर लाइव कॉन्टेंट की डिलीवरी. TIF स्टैंडर्ड देता है Android Television डिवाइसों को कंट्रोल करने वाले इनपुट मॉड्यूल बनाने के लिए एपीआई.

टेलीविज़न डिवाइस पर यह सुविधा लागू करना:

  • [3/T-0-2] प्लैटफ़ॉर्म की सुविधा के बारे में एलान करना ज़रूरी है android.software.live_tv.
  • [3/T-0-3] सभी टीआईएफ़ एपीआई के साथ काम करना ज़रूरी है. जैसे, ऐप्लिकेशन जो इन एपीआई का इस्तेमाल करता है और तीसरे पक्ष के टीआईएफ़ पर आधारित इनपुट सेवा को डिवाइस पर इंस्टॉल और इस्तेमाल किया जा सकता है.

Android Television Tuner Framework (TF) ट्यूनर के लाइव कॉन्टेंट को, आईपी से स्ट्रीमिंग कॉन्टेंट को एक जगह से मैनेज करता है Android Television डिवाइसों पर टर्नर फ़्रेमवर्क एक मानक एपीआई Android Television Tuner का इस्तेमाल करने वाली इनपुट सेवाएं बनाने के लिए.

अगर डिवाइसों को लागू करने के लिए ट्यूनर की सुविधा उपलब्ध है, तो वे:

  • [3/T-1-1] सभी Tuner Framework API के साथ इस तरह से काम करना चाहिए कि इन एपीआई का इस्तेमाल करने वाले ऐप्लिकेशन, डिवाइस पर इंस्टॉल और इस्तेमाल किए जा सकते हैं.

नई ज़रूरी शर्तें खत्म करना

2.3.4. परफ़ॉर्मेंस और पावर

  • [8.1/T-0-1] फ़्रेम में एक जैसी देरी. फ़्रेम को रेंडर होने में लगने वाले समय के अंतर या रेंडर होने में ज़्यादा समय लगने की ज़रूरत नहीं है एक सेकंड में अक्सर 5 फ़्रेम से कम होनी चाहिए और एक सेकंड में 1 फ़्रेम से कम होनी चाहिए.
  • [8.2/T-0-1] यह पक्का करना ज़रूरी है कि हर क्रम में कम से कम 5 एमबी/सेकंड की परफ़ॉर्मेंस लिखें.
  • [8.2/T-0-2] यह पक्का करना ज़रूरी है कि कम से कम 0.5 एमबी/सेकंड की परफ़ॉर्मेंस.
  • [8.2/T-0-3] यह पक्का करना ज़रूरी है कि हर क्रम में कम से कम 15 एमबी/सेकंड की परफ़ॉर्मेंस का डेटा देखने के लिए.
  • [8.2/T-0-4] यह पक्का करना ज़रूरी है कि कम से कम 3.5 एमबी/सेकंड की परफ़ॉर्मेंस.

अगर टेलिविज़न डिवाइस को लागू करने के तरीके में डिवाइस की पावर बढ़ाने वाली सुविधाएं शामिल हैं ऐसा मैनेजमेंट जो AOSP में शामिल है या शामिल की गई सुविधाओं का दायरा बढ़ाता है में शामिल हैं, तो वे:

  • [8.3/T-1-1] यह सुविधा चालू करने के लिए, लोगों के लिए ज़रूरी सुविधाएं उपलब्ध कराना ज़रूरी है और बैटरी सेवर सुविधा को बंद करें.

अगर टेलीविज़न डिवाइस में बैटरी नहीं हो, तो वे:

अगर टेलीविज़न डिवाइस में बैटरी हो, तो वे:

  • [8.3/T-1-3] प्रॉडक्ट दिखाने के लिए, लोगों के लिए ज़रूरी सुविधाएं उपलब्ध कराना ज़रूरी है ऐसे सभी ऐप्लिकेशन जिन्हें ऐप्लिकेशन स्टैंडबाय और बैटरी सेव करने वाले मोड के इस्तेमाल से छूट मिली हुई है.

टेलीविज़न डिवाइस पर यह सुविधा लागू करना:

  • [8.4/T-0-1] ज़रूरी है कि हर कॉम्पोनेंट के लिए पावर प्रोफ़ाइल, जो इस्तेमाल की मौजूदा वैल्यू के बारे में बताती है हर हार्डवेयर कॉम्पोनेंट के लिए और बैटरी के तेज़ी से खर्च होने की समस्या की वजह से कॉम्पोनेंट, जैसा कि Android ओपन सोर्स प्रोजेक्ट की साइट में बताया गया है.
  • [8.4/T-0-2] सभी पावर की जानकारी देना ज़रूरी है मिलीमीटर घंटे (mAh) में खपत की वैल्यू.
  • [8.4/T-0-3] सीपीयू के पावर की जानकारी देना ज़रूरी है इस्तेमाल, हर प्रोसेस के यूआईडी के मुताबिक किया जाता है. Android ओपन सोर्स प्रोजेक्ट ने uid_cputime कर्नेल मॉड्यूल के लागू होने की वजह से ज़रूरी शर्तें.
  • [8.4/T] इसे अगर हार्डवेयर कॉम्पोनेंट के लिए पावर सप्लाई का इस्तेमाल एट्रिब्यूट नहीं किया जा सकता, तो खुद हार्डवेयर कॉम्पोनेंट को ऐप्लिकेशन में बदलें.
  • [8.4/T-0-4] बैटरी का इस्तेमाल करना ज़रूरी है adb shell dumpsys batterystats पर उपलब्ध है शेल कमांड, ऐप्लिकेशन डेवलपर को भेजी जाएगी.

2.3.5. सुरक्षा मॉडल

टेलीविज़न डिवाइस पर यह सुविधा लागू करना:

  • [9/T-0-1] android.hardware.security.model.compatible का एलान करना ज़रूरी है सुविधा.
  • [9.11/T-0-1] कीस्टोर को लागू करने के तरीके का बैक अप लेना ज़रूरी है एक आइसोलेटेड एक्ज़ीक्यूशन एनवायरमेंट के साथ.
  • [9.11/T-0-2] आरएसए, एईएस, ECDSA और HMAC क्रिप्टोग्राफ़िक एल्गोरिदम और MD5, SHA-1, और SHA-2 फ़ैमिली हैश फ़ंक्शन, Android कीस्टोर सिस्टम के साथ काम करने वाले एल्गोरिदम ऐसे क्षेत्र में मौजूद होते हैं, जिसे इस पर चलने वाले कोड से सुरक्षित रूप से अलग कर दिया जाता है कर्नेल और उसके ऊपर का हिस्सा. सिक्योर आइसोलेशन से सभी संभावित तरीकों को ब्लॉक करना चाहिए जिससे कर्नेल या यूज़रस्पेस कोड, आइसोलेटेड एनवायरमेंट, जिसमें डीएमए भी शामिल हैं. अपस्ट्रीम Android ओपन सोर्स प्रोजेक्ट (AOSP) इस ज़रूरी शर्त को पूरा करने के लिए Trusty लागू करने की प्रोसेस का इस्तेमाल करता है. हालांकि, यह अन्य ARM TrustZone पर आधारित समाधान या तीसरे पक्ष की सुरक्षित समीक्षा एक उचित हायपरवाइज़र-आधारित आइसोलेशन लागू करना वैकल्पिक है के विकल्प.
  • [9.11/T-0-3] लॉक स्क्रीन पर काम करना ज़रूरी है पुष्टि करने की प्रक्रिया को, एक ही जगह पर रन करने के दौरान सफलतापूर्वक, पुष्टि करने वाली कुंजियों का इस्तेमाल करने की अनुमति दें. लॉक स् क्रीन क्रेडेंशियल को इस तरह से सेव किया जाना चाहिए कि सिर्फ़ अलग-अलग तरीके से एक्ज़ीक्यूट किया जा सके लॉक स्क्रीन ऑथेंटिकेशन करने के लिए उपलब्ध वातावरण. अपस्ट्रीम Android ओपन सोर्स प्रोजेक्ट गेटकीपर हार्डवेयर ऐब्स्ट्रैक्शन लेयर (एचएएल) और Trusty शामिल है, जिसका इस्तेमाल इस ज़रूरत को पूरा करने के लिए किया जा सकता है.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [9.11/T-0-4] कुंजी को प्रमाणित करने की सुविधा का इस्तेमाल करना ज़रूरी है, जहां प्रमाणित करने वाली साइनिंग कुंजी को सुरक्षित हार्डवेयर से सुरक्षित किया गया है और साइनिंग कुंजी को सुरक्षित हार्डवेयर में किया जाता है. प्रमाणित करने के लिए हस्ताक्षर करने वाली कुंजी के बीच शेयर की जानी चाहिए सुरक्षा कुंजियों को रोकने के लिए, डिवाइसों की संख्या काफ़ी ज़्यादा होनी चाहिए रोका गया इसका इस्तेमाल हमेशा के लिए किया जा रहा है डिवाइस आइडेंटिफ़ायर. इस शर्त को पूरा करने का एक तरीका यह है कि अगर किसी SKU की कम से कम 1,00,000 यूनिट को बनाया गया. अगर किसी SKU की 1,00,000 से ज़्यादा इकाइयां बनाई जाती हैं, तो हर 1,00,000 यूनिट के लिए कुंजी का इस्तेमाल किया जा सकता है.

नई ज़रूरी शर्तें खत्म करना

ध्यान दें कि अगर किसी डिवाइस पर लागू करने की सुविधा को पहले ही किसी Android डिवाइस पर लॉन्च किया जा चुका है वर्शन न हो, तो ऐसे डिवाइस के लिए कीस्टोर ज़रूरी शर्तें पूरी नहीं करता एक्ज़ीक्यूशन के अलग-अलग एनवायरमेंट का इस्तेमाल किया जाता है और मुख्य पुष्टि के साथ काम किया जाता है, ऐसा तब तक किया जा सकता है, जब तक कि यह android.hardware.fingerprint सुविधा के बारे में न बताता हो. इस सुविधा के लिए ज़रूरी है कि कीस्टोर एक आइसोलेटेड एक्ज़ीक्यूशन एनवायरमेंट का इस्तेमाल करके सुरक्षित किया गया है.

अगर टेलिविज़न डिवाइस इस्तेमाल करने के तरीके सुरक्षित लॉक स्क्रीन की सुविधा देते हैं, तो ये काम करते हैं:

  • [9.11/T-1-1] उपयोगकर्ता को स्लीप मोड (कम बैटरी मोड) चुनने की अनुमति देनी होगी लॉक की स्थिति में ट्रांज़िशन के लिए, टाइम आउट की अनुमति कम से कम 15 सेकंड या उससे कम होनी चाहिए.

अगर टेलीविज़न डिवाइस पर कई उपयोगकर्ता और android.hardware.telephony फ़ीचर फ़्लैग का एलान नहीं करते, वे:

  • [9.5/T-2-1] प्रतिबंधित प्रोफ़ाइलों का इस्तेमाल करना ज़रूरी है, एक ऐसी सुविधा है जिससे डिवाइस के मालिक, अतिरिक्त उपयोगकर्ताओं और उनके क्षमता. प्रतिबंधित प्रोफ़ाइल के साथ, डिवाइस के मालिक ये काम कर सकते हैं अतिरिक्त उपयोगकर्ताओं के काम करने के लिए, अलग-अलग एनवायरमेंट तुरंत सेट अप कर लें, को मैनेज करने की क्षमता के साथ-साथ, ये सुविधाएं इन एनवायरमेंट में उपलब्ध हैं.

अगर टेलीविज़न डिवाइस पर कई उपयोगकर्ता और android.hardware.telephony फ़ीचर फ़्लैग का एलान करेगा, वे:

  • [9.5/T-3-1] प्रतिबंधित सुविधा के साथ काम नहीं करना चाहिए प्रोफ़ाइलें बनाएं. हालांकि, कंट्रोल के लिए एओएसपी को लागू करना ज़रूरी है का इस्तेमाल दूसरे उपयोगकर्ताओं को वॉइस कॉल और एसएमएस ऐक्सेस करने से रोकने के लिए किया जा सकता है.

अगर टेलीविज़न डिवाइस लागू करने के तरीके के बारे में android.hardware.microphone का एलान किया जाता है, तो वे:

  • [9.8.2/T-4-1] माइक्रोफ़ोन इंंडिकेटर दिखाना ज़रूरी है, जब कोई ऐप्लिकेशन, माइक्रोफ़ोन के ऑडियो डेटा को ऐक्सेस कर रहा है, लेकिन माइक्रोफ़ोन को केवल HotwordDetectionService, SOURCE_AVERAGE से ऐक्सेस किया जाता है, ContentRecordService या सेक्शन 9.1 में बताई गई भूमिकाओं वाले ऐप्लिकेशन CDD आइडेंटिफ़ायर C-3-X वाली अनुमतियां.
  • [9.8.2/T-4-2] इसके लिए माइक्रोफ़ोन इंडिकेटर को नहीं छिपाना चाहिए ऐसे सिस्टम ऐप्लिकेशन जिनमें यूज़र इंटरफ़ेस या डायरेक्ट यूज़र इंटरैक्शन दिखता हो.

अगर टेलीविज़न डिवाइस लागू करने के तरीके के बारे में android.hardware.camera.any का एलान किया जाता है, तो वे:

  • [9.8.2/T-5-1] कैमरा इंंडिकेटर दिखाना ज़रूरी है, जब ऐप लाइव कैमरे का डेटा ऐक्सेस कर रहा है, लेकिन तब नहीं जब कैमरा सिर्फ़ सेक्शन 9.1 में बताई गई भूमिकाओं वाले ऐप्लिकेशन से ऐक्सेस किया जा रहा हो सीडीडी आइडेंटिफ़ायर [C-3-X] वाली अनुमतियां.
  • [9.8.2/T-5-2] इसके लिए कैमरा इंडिकेटर को नहीं छिपाना चाहिए ऐसे सिस्टम ऐप्लिकेशन जिनमें यूज़र इंटरफ़ेस या डायरेक्ट यूज़र इंटरैक्शन दिखता हो.

2.3.6. डेवलपर टूल और विकल्पों के साथ काम करने की सुविधा

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

टेलीविज़न डिवाइस पर यह सुविधा लागू करना:

  • परफ़ेटो
    • [6.1/T-0-1] हमें /system/bin/perfetto दिखाना ज़रूरी है उस शेल उपयोगकर्ता की बाइनरी है जिसका cmdline अनुपालन करता है परफ़ेटो दस्तावेज़.
    • [6.1/T-0-2] परफ़ेटो बाइनरी को एक ऐसा प्रोटोबफ़ कॉन्फ़िगरेशन डालें, जो परफ़ेटो दस्तावेज़ होना चाहिए.
    • [6.1/T-0-3] परफ़ेटो बाइनरी को में तय स्कीमा का पालन करने वाला एक प्रोटोबफ़ ट्रेस आउटपुट करता है परफ़ेटो दस्तावेज़ होना चाहिए.
    • [6.1/T-0-4] परफ़ेटो की मदद से, यह जानकारी देना ज़रूरी है बाइनरी, कम से कम वे डेटा सोर्स जिन्हें परफ़ेटो दस्तावेज़ होना चाहिए.
    • [6.1/T-0-5] डीमन का पता लगाया गया परफ़ेटो यह नीति डिफ़ॉल्ट रूप से चालू होनी चाहिए (सिस्टम प्रॉपर्टी persist.traced.enable).

नई ज़रूरी शर्तें खत्म करना

2.4. स्मार्टवॉच के लिए ज़रूरी शर्तें

Android Watch डिवाइस का मतलब ऐसे Android डिवाइस से है जिसे इन कामों के लिए इस्तेमाल किया जाता है इसे कलाई पर पहन सकते हैं.

Android डिवाइस को लागू करने के तरीके को वॉच की कैटगरी में रखा जाता है, अगर वे यहां दी गई सभी ज़रूरी शर्तों को पूरा करते हैं जैसे:

  • स्क्रीन की डायगनल लंबाई 1.1 से 2.5 के बीच रखें इंच.
  • शरीर पर पहनने के लिए एक तरीका उपलब्ध कराया गया हो.

इस सेक्शन के बाकी हिस्से में बताई गई अन्य ज़रूरी शर्तें खास तौर पर Android के लिए हैं घड़ी डिवाइस पर लागू होता है

2.4.1. हार्डवेयर

स्मार्टवॉच के लिए लागू किए गए डिवाइस:

  • [7.1.1.1/W-0-1] ज़रूरी है कि आपकी स्क्रीन पर फ़ोन का डायगनल साइज़ 1.1 से 2.5 इंच के बीच होना चाहिए.

  • [7.2.3/W-0-1] ज़रूरी है कि उसमें Home फ़ंक्शन उपलब्ध हो उपयोगकर्ता को भेजना होगा. साथ ही, 'वापस जाएं' फ़ंक्शन को सेट करना होगा. हालांकि, उस स्थिति में नहीं जब वह UI_MODE_TYPE_WATCH में हो.

  • [7.2.4/W-0-1] टचस्क्रीन इनपुट पर काम करना ज़रूरी है.

  • [7.3.1/W-SR-1] 3-ऐक्सिस को शामिल करने का सुझाव दिया जाता है एक्सलरोमीटर.

अगर Watch डिवाइस पर Vulkan के साथ काम करने की सुविधा उपलब्ध है, तो ये:

यदि Watch उपकरण कार्यान् वयन में GPS/GNSS रिसीवर शामिल होता है और android.hardware.location.gps सुविधा का इस्तेमाल करके, ऐप्लिकेशन इस्तेमाल करने की क्षमता फ़्लैग करते हैं, तो:

  • [7.3.3/W-1-1] GNSS मेज़रमेंट को तुरंत रिपोर्ट करना ज़रूरी है मिल जाते हैं, भले ही GPS/GNSS से मिली किसी जगह की जानकारी अभी तक रिपोर्ट न की गई हो.
  • [7.3.3/W-1-2] जीएनएसएस स्यूडोरेंज और स्यूडोरेंज की रिपोर्ट करना ज़रूरी है स्थान का निर्धारण करने के बाद खुले आसमान की स्थितियों में, जबकि स्थिर या 0.2 मीटर प्रति सेकंड के वर्ग से कम के साथ मूविंग त्वरण, 20 मीटर के अंदर स्थिति की गणना करने के लिए पर्याप्त है और 0.2 मीटर प्रति सेकंड के अंदर, कम से कम 95% समय में.

अगर स्मार्टवॉच पर इस्तेमाल होने वाले डिवाइसों में 3-ऐक्सिस जाइरोस्कोप शामिल है, तो ये काम किए जा सकते हैं:

  • [7.3.4/W-2-1] ओरिएंटेशन में हुए बदलावों को मेज़र करने की सुविधा होना ज़रूरी है 1000 डिग्री प्रति सेकंड तक.

स्मार्टवॉच के लिए लागू किए गए डिवाइस:

  • [7.4.3/W-0-1] ब्लूटूथ के साथ काम करना ज़रूरी है.

  • [7.6.1/W-0-1] ज़रूरी है कि आपके पास कम से कम 1 जीबी हो ऐप्लिकेशन के निजी डेटा (यानी "/data" पार्टीशन) के लिए, नॉन-वोलाटाइल स्टोरेज उपलब्ध है.

  • [7.6.1/W-0-2] स्टोरेज 416 एमबी या इससे कम होना चाहिए कर्नेल और यूज़रस्पेस के लिए उपलब्ध होता है.

  • [7.8.1/W-0-1] माइक्रोफ़ोन होना ज़रूरी है.

  • [7.8.2/W] में ऑडियो आउटपुट हो सकता है.

2.4.2. मल्टीमीडिया

कोई अन्य ज़रूरी शर्त नहीं.

2.4.3. सॉफ़्टवेयर

स्मार्टवॉच के लिए लागू किए गए डिवाइस:

  • [3/W-0-1] सुविधा के बारे में एलान करना ज़रूरी है android.hardware.type.watch.
  • [3/W-0-2] uiMode के साथ काम करना ज़रूरी है = UI_Mode_TYPE_देखें.
  • [3.2.3.1/W-0-1] किसी एक को पहले से लोड करना ज़रूरी है या उससे ज़्यादा ऐप्लिकेशन या सेवा के कॉम्पोनेंट, इस ऐप्लिकेशन के तय किए गए सभी पब्लिक इंटेंट फ़िल्टर पैटर्न इंटेंट यहां दिए गए हैं.

स्मार्टवॉच के लिए लागू किए गए डिवाइस:

  • [3.8.4/W-SR-1] रखने का सुझाव दिया जाता है असिस्ट की कार्रवाई को मैनेज करने के लिए, डिवाइस पर Assistant को लागू करना होगा.

स्मार्टवॉच के लिए, android.hardware.audio.output के बारे में एलान करने वाले डिवाइस लागू करना फ़ीचर फ़्लैग:

  • [3.10/W-1-1] ज़रूरी है कि ये तीसरे पक्ष की सुलभता सुविधाएं इस्तेमाल करते हों सेवाओं.
  • [3.10/W-SR-1] को पहले से लोड करने का सुझाव दिया जाता है डिवाइस पर सुलभता सेवाओं की तुलना, जो किसी दूसरी सुविधा के बराबर या उससे ज़्यादा की जा सकती है स् विच ऐक्सेस और TalkBack (पहले से इंस्टॉल किए गए वर्शन के साथ काम करने वाली भाषाओं के लिए) टेक्स्ट-टू-स्पीच इंजन) के लिए उपलब्ध सुलभता सेवाएं TalkBack का ओपन सोर्स प्रोजेक्ट.

अगर स्मार्टवॉच के लिए सेट किए गए डिवाइस पर, android.hardware.audio.आउट फ़ंक्शन की रिपोर्ट दी जाती है, वे:

  • [3.11/W-SR-1] हमारी सलाह है कि डिवाइस पर उपलब्ध भाषाओं के साथ काम करने वाला TTS इंजन.

  • [3.11/W-0-1] को तीसरे पक्ष के टीटीएस इंजन.

2.4.4. परफ़ॉर्मेंस और पावर

अगर स्मार्टवॉच के लिए, डिवाइस की बैटरी को बेहतर बनाने वाली सुविधाएं शामिल की गई हैं, तो ऐसा मैनेजमेंट जो AOSP में शामिल है या शामिल की गई सुविधाओं का दायरा बढ़ाता है में शामिल हैं, तो वे:

  • [8.3/W-SR-1] हमारा सुझाव है कि आप उन सभी ऐप्लिकेशन को दिखाने के लिए ज़रूरी अधिकार जो ऐप्लिकेशन स्टैंडबाय के साथ उपलब्ध नहीं हैं और बैटरी सेव करने वाले मोड इस्तेमाल करें.
  • [8.3/W-SR-2] देने का सुझाव दिया जाता है बैटरी सेवर की सुविधा को चालू और बंद करने के लिए, उपयोगकर्ता के खर्चे.

स्मार्टवॉच के लिए लागू किए गए डिवाइस:

  • [8.4/W-0-1] ज़रूरी है कि हर कॉम्पोनेंट के लिए पावर प्रोफ़ाइल, जो इस्तेमाल की मौजूदा वैल्यू के बारे में बताती है हर हार्डवेयर कॉम्पोनेंट के लिए और बैटरी के तेज़ी से खर्च होने की समस्या की वजह से कॉम्पोनेंट, जैसा कि Android ओपन सोर्स प्रोजेक्ट की साइट में बताया गया है.
  • [8.4/W-0-2] सभी पावर की जानकारी देना ज़रूरी है मिलीमीटर घंटे (mAh) में खपत की वैल्यू.
  • [8.4/W-0-3] सीपीयू के पावर की जानकारी देना ज़रूरी है इस्तेमाल, हर प्रोसेस के यूआईडी के मुताबिक किया जाता है. Android ओपन सोर्स प्रोजेक्ट ने uid_cputime कर्नेल मॉड्यूल के लागू होने की वजह से ज़रूरी शर्तें.
  • [8.4/W-0-4] बैटरी का इस्तेमाल करना ज़रूरी है adb shell dumpsys batterystats पर उपलब्ध है शेल कमांड, ऐप्लिकेशन डेवलपर को भेजी जाएगी.
  • [8.4/W] एट्रिब्यूट को अगर हार्डवेयर कॉम्पोनेंट के लिए पावर सप्लाई का इस्तेमाल एट्रिब्यूट नहीं किया जा सकता, तो खुद हार्डवेयर कॉम्पोनेंट को ऐप्लिकेशन में बदलें.

2.4.5. सुरक्षा मॉडल

स्मार्टवॉच के लिए लागू किए गए डिवाइस:

  • [9/W-0-1] android.hardware.security.model.compatible का एलान करना ज़रूरी है सुविधा.

अगर स्मार्टवॉच के लिए लागू किए गए डिवाइसों में कई उपयोगकर्ता और android.hardware.telephony फ़ीचर फ़्लैग का एलान नहीं करते, वे:

  • [9.5/W-1-1] प्रतिबंधित प्रोफ़ाइलों का इस्तेमाल करना ज़रूरी है, एक ऐसी सुविधा है जिससे डिवाइस के मालिक, अतिरिक्त उपयोगकर्ताओं और उनके क्षमता. प्रतिबंधित प्रोफ़ाइल के साथ, डिवाइस के मालिक ये काम कर सकते हैं अतिरिक्त उपयोगकर्ताओं के काम करने के लिए, अलग-अलग एनवायरमेंट तुरंत सेट अप कर लें, को मैनेज करने की क्षमता के साथ-साथ, ये सुविधाएं इन एनवायरमेंट में उपलब्ध हैं.

अगर स्मार्टवॉच के लिए लागू किए गए डिवाइसों में कई उपयोगकर्ता और android.hardware.telephony फ़ीचर फ़्लैग का एलान करेगा, वे:

  • [9.5/W-2-1] प्रतिबंधित क्षेत्र के लिए काम नहीं करना चाहिए प्रोफ़ाइलें बनाएं. हालांकि, कंट्रोल के लिए एओएसपी को लागू करना ज़रूरी है का इस्तेमाल दूसरे उपयोगकर्ताओं को वॉइस कॉल और एसएमएस ऐक्सेस करने से रोकने के लिए किया जा सकता है.

अगर लागू किए जाने वाले डिवाइस में एक सुरक्षित लॉक स्क्रीन है और उसमें एक या एक से ज़्यादा ऐसे भरोसेमंद एजेंट शामिल हैं जो TrustAgentService System API को लागू करते हैं, तो वे:

  • [9.11.1/W-1-1] हर 72 घंटे में एक से ज़्यादा बार, उपयोगकर्ता को पुष्टि करने के लिए सुझाए गए मुख्य तरीकों में से किसी एक का इस्तेमाल करने के लिए कहना होगा. जैसे: पिन, पैटर्न, पासवर्ड.

2.5. वाहन संबंधित ज़रूरतें

Android Automotive लागू करना: इसका मतलब है, वाहन की मुख्य यूनिट Android के किसी हिस्से या पूरे सिस्टम के लिए ऑपरेटिंग सिस्टम के तौर पर और/या सूचना और मनोरंजन की सुविधा देने वाली सुविधा.

अगर Android डिवाइस पर ऐप्लिकेशन लागू करने के बारे में एलान किया जाता है, तो उसे Automotive की कैटगरी में रखा जाता है सुविधा android.hardware.type.automotive या नीचे दी गई सभी शर्तों को पूरा करें शर्तें.

  • वे ऑटोमोटिव वाहन के हिस्से के तौर पर एम्बेड किए गए हों या उससे प्लग किए जा सकते हों.
  • जब ड्राइवर की सीट की लाइन में मौजूद स्क्रीन को मुख्य डिसप्ले के तौर पर इस्तेमाल किया जा रहा हो.

इस सेक्शन के बाकी हिस्से में बताई गई अन्य ज़रूरी शर्तें खास तौर पर Android के लिए हैं वाहन संबंधित डिवाइस पर विज्ञापन लागू करना.

2.5.1. हार्डवेयर

वाहन संबंधित डिवाइस पर विज्ञापन लागू करना:

  • [7.1.1.1/A-0-1] स्क्रीन पर कम से कम छह अंक होने चाहिए इंच में तिरछा किया जा सकता है.
  • [7.1.1.1/A-0-2] स्क्रीन साइज़ का लेआउट होना ज़रूरी है आपका साइज़ कम से कम 750 dp x 480 dp होना चाहिए.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

अगर ऑटोमोटिव डिवाइस पर लागू किए जाने वाले डिवाइस, एक साथ कई उपयोगकर्ताओं के लिए एक साथ काम करते हैं (जहां एक समय में कई Android उपयोगकर्ता डिवाइस से इंटरैक्ट कर सकते हैं, अपने-अपने डिसप्ले का इस्तेमाल कर रही हैं. config_multiuserVisibleBackgroundUsers चालू है), वे:

  • [7.1.1.1/A-1-1] फ़ोन नंबर की एक अलग स्क्रीन होनी चाहिए हर व्यक्ति के डायगनल साइज़ में कम से कम 6 इंच मुख्य डिसप्ले. इसे इस रूप में टैग किया जाना चाहिए CarOccupantZoneManager.DISPLAY_TYPE_MAIN हर ऑक्यूपंट ज़ोन के लिए.
  • [7.1.1.1/A-1-2] स्क्रीन साइज़ का लेआउट होना ज़रूरी है हर मुख्य डिसप्ले के लिए, कम से कम 750 dp x 480 dp का रिज़ॉल्यूशन होना चाहिए.

नई ज़रूरी शर्तें खत्म करना

अगर वाहन संबंधित डिवाइस, OpenGL ES 3.1 के साथ काम करते हैं, तो वे:

  • [7.1.4.1/A-0-1] के लिए, यह जानकारी देना ज़रूरी है OpenGL ES 3.1 या इसके बाद का वर्शन.
  • [7.1.4.1/A-0-2] ज़रूरी है कि ये Vulkan 1.1 के साथ काम करते हों.
  • [7.1.4.1/A-0-3] इसमें Vulkan लोडर शामिल करना ज़रूरी है और सभी सिंबल एक्सपोर्ट करें.

अगर Automotive डिवाइसों में Vulkan के साथ काम करने की सुविधा शामिल है, तो ये काम किए जा सकते हैं:

वाहन संबंधित डिवाइस पर विज्ञापन लागू करना:

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

नई ज़रूरी शर्तें खत्म करना

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [7.2.3/A-0-1] ज़रूरी है होम और बैक फ़ंक्शन और 'मई' में दिए जा सकते हैं वापस जाएं और हाल ही के फ़ंक्शन.

नई ज़रूरी शर्तें खत्म करना

  • [7.2.3/A-0-2] आपको सामान्य और लंबे समय तक, दोनों तरह से प्रेस को भेजना होगा वापस जाएं फ़ंक्शन का इवेंट (KEYCODE_BACK) ऐप्लिकेशन को फ़ोरग्राउंड ऐप्लिकेशन से लिंक करना.
  • [7.3/A-0-1] इसे लागू करना और रिपोर्ट करना ज़रूरी है GEAR_SELECTION, NIGHT_MODE, PERF_VEHICLE_SPEED और PARKING_BRAKE_ON.
  • [7.3/A-0-2] NIGHT_MODE फ़्लैग, डैशबोर्ड के दिन/रात वाले मोड से मेल खाना चाहिए. साथ ही, फ़्लैग करने का मकसद स्क्रीन की रोशनी को अपने-आप घटाने-बढ़ाने वाला सेंसर इनपुट. ऐंबियंट लाइट सेंसर एक जैसा हो सकता है फ़ोटोमीटर के तौर पर सेव करें.
  • [7.3/A-0-3] सेंसर के बारे में ज़्यादा जानकारी वाला फ़ील्ड भरना ज़रूरी है TYPE_SENSOR_PLACEMENT को सेटअप किया जा सकता है.
  • [7.3/A-SR1] शायद जगह की जानकारी को खारिज किया गया हो जीपीएस/जीएनएसएस को अतिरिक्त सेंसर के साथ फ़्यूज़ करके. अगर Location को घातक नहीं माना गया है, इसलिए संबंधित सेंसर टाइप और/या वाहन के प्रॉपर्टी आईडी इस्तेमाल किया गया.
  • [7.3/A-0-4] जगह की जानकारी LocationManager#requestLocationLocation() के ज़रिए अनुरोध किया गया मैप से मेल खाना चाहिए.

  • [7.3.1/A-0-4] ज़रूरी है कि वह Android का पालन करे कार सेंसर कोऑर्डिनेट सिस्टम.

  • [7.3/A-SR-1] 3-ऐक्सिस को शामिल करने के लिए, बहुत ज़्यादा ज़रूरी है एक्सलरोमीटर और 3-ऐक्सिस जाइरोस्कोप.

  • [7.3/A-SR-2] लागू करने और रिपोर्ट करने के लिए STRONGLY_सुझाया गया तरीका इस्तेमाल किया गया TYPE_HEADING सेंसर.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

अगर ऑटोमोटिव डिवाइस पर लागू किए जाने वाले डिवाइस, एक साथ कई उपयोगकर्ताओं के लिए एक साथ काम करते हैं (जहां एक समय में कई Android उपयोगकर्ता डिवाइस से इंटरैक्ट कर सकते हैं, अपने-अपने डिसप्ले का इस्तेमाल कर रही हैं. config_multiuserVisibleBackgroundUsers चालू है), वे:

  • [7.3/A-1-1] NIGHT_MODE सभी डैशबोर्ड पर दिन/रात मोड चालू होने पर, वैल्यू को लगातार फ़्लैग करें सभी डिसप्ले शामिल हैं. इनमें पिछली सीट के डिसप्ले भी शामिल हैं.

नई ज़रूरी शर्तें खत्म करना

अगर वाहन संबंधित डिवाइस में एक्सलरोमीटर शामिल है, तो:

  • [7.3.1/A-1-1] इवेंट की रिपोर्ट, फ़्रीक्वेंसी के हिसाब से दी जा सकती है कम से कम 100 हर्ट्ज़.

अगर डिवाइस लागू करने के तरीके में 3-ऐक्सिस एक्सलरोमीटर शामिल है, तो वे:

  • [7.3.1/A-SR-1] हमारी सलाह है कि आप सीमित ऐक्सिस एक्सलरोमीटर के लिए कंपोज़िट सेंसर.

अगर Automotive डिवाइस में लागू किए गए एक्सलरोमीटर से कम 3 ऐक्सिस से:

  • [7.3.1/A-1-3] इसे लागू करना और रिपोर्ट करना ज़रूरी है TYPE_ACCELEROMETER_LIMITED_AXES सेंसर.
  • [7.3.1/A-1-4] इसे लागू करना और रिपोर्ट करना ज़रूरी है TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED सेंसर.

अगर वाहन संबंधित डिवाइस में जाइरोस्कोप शामिल है, तो:

  • [7.3.4/A-2-1] इवेंट की रिपोर्ट, फ़्रीक्वेंसी के हिसाब से दी जा सकती है कम से कम 100 हर्ट्ज़.
  • [7.3.4/A-2-3] ओरिएंटेशन में हुए बदलावों को मेज़र करने की सुविधा होनी चाहिए 250 डिग्री प्रति सेकंड तक.
  • [7.3.4/A-SR-1] को कॉन्फ़िगर करने का सुझाव दिया जाता है रिज़ॉल्यूशन को बढ़ाने के लिए, जाइरोस्कोप की माप की रेंज +/-250dps पर किया जा सकता है.

अगर वाहन संबंधित डिवाइस में 3-ऐक्सिस जाइरोस्कोप शामिल है, तो वे:

  • [7.3.4/A-SR-2] हमारी सलाह है कि आप सीमित ऐक्सिस जाइरोस्कोप के लिए कंपोज़िट सेंसर.

अगर वाहन संबंधित डिवाइस में तीन से कम ऐक्सिस वाला जाइरोस्कोप शामिल है, तो वे:

  • [7.3.4/A-4-1] इसे लागू करना और रिपोर्ट करना ज़रूरी है TYPE_GYROSCOPE_LIMITED_AXES सेंसर.
  • [7.3.4/A-4-2] इसे लागू करना और रिपोर्ट करना ज़रूरी है TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED सेंसर.

अगर Automotive डिवाइस में जीपीएस/जीएनएसएस रिसीवर शामिल है, लेकिन सेल्युलर नेटवर्क-आधारित डेटा कनेक्टिविटी शामिल न कर सकें, वे:

  • [7.3.3/A-3-1] जगह की जानकारी पहली बार में तय करना ज़रूरी है GPS/GNSS रिसीवर 60 सेकंड के अंदर 4+ दिनों में चालू या चालू हो जाता है.
  • [7.3.3/A-3-2] 'सबसे पहले ठीक करने के समय' की शर्तों को पूरा करना ज़रूरी है, क्योंकि 7.3.3/C-1-2 और 7.3.3/C-1-6 में बताया गया है जगह की जानकारी के अन्य अनुरोधों के लिए (उदाहरण के लिए, ऐसे अनुरोध जो पहली बार नहीं किए गए हैं) या 4 से ज़्यादा दिनों के बाद. 7.3.3/C-1-2 ज़रूरी शर्त यह मैसेज, आम तौर पर ऐसे वाहनों में मिलता है जिनमें मोबाइल नेटवर्क पर आधारित डेटा कनेक्टिविटी न हो. रिसीवर पर आधारित GNSS ऑर्बिट अनुमान का इस्तेमाल करके या अंतिम ज्ञात वाहन स्थान और साथ में मृतक की रेकन की क्षमता कम से कम 60 सेकंड, जो सटीक जगह पर दी गई हो 7.3.3/C-1-3 या दोनों का कॉम्बिनेशन.

अगर वाहन संबंधित डिवाइस में TYPE_HEADING सेंसर शामिल है, तो वे:

  • [7.3.4/A-4-3] इवेंट की रिपोर्ट, फ़्रीक्वेंसी के हिसाब से होनी चाहिए कम से कम 1 हर्ट्ज़.
  • [7.3.4/A-SR-3] इस कम से कम 10 हर्ट्ज़ की फ़्रीक्वेंसी होनी चाहिए.
  • यह सही उत्तर के हिसाब से होना चाहिए.
  • वाहन के स्थिर रहने पर भी उपलब्ध होना चाहिए.
  • रिज़ॉल्यूशन कम से कम 1 डिग्री होना चाहिए.

वाहन संबंधित डिवाइस पर विज्ञापन लागू करना:

  • [7.4.3/A-0-1] ब्लूटूथ के साथ काम करना ज़रूरी है और ऐसा होना चाहिए ब्लूटूथ LE के साथ काम करता है.
  • [7.4.3/A-0-2] Android Automotive को लागू करना ज़रूरी है कि ये ब्लूटूथ प्रोफ़ाइल काम करें:
    • हैंड्स-फ़्री प्रोफ़ाइल (एचएफ़पी) के ज़रिए फ़ोन कॉल करना.
    • ऑडियो डिस्ट्रिब्यूशन प्रोफ़ाइल (A2DP) पर मीडिया प्लेबैक.
    • रिमोट कंट्रोल प्रोफ़ाइल (एवीआरसीपी) पर मीडिया प्लेबैक कंट्रोल.
    • फ़ोन बुक ऐक्सेस प्रोफ़ाइल (पीबीएपी) का इस्तेमाल करके, संपर्क शेयर करना.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [7.4.3/A-SR-1] को सपोर्ट करने के लिए बहुत ज़्यादा सुझाव दिया जाता है अगर डिवाइस में ड्राइवर ऑक्यूपंट ज़ोन उपलब्ध है, तो मैसेज ऐक्सेस प्रोफ़ाइल (मैप) का इस्तेमाल करें.

नई ज़रूरी शर्तें खत्म करना

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

अगर ऑटोमोटिव डिवाइस पर लागू किए जाने वाले डिवाइस, एक साथ कई उपयोगकर्ताओं के लिए एक साथ काम करते हैं (जहां एक समय में कई Android उपयोगकर्ता डिवाइस से इंटरैक्ट कर सकते हैं, अपने-अपने डिसप्ले का इस्तेमाल कर रही हैं. config_multiuserVisibleBackgroundUsers चालू है), वे:

  • [7.4.3/A-1-1] ज़रूरी है कि यह स्वतंत्र रूप से काम करे और इसमें किसी तरह की रुकावट न आए अन्य उपयोगकर्ताओं के ब्लूटूथ का अनुभव.

नई ज़रूरी शर्तें खत्म करना

वाहन संबंधित डिवाइस पर विज्ञापन लागू करना:

  • [7.4.5/A] इसमें मोबाइल डेटा के साथ काम करने की सुविधा शामिल होनी चाहिए नेटवर्क पर आधारित डेटा कनेक्टिविटी.
  • [7.4.5/A] System API का इस्तेमाल किया जा सकता है इसके लिए NetworkCapabilities#NET_CAPABILITY_OEM_PAID कॉन्स्टेंट ऐसे नेटवर्क जो सिस्टम के ऐप्लिकेशन के लिए उपलब्ध होने चाहिए.

अगर डिवाइस में AM/FM ब्रॉडकास्ट रेडियो के लिए सहायता शामिल होती है और एक्सपोज़र किसी भी ऐप्लिकेशन की सुविधाओं का इस्तेमाल करने के लिए, वे:

  • [7.4/A-1-1] FEATURE_BROADCAST_RADIO के लिए, यह जानकारी देना ज़रूरी है.

पीछे वाले कैमरे का मतलब है, दुनिया की ओर वाला कैमरा, जो किसी भी जगह पर लगाया जा सकता है गाड़ी की जगह और उसका चेहरा वाहन के केबिन के बाहरी हिस्से की तरफ़ हो; यानी, यह वाहन की बॉडी के दूर की तरफ़ के इमेज सीन, जैसे कि रीयर व्यू कैमरा.

सामने का कैमरा यानी उपयोगकर्ता के लिए कैमरा जो किसी भी स्थान पर स्थित हो सकता है गाड़ी की जगह और उसका चेहरा वाहन के केबिन के अंदर होना चाहिए; बस हो गया उपयोगकर्ता की इमेज, जैसे कि वीडियो कॉन्फ़्रेंसिंग और मिलते-जुलते ऐप्लिकेशन.

वाहन संबंधित डिवाइस पर विज्ञापन लागू करना:

  • [7.5/A-SR-1] ऐसी सुविधाओं का इस्तेमाल करने का सुझाव दिया जाता है जिनमें एक या उससे ज़्यादा ऐसी चीज़ें शामिल हों जो पूरी दुनिया के लोगों को दिखती हैं कैमरे.
  • इनमें एक या उससे ज़्यादा लोगों के सामने वाले कैमरे शामिल हो सकते हैं.
  • [7.5/A-SR-2] का सुझाव दिया जाता है, ताकि एक साथ वीडियो स्ट्रीम करने की सुविधा का इस्तेमाल किया जा सके एक से ज़्यादा कैमरे सेट करने में मदद मिलती है.

अगर वाहन संबंधित डिवाइस में कम से कम एक कैमरा शामिल है, तो तो वे इस तरह के कैमरे के लिए:

  • [7.5/A-1-1] डिवाइस की स्क्रीन इस तरह से डिज़ाइन की जानी चाहिए कि कैमरे का लंबा डाइमेंशन एक सीध में हो Android ऑटोमोटिव सेंसर ऐक्सिस के X-Y प्लेन के साथ.
  • [7.5/A-SR-3] का फ़ोकस सही रखने या ईडीएएफ़ बनाने के लिए दिया जाता है (फ़ील्ड की एक्सटेंडेड डेप्थ) हार्डवेयर.
  • [7.5/A-1-2] एक मुख्य कैमरा होना चाहिए, जो दुनिया के सामने लगे कम से कम कैमरा आईडी वाला कैमरा.

अगर वाहन संबंधित डिवाइस में कम से कम एक कैमरा शामिल है, तो के लिए:

  • [7.5/A-2-1] लोगों के लिए इस्तेमाल किया जाने वाला मुख्य कैमरा, लोगों के लिए इस्तेमाल किया जाने वाला कैमरा होना चाहिए जिनका कैमरा आईडी सबसे कम हो.
  • इसे इस तरह से डिज़ाइन किया जा सकता है कि कैमरे का लंबा डाइमेंशन X-Y के साथ अलाइन हो ऑटोमोटिव सेंसर ऐक्सिस की इमेज.

अगर वाहन संबंधित डिवाइस में कोई कैमरा शामिल है, जिसे इसके ज़रिए ऐक्सेस किया जा सकता है android.hardware.Camera या android.hardware.camera2 एपीआई का इस्तेमाल करने पर:

  • [7.5/A-3-1] सेक्शन 7.5 में दिए गए मुख्य कैमरे से जुड़ी ज़रूरी शर्तों का पालन करना ज़रूरी है.

अगर वाहन संबंधित डिवाइस में कोई ऐसा कैमरा इस्तेमाल किया गया है जिसे ऐक्सेस नहीं किया जा सकता ऐसा android.hardware.Camera या android.hardware.camera2 एपीआई के ज़रिए करें. इसके बाद वे:

  • [7.5/A-4-1] एक्सटेंडेड व्यू सिस्टम सर्विस से ऐक्सेस किया जाना ज़रूरी है.

अगर वाहन संबंधित डिवाइस में एक या एक से ज़्यादा कैमरे, इसके ज़रिए ऐक्सेस किए जा सकते हैं एक्सटेंडेड व्यू सिस्टम सर्विस, ऐसे कैमरे के लिए:

  • [7.5/A-5-1] कैमरे की झलक को घुमाना या हॉरिज़ॉन्टल तौर पर मिरर नहीं करना चाहिए.
  • [7.5/A-SR-4] का रिज़ॉल्यूशन कम से कम 1.3 पर रखने का सुझाव दिया जाता है मेगापिक्सल.

अगर वाहन संबंधित डिवाइस में एक या एक से ज़्यादा कैमरे लागू किए जाते हैं, जिनमें एक्सटेंडेड व्यू सिस्टम सर्विस और android.hardware.Camera, दोनों से ऐक्सेस किया जा सकता है या android.hardware.Camera2 API को इंस्टॉल करते हैं, तो ऐसे कैमरे के लिए वे:

  • [7.5/A-6-1] आपको एक ही कैमरा आईडी की शिकायत करनी होगी.

अगर वाहन संबंधित डिवाइस लागू करने के लिए मालिकाना हक वाला Camera API उपलब्ध कराया जाता है, तो ये काम किए जा सकते हैं:

  • [7.5/A-7-1] इस तरह के कैमरा एपीआई को लागू करने के लिए android.hardware.camera2 एपीआई या एक्सटेंडेड व्यू सिस्टम एपीआई.

वाहन संबंधित डिवाइस पर विज्ञापन लागू करना:

  • [7.6.1/A-0-1] स्टोरेज में कम से कम 4 जीबी का होना चाहिए ऐप्लिकेशन के निजी डेटा के लिए, नॉन-वोलाटाइल स्टोरेज उपलब्ध है (/data विभाजन).

  • [7.6.1/A] डेटा पार्टिशन को फ़ॉर्मैट करना चाहिए हैं, ताकि फ़्लैश स्टोरेज पर बेहतर परफ़ॉर्मेंस और लंबे समय तक काम करने में मदद मिल सके (उदाहरण के लिए, f2fs फ़ाइल सिस्टम का इस्तेमाल करके).

अगर वाहन संबंधित डिवाइस लागू करने की सुविधा, किसी नहीं हटाए जा सकने वाले इंटरनल स्टोरेज का एक हिस्सा हैं, तो उन्हें:

  • [7.6.1/A-SR-1] को कम करने के लिए, बहुत ज़्यादा सुझाव दिया जाता है बाहरी स्टोरेज पर की गई कार्रवाइयों पर I/O ओवरहेड, उदाहरण के लिए: SDCardFS का इस्तेमाल करके.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

अगर ऑटोमोटिव डिवाइस पर लागू किए जाने वाले डिवाइस, एक साथ कई उपयोगकर्ताओं के लिए एक साथ काम करते हैं (जहां एक समय में कई Android उपयोगकर्ता डिवाइस से इंटरैक्ट कर सकते हैं, अपने-अपने डिसप्ले का इस्तेमाल कर रही हैं. config_multiuserVisibleBackgroundUsers चालू है), वे:

  • [7.6.1/A-1-1] एक एएओएस इंस्टेंस पर, नॉन-वोलेटाइल स्टोरेज के हर एक साथ मिलने वाले Android उपयोगकर्ता के लिए कम से कम 4 जीबी ऐप्लिकेशन निजी डेटा (/data विभाजन) के लिए उपलब्ध है.

नई ज़रूरी शर्तें खत्म करना

अगर Automotive डिवाइस में 64-बिट लागू होते हैं:

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [7.6.1/A-2-1] कर्नेल में उपलब्ध मेमोरी और यूज़रस्पेस कम से कम 816 एमबी होना चाहिए हर मुख्य डिसप्ले पर अगर यहां दी गई किसी भी तरह की सघनता का इस्तेमाल किया जाता है:

    • छोटी/सामान्य स्क्रीन पर 280 डीपीआई या उससे कम
    • ज़्यादा बड़ी स्क्रीन पर ldpi या उससे कम
    • बड़ी स्क्रीन पर mdpi या कम
  • [7.6.1/A-2-2] कर्नेल के लिए उपलब्ध मेमोरी और यूज़रस्पेस कम से कम 944 एमबी होना चाहिए हर मुख्य डिसप्ले पर अगर यहां दी गई किसी भी तरह की सघनता का इस्तेमाल किया जाता है:

    • छोटी/सामान्य स्क्रीन पर xhdpi या उससे ज़्यादा
    • बड़ी स्क्रीन पर hdpi या उससे ज़्यादा
    • ज़्यादा बड़ी स्क्रीन के लिए mdpi या उससे ज़्यादा
  • [7.6.1/A-2-3] कर्नेल में उपलब्ध मेमोरी और यूज़रस्पेस कम से कम 1280 एमबी होना चाहिए हर मुख्य डिसप्ले पर अगर यहां दी गई किसी भी तरह की सघनता का इस्तेमाल किया जाता है:

    • छोटी/सामान्य स्क्रीन पर 400 डीपीआई या उससे ज़्यादा
    • बड़ी स्क्रीन पर xhdpi या उससे ज़्यादा
    • ज़्यादा बड़ी स्क्रीन पर tvdpi या उसके बाद का वर्शन
  • [7.6.1/A-2-4] कर्नेल के लिए उपलब्ध मेमोरी और यूज़रस्पेस कम से कम 1824 एमबी होना चाहिए हर मुख्य डिसप्ले पर अगर यहां दी गई किसी भी तरह की सघनता का इस्तेमाल किया जाता है:

    • छोटी/सामान्य स्क्रीन पर 560 डीपीआई या उससे ज़्यादा
    • बड़ी स्क्रीन पर 400 डीपीआई या उससे ज़्यादा
    • ज़्यादा बड़ी स्क्रीन पर xhdpi या उससे ज़्यादा

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

नई ज़रूरी शर्तें खत्म करना

वाहन संबंधित डिवाइस पर विज्ञापन लागू करना:

  • [7.7.1/A] इसमें ऐसा यूएसबी पोर्ट होना चाहिए जो सहायक डिवाइस (जैसे, कीबोर्ड, माउस, मॉनिटर, वेबकैम वगैरह) मोड के साथ काम करता हो.

वाहन संबंधित डिवाइस पर विज्ञापन लागू करना:

  • [7.8.1/A-0-1] माइक्रोफ़ोन होना ज़रूरी है.

वाहन संबंधित डिवाइस पर विज्ञापन लागू करना:

  • [7.8.2/A-0-1] ज़रूरी है कि आपके पास ऑडियो आउटपुट हो और जिसमें android.hardware.audio.output.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

अगर ऑटोमोटिव डिवाइस पर लागू किए जाने वाले डिवाइस, एक साथ कई उपयोगकर्ताओं के लिए एक साथ काम करते हैं (जहां एक समय में कई Android उपयोगकर्ता डिवाइस से इंटरैक्ट कर सकते हैं, अपने-अपने डिसप्ले का इस्तेमाल कर रही हैं. config_multiuserVisibleBackgroundUsers चालू है), वे:

  • [7.8.2/A-1-1] हर मुख्य साइट के लिए एक ऑडियो आउटपुट डिवाइस होना ज़रूरी है एक साथ कई उपयोगकर्ता सिस्टम को दिखाने के लिए.
  • [7.8.2/A-1-2] ड्राइवर का ऑडियो ज़ोन होना चाहिए, जो ग्लोबल केबिन स्पीकर. सामने वाले यात्री ज़ोन से ड्राइवर का ऑडियो शेयर किया जा सकता है ज़ोन या अपना खुद का ऑडियो आउटपुट हो सकता है.

नई ज़रूरी शर्तें खत्म करना

2.5.2. मल्टीमीडिया

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

  • [5.1/A-0-1] MPEG-4 एएसी प्रोफ़ाइल (AAC LC)
  • [5.1/A-0-2] MPEG-4 HE AAC प्रोफ़ाइल (AAC+)
  • [5.1/A-0-3] AAC ELD (कम देरी वाले AAC)

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

  • [5.2/A-0-1] H.264 एवीसी
  • [5.2/A-0-2] VP8

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

  • [5.3/A-0-1] H.264 एवीसी
  • [5.3/A-0-2] MPEG-4 SP
  • [5.3/A-0-3] VP8
  • [5.3/A-0-4] VP9

वाहन संबंधित डिवाइस लागू करने पर ज़ोर दिया जाता है, ताकि वीडियो डिकोड करने की प्रोसेस नीचे दी गई है:

  • [5.3/A-SR-1] H.265 एचईवीसी

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

अगर ऑटोमोटिव डिवाइस पर लागू किए जाने वाले डिवाइस, एक साथ कई उपयोगकर्ताओं के लिए एक साथ काम करते हैं (जहां एक समय में कई Android उपयोगकर्ता डिवाइस से इंटरैक्ट कर सकते हैं, अपने-अपने डिसप्ले का इस्तेमाल कर रही हैं. config_multiuserVisibleBackgroundUsers चालू है), वे:

  • [5.5.3/A-1-1] के लिए, एक जैसे वॉल्यूम कर्व को तय करना ज़रूरी है सभी ऑडियो आउटपुट स्ट्रीम, एक ही वॉल्यूम-ग्रुप में मैप की जाती हैं. इसे कार ऑडियो कॉन्फ़िगरेशन फ़ाइल.

नई ज़रूरी शर्तें खत्म करना

2.5.3. सॉफ़्टवेयर

वाहन संबंधित डिवाइस पर विज्ञापन लागू करना:

  • [3/A-0-1] सुविधा के बारे में एलान करना ज़रूरी है android.hardware.type.automotive.

  • [3/A-0-2] uiMode = UI_MODE_TYPE_CAR के साथ काम करना ज़रूरी है.

  • [3/A-0-3] ज़रूरी है कि वे इसमें सभी सार्वजनिक एपीआई के साथ काम करते हों android.car.* नेमस्पेस.

अगर ऑटोमोटिव डिवाइस को लागू करने के लिए मालिकाना हक वाला एपीआई उपलब्ध कराया जाता है, तो android.car.CarPropertyManager को इसके साथ android.car.VehiclePropertyIds, वे:

  • [3/A-1-1] सिस्टम में कोई खास अधिकार अटैच नहीं करना चाहिए ऐप्लिकेशन में इन प्रॉपर्टी का इस्तेमाल करने पर रोक लगाई जा सकती है या तीसरे पक्ष के ऐप्लिकेशन इन प्रॉपर्टी का इस्तेमाल करने से रोका जा सकता है.
  • [3/A-1-2] वाहन में पहले से मौजूद किसी प्रॉपर्टी की नकल नहीं की जानी चाहिए यह सुविधा SDK टूल में मौजूद है.

वाहन संबंधित डिवाइस पर विज्ञापन लागू करना:

  • [3.2.1/A-0-1] ज़रूरी है कि ये सभी अनुमतियों की जानकारी, जिसे ऑटोमोटिव अनुमति से जुड़े रेफ़रंस पेज पर बताया गया है.

  • [3.2.3.1/A-0-1] किसी एक को पहले से लोड करना होगा या ज़्यादा ऐप्लिकेशन या सेवा कॉम्पोनेंट के लिए, इंटेंट हैंडलर के साथ इन ऐप्लिकेशन इंटेंट के हिसाब से, पब्लिक इंटेंट फ़िल्टर पैटर्न को तय किया गया है यहां दी गई है.

  • [3.4.1/A-0-1] ज़रूरी है कि android.webkit.Webview एपीआई को लागू करना.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [3.8/A-0-1] गतिविधियों को लॉन्च करने और किसी भी डिसप्ले पर यूज़र इंटरफ़ेस (यूआई) का ऐक्सेस रखने वाले सेकंडरी उपयोगकर्ताओं को गतिविधियां लॉन्च करने की अनुमति नहीं देनी चाहिए.

अगर ऑटोमोटिव डिवाइस पर लागू किए जाने वाले डिवाइस, एक साथ कई उपयोगकर्ताओं के लिए एक साथ काम करते हैं (जहां एक समय में कई Android उपयोगकर्ता डिवाइस से इंटरैक्ट कर सकते हैं, अपने-अपने डिसप्ले का इस्तेमाल कर रही हैं. config_multiuserVisibleBackgroundUsers चालू है) पूरे सेकंडरी उपयोगकर्ताओं के लिए, जो मौजूदा फ़ोरग्राउंड उपयोगकर्ता नहीं हैं लेकिन डिसप्ले के लिए यूज़र इंटरफ़ेस (यूआई) का ऐक्सेस है, तो:

  • [3.8/A-1-1] ज़रूरी है UserRestrictions की पहले से तय की गई इस सूची को लागू करें:

  • [3.8/A-1-2] उस उपयोगकर्ता को अनुमति नहीं देनी चाहिए किसी भी अन्य उपयोगकर्ता के लिए निम्न सेटिंग बदलने के लिए, सेटिंग या एपीआई के ज़रिए:

    • दिन/रात वाला मोड
    • स्थान-भाषा
    • date
    • समय
    • समय क्षेत्र
    • डिसप्ले रंग की सुविधाएं (जिनमें चमक, नाइट लाइट, डिजिटल वेलबीइंग को ग्रेस्केल और चमकदार रंगों को कम करने की सुविधा)

नई ज़रूरी शर्तें खत्म करना

वाहन संबंधित डिवाइस पर विज्ञापन लागू करना:

  • [3.8.3/A-0-1] दिखाना ज़रूरी है ऐसी सूचनाएं जो Notification.CarExtender का इस्तेमाल करती हैं तीसरे पक्ष के ऐप्लिकेशन के अनुरोध करने पर एपीआई.

  • [3.8.4/A-SR-1] हमारा सुझाव है असिस्ट की कार्रवाई को मैनेज करने के लिए, डिवाइस पर Assistant को लागू करना होगा.

अगर Automotive डिवाइस में पुश-टू-टॉक बटन शामिल है, तो ये:

  • [3.8.4/A-1-1] आपको पुश-टू-टॉक बटन को भी क्लिक किया जा सकता है. उपयोगकर्ता का चुना गया असिस्टेंट ऐप्लिकेशन. दूसरे शब्दों में, वह ऐप्लिकेशन जो इसे लागू करता है VoiceInteractionService.

वाहन संबंधित डिवाइस पर विज्ञापन लागू करना:

  • [3.8.3.1/A-0-1] ज़रूरी है Notifications on Automotive OS में बताए गए तरीके से संसाधनों को रेंडर करना एसडीके से जुड़े दस्तावेज़.
  • [3.8.3.1/A-0-2] दिखाना ज़रूरी है सूचना से जुड़ी कार्रवाइयों के लिए, इसके ज़रिए दी गई सूचनाओं के बजाय 'चलाएं' और 'म्यूट करें' बटन पर क्लिक करें Notification.Builder.addAction()
  • [3.8.3.1/A] रिच मैनेजमेंट टास्क का इस्तेमाल करना. जैसे, हर सूचना चैनल से जुड़े कंट्रोल. कंट्रोल कम करने के लिए, हर ऐप्लिकेशन के लिए यूज़र इंटरफ़ेस (यूआई) की सुविधा का इस्तेमाल किया जा सकता है.

अगर वाहन संबंधित डिवाइस लागू करने की प्रक्रिया, उपयोगकर्ता एचएएल प्रॉपर्टी के साथ काम करती है, तो वे:

वाहन संबंधित डिवाइस पर विज्ञापन लागू करना:

  • [3.14/A-0-1] सहायता पाने के लिए, यूज़र इंटरफ़ेस (यूआई) फ़्रेमवर्क शामिल करना ज़रूरी है तीसरे पक्ष के ऐसे ऐप्लिकेशन जो सेक्शन में बताए गए तरीके से, मीडिया एपीआई का इस्तेमाल करते हैं 3.14.
  • [3.14/A-0-2] लोगों को सुरक्षित तरीके से इंटरैक्ट करने की सुविधा देना ज़रूरी है मीडिया ऐप्लिकेशन के साथ गाड़ी चलाते समय.
  • [3.14/A-0-3] ज़रूरी है कि CAR_INTENT_ACTION_MEDIA_TEMPLATE इंप्लिसिट इंटेंट ऐक्शन के साथ CAR_EXTRA_MEDIA_PACKAGE अतिरिक्त.
  • [3.14/A-0-4] ज़रूरी शर्तें पूरी करने के बाद, किसी मीडिया ऐप्लिकेशन को प्राथमिकता गतिविधि, हालांकि, इसे सिर्फ़ तब चालू करना चाहिए, जब कार के उपयोगकर्ता अनुभव से जुड़ी पाबंदियां लागू न हों.
  • [3.14/A-0-5] ज़रूरी है गड़बड़ी के मैसेज मीडिया ऐप्लिकेशन द्वारा सेट किया गया हो, और उसे वैकल्पिक अतिरिक्त सुविधाओं का समर्थन करना चाहिए ERROR_RESOLUTION_ACTION_LABEL और ERROR_RESOLUTION_ACTION_INTENT.
  • [3.14/A-0-6] ज़रूरी है कि वे इन-ऐप्लिकेशन खोज की सुविधा इस्तेमाल कर सकें जिनमें खोजने की सुविधा काम करती है.
  • [3.14/A-0-7] ज़रूरी है कि CONTENT_STYLE_BROWSABLE_HINT और CONTENT_STYLE_PLAYABLE_HINT MediaBrowser दिखाते समय परिभाषाएं हैरारकी है.

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

  • [3.14/A-1-1] मीडिया सेवाओं को शामिल करना और उन्हें खोलना ज़रूरी है के साथ CAR_INTENT_ACTION_MEDIA_TEMPLATE इंटेंट.

वाहन संबंधित डिवाइस पर विज्ञापन लागू करना:

  • [3.8/A] ऐप्लिकेशन पर पाबंदी लगाई जा सकती है वीडियो को फ़ुल स्क्रीन मोड में चालू करने के अनुरोध सबमिट करना ज़रूरी है, जैसा कि immersive documentation में बताया गया है.
  • [3.8/A] स्टेटस बार को बनाए रखा जा सकता है और पर टैप करें.
  • [3.8/A] ऐप्लिकेशन पर पाबंदी लगाई जा सकती है सिस्टम के यूज़र इंटरफ़ेस (यूआई) एलिमेंट के पीछे के रंग बदलने के अनुरोध करता है, ताकि यह पक्का किया जा सके कि वे एलिमेंट हमेशा साफ़ तौर पर दिखते हों.

2.5.4. परफ़ॉर्मेंस और पावर

वाहन संबंधित डिवाइस पर विज्ञापन लागू करना:

  • [8.2/A-0-1] ज़रूरी है कि आप हर प्रोसेस के यूआईडी के हिसाब से बाइट को नॉन-वोलेटाइल स्टोरेज में पढ़ा और लिखा जाता है, ताकि डेवलपर के लिए सिस्टम एपीआई के ज़रिए आंकड़े उपलब्ध होते हैं android.car.storagemonitoring.CarStorageMonitoringManager. द Android ओपन सोर्स प्रोजेक्ट, uid_sys_stats कर्नेल मॉड्यूल की ज़रूरी शर्तें पूरी करता है.
  • [8.3/A-1-3] गराज मोड की सुविधा काम करनी चाहिए.
  • [8.3/A] कम से कम समय तक गराज मोड में रहना चाहिए हर ड्राइव के 15 मिनट बाद जब तक:
    • बैटरी खत्म हो गई है.
    • कुछ समय से इस्तेमाल में न होने पर, कोई जॉब शेड्यूल नहीं किया जाता.
    • ड्राइवर गराज मोड से बाहर निकल जाता है.
  • [8.4/A-0-1] ज़रूरी है कि हर कॉम्पोनेंट के लिए पावर प्रोफ़ाइल, जो इस्तेमाल की मौजूदा वैल्यू के बारे में बताती है हर हार्डवेयर कॉम्पोनेंट के लिए और बैटरी के तेज़ी से खर्च होने की समस्या की वजह से कॉम्पोनेंट, जैसा कि Android ओपन सोर्स प्रोजेक्ट की साइट में बताया गया है.
  • [8.4/A-0-2] सभी पावर की जानकारी देना ज़रूरी है मिलीमीटर घंटे (mAh) में खपत की वैल्यू.
  • [8.4/A-0-3] सीपीयू के पावर की रिपोर्ट करना ज़रूरी है इस्तेमाल, हर प्रोसेस के यूआईडी के मुताबिक किया जाता है. Android ओपन सोर्स प्रोजेक्ट ने uid_cputime कर्नेल मॉड्यूल के लागू होने की वजह से ज़रूरी शर्तें.
  • [8.4/A] इसे अगर हार्डवेयर कॉम्पोनेंट के लिए पावर सप्लाई का इस्तेमाल एट्रिब्यूट नहीं किया जा सकता, तो खुद हार्डवेयर कॉम्पोनेंट को ऐप्लिकेशन में बदलें.
  • [8.4/A-0-4] बैटरी का इस्तेमाल करना ज़रूरी है adb shell dumpsys batterystats पर उपलब्ध है शेल कमांड, ऐप्लिकेशन डेवलपर को भेजी जाएगी.

2.5.5. सुरक्षा मॉडल

अगर वाहन संबंधित डिवाइस को लागू करने की सुविधा एक से ज़्यादा उपयोगकर्ताओं के साथ काम करती है, तो वे:

अगर वाहन संबंधित डिवाइस पर लागू होने वाले android.hardware.microphone का एलान किया जाता है, तो वे:

  • [9.8.2/A-1-1] माइक्रोफ़ोन इंंडिकेटर दिखाना ज़रूरी है, जब कोई ऐप्लिकेशन, माइक्रोफ़ोन के ऑडियो डेटा को ऐक्सेस कर रहा है, लेकिन माइक्रोफ़ोन को सिर्फ़ HotwordDetectionService, SOURCE_HOTWORD से ऐक्सेस किया जाता है, ContentCaptureService या असाइन की गई भूमिकाओं को होल्ड करने वाले ऐप्लिकेशन सीडीडी आइडेंटिफ़ायर [C-4-X] के साथ सेक्शन 9.1.
  • [9.8.2/A-1-2] माइक्रोफ़ोन इंडिकेटर को नहीं छिपाया जाना चाहिए ऐसे सिस्टम ऐप्लिकेशन जिनमें यूज़र इंटरफ़ेस या डायरेक्ट यूज़र इंटरैक्शन दिखता हो.
  • [9.8.2/A-1-3] सभी लोगों के लिए माइक्रोफ़ोन का उपयोग करें.

अगर वाहन संबंधित डिवाइस पर लागू होने वाले android.hardware.camera.any का एलान किया जाता है, तो वे:

  • [9.8.2/A-2-1] कैमरा इंंडिकेटर तब दिखाना ज़रूरी है, जब ऐप लाइव कैमरे का डेटा ऐक्सेस कर रहा है, लेकिन तब नहीं जब कैमरा सिर्फ़ इसमें बताई गई भूमिकाओं को होल्ड करने वाले ऐप्लिकेशन से ऐक्सेस किया जाता है सेक्शन 9.1 की अनुमतियां सीडीडी आइडेंटिफ़ायर [C-4-X] के साथ.
  • [9.8.2/A-2-2] कैमरा इंडिकेटर को नहीं छिपाया जाना चाहिए ऐसे सिस्टम ऐप्लिकेशन जिनमें यूज़र इंटरफ़ेस या डायरेक्ट यूज़र इंटरैक्शन दिखता हो.
  • [9.8.2/A-2-3] लोगों को Settings ऐप्लिकेशन में कैमरा टॉगल करने की सुविधा देनी होगी.
  • [9.8.2/A-2-4] कैमरे का इस्तेमाल करके, हाल ही में इस्तेमाल किए गए और चालू ऐप्लिकेशन को 'वापस आया गया' के तौर पर दिखाना ज़रूरी है PermissionManager.getIndicatorAppOpUsageData() से, सभी के साथ एट्रिब्यूशन मैसेज दिखेंगे.

वाहन संबंधित डिवाइस पर विज्ञापन लागू करना:

  • [9/A-0-1] android.hardware.security.model.compatible का एलान करना ज़रूरी है सुविधा.
  • [9.11/A-0-1] कीस्टोर को लागू करने के तरीके का बैक अप लेना ज़रूरी है एक आइसोलेटेड एक्ज़ीक्यूशन एनवायरमेंट के साथ.
  • [9.11/A-0-2] आरएसए, एईएस, ECDSA और HMAC क्रिप्टोग्राफ़िक एल्गोरिदम और MD5, SHA-1, और SHA-2 फ़ैमिली हैश फ़ंक्शन, Android कीस्टोर सिस्टम के साथ काम करने वाले एल्गोरिदम ऐसे क्षेत्र में मौजूद होते हैं, जिसे इस पर चलने वाले कोड से सुरक्षित रूप से अलग कर दिया जाता है कर्नेल और उसके ऊपर का हिस्सा. सिक्योर आइसोलेशन से सभी संभावित तरीकों को ब्लॉक करना चाहिए जिससे कर्नेल या यूज़रस्पेस कोड, आइसोलेटेड एनवायरमेंट, जिसमें डीएमए भी शामिल हैं. अपस्ट्रीम Android ओपन सोर्स प्रोजेक्ट (AOSP) इस ज़रूरी शर्त को पूरा करने के लिए Trusty लागू करने की प्रोसेस का इस्तेमाल करता है. हालांकि, यह अन्य ARM TrustZone पर आधारित समाधान या तीसरे पक्ष की सुरक्षित समीक्षा एक उचित हायपरवाइज़र-आधारित आइसोलेशन लागू करना वैकल्पिक है के विकल्प.
  • [9.11/A-0-3] लॉक स्क्रीन पर काम करना ज़रूरी है पुष्टि करने की प्रक्रिया को, एक ही जगह पर रन करने के दौरान सफलतापूर्वक, पुष्टि करने वाली कुंजियों का इस्तेमाल करने की अनुमति दें. लॉक स् क्रीन क्रेडेंशियल को इस तरह से सेव किया जाना चाहिए कि सिर्फ़ अलग-अलग तरीके से एक्ज़ीक्यूट किया जा सके लॉक स्क्रीन ऑथेंटिकेशन करने के लिए उपलब्ध वातावरण. अपस्ट्रीम Android ओपन सोर्स प्रोजेक्ट गेटकीपर हार्डवेयर ऐब्स्ट्रैक्शन लेयर (एचएएल) और Trusty शामिल है, जिसका इस्तेमाल इस ज़रूरत को पूरा करने के लिए किया जा सकता है.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [9.11/A-0-4] कुंजी को प्रमाणित करने की सुविधा का इस्तेमाल करना ज़रूरी है, जहां प्रमाणित करने वाली साइनिंग कुंजी को सुरक्षित हार्डवेयर से सुरक्षित किया गया है और साइनिंग कुंजी को सुरक्षित हार्डवेयर में किया जाता है. प्रमाणित करने के लिए हस्ताक्षर करने वाली कुंजी के बीच शेयर की जानी चाहिए सुरक्षा कुंजियों को रोकने के लिए, डिवाइसों की संख्या काफ़ी ज़्यादा होनी चाहिए रोका गया इसका इस्तेमाल हमेशा के लिए किया जा रहा है डिवाइस आइडेंटिफ़ायर. इस शर्त को पूरा करने का एक तरीका यह है कि अगर किसी SKU की कम से कम 1,00,000 यूनिट को बनाया गया. अगर किसी SKU की 1,00,000 से ज़्यादा इकाइयां बनाई जाती हैं, तो हर 1,00,000 यूनिट के लिए कुंजी का इस्तेमाल किया जा सकता है.

नई ज़रूरी शर्तें खत्म करना

ध्यान दें कि अगर किसी डिवाइस पर लागू करने की सुविधा को पहले ही किसी Android डिवाइस पर लॉन्च किया जा चुका है वर्शन न हो, तो ऐसे डिवाइस के लिए कीस्टोर ज़रूरी शर्तें पूरी नहीं करता एक्ज़ीक्यूशन के अलग-अलग एनवायरमेंट का इस्तेमाल किया जाता है और मुख्य पुष्टि के साथ काम किया जाता है, ऐसा तब तक किया जा सकता है, जब तक कि यह android.hardware.fingerprint सुविधा के बारे में न बताता हो. इस सुविधा के लिए ज़रूरी है कि कीस्टोर एक आइसोलेटेड एक्ज़ीक्यूशन एनवायरमेंट का इस्तेमाल करके सुरक्षित किया गया है.

वाहन संबंधित डिवाइस पर विज्ञापन लागू करना:

  • [9.14/A-0-1] मैसेज को सुरक्षित रखना ज़रूरी है Android फ़्रेमवर्क के व्हीकल सबसिस्टम से लिया गया था, जैसे कि अनुमति वाले मैसेज की अनुमति वाला मैसेज टाइप और मैसेज के स्रोत.
  • [9.14/A-0-2] इस टीम के ख़िलाफ़ वॉचडॉग की ज़रूरत थी ऐसा कॉन्टेंट जिसमें Android फ़्रेमवर्क या तीसरे पक्ष के ऐप्लिकेशन की ओर से सेवा के हमलों से इनकार किया गया हो. यह ट्रैफ़िक से वाहन के नेटवर्क में आने वाले नुकसान पहुंचाने वाले सॉफ़्टवेयर से सुरक्षा करता है, इसकी वजह से, गाड़ी के सबसिस्टम खराब हो सकते हैं.

2.5.6. डेवलपर टूल और विकल्पों के साथ काम करने की सुविधा

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

वाहन संबंधित डिवाइस पर विज्ञापन लागू करना:

  • परफ़ेटो
    • [6.1/A-0-1] /system/bin/perfetto को सार्वजनिक करना ज़रूरी है उस शेल उपयोगकर्ता की बाइनरी है जिसका cmdline अनुपालन करता है परफ़ेटो दस्तावेज़.
    • [6.1/A-0-2] परफ़ेटो बाइनरी को एक ऐसा प्रोटोबफ़ कॉन्फ़िगरेशन डालें, जो परफ़ेटो दस्तावेज़ होना चाहिए.
    • [6.1/A-0-3] परफ़ेटो बाइनरी को इस तरह लिखना ज़रूरी है में तय स्कीमा का पालन करने वाला एक प्रोटोबफ़ ट्रेस आउटपुट करता है परफ़ेटो दस्तावेज़ होना चाहिए.
    • [6.1/A-0-4] परफ़ेटो की मदद से, यह जानकारी देना ज़रूरी है बाइनरी, कम से कम वे डेटा सोर्स जिन्हें परफ़ेटो दस्तावेज़ होना चाहिए.
    • [6.1/A-0-5] डीमन का पता लगाया गया परफ़ेटो यह नीति डिफ़ॉल्ट रूप से चालू होनी चाहिए (सिस्टम प्रॉपर्टी persist.traced.enable).

नई ज़रूरी शर्तें खत्म करना

2.6. टैबलेट की आवश्यकताएं

Android टैबलेट डिवाइस का मतलब ऐसे Android डिवाइस से है जो इसे लागू करता है आम तौर पर ये सभी शर्तें पूरी करता है:

  • दोनों हाथों को पकड़कर इस्तेमाल किया जाता है.
  • इसमें क्लैमशेल या कन्वर्टेबल कॉन्फ़िगरेशन नहीं होता.
  • डिवाइस को कनेक्ट करने के लिए इस्तेमाल किए जाने वाले फ़िज़िकल कीबोर्ड के ज़रिए का तरीका है.
  • इसमें पावर सोर्स है जो चलने-फिरने की सुविधा देता है, जैसे कि बैटरी.

  • स्क्रीन डिसप्ले का साइज़ 7” और 18" से कम हो, जिसे डायगनल तरीके से मापा गया हो.

टैबलेट डिवाइस पर लागू करने के लिए वही शर्तें हैं जो हैंडहेल्ड डिवाइस पर लागू होती हैं लागू करना. अपवादों को उस सेक्शन में * के ज़रिए दिखाया गया है और इस अनुभाग में संदर्भ के लिए नोट किया गया है.

2.6.1. हार्डवेयर

जाइरोस्कोप

यदि टेबलेट डिवाइस कार्यान्वयन में 3-अक्ष जाइरोस्कोप शामिल है, तो वे:

  • [7.3.4/Tab-1-1] स्क्रीन की दिशा मापने की सुविधा होनी चाहिए 1000 डिग्री प्रति सेकंड तक बदलता है.

कम से कम मेमोरी और स्टोरेज (सेक्शन 7.6.1)

हैंडहेल्ड में छोटी/सामान्य स्क्रीन के लिए, स्क्रीन की डेंसिटी शर्तें, टैबलेट पर लागू नहीं होती हैं.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

यूएसबी सहायक डिवाइस (जैसे, कीबोर्ड, माउस, मॉनिटर, वेबकैम वगैरह) मोड (सेक्शन 7.7.1)

अगर टैबलेट डिवाइस लागू करने के लिए, यूएसबी पोर्ट के साथ काम करने वाला सहायक डिवाइस (जैसे, कीबोर्ड, माउस, मॉनिटर, वेबकैम वगैरह) शामिल है मोड को चालू कर देते हैं, तो:

  • [7.7.1/Tab] Android Open Accessory (AOA) API को लागू किया जा सकता है.

नई ज़रूरी शर्तें खत्म करना

वर्चुअल रिएलिटी मोड (सेक्शन 7.9.1)

वर्चुअल रिएलिटी की अच्छी परफ़ॉर्मेंस (सेक्शन 7.9.2)

टैबलेट पर वर्चुअल रिएलिटी की शर्तें लागू नहीं हैं.

2.6.2. सुरक्षा मॉडल

कुंजी और क्रेडेंशियल (सेक्शन 9.11)

सेक्शन [9.11] देखें.

यदि टेबलेट डिवाइस कार्यान्वयन में एकाधिक उपयोगकर्ता और शामिल हों android.hardware.telephony फ़ीचर फ़्लैग का एलान नहीं करते, वे:

  • [9.5/T-1-1] प्रतिबंधित प्रोफ़ाइल का इस्तेमाल करना ज़रूरी है, एक ऐसी सुविधा है जिससे डिवाइस के मालिक, अतिरिक्त उपयोगकर्ताओं और उनके क्षमता. प्रतिबंधित प्रोफ़ाइल के साथ, डिवाइस के मालिक ये काम कर सकते हैं अतिरिक्त उपयोगकर्ताओं के काम करने के लिए, अलग-अलग एनवायरमेंट तुरंत सेट अप कर लें, को मैनेज करने की क्षमता के साथ-साथ, ये सुविधाएं इन एनवायरमेंट में उपलब्ध हैं.

यदि टेबलेट डिवाइस कार्यान्वयन में एकाधिक उपयोगकर्ता और शामिल हों android.hardware.telephony फ़ीचर फ़्लैग का एलान करेगा, वे:

  • [9.5/T-2-1] प्रतिबंधित क्षेत्र के लिए काम नहीं करना चाहिए प्रोफ़ाइलें बनाएं. हालांकि, कंट्रोल के लिए एओएसपी को लागू करना ज़रूरी है का इस्तेमाल दूसरे उपयोगकर्ताओं को वॉइस कॉल और एसएमएस ऐक्सेस करने से रोकने के लिए किया जा सकता है.

2.6.2. सॉफ़्टवेयर

  • [3.2.3.1/Tab-0-1] किसी एक को पहले से लोड करना ज़रूरी है के साथ-साथ एक से ज़्यादा ऐप्लिकेशन या सेवा घटकों के लिए, इन ऐप्लिकेशन इंटेंट के हिसाब से, पब्लिक इंटेंट फ़िल्टर पैटर्न को तय किया गया है यहां दी गई है.

3. सॉफ़्टवेयर

3.1. मैनेज किए जा रहे एपीआई के साथ काम करता है

मैनेज किए गए Delvik बाइट कोड को एक्ज़ीक्यूट करने का एनवायरमेंट, इसका मुख्य वाहन है Android ऐप्लिकेशन. Android ऐप्लिकेशन प्रोग्रामिंग इंटरफ़ेस (एपीआई) Android प्लेटफ़ॉर्म इंटरफ़ेस का सेट मैनेज किए जा रहे रनटाइम एनवायरमेंट की जानकारी दें.

डिवाइस पर यह सुविधा लागू करना:

  • [C-0-1] सभी दस्तावेज़ लागू करने के साथ-साथ, लागू करने की पूरी जानकारी भी देनी होगी के व्यवहार में शामिल हैं. इसके अलावा, Android SDK टूल या "@SystemApi" से सजा कोई भी एपीआई अपस्ट्रीम Android में मार्कर सोर्स कोड.

  • [C-0-2] सभी क्लास, तरीकों, और उनसे जुड़े एलिमेंट के साथ काम करना या उन्हें सुरक्षित रखना ज़रूरी है TestApi व्याख्या (@TestApi) से चिह्नित है.

  • [C-0-3] मैनेज किए जा रहे किसी एपीआई को छोड़ने, एपीआई इंटरफ़ेस या हस्ताक्षर में बदलाव करने की ज़रूरत नहीं है, दस्तावेज़ में शामिल व्यवहार से अलग हो या उसमें कोई कार्रवाई न की गई हो, लेकिन की अनुमति है.

  • [C-0-4] ज़रूरी है कि एपीआई अब भी मौजूद रहे और सही तरीके से काम करे हो सकता है, भले ही Android डिवाइस में मौजूद हार्डवेयर की कुछ सुविधाएं इसमें एपीआई शामिल नहीं किए गए हैं. सेक्शन 7 देखें देखें.

  • [C-0-5] तीसरे पक्ष के ऐप्लिकेशन को बिना SDK टूल वाले इंटरफ़ेस इस्तेमाल करने की अनुमति नहीं देनी चाहिए, को Java भाषा पैकेज में ऐसी विधियों और फ़ील्ड के रूप में परिभाषित किया जाता है जिन्हें के बूट क्लासपाथ में शामिल नहीं किया जा सकता है और जो लोगों का हिस्सा नहीं है SDK टूल. इसमें ऐसे एपीआई शामिल हैं जिन्हें @hide एनोटेशन से सजाया गया है, लेकिन इससे नहीं @SystemAPI, जैसा कि SDK टूल के दस्तावेज़ों में बताया गया है और निजी और पैकेज-प्राइवेट क्लास के सदस्यों के साथ शेयर करना शामिल है.

  • [C-0-6] SDK टूल के अलावा, हर उस इंटरफ़ेस के साथ शिप करना ज़रूरी है जो SDK टूल के दायरे में नहीं आता में अस्थायी और ब्लॉकलिस्ट फ़्लैग के ज़रिए दी गई सूचियां prebuilts/runtime/appcompat/hiddenapi-flags.csv अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है एओएसपी में एपीआई लेवल की सही ब्रांच का पाथ.

  • [C-0-7] साइन किए गए कॉन्फ़िगरेशन के साथ काम करना ज़रूरी है पाबंदी वाली सूची से बिना SDK टूल वाले इंटरफ़ेस को हटाने के लिए, डाइनैमिक अपडेट का तरीका मौजूदा सार्वजनिक कुंजियों का इस्तेमाल करके, किसी भी APK में साइन किए गए कॉन्फ़िगरेशन को एम्बेड करके AOSP में मौजूद है.

    हालांकि, वे:

    • ऐसा हो सकता है कि डिवाइस में, छिपा हुआ एपीआई मौजूद न होने या उसे किसी अलग तरीके से लागू करने पर लागू करने के लिए, छिपे हुए एपीआई को ब्लॉकलिस्ट में ले जाएं या उसे यहां से हटा दें सभी प्रतिबंधित सूचियां.
    • हो सकता है, अगर कोई छिपा हुआ एपीआई पहले से ही AOSP में मौजूद नहीं है, तो छिपाए गए एपीआई को एपीआई को किसी भी प्रतिबंधित सूची में जोड़ें.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [C-0-8] एपीआई लेवल को टारगेट करने वाले ऐप्लिकेशन इंस्टॉल करने की सुविधा नहीं देनी चाहिए 23 24 से कम.

नई ज़रूरी शर्तें खत्म करना

3.1.1. Android एक्सटेंशन

Android, एक खास एपीआई लेवल के लिए, मैनेज किए जा रहे एपीआई लेवल को उस एपीआई लेवल के लिए एक्सटेंशन वर्शन अपडेट किया जा रहा है. कॉन्टेंट बनाने android.os.ext.SdkExtensions.getExtensionVersion(int apiLevel) एपीआई, दिए गए apiLevel का एक्सटेंशन वर्शन, अगर उसके लिए एक्सटेंशन हैं एपीआई लेवल.

Android डिवाइस पर ये सुविधाएं लागू करना:

  • [C-0-1] शेयर की गई लाइब्रेरी और दोनों में एओएसपी लागू करने की प्रक्रिया को पहले से लोड करना ज़रूरी है इससे ज़्यादा या इसके बराबर के वर्शन वाली ExtShared और सेवाएं ExtServices हर एपीआई लेवल के हिसाब से, कम से कम वर्शन होने चाहिए. उदाहरण के लिए, Android 7.0 लागू डिवाइस, एपीआई लेवल 24 चलाने के लिए कम से कम यह ज़रूरी है वर्शन 1.

  • [C-0-2] एक्सटेंशन का सिर्फ़ वही मान्य वर्शन नंबर दिखाना चाहिए जो तय किया जाता है.

  • [C-0-3] एक्सटेंशन वर्शन की ओर से तय किए गए सभी एपीआई के साथ काम करना चाहिए android.os.ext.SdkExtensions.getExtensionVersion(int apiLevel) ने वापस की मैनेज किए जा रहे अन्य एपीआई की तरह ही काम करता है, जो सेक्शन 3.1 में बताई गई ज़रूरी शर्तें.

3.1.2. Android लाइब्रेरी

Apache एचटीटीपी क्लाइंट को बंद किए जाने की वजह से, इन डिवाइस पर काम करना:

  • [C-0-1] org.apache.http.legacy लाइब्रेरी को बूटक्लासपाथ.
  • [C-0-2] ऐप्लिकेशन में org.apache.http.legacy लाइब्रेरी जोड़ना ज़रूरी है क्लासपाथ सिर्फ़ तब सबमिट करें, जब ऐप्लिकेशन इनमें से किसी एक शर्त को पूरा करता हो:
    • एपीआई लेवल 28 या उससे पहले के लेवल को टारगेट करता है.
    • अपने मेनिफ़ेस्ट में बताता है कि उसे लाइब्रेरी की ज़रूरत है. इसके लिए, org.apache.http.legacy के लिए <uses-library> के android:name एट्रिब्यूट.

एओएसपी को लागू करने की प्रक्रिया, इन ज़रूरी शर्तों को पूरा करती है.

3.2. सॉफ़्ट एपीआई के साथ काम करने की सुविधा

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

3.2.1. अनुमतियां

  • [C-0-1] डिवाइस लागू करने वाले लोगों को सभी अनुमतियां लागू करनी होंगी कॉन्सटेंट, जैसा कि अनुमति से जुड़े रेफ़रंस पेज पर बताया गया है. ध्यान दें कि सेक्शन 9 में Android के सुरक्षा मॉडल से जुड़ी ज़रूरी शर्तें.

3.2.2. बिल्ड पैरामीटर

Android API में कई कॉन्सटेंट शामिल होते हैं android.os.Build क्लास जो मौजूदा डिवाइस के बारे में बताती हों.

  • [C-0-1] सभी डिवाइसों पर एक जैसी और काम की वैल्यू देने के लिए नीचे दी गई टेबल में अलग-अलग फ़ॉर्मैट के लिए कुछ अतिरिक्त पाबंदियां दी गई हैं. लागू करना ज़रूरी है.
पैरामीटर जानकारी
वर्शन.रिलीज़ इस डिवाइस में काम कर रहे Android सिस्टम का ऐसा वर्शन है जिसे कोई भी व्यक्ति आसानी से पढ़ सकता है फ़ॉर्मैट. इस फ़ील्ड में इनमें से कोई एक स्ट्रिंग वैल्यू होनी चाहिए Android 15 के लिए मान्य वर्शन स्ट्रिंग.
वर्शन.SDK फ़ॉर्मैट में, मौजूदा समय में चल रहे Android सिस्टम का वर्शन तीसरे पक्ष के ऐप्लिकेशन कोड को ऐक्सेस किया जा सकता है. Android 15 के लिए, इस फ़ील्ड में पूर्णांक मान 15_INT होना चाहिए.
VERSION.SDK टूल&lowbar;INT फ़ॉर्मैट में, मौजूदा समय में चल रहे Android सिस्टम का वर्शन तीसरे पक्ष के ऐप्लिकेशन कोड को ऐक्सेस किया जा सकता है. Android 15 के लिए, इस फ़ील्ड में पूर्णांक मान 15&lowbar;INT होना चाहिए.
वर्शन.इंक्रीमेंटल खास बिल्ड को तय करने के लिए, डिवाइस लागू करने वाले की ओर से चुनी गई वैल्यू की तरह काम करता है. यह असली उपयोगकर्ताओं के लिए उपलब्ध कराए गए अलग-अलग बिल्ड के लिए, वैल्यू का दोबारा इस्तेमाल नहीं किया जाना चाहिए. ऐप्लिकेशन इस फ़ील्ड का सामान्य इस्तेमाल यह बताने के लिए होता है कि कौनसा बिल्ड नंबर या बिल्ड जनरेट करने के लिए, सोर्स-कंट्रोल चेंज आइडेंटिफ़ायर का इस्तेमाल किया गया था. वैल्यू इस फ़ील्ड को प्रिंट करने योग्य 7-बिट ASCII के रूप में एन्कोड करने योग्य होना चाहिए और रेगुलर एक्सप्रेशन ^[^ :\/~]+$.
बोर्ड डिवाइस लागू करने वाले की ओर से चुनी गई वैल्यू, जो इंटरनल हार्डवेयर, जिसे डिवाइस के पढ़ने में आसान फ़ॉर्मैट में इस्तेमाल किया जाता है. संभावित इस फ़ील्ड का उपयोग बोर्ड पावर के विशिष्ट संशोधन को इंगित करने के लिए है डिवाइस. इस फ़ील्ड की वैल्यू को 7-बिट ASCII के तौर पर कोड में बदला जा सकता है और रेगुलर एक्सप्रेशन ^[a-zA-Z0-9_-]+$ से मैच होता है.
ब्रैंड डिवाइस से जुड़े ब्रैंड का नाम दिखाने वाली वैल्यू असली उपयोगकर्ताओं को सूचना दिया जाए. फ़ाइल ऐसे फ़ॉर्मैट में होनी चाहिए जिसे कोई भी व्यक्ति आसानी से पढ़ सके. साथ ही, यह डिवाइस का निर्माता या कंपनी का ब्रैंड जिसके तहत डिवाइस मार्केटिंग होती है. इस फ़ील्ड की वैल्यू को 7-बिट ASCII और मिलान में एन्कोड किया जा सकता है रेगुलर एक्सप्रेशन ^[a-zA-Z0-9_-]+$.
समर्थित&lowbar;ABIS नेटिव के निर्देश सेट (सीपीयू टाइप + एबीआई कन्वेंशन) का नाम कोड. सेक्शन 3.3 देखें. निजी एपीआई साथ काम करता है.
समर्थित&lowbar;32&lowbar;BIT&lowbar;ABIS नेटिव के निर्देश सेट (सीपीयू टाइप + एबीआई कन्वेंशन) का नाम कोड. सेक्शन 3.3 देखें. निजी एपीआई साथ काम करता है.
समर्थित&lowbar;64&lowbar;BIT&lowbar;ABIS इसके दूसरे निर्देश सेट (सीपीयू टाइप + एबीआई कन्वेंशन) का नाम नेटिव कोड. सेक्शन 3.3 देखें. नेटिव लेआउट एपीआई के साथ काम करने की सुविधा.
सीपीयू&लोबार;एबीआई नेटिव के निर्देश सेट (सीपीयू टाइप + एबीआई कन्वेंशन) का नाम कोड. सेक्शन 3.3 देखें. निजी एपीआई साथ काम करता है.
सीपीयू&लोबार;एबीआई2 इसके दूसरे निर्देश सेट (सीपीयू टाइप + एबीआई कन्वेंशन) का नाम नेटिव कोड. सेक्शन 3.3 देखें. नेटिव लेआउट एपीआई के साथ काम करने की सुविधा.
डिवाइस डिवाइस लागू करने वाले की ओर से चुनी गई वैल्यू, जिसमें डेवलपमेंट का नाम शामिल है या हार्डवेयर सुविधाओं के कॉन्फ़िगरेशन की पहचान करने वाला कोड नाम और औद्योगिक डिज़ाइन में इस्तेमाल किया जाता है. इस फ़ील्ड की वैल्यू को कोड में बदला जा सकता है को 7-बिट ASCII के रूप में सेव करता है और रेगुलर एक्सप्रेशन से मैच करता है ^[a-zA-Z0-9_-]+$. इस अवधि के दौरान इस डिवाइस का नाम नहीं बदलना चाहिए प्रॉडक्ट को कितने समय तक इस्तेमाल किया जाए.
फ़िंगरप्रिंट प्रिंट इस बिल्ड की खास तौर पर पहचान करने वाली स्ट्रिंग. वह विज्ञापन सेवा के लिए कोई भी व्यक्ति आसानी से पढ़ सकता है. यह इस टेंप्लेट के हिसाब से होना चाहिए:

$(BRAND)/$(PRODUCT)/
$(DEVICE):$(VERSION.VERSION)/$(ID)/$(VERSION.INCREMENTAL):$(TYPE)/$(TAGS)

उदाहरण के लिए:

acme/myproduct/
mydevice:15/LMYXX/3359:userdebug/test-keys

फ़िंगरप्रिंट में खाली सफ़ेद जगह नहीं होनी चाहिए. मान इस फ़ील्ड को 7-बिट ASCII के रूप में एन्कोड किया जा सकता है.

हार्डवेयर हार्डवेयर का नाम (कर्नेल कमांड लाइन या /proc से). यह ऐसा होना चाहिए कि लोग इसे आसानी से पढ़ सकें. इस फ़ील्ड की वैल्यू यह होनी चाहिए 7-बिट ASCII के रूप में कोड में बदला जा सकता है और रेगुलर एक्सप्रेशन से मैच किया जा सकता है ^[a-zA-Z0-9_-]+$.
होस्ट एक ऐसी स्ट्रिंग जो उस होस्ट की खास तौर पर पहचान करती है जिस पर बिल्ड बनाया गया था कोई भी व्यक्ति आसानी से पढ़ सकता है. इस विज्ञापन फ़ॉर्मैट के लिए कोई ज़रूरी शर्त नहीं है यह फ़ील्ड खाली नहीं छोड़ा जा सकता. हालांकि, इसकी वैल्यू शून्य या खाली स्ट्रिंग ("") नहीं होनी चाहिए.
आईडी ऐसा आइडेंटिफ़ायर जिसे डिवाइस लागू करने वाले व्यक्ति ने चुना है, ताकि वह आसानी से पढ़े जा सकने वाले फ़ॉर्मैट में दी गई रिलीज़. यह फ़ील्ड और android.os.Build.VERSION.INCREMENTAL, लेकिन इनकी वैल्यू ज़रूरत के मुताबिक होनी चाहिए ताकि असली उपयोगकर्ता, सॉफ़्टवेयर के बिल्ड के बीच अंतर कर सकें. वैल्यू इस फ़ील्ड को 7-बिट ASCII के रूप में एन्कोड किया जा सकता है और एक्सप्रेशन ^[a-zA-Z0-9._-]+$.
निर्माता ऐसेट के ओरिजनल इक्विपमेंट मैन्युफ़ैक्चरर (OEM) के कारोबार का नाम प्रॉडक्ट. इस फ़ील्ड के खास फ़ॉर्मैट के लिए कोई ज़रूरी शर्त नहीं है, इसके अलावा, यह शून्य या खाली स्ट्रिंग ("") नहीं होनी चाहिए. यह फ़ील्ड प्रॉडक्ट के बने रहने के दौरान इसे बदलना नहीं चाहिए.
सॉक&लोबार;मैन्युफ़ैक्चरर प्राथमिक सिस्टम के निर्माता के नाम का व्यापार का इस्तेमाल किया जाता है. एक ही एसओसी मैन्युफ़ैक्चरर वाले डिवाइस को उसी कॉन्स्टेंट वैल्यू का इस्तेमाल करना चाहिए. कृपया SOC मैन्युफ़ैक्चरर से इसके बारे में पूछें सही कॉन्स्टेंट डालें. इस फ़ील्ड की वैल्यू को कोड में बदला जा सकता है 7-बिट ASCII के रूप में, रेगुलर एक्सप्रेशन से मेल खाना चाहिए ^([0-9A-Za-z ]+), खाली सफ़ेद जगह से शुरू या खत्म नहीं होना चाहिए, और "अज्ञात" के बराबर नहीं होना चाहिए. इस फ़ील्ड को इस अवधि के दौरान नहीं बदलना चाहिए प्रॉडक्ट को कितने समय तक इस्तेमाल किया जाए.
सो&लोबार;मॉडल इसमें इस्तेमाल की जाने वाली चिप (एसओसी) पर मौजूद प्राइमरी सिस्टम के मॉडल का नाम प्रॉडक्ट. एक जैसे एसओसी मॉडल वाले डिवाइसों में, एक जैसा कॉन्स्टेंट इस्तेमाल करना चाहिए वैल्यू. सही कॉन्स्टेंट इस्तेमाल करने के लिए, कृपया एसओसी मैन्युफ़ैक्चरर से पूछें. इस फ़ील्ड की वैल्यू को 7-बिट ASCII के तौर पर एन्कोड किया जाना चाहिए और रेगुलर एक्सप्रेशन ^([0-9A-Za-z ._/+-]+)$, शुरू नहीं होना चाहिए या खाली सफ़ेद जगह के साथ खत्म होना चाहिए और "जानकारी नहीं" के बराबर नहीं होना चाहिए. यह फ़ील्ड प्रॉडक्ट के बने रहने के दौरान इसे बदलना नहीं चाहिए.
MODEL डिवाइस लागू करने वाले की ओर से चुनी गई वैल्यू, जिसमें असली उपयोगकर्ता को पता है. यह वही नाम होना चाहिए जिसमें डिवाइस की मार्केटिंग की जाती है और उसे असली उपयोगकर्ताओं को बेचा जाता है. इसके लिए कोई ज़रूरी शर्त नहीं है इस फ़ील्ड का खास फ़ॉर्मैट शामिल करें, लेकिन यह ज़रूरी नहीं है कि यह शून्य या खाली स्ट्रिंग (""). इस फ़ील्ड को इस अवधि के दौरान नहीं बदलना चाहिए प्रॉडक्ट को कितने समय तक इस्तेमाल किया जाए.
प्रॉडक्ट डिवाइस लागू करने वाले की ओर से चुनी गई वैल्यू, जिसमें डेवलपमेंट का नाम शामिल है या उस प्रॉडक्ट (एसकेयू) का कोड नाम जो एक ही ब्रैंड. वीडियो ऐसे होने चाहिए जिन्हें कोई भी व्यक्ति आसानी से पढ़ सके, लेकिन ऐसा ज़रूरी नहीं है कि वह व्यू में भी दिखे असली उपयोगकर्ताओं ने किया है. इस फ़ील्ड की वैल्यू को 7-बिट ASCII के तौर पर कोड में बदला जा सकता है और रेगुलर एक्सप्रेशन ^[a-zA-Z0-9_-]+$ से मैच होता है. यह प्रॉडक्ट प्रॉडक्ट के बने रहने के दौरान नाम नहीं बदलना चाहिए.
ODM&lowbar;SKU डिवाइस लागू करने वाले की ओर से चुनी गई वैकल्पिक वैल्यू, जिसमें यह शामिल है SKU (स्टॉक कीपिंग यूनिट) का इस्तेमाल, उदाहरण के लिए, डिवाइस के साथ मिले सहायक डिवाइस (जैसे, कीबोर्ड, माउस, मॉनिटर, वेबकैम वगैरह). इस फ़ील्ड की वैल्यू को 7-बिट ASCII के तौर पर एन्कोड किया जाना चाहिए और रेगुलर एक्सप्रेशन ^([0-9A-Za-z.,_-]+)$.
सीरियल "UNKNOWN" होना चाहिए.
टैग डिवाइस लागू करने वाले की ओर से चुनी गई टैग की एक कॉमा-सेपरेटेड लिस्ट जो बिल्ड को और अलग करता है. टैग 7-बिट ASCII के रूप में एन्कोड करने योग्य होने चाहिए और रेगुलर एक्सप्रेशन ^[a-zA-Z0-9._-]+ से मैच करें की वैल्यू, सामान्य तौर पर तीन Android प्लैटफ़ॉर्म से जुड़ी हो साइनिंग कॉन्फ़िगरेशन: रिलीज़-की, डेवलपर-की, और टेस्ट-की.
समय बिल्ड कब हुआ था, इसके टाइमस्टैंप को दिखाने वाली वैल्यू.
वाई-फ़ाई के टाइप के बारे में जानकारी डिवाइस लागू करने वाले की ओर से चुना गया मान, जो रनटाइम को तय करता है बिल्ड का कॉन्फ़िगरेशन होता है. इस फ़ील्ड में कोई एक वैल्यू होनी चाहिए जो आम तौर पर Android रनटाइम के तीन कॉन्फ़िगरेशन के मुताबिक होते हैं: उपयोगकर्ता, userdebug या eng.
उपयोगकर्ता उस उपयोगकर्ता (या अपने-आप काम करने वाले उपयोगकर्ता) का नाम या यूज़र आईडी जिसने जनरेट किया बिल्ड. इस फ़ील्ड के खास फ़ॉर्मैट के लिए कोई ज़रूरी शर्त नहीं है, इसके अलावा, यह शून्य या खाली स्ट्रिंग ("") नहीं होनी चाहिए.
सिक्योरिटी&लोबार;पैच बिल्ड के सिक्योरिटी पैच लेवल को दिखाने वाली वैल्यू. इसका मतलब यह होना चाहिए कि बिल्ड में बताई गई समस्याओं में से किसी भी तरह का खतरा न हो ऊपर बताई गई शर्तों को पूरा करते हैं. इसमें होना चाहिए [YYYY-MM-DD] फ़ॉर्मैट Android सार्वजनिक सुरक्षा बुलेटिन या में Android की सुरक्षा से जुड़ी सलाह, जैसे कि "01-11-2015".
बेस और ओएस बिल्ड के FINGER हिस्सा पैरामीटर को दिखाने वाली वैल्यू इस बिल्ड से बिलकुल मेल खाता है. इसमें वे पैच शामिल नहीं हैं जो Android सार्वजनिक सुरक्षा बुलेटिन. उसे सही वैल्यू की जानकारी देनी चाहिए और अगर ऐसा बिल्ड मौजूद नहीं है, तो खाली स्ट्रिंग ("") की शिकायत करें.
बूटलोडर डिवाइस लागू करने वाले की ओर से चुनी गई वैल्यू, जो इंटरनल बूटलोडर वर्शन का इस्तेमाल डिवाइस में किया जा रहा है. यह वर्शन ऐसे फ़ॉर्मैट में होना चाहिए जिसे कोई भी व्यक्ति आसानी से पढ़ सके. इस फ़ील्ड की वैल्यू को 7-बिट ASCII के तौर पर एन्कोड किया जाना चाहिए और रेगुलर एक्सप्रेशन ^[a-zA-Z0-9._-]+$.
getRadioVersion() डिवाइस लागू करने वाले की ओर से चुनी गई वैल्यू होनी चाहिए (होना चाहिए या वापस करना हो) डिवाइस में इस्तेमाल हो रहे खास इंटरनल रेडियो/मॉडम के वर्शन की पहचान करने, फ़ॉर्मैट हो, जिसे कोई भी पढ़ सके. अगर किसी डिवाइस में कोई अंदरूनी रेडियो/मॉड्यूम को शून्य करना ज़रूरी है. इस फ़ील्ड की वैल्यू यह होनी चाहिए 7-बिट ASCII के रूप में कोड में बदला जा सकता है और रेगुलर एक्सप्रेशन से मैच किया जा सकता है ^[a-zA-Z0-9._-,]+$.
getSerial() हार्डवेयर सीरियल नंबर होना चाहिए या दिया जाना चाहिए. डिवाइस का सीरियल नंबर होना ज़रूरी है और एक ही MODEL और MANUFACTURER के साथ अलग-अलग तरह के डिवाइस में. मान यह फ़ील्ड 7-बिट ASCII के रूप में एन्कोड किया जा सकता है और रेगुलर एक्सप्रेशन से मेल खाना चाहिए ^[a-zA-Z0-9]+$.

3.2.3. इंटेंट के साथ काम करना

3.2.3.1. ऐप्लिकेशन के सामान्य इंटेंट

Android इंटेंट, ऐप्लिकेशन कॉम्पोनेंट को इनसे फ़ंक्शन का अनुरोध करने की अनुमति देता है Android के दूसरे कॉम्पोनेंट पर भी लागू होता है. Android अपस्ट्रीम प्रोजेक्ट में, ऐसे ऐप्लिकेशन जो सामान्य कार्रवाइयां करने के लिए, कई इंटेंट पैटर्न लागू करते हैं.

डिवाइस पर यह सुविधा लागू करना:

  • [C-SR-1] एक या एक से ज़्यादा ऐप्लिकेशन को पहले से लोड करने का सुझाव दिया जाता है या सभी पब्लिक इंटेंट फ़िल्टर के लिए, इंटेंट हैंडलर वाले सेवा कॉम्पोनेंट ऐप्लिकेशन के इन इंटेंट के ज़रिए तय किए गए पैटर्न यहां दिए गए हैं और ग्राहक को आइटम भेजना. जैसे, डेवलपर की उम्मीदों को पूरा करने के लिए ऐप्लिकेशन इंटेंट के बारे में भी बताया गया है.

ऐप्लिकेशन के ज़रूरी इंटेंट के लिए, कृपया सेक्शन 2 देखें का उपयोग करने की अनुमति देते हैं.

3.2.3.2. इंटेंट रिज़ॉल्यूशन
  • [C-0-1] Android एक एक्सटेंसिबल प्लैटफ़ॉर्म है, इसलिए डिवाइस को लागू करने के लिए यह ज़रूरी है सेक्शन 3.2.3.1 में बताए गए हर इंटेंट पैटर्न को अनुमति दें, हालाँकि, सेटिंग पर निर्भर नहीं रहना पड़ता. कॉन्टेंट बनाने अपस्ट्रीम Android ओपन सोर्स को लागू करने की वजह से, डिफ़ॉल्ट रूप से इसकी अनुमति मिलती है.

  • [C-0-2] डिवाइस लागू करने वाले लोगों को सिस्टम में खास अधिकार नहीं जोड़ने चाहिए ऐप्लिकेशन की इन इंटेंट पैटर्न का इस्तेमाल कर सकते हैं या तीसरे पक्ष के ऐप्लिकेशन को रोक सकते हैं इन पैटर्न को बाइंड करने और कंट्रोल करने से लेकर इन पैटर्न तक को कंट्रोल किया जा सकता है. यह पाबंदी इसमें खास तौर पर, "Chooser" को बंद करना शामिल है. हालांकि, इसमें और भी चीज़ें शामिल हो सकती हैं उपयोगकर्ता ऐसा इंटरफ़ेस जिसकी मदद से उपयोगकर्ता कई ऐप्लिकेशन में से किसी एक को चुन सकता है समान इंटेंट पैटर्न हैंडल करते हैं.

  • [C-0-3] डिवाइस इस्तेमाल करने के लिए लोगों को यूज़र इंटरफ़ेस देना ज़रूरी है, ताकि इंटेंट की डिफ़ॉल्ट गतिविधि में बदलाव करें.

  • हालांकि, डिवाइस पर लागू होने वाली कुछ सुविधाएं, चुनिंदा उपयोगकर्ताओं के लिए डिफ़ॉल्ट गतिविधियां उपलब्ध करा सकती हैं यूआरआई पैटर्न (उदाहरण के लिए, http://play.google.com) जब डिफ़ॉल्ट गतिविधि डेटा यूआरआई के लिए ज़्यादा सटीक एट्रिब्यूट का इस्तेमाल करें. उदाहरण के लिए, इंटेंट फ़िल्टर पैटर्न डेटा यूआरआई "http://www.android.com" तय करना ज़्यादा सटीक होता है, "http://" के लिए ब्राउज़र का कोर इंटेंट पैटर्न.

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

  • [C-0-4] ऐसे मामले में, "सभी इंटेंट फ़िल्टर" का इस्तेमाल करके डिजिटल ऐसेट लिंक की खास बातों में पुष्टि करने के तरीके के बारे में बताया गया है जैसा कि पैकेज मैनेजर के ज़रिए अपस्ट्रीम Android ओपन सोर्स में लागू किया जाता है प्रोजेक्ट.
  • [C-0-5] इंस्टॉल करते समय इंटेंट फ़िल्टर की पुष्टि करने की कोशिश ज़रूर करनी चाहिए और सभी सफलतापूर्वक पुष्टि किए गए यूआरआई इंटेंट फ़िल्टर को इस रूप में सेट करें डिफ़ॉल्ट ऐप्लिकेशन हैंडलर के साथ काम करता है.
  • अपने यूआरआई के लिए, कुछ यूआरआई इंटेंट फ़िल्टर को डिफ़ॉल्ट ऐप्लिकेशन हैंडलर के तौर पर सेट किया जा सकता है, अगर उनकी पुष्टि हो गई है, लेकिन अन्य कैंडिडेट यूआरआई फ़िल्टर काम नहीं करते पुष्टि करने के लिए. अगर किसी डिवाइस पर ऐसा किया जाता है, तो ज़रूरी है कि हर यूआरएल के हिसाब से सही उपयोगकर्ता पैटर्न, सेटिंग मेन्यू में बदलता है.
  • उपयोगकर्ता को हर ऐप्लिकेशन के लिए लिंक के कंट्रोल, सेटिंग में जाकर इस तरह उपलब्ध कराने होंगे: अनुसरण करता है:
    • [C-0-6] उपयोगकर्ता के पास डिफ़ॉल्ट ऐप्लिकेशन को पूरी तरह से ओवरराइड करने की सुविधा होनी चाहिए ऐप्लिकेशन का व्यवहार: हमेशा खुला, हमेशा पूछें, या कभी न खोलें, जो सभी कैंडिडेट यूआरआई इंटेंट फ़िल्टर पर समान रूप से लागू होने चाहिए.
    • [C-0-7] यह ज़रूरी है कि उपयोगकर्ता, कैंडिडेट यूआरआई इंटेंट की सूची देख सके फ़िल्टर.
    • डिवाइस को लागू करने से उपयोगकर्ता को ये काम करने की सुविधा मिल सकती है सही तरीके से इस्तेमाल किए गए खास कैंडिडेट यूआरआई इंटेंट फ़िल्टर को ओवरराइड करें हर इंटेंट के हिसाब से फ़िल्टर किया जाता है.
    • [C-0-8] डिवाइस को लागू करने से लोगों को अगर डिवाइस लागू करने पर कुछ कैंडिडेट यूआरआई इंटेंट फ़िल्टर कामयाब हो जाते हैं हो सकता है कि कुछ पुष्टि न हो पाए.
3.2.3.3. इंटेंट नेमस्पेस
  • [C-0-1] डिवाइस के इस्तेमाल में ऐसा कोई भी Android कॉम्पोनेंट शामिल नहीं होना चाहिए जो किसी ACTION, CATEGORY, या android.* या com.android.* नेमस्पेस में मौजूद अन्य कुंजी स्ट्रिंग.
  • [C-0-2] डिवाइस इंप्लिमेंटर में ऐसा कोई Android कॉम्पोनेंट शामिल नहीं होना चाहिए जो ACTION, CATEGORY, या किसी दूसरे संगठन के पैकेज स्पेस में मौजूद अन्य कुंजी की स्ट्रिंग.
  • [C-0-3] डिवाइस लागू करने वाले लोगों को किसी भी इंटेंट में बदलाव नहीं करना चाहिए और न ही उसे बढ़ाना चाहिए सेक्शन 3.2.3.1 में दिए गए पैटर्न.
  • डिवाइस को लागू करने के तरीके में, नेमस्पेस का इस्तेमाल करके इंटेंट पैटर्न को साफ़ तौर पर शामिल किया जा सकता है और साफ़ तौर पर अपने संगठन से जुड़ा हो. यह पाबंदी है जो सेक्शन 3.6 में Java लैंग्वेज क्लास के लिए दी गई है.
3.2.3.4. ब्रॉडकास्ट इंटेंट

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

डिवाइस पर यह सुविधा लागू करना:

  • [C-0-1] यहां दिए गए पब्लिक ब्रॉडकास्ट इंटेंट को ब्रॉडकास्ट करना ज़रूरी है सिस्टम के सही इवेंट के जवाब में दी जाएगी, जैसा कि SDK टूल के दस्तावेज़ में बताया गया है. ध्यान दें कि यह ज़रूरी शर्त, सेक्शन 3.5 में भी शामिल नहीं है, क्योंकि बैकग्राउंड में चल रहे ऐप्लिकेशन की सीमा के बारे में भी SDK टूल में बताया गया है दस्तावेज़. इसके अलावा, कुछ ब्रॉडकास्ट इंटेंट के लिए हार्डवेयर का इस्तेमाल करना ज़रूरी है सहायता करती है, अगर डिवाइस आवश्यक हार्डवेयर का समर्थन करता है, तो उन्हें इंटेंट और SDK दस्तावेज़ के मुताबिक व्यवहार का डेटा दें.
3.2.3.5. शर्त के साथ ऐप्लिकेशन इंटेंट

Android में ऐसी सेटिंग शामिल हैं जिनकी मदद से, लोग आसानी से अपनी पसंद की सेटिंग चुन सकते हैं डिफ़ॉल्ट ऐप्लिकेशन, जैसे कि होम स्क्रीन या एसएमएस.

जहां सही हो वहां डिवाइस लागू करने के लिए एक जैसी सेटिंग देनी होंगी और इंटेंट फ़िल्टर पैटर्न और एपीआई के बताए गए तरीकों के साथ भी काम कर सकता है के बारे में ज़्यादा जानकारी मिलेगी.

अगर डिवाइस लागू करने की प्रोसेस android.software.home_screen की रिपोर्ट करती है, तो:

अगर डिवाइस लागू करने की प्रोसेस android.hardware.telephony.calling की रिपोर्ट करती है, तो:

  • [C-2-1] आपको ऐसा सेटिंग मेन्यू देना होगा जिससे android.provider.Telephony.ACTION_CHANGE_DEFAULT डिफ़ॉल्ट एसएमएस ऐप्लिकेशन को बदलने के लिए एक डायलॉग दिखाने का इंटेंट है.

  • [C-2-2] android.telecom.action.CHANGE_DEFAULT_DIALER का पालन करना ज़रूरी है यह एक डायलॉग दिखाने के मकसद से बनाया गया है, ताकि उपयोगकर्ता डिफ़ॉल्ट फ़ोन बदल सके का इस्तेमाल करें.

    • इनकमिंग कॉल के लिए उपयोगकर्ता के चुने गए डिफ़ॉल्ट फ़ोन ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करना होगा और आउटगोइंग कॉल को छोड़कर, जिनमें आपातकालीन कॉल करने के लिए, पहले से इंस्टॉल किया गया Phone ऐप्लिकेशन.
  • [C-2-3] android.telecom.action.CHANGE_PHONE_ACCOUNTS का पालन करना ज़रूरी है इससे ConnectionServices को कॉन्फ़िगर करने के लिए, लोगों को पैसे चुकाने में मदद मिलती है PhoneAccounts से जुड़ी है, जैसे कि और डिफ़ॉल्ट PhoneAccount, जिसे दूरसंचार सेवा देने वाली कंपनी आउटगोइंग कॉल करने के लिए इस्तेमाल करें. एओएसपी को लागू करने की प्रक्रिया जिसमें "कॉल करने वाले खातों का विकल्प" शामिल है "कॉल" मेन्यू में सेटिंग मेन्यू.

  • [C-2-4] android.telecom.CallRedirectionService को अनुमति देनी होगी android.app.role.CALL_REDIRECTION को होल्ड करने वाले ऐप्लिकेशन के लिए भूमिका.

  • [C-2-5] लोगों को ऐसा ऐप्लिकेशन चुनने की सुविधा देनी होगी जो android.app.role.CALL_REDIRECTION भूमिका.

  • [C-2-6] android.intent.action.SENDTO के मुताबिक होना ज़रूरी है और android.intent.action.VIEW इंटेंट और एसएमएस मैसेज भेजने/दिखाने के लिए कोई गतिविधि उपलब्ध कराता है.

  • [C-SR-1] android.intent.action.ANSWER के लिए खास तौर पर सुझाया जाता है android.intent.action.CALL, android.intent.action.CALL_BUTTON, android.intent.action.VIEW और android.intent.action.DIAL इंटेंट पर जाएं, जो पहले से लोड किए गए डायलर ऐप्लिकेशन से जुड़ा हो, जो इन इंटेंट और SDK टूल में बताए गए तरीके से, कार्रवाई को पूरा करना.

अगर डिवाइस लागू करने की प्रोसेस android.hardware.nfc.hce की रिपोर्ट करती है, तो:

  • [C-3-1] android.settings.एनएफ़सी_PAYMENT_SETTINGS का पालन करना ज़रूरी है इंटेंट, टच किए बिना पैसे चुकाने के लिए, ऐप्लिकेशन की डिफ़ॉल्ट सेटिंग का मेन्यू दिखाएगा.
  • [C-3-2] android.nfc.cardemulation.action.ACTION_CHANGE_DEFAULT का पालन करना आवश्यक है यह एक ऐसी गतिविधि दिखाने का इंटेंट है, जिससे एक डायलॉग बॉक्स खुलता है, जिसमें उपयोगकर्ता से कहा जाता है कि वह किसी खास कैटगरी के लिए, डिफ़ॉल्ट कार्ड एम्युलेशन सेवा का इस्तेमाल कर सकता है.

अगर डिवाइस लागू करने की प्रोसेस android.hardware.nfc की रिपोर्ट करती है, तो:

अगर डिवाइस लागू करने की प्रोसेस android.hardware.bluetooth की रिपोर्ट करती है, तो:

  • [C-5-1] 'android.Bluetooth.adapter.action.REQUEST_ENABLE' का पालन करना ज़रूरी है इंटेंट और सिस्टम गतिविधि दिखाएं, ताकि उपयोगकर्ता ब्लूटूथ चालू कर सके.
  • [C-5-2] ज़रूरी है कि 'android.ब्लूटूथ.adapter.action.REQUEST_DISCOVERABLE' इंटेंट और सिस्टम गतिविधि दिखाएं जो खोजने लायक मोड का अनुरोध करती है.

अगर लागू किए गए डिवाइस पर डीएनडी की सुविधा काम करती है, तो ये काम किए जा सकते हैं:

  • [C-6-1] ऐसी गतिविधि को लागू करना ज़रूरी है जो इंटेंट के हिसाब से काम करे ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS जो UI_mode_TYPE_NORMAL के साथ लागू करने के लिए एक ऐसी गतिविधि होनी चाहिए जहां उपयोगकर्ता, ऐप्लिकेशन को डीएनडी नीति के कॉन्फ़िगरेशन का ऐक्सेस दे सकता है या अस्वीकार कर सकता है.

अगर डिवाइस लागू करने की सुविधा इस्तेमाल करने से उपयोगकर्ताओं को तीसरे पक्ष के इनपुट के तरीकों का इस्तेमाल डिवाइस, वे:

  • [C-7-1] जोड़ने और कॉन्फ़िगर करने के लिए, ऐसा तरीका उपलब्ध कराना ज़रूरी है जिसका इस्तेमाल उपयोगकर्ता आसानी से कर सकें के रिस्पॉन्स के तौर पर तीसरे पक्ष के इनपुट के तरीके android.settings.INPUT_METHOD_SETTINGS इंटेंट.

अगर लागू किए गए डिवाइस पर तीसरे पक्ष की सुलभता सेवाएं काम करती हैं, तो ये काम करती हैं:

  • [C-8-1] android.settings.ACCESSIBILITY_SETTINGS का पालन करना ज़रूरी है को सक्षम और अक्षम करने के लिए उपयोगकर्ता के लिए सुलभ प्रणाली उपलब्ध कराने के उद्देश्य से की गई है पहले से लोड की गई सुलभता सेवाओं के साथ-साथ तीसरे पक्ष की सुलभता सेवाएं सेवाओं.

यदि डिवाइस कार्यान्वयन में Wi-Fi Easy Connect का समर्थन शामिल है और की सुविधाओं का इस्तेमाल करते हैं, तो उन्हें:

अगर लागू किए गए डिवाइस पर डेटा बचाने की सेटिंग वाला मोड उपलब्ध है, तो ये काम किए जा सकते हैं:

  • [C-10-1] सेटिंग में ऐसा यूज़र इंटरफ़ेस देना ज़रूरी है जो Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS इंटेंट, उपयोगकर्ताओं को ऐप्लिकेशन जोड़ने या हटाने की अनुमति देता है अनुमति सूची.

अगर लागू किए गए डिवाइस पर डेटा बचाने की सेटिंग वाला मोड उपलब्ध नहीं है, तो ये काम किए जा सकते हैं:

  • [C-11-1] ऐसी कोई गतिविधि होनी चाहिए जो Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS इंटेंट पर क्लिक करें, लेकिन उसे नो-ऑप के रूप में लागू किया जा सकता है.

अगर डिवाइस लागू करने की सुविधा, इसके ज़रिए कैमरे के लिए काम करने का एलान करती है android.hardware.camera.any, वे:

अगर डिवाइस लागू करने की प्रोसेस android.software.device_admin की रिपोर्ट करती है, तो:

अगर डिवाइस लागू करने के तरीके के बारे में android.software.autofill का एलान किया गया है फ़ीचर फ़्लैग, वे:

  • [C-14-1] AutofillService को पूरी तरह से लागू करना ज़रूरी है और AutofillManager एपीआई और android.settings.REQUEST_SET_AUTOFILL_SERVICE का पालन करते हैं यह अनुमति देनी चाहिए कि ऑटोमैटिक भरने की सुविधा को चालू और बंद करने के लिए, ऐप्लिकेशन की सेटिंग का डिफ़ॉल्ट मेन्यू दिखाया जाए और उपयोगकर्ता के लिए, ऑटोमैटिक भरने की डिफ़ॉल्ट सेवा को बदलें.

अगर डिवाइस पर लागू किए गए डिवाइस में पहले से इंस्टॉल किया गया ऐप्लिकेशन शामिल है या आपको इस्तेमाल के आंकड़ों को ऐक्सेस करने के लिए, तीसरे पक्ष के ऐप्लिकेशन को:

  • [C-SR-2] का बहुत ज़्यादा सुझाव दिया जाता है, ताकि उपयोगकर्ता या इस समस्या के जवाब में इस्तेमाल के आंकड़ों की ऐक्सेस रद्द कर सकता है android.settings.ACTION_USAGE_ACCESS_SETTINGS उन ऐप्लिकेशन के लिए इंटेंट जो android.permission.PACKAGE_USAGE_STATS का एलान करते हैं अनुमति.

अगर डिवाइस पर लागू होने वाले किसी भी ऐप्लिकेशन के साथ-साथ, पहले से इंस्टॉल किए गए ऐप्लिकेशन भी इस्तेमाल करने की अनुमति नहीं दी जाती है इस्तेमाल के आंकड़ों को ऐक्सेस करने से लेकर, उन्हें:

  • [C-15-1] ऐसी गतिविधि होनी चाहिए जो android.settings.ACTION_USAGE_ACCESS_SETTINGS इंटेंट पैटर्न का इस्तेमाल करें, लेकिन इसे नो-ऑप के रूप में लागू करना ज़रूरी है, यानी जब उपयोगकर्ता को ऐक्सेस देने से मना कर दिया जाता है.

अगर डिवाइस लागू करने की प्रोसेस में, उन गतिविधियों के लिंक दिखते हैं जो AutoService_passwordsActivity सेटिंग या समान प्रणाली से उपयोगकर्ता पासवर्ड के लिंक में, वे:

  • [C-16-1] ऑटोमैटिक जानकारी भरने की सभी इंस्टॉल की गई सेवाओं के लिए, ऐसे लिंक दिखाना ज़रूरी है.

अगर डिवाइस लागू करने के तरीके VoiceInteractionService के साथ काम करते हैं और उनमें ये भी काम करते हैं एक बार में इंस्टॉल किए गए इस API का उपयोग करके एक से ज़्यादा ऐप्लिकेशन इंस्टॉल करते हैं, तो वे:

  • [C-18-1] android.settings.ACTION_VOICE_INPUT_SETTINGS का पालन करना ज़रूरी है इंटेंट, वॉइस इनपुट और असिस्ट के लिए डिफ़ॉल्ट ऐप्लिकेशन सेटिंग मेन्यू दिखाने के इरादे से बनाया गया है.

अगर लागू किए गए डिवाइस पर android.hardware.audio.output सुविधा की रिपोर्ट मिलती है, तो वे:

  • [C-SR-3] android.intent.action.TTS_SERVICE का पालन करने के लिए खास तौर पर सुझाया जाता है android.Speech.tts.engine.INSTALL_TTS_DATA और android.speech.tts.engine.GET_SAMPLE_TEXT इंटेंट में देने के लिए एक गतिविधि मौजूद है SDK टूल में बताए गए इन इंटेंट को पूरा करने के बारे में यहां बताया गया है.

Android में इंटरैक्टिव स्क्रीनसेवर की सुविधा शामिल है, जिनके बारे में पहले बताया गया था पर काम कर सकती हैं. स्क्रीन सेवर की मदद से उपयोगकर्ता, किसी डिवाइस पर ऐप्लिकेशन का इस्तेमाल करते समय उसका इस्तेमाल कर सकते हैं पावर सोर्स से कनेक्ट किया गया डिवाइस कुछ समय से इस्तेमाल में नहीं है या किसी डेस्क डॉक में डॉक किया हुआ है. डिवाइस पर लागू करना:

  • इसमें स्क्रीन सेवर के लिए सहायता शामिल होनी चाहिए और उपयोगकर्ताओं की ओर से स्क्रीन सेवर कॉन्फ़िगर करने के लिए android.settings.DREAM_SETTINGS इंटेंट.

अगर डिवाइस इंप्लीमेंटेशन की रिपोर्ट android.hardware.nfc.uicc या android.hardware.nfc.ese को देती है, तो वे:

3.2.4. सेकंडरी/एक से ज़्यादा डिसप्ले पर गतिविधियां

अगर डिवाइस पर लागू होने वाली सामान्य Android गतिविधियों को एक डिसप्ले से दूसरे पर जाते हैं, तो:

  • [C-1-1] android.software.activities_on_secondary_displays को सेट करना ज़रूरी है फ़ीचर फ़्लैग.
  • [C-1-2] इस बात की गारंटी देना ज़रूरी है कि एपीआई पर चलने वाले ऐप्लिकेशन की तरह ही एपीआई काम करता है प्राइमरी डिसप्ले है.
  • [C-1-3] ज़रूरी है कि नई गतिविधि को उसी डिसप्ले पर दिखाया जाए जिसमें इसे तब लॉन्च किया गया, जब नई गतिविधि को बिना टारगेट तय किए लॉन्च किया गया ActivityOptions.setLaunchDisplayId() के ज़रिए दिखाया जाएगा एपीआई.
  • [C-1-4] ऐसी सभी गतिविधियों को बंद करना ज़रूरी है जिनके सामने डिसप्ले Display.FLAG_PRIVATE फ़्लैग हटा दिया जाता है.
  • [C-1-5] डिवाइस लॉक होने पर, कॉन्टेंट को सभी स्क्रीन पर सुरक्षित तरीके से छिपाना ज़रूरी है सुरक्षित लॉक स्क्रीन के साथ, जब तक कि ऐप्लिकेशन लॉक स्क्रीन पर दिखने के लिए ऑप्ट इन न करे Activity#setShowWhenLocked() का इस्तेमाल करके स्क्रीन एपीआई.
  • android.content.res.Configuration होना चाहिए जो उस डिसप्ले से जुड़ी होती है, ताकि उसे दिखाया जा सके, ऑपरेट किया जा सके, और सही तरीके से काम करता है. साथ ही, किसी गतिविधि के लॉन्च होने पर, उसके साथ काम करता है सेकंडरी डिसप्ले.

अगर डिवाइस लागू करने की सुविधा, सेकंडरी डिवाइस पर सामान्य Android गतिविधियों को लॉन्च करने की अनुमति देती है दूसरे डिसप्ले और दूसरे डिसप्ले में android.view.Display.FLAG_PRIVATE है फ़्लैग करें:

  • [C-3-1] सिर्फ़ उस डिसप्ले, सिस्टम, और गतिविधियों के मालिक के पास उस डिसप्ले पर लॉन्च करना ज़रूरी है. कोई भी व्यक्ति इसे लॉन्च कर सकता है ऐसा डिसप्ले जिसमें android.view.Display.FLAG_PUBLIC हो फ़्लैग करें.

3.3. नेटिव एपीआई के साथ काम करने की सुविधा

नेटिव कोड के साथ काम करने में समस्या आ रही है. इस वजह से, डिवाइस लागू करने वाले वे लोग होते हैं जो:

  • [C-SR-1] लाइब्रेरी के लागू करने के तरीके का इस्तेमाल करने का सुझाव दिया जाता है नीचे दिए गए लिंक की सूची, अपस्ट्रीम Android ओपन सोर्स प्रोजेक्ट में दी गई है.

3.3.1. ऐप्लिकेशन बाइनरी इंटरफ़ेस

मैनेज किए जा रहे Delvik बाइट कोड को ऐप्लिकेशन में दिए गए नेटिव कोड में कॉल किया जा सकता है ईएलएफ़ .so फ़ाइल के तौर पर .apk फ़ाइल को डिवाइस के सही हार्डवेयर के लिए इकट्ठा किया गया है आर्किटेक्चर. नेटिव कोड, बुनियादी प्रोसेसर पर बहुत ज़्यादा निर्भर करता है टेक्नोलॉजी है, तो Android कई ऐप्लिकेशन बाइनरी इंटरफ़ेस (एबीआई) Android एनडीके (NDK).

डिवाइस पर यह सुविधा लागू करना:

  • [C-0-1] एक या इससे ज़्यादा तय किए गए Android NDK ABI के साथ काम करना ज़रूरी है.
  • [C-0-2] मैनेज किए गए एनवायरमेंट में चल रहे कोड के साथ काम करना ज़रूरी है, ताकि मानक जावा नेटिव इंटरफ़ेस (जेएनआई) का इस्तेमाल करके नेटिव कोड में कॉल करें सिमेंटिक्स.
  • [C-0-3] सोर्स के साथ काम करना चाहिए (यानी हेडर के साथ काम करना चाहिए) और सूची में मौजूद हर ज़रूरी लाइब्रेरी के साथ, बाइनरी के साथ काम करता है (एबीआई के लिए) देखें.
  • [C-0-5] नेटिव ऐप्लिकेशन बाइनरी इंटरफ़ेस की सटीक रिपोर्ट देना ज़रूरी है android.os.Build.SUPPORTED_ABIS के ज़रिए, डिवाइस के साथ काम करने वाला (एबीआई), android.os.Build.SUPPORTED_32_BIT_ABIS, और android.os.Build.SUPPORTED_64_BIT_ABIS पैरामीटर, हर पैरामीटर को कॉमा लगाकर अलग किया गया है सबसे ज़्यादा से सबसे कम पसंदीदा के क्रम में की गई एबीआई की सूची.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [C-0-6] ऊपर दिए गए पैरामीटर के ज़रिए, नीचे दी गई चीज़ों का एक सबसेट रिपोर्ट करना ज़रूरी है एबीआई की सूची बनाएं. इसमें ऐसे किसी भी एबीआई की जानकारी शामिल नहीं होनी चाहिए जो सूची में शामिल नहीं है.
    • armeabi (अब एनडीके से टारगेट के तौर पर काम नहीं करता)
    • armeabi-v7a
    • arm64-v8a
    • x86
    • x86-64
    • riscv64

नई ज़रूरी शर्तें खत्म करना

  • [C-0-7] नेटिव एपीआई उपलब्ध कराते हुए, नीचे दी गई सभी लाइब्रेरी बनाना ज़रूरी है, नेटिव कोड वाले ऐप्लिकेशन के लिए उपलब्ध:

    • libaaudio.so (ऑडियो नेटिव ऑडियो सहायता)
    • libamidi.so (android.software.midi की सुविधा होने पर, नेटिव एमआईडीआई की सुविधा) के सेक्शन 5.9 में दी गई जानकारी के हिसाब से दावा किया गया है)
    • libandroid.so (Android गतिविधि से जुड़ी नेटिव सुविधा)
    • libc (C लाइब्रेरी)
    • libcamera2ndk.so
    • libdl (डाइनैमिक लिंकर)
    • libEGL.so (मूल OpenGL सरफ़ेस मैनेजमेंट)
    • libGLESv1_CM.so (OpenGL ES 1.x)
    • libGLESv2.so (OpenGL ES 2.0)
    • libGLESv3.so (OpenGL ES 3.x)
    • libicui18n.so
    • libicuuc.so
    • libjnigraphics.so
    • liblog (Android लॉगिंग)
    • libmediandk.so (नेटिव मीडिया एपीआई के लिए सहायता)
    • libm (गणित की लाइब्रेरी)
    • libneuralnetworks.so (न्यूरल नेटवर्क एपीआई)
    • libOpenMAXAL.so (OpenMAX AL 1.0.1 सहायता)
    • libOpenSLES.so (OpenSL ES 1.0.1 ऑडियो सहायता)
    • libRS.so
    • libstdc++ (C++ के लिए कम से कम काम)
    • libvulkan.so (Vulkan)
    • libz (Zlib कंप्रेशन)
    • जेएनआई इंटरफ़ेस
  • [C-0-8] नेटिव लाइब्रेरी के लिए सार्वजनिक फ़ंक्शन को जोड़ना या हटाना ज़रूरी नहीं है ऊपर दी गई सूची में मौजूद हैं.

  • [C-0-9] ज़रूरी है कि उन गैर-एओएसपी लाइब्रेरी की सूची बनाई जाए जिन्हें सीधे तौर पर, /vendor/etc/public.libraries.txt में तीसरे पक्ष के ऐप्लिकेशन.

  • [C-0-10] ऐसी कोई दूसरी नेटिव लाइब्रेरी नहीं दिखाना चाहिए जिसे लागू किया गया हो और एपीआई को टारगेट करने वाले तीसरे पक्ष के ऐप्लिकेशन को, एओएसपी में सिस्टम लाइब्रेरी के तौर पर उपलब्ध कराई जाती है लेवल 24 या उससे ज़्यादा होने चाहिए, क्योंकि वे रिज़र्व हैं.

  • [C-0-11] OpenGL ES 3.1 और Android एक्सटेंशन पैक को एक्सपोर्ट करना ज़रूरी है फ़ंक्शन सिंबल का इस्तेमाल करता है, जैसा कि libGLESv3.so लाइब्रेरी के ज़रिए NDK में बताया गया है. ध्यान दें कि सभी सिंबल का मौजूद होना ज़रूरी है, लेकिन सेक्शन 7.1.4.1 में में आपको पूरी जानकारी देनी होगी. इसे पूरा करने के बाद, मिलते-जुलते फ़ंक्शन होने चाहिए.

  • [C-0-12] कोर के लिए फ़ंक्शन सिंबल एक्सपोर्ट करना ज़रूरी है Vulkan 1.1 फ़ंक्शन सिंबल और VK_KHR_surface, VK_KHR_android_surface, VK_KHR_swapchain, VK_KHR_maintenance1, और VK_KHR_get_physical_device_properties2 एक्सटेंशन libvulkan.so लाइब्रेरी. ध्यान दें कि सभी प्रतीक मौजूद होने चाहिए, सेक्शन 7.1.4.2 पूरी जानकारी के साथ, हर फ़ंक्शन को लागू करने की उम्मीद की जाती है.

  • इसे उस सोर्स कोड और हेडर फ़ाइलों का इस्तेमाल करके बनाया जाना चाहिए जो इसमें उपलब्ध है अपस्ट्रीम Android ओपन सोर्स प्रोजेक्ट के लिए काम करता है.

ध्यान दें कि Android की आने वाली रिलीज़ में, अतिरिक्त एबीआई.

3.3.2. 32-बिट ARM नेटिव कोड के साथ काम करता है

अगर डिवाइस लागू करने की प्रोसेस में, armeabi एबीआई के साथ काम करने की रिपोर्ट मिलती है, तो ये:

  • [C-3-1] armeabi-v7a के साथ भी काम करना चाहिए और अपनी मदद इस तरह से देनी चाहिए: armeabi का इस्तेमाल, सिर्फ़ पुराने ऐप्लिकेशन के साथ काम करने की सुविधा के लिए किया जाता है.

अगर डिवाइस पर काम करने वाले डिवाइस पर ऐप्लिकेशन के लिए, armeabi-v7a एबीआई के साथ काम करने की जानकारी मिलती है, तो इस एबीआई का इस्तेमाल करके, वे:

  • [C-2-1] /proc/cpuinfo में नीचे दी गई लाइनें शामिल होनी चाहिए और ऐसा नहीं होना चाहिए उसी डिवाइस पर वैल्यू में बदलाव कर सकता है. भले ही, उसे अन्य एबीआई ने पढ़ा हो.

    • Features:, इसके बाद ARMv7 सीपीयू की वैकल्पिक सुविधाओं की सूची डिवाइस पर काम करता है.
    • CPU architecture: के बाद, डिवाइस की ARM का सबसे अच्छा आर्किटेक्चर (जैसे, "आठ" ARMv8 डिवाइसों के लिए.
  • [C-2-2] इन कार्रवाइयों को हमेशा उपलब्ध कराना ज़रूरी है, भले ही ऐसे मामले जहां एबीआई को ARMv8 आर्किटेक्चर पर लागू किया जाता है, तो नेटिव सीपीयू सपोर्ट या सॉफ़्टवेयर एम्युलेशन के ज़रिए:

    • SWP और SWPB के लिए निर्देश.
    • CP15ISB, CP15DSB, और CP15DMB बैरियर कार्रवाइयां.
  • [C-2-3] Advanced SIMD के साथ काम करना ज़रूरी है (ए.के.ए. NEON) एक्सटेंशन.

3.4. वेब पर काम करता है

3.4.1. वेबव्यू के साथ काम करने की सुविधा

अगर लागू किए गए डिवाइस पर, android.webkit.Webview एपीआई, वे:

  • [C-1-1] android.software.webview को रिपोर्ट करना ज़रूरी है.
  • [C-1-2] Chromium प्रोजेक्ट बिल्ड का इस्तेमाल करना ज़रूरी है Android पर अपस्ट्रीम Android ओपन सोर्स प्रोजेक्ट से के लागू होने के लिए 15 ब्रांच android.webkit.WebView एपीआई.
  • [C-1-3] वेबव्यू से रिपोर्ट की गई उपयोगकर्ता एजेंट स्ट्रिंग इस फ़ॉर्मैट में होनी चाहिए:

    Mozilla/5.0 (Linux; Android $(VERSION); [$(MODEL)] [बिल्ड/$(BUILD)]; wv) AppleWebKit/537.36 (KHTML, जैसे Gecko) वर्शन/4.0 $(CHROMIUM_VER) मोबाइल सफ़ारी/537.36

    • $(VERSION) स्ट्रिंग का मान android.os.Build.VERSION.रिलीज़.
    • $(MODEL) स्ट्रिंग ख़ाली हो सकती है, लेकिन अगर यह खाली नहीं है तो यह ज़रूरी है इसके मान android.os.Build.MODEL के समान हैं.
    • "बिल्ड/$(बिल्ड)" इसे हटाया जा सकता है, लेकिन अगर यह $(BUILD) मौजूद है स्ट्रिंग, android.os.Build.ID की वैल्यू से मेल खानी चाहिए.
    • $(CHROMIUM_VER) स्ट्रिंग का मान Chromium का वर्शन होना चाहिए को अपस्ट्रीम Android ओपन सोर्स प्रोजेक्ट में देख लिया है.
    • डिवाइस पर लागू होने वाली कार्रवाई से, उपयोगकर्ता एजेंट स्ट्रिंग में मोबाइल को हटाया जा सकता है.
  • वेबव्यू घटक के बराबर HTML5 सुविधाओं के लिए समर्थन शामिल होना चाहिए उपलब्ध हो सकता है और अगर यह सुविधा का इस्तेमाल करती है, तो HTML5 की खास बातें.

  • [C-1-4] प्रोसेस के दौरान, दिए गए कॉन्टेंट या रिमोट यूआरएल कॉन्टेंट को रेंडर करना ज़रूरी है जो उस ऐप्लिकेशन से अलग हो जो वेबव्यू को इंस्टैंशिएट करता है. खास तौर पर अलग रेंडरर प्रोसेस में कम ऐक्सेस होना चाहिए, आपके पास ऐप्लिकेशन की डेटा डायरेक्ट्री का ऐक्सेस न हो, इनके पास नेटवर्क का सीधा ऐक्सेस नहीं होता है. साथ ही, आपके पास सिर्फ़ ज़रूरी कम से कम बाइंडर पर सिस्टम सेवाएं ऐक्सेस करना. वेबव्यू का एओएसपी लागू होने की प्रक्रिया पूरी होती है इस शर्त को पूरा करना ज़रूरी है.

ध्यान दें कि अगर डिवाइस में 32-बिट वाला फ़ॉर्मैट लागू किया जाता है या सुविधा फ़्लैग का एलान किया जाता है android.hardware.ram.low, उन्हें C-1-3 से छूट दी गई है.

3.4.2. इन ब्राउज़र पर काम करता है

अगर डिवाइस पर लागू करने के लिए, सामान्य ब्राउज़र ऐप्लिकेशन का इस्तेमाल किया जाता है, तो का इस्तेमाल करते हैं, तो वे:

  • [C-1-1] Google Merchant Center से जुड़े इन एपीआई के साथ काम करना चाहिए HTML5:
  • [C-1-2] HTML5/W3C के साथ काम करना चाहिए webstorage API और HTML5/W3C पर काम करता है IndexedDB API. ध्यान दें कि जिस तरह वेब डेवलपमेंट स्टैंडर्ड से जुड़ी संस्थाएं, IndexedDB से बदल रहे हैं Webstorage, IndexedDB, Android का अगला वर्शन होने वाला है.
  • स्टैंडअलोन ब्राउज़र ऐप्लिकेशन में, कस्टम उपयोगकर्ता एजेंट स्ट्रिंग भेजी जा सकती है.
  • को इन विज्ञापनों के लिए, ज़्यादा से ज़्यादा स्टैंडअलोन पर जितना हो सके HTML5 ब्राउज़र ऐप्लिकेशन (चाहे अपस्ट्रीम WebKit ब्राउज़र पर आधारित हो आवेदन या तीसरे पक्ष से बदलें).

हालांकि, अगर डिवाइस इंप्लिमेंटेशन में स्टैंडअलोन ब्राउज़र शामिल नहीं किया गया है, तो वे:

  • [C-2-1] ज़रूरी है कि वे पब्लिक इंटेंट पैटर्न के हिसाब से काम करें, जैसा कि सेक्शन 3.2.3.1 में दिया गया है.

3.5. एपीआई के व्यवहार के साथ काम करने की सुविधा

डिवाइस पर यह सुविधा लागू करना:

  • [C-0-9] यह पक्का करना ज़रूरी है कि एपीआई के व्यवहार के साथ काम करने वाले सभी एपीआई इंस्टॉल किए गए ऐप्लिकेशन तब तक नहीं जोड़े जा सकते, जब तक कि सेक्शन 3.5.1.
  • [C-0-10] अनुमति वाली सूची में शामिल करने के ऐसे तरीके को लागू नहीं करना चाहिए जिससे एपीआई पक्का हो सके सिर्फ़ डिवाइस की ओर से चुने गए ऐप्लिकेशन के लिए, व्यवहार के आधार पर काम करने की सुविधा लागू करने वाले.

हर तरह के एपीआई का व्यवहार (मैनेज किया जा रहा, सॉफ़्ट, नेटिव, और वेब) ऐसा होना चाहिए अपस्ट्रीम के पसंदीदा लागू करने के हिसाब से हो Android ओपन सोर्स प्रोजेक्ट. कुछ खास इलाके इनके साथ काम करते हैं:

  • [C-0-1] डिवाइसों को स्टैंडर्ड इंटेंट.
  • [C-0-2] डिवाइसों को एक खास तरह का सिस्टम कॉम्पोनेंट, जैसे कि सेवा, ऐक्टिविटी, ContentProvider वगैरह.
  • [C-0-3] डिवाइसों को स्टैंडर्ड अनुमति के सिमेंटिक्स नहीं बदलने चाहिए.
  • डिवाइसों को बैकग्राउंड में चलने वाले ऐप्लिकेशन पर लागू होने वाली सीमाओं में बदलाव नहीं करना चाहिए. खास तौर पर, बैकग्राउंड ऐप्लिकेशन के लिए:
    • [C-0-4] उन्हें उन कॉलबैक को एक्ज़ीक्यूट करना बंद करना होगा जो GnssMeasurement से आउटपुट पाने के लिए ऐप्लिकेशन और GnssNavigationMessage.
    • [C-0-5] उन्हें ऐसे अपडेट की फ़्रीक्वेंसी को सीमित करना होगा ऐप्लिकेशन को LocationManager API क्लास या WifiManager.startScan() तरीका.
    • [C-0-6] अगर ऐप्लिकेशन, एपीआई लेवल 25 या उसके बाद के लेवल को टारगेट करता है, तो के इंप्लिसिट ब्रॉडकास्ट के लिए ब्रॉडकास्ट रिसीवर को रजिस्टर करने की अनुमति दें ऐप्लिकेशन के मेनिफ़ेस्ट में स्टैंडर्ड Android इंटेंट, जब तक कि ब्रॉडकास्ट न हो इंटेंट के लिए "signature" या "signatureOrSystem" की ज़रूरत है protectionLevel की अनुमति है या छूट की सूची.
    • [C-0-7] अगर ऐप्लिकेशन, एपीआई लेवल 25 या उसके बाद के लेवल को टारगेट करता है, तो उन्हें बंद करना होगा ऐप की बैकग्राउंड सेवाओं का इस्तेमाल कर सकें, जैसे कि ऐप ने सेवाओं की stopSelf() का इस्तेमाल किया जा सकता है. ऐसा तब तक होगा, जब तक कि ऐप्लिकेशन को ऐसा टास्क जो उपयोगकर्ता को दिखता हो.
    • [C-0-8] अगर ऐप्लिकेशन, एपीआई लेवल 25 या उसके बाद के लेवल को टारगेट करता है, तो उन्हें ऐप्लिकेशन के वेकलॉक को छोड़ दें.
  • [C-0-11] डिवाइसों को सुरक्षा देने वाली इन कंपनियों को पहले नंबर के तौर पर लौटाना होगा सात अरे के मान, Security.getProviders() विधि, दिए गए क्रम में और दिए गए नामों के साथ (जैसा कि Provider.getName()) और क्लास का इस्तेमाल करें. ऐसा तब तक होगा, जब तक ऐप्लिकेशन insertProviderAt() या removeProvider(). डिवाइसों की सूची कंपनियों की तय सूची के बाद, सेवा देने वाली दूसरी कंपनियां भी दिखाई जा सकती हैं देखें.
    1. AndroidNSSP - android.security.net.config.NetworkSecurityConfigProvider
    2. AndroidOpenSSL - com.android.org.conscrypt.OpenSSLProvider
    3. CertPathProvider - sun.security.provider.CertPathProvider
    4. AndroidKeyStoreBCWorkaround - android.security.keystore.AndroidKeyStoreBCWorkaroundProvider
    5. BC - com.android.org.bouncycastle.jce.provider.BouncyCastleProvider
    6. HarmonyJSSE - com.android.org.conscrypt.JSSEProvider
    7. AndroidKeyStore - android.security.keystore.AndroidKeyStoreProvider

ऊपर दी गई सूची पूरी नहीं है. कंपैटबिलिटी टेस्ट सुइट (सीटीएस) के टेस्ट के कई अहम हिस्से हैं. यह पक्का करने की ज़िम्मेदारी लागू करने वाले की है कि ग्राहक के व्यवहार के मुताबिक उसे सही तरीके से लागू किया जाए या नहीं Android ओपन सोर्स प्रोजेक्ट के साथ किया जा सकता है. इसी वजह से, डिवाइस लागू करने वाले Android ओपन सोर्स प्रोजेक्ट के ज़रिए उपलब्ध सोर्स कोड का इस्तेमाल करना चाहिए, जहां बल्कि सिस्टम के अहम हिस्सों को फिर से लागू करने में मदद मिलती है.

3.5.1. ऐप्लिकेशन पर पाबंदी

अगर डिवाइस लागू करने के लिए, ऐप्लिकेशन पर पाबंदी लगाने के लिए मालिकाना हक का कोई तरीका लागू किया जाता है, तो (उदाहरण के लिए, एपीआई के ऐसे व्यवहार को बदलना या प्रतिबंधित करना जो जो SDK टूल में बताई गई हैं) और यह तरीका पाबंदी वाले ऐप्लिकेशन स्टैंडबाय बकेट की तुलना में ज़्यादा पाबंदियों वाला है, तो:

  • [C-1-1] उपयोगकर्ता को पाबंदी वाले ऐप्लिकेशन की सूची देखने की अनुमति देनी होगी.
  • [C-1-2] लोगों के लिए इन सभी सुविधाओं को चालू / बंद करने का अधिकार देना ज़रूरी है मालिकाना हक से जुड़ी पाबंदियों को लागू करता है.
  • [C-1-3] इस नीति को बताए बिना, मालिकाना हक से जुड़ी ये पाबंदियां अपने-आप लागू नहीं होनी चाहिए इससे यह पता चलता है कि सिस्टम की परफ़ॉर्मेंस में सुधार हुआ है. हालांकि, हो सकता है कि इस दौरान ऐप्लिकेशन पर पाबंदियां लागू की जाएं सिस्टम की खराब परफ़ॉर्मेंस का पता लगाने पर, जैसे कि अटके हुए वेकलॉक, लंबे समय तक चलना सेवाओं और अन्य शर्तों को पूरा करना ज़रूरी है. ये शर्तें डिवाइस के हिसाब से तय की जा सकती हैं लागू करने वाले हों, लेकिन यह भी ध्यान में रखना चाहिए कि सिस्टम की परफ़ॉर्मेंस पर ऐप्लिकेशन का क्या असर पड़ा है. किसी और तरीके से जो पूरी तरह से सिस्टम की परफ़ॉर्मेंस से जुड़े न हों. जैसे, ऐप्लिकेशन की बाज़ार में लोकप्रियता की कमी, इसे मापदंड के रूप में उपयोग नहीं किया जाना चाहिए.

  • [C-1-4] ऐप्लिकेशन के लिए, मालिकाना हक से जुड़ी ये पाबंदियां अपने-आप लागू नहीं होनी चाहिए जब किसी उपयोगकर्ता ने मैन्युअल रूप से, ऐप्लिकेशन पर लगी पाबंदियों को बंद किया हो और उपयोगकर्ता को इसका सुझाव दिया जा सकता हो ताकि इन मालिकाना हक से जुड़ी पाबंदियों को लागू किया जा सके.

  • [C-1-5] उपयोगकर्ताओं को यह बताना ज़रूरी है कि मालिकाना हक से जुड़ी ये पाबंदियां किसी ऐप को अपडेट करता है. ऐसी जानकारी 24 घंटे में देनी ज़रूरी है को लागू करने से पहले ध्यान दें.

  • [C-1-6] ActivityManager.isbackground कक्षा() के लिए 'सही' वैल्यू दिखानी ज़रूरी है का तरीका इस्तेमाल करें.

  • [C-1-7] उस टॉप फ़ोरग्राउंड ऐप्लिकेशन पर पाबंदी नहीं लगानी चाहिए जिसका इस्तेमाल खास तौर पर उपयोगकर्ता है.

  • [C-1-8] ऐसे मामलों में, किसी ऐप्लिकेशन पर मालिकाना हक से जुड़ी इन पाबंदियों को निलंबित करना होगा उपयोगकर्ता, ऐप्लिकेशन को खास तौर पर इस्तेमाल करना शुरू कर देता है. इस वजह से, ऐप्लिकेशन का फ़ोरग्राउंड में सबसे ऊपर का इस्तेमाल करें.

  • [C-1-10] ऐसा सार्वजनिक और साफ़ दस्तावेज़ या वेबसाइट देना ज़रूरी है जिसमें मालिकाना हक से जुड़ी पाबंदियां किस तरह लागू की जाती हैं. इस दस्तावेज़ या वेबसाइट के लिए यह ज़रूरी है कि लिंक किया जा सकता है. साथ ही, इसमें ये चीज़ें शामिल होनी चाहिए:

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

अगर कोई ऐप्लिकेशन डिवाइस पर पहले से इंस्टॉल है और उसे किसी ऐप्लिकेशन ने साफ़ तौर पर कभी इस्तेमाल नहीं किया है उपयोगकर्ता 30 दिन से ज़्यादा समय तक रहा हो, तो [C-1-3] [C-1-5] को छूट मिली हुई है.

अगर डिवाइस लागू करने की प्रोसेस में, ऐप्लिकेशन पर लगी पाबंदियों को बढ़ाया जाता है में शामिल हैं, तो वे:

  • [C-2-1]इस दस्तावेज़ में बताए गए तरीके का पालन करना ज़रूरी है.

3.5.2. ऐप्लिकेशन हाइबरनेशन

अगर लागू किए गए डिवाइसों में, एओएसपी में शामिल ऐप्लिकेशन हाइबरनेशन शामिल है या एओएसपी में शामिल सुविधा को बढ़ाता है, इसके बाद वे:

  • [C-1-1] सेक्शन 3.5.1 में दी गई सभी ज़रूरी शर्तों को पूरा करना ज़रूरी है. इसमें ये शर्तें शामिल नहीं हैं: [C-1-6] और [C-1-3].
  • [C-1-2] लोगों के लिए ऐप्लिकेशन पर पाबंदी सिर्फ़ तब लागू करनी चाहिए, जब इस बात का सबूत कि उपयोगकर्ता ने कुछ समय से ऐप्लिकेशन का इस्तेमाल नहीं किया है. यह हमारा सुझाव है कि अवधि को एक महीने या उससे ज़्यादा रखें. इस्तेमाल करना ज़रूरी है के माध्यम से किसी एक पक्ष के UseStats#getLastTimeVisible() एपीआई या ऐसा कोई भी कॉन्टेंट जिसकी वजह से ऐप्लिकेशन बंद रहने की स्थिति को छोड़ सकता है, इनमें सर्विस बाइंडिंग, कॉन्टेंट देने वाले की बाइंडिंग, साफ़ तौर पर किए गए ब्रॉडकास्ट वगैरह शामिल हैं. जिसे नए एपीआईUseStats#getLastTimeAnycomponentUsed() से ट्रैक किया जाएगा.
  • [C-1-3] डिवाइस इस्तेमाल करने वाले सभी लोगों पर सिर्फ़ तब पाबंदियां लागू होनी चाहिए, जब वे का सबूत है कि किसी भी उपयोगकर्ता ने कुछ अवधि से पैकेज का इस्तेमाल नहीं किया है समय. हमारा सुझाव है कि इस अवधि को एक महीने या उससे ज़्यादा रखें.
  • [C-1-4] ऐप्लिकेशन को इस बात की अनुमति नहीं देनी चाहिए कि वह गतिविधि के इंटेंट का जवाब देने में असमर्थ हो, कॉन्टेंट देने के अनुरोध या साफ़ तौर पर किए गए ब्रॉडकास्ट.

एओएसपी में ऐप्लिकेशन के हाइबरनेशन की सेटिंग ऊपर दी गई ज़रूरी शर्तों को पूरा करती है.

3.6. एपीआई नाम स्थान

Android, Java की ओर से तय किए गए पैकेज और क्लास नेमस्पेस कन्वेंशन का पालन करता है प्रोग्रामिंग भाषा है. यह पक्का करने के लिए कि तीसरे पक्ष के ऐप्लिकेशन के साथ काम करता है या नहीं, डिवाइस लागू करने वाले लोगों को किसी भी तरह का प्रतिबंधित बदलाव (नीचे देखें) नहीं करना चाहिए ये पैकेज नेमस्पेस:

  • java.*
  • javax.*
  • sun.*
  • android.*
  • androidx.*
  • com.android.*

इसका मतलब है कि:

  • [C-0-1] Android प्लैटफ़ॉर्म पर, सार्वजनिक तौर पर सार्वजनिक किए गए एपीआई में बदलाव नहीं करना चाहिए किसी तरीके या क्लास के हस्ताक्षर को बदलकर या क्लास या क्लास को हटाकर फ़ील्ड.
  • [C-0-2] ऐसा कोई कॉन्टेंट नहीं जोड़ा जाना चाहिए जो सार्वजनिक तौर पर सार्वजनिक तौर पर दिख रहा हो. जैसे, क्लास या मौजूदा क्लास या इंटरफ़ेस के लिए इंटरफ़ेस या फ़ील्ड या मेथड) या टेस्ट या ऊपर दिए गए नेमस्पेस में एपीआई के लिए, सिस्टम एपीआई का इस्तेमाल करें. एक "सार्वजनिक रूप से सार्वजनिक एलिमेंट" ऐसा कोई भी निर्माण है जिसे "@hide" से नहीं सजाया गया है इस रूप में मार्कर का इस्तेमाल अपस्ट्रीम Android सोर्स कोड में किया गया है.

डिवाइस लागू करने वाले लोग, एपीआई के बुनियादी लागू करने के तरीके में बदलाव कर सकते हैं. हालांकि, ऐसे संशोधन:

  • [C-0-3] के बताए गए व्यवहार और Java-भाषा सिग्नेचर पर असर नहीं डालना चाहिए सार्वजनिक तौर पर उपलब्ध एपीआई के साथ.
  • [C-0-4] विज्ञापन नहीं दिखाए जाने चाहिए या डेवलपर को इसके बारे में नहीं बताया जाना चाहिए.

हालांकि, डिवाइस लागू करने वाले लोग स्टैंडर्ड Android के बाहर कस्टम एपीआई जोड़ सकते हैं नेमस्पेस, लेकिन कस्टम एपीआई:

  • [C-0-5] किसी दूसरे डोमेन के मालिकाना हक वाले नेमस्पेस में नहीं होना चाहिए संगठन. उदाहरण के लिए, डिवाइस लागू करने वाले को com.google.* या इससे मिलता-जुलता नेमस्पेस: सिर्फ़ Google ऐसा कर सकता है. इसी तरह, Google को दूसरी कंपनियों में एपीआई नहीं जोड़ने चाहिए नेमस्पेस.
  • [C-0-6] ऐप्लिकेशन को Android के साथ शेयर की गई लाइब्रेरी में पैकेज के तौर पर डालना ज़रूरी है, ताकि सिर्फ़ ऐप्लिकेशन के लिए जो खास तौर पर इनका इस्तेमाल करते हैं (<uses-library> तकनीक के ज़रिए) ऐसे एपीआई के ज़्यादा मेमोरी इस्तेमाल से असर पड़ता है.

डिवाइस लागू करने वाले लोग, एनडीके के अलावा दूसरी भाषाओं में कस्टम एपीआई जोड़ सकते हैं एपीआई, लेकिन कस्टम एपीआई:

  • [C-1-1] एनडीके (NDK) की लाइब्रेरी या किसी अन्य कंपनी की लाइब्रेरी में नहीं होना चाहिए बताए गए अनुसार संगठन यहां पढ़ें.

अगर डिवाइस लागू करने वाला कोई व्यक्ति ऊपर दिए गए पैकेज नेमस्पेस में से किसी एक को बेहतर बनाने का सुझाव देता है (जैसे, किसी मौजूदा एपीआई में नई काम की सुविधा जोड़कर या कोई नई सुविधा जोड़ना API), तो लागू करने वाले को source.android.com पर जाना चाहिए और बदलावों के योगदान की प्रक्रिया शुरू करके, दी गई है.

ध्यान दें कि ऊपर दी गई पाबंदियां, नाम रखने के स्टैंडर्ड नियमों के मुताबिक हैं Java प्रोग्रामिंग लैंग्वेज में एपीआई; इस सेक्शन का मकसद सिर्फ़ यह जानकारी है कि और उन्हें इस कंपैटिबिलिटी में शामिल किए जाने के ज़रिए बाध्य करने वाली होगा. परिभाषा.

3.7. रनटाइम के साथ काम करने की सुविधा

डिवाइस पर यह सुविधा लागू करना:

  • [C-0-1] ज़रूरत के हिसाब से, Delvik exeutable (DEX) फ़ॉर्मैट के साथ काम करना चाहिए और Dalvik बाइटकोड स्पेसिफ़िकेशन और सिमैंटिक.

  • [C-0-2] वैल्यू को बदलने के लिए, Delvik रनटाइम को कॉन्फ़िगर करना ज़रूरी है अपस्ट्रीम Android प्लैटफ़ॉर्म के मुताबिक और यहां दी गई टेबल में बताया गया है. (इसके लिए सेक्शन 7.1.1 देखें स्क्रीन का साइज़ और स्क्रीन की सघनता की परिभाषाएं.)

  • उसे Android रनटाइम (ART) का इस्तेमाल करना चाहिए, जो कि अपस्ट्रीम रेफ़रंस है डाल्विक एक्ज़िक्यूटेबल फ़ॉर्मैट को लागू करना होगा, और लागू किया गया पैकेज मैनेजमेंट सिस्टम.

  • एक्ज़ीक्यूशन के अलग-अलग तरीकों के तहत, फ़ज़ टेस्ट चलाना चाहिए और रनटाइम की स्थिरता बनाए रखने के लिए टारगेट आर्किटेक्चर. इससे संदर्भ लें जेफ़ज़ और DexFuzz पर जाकर देखें.

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

स्क्रीन लेआउट स्क्रीन की सघनता कम से कम ऐप्लिकेशन मेमोरी
Android घड़ी 120 डीपीआई (ldpi) 32 एमबी
140 डीपीआई (140 डीपीआई)
160 डीपीआई (एमडीपीआई)
180 डीपीआई (180 डीपीआई)
200 डीपीआई (200 डीपीआई)
213 dpi (tvdpi)
220 डीपीआई (220 डीपीआई) 36 एमबी
240 डीपीआई (एचडीपीआई)
280 डीपीआई (280 डीपीआई)
320 डीपीआई (xhdpi) 48 एमबी
360 डीपीआई (360 डीपीआई)
400 डीपीआई (400 डीपीआई) 56 एमबी
420 डीपीआई (420 डीपीआई) 64 एमबी
480 डीपीआई (xxhdpi) 88 एमबी
560 डीपीआई (560 डीपीआई) 112 एमबी
640 डीपीआई (xxxhdpi) 154 एमबी
छोटा/सामान्य 120 डीपीआई (ldpi) 32 एमबी
140 डीपीआई (140 डीपीआई)
160 डीपीआई (एमडीपीआई)
180 डीपीआई (180 डीपीआई) 48 एमबी
200 डीपीआई (200 डीपीआई)
213 dpi (tvdpi)
220 डीपीआई (220 डीपीआई)
240 डीपीआई (एचडीपीआई)
280 डीपीआई (280 डीपीआई)
320 डीपीआई (xhdpi) 80 एमबी
360 डीपीआई (360 डीपीआई)
400 डीपीआई (400 डीपीआई) 96 एमबी
420 डीपीआई (420 डीपीआई) 112 एमबी
480 डीपीआई (xxhdpi) 128 एमबी
560 डीपीआई (560 डीपीआई) 192 एमबी
640 डीपीआई (xxxhdpi) 256 एमबी
बड़ा 120 डीपीआई (ldpi) 32 एमबी
140 डीपीआई (140 डीपीआई) 48 एमबी
160 डीपीआई (एमडीपीआई)
180 डीपीआई (180 डीपीआई) 80 एमबी
200 डीपीआई (200 डीपीआई)
213 dpi (tvdpi)
220 डीपीआई (220 डीपीआई)
240 डीपीआई (एचडीपीआई)
280 डीपीआई (280 डीपीआई) 96 एमबी
320 डीपीआई (xhdpi) 128 एमबी
360 डीपीआई (360 डीपीआई) 160 एमबी
400 डीपीआई (400 डीपीआई) 192 एमबी
420 डीपीआई (420 डीपीआई) 228 एमबी
480 डीपीआई (xxhdpi) 256 एमबी
560 डीपीआई (560 डीपीआई) 384 एमबी
640 डीपीआई (xxxhdpi) 512 एमबी
xlarge 120 डीपीआई (ldpi) 48 एमबी
140 डीपीआई (140 डीपीआई) 80 एमबी
160 डीपीआई (एमडीपीआई)
180 डीपीआई (180 डीपीआई) 96 एमबी
200 डीपीआई (200 डीपीआई)
213 dpi (tvdpi)
220 डीपीआई (220 डीपीआई)
240 डीपीआई (एचडीपीआई)
280 डीपीआई (280 डीपीआई) 144 एमबी
320 डीपीआई (xhdpi) 192 एमबी
360 डीपीआई (360 डीपीआई) 240 एमबी
400 डीपीआई (400 डीपीआई) 288 एमबी
420 डीपीआई (420 डीपीआई) 336 एमबी
480 डीपीआई (xxhdpi) 384 एमबी
560 डीपीआई (560 डीपीआई) 576 एमबी
640 डीपीआई (xxxhdpi) 768 एमबी

3.8. यूज़र इंटरफ़ेस के साथ काम करने की सुविधा

3.8.1. लॉन्चर (होम स्क्रीन)

Android में लॉन्चर ऐप्स (होम स्क्रीन) और डिवाइस लॉन्चर को बदलने के लिए तीसरे पक्ष के ऐप्लिकेशन (होम स्क्रीन).

अगर डिवाइस लागू करने की सुविधा, तीसरे पक्ष के ऐप्लिकेशन को डिवाइस बदलने देती है करते हैं, तो वे:

  • [C-1-1] प्लैटफ़ॉर्म के लिए उपलब्ध सुविधा android.software.home_screen का एलान करना ज़रूरी है.
  • [C-1-2] AdaptiveIconDrawable को लौटाना ज़रूरी है तब ऑब्जेक्ट करें, जब तीसरे पक्ष का ऐप्लिकेशन उपलब्ध कराने के लिए <adaptive-icon> टैग का इस्तेमाल करे उनका आइकॉन और PackageManager आइकॉन वापस पाने के तरीकों को कॉल किया जाता है.

अगर डिवाइस पर लागू होने वाला डिफ़ॉल्ट लॉन्चर शामिल है, जो इन-ऐप्लिकेशन के साथ काम करता है पिन करने के बाद:

  • [C-2-1] इसके लिए true की रिपोर्ट करनी होगी ShortcutManager.isRequestPinShortcutSupported().
  • [C-2-2] अनुरोध किया गया शॉर्टकट जोड़ने से पहले, लोगों से उसकी अनुमतियां मांगने की सुविधा होनी चाहिए ShortcutManager.requestPinShortcut() के ज़रिए ऐप्लिकेशन के हिसाब से एपीआई मेथड.
  • [C-2-3] पिन किए गए शॉर्टकट के साथ-साथ डाइनैमिक और स्टैटिक शॉर्टकट के साथ काम करना चाहिए शॉर्टकट के बारे में ज़्यादा जानें, जो ऐप्लिकेशन शॉर्टकट पेज पर दिए गए हैं.

इसके उलट, अगर डिवाइस पर लागू होने वाले इन-ऐप्लिकेशन पिन की सुविधा काम नहीं करती शॉर्टकट, वे:

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

  • [C-4-1] दस्तावेज़ में दर्ज सभी शॉर्टकट सुविधाओं (जैसे, स्टैटिक और और डाइनैमिक शॉर्टकट, पिन करने के शॉर्टकट) के लिए उपलब्ध हैं. ShortcutManager एपीआई क्लास.

अगर डिवाइस पर लागू होने वाला डिफ़ॉल्ट लॉन्चर ऐप्लिकेशन शामिल है, जो ऐप आइकॉन, वे:

  • [C-5-1] NotificationChannel.setShowBadge() का पालन करना ज़रूरी है एपीआई मेथड. दूसरे शब्दों में कहें, तो ऐप्लिकेशन आइकॉन से जुड़ी विज़ुअल कीमत दिखाएं, अगर वैल्यू को true पर सेट किया गया है. साथ ही, इन बटन पर कोई ऐप्लिकेशन आइकॉन बैजिंग स्कीम नहीं दिखाई जाती ऐप्लिकेशन के नोटिफ़िकेशन चैनल में से लोगों ने मान को false के रूप में सेट किया है.
  • इन स्थितियों में, ऐप्लिकेशन आइकॉन के बैज को मालिकाना हक वाली बैज स्कीम से बदला जा सकता है. ऐसा तब हो सकता है, जब तीसरे पक्ष के ऐप्लिकेशन, मालिकाना हक वाली बैजिंग स्कीम के साथ काम करते हैं मालिकाना एपीआई का इस्तेमाल कर सकते हैं, लेकिन उन्हें संसाधनों और मानों का इस्तेमाल करना चाहिए SDK टूल में बताए गए नोटिफ़िकेशन बैज एपीआई के ज़रिए उपलब्ध कराए जाते हैं. जैसे कि Notification.Builder.setNumber() और Notification.Builder.setBadgeIconType() एपीआई.

अगर डिवाइस पर यह सुविधा काम करती है, तो मोनोक्रोम आइकॉन, इन आइकॉन:

  • [C-6-1] इसका इस्तेमाल सिर्फ़ तब किया जाना चाहिए, जब कोई उपयोगकर्ता साफ़ तौर पर इन्हें चालू करता है (उदाहरण के लिए, सेटिंग या वॉलपेपर पिकर मेन्यू).

3.8.2. विजेट

Android, एक कॉम्पोनेंट टाइप तय करके तीसरे पक्ष के ऐप्लिकेशन विजेट के साथ काम करता है और एपीआई और लाइफ़साइकल की मदद से, ऐप्लिकेशन को "AppWidget" असली उपयोगकर्ता को दिखता है.

अगर डिवाइस में तीसरे पक्ष के ऐप्लिकेशन विजेट काम करते हैं, तो वे:

  • [C-1-1] प्लैटफ़ॉर्म की सुविधा के साथ काम करने का एलान करना ज़रूरी है android.software.app_widgets.
  • [C-1-2] इसमें AppWidgets के लिए पहले से मौजूद सहायता को शामिल करना ज़रूरी है और ऐप्लिकेशन विजेट को जोड़ने, कॉन्फ़िगर करने, देखने, और हटाने के लिए यूज़र इंटरफ़ेस की ज़रूरी शर्तें
  • [C-1-3] 4 x 4 वाले विजेट रेंडर करने में सक्षम होना चाहिए . ऐप्लिकेशन विजेट के डिज़ाइन से जुड़े दिशा-निर्देश देखें देखें.
  • लॉक स्क्रीन पर ऐप्लिकेशन विजेट काम कर सकते हैं.

अगर डिवाइस में तीसरे पक्ष के ऐप्लिकेशन विजेट और इन-ऐप्लिकेशन काम करते हैं, तो पिन करने के बाद:

  • [C-2-1] इसके लिए true की रिपोर्ट करनी होगी AppWidgetManager.html.isRequestPinAppWidgetSupported().
  • [C-2-2] अनुरोध किया गया शॉर्टकट जोड़ने से पहले, लोगों से उसकी अनुमतियां मांगने की सुविधा होनी चाहिए AppWidgetManager.requestPinAppWidget() के ज़रिए ऐप्लिकेशन के हिसाब से एपीआई मेथड.

3.8.3. सूचनाएं

Android में Notification और NotificationManager ऐसे एपीआई जो तीसरे पक्ष के ऐप्लिकेशन डेवलपर को लोगों को खास इवेंट की सूचना देने और उपयोगकर्ताओं का ध्यान खींचना हार्डवेयर के कॉम्पोनेंट (जैसे, आवाज़, वाइब्रेशन) का इस्तेमाल करके ध्यान दिया जाता है और लाइट) और सॉफ़्टवेयर सुविधाएं (जैसे नोटिफ़िकेशन शेड, सिस्टम बार) डिवाइस.

3.8.3.1. सूचनाओं का प्रज़ेंटेशन

अगर लागू किए गए डिवाइस पर तीसरे पक्ष के ऐप्लिकेशन, खास इवेंट की सूचना दे सकते हैं, तो ये काम किए जा सकते हैं:

  • [C-1-1] इसमें हार्डवेयर सुविधाओं का इस्तेमाल करने वाली सूचनाओं की सुविधा होनी चाहिए जैसा कि SDK टूल के दस्तावेज़ और डिवाइस पर लागू करने की प्रोसेस पूरी होने तक हार्डवेयर. उदाहरण के लिए, अगर डिवाइस में लागू किए गए किसी डिवाइस में कोई वाइब्रेटर शामिल है, तो ज़रूरी है कि वाइब्रेशन एपीआई को सही तरीके से लागू करें. अगर किसी डिवाइस पर लागू करने की सुविधा उपलब्ध नहीं है हार्डवेयर, संबंधित API को नो-ऑपरेशन के रूप में लागू किया जाना चाहिए. यह व्यवहार इस बारे में ज़्यादा जानकारी सेक्शन 7 में दी गई है.
  • [C-1-2] सभी संसाधनों को सही तरीके से रेंडर करना ज़रूरी है (आइकॉन, ऐनिमेशन फ़ाइलें वगैरह) एपीआई में या स्थिति/सिस्टम बार आइकॉन की स्टाइल गाइड, हालांकि, सूचनाओं के लिए इनसे लोगों को अन्य उपयोगकर्ता अनुभव मिल सकता है Android ओपन सोर्स को लागू करने के बाद मिलने वाले अनुभव से अलग हो सकता है.
  • [C-1-3] ज़रूरी है कि एपीआई सूचनाओं को अपडेट करने, हटाने, और ग्रुप में शामिल करने के लिए.
  • [C-1-4] NotificationChannel की पूरी जानकारी देनी ज़रूरी है SDK टूल में मौजूद एपीआई का दस्तावेज़.
  • [C-1-5] उपयोगकर्ता को किसी खास प्रॉपर्टी को ब्लॉक करने और उसमें बदलाव करने की सुविधा देनी होगी हर चैनल और ऐप्लिकेशन के पैकेज लेवल के हिसाब से, तीसरे पक्ष के ऐप्लिकेशन से मिलने वाली सूचना.
  • [C-1-6] उपयोगकर्ता को, मिटाई गई सूचना दिखाने की अनुमति भी देनी होगी चैनल.
  • [C-1-7] सभी संसाधनों (इमेज, स्टिकर, आइकॉन वगैरह) को सही तरीके से रेंडर करना ज़रूरी है Notification.MessagingStyle के ज़रिए दिया गया सूचना टेक्स्ट के साथ दिखने चाहिए. इसके लिए उदाहरण के लिए, सभी संसाधन दिखाए जाने चाहिए. इनमें दिए गए आइकॉन भी शामिल हैं: android.app.Person का इस्तेमाल किया जा सकता है. setGroupबातचीत.

  • [C-SR-1] इस बात का बहुत ज़्यादा सुझाव दिया जाता है कि उपयोगकर्ता को ये सुविधाएं दी जाएं जिन ऐप्लिकेशन को अनुमति दी गई है उनके संपर्क में आने वाली सूचनाएं कंट्रोल करें सूचना सुनने की अनुमति. जानकारी का स्तर इतना होना चाहिए कि उपयोगकर्ता सूचना को सुनने वाले हर व्यक्ति के लिए, यह कंट्रोल किया जाता है कि सूचना के टाइप क्या हों इस लिसनर तक पहुंचने के लिए. टाइप में "बातचीत", "सूचना", "आवाज़ बंद करो" और "ज़रूरी बातें" नोटिफ़िकेशन.

  • [C-SR-2] इस्तेमाल करने का बहुत ज़्यादा सुझाव दिया जाता है. हम लोगों को सूचना सुनने वाले किसी खास व्यक्ति को सूचना न देने वाले ऐप्लिकेशन.

  • [C-SR-3] इस बात का बहुत ज़्यादा सुझाव दिया जाता है कि उपयोगकर्ता, अपने-आप उसकी कीमत दिखाए हर चैनल और ऐप्लिकेशन के लिए, तीसरे पक्ष के किसी ऐप्लिकेशन की सूचना को ब्लॉक करने के लिए उपयोगकर्ता के उस सूचना को कई बार खारिज करने के बाद पैकेज लेवल का डेटा.

  • इसमें रिच नोटिफ़िकेशन की सुविधा भी होनी चाहिए.

  • कुछ उच्च प्राथमिकता वाले नोटिफ़िकेशन को हेड-अप नोटिफ़िकेशन के रूप में दिखाया जाना चाहिए.

  • उपयोगकर्ता के पास, सूचनाएं स्नूज़ करने की सुविधा होनी चाहिए.

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

Android 11 में, बातचीत की सूचनाएं पाने की सुविधा लॉन्च की गई है. ऐसी सूचनाएं जो MessagingStyle का इस्तेमाल करती हैं और पब्लिश किया गया People का शॉर्टकट आईडी देता है.

डिवाइस पर यह सुविधा लागू करना:

  • [C-SR-4] को ग्रुप करने और दिखाने के लिए इस्तेमाल करने का सुझाव दिया जाता है conversation notifications अपवाद के साथ गैर बातचीत वाली सूचनाओं से आगे फ़ोरग्राउंड सेवा से जुड़ी जारी सूचनाएं और importance:high नोटिफ़िकेशन.

अगर डिवाइस लागू करने की सुविधा conversation notifications के साथ काम करती है, तो साथ ही, यह ऐप्लिकेशन इनके लिए ज़रूरी डेटा उपलब्ध कराता है bubbles, वे:

  • [C-SR-5] इस बातचीत को बबल के तौर पर दिखाने का सुझाव दिया जाता है. एओएसपी को लागू करने की प्रक्रिया, डिफ़ॉल्ट सिस्टम यूज़र इंटरफ़ेस (यूआई) की इन ज़रूरी शर्तों को पूरा करती है, सेटिंग और लॉन्चर.

अगर लागू किए गए डिवाइस पर रिच नोटिफ़िकेशन की सुविधा काम करती है, तो ये:

  • [C-2-1] हमें सटीक संसाधनों का इस्तेमाल Notification.Style के ज़रिए दी गई जानकारी प्रज़ेंट किए गए रिसॉर्स एलिमेंट के लिए, एपीआई क्लास और उसके सब-क्लास.
  • इसमें संसाधन से जुड़ा हर एलिमेंट मौजूद होना चाहिए (उदाहरण के लिए, आइकॉन, टाइटल, और खास जानकारी वाला टेक्स्ट), Notification.Style में बताया गया है एपीआई क्लास और उसकी सब-क्लास.

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

  • [C-3-1] सबसे पहले सूचना देने वाले व्यू और संसाधनों का इस्तेमाल करना ज़रूरी है जैसा कि Notification.Builder में बताया गया है स्क्रीन पर सबसे ऊपर सूचनाएं देने पर एपीआई क्लास की जानकारी.
  • [C-3-2] इसके ज़रिए दी गई कार्रवाइयां ज़रूर दिखानी चाहिए Notification.Builder.addAction() बिना उपयोगकर्ता के इंटरैक्शन के, सूचना वाले कॉन्टेंट को एक साथ दिखाने की सुविधा मिलती है जैसा कि SDK टूल में बताया गया है.
3.8.3.2. सिस्टम से कॉल रिसीव करने वाली सेवा से जुड़ी सूचना

Android में NotificationListenerService शामिल है ऐसे एपीआई जो ऐप्लिकेशन (जब उपयोगकर्ता एक बार साफ़ तौर पर चालू करता है) को पोस्ट या अपडेट किए जाने पर सभी नोटिफ़िकेशन.

डिवाइस पर यह सुविधा लागू करना:

  • [C-0-1] सूचनाओं को सही तरीके से और तुरंत अपडेट करना ज़रूरी है ऐसी सभी इंस्टॉल की गई और उपयोगकर्ता-सुविधा वाली लिसनर सेवाओं के लिए, सूचना ऑब्जेक्ट से जुड़ा सभी मेटाडेटा.
  • [C-0-2] snoozeNotification() का पालन करना ज़रूरी है एपीआई कॉल करें और सूचना खारिज करें और स्नूज़ के बाद कॉलबैक करें एपीआई कॉल में सेट किया गया कुल समय.

अगर उपयोगकर्ता, डिवाइस पर सूचनाएं स्नूज़ करने की सुविधा देते हैं, तो वे:

  • [C-1-1] स्नूज़ की गई सूचना की स्थिति को सही तरीके से दिखाना ज़रूरी है स्टैंडर्ड एपीआई का इस्तेमाल करके, जैसे कि NotificationListenerService.getSnoozedNotifications().
  • [C-1-2] सूचनाएं स्नूज़ करने के लिए, लोगों को यह सुविधा देनी होगी इंस्टॉल किए गए हर तीसरे पक्ष के ऐप्लिकेशन से स्थायी/फ़ोरग्राउंड सेवाओं के लिए इस्तेमाल किया जा सकता है.
3.8.3.3. DND (परेशान न करें) / प्राथमिकता मोड

अगर डिवाइस लागू करने के लिए DND सुविधा काम करती है (इसे प्राथमिकता मोड भी कहा जाता है), उन्हें:

  • [C-1-1] यह तब ज़रूरी है, जब डिवाइस को लागू करने से उपयोगकर्ता को कोई साधन उपलब्ध कराया गया हो तीसरे पक्ष के ऐप्लिकेशन को डीएनडी नीति के कॉन्फ़िगरेशन का ऐक्सेस देने या न देने के लिए, डीएनडी के अपने-आप लागू होने वाले नियम दिखाएं जिन्हें उपयोगकर्ता के बनाए गए और पहले से तय नियमों के साथ-साथ किसी दूसरे ऐप्लिकेशन ने भी बनाया हो.
  • [C-1-3] suppressedVisualEffects का पालन करना ज़रूरी है NotificationManager.Policy के साथ पास किए गए मान और अगर किसी ऐप्लिकेशन ने SUPPRESSED_इफ़_SCREEN_ON फ़्लैग शामिल करने पर, उपयोगकर्ता को यह बताया जाना चाहिए कि 'परेशान न करें' सेटिंग के मेन्यू में विज़ुअल इफ़ेक्ट छिपा दिए जाते हैं.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

3.8.3.4. संवेदनशील सूचनाओं से जुड़ी सुरक्षा

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

अगर लागू किए गए डिवाइस पर तीसरे पक्ष के ऐप्लिकेशन को ये काम करने की अनुमति मिलती है खास इवेंट के बारे में उपयोगकर्ताओं को सूचना देना, वे:

  • [C-1-1] संवेदनशील सूचना की जानकारी को छिपाने के लिए उसमें बदलाव करना होगा, ताकि उसे सूचना लिसनर, जब तक कि लिसनर सेवा इनमें से एक न हो:

    • uid से साइन किए गए सिस्टम के ऐप्लिकेशन < 10,000
    • सिस्टम यूज़र इंटरफ़ेस (यूआई)
    • शेल
    • खास तौर पर बनाए गए कंपैनियन डिवाइस ऐप्लिकेशन (CompanionDeviceManager ने तय किया है)
    • SYSTEM_AUTOMOTIVE_PROJECTION भूमिका
    • SYSTEM_NOTIFICATION_INTELLIGENCE भूमिका
    • होम रोल

एओएसपी को लागू करना NotificationAssistantServices उदाहरण के तौर पर दिया गया है और ये इन ज़रूरी शर्तों को पूरा करता है. यहां जाएं: android.ext.services.notification देखें.

नई ज़रूरी शर्तें खत्म करना

3.8.4. Assist API

Android में सहायक एपीआई शामिल हैं इससे ऐप्लिकेशन यह चुन सकेंगे कि मौजूदा संदर्भ में कितनी जानकारी है डिवाइस पर Assistant के साथ शेयर किया गया.

अगर डिवाइस लागू करने की सुविधा, Assist कार्रवाई में काम करती है, तो ये काम किए जा सकते हैं:

  • [C-2-1] असली उपयोगकर्ता को कॉन्टेक्स्ट शेयर करने के बारे में साफ़ तौर पर बताना होगा. इनमें से कोई एक:
    • जब भी सहायक ऐप्लिकेशन कॉन्टेक्स्ट को ऐक्सेस करता है, तब सफ़ेद रंग का आइकॉन दिखता है स्क्रीन के किनारों के आस-पास की रोशनी, जो अवधि के बराबर या उससे ज़्यादा होती है और Android ओपन सोर्स प्रोजेक्ट को लागू करने की स्क्रीन की रोशनी.
    • पहले से इंस्टॉल किए गए सहायता ऐप्लिकेशन के लिए, कम कीमत में लोगों की सदस्यता लेना से दो मार्गदर्शक दूर हैं बोलकर फ़ोन को निर्देश देने वाला और Assistant ऐप्लिकेशन की सेटिंग का डिफ़ॉल्ट मेन्यू, साथ ही, कॉन्टेक्स्ट को सिर्फ़ तब शेयर करता है, जब उपयोगकर्ता को हॉटवर्ड या सहायक नेविगेशन बटन के इनपुट का इस्तेमाल करके.
  • [C-2-2] असिस्ट ऐप्लिकेशन को लॉन्च करने के लिए तय किया गया इंटरैक्शन, जैसा कि बताया गया है सेक्शन 7.2.3 में, चुने गए उपयोगकर्ता को लॉन्च करना ज़रूरी है असिस्टेंट ऐप्लिकेशन का इस्तेमाल करते हैं. दूसरे शब्दों में, वह ऐप्लिकेशन जो VoiceInteractionService को लागू करता है, या ACTION_ASSIST इंटेंट से जुड़ी कोई गतिविधि.

3.8.5. अलर्ट और टोस्ट

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

अगर लागू किए गए डिवाइस में कोई स्क्रीन या वीडियो आउटपुट शामिल है, तो वे:

  • [C-1-1] लोगों को यह सुविधा देनी होगी कि वे ऐप्लिकेशन पर सूचना दिखाने से रोक सकें TYPE_APPLICATION_OVERLAY का इस्तेमाल करने वाली विंडो. एओएसपी को लागू करने की प्रोसेस, नोटिफ़िकेशन शेड में कंट्रोल से इस ज़रूरी शर्त को पूरा करती है.

  • [C-1-2] Toast API का इस्तेमाल करते हुए असली उपयोगकर्ताओं को ऐप्लिकेशन से टोस्ट दिखाएं. साफ़ तौर पर बताया गया हो.

3.8.6. थीम

Android "थीम" उपलब्ध कराता है ऐप्लिकेशन के लिए सभी स्टाइल को लागू करने का तरीका एक पूरी ऐक्टिविटी या ऐप्लिकेशन है.

Android में "Holo" शामिल है और "मटीरियल" तय स्टाइल के सेट के तौर पर थीम फ़ैमिली ऐप्लिकेशन डेवलपर का उपयोग करने के लिए, ताकि वे होलो थीम का लुक और स्टाइल Android SDK के मुताबिक तय किया गया है.

अगर लागू किए गए डिवाइस में कोई स्क्रीन या वीडियो आउटपुट शामिल है, तो वे:

  • [C-1-1] किसी भी Holo थीम एट्रिब्यूट में बदलाव नहीं करना चाहिए का इस्तेमाल करें.
  • [C-1-2] "मटीरियल" के साथ काम करना ज़रूरी है थीम परिवार और इनमें से किसी को भी नहीं बदलना चाहिए मटीरियल थीम एट्रिब्यूट को अनुमति नहीं है.
  • [C-1-3] "sans-serif" को सेट करना ज़रूरी है फ़ॉन्ट फ़ैमिली से भाषाओं के लिए Roboto वर्शन 2.x जिसका इस्तेमाल Roboto करता हो या वह इस्तेमाल किए जाने वाले फ़ॉन्ट को बदलने के लिए उपयोगकर्ता की सुविधा देता हो "sans-Serif" के लिए फ़ॉन्ट फ़ैमिली को Roboto वर्शन 2.x पर सेट करें का इस्तेमाल करें.

  • [C-1-4] एओएसपी में बताए गए तरीके के मुताबिक, डाइनैमिक कलर टोनल पैलेट जनरेट करना ज़रूरी है Settings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES का दस्तावेज़ (देखें android.theme.customization.system_palette और android.theme.customization.theme_style).

  • [C-1-5] कलर थीम स्टाइल का इस्तेमाल करके डाइनैमिक कलर टोनल पैलेट जनरेट करना ज़रूरी है Settings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES में बताया गया है दस्तावेज़ (android.theme.customization.theme_styles देखें), नाम हैं TONAL_SPOT, VIBRANT, EXPRESSIVE, SPRITZ, RAINBOW, FRUIT_SALAD औरMONOCHROMATIC.

    "सोर्स का रंग" के साथ भेजे जाने पर डायनेमिक रंग टोनल पैलेट जनरेट करने के लिए उपयोग किया जाता है android.theme.customization.system_palette (जैसा कि यहां बताया गया है Settings.THEME_CUSTOMIZATION_OVERLAY_PACKAGES).

  • [C-1-6] CAM16 क्रोमा वैल्यू 5 या इससे ज़्यादा होनी चाहिए.

    • वॉलपेपर से इसे com.android.systemui.monet.ColorScheme#getSeedColors, जो चुनने के लिए, एक से ज़्यादा मान्य सोर्स कलर इस्तेमाल करें.

    • अगर दिया गया कोई भी रंग मेल नहीं खाता है, तो वैल्यू 0xFF1B6EF3 का इस्तेमाल करना चाहिए ऊपर दी गई सोर्स कलर की ज़रूरी शर्त.

Android में "डिवाइस की डिफ़ॉल्ट सेटिंग" भी शामिल है तय स्टाइल के सेट के तौर पर थीम फ़ैमिली ताकि ऐप्लिकेशन डेवलपर इसका उपयोग कर सकें, ताकि वे इसके रंगरूप के अनुरूप हों डिवाइस की थीम, जैसा कि डिवाइस लागू करने वाले ने तय किया है.

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

अगर लागू किए गए डिवाइस में सिस्टम का स्टेटस बार शामिल है, तो वे:

  • [C-2-1] सिस्टम के स्टेटस आइकॉन (जैसे, सिग्नल की क्षमता और बैटरी लेवल) और सिस्टम से सूचनाएँ मिलने की सुविधा चालू करेगा. ऐसा तब तक होगा, जब तक आइकॉन इससे पता चलता है कि कोई ऐप्लिकेशन, किसी लाइट के स्टेटस बार का अनुरोध करता है या वह किसी लाइट के स्टेटस बार का अनुरोध करता है WindowInsetsController#APPEARANCE_LIGHT_STATUS_BARS फ़्लैग करें.
  • [C-2-2] Android डिवाइस इस्तेमाल करने के लिए सिस्टम का रंग बदलना ज़रूरी है ऐप्लिकेशन में स्थिति बताने वाले आइकॉन का रंग काला हो जाना चाहिए (ज़्यादा जानकारी के लिए, R.style देखें) लाइट के स्टेटस बार का अनुरोध करता है.

3.8.7. लाइव वॉलपेपर

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

हार्डवेयर को कारगर माना जाता है, अगर वह चल सकता है, तो वह भरोसे के साथ लाइव वॉलपेपर चला सकता है सभी लाइव वॉलपेपर, जिसकी सुविधाएं ठीक से काम कर रही हों और वह भी सही फ़्रेम पर अन्य ऐप्लिकेशन पर इसका कोई बुरा असर नहीं पड़ता. अगर हार्डवेयर की वजह से वॉलपेपर और/या ऐप्लिकेशन क्रैश हो जाते हैं, खराब हो जाते हैं, और इस्तेमाल हो जाते हैं बहुत ज़्यादा सीपीयू या बैटरी पावर का इस्तेमाल किया जाता है या खराब फ़्रेम रेट पर चलाया जाता है, तो हार्डवेयर को लाइव वॉलपेपर चलाने की अनुमति नहीं है. उदाहरण के लिए, कुछ लाइव वॉलपेपर अपने कॉन्टेंट को रेंडर करने के लिए OpenGL 2.0 या 3.x संदर्भ का इस्तेमाल कर सकते हैं. लाइव वॉलपेपर उस हार्डवेयर पर भरोसेमंद तरीके से नहीं चलेगा जो एक से ज़्यादा डिवाइसों पर काम नहीं करता OpenGL कॉन्टेक्स्ट क्योंकि लाइव वॉलपेपर में OpenGL संदर्भ का इस्तेमाल करने पर कॉन्फ़्लिक्ट हो सकता है OpenGL संदर्भ का भी इस्तेमाल करने वाले दूसरे ऐप्लिकेशन के साथ काम करता है.

  • इस डिवाइस पर, लाइव वॉलपेपर को अपने हिसाब से लागू किया जा सकता है ऊपर लाइव वॉलपेपर का इस्तेमाल किया जाना चाहिए.

अगर डिवाइस में लाइव वॉलपेपर की सुविधा लागू की जाती है, तो वे:

  • [C-1-1] प्लैटफ़ॉर्म की सुविधा वाले फ़्लैग के बारे में रिपोर्ट करना ज़रूरी है android.software.live_wallP.

3.8.8. गतिविधि स्विच करना

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

डिवाइस पर लागू करना इसमें हाल ही के फ़ंक्शन नेविगेशन कुंजी भी शामिल है, जैसा कि सेक्शन 7.2.3 में इंटरफ़ेस में बदलाव किया जा सकता है.

अगर डिवाइस पर हाल ही में इस्तेमाल की गई फ़ंक्शन की नेविगेशन कुंजी लागू होती है, जैसा कि सेक्शन 7.2.3 इंटरफ़ेस में बदलाव करते हैं, तो वे:

  • [C-1-1] कम से कम सात दिखाई गई गतिविधियों के साथ काम करना ज़रूरी है.
  • एक बार में, कम से कम चार गतिविधियों का टाइटल दिखाना चाहिए.
  • हाल ही में हाइलाइट किए गए टेक्स्ट का रंग, आइकॉन, और स्क्रीन का टाइटल दिखाना चाहिए.
  • क्लोज़िंग खर्च ("x") दिखना चाहिए, लेकिन इसमें तब तक देरी हो सकती है, जब तक उपयोगकर्ता स्क्रीन से इंटरैक्ट नहीं करता.
  • पिछली गतिविधि पर आसानी से स्विच करने के लिए, एक शॉर्टकट लागू करना चाहिए.
  • सबसे हाल ही में इस्तेमाल किए गए दो ऐप्लिकेशन के बीच तेज़ी से स्विच करने की कार्रवाई ट्रिगर होनी चाहिए हाल ही के फ़ंक्शन बटन को दो बार टैप करने पर.
  • स्प्लिट स्क्रीन मल्टीविंडो मोड का इस्तेमाल तब किया जाना चाहिए, जब हाल ही के फ़ंक् शन कुंजी देर तक दबाई गई है.
  • हाल ही में जुड़े, हाल ही में देखे गए आइटम एक ग्रुप के तौर पर दिखाया जा सकता है. यह एक ऐसा ग्रुप होता है जो साथ मिलकर चलता है.
  • [C-SR-1] अपस्ट्रीम Android उपयोगकर्ता का इस्तेमाल करने के लिए खास तौर पर सुझाया जाता है इंटरफ़ेस (या थंबनेल पर आधारित मिलता-जुलता इंटरफ़ेस) बनाया जा सकता है.

3.8.9. इनपुट प्रबंधन

Android में यह सुविधा शामिल है इनपुट मैनेजमेंट और तीसरे पक्ष के इनपुट के तरीके के एडिटर के लिए सहायता उपलब्ध है.

अगर डिवाइस लागू करने की सुविधा इस्तेमाल करने से उपयोगकर्ताओं को तीसरे पक्ष के इनपुट के तरीकों का इस्तेमाल डिवाइस, वे:

  • [C-1-1] प्लैटफ़ॉर्म की सुविधा के बारे में एलान करना ज़रूरी है android.software.input_methods और Android SDK के दस्तावेज़ में बताए गए तरीके से, IME API के साथ काम करना.

3.8.10. लॉक स्क्रीन पर मीडिया कंट्रोल

रिमोट कंट्रोल क्लाइंट एपीआई को Android 5.0 से हटा दिया गया है. मीडिया सूचना टेंप्लेट जिसकी मदद से मीडिया ऐप्लिकेशन को प्लेबैक कंट्रोल के साथ इंटिग्रेट किया जा सकता है लॉक स्क्रीन पर दिखेगा.

3.8.11. स्क्रीन सेवर (पहले इसे ड्रीम्स कहा जाता था)

सेटिंग के लिए सेक्शन 3.2.3.5 देखें करने के मकसद से बनाया गया है.

3.8.12. जगह की जानकारी

अगर डिवाइस लागू करने के तरीके में हार्डवेयर सेंसर (जैसे कि जीपीएस) शामिल है, जो जगह के निर्देशांकों को उपलब्ध कराने के लिए, वे

3.8.13. यूनिकोड और फ़ॉन्ट

Android में, इसमें बताए गए इमोजी किरदारों के लिए सहायता उपलब्ध है यूनिकोड 10.0.

अगर लागू किए गए डिवाइस में कोई स्क्रीन या वीडियो आउटपुट शामिल है, तो वे:

  • [C-1-1] इन इमोजी कैरेक्टर को कलर ग्लिफ़ में रेंडर करना ज़रूरी है.
  • [C-1-2] ज़रूरी है कि इसमें इनके लिए सहायता दी जाए:
    • अलग-अलग मोटाई वाले Roboto 2 फ़ॉन्ट—sans-ser-thin, San-Ser-light, Sans-Serif-medium, Sans-Serif-black, San-Serif-condensed, अगर डिवाइस पर उपलब्ध भाषाओं के लिए, Sans-erif-condensed-light चाहिए.
    • लैटिन, ग्रीक, और सिरिलिक के यूनिकोड 7.0 का पूरा कवरेज. इसमें, लैटिन एक्सटेंडेड A, B, C, और D रेंज, और मुद्रा के सभी ग्लिफ़ यूनिकोड 7.0 का सिंबल ब्लॉक.
  • [C-1-3] सिस्टम इमेज में NotoColorEmoji.tff को हटाना या उसमें बदलाव नहीं करना चाहिए. (इमोजी बदलने के लिए, नया इमोजी फ़ॉन्ट जोड़ा जा सकता है NotoColorEmoji.tff)
  • स्किन टोन और अलग-अलग फ़ैमिली इमोजी के साथ काम करना चाहिए, जैसा कि यूनिकोड तकनीकी रिपोर्ट #51.

अगर लागू किए गए डिवाइसों में IME शामिल है, तो:

  • इन इमोजी कैरेक्टर के लिए, उपयोगकर्ता को इनपुट का कोई तरीका उपलब्ध कराना चाहिए.

Android में म्यांमार फ़ॉन्ट को रेंडर करने की सुविधा शामिल है. म्यांमार में कई ऐसे फ़ॉन्ट जो यूनिकोड में नहीं होते हैं. आम तौर पर, इन्हें "Zawgyi" के नाम से जाना जाता है म्यांमार को रेंडर करने के लिए भाषाएं.

अगर डिवाइस लागू करने के तरीके में बर्मीज़ का समर्थन शामिल है, तो वे:

  • [C-2-1] यूनिकोड का पालन करने वाले फ़ॉन्ट वाले टेक्स्ट को डिफ़ॉल्ट के तौर पर रेंडर करना ज़रूरी है; गैर-यूनिकोड अनुपालन फ़ॉन्ट को तब तक डिफ़ॉल्ट फ़ॉन्ट के रूप में सेट नहीं किया जाना चाहिए, जब तक उपयोगकर्ता इसे भाषा चुनने की सुविधा में चुनता है.
  • [C-2-2] यूनिकोड फ़ॉन्ट और नॉन-यूनिकोड फ़ॉन्ट के साथ काम करना ज़रूरी है, अगर डिवाइस पर, बिना यूनिकोड का पालन करने वाला फ़ॉन्ट काम करता है. नॉन-यूनिकोड अनुपालन वाले फ़ॉन्ट के लिए यूनिकोड फ़ॉन्ट को हटाना या ओवरराइट नहीं करना चाहिए.
  • [C-2-3] टेक्स्ट को यूनिकोड का पालन न करने वाले फ़ॉन्ट के साथ रेंडर करना ज़रूरी है, अगर के साथ भाषा कोड स्क्रिप्ट कोड Qaag बताया गया है (जैसे my-Qag). कोई अन्य ISO भाषा या क्षेत्र कोड नहीं (चाहे असाइन किया गया, असाइन नहीं किया गया या रिज़र्व किया गया) का इस्तेमाल, नॉन-यूनिकोड को रेफ़र करने के लिए किया जा सकता है म्यांमार के लिए फ़ॉन्ट का इस्तेमाल करें. ऐप्लिकेशन डेवलपर और वेब पेज के लेखक ये काम कर सकते हैं मेरे-Qaag को किसी भी भाषा कोड के तौर पर तय करें अन्य भाषा.

3.8.14. मल्टी-विंडो

अगर लागू किए गए डिवाइस में कई गतिविधियां दिखाने की सुविधा है साथ ही, वे:

  • [C-1-1] ऐसे मल्टी-विंडो मोड को लागू करना ज़रूरी है जो Android SDK में बताए गए ऐप्लिकेशन के व्यवहार और एपीआई मल्टी-विंडो मोड से जुड़ी सहायता से जुड़े दस्तावेज़ और Meet ये ज़रूरी शर्तें:
  • [C-1-2] android:resizeableActivity का पालन करना ज़रूरी है जिसे कोई ऐप्लिकेशन, AndroidManifest.xml फ़ाइल में इस तरह सेट करता है: यह SDK टूल.
  • [C-1-3] स्प्लिट स्क्रीन या फ़्रीफ़ॉर्म मोड की सुविधा नहीं देनी चाहिए, अगर स्क्रीन की ऊंचाई 440 dp से कम और स्क्रीन की चौड़ाई 440 से कम है डीपी.
  • [C-1-4] किसी गतिविधि का आकार बदलकर 220dp से कम आकार में नहीं किया जाना चाहिए पिक्चर में पिक्चर के अलावा अन्य मल्टी-विंडो मोड.
  • डिवाइस पर स्क्रीन साइज़ xlarge लागू करने के साथ-साथ फ़्रीफ़ॉर्म भी काम करना चाहिए मोड.

अगर लागू किए जाने वाले डिवाइस, मल्टी-विंडो मोड और स्प्लिट स्क्रीन के साथ काम करते हैं मोड को चालू कर देते हैं, तो:

  • [C-2-2] स्प्लिट स्क्रीन मल्टी-विंडो में डॉक की गई गतिविधि को काटना ज़रूरी है, लेकिन अगर लॉन्चर ऐप्लिकेशन में फ़ोकस की गई विंडो है, तो इसका कुछ कॉन्टेंट दिखाना चाहिए.
  • [C-2-3] AndroidManifestLayout_minWidth के एलान का पालन करना ज़रूरी है और AndroidManifestLayout_minHeight तृतीय-पक्ष लॉन्चर ऐप्लिकेशन के मान और इन मानों को ओवरराइड नहीं करता है डॉक से जुड़ी गतिविधि का कुछ कॉन्टेंट दिखाया जा सकता है.

अगर डिवाइस लागू करने के लिए मल्टी-विंडो मोड और पिक्चर में पिक्चर की सुविधा काम करती है, तो मल्टी-विंडो मोड का इस्तेमाल करके, ये काम किए जा सकते हैं:

  • [C-3-1] पिक्चर में पिक्चर मल्टी-विंडो मोड में गतिविधियां लॉन्च करना ज़रूरी है जब ऐप्लिकेशन: * टारगेटिंग एपीआई लेवल 26 या उसके बाद के लेवल को टारगेट करता है और एलान करता है android:supportsPictureInPicture * टारगेटिंग एपीआई लेवल 25 या उससे पहले के लेवल और android:resizeableActivity, दोनों के बारे में बताता है और android:supportsPictureInPicture.
  • [C-3-2] को अपने SystemUI में कार्रवाइयों को इस तौर पर दिखाना ज़रूरी है setActions() के ज़रिए मौजूदा PIP गतिविधि से तय किया गया एपीआई.
  • [C-3-3] इससे ज़्यादा या इसके बराबर के आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) में काम करना ज़रूरी है 1:2.39 और 2.39:1 से कम या उसके बराबर, जैसा कि पीआईपी गतिविधि के ज़रिए बताया गया है setAspectRatio() एपीआई.
  • [C-3-4] KeyEvent.KEYCODE_WINDOW का इस्तेमाल करना ज़रूरी है पीआईपी विंडो को कंट्रोल करने के लिए; अगर पीआईपी मोड को लागू नहीं किया गया है, तो पासकोड फ़ोरग्राउंड गतिविधि के लिए उपलब्ध है.
  • [C-3-5] लोगों को यह सुविधा देनी होगी कि वे किसी ऐप्लिकेशन को पीआईपी मोड; एओएसपी को लागू करने के लिए ज़रूरी है कि वह इन शर्तों को पूरा करता हो: कंट्रोल के बारे में जानें.
  • [C-3-6] पीआईपी (पिक्चर में पिक्चर) के लिए, नीचे बताई गई कम से कम चौड़ाई और ऊंचाई तय करनी होगी विंडो, जब कोई ऐप्लिकेशन AndroidManifestLayout_minWidth और AndroidManifestLayout_minHeight:

    • कॉन्फ़िगरेशन.uiMode वाले डिवाइस, जो इनके अलावा सेट किए गए हैं UI_MODE_TYPE_TELEVISION कम से कम 108 dp की चौड़ाई और ऊंचाई तय करना ज़रूरी है.
    • कॉन्फ़िगरेशन.uiMode वाले डिवाइस, जो इस पर सेट हैं UI_MODE_TYPE_TELEVISION यह ज़रूरी है कि चौड़ाई कम से कम 240 डीपी और ऊंचाई कम से कम 135 डीपी हो.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

अगर लागू किए जाने वाले डिवाइस में Android के साथ काम करने वाले एक से ज़्यादा डिवाइस शामिल हैं और ऐसी जगहों को ऐप्लिकेशन के लिए उपलब्ध कराने के लिए:

  • [C-4-1] मल्टी-विंडो मोड के साथ भी काम करना ज़रूरी है.

अगर लागू किए जाने वाले डिवाइस में मल्टी-विंडो मोड काम करता है, तो वे:

  • [C-5-1] विंडो मैनेजर एक्सटेंशन का सही वर्शन लागू करना ज़रूरी है एपीआई लेवल की जानकारी यहां दी गई है WindowManager एक्सटेंशन.

नई ज़रूरी शर्तें खत्म करना

3.8.15. डिसप्ले कटआउट

Android पर, डिसप्ले कटआउट की सुविधा तभी काम करती है, जब बताया गया हो दस्तावेज़ में दी गई जानकारी शामिल करें. DisplayCutout API, इसके बारे में बताता है डिसप्ले के किनारे का वह हिस्सा जो शायद ऐप्लिकेशन के लिए काम न करे ऐसा, किनारों पर डिसप्ले कटआउट या कर्व्ड डिसप्ले की वजह से होता है.

अगर लागू किए गए डिवाइस में डिसप्ले कटआउट शामिल हैं, तो वे:

  • [C-1-5] अगर डिवाइस का आसपेक्ट रेशियो(लंबाई-चौड़ाई का अनुपात) 1.0(1:1) है, तो कटआउट नहीं होने चाहिए.
  • [C-1-2] हर किनारे के लिए एक से ज़्यादा कटआउट नहीं होने चाहिए.
  • [C-1-3] ऐप्लिकेशन के सेट किए गए डिसप्ले कटआउट फ़्लैग का पालन करना ज़रूरी है WindowManager.LayoutParams एपीआई को सबमिट करने का तरीका, SDK टूल में बताया गया है.
  • [C-1-4] ज़रूरी है कि Analytics में सेट की गई सभी कटआउट मेट्रिक के लिए सही वैल्यू की रिपोर्ट दी गई हो DisplayCutout एपीआई.

3.8.16. डिवाइस कंट्रोल

Android में ControlsProviderService शामिल है और Control एपीआई, जो तीसरे पक्ष के ऐप्लिकेशन को डिवाइस कंट्रोल को तुरंत पब्लिश करने की अनुमति देते हैं स्थिति और कार्रवाई.

डिवाइस से जुड़ी खास ज़रूरतों के बारे में जानने के लिए, सेक्शन 2_2_3 देखें.

3.8.17. क्लिपबोर्ड

डिवाइस पर यह सुविधा लागू करना:

  • [C-0-1] इस तरह के किसी भी कॉम्पोनेंट, गतिविधि, सेवा या किसी भी इंटरनेट कनेक्शन पर, उपयोगकर्ता की कार्रवाई के बिना (उदाहरण के लिए, बटन दिखाई देगा). हालांकि, इसमें बताई गई सेवाएं शामिल नहीं हैं 9.8.6 कॉन्टेंट कैप्चर करना और ऐप्लिकेशन खोज.

अगर कॉन्टेंट को कॉपी करने के बाद, डिवाइस पर लागू होने वाली झलक, उपयोगकर्ता को दिखने वाली झलक जनरेट करती है क्लिपबोर्ड पर किसी भी ClipData आइटम के लिए, जहां ClipData.getDescription().getExtras() में यह शामिल है android.content.extra.IS_SENSITIVE, वे:

  • [C-1-1] लोगों को दिखने वाली झलक को छिपाने के लिए उसमें बदलाव करना ज़रूरी है

एओएसपी रेफ़रंस को लागू करने के लिए, क्लिपबोर्ड की इन ज़रूरी शर्तों को पूरा किया जाता है.

3.9. डिवाइस प्रबंधन

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

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

अगर डिवाइस लागू करने की प्रोसेस, डिवाइस एडमिन की पूरी रेंज को लागू करती है, तो नीतियों के बारे में ज़्यादा जानकारी मौजूद है, जो:

  • [C-1-1] android.software.device_admin के बारे में एलान करना ज़रूरी है.
  • [C-1-2] डिवाइस के मालिक के प्रावधान के हिसाब से ज़रूरी है सेक्शन 3.9.1 और सेक्शन 3.9.1.1.

नई ज़रूरी शर्तें खत्म करना

3.9.1. डिवाइस का प्रावधान करना

3.9.1.1. डिवाइस के मालिक का प्रावधान

अगर लागू किए गए डिवाइस पर android.software.device_admin का एलान किया जाता है, तो:

  • [C-1-1] डिवाइस पॉलिसी क्लाइंट (डीपीसी) को डिवाइस के मालिक का ऐप्लिकेशन जैसा कि नीचे बताया गया है:
    • जब डिवाइस को लागू करने के लिए न तो उपयोगकर्ता और न ही उपयोगकर्ता डेटा कॉन्फ़िगर किया है, तो इससे:
      • [C-1-5] DPC ऐप्लिकेशन को डिवाइस के मालिक के ऐप्लिकेशन के तौर पर रजिस्टर करना ज़रूरी है इसके अलावा, DPC ऐप्लिकेशन को यह चुनने का विकल्प दिया जा सकता है कि आप डिवाइस के मालिक या प्रोफ़ाइल के मालिक बन सकते हैं, अगर डिवाइस, नियर-फ़ील्ड कम्यूनिकेशंस (एनएफ़सी) सहायता का एलान करता है फ़ीचर फ़्लैग android.hardware.nfc और एक एनएफ़सी मैसेज मिलता है MIME प्रकार वाला एक रिकॉर्ड शामिल है MIME_TYPE_PROVISIONING_NFC.
      • [C-1-8] ACTION_GET_PROVISIONING_मोड भेजना ज़रूरी है इंटेंट के हिसाब से, डिवाइस के मालिक के प्रावधान के बाद ट्रिगर होता है, ताकि DPC ऐप्लिकेशन यह चुन सकता है कि आपको डिवाइस का मालिक बनना है या प्रोफ़ाइल मालिक, इनके मान के आधार पर android.app.extra.PROVISIONING_ALLOWED_PROVISIONING_MODES, जब तक कि इस बात का पता न चले ध्यान रखें कि यहां सिर्फ़ एक मान्य विकल्प मौजूद है.
      • [C-1-9] यह ईमेल भेजना ज़रूरी है ACTION_Admin_POLICY_COMPLIANCE इंटेंट, डिवाइस का मालिक बने होने पर, डिवाइस के मालिक वाले ऐप्लिकेशन से जुड़ा होना चाहिए भले ही, आपने प्रावधान करने के लिए किसी भी तरीके का इस्तेमाल किया हो. कॉन्टेंट बनाने उपयोगकर्ता सेटअप विज़र्ड में तब तक आगे नहीं बढ़ सकता, जब तक डिवाइस के मालिक का ऐप्लिकेशन खत्म हो गया है.
    • जब डिवाइस को लागू करने के लिए उपयोगकर्ता या उपयोगकर्ता डेटा को हटा दिया जाता है.
      • [C-1-7] किसी भी DPC ऐप्लिकेशन को डिवाइस के मालिक के ऐप्लिकेशन के तौर पर रजिस्टर नहीं करना चाहिए और ज़्यादा.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [C-1-2] ज़रूरी सूचना साफ़ तौर पर दिखाना ज़रूरी है (जैसा कि एओएसपी में बताया गया है) और ऐप्लिकेशन इस्तेमाल करने से पहले असली उपयोगकर्ता से सहमति लें डिवाइस के मालिक के तौर पर सेट किया जा रहा है, जब तक कि डिवाइस को प्रोग्राम के हिसाब से कॉन्फ़िगर न किया जाए रीटेल डेमो मोड के लिए असली उपयोगकर्ता इंटरैक्शन करते हैं. अगर डिवाइस पर लागू होने वाले android.software.device_admin का एलान किया जाता है, लेकिन में मालिकाना हक डिवाइस मैनेजमेंट की सुविधाओं के बारे में बताना और मैकेनिज़्म उपलब्ध कराना उनके समाधान में कॉन्फ़िगर किए गए ऐप्लिकेशन को "डिवाइस का मालिक" के तौर पर प्रमोट करने के लिए इसके बराबर" मानक "डिवाइस के मालिक" से बदल जाती है जैसा कि स्टैंडर्ड Android डिवाइस से पहचाना जाता है DevicePolicyManager एपीआई, वे:

  • [C-2-1] ज़रूरी है कि एक प्रक्रिया पूरी की गई हो, ताकि इस बात की पुष्टि की जा सके कि जिनका प्रचार किसी वैध एंटरप्राइज़ डिवाइस मैनेजमेंट से किया गया हो समाधान किया गया है और उसे मालिकाना समाधान में कॉन्फ़िगर किया गया है उसके पास "डिवाइस के मालिक" के तौर पर अधिकार होने चाहिए.

  • [C-2-2] इसमें एओएसपी डिवाइस के मालिक की सहमति की जानकारी दिखाना ज़रूरी है android.app.action.PROVISION_MANAGED_DEVICE ने फ़्लो शुरू किया DPC ऐप्लिकेशन को "डिवाइस के मालिक" के रूप में रजिस्टर करने से पहले.

  • [C-2-3] सहमति को हार्ड कोड नहीं करना चाहिए या डिवाइस के मालिक के अन्य ऐप्लिकेशन का इस्तेमाल करने पर.

नई ज़रूरी शर्तें खत्म करना

3.9.1.2. मैनेज की जा रही प्रोफ़ाइल का प्रावधान

अगर लागू किए गए डिवाइस पर android.software.managed_users का एलान किया जाता है, तो:

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [C-1-2] मैनेज की जा रही प्रोफ़ाइल को उपलब्ध कराने की प्रोसेस (यह प्रोसेस, DPC की ओर से android.app.action.PROVISION_MANAGED_PROFILE) सहमति लेने से जुड़ी स्क्रीन और उपयोगकर्ता अनुभव, इन तीनों के मुताबिक होना चाहिए AOSP लागू करना.

नई ज़रूरी शर्तें खत्म करना

  • [C-1-3] ज़रूरी है कि सेटिंग में जाकर, लोगों के लिए ये सुविधाएं उपलब्ध कराई जाएं, ताकि उपयोगकर्ता को तब बताएं, जब किसी सिस्टम फ़ंक्शन को बंद कर दिया गया हो डिवाइस नीति नियंत्रक (DPC):

    • एक जैसा आइकॉन या लोगों के लिए अलग-अलग सुविधाएं (जैसे, अपस्ट्रीम) AOSP की जानकारी का आइकॉन) देखें, ताकि यह पता चल सके कि कोई खास सेटिंग कब डिवाइस एडमिन.
    • एक छोटा सा मैसेज, जिसे डिवाइस एडमिन ने आपको setShortSupportMessage.
    • DPC ऐप्लिकेशन का आइकॉन.
  • [C-1-4] ACTION_PROVISIONING_ Success के लिए हैंडलर लॉन्च करना ज़रूरी है इंटेंट प्रावधान की प्रोसेस, android.app.action.PROVISION_MANAGED_PROFILE की मदद से शुरू की जाती है इंटेंट और DPC ने हैंडलर लागू कर दिया है.

  • [C-1-5] ACTION_PROFILE_PROVISIONING_ वास्तविक को भेजना ज़रूरी है जब प्रावधान प्रक्रिया शुरू की जाती है, तब वर्क प्रोफ़ाइल के DPC को ब्रॉडकास्ट किया जाता है android.app.action.PROVISION_MANAGED_PROFILE इंटेंट.

  • [C-1-6] ACTION_GET_PROVISIONING_mode भेजना ज़रूरी है इंटेंट प्रोफ़ाइल के मालिक के प्रावधान के बाद ट्रिगर होता है, ताकि DPC ऐप्लिकेशन डिवाइस का मालिक या प्रोफ़ाइल का मालिक बनने का विकल्प चुन सकता है. हालांकि, प्रावधान, android.app.action.PROVISION_MANAGED_PROFILE इंटेंट से ट्रिगर किया जाता है.

  • [C-1-7] ACTION_Admin_POLICY_COMPLIANCE भेजना ज़रूरी है उपयोगकर्ता प्रोफ़ाइल पर तब बनेगा, जब प्रोफ़ाइल का मालिक बनेगा इससे फ़र्क़ नहीं पड़ता कि किस तरह के प्रावधान का इस्तेमाल किया गया है जब प्रावधान, android.app.action.PROVISION_MANAGED_PROFILE इंटेंट से ट्रिगर होता है. उपयोगकर्ता सेटअप विज़र्ड में तब तक आगे नहीं बढ़ सकता, जब तक कि प्रोफ़ाइल मालिक का ऐप्लिकेशन खत्म हो गया है.

  • [C-1-8] ACTION_MANAGED_PROFILE_PROVISIONED भेजना ज़रूरी है प्रोफ़ाइल का मालिक तय होने के बाद, निजी प्रोफ़ाइल के DPC को ब्रॉडकास्ट भेजा जाता है, भले ही, प्रॉविज़निंग का कोई भी तरीका इस्तेमाल किया गया हो.

3.9.2. मैनेज की जा रही प्रोफ़ाइल के लिए सहायता

अगर लागू किए गए डिवाइस पर android.software.managed_users का एलान किया जाता है, तो:

  • [C-1-1] android.app.admin.DevicePolicyManager के ज़रिए, मैनेज की जा रही प्रोफ़ाइलों की सुविधा दी जानी चाहिए एपीआई.
  • [C-1-2] सिर्फ़ एक या सिर्फ़ मैनेज की जा रही एक प्रोफ़ाइल बनाने की अनुमति होनी चाहिए.
  • [C-1-3] आइकॉन बैज (एओएसपी अपस्ट्रीम वर्क बैज की तरह) का इस्तेमाल करना ज़रूरी है मैनेज किए जा रहे ऐप्लिकेशन और विजेट और बैज वाले अन्य यूज़र इंटरफ़ेस (यूआई) एलिमेंट दिखाते हैं जैसे कि हाल ही के और सूचनाएं.
  • [C-1-4] 'एओएसपी अपस्ट्रीम काम' की तरह ही एक सूचना आइकॉन दिखाना ज़रूरी है बैज) का इस्तेमाल तब करता है, जब उपयोगकर्ता, मैनेज किए जा रहे प्रोफ़ाइल ऐप्लिकेशन में होता है.
  • [C-1-5] एक टोस्ट दिखाना ज़रूरी है, जिससे पता चले कि उपयोगकर्ता मैनेज किया जा रहा है प्रोफ़ाइल के चालू होने पर (ACTION_USER_PRESENT) और डिवाइस के चालू होने पर फ़ोरग्राउंड ऐप्लिकेशन, मैनेज की जा रही प्रोफ़ाइल में हो.
  • [C-1-6] अगर मैनेज की जा रही प्रोफ़ाइल मौजूद है, तो आपको इंटेंट 'चुनने वाला' इससे उपयोगकर्ता, मैनेज की जा रही सेवा से इंटेंट फ़ॉरवर्ड कर सकता है यदि डिवाइस नीति द्वारा सक्षम किया गया हो, तो प्राथमिक उपयोगकर्ता को प्रोफ़ाइल से या इसके उलट नियंत्रक.
  • [C-1-7] जहां मैनेज की जा रही प्रोफ़ाइल मौजूद है, वहां इस उपयोगकर्ता को सार्वजनिक करना ज़रूरी है मुख्य उपयोगकर्ता और मैनेज की जा रही प्रोफ़ाइल, दोनों के लिए अनुमतियां:
    • बैटरी, जगह की जानकारी, मोबाइल डेटा, और डिवाइस के स्टोरेज के इस्तेमाल को अलग से समझना मुख्य उपयोगकर्ता और मैनेज की जा रही प्रोफ़ाइल के लिए.
    • मुख्य ऐप्लिकेशन में इंस्टॉल किए गए वीपीएन ऐप्लिकेशन का इंडिपेंडेंट मैनेजमेंट उपयोगकर्ता या मैनेज की जा रही प्रोफ़ाइल.
    • मुख्य उपयोगकर्ता की ओर से इंस्टॉल किए गए ऐप्लिकेशन का स्वतंत्र प्रबंधन या मैनेज की जा रही प्रोफ़ाइल.
    • मुख्य उपयोगकर्ता या मैनेज किए जा रहे खातों का स्वतंत्र मैनेजमेंट प्रोफ़ाइल.
  • [C-1-8] यह पक्का करना ज़रूरी है कि पहले से इंस्टॉल किया गया डायलर, संपर्क, और मैसेज सेवा मौजूद हो ऐप्लिकेशन, मैनेज की जा रही सेवा देने वाली कंपनी से कॉलर की जानकारी खोज और देख सकते हैं (अगर कोई मौजूद है) प्राथमिक प्रोफ़ाइल में मौजूद है, अगर डिवाइस नीति नियंत्रक इसे अनुमति देता है.
  • [C-1-9] यह पक्का करना ज़रूरी है कि यह सुरक्षा से जुड़ी सभी ज़रूरी शर्तों को पूरा करता है ऐसे डिवाइस के लिए लागू जिसमें कई उपयोगकर्ता चालू हों (सेक्शन 9.5 देखें), भले ही मैनेज की जा रही प्रोफ़ाइल को प्राथमिक उपयोगकर्ता के अतिरिक्त किसी अन्य उपयोगकर्ता के रूप में नहीं गिना जाता.
  • [C-1-10] यह पक्का करना ज़रूरी है कि स्क्रीनशॉट का डेटा वर्क प्रोफ़ाइल में सेव कर लिया गया हो जब स्क्रीनशॉट लेने के लिए topActivity फ़ोकस वाली विंडो (वह व्यक्ति जिसके साथ सभी गतिविधियों में से आखिरी इंटरैक्ट किया गया था) और इससे जुड़ा है वर्क प्रोफ़ाइल ऐप्लिकेशन.
  • [C-1-11] किसी दूसरे स्क्रीन कॉन्टेंट को कैप्चर नहीं करना चाहिए (सिस्टम बार, सूचनाएं या निजी प्रोफ़ाइल का कॉन्टेंट). इसमें वर्क प्रोफ़ाइल का कॉन्टेंट शामिल नहीं है ऐप्लिकेशन विंडो/विंडो वर्क प्रोफ़ाइल में स्क्रीनशॉट सेव करते समय (यह पक्का करने के लिए कि निजी प्रोफ़ाइल का डेटा, वर्क प्रोफ़ाइल में सेव नहीं होता).

अगर डिवाइस को लागू करने के तरीके के बारे में android.software.managed_users और android.software.secure_lock_screen, वे:

  • [C-2-1] अलग से लॉक स्क्रीन मीटिंग करने की सुविधा दी जानी चाहिए मैनेज किए जा रहे प्लैटफ़ॉर्म पर चल रहे ऐप्लिकेशन का ऐक्सेस देने के लिए, इन शर्तों को पूरा करना ज़रूरी है प्रोफ़ाइल के लिए उपलब्ध है.
    • डिवाइस को लागू करने के लिए, DevicePolicyManager.ACTION_SET_NEW_PASSWORD इंटेंट करें और अलग लॉक स्क्रीन कॉन्फ़िगर करने के लिए इंटरफ़ेस दिखाएं मैनेज की जा रही प्रोफ़ाइल के लिए क्रेडेंशियल.
    • मैनेज की जा रही प्रोफ़ाइल के लिए, लॉक स्क्रीन पर एक ही क्रेडेंशियल का इस्तेमाल किया जाना चाहिए पैरंट प्रोफ़ाइल के तौर पर, क्रेडेंशियल का स्टोरेज और मैनेजमेंट करने के तरीके, जैसा कि Android ओपन सोर्स प्रोजेक्ट साइट.
    • DPC की पासवर्ड नीतियां तब तक सिर्फ़ मैनेज की जा रही प्रोफ़ाइल की लॉक स्क्रीन क्रेडेंशियल पर ही लागू होना चाहिए इसके द्वारा लौटाए गए DevicePolicyManager इंस्टेंस पर कॉल किया गया getParentProfileInstance.
  • मैनेज की जा रही प्रोफ़ाइल के संपर्क कब दिखते हैं उपयोगकर्ता की जानकारी, पहले से इंस्टॉल किए गए कॉल लॉग, इन-कॉल यूज़र इंटरफ़ेस (यूआई), जारी है, और मिस्ड कॉल नोटिफ़िकेशन, संपर्क और मैसेजिंग ऐप्लिकेशन जिन्हें वे एक ही बैज का इस्तेमाल किया जाता है.

3.9.3. प्रबंधित उपयोगकर्ता सहायता

अगर लागू किए गए डिवाइस पर android.software.managed_users का एलान किया जाता है, तो:

  • [C-1-1] उपयोगकर्ता के लिए ऐसी सुविधा उपलब्ध कराना ज़रूरी है जिससे वह मौजूदा उपयोगकर्ता से लॉग आउट कर सके और एकाधिक-उपयोगकर्ता सत्र में प्राथमिक उपयोगकर्ता पर वापस स्विच करें जब isLogoutEnabled true दिखाता है. उपयोगकर्ता का खर्च, लॉकस्क्रीन से ऐक्सेस किया जा सकता हो उसे अनलॉक किए बिना.

अगर डिवाइस पर लागू होने वाले android.software.device_admin का एलान किया जाता है और उपयोगकर्ता के डिवाइस पर, अतिरिक्त सेकंडरी यूज़र जोड़ने की सुविधा, उन्हें:

  • [C-SR-1] का सुझाव दिया जाता है कि एओएसपी डिवाइस के मालिक की सहमति एक जैसी हो इस प्रक्रिया में दिखाए गए खुलासे android.app.action.PROVISION_MANAGED_DEVICE नए सेकंडरी उपयोगकर्ता में खातों को जोड़ने की अनुमति देने से पहले, ताकि लोग यह समझ सकें कि डिवाइस को मैनेज किया जा रहा है.

3.9.4. डिवाइस नीति प्रबंधन से जुड़ी भूमिका की ज़रूरी शर्तें

अगर डिवाइस लागू करने की रिपोर्ट android.software.device_admin या android.software.managed_users, इसके बाद:

  • [C-1-1] ज़रूरी है कि वे डिवाइस पॉलिसी मैनेजमेंट की भूमिका के हिसाब से काम करते हों सेक्शन 9.1 में बताया गया है. ऐसा ऐप्लिकेशन जिसमें डिवाइस से जुड़ी नीति को मैनेज करने की भूमिका होती है config_devicePolicyManagement को पैकेज नाम पर सेट करके इसे तय किया जा सकता है. जब तक ऐप्लिकेशन पहले से लोड न हो, तब तक पैकेज के नाम के बाद : और साइनिंग सर्टिफ़िकेट होना ज़रूरी है.

अगर config_devicePolicyManagement के लिए, पैकेज का नाम इस तौर पर तय नहीं किया गया है ऊपर बताया गया है:

अगर config_devicePolicyManagement के लिए पैकेज का नाम बताए गए तरीके के हिसाब से तय किया गया है ऊपर:

  • [C-3-1] इस ऐप्लिकेशन को सभी प्लैटफ़ॉर्म पर इंस्टॉल करना ज़रूरी है प्रोफ़ाइलें उपयोगकर्ता के लिए.
  • [C-3-2] डिवाइस को लागू करने का मतलब है कि वह ऐसा ऐप्लिकेशन तय कर सकता है जो सेटिंग करके प्रावधान करने से पहले, डिवाइस की नीति मैनेज करने वाला रोल होल्डर config_devicePolicyManagementUpdater.

अगर config_devicePolicyManagementUpdater के लिए पैकेज का नाम इस तरह तय किया गया है ऊपर बताया गया है:

  • [C-4-1] ऐप्लिकेशन, डिवाइस पर पहले से इंस्टॉल होना चाहिए.
  • [C-4-2] ऐप्लिकेशन में ऐसा इंटेंट फ़िल्टर लागू करना ज़रूरी है जो इन समस्याओं को हल करे android.app.action.UPDATE_DEVICE_POLICY_MANAGEMENT_ROLE_HOLDER.

3.9.5. डिवाइस नीति रिज़ॉल्यूशन फ़्रेमवर्क

अगर डिवाइस को लागू करने की रिपोर्ट android.software.device_admin या android.software.managed_users, इसके बाद:

3.10. सुलभता

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

अगर लागू किए गए डिवाइस पर तीसरे पक्ष की सुलभता सेवाएं काम करती हैं, तो ये काम करती हैं:

  • [C-1-1] Android की सुलभता सुविधाएं उपलब्ध कराना ज़रूरी है फ़्रेमवर्क को बेहतर तरीके से समझने के लिए, सुलभता एपीआई एसडीके से जुड़े दस्तावेज़.
  • [C-1-2] सुलभता इवेंट जनरेट करना ज़रूरी है और इवेंट के मुताबिक रजिस्टर किए गए सभी लोगों के लिए AccessibilityEvent AccessibilityService लागू करना चाहिए, जैसा कि SDK में बताया गया है.
  • [C-1-4] लोगों को सुलभता सुविधाएं कंट्रोल करने की सुविधा देना ज़रूरी है ऐसी सेवाएं हैं जो AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON. ध्यान दें कि सिस्टम नेविगेशन बार की मदद से डिवाइस लागू करने पर, वे उपयोगकर्ता को सिस्टम के इन सेवाओं को कंट्रोल करने के लिए, नेविगेशन बार पर जाएं.

अगर डिवाइस पर, पहले से इंस्टॉल की गई सुलभता सेवाएं शामिल हैं, तो वे:

  • [C-2-1] पहले से इंस्टॉल की गई इन सुलभता सेवाओं को डायरेक्ट बूट की जानकारी ऐसे ऐप्लिकेशन जब डेटा स्टोरेज को फ़ाइल आधारित एन्क्रिप्शन (एफ़बीई) की मदद से एन्क्रिप्ट किया जाता है.
  • उपयोगकर्ताओं को सभी सुविधाएं चालू करने के लिए, अलग-अलग तरह के सेटअप फ़्लो में ऐसा तरीका उपलब्ध कराना चाहिए और साथ ही फ़ॉन्ट साइज़ को कम या ज़्यादा करने के विकल्प, डिसप्ले साइज़ और अपने हिसाब से ज़ूम करने के जेस्चर की सुविधा.

3.11. लिखाई को बोली में बदलना

Android में ऐसे एपीआई शामिल हैं जो ऐप्लिकेशन को लिखाई को बोली में बदलने की सुविधा इस्तेमाल करने देते हैं (TTS) सेवाएं और सेवा देने वालों को टीटीएस लागू करने की सुविधा देता है सेवाओं.

अगर डिवाइस लागू करने की सुविधा के ज़रिए android.hardware.audio.Output सुविधा की शिकायत की जा रही है, तो वे:

अगर लागू किए गए डिवाइस पर तीसरे पक्ष के टीटीएस इंजन, इंस्टॉल किए जा सकते हैं, तो वे:

  • [C-2-1] उपयोगकर्ता को टीटीएस चुनने की सुविधा देने के लिए ज़रूरी अधिकार देना ज़रूरी है पर उपयोग करने के लिए इंजन का उपयोग करें.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

3.12. टीवी इनपुट फ़्रेमवर्क

Android Television इनपुट फ़्रेमवर्क (TIF) की मदद से, Android Television डिवाइसों पर लाइव कॉन्टेंट की डिलीवरी. TIF स्टैंडर्ड देता है Android Television डिवाइसों को कंट्रोल करने वाले इनपुट मॉड्यूल बनाने के लिए एपीआई.

अगर डिवाइस इंप्लिमेंटेशन टीआईएफ़ के साथ काम करते हैं, तो वे:

  • [C-1-1] प्लैटफ़ॉर्म के लिए उपलब्ध सुविधा android.software.live_tv का एलान करना ज़रूरी है.
  • [C-1-2] सभी TIF एपीआई के साथ काम करना चाहिए. जैसे, ऐसा ऐप्लिकेशन जो ये एपीआई और तीसरे पक्ष के टीआईएफ़-आधारित इनपुट सेवा को डिवाइस पर इंस्टॉल और इस्तेमाल किया जा सकता है.

नई ज़रूरी शर्तें खत्म करना

3.13. फटाफट सेटिंग

Android, क्विक सेटिंग का यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट उपलब्ध कराता है. इससे, अक्सर इस्तेमाल की जाने वाली या तुरंत ज़रूरी कार्रवाइयां.

अगर डिवाइस पर लागू करने के लिए, क्विक सेटिंग यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट शामिल होता है और यह तीसरे-पक्ष की सेवाओं को सपोर्ट करता है क्विक सेटिंग से:

  • [C-1-1] उपयोगकर्ता को quicksettings तीसरे पक्ष के ऐप्लिकेशन के एपीआई.
  • [C-1-2] तीसरे पक्ष के ऐप्लिकेशन से टाइल को अपने-आप जोड़ने की ज़रूरत नहीं है क्विक सेटिंग पर जाएं.
  • [C-1-3] आपको वे सभी टाइल दिखानी होंगी जिन्हें उपयोगकर्ता ने तीसरे पक्ष के ऐप्लिकेशन में जोड़ा है का विकल्प चुनें.

3.14. मीडिया यूज़र इंटरफ़ेस (यूआई)

यदि लागू होने वाले डिवाइस में बिना आवाज़ वाले सक्रिय ऐप्लिकेशन (ऐप्लिकेशन) शामिल हों, जो MediaBrowser के ज़रिए तीसरे पक्ष के ऐप्लिकेशन या MediaSession, ऐप्लिकेशन:

  • [C-1-2] getIconBitmap() या getIconUri() से मिले आइकॉन और टाइटल को साफ़ तौर पर दिखाना ज़रूरी है getTitle() से मिली है, जैसा कि MediaDescription में बताया गया है. सुरक्षा के कानूनों का पालन करने के लिए, टाइटल को छोटा कर सकता है. जैसे, ड्राइवर का ध्यान भटकाना.

  • [C-1-3] Google Ads की ओर से उपलब्ध कराए गए कॉन्टेंट को दिखाते समय, तीसरे पक्ष का ऐप्लिकेशन आइकॉन दिखाना ज़रूरी है यह तीसरे पक्ष का ऐप्लिकेशन है.

  • [C-1-4] उपयोगकर्ता को पूरे MediaBrowser से इंटरैक्ट करने की अनुमति देनी चाहिए हैरारकी है. सुरक्षा के कानूनों का पालन करने के लिए, हैरारकी के किसी हिस्से के ऐक्सेस पर पाबंदी लगाई जा सकती है (उदाहरण के लिए, ड्राइवर का ध्यान भटकना), लेकिन कॉन्टेंट या कॉन्टेंट देने वाला.

  • [C-1-5] दो बार टैप करें KEYCODE_HEADSETHOOK या KEYCODE_MEDIA_PLAY_PAUSE KEYCODE_MEDIA_NEXT के तौर पर MediaSession.Callback#onMediaButtonEvent के लिए.

3.15. Instant Apps

अगर डिवाइस इंप्लिमेंटेशन इंस्टैंट ऐप्लिकेशन के साथ काम करते हैं, तो उन्हें इन शर्तों को पूरा करना होगा: ज़रूरतें:

  • [C-1-1] इंस्टैंट ऐप्लिकेशन को सिर्फ़ ऐसी अनुमतियां दी जानी चाहिए जिनके पास android:protectionLevel "instant" पर सेट किया गया.
  • [C-1-2] इंस्टैंट ऐप्लिकेशन को इंप्लिसिट इंटेंट से, इंस्टॉल किए गए ऐप्लिकेशन के साथ इंटरैक्ट नहीं करना चाहिए जब तक कि इनमें से कोई एक सही न हो:
    • कॉम्पोनेंट के इंटेंट पैटर्न का फ़िल्टर दिखाया गया है और उसमें CATEGORY_BROWSABLE है
    • कार्रवाई ACTION_SEND, ACTION_SENDTO, ACTION_SEND_MULTIPLE में से एक है
    • टारगेट को android:visibleToInstantApps से साफ़ तौर पर ज़ाहिर किया जाता है
  • [C-1-3] इंस्टैंट ऐप्लिकेशन को इंस्टॉल किए गए ऐप्लिकेशन के साथ साफ़ तौर पर तब तक इंटरैक्ट नहीं करना चाहिए, जब तक घटक android:visibleToInstantApps के माध्यम से प्रदर्शित हो सकता है.
  • [C-1-4] इंस्टॉल किए गए ऐप्लिकेशन को जब तक कि झटपट ऐप्लिकेशन पूरी तरह से इंस्टॉल किया गया ऐप्लिकेशन.
  • डिवाइस लागू करने के लिए, लोगों के लिए ये सुविधाएं उपलब्ध होनी चाहिए: झटपट ऐप्लिकेशन के साथ इंटरैक्ट करना. एओएसपी, डिफ़ॉल्ट सिस्टम यूज़र इंटरफ़ेस (यूआई), सेटिंग, और लॉन्चर. डिवाइस पर यह सुविधा लागू करना:

    • [C-1-5] लोगों को इंस्टैंट ऐप्लिकेशन देखने और मिटाने की सुविधा देना ज़रूरी है इसे हर ऐप्लिकेशन पैकेज के लिए, स्थानीय तौर पर कैश मेमोरी में सेव किया जाता है.
    • [C-1-6] लगातार उपयोगकर्ता को सूचना देनी होगी. यह सूचना फ़ोरग्राउंड में किसी इंस्टैंट ऐप्लिकेशन के चलने के दौरान, स्क्रीन को छोटा किया गया. यह उपयोगकर्ता सूचना में यह बताया जाना चाहिए कि 'इंस्टैंट ऐप्लिकेशन' को इंस्टॉल करने की ज़रूरत नहीं है साथ ही, उपयोगकर्ता को ऐसे खर्चे उपलब्ध कराने चाहिए जिनसे वे ऐप्लिकेशन पर जा सकें जानकारी स्क्रीन पर जाएं. वेब इंटेंट के ज़रिए लॉन्च किए गए इंस्टैंट ऐप्लिकेशन के लिए, जैसे कि Intent.ACTION_VIEW पर सेट की गई कार्रवाई वाले इंटेंट का इस्तेमाल करके और "http" स्कीम के साथ या "https", उपयोगकर्ता के लिए एक अतिरिक्त ऐक्सेस है लोगों को इंस्टैंट ऐप्लिकेशन चालू करने की अनुमति नहीं देनी चाहिए और कॉन्फ़िगर किए गए वेब ब्राउज़र के साथ जुड़े हुए लिंक को लॉन्च कर सकता है, अगर ब्राउज़र डिवाइस पर उपलब्ध हो.
    • [C-1-7] 'हाल ही के' से 'इंस्टैंट ऐप्लिकेशन' को ऐक्सेस करने की अनुमति देना ज़रूरी है अगर डिवाइस में 'हाल ही के' फ़ंक्शन उपलब्ध है, तो 'टूल' सुविधा का इस्तेमाल करें.
  • [C-1-8] एक या उससे ज़्यादा ऐप्लिकेशन या सेवा के कॉम्पोनेंट को पहले से लोड करना ज़रूरी है SDK टूल में यहां दिए गए इंटेंट के लिए, इंटेंट हैंडलर के साथ और इंटेंट को झटपट ऐप्लिकेशन के लिए दिखाई दे.

3.16. कंपैनियन डिवाइस को दूसरे डिवाइस से जोड़ना

बेहतर तरीके से मैनेज करने के लिए, Android में साथी डिवाइस के साथ काम करने की सुविधा उपलब्ध है कंपैनियन डिवाइसों के साथ जुड़ा होता है और CompanionDeviceManager उपलब्ध कराता है इस सुविधा को ऐक्सेस करने के लिए ऐप्लिकेशन के लिए एपीआई.

अगर लागू किए गए डिवाइस पर कंपैनियन डिवाइस जोड़ने की सुविधा काम करती है, तो ये काम किए जा सकते हैं:

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

  • [C-1-3] उपयोगकर्ता को यह तय करने की सुविधा देनी होगी कि वह किस तरह के साथी डिवाइस मौजूद है और काम करता है, जिसमें उसी मैसेज का इस्तेमाल किया जाना चाहिए जिसे एओएसपी में लागू किया गया है. इसके लिए, बदलाव के तौर पर किया जा सकता है.

नई ज़रूरी शर्तें खत्म करना

3.17. हैवीवेट ऐप्लिकेशन

अगर लागू किए गए डिवाइस पर FEATURE_CANT_SAVE_STATE सुविधा का एलान किया गया है, इसके बाद, वे:

  • [C-1-1] इंस्टॉल किया गया सिर्फ़ एक ऐसा ऐप्लिकेशन होना चाहिए जो cantSaveState एक समय में सिस्टम में एक साथ चल रहे हैं. अगर उपयोगकर्ता ऐसे किसी ऐप्लिकेशन से साफ़ तौर पर बाहर निकले बिना छोड़ देता है (उदाहरण के लिए, किसी चालू गतिविधि को छोड़ने के दौरान, होम बटन को दबाकर रखें सिस्टम में कोई ऐक्टिव गतिविधि न हो), तो डिवाइस पर लागू करने के लिए, रैम में उस ऐप्लिकेशन को प्राथमिकता देनी चाहिए. हालांकि, दूसरे डिवाइस के लिए यह ज़रूरी है जैसी चीज़ें काम करती रहेंगी, जैसे कि फ़ोरग्राउंड सेवाएं. जब ऐसा ऐप्लिकेशन बैकग्राउंड में होता है, तब भी सिस्टम बैटरी को चार्ज कर सकता है मैनेज करने से जुड़ी सुविधाएं देता है, जैसे कि सीपीयू और नेटवर्क के ऐक्सेस को सीमित करना.
  • [C-1-2] यूज़र इंटरफ़ेस (यूआई) की सुविधा देनी होगी, ताकि ऐसा ऐप्लिकेशन चुना जा सके जो उपयोगकर्ता के एक बार सेव/बहाल करने की सामान्य स्थिति में हिस्सा ले सकते हैं cantSaveState के साथ बताया गया दूसरा ऐप्लिकेशन लॉन्च करता है एट्रिब्यूट की वैल्यू सबमिट करें.
  • [C-1-3] ज़रूरी शर्तें पूरी न करने वाले ऐप्लिकेशन में, नीति में किए गए दूसरे बदलाव लागू न किए जाएं cantSaveState जैसे, सीपीयू की परफ़ॉर्मेंस में बदलाव करना या शेड्यूल की प्राथमिकता में बदलाव करना.

अगर लागू किए गए डिवाइस पर सुविधा की जानकारी नहीं मिलती है FEATURE_CANT_SAVE_STATE इसके बाद, वे:

  • [C-1-1] cantSaveState को अनदेखा करना ज़रूरी है एट्रिब्यूट को ऐप्लिकेशन ने सेट किया है और उसके आधार पर ऐप्लिकेशन के काम करने के तरीके में बदलाव नहीं किया जाना चाहिए एट्रिब्यूट की वैल्यू सबमिट करें.

3.18. संपर्क

Android में ये शामिल हैं Contacts Provider ऐप्लिकेशन को डिवाइस में सेव की गई संपर्क जानकारी को मैनेज करने की अनुमति देने के लिए एपीआई. डिवाइस में सीधे डाले गए संपर्क डेटा को आम तौर पर सिंक किया जाता है लेकिन साथ ही, यह डेटा सिर्फ़ डिवाइस पर मौजूद हो सकता है. सिर्फ़ डिवाइस में सेव किए गए संपर्कों को स्थानीय कहा जाता है संपर्क.

रॉ संपर्क "इससे जुड़े" हैं या "यहां सेव है" एक खाता जब ACCOUNT_NAME, और ACCOUNT_TYPE, रॉ संपर्क के कॉलम खाते का नाम और Account.type खाते के फ़ील्ड.

डिफ़ॉल्ट स्थानीय खाता: ऐसे रॉ संपर्कों के लिए खाता जो सिर्फ़ यहां सेव किए गए हैं डिवाइस से जुड़ा हो और जो खाता मैनेजर, जो डिफ़ॉल्ट वैल्यू के लिए शून्य वैल्यू का इस्तेमाल करके बनाए जाते हैं ACCOUNT_NAME, और ACCOUNT_TYPE, कॉलम.

पसंद के मुताबिक स्थानीय खाता: ऐसे रॉ संपर्कों के लिए खाता जिन्हें सिर्फ़ शामिल नहीं है और खाता मैनेजर में किसी खाते से संबद्ध नहीं है, जो के लिए कम से कम एक गैर-शून्य वैल्यू के साथ बनाया गया हो ACCOUNT_NAME, और ACCOUNT_TYPE, कॉलम.

डिवाइस पर यह सुविधा लागू करना:

  • [C-SR-1] पसंद के मुताबिक स्थानीय खाते न बनाने के लिए, इस बात पर ज़ोर दिया जाता है.

अगर डिवाइस लागू करने के लिए कस्टम स्थानीय खाते का इस्तेमाल किया जाता है, तो:

  • [C-1-1] यह ACCOUNT_NAME को कस्टम स्थानीय खाते को ContactsContract.RawContacts.getLocalAccountName
  • [C-1-2] यह ACCOUNT_TYPE को कस्टम स्थानीय खाते को ContactsContract.RawContacts.getLocalAccountType
  • [C-1-3] रॉ संपर्क जिन्हें तीसरे पक्ष के ऐप्लिकेशन के ज़रिए डाला जाता है डिफ़ॉल्ट स्थानीय खाता का इस्तेमाल करने का मतलब है, ACCOUNT_NAME और ACCOUNT_TYPE) को पसंद के मुताबिक बनाई गई लोकल कॉपी में डाला जाना चाहिए जोड़ें.
  • [C-1-4] पसंद के मुताबिक बनाए गए स्थानीय खाते में डाले गए रॉ संपर्क खातों को जोड़ने या हटाने पर उन्हें हटाया जा सकता है.
  • [C-1-5] कस्टम स्थानीय खाते के लिए की गई कार्रवाइयां मिटाएं रॉ संपर्क को तुरंत पूरी तरह मिटा दिया जाना चाहिए CALLER_IS_SYNCADAPTER पैरामीटर को सही पर सेट किया गया था), भले ही CALLER\_IS\_SYNCADAPTER पैरामीटर सेट हो गलत पर सेट करें या तय न करें.

15 (एओएसपी एक्सपेरिमेंट के तौर पर उपलब्ध) के लिए नई ज़रूरी शर्तें शुरू करें

3.19. भाषा की सेटिंग

डिवाइस पर यह सुविधा लागू करना:

  • [C-0-1] लिंग के हिसाब से डेटा देखने के लिए, लोगों को कुछ खास अधिकार नहीं देने चाहिए ऐसी भाषाओं के लिए भाषा ट्रीटमेंट जो लिंग के हिसाब से काम नहीं करती अनुवाद. व्याकरण से जुड़े संसाधन देखें हमारा वीडियो देखें.

नई ज़रूरी शर्तें खत्म करना

4. ऐप्लिकेशन पैकेजिंग के साथ काम करती है

डिवाइस लागू करना:

  • [C-0-1] Android ".apk" इंस्टॉल करने और चलाने की क्षमता होनी चाहिए इस रूप में फ़ाइलें "aapt" से जनरेट हुआ यह टूल Android का आधिकारिक SDK टूल.

    • हालांकि, ऊपर बताई गई शर्त को पूरा करना मुश्किल हो सकता है. इसलिए, इन डिवाइसों पर ये सुविधाएं लागू करना मुश्किल होता है एओएसपी रेफ़रंस के लिए, पैकेज मैनेजमेंट सिस्टम का इस्तेमाल करने का सुझाव दिया जाता है सिस्टम.
  • [C-0-2] ".apk" की पुष्टि करना ज़रूरी है का इस्तेमाल कर रही फ़ाइलें APK सिग्नेचर स्कीम v3.1, APK सिग्नेचर स्कीम v3, APK सिग्नेचर स्कीम v2 और JAR साइनिंग की सुविधा मौजूद होनी चाहिए.

  • [C-0-3] इस मामले में, .apk, Android मेनिफ़ेस्ट, Dalvik बाइटकोड, या RenderScript बाइटकोड फ़ॉर्मैट में इस तरह से कि जो फ़ाइलों को अन्य संगत डिवाइस पर ठीक से इंस्टॉल होकर चल रहे हों.

  • [C-0-4] मौजूदा वर्शन के अलावा, किसी और ऐप्लिकेशन को अनुमति नहीं देनी चाहिए "इंस्टॉलर ऑफ़ रिकॉर्ड" इसके लिए, पैकेज को बिना किसी रुकावट के ऐप्लिकेशन को अपने-आप अनइंस्टॉल कर दिया जाता है उपयोगकर्ता की पुष्टि, जैसा कि SDK में दर्ज DELETE_PACKAGE अनुमति. सिर्फ़ सिस्टम पैकेज की पुष्टि करने वाले ऐप्लिकेशन को हैंडल करने का अपवाद है PACKAGE_NEEDS_VERIFICATION इंटेंट और स्टोरेज मैनेजर ऐप्लिकेशन मैनेज करना ACTION_MANAGE_STORAGE इंटेंट.

  • [C-0-5] ऐसी कोई गतिविधि होनी चाहिए जो android.settings.MANAGE_UNKNOWN_APP_SOURCES इंटेंट.

  • [C-0-6] अज्ञात ऐप्लिकेशन से ऐप्लिकेशन पैकेज इंस्टॉल नहीं करना चाहिए सोर्स, जब तक कि ऐप्लिकेशन इंस्टॉल करने का अनुरोध न करता हो नीचे दी गई सभी ज़रूरी शर्तें पूरी करता है:

    • उसे REQUEST_INSTALL_PACKAGES का एलान करना ज़रूरी है या android:targetSdkVersion को 24 या उससे कम पर सेट किया जाना चाहिए.
    • यह ज़रूरी है कि उपयोगकर्ता ने Google से ऐप्लिकेशन इंस्टॉल करने की अनुमति दी हो अज्ञात स्रोत.
  • उपयोगकर्ताओं को हर ऐप्लिकेशन के लिए, अज्ञात सोर्स से ऐप्लिकेशन इंस्टॉल करें. हालांकि, उन्हें लागू किया जा सकता है इसे नो-ऑप के रूप में और इसके लिए RESULT_CANCELED वापस लौटाएं startActivityForResult(), अगर डिवाइस लागू करने के क्रम में उपयोगकर्ताओं को यह विकल्प नहीं देना हो. हालांकि, ऐसे मामलों में भी, उन्हें उपयोगकर्ता को यह बताना चाहिए कि पेश है.

  • [C-0-7] चेतावनी स्ट्रिंग के साथ एक चेतावनी डायलॉग दिखाना ज़रूरी है सिस्टम एपीआई PackageManager.setHarmfulAppWarning की मदद से दिया गया उपयोगकर्ता को किसी ऐसे ऐप्लिकेशन में गतिविधि लॉन्च करने से पहले जिसे उसी सिस्टम एपीआई PackageManager.setHarmfulAppWarning से नुकसान पहुंचाने वाला.

  • ऐप्लिकेशन को अनइंस्टॉल करने या उसे लॉन्च करने का विकल्प, लोगों को मिलना चाहिए ऐप्लिकेशन दिखाई देगा.

  • [C-0-8] दस्तावेज़ के मुताबिक, इंक्रीमेंटल फ़ाइल सिस्टम के साथ काम करना ज़रूरी है यहां पढ़ें.

  • [C-0-9] APK सिग्नेचर स्कीम v4 का इस्तेमाल करके, .apk फ़ाइलों की पुष्टि करने की सुविधा होनी चाहिए और APK सिग्नेचर स्कीम v4.1.

5. मल्टीमीडिया कॉन्टेंट के साथ काम करने की सुविधा

डिवाइस पर यह सुविधा लागू करना:

  • [C-0-1] मीडिया फ़ॉर्मैट, एन्कोडर, डिकोडर, फ़ाइल टाइप, और सेक्शन 5.1 में बताए गए कंटेनर फ़ॉर्मैट MediaCodecList द्वारा घोषित प्रत्येक कोडेक के लिए.
  • [C-0-2] एन्कोडर और डिकोडर उपलब्ध हैं, इस बारे में बताना और रिपोर्ट करना ज़रूरी है इसके द्वारा तृतीय-पक्ष ऐप्लिकेशन को MediaCodecList.
  • [C-0-3] सही तरीके से डिकोड करना और तीसरे पक्ष को उपलब्ध कराना ज़रूरी है सभी फ़ॉर्मैट में ऐप्लिकेशन को कोड में बदल सकता है. इसमें वे सभी बिटस्ट्रीम शामिल हैं जो एन्कोडर आपकी रिपोर्ट में दिखने वाली प्रोफ़ाइल जनरेट करते हैं और CamcorderProfile.

डिवाइस पर यह सुविधा लागू करना:

  • इसका लक्ष्य कम से कम कोडेक के इंतज़ार का समय होना चाहिए. दूसरे शब्दों में कहें, तो
    • इन्हें इनपुट बफ़र का इस्तेमाल और स्टोर नहीं करना चाहिए. साथ ही, सिर्फ़ इनपुट बफ़र का इस्तेमाल करना चाहिए एक बार प्रोसेस हो जाएगा.
    • डिकोड किए गए बफ़र को, बताई गई अवधि से ज़्यादा समय तक नहीं रखना चाहिए (जैसे, SPS).
    • कोड में बदले गए बफ़र, जीओपी के लिए तय किए गए समय से ज़्यादा देर तक नहीं बने रहने चाहिए स्ट्रक्चर.

नीचे दिए गए सेक्शन में दिए गए सभी कोडेक सॉफ़्टवेयर के तौर पर दिए गए हैं Android Open से अपनी पसंद के Android वर्शन को लागू करने की सुविधा सोर्स प्रोजेक्ट.

कृपया ध्यान दें कि न तो Google और न ही Open Handset Alliance ने यह बताना कि ये कोडेक तीसरे पक्ष के पेटेंट से मुफ़्त हैं. वे अगर आपको हार्डवेयर या सॉफ़्टवेयर प्रॉडक्ट में इस सोर्स कोड का इस्तेमाल करना है, तो जिसमें इस कोड को लागू करना शामिल है. इसमें ओपन सोर्स सॉफ़्टवेयर या शेयरवेयर के मामले में, हो सकता है कि इसके लिए संबंधित पेटेंट धारकों से पेटेंट लाइसेंस की ज़रूरत हो.

5.1. मीडिया कोडेक

5.1.1. ऑडियो एन्कोडिंग

ज़्यादा जानकारी 5.1.3. ऑडियो कोडेक की जानकारी.

अगर डिवाइस लागू करने के तरीके की जानकारी android.hardware.microphone के मुताबिक दी जाती है, तो उन्हें नीचे दिए गए ऑडियो फ़ॉर्मैट को कोड में बदलना होगा और उपलब्ध कराना होगा तीसरे पक्ष के ऐप्लिकेशन पर इस्तेमाल करने के लिए:

  • [C-1-1] पीसीएम/वेव
  • [C-1-2] एफ़एलएसी
  • [C-1-3] ओपस

सभी ऑडियो एन्कोडर को इनके साथ काम करना चाहिए:

  • [C-3-1] PCM 16-बिट वाले नेटिव बाइट ऑडियो फ़्रेम को android.media.MediaCodec के ज़रिए ऑर्डर करते हैं एपीआई.

5.1.2. ऑडियो डिकोडिंग

ज़्यादा जानकारी 5.1.3. ऑडियो कोडेक की जानकारी.

अगर डिवाइस लागू करने की प्रोसेस, android.hardware.audio.output सुविधा है, तो वह ये ऑडियो फ़ॉर्मैट में उपलब्ध हैं:

  • [C-1-1] MPEG-4 एएसी प्रोफ़ाइल (AAC LC)
  • [C-1-2] MPEG-4 HE AAC प्रोफ़ाइल (AAC+)
  • [C-1-3] MPEG-4 HE AACv2 प्रोफ़ाइल (बेहतर AAC+)
  • [C-1-4] AAC ELD (कम देरी वाले AAC)
  • [C-1-11] xHE-AAC (ISO/IEC 23003-3 एक्सटेंडेड HE AAC प्रोफ़ाइल, जिसमें यह शामिल है) यूएसएसी बेसलाइन प्रोफ़ाइल, और ISO/IEC 23003-4 डाइनैमिक रेंज कंट्रोल प्रोफ़ाइल)
  • [C-1-5] एफ़एलएसी
  • [C-1-6] एमपी3
  • [C-1-7] एमआईडीआई
  • [C-1-8] वोर्बिस
  • [C-1-9] PCM/WAVE, जिसमें हाई-रिज़ॉल्यूशन वाला ऑडियो शामिल है 24 बिट, 192 किलोहर्ट्ज़ का सैंपल रेट, और आठ चैनल तक के फ़ॉर्मैट. ध्यान दें कि यह ज़रूरत सिर्फ़ डिकोड करने के लिए है. साथ ही, यह कि को वीडियो चलाने के चरण के दौरान डाउनसैंपल और डाउनमिक्स की अनुमति है.
  • [C-1-10] ओपस

यदि डिवाइस कार्यान्वयन AAC इनपुट बफ़र के डिकोडिंग का समर्थन करते हैं डिफ़ॉल्ट रूप से, PCM में मल्टीचैनल स्ट्रीम (दो से ज़्यादा चैनल) बनाई जाती है android.media.MediaCodec एपीआई में AAC ऑडियो डिकोडर, इनके लिए ज़रूरी है समर्थित:

  • [C-2-1] डाउनमिक्सिंग के बिना ही डिकोडिंग करना ज़रूरी है. उदाहरण के लिए, 5.0 AAC स्ट्रीम को पीसीएम के पांच चैनलों पर डिकोड करना ज़रूरी है. साथ ही, 5.1 AAC स्ट्रीम को डिकोड करना ज़रूरी है छह चैनलों में पब्लिश किया जा सकता है.
  • [C-2-2] डाइनैमिक रेंज मेटाडेटा को "डाइनैमिक रेंज कंट्रोल" सेक्शन में बताया जाना चाहिए (डीआरसी)" और android.media.MediaFormat DRC कुंजियों से ऑडियो डिकोडर की डाइनैमिक रेंज से जुड़े बिहेवियर को कॉन्फ़िगर करें. कॉन्टेंट बनाने AAC DRC कुंजियां, एपीआई 21 में पेश की गई थीं और ये हैं: KEY_AAC_DRC_ATTENUATION_FACTOR, KEY_AAC_DRC_BOOST_FACTOR, KEY_AAC_DRC_HEAVY_COMPRESSION, KEY_AAC_DRC_TARGET_REFERENCE_LEVEL और KEY_AAC_ENCODED_TARGET_LEVEL.
  • [C-SR-1] हम इस बात पर काफ़ी ज़ोर देते हैं कि ऊपर दी गई C-2-1 और C-2-2 ज़रूरी शर्तों के बारे में यहां बताया गया है: सभी AAC ऑडियो डिकोडर से संतुष्ट हैं.

यूएसएसी ऑडियो को डिकोड करते समय, MPEG-D (ISO/IEC 23003-4):

  • [C-3-1] आवाज़ और डीआरसी के मेटाडेटा की व्याख्या और उसे लागू करना ज़रूरी है MPEG-D डीआरसी डाइनैमिक रेंज कंट्रोल प्रोफ़ाइल लेवल 1 के मुताबिक.
  • [C-3-2] डिकोडर को कॉन्फ़िगरेशन के हिसाब से काम करना चाहिए इन android.media.MediaFormat कुंजियों के साथ सेट करें: KEY_AAC_DRC_TARGET_REFERENCE_LEVEL और KEY_AAC_DRC_EFFECT_TYPE.

MPEG-4 AAC, HE AAC, और HE AACv2 प्रोफ़ाइल डिकोडर:

  • आईएसओ/आईईसी 23003-4 का इस्तेमाल करके, तेज़ आवाज़ और डाइनैमिक रेंज कंट्रोल की सुविधा काम कर सकती है डाइनैमिक रेंज कंट्रोल प्रोफ़ाइल.

अगर ISO/IEC 23003-4 काम करता है और अगर ISO/IEC 23003-4 दोनों और आईएसओ/आईईसी 14496-3 मेटाडेटा, डिकोड किए गए बिटस्ट्रीम में मौजूद होता है. इसके बाद:

  • ISO/IEC 23003-4 मेटाडेटा को प्राथमिकता दी जानी चाहिए.

सभी ऑडियो डिकोडर को आउटपुट वाली सुविधा का इस्तेमाल करना चाहिए:

  • [C-6-1] PCM 16-बिट वाले नेटिव बाइट ऑडियो फ़्रेम को android.media.MediaCodec के ज़रिए ऑर्डर करते हैं एपीआई.

यदि डिवाइस कार्यान्वयन AAC इनपुट बफ़र के डिकोडिंग का समर्थन करते हैं डिफ़ॉल्ट रूप से, PCM में मल्टीचैनल स्ट्रीम (दो से ज़्यादा चैनल) बनाई जाती है android.media.MediaCodec एपीआई में AAC ऑडियो डिकोडर, इसके बाद: इस पर काम करता है:

  • [C-7-1] यह ज़रूरी है कि ऐप्लिकेशन, डिकोडिंग का इस्तेमाल करके कॉन्फ़िगर कर सके कुंजी के साथ KEY_MAX_OUTPUT_CHANNEL_COUNT का इस्तेमाल करके, यह कंट्रोल किया जा सकता है कि कॉन्टेंट को स्टीरियो में डाउनग्रेड किया जाए या नहीं (दो वैल्यू का इस्तेमाल करने पर) या फिर, चैनलों की मूल संख्या का इस्तेमाल करके आउटपुट दिया जा रहा है (जब बराबर वैल्यू का इस्तेमाल किया जा रहा हो या उससे बड़ा होना चाहिए). उदाहरण के लिए, छह या उससे बड़ी वैल्यू कॉन्फ़िगर होगी एक डिकोडर, जो 5.1 कॉन्टेंट फ़ीड किए जाने पर 6 चैनल दिखाता है.
  • [C-7-2] डिकोड करते समय, डिकोडर को इस्तेमाल किए जा रहे चैनल मास्क का विज्ञापन देना ज़रूरी है के साथ आउटपुट प्रारूप में KEY_CHANNEL_MASK कुंजी, android.media.AudioFormat कॉन्सटेंट का इस्तेमाल करके (उदाहरण: CHANNEL_OUT_5POINT1).

अगर डिवाइस लागू करने के तरीके, डिफ़ॉल्ट एएसी के अलावा किसी दूसरे ऑडियो डिकोडर के साथ काम करते हैं ऑडियो डिकोडर की मदद से, कई चैनल पर ऑडियो जनरेट किया जा सकता है. इसका मतलब है कि 2 चैनल) होने पर, जब कंप्रेस किया गया मल्टी-चैनल कॉन्टेंट फ़ीड किया जाएगा, फिर:

  • [C-SR-2] डिकोडर को बहुत सख्ती से सुझाया जाता है, ताकि उसे कुंजी की मदद से डिकोड करने की सुविधा का इस्तेमाल करने वाला ऐप्लिकेशन KEY_MAX_OUTPUT_CHANNEL_COUNT का इस्तेमाल करके, यह कंट्रोल किया जा सकता है कि कॉन्टेंट को स्टीरियो में डाउनग्रेड किया जाए या नहीं (दो वैल्यू का इस्तेमाल करने पर) या फिर, चैनलों की मूल संख्या का इस्तेमाल करके आउटपुट दिया जा रहा है (जब बराबर वैल्यू का इस्तेमाल किया जा रहा हो या उससे बड़ा होना चाहिए). उदाहरण के लिए, छह या उससे बड़ी वैल्यू कॉन्फ़िगर होगी एक डिकोडर, जो 5.1 कॉन्टेंट फ़ीड किए जाने पर 6 चैनल दिखाता है.
  • [C-SR-3] डिकोड करते समय, डिकोडर को चैनल मास्क का इस्तेमाल, आउटपुट फ़ॉर्मैट में KEY_CHANNEL_MASK कुंजी का इस्तेमाल करें. इसके लिए, android.media.AudioFormat कॉन्सटेंट का इस्तेमाल करें (उदाहरण: CHANNEL_OUT_5POINT1).

5.1.3. ऑडियो कोडेक की जानकारी

फ़ॉर्मैट/कोडेक जानकारी फ़ाइल टाइप/कंटेनर फ़ॉर्मैट का इस्तेमाल करना
MPEG-4 एएसी प्रोफ़ाइल
(AAC एलसी)
मोनो/स्टीरियो/5.0/5.1 कॉन्टेंट के साथ स्टैंडर्ड कॉन्टेंट उपलब्ध है यह सैंपल रेट 8 से 48 किलोहर्ट्ज़ (kHz) तक होना चाहिए.
  • 3GPP (.3gp)
  • MPEG-4 (.mp4, .m4a)
  • ADTS रॉ AAC (.aac, ADIF काम नहीं करता)
  • MPEG-TS (.ts, सीकेबल नहीं, सिर्फ़ डिकोड)
  • Matroska (.mkv, सिर्फ़ डिकोड करना)
MPEG-4 HE AAC प्रोफ़ाइल (AAC+) मोनो/स्टीरियो/5.0/5.1 कॉन्टेंट के साथ स्टैंडर्ड कॉन्टेंट उपलब्ध है किलोहर्ट्ज़ (kHz) से लेकर 16 किलोहर्ट्ज़ (KHz) तक के सैंपल की दर.
  • 3GPP (.3gp)
  • MPEG-4 (.mp4, .m4a)
MPEG-4 HE AACv2
प्रोफ़ाइल (बेहतर AAC+)
मोनो/स्टीरियो/5.0/5.1 कॉन्टेंट के साथ स्टैंडर्ड कॉन्टेंट उपलब्ध है किलोहर्ट्ज़ (kHz) से लेकर 16 किलोहर्ट्ज़ (KHz) तक के सैंपल की दर.
  • 3GPP (.3gp)
  • MPEG-4 (.mp4, .m4a)
AAC ELD (बेहतर कम देरी AAC) 16 से लेकर 16 तक की मानक सैंपलिंग रेट के साथ मोनो/स्टीरियो कॉन्टेंट के लिए सहायता 48 किलोहर्ट्ज़.
  • 3GPP (.3gp)
  • MPEG-4 (.mp4, .m4a)
यूएसएसी मोनो/स्टीरियो कॉन्टेंट के लिए, 7.35 से स्टैंडर्ड सैंपलिंग रेट के साथ काम करता है 48 किलोहर्ट्ज़ तक. MPEG-4 (.mp4, .m4a)
एएमआर-एनबी 4.75 से 12.2 केबीपीएस का सैंपल @ 8 किलोहर्ट्ज़ (kHz) 3GPP (.3gp)
एएमआर-डब्ल्यूबी 6.60 किलोहर्ट्ज़/सेकंड से 23.85 किलोहर्ट्ज़/सेकंड तक की 9 दरें, 16 किलोहर्ट्ज़ की दर से सैंपल की गई हैं, जैसा कि यहां बताया गया है AMR-WB, अडैप्टिव मल्टी-रेट - वाइडबैंड स्पीच कोडेक 3GPP (.3gp)
FLAC एन्कोडर और डिकोडर, दोनों के लिए: कम से कम मोनो और स्टीरियो मोड होना ज़रूरी है समर्थित हैं. 192 किलोहर्ट्ज़ तक के सैंपल रेट का इस्तेमाल किया जाना ज़रूरी है; 16-बिट और 24-बिट समस्या का समाधान करना ज़रूरी है. FLAC 24-बिट ऑडियो डेटा को हैंडल करना ज़रूरी है फ़्लोटिंग पॉइंट ऑडियो कॉन्फ़िगरेशन के साथ उपलब्ध है.
  • FLAC (.flac)
  • MPEG-4 (.mp4, .m4a, सिर्फ़ डिकोड)
  • Matroska (.mkv, सिर्फ़ डिकोड करना)
MP3 मोनो/स्टीरियो 8-320 केबीपीएस कॉन्स्टेंट (सीबीआर) या वैरिएबल बिटरेट (वीबीआर)
  • एमपी3 (.mp3)
  • MPEG-4 (.mp4, .m4a, सिर्फ़ डिकोड)
  • Matroska (.mkv, सिर्फ़ डिकोड करना)
MIDI एमआईडीआई टाइप 0 और 1. DLS वर्शन 1 और 2. XMF और Mobile XMF. इसके लिए सहायता रिंगटोन फ़ॉर्मैट: RTTTL/RTX, OTA, और iMelody
  • टाइप 0 और 1 (.mid, .xmf, .mxmf)
  • आरटीटीटीएल/आरटीएक्स (.rtttl, .rtx)
  • iMelody (.imy)
वोर्बिस डिकोडिंग: मोनो, स्टीरियो, 5.0, और 5.1 कॉन्टेंट के साथ सैंपलिंग की सुविधा काम करती है 8,000, 12,000, 16,000, 24,000, और 48,000 हर्ट्ज़ की दरें.
एन्कोडिंग: मोनो और स्टीरियो कॉन्टेंट के साथ काम करता है जिसमें सैंपल रेट की सैंपलिंग दर अलग-अलग हो सकती है 8,000, 12,000, 16,000, 24,000, और 48,000 हर्ट्ज़.
  • ऑग (.ogg)
  • MPEG-4 (.mp4, .m4a, सिर्फ़ डिकोड)
  • मैट्रोस्का (.mkv)
  • वेबम (.webm)
PCM/WAVE PCM कोडेक को 16-बिट लीनियर PCM और 16-बिट फ़्लोट पर काम करना चाहिए. वेव एक्सट्रैक्टर, 16-बिट, 24-बिट, 32-बिट लीनियर PCM, और 32-बिट फ़्लोट के साथ काम करना चाहिए (हार्डवेयर की सीमा तक रेट करता है). सैंपलिंग रेट यहां से काम करना चाहिए 8 किलोहर्ट्ज़ से 192 किलोहर्ट्ज़ तक. WAVE (.wav)
Opus डिकोडिंग: मोनो, स्टीरियो, 5.0 और 5.1 कॉन्टेंट के लिए सहायता 8,000, 12,000, 16,000, 24,000, और 48,000 हर्ट्ज़ की सैंपलिंग रेट के साथ.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है एन्कोडिंग: मोनो और स्टीरियो सामग्री के लिए समर्थन 8,000, 12,000, 16,000, 24,000, और 48,000 हर्ट्ज़ की सैंपलिंग रेट के साथ.
  • ऑग (.ogg)
  • MPEG-4 (.mp4, .m4a, सिर्फ़ डिकोड)
  • मैट्रोस्का (.mkv)
  • वेबम (.webm)

5.1.4. चित्र एन्कोडिंग

ज़्यादा जानकारी 5.1.6. इमेज कोडेक से जुड़ी जानकारी.

डिवाइस को लागू करने के लिए, नीचे दी गई इमेज को कोड में बदलने का तरीका काम करना चाहिए:

  • [C-0-1] जेपीईजी
  • [C-0-2] PNG
  • [C-0-3] WebP
  • [C-0-4] एवीवीएफ़
    • डिवाइसों में BITRATE_MODE_CQ और बेसलाइन प्रोफ़ाइल होनी चाहिए.

अगर लागू किए गए डिवाइस, android.media.MediaCodec के ज़रिए एचईआईसी एन्कोडिंग के साथ काम करते हैं मीडिया टाइप MIMETYPE_IMAGE_ANDROID_HEIC के लिए, वे:

  • [C-1-1] हार्डवेयर से तेज़ी से काम करने वाला एक HEVC एन्कोडर कोडेक देना ज़रूरी है जो समर्थन करता है BITRATE_MODE_CQ बिटरेट कंट्रोल मोड, HEVCProfileMainStill प्रोफ़ाइल और 512 x 512 पिक्सल फ़्रेम साइज़.

5.1.5. इमेज डिकोड करना

ज़्यादा जानकारी 5.1.6. इमेज कोडेक से जुड़ी जानकारी.

लागू करने के लिए डिवाइस को नीचे दिए गए इमेज एन्कोडिंग को डिकोड करना ज़रूरी है:

  • [C-0-1] जेपीईजी
  • [C-0-2] GIF
  • [C-0-3] PNG
  • [C-0-4] BMP
  • [C-0-5] WebP
  • [C-0-6] रॉ
  • [C-0-7] AVIF (बेसलाइन प्रोफ़ाइल)

अगर डिवाइस में एचईवीसी वीडियो डिकोड करने की सुविधा काम करती है, तो ये काम किए जा सकते हैं:

  • [C-1-1] इमेज को HEIF (HEIC) फ़ॉर्मैट में डिकोड करने की सुविधा ज़रूरी है.

इमेज डिकोडर जो ज़्यादा बिट-डेप्थ फ़ॉर्मैट (हर चैनल के लिए 9+ बिट) के साथ काम करते हैं:

  • [C-2-1] अनुरोध करने पर, 8-बिट के मिलते-जुलते फ़ॉर्मैट का आउटपुट देना ज़रूरी है ऐप्लिकेशन, उदाहरण के लिए, ARGB_8888 के ज़रिए android.graphics.Bitmap का कॉन्फ़िगरेशन.

5.1.6. इमेज कोडेक की जानकारी

फ़ॉर्मैट/कोडेक जानकारी इस्तेमाल किए जा सकने वाले फ़ाइल टाइप/कंटेनर फ़ॉर्मैट
JPEG बेस+प्रोग्रेसिव JPEG (.jpg)
GIF GIF (.gif)
PNG PNG (.png)
BMP BMP (.bmp)
WebP फ़ॉर्मैट WebP (.webp)
Raw एआरडब्ल्यू (.arw), CR2 (.cr2), डीएनजी (.dng), NEF (.nef), एनआरडब्ल्यू (.nrw), ओआरएफ़ (.orf), पीईएफ़ (.pef), RAF (.raf), RW2 (.rw2), एसआरडब्ल्यू (.srw)
एचईआईएफ़ इमेज, इमेज कलेक्शन, इमेज क्रम HEIF (.heif), HEIC (.heic)
AVIF (बेसलाइन प्रोफ़ाइल) इमेज, इमेज कलेक्शन, इमेज क्रम वाली बेसलाइन प्रोफ़ाइल HEIF कंटेनर (.avif)

MediaCodec एपीआई की मदद से दिखाए गए इमेज एन्कोडर और डिकोडर

  • [C-1-1] YUV420 8:8:8 सुविधाजनक रंग पर भी काम करना चाहिए फ़ॉर्मैट (COLOR_FormatYUV420Flexible) से CodecCapabilities तक.

  • [C-SR-1] इनपुट सरफ़ेस के लिए RGB888 कलर फ़ॉर्मैट के साथ काम करने के लिए इसका बहुत ज़्यादा सुझाव दिया जाता है मोड.

  • [C-1-3] कम से कम एक प्लैनर या सेमीप्लानर को सपोर्ट करना ज़रूरी है YUV420 8:8:8 कलर फ़ॉर्मैट: COLOR_FormatYUV420PackedPlanar (इसके बराबर COLOR_FormatYUV420Planar) या COLOR_FormatYUV420PackedSemiPlanar (इसके बराबर है COLOR_FormatYUV420SemiPlanar तक). हमारा सुझाव है कि इन्हें इस्तेमाल करें दोनों.

5.1.7. वीडियो कोडेक

  • वेब वीडियो स्ट्रीमिंग और वीडियो कॉन्फ़्रेंस की अच्छी क्वालिटी के लिए सेवाओं, डिवाइस को लागू करने के लिए ऐसे हार्डवेयर VP8 कोडेक का इस्तेमाल करना चाहिए जो ज़रूरी शर्तें.

अगर लागू किए जाने वाले डिवाइस में वीडियो डिकोडर या एन्कोडर शामिल है, तो:

  • [C-1-1] वीडियो कोडेक को आउटपुट और इनपुट बाइट बफ़र साइज़ के साथ काम करना चाहिए, इसमें सबसे बड़े कंप्रेस किए गए और बिना कंप्रेस किए गए फ़्रेम को अपने हिसाब से अडजस्ट किया जा सकता है. के हिसाब से तय किया जाता है. हालांकि, यह तय सीमा से ज़्यादा नहीं होता है.

  • [C-1-2] वीडियो एन्कोडर और डिकोडर को YUV420 8:8:8 सुविधाजनक रंग पर काम करना चाहिए फ़ॉर्मैट (COLOR_FormatYUV420Flexible) से CodecCapabilities तक.

  • [C-1-3] वीडियो एन्कोडर और डिकोडर को कम से कम एक प्लान के साथ काम करना चाहिए या सेमीप्लानर YUV420 8:8:8 कलर फ़ॉर्मैट: COLOR_FormatYUV420PackedPlanar (COLOR_FormatYUV420Planar के बराबर) या COLOR_FormatYUV420PackedSemiPlanar (COLOR_FormatYUV420SemiPlanar के बराबर). हमारा सुझाव है कि ये दोनों सुविधाएं काम करें.

  • [C-SR-1] वीडियो एन्कोडर और डिकोडर को इस तरह से इस्तेमाल करने का सुझाव दिया जाता है: हार्डवेयर के हिसाब से ऑप्टिमाइज़ किया गया कम से कम एक प्लैनर या सेमीप्लानर YUV420 8:8:8 रंग का हो फ़ॉर्मैट (YV12, NV12, NV21 या इसके बराबर का वेंडर ऑप्टिमाइज़ किया गया फ़ॉर्मैट.)

  • [C-1-5] वीडियो डिकोडर जो ज़्यादा बिट-डेप्थ फ़ॉर्मैट के साथ काम करते हैं (हर चैनल के लिए 9+ बिट) 8-बिट के बराबर फ़ॉर्मैट वाला आउटपुट देना चाहिए, ऐप्लिकेशन ने किस तरह का अनुरोध किया है. इसे लागू करने के लिए, android.media.MediaCodecInfo के ज़रिए YUV420 8:8:8 कलर फ़ॉर्मैट का इस्तेमाल किया जा सकता है.

अगर डिवाइस लागू करने की प्रोसेस, इसके ज़रिए एचडीआर प्रोफ़ाइल पर काम करती है Display.HdrCapabilities वे:

  • [C-2-1] एचडीआर के स्टैटिक मेटाडेटा को पार्स करने और हैंडल करने की सुविधा होनी चाहिए.

अगर डिवाइस, इंट्रा रीफ़्रेश सपोर्ट के ज़रिए विज्ञापन दिखाते हैं, तो MediaCodecInfo.CodecCapabilities में FEATURE_IntraRefresh क्लास में शामिल करते हैं, वे:

  • [C-3-1] रीफ़्रेश पीरियड, 10 से 60 फ़्रेम के बीच चलाए जा सकते हों और कॉन्फ़िगर की गई रीफ़्रेश अवधि के 20% के अंदर सटीक तरीके से काम करता है.

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

  • [C-4-1] हार्डवेयर डिसप्ले के लिए ऑप्टिमाइज़ किए गए कलर फ़ॉर्मैट में डिफ़ॉल्ट रूप से सेट होना चाहिए अगर सरफ़ेस आउटपुट का इस्तेमाल करके कॉन्फ़िगर किया गया है.
  • [C-4-2] इसे डिफ़ॉल्ट रूप से, सीपीयू के लिए ऑप्टिमाइज़ किए गए YUV420 8:8:8 कलर फ़ॉर्मैट पर सेट करना ज़रूरी है सरफ़ेस आउटपुट का इस्तेमाल न करने के लिए कॉन्फ़िगर किए जाने पर रीडिंग.

5.1.8. वीडियो कोडेक की सूची

फ़ॉर्मैट/कोडेक जानकारी फ़ाइल टाइप/कंटेनर फ़ॉर्मैट का इस्तेमाल करना
एच.263
  • 3GPP (.3gp)
  • MPEG-4 (.mp4)
  • Matroska (.mkv, सिर्फ़ डिकोड करना)
एच.264 एवीसी सेक्शन 5.2 देखें और 5.3 ज़्यादा जानकारी के लिए
  • 3GPP (.3gp)
  • MPEG-4 (.mp4)
  • MPEG-2 टीएस (.ts, सीकेबल नहीं)
  • Matroska (.mkv, सिर्फ़ डिकोड करना)
एच.265 एचईवीसी जानकारी के लिए, सेक्शन 5.3 देखें
  • MPEG-4 (.mp4)
  • Matroska (.mkv, सिर्फ़ डिकोड करना)
MPEG-2 मुख्य प्रोफ़ाइल
  • MPEG2-TS (.ts, सीकेबल नहीं)
  • MPEG-4 (.mp4, सिर्फ़ डिकोड करना)
  • Matroska (.mkv, सिर्फ़ डिकोड करना)
एमपीईजी-4 एसपी
  • 3GPP (.3gp)
  • MPEG-4 (.mp4)
  • Matroska (.mkv, सिर्फ़ डिकोड करना)
वीपी8 सेक्शन 5.2 देखें और 5.3 ज़्यादा जानकारी के लिए
वीपी9 जानकारी के लिए, सेक्शन 5.3 देखें
AV1 ज़्यादा जानकारी के लिए, सेक्शन 5.2 और सेक्शन 5.3 देखें
  • MPEG-4 (.mp4)
  • Matroska (.mkv, सिर्फ़ डिकोड करना)

5.1.9. मीडिया कोडेक सुरक्षा

डिवाइस को लागू करने के लिए यह पक्का करना ज़रूरी है कि मीडिया कोडेक की सुरक्षा सुविधाओं का पालन किया जा रहा हो जैसा कि नीचे बताया गया है.

Android में OMX काम करता है. यह क्रॉस-प्लैटफ़ॉर्म मल्टीमीडिया ऐक्सेलरेशन एपीआई है, और साथ ही, कोडेक 2.0, एक लो-ओवरहेड मल्टीमीडिया एक्सेलरेटर एपीआई के साथ काम करते हैं.

अगर लागू किए जाने वाले डिवाइस में मल्टीमीडिया कॉन्टेंट काम करता है, तो वे:

  • [C-1-1] OMX या कोडेक 2.0 के ज़रिए मीडिया कोडेक के लिए सहायता देना ज़रूरी है एपीआई (या दोनों) को Android ओपन सोर्स प्रोजेक्ट की तरह इस्तेमाल किया हो और उसे बंद न किया गया हो या को गच्चा देने की कोशिश कर सकते हैं. इसका खास तौर पर यह मतलब नहीं है कि कोडेक के लिए OMX या कोडेक 2.0 API का इस्तेमाल करना ज़रूरी है. यह एपीआई, कम से कम इनमें से कोई एक एपीआई उपलब्ध होना चाहिए. साथ ही, उपलब्ध एपीआई के लिए सहायता भी ज़रूरी है मौजूद सुरक्षा उपायों को भी शामिल किया जाए.
  • [C-SR-1] को कोडेक 2.0 एपीआई के साथ काम करने का सुझाव दिया जाता है.

अगर लागू किए गए डिवाइस पर कोडेक 2.0 एपीआई काम नहीं करता, तो वे:

  • [C-2-1] Android डिवाइस के साथ काम करने वाला OMX सॉफ़्टवेयर कोडेक शामिल करना ज़रूरी है हर मीडिया फ़ॉर्मैट और टाइप के लिए ओपन सोर्स प्रोजेक्ट (अगर उपलब्ध हो) (एन्कोडर या डिकोडर).
  • [C-2-2] ऐसे कोडेक जिनके नाम "OMX.google" से शुरू होते हैं. ज़रूरी है सोर्स कोड वाली फ़ाइल होती है.
  • [C-SR-2] का खास तौर पर सुझाव दिया जाता है कि OMX सॉफ़्टवेयर कोडेक एक कोडेक में चलते हों ऐसी प्रक्रिया जिसके पास मेमोरी मैपर के अलावा अन्य हार्डवेयर ड्राइवर का ऐक्सेस नहीं होता है.

अगर लागू किए गए डिवाइस, कोडेक 2.0 API के साथ काम करते हैं, तो वे:

  • [C-3-1] आपको हर मीडिया फ़ॉर्मैट और टाइप के लिए, Android ओपन सोर्स प्रोजेक्ट (अगर उपलब्ध हो) (एन्कोडर या डिकोडर).
  • [C-3-2] सॉफ़्टवेयर कोडेक में कोडेक 2.0 सॉफ़्टवेयर कोडेक रखना ज़रूरी है जैसा कि Android ओपन सोर्स प्रोजेक्ट में बताया गया है, ताकि का इस्तेमाल करके, सॉफ़्टवेयर कोडेक का ऐक्सेस ज़्यादा बारीकी से दिया जा सकता है.
  • [C-3-3] ऐसे कोडेक जिनके नाम "c2.android" से शुरू होते हैं. ज़रूरी है सोर्स कोड वाली फ़ाइल होती है.

5.1.10. मीडिया कोडेक के लिए कैरेक्टर बनाना

अगर लागू किए गए डिवाइस, मीडिया कोडेक के साथ काम करते हैं, तो वे:

खास तौर पर:

  • [C-1-2] "OMX" से शुरू होने वाले नाम वाले कोडेक. OMX API का इस्तेमाल करना ज़रूरी है और ऐसे नाम रखें जो OMX IL नाम देने के दिशा-निर्देशों के मुताबिक हों.
  • [C-1-3] "c2" से शुरू होने वाले नाम वाले कोडेक. आपको कोडेक 2.0 एपीआई का इस्तेमाल करना होगा और ऐसे नाम हों जो Android के लिए कोडेक 2.0 नामकरण दिशा-निर्देशों के अनुरूप हों.
  • [C-1-4] "OMX.google" से शुरू होने वाले नाम वाले कोडेक. या "c2.android" का इस्तेमाल करें. ज़रूरी है इसे वेंडर या हार्डवेयर से तेज़ी से होने वाली बढ़ोतरी के तौर पर नहीं दिखाया जाना चाहिए.
  • [C-1-5] ऐसे कोडेक जो किसी कोडेक प्रोसेस (वेंडर या सिस्टम) में चलते हैं और जिनमें मेमोरी ऐलोकेटर और मैपर के अलावा, हार्डवेयर ड्राइवर का ऐक्सेस उन्हें सिर्फ़-सॉफ़्टवेयर के तौर पर बताया जाना चाहिए.
  • [C-1-6] कोडेक, Android ओपन सोर्स प्रोजेक्ट में मौजूद नहीं हैं या इस पर आधारित नहीं हैं होना चाहिए, तो उस प्रोजेक्ट में वेंडर के तौर पर शामिल किया जाना चाहिए.
  • [C-1-7] हार्डवेयर से तेज़ी लाने वाले कोडेक की विशेषता बताना ज़रूरी है हार्डवेयर की मदद से तेज़ी से काम करता है.
  • [C-1-8] कोडेक के नाम गुमराह करने वाले नहीं होने चाहिए. उदाहरण के लिए, नाम वाले कोडेक "डिकोडर" डिकोड करने की सुविधा का इस्तेमाल करना ज़रूरी है. साथ ही, जिन्हें "एन्कोडर" नाम दिया गया हो ज़रूरी सहायता एन्कोडिंग मीडिया फ़ॉर्मैट वाले नामों वाले कोडेक को इनका काम करना चाहिए फ़ॉर्मैट के बारे में ज़्यादा जानें.

अगर लागू किए गए डिवाइस, वीडियो कोडेक के साथ काम करते हैं, तो:

  • [C-2-1] सभी वीडियो कोडेक को यदि कोडेक द्वारा समर्थित हो तो निम्नलिखित आकार:
एसडी (खराब क्वालिटी) एसडी (अच्छी क्वालिटी) एचडी 720 पिक्सल एचडी 1080 पिक्सल यूएचडी
वीडियो रिज़ॉल्यूशन
  • 176 x 144 पिक्सल (H263, MPEG2, MPEG4)
  • 352 x 288 पिक्सल (MPEG4 एन्कोडर, H263, MPEG2)
  • 320 x 180 पिक्सल (VP8, VP8)
  • 320 x 240 पिक्सल (अन्य)
  • 704 x 576 पिक्सल (H263)
  • 640 x 360 पिक्सल (VP8, VP9)
  • 640 x 480 पिक्सल (MPEG4 एन्कोडर)
  • 720 x 480 पिक्सल (अन्य, AV1)
  • 1408 x 1152 पिक्सल (H263)
  • 1280 x 720 पिक्सल (अन्य, AV1)
1920 x 1080 पिक्सल (MPEG4, AV1 के अलावा) 3840 x 2160 पिक्सल (HEVC, VP9, AV1)
  • [C-2-2] ऐसे वीडियो कोडेक जिन्हें हार्डवेयर की मदद से तेज़ी लाना ज़रूरी है पब्लिश करने के लिए परफ़ॉर्मेंस पॉइंट की जानकारी. उनमें हर सूची का इस्तेमाल होना चाहिए स्टैंडर्ड परफ़ॉर्मेंस पॉइंट (PerformancePoint में दिए गए हैं एपीआई). ऐसा तब तक किया जा सकता है, जब तक कि वे इस्तेमाल किए जा सकने वाले किसी दूसरे स्टैंडर्ड परफ़ॉर्मेंस पॉइंट में शामिल न हों.
  • इसके अलावा, अगर वे दिए गए स्टैंडर्ड वीडियो की परफ़ॉर्मेंस के अलावा, किसी और फ़ॉर्मैट में वीडियो की परफ़ॉर्मेंस अच्छी न हो.

5.2. वीडियो एन्कोडिंग

अगर लागू करने के लिए डिवाइस किसी वीडियो एन्कोडर के साथ काम करते हैं और उसे तीसरे पक्ष के ऐप्लिकेशन इस्तेमाल करें और
सेट करें MediaFormat.KEY_BITRATE_MODE से BITRATE_MODE_VBR ताकि एन्कोडर वैरिएबल बिटरेट मोड में काम करे, फिर अगर इससे कम से कम क्वालिटी के फ़्लोर पर असर न पड़ता हो, एन्कोडेड बिटरेट :

  • एक से ज़्यादा नहीं होना चाहिए स्लाइडिंग विंडो, इंट्राफ़्रेम (I-फ़्रेम) के बीच के बिटरेट से 15% से ज़्यादा अंतराल.
  • से ज़्यादा नहीं होना चाहिए एक सेकंड की स्लाइडिंग विंडो पर, बिटरेट से 100% ज़्यादा.

अगर लागू करने के लिए डिवाइस किसी वीडियो एन्कोडर के साथ काम करते हैं और उसे और यह सेट किया जा सकता है कि MediaFormat.KEY_BITRATE_MODE से BITRATE_MODE_CBR इसलिए, एन्कोडर एक कॉन्सटैंट बिटरेट मोड में काम करता है. इसके बाद, कोड को कोड में बदला जाता है:

  • [C-SR-2] का सुझाव दिया जाता है एक सेकंड की स्लाइडिंग विंडो पर, टारगेट बिटरेट पर 15% से ज़्यादा न हो.

अगर लागू किए गए डिवाइस में, एम्बेड किया गया स्क्रीन डिसप्ले शामिल हो कम से कम 2.5 इंच की डायगनल लंबाई या वीडियो आउटपुट पोर्ट जोड़ें या यह एलान करें कि android.hardware.camera.any के ज़रिए, कैमरे को ऐक्सेस करने की सुविधा दी जाएगी फ़ीचर फ़्लैग, वे:

  • [C-1-1] वीडियो में, कम से कम एक VP8 या H.264 वीडियो का होना ज़रूरी है और उसे तीसरे पक्ष के ऐप्लिकेशन के लिए उपलब्ध करवाता है.
  • इसे VP8 और H.264 वीडियो एन्कोडर, दोनों के साथ काम करना चाहिए और इसे उपलब्ध कराना चाहिए तीसरे पक्ष के ऐप्लिकेशन के लिए.

अगर डिवाइस बनाते समय, H.264, VP8, VP9 या HEVC में से किसी एक वीडियो का इस्तेमाल किया जा सकता है, तो एन्कोडर और उसे तीसरे पक्ष के ऐप्लिकेशन के लिए उपलब्ध कराने के लिए, ये काम करते हैं:

  • [C-2-1] डाइनैमिक तौर पर कॉन्फ़िगर किए जा सकने वाले बिटरेट के साथ काम करना ज़रूरी है.
  • यह वैरिएबल फ़्रेम रेट के साथ काम करना चाहिए. इसमें वीडियो एन्कोडर को यह तय करना चाहिए कि इनपुट बफ़र के टाइमस्टैंप के हिसाब से तुरंत फ़्रेम की अवधि और उस फ़्रेम की अवधि के आधार पर अपना बिट बकेट आवंटित करें.

अगर डिवाइस, MPEG-4 एसपी वीडियो एन्कोडर के साथ काम करता है और यह जो तीसरे पक्ष के ऐप्लिकेशन को उपलब्ध होते हैं, तो उन्हें:

  • इसके साथ काम करने वाले एन्कोडर के लिए, इसे डाइनैमिक तरीके से कॉन्फ़िगर किए जा सकने वाले बिटरेट के साथ काम करना चाहिए.

अगर डिवाइस को लागू करने के तरीके की मदद से, हार्डवेयर की मदद से फटाफट जानकारी देने वाले वीडियो या इमेज एन्कोडर उपलब्ध कराए जाते हैं, और एक या एक से ज़्यादा अटैच किए जा सकने वाले या प्लग किए जा सकने वाले हार्डवेयर कैमरे, बिना अनुमति के सार्वजनिक किए जा सकें. android.camera एपीआई:

  • [C-4-1] सभी हार्डवेयर एक्सेलरेटेड वीडियो और इमेज एन्कोडर को काम करना चाहिए हार्डवेयर कैमरे से फ़्रेम कोड में बदलने के तरीके.
  • हार्डवेयर कैमरे से सभी वीडियो में, फ़्रेम को कोड में बदलने के लिए इस्तेमाल होना चाहिए या इमेज एन्कोडर का इस्तेमाल करना चाहिए.

अगर डिवाइस लागू करने के लिए एचडीआर एन्कोडिंग दी गई है, तो वे:

  • [C-SR-1] का सुझाव दिया जाता है, ताकि एचडीआर फ़ॉर्मैट से एसडीआर फ़ॉर्मैट में बदलने के लिए, बिना किसी रुकावट के ट्रांसकोडिंग एपीआई.

5.2.1. एच.263

अगर डिवाइस इंप्लीमेंटेशन, H.263 एन्कोडर के साथ काम करते हैं और उसे उपलब्ध कराते हैं का इस्तेमाल करते हैं, तो वे:

  • [C-1-1] क्यूसीआईएफ़ रिज़ॉल्यूशन (176 x 144) पर काम करना ज़रूरी है बेसलाइन प्रोफ़ाइल लेवल 45 का इस्तेमाल करके. SQCIF रिज़ॉल्यूशन का इस्तेमाल करना ज़रूरी नहीं है.

5.2.2. H.264

अगर लागू किए गए डिवाइस, H.264 कोडेक के साथ काम करते हैं, तो वे:

  • [C-1-1] बेसलाइन प्रोफ़ाइल लेवल 3 के साथ काम करना ज़रूरी है. हालांकि, ASO (आर्बिट्ररी स्लाइस ऑर्डरिंग), एफ़एमओ (फ़्लेक्सिबल मैक्रोब्लॉक ऑर्डरिंग) और आरएस (रिडंडंट स्लाइस) ज़रूरी नहीं है. इतना ही नहीं, अन्य Android डिवाइसों के साथ काम करना जारी रखें, इसलिए हमारा सुझाव है कि एन्कोडर की मदद से बेसलाइन प्रोफ़ाइल बनाने के लिए, ASO, FMO, और RS का इस्तेमाल नहीं किया जाता.
  • [C-1-2] एसडी (स्टैंडर्ड डेफ़िनिशन) वीडियो एन्कोडिंग प्रोफ़ाइल के साथ काम करना ज़रूरी है यहां दी गई टेबल में बताया गया है.
  • मुख्य प्रोफ़ाइल लेवल 4 का समर्थन करना चाहिए.
  • एचडी (हाई डेफ़िनिशन) वीडियो एन्कोडिंग प्रोफ़ाइल का इस्तेमाल इस तरह करना चाहिए नीचे दी गई टेबल में दी गई है.

अगर डिवाइस लागू करने की