Android 6.0 API

Android 6.0 (M) उपयोगकर्ताओं और ऐप्लिकेशन डेवलपर के लिए नई सुविधाएं ऑफ़र करता है. इस दस्तावेज़ में आपको एपीआई का इस्तेमाल करते हैं.

डेवलप करना शुरू करें

Android 6.0 के लिए ऐप्लिकेशन बनाना शुरू करने के लिए, आपको पहले Android SDK टूल का इस्तेमाल करें. इसके बाद, SDK Manager का इस्तेमाल करें Android 6.0 SDK प्लैटफ़ॉर्म और सिस्टम इमेज डाउनलोड करने के लिए.

टारगेट एपीआई लेवल को अपडेट करना

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

पुराने वर्शन के साथ भी काम करने के साथ-साथ, Android API का इस्तेमाल भी किया जा सकता है वर्शन के तौर पर, अपने कोड में ऐसी शर्तें जोड़कर, जो सिस्टम के एपीआई लेवल की जांच करती हैं लागू करने से पहले, उन एपीआई को एक्ज़ीक्यूट करें जो आपके minSdkVersion के साथ काम नहीं करते. पुराने सिस्टम के साथ काम करने की सुविधा को बनाए रखने के बारे में ज़्यादा जानने के लिए, सहायता टीम के साथ काम करना प्लैटफ़ॉर्म के अलग-अलग वर्शन.

एपीआई लेवल कैसे काम करते हैं, इस बारे में ज़्यादा जानने के लिए एपीआई क्या है, यह पढ़ें लेवल?

फ़िंगरप्रिंट से पुष्टि

इस रिलीज़ में नए एपीआई दिए गए हैं. इनकी मदद से, फ़िंगरप्रिंट स्कैन का इस्तेमाल करके, उपयोगकर्ताओं की पुष्टि की जा सकती है काम नहीं करता है, तो इन एपीआई का इस्तेमाल Android कीस्टोर सिस्टम.

फ़िंगरप्रिंट स्कैन की मदद से उपयोगकर्ताओं की पुष्टि करने के लिए, FingerprintManager क्लास शुरू करें और authenticate() तरीका. यह ज़रूरी है कि आपका ऐप्लिकेशन, काम करने वाले डिवाइस पर चल रहा हो फ़िंगरप्रिंट सेंसर वाला डिवाइस. आपको फ़िंगरप्रिंट के लिए यूज़र इंटरफ़ेस लागू करना होगा पुष्टि करें. साथ ही, अपने यूज़र इंटरफ़ेस (यूआई) में Android के स्टैंडर्ड फ़िंगरप्रिंट आइकॉन का इस्तेमाल करें. Android फ़िंगरप्रिंट आइकॉन (c_fp_40px.png) को इसमें शामिल किया गया है बायोमेट्रिक पुष्टि करने का सैंपल. अगर आप ऐसे कई ऐप्लिकेशन डेवलप कर रहे हैं जो फ़िंगरप्रिंट से पुष्टि करने की सुविधा का इस्तेमाल करते हैं, तो ध्यान रखें कि हर ऐप्लिकेशन को उपयोगकर्ता के फ़िंगरप्रिंट की अलग से पुष्टि करें.

अपने ऐप्लिकेशन में इस सुविधा का इस्तेमाल करने के लिए, पहले USE_FINGERPRINT अनुमति का इस्तेमाल करें.

<uses-permission
        android:name="android.permission.USE_FINGERPRINT" />
मोबाइल पर फ़िंगरप्रिंट की पुष्टि करने की सुविधा दिखाई जा रही है

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

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

  1. अगर आपने अब तक Android SDK टूल में बदलाव 24.3 नहीं किया है, तो इसे इंस्टॉल करें.
  2. एम्युलेटर में, नया फ़िंगरप्रिंट रजिस्टर करने के लिए यहां जाएं: सेटिंग > सुरक्षा > फ़िंगरप्रिंट पर क्लिक करें. इसके बाद, रजिस्टर करने के निर्देशों का पालन करें.
  3. फ़िंगरप्रिंट टच इवेंट को एम्युलेट करने के लिए, एम्युलेटर का इस्तेमाल करें आदेश दिखाई देगा. लॉकस्क्रीन पर फ़िंगरप्रिंट टच इवेंट को एम्युलेट करने के लिए एक ही निर्देश का इस्तेमाल करें या आपके ऐप्लिकेशन में.
    adb -e emu finger touch <finger_id>
    

    Windows पर, आपको telnet 127.0.0.1 <emulator-id> के बाद finger touch <finger_id>.

क्रेडेंशियल की पुष्टि करें

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

वह समय खत्म होने की अवधि सेट करना जिसके लिए उपयोगकर्ता के सफलतापूर्वक काम करने के बाद उसी कुंजी का फिर से इस्तेमाल किया जा सकता है प्रमाणित किया गया है, तो नए setUserAuthenticationValidityDurationSeconds() अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है तरीका सेट अप करते समय KeyGenerator या KeyPairGenerator.

फिर से पुष्टि करने वाले डायलॉग को ज़रूरत से ज़्यादा दिखाने से बचें -- आपके ऐप्लिकेशन को पहले क्रिप्टोग्राफ़िक ऑब्जेक्ट का इस्तेमाल करें और अगर टाइम आउट की समयसीमा खत्म हो जाती है, तो createConfirmDeviceCredentialIntent() अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है का इस्तेमाल करें.

ऐप्लिकेशन जोड़ना

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

ऐप्लिकेशन के लिए ऑटो बैकअप

सिस्टम अब ऐप्लिकेशन के लिए, पूरे डेटा का अपने-आप बैकअप लेता है और उसे रीस्टोर करता है. आपके ऐप्लिकेशन को इस व्यवहार को चालू करने के लिए Android 6.0 (एपीआई लेवल 23); आपको कोई अतिरिक्त कोड जोड़ने की ज़रूरत नहीं है. अगर उपयोगकर्ता अपने Google खाते मिटा देते हैं, तो उनका बैकअप डेटा भी मिट जाता है. यह तरीका जानने के लिए सुविधा काम करती है और फ़ाइल सिस्टम पर किस चीज़ का बैक अप लेना है, इसे कॉन्फ़िगर कैसे करें, देखें ऐप्लिकेशन के लिए ऑटो बैकअप कॉन्फ़िगर करना.

सीधे तौर पर शेयर करने की सुविधा

मोबाइल का निचला हिस्सा, जिसमें सीधे तौर पर शेयर करने की सुविधा का इस्तेमाल किया गया है

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

डायरेक्ट शेयर टारगेट को चालू करने के लिए, आपको एक ऐसी क्लास तय करनी होगी जो ChooserTargetService क्लास. घोषित करें मेनिफ़ेस्ट में अपनी सेवा को ऐक्सेस करने की अनुमति दें. उस एलान में, BIND_CHOOSER_TARGET_SERVICE अनुमति और इंटेंट फ़िल्टर का इस्तेमाल करें. SERVICE_INTERFACE कार्रवाई.

नीचे दिए गए उदाहरण में बताया गया है कि ChooserTargetService को इंस्टॉल करें.

<service android:name=".ChooserTargetService"
        android:label="@string/service_name"
        android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE">
    <intent-filter>
        <action android:name="android.service.chooser.ChooserTargetService" />
    </intent-filter>
</service>

हर उस गतिविधि के लिए जिसकी जानकारी आपको दिखानी है ChooserTargetService, जोड़ें नाम वाला <meta-data> एलिमेंट "android.service.chooser.chooser_target_service" आपके ऐप्लिकेशन मेनिफ़ेस्ट में मौजूद है.

<activity android:name=".MyShareActivity”
        android:label="@string/share_activity_label">
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
    </intent-filter>
<meta-data
        android:name="android.service.chooser.chooser_target_service"
        android:value=".ChooserTargetService" />
</activity>

वॉइस इंटरैक्शन

इस रिलीज़ में, एक नया वॉइस इंटरैक्शन एपीआई उपलब्ध कराया गया है. यह एपीआई, बोलकर फ़ोन का इस्तेमाल, आपको अपने ऐप्लिकेशन में बातचीत वाली आवाज़ का अनुभव देने की सुविधा मिलती है. कॉल करें बोलकर फ़ोन का इस्तेमाल हुआ या नहीं, यह पता करने का isVoiceInteraction() तरीका आपकी गतिविधि. अगर ऐसा है, तो आपका ऐप्लिकेशन उपयोगकर्ता से बोलकर पुष्टि करने का अनुरोध करने के लिए, VoiceInteractor क्लास चुनें. विकल्पों की सूची से, और बहुत कुछ करें.

ज़्यादातर वॉइस इंटरैक्शन, उपयोगकर्ता के वॉइस ऐक्शन से शुरू होते हैं. वॉइस इंटरैक्शन गतिविधि से उपयोगकर्ता के इनपुट के बिना भी काम शुरू कर सकते हैं. उदाहरण के लिए, आवाज़ का इस्तेमाल करके लॉन्च किया गया कोई अन्य ऐप्लिकेशन इंटरैक्शन भी वॉइस इंटरैक्शन लॉन्च करने के लिए इंटेंट भेज सकता है. यह पता लगाने के लिए कि आपकी गतिविधि उपयोगकर्ता की वॉइस क्वेरी या किसी अन्य वॉइस इंटरैक्शन ऐप्लिकेशन से लॉन्च की गई हो, तो isVoiceInteractionRoot() तरीका. अगर किसी दूसरे ऐप्लिकेशन ने गतिविधि, यह तरीका false दिखाता है. इसके बाद, आपका ऐप्लिकेशन उपयोगकर्ता को यह पुष्टि करने के लिए कह सकता है कि ऐसा नहीं किया होगा.

बोलकर फ़ोन का इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, बोलकर फ़ोन का इस्तेमाल करने की डेवलपर साइट.

सहायक एपीआई

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

आपका ऐप्लिकेशन, Assistant के साथ मौजूदा संदर्भ शेयर नहीं करने का विकल्प चुन सकता है. इसके लिए, FLAG_SECURE फ़्लैग. इसके अलावा जानकारी का वह स्टैंडर्ड सेट जिसे प्लैटफ़ॉर्म, Assistant को भेजता है. आपका ऐप्लिकेशन इसे शेयर कर सकता है अतिरिक्त जानकारी के लिए, AssistContent की नई क्लास का इस्तेमाल करें.

Assistant को अपने ऐप्लिकेशन के बारे में ज़्यादा जानकारी देने के लिए, यह तरीका अपनाएं:

  1. Application.OnProvideAssistDataListener इंटरफ़ेस लागू करें.
  2. इस लिसनर को registerOnProvideAssistDataListener().
  3. गतिविधि के हिसाब से कॉन्टेक्स्ट की जानकारी देने के लिए, onProvideAssistData() अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है कॉलबैक और, वैकल्पिक रूप से, नया onProvideAssistContent() कॉलबैक.

डिवाइस के स्टोरेज के लिए इस्तेमाल होने वाले डिवाइस

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

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

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

$ adb shell sm set-force-adoptable true

सूचनाएं

इस रिलीज़ में सूचनाओं के लिए, एपीआई में ये बदलाव किए गए हैं:

  • नया INTERRUPTION_FILTER_ALARMS फ़िल्टर लेवल नए सिर्फ़ अलार्म, 'परेशान न करें' मोड के मुताबिक है.
  • CATEGORY_REMINDER कैटगरी की नई वैल्यू, जिसका इस्तेमाल इन कामों के लिए किया जाता है उपयोगकर्ता के शेड्यूल किए गए रिमाइंडर को अन्य इवेंट से अलग करें (CATEGORY_EVENT) और अलार्म (CATEGORY_ALARM).
  • Icon की नई क्लास, जिसे आप अपनी सूचनाओं में अटैच कर सकते हैं के ज़रिए setSmallIcon() और setLargeIcon() तरीकों का इस्तेमाल करना होगा. इसी तरह, addAction() पद्धति अब एक Icon ऑब्जेक्ट को ड्रॉ करने लायक संसाधन आईडी
  • getActiveNotifications() का नया तरीका. इससे आपको अपना खाता इस्तेमाल करने की अनुमति मिलती है ताकि यह देखा जा सके कि उनके लिए फ़िलहाल कौनसी सूचनाएं उपलब्ध हैं.

ब्लूटूथ स्टाइलस की सुविधा

इस रिलीज़ में, ब्लूटूथ स्टाइलस का इस्तेमाल करके लोगों को इनपुट देने के लिए बेहतर सहायता दी गई है. उपयोगकर्ता दूसरे डिवाइस से जोड़ सकते हैं साथ ही, इस सुविधा के साथ काम करने वाले ब्लूटूथ स्टाइलस को फ़ोन या टैबलेट से कनेक्ट करें. कनेक्ट होने पर, स्थिति टचस्क्रीन में दी गई जानकारी को, स्टाइलस के प्रेशर और बटन के साथ-साथ सिर्फ़ टचस्क्रीन की तुलना में, ज़्यादा एक्सप्रेशन उपलब्ध कराती है. आपका ऐप्लिकेशन यह सुन सकता है रजिस्टर करके स्टाइलस बटन दबाता है और दूसरी कार्रवाइयां करता है View.OnContextClickListener और आपकी गतिविधि में GestureDetector.OnContextClickListener ऑब्जेक्ट हैं.

स्टाइलस बटन का पता लगाने के लिए, MotionEvent वाले तरीकों और कॉन्सटेंट का इस्तेमाल करें इंटरैक्शन:

  • अगर उपयोगकर्ता आपके ऐप्लिकेशन की स्क्रीन पर मौजूद बटन से स्टाइलस को छूता है, तो getTooltype() तरीके का इस्तेमाल करके, प्रॉडक्ट लौटाया जा सकता है TOOL_TYPE_STYLUS.
  • Android 6.0 (एपीआई लेवल 23) को टारगेट करने वाले ऐप्लिकेशन के लिए, getButtonState() अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है तरीका, उपयोगकर्ता को BUTTON_STYLUS_PRIMARY नतीजे दिखाता है मुख्य स्टाइलस बटन को दबाता है. अगर स्टाइलस में दूसरा बटन है, तो पहले वाला तरीका वापस आ जाता है उपयोगकर्ता के इस बटन को दबाने पर BUTTON_STYLUS_SECONDARY. अगर उपयोगकर्ता इस बटन को दबाता है दोनों बटन एक साथ इस्तेमाल करने से, यह तरीका दोनों वैल्यू या OR's को एक साथ दिखाता है (BUTTON_STYLUS_PRIMARY|BUTTON_STYLUS_SECONDARY).
  • पुराने प्लैटफ़ॉर्म वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, getButtonState() तरीके का इस्तेमाल करके, प्रॉडक्ट लौटाया जा सकता है BUTTON_SECONDARY (स्टाइलस का मुख्य बटन दबाने के लिए), BUTTON_TERTIARY (स्टाइलस के दूसरे बटन को दबाने के लिए) या दोनों.

ब्लूटूथ के ज़रिए कम ऊर्जा का इस्तेमाल करने की सुविधा को बेहतर बनाया गया है

अगर आपका ऐप्लिकेशन ब्लूटूथ स्मार्ट स्कैन करता है, तो setCallbackType() अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है यह बताने का तरीका कि आप चाहते हैं कि सिस्टम पहली बार कॉलबैक को सूचित करे या किसी काफ़ी समय बाद, ScanFilter सेट से मेल खाने वाला एक विज्ञापन पैकेट. यह स्कैन करने की प्रोसेस, पिछले प्लैटफ़ॉर्म वर्शन में उपलब्ध कराई गई तुलना में ज़्यादा ऊर्जा की बचत करती है.

हॉटस्पॉट 2.0 रिलीज़ 1 सहायता

इस रिलीज़ में Nexus 6 और Nexus 9 डिवाइसों पर हॉटस्पॉट 2.0 रिलीज़ 1 की विशेषताओं का समर्थन शामिल है. यहां की यात्रा पर हूं अपने ऐप्लिकेशन में हॉटस्पॉट 2.0 क्रेडेंशियल का प्रावधान करें, तो WifiEnterpriseConfig क्लास, जैसे कि setPlmn() और setRealm(). इस WifiConfiguration ऑब्जेक्ट, आपके पास इसे सेट करने का विकल्प है FQDN और providerFriendlyName फ़ील्ड. नए isPasspointNetwork() तरीके से पता चलता है कि नेटवर्क, हॉटस्पॉट 2.0 ऐक्सेस पॉइंट को दिखाता है.

4K डिसप्ले मोड

इस प्लैटफ़ॉर्म पर, ऐप्लिकेशन अब डिसप्ले रिज़ॉल्यूशन को 4K रेंडरिंग में अपग्रेड करने का अनुरोध कर सकते हैं के साथ काम करता है. मौजूदा फ़िज़िकल रिज़ॉल्यूशन के बारे में क्वेरी करने के लिए, नई Display.Mode एपीआई. अगर यूज़र इंटरफ़ेस (यूआई) को कम लॉजिकल रिज़ॉल्यूशन पर बनाया गया हो और रिज़ॉल्यूशन बड़ा करके दिखाया जाता है. ध्यान रखें कि फ़िज़िकल रिज़ॉल्यूशन getPhysicalWidth() तरीके का रिटर्न, लॉजिकल से अलग हो सकता है getSize() ने रिज़ॉल्यूशन रिपोर्ट किया.

ऐप्लिकेशन के चलने के दौरान, उसकी फ़िज़िकल रिज़ॉल्यूशन बदलने के लिए सिस्टम से अनुरोध किया जा सकता है. ऐसा करने के लिए, आपके ऐप्लिकेशन की preferredDisplayModeId प्रॉपर्टी विंडो. अगर आपको 4K डिसप्ले रिज़ॉल्यूशन पर स्विच करना है, तो यह सुविधा काम की है. 4K डिसप्ले में मोड में, यूज़र इंटरफ़ेस (यूआई) को ओरिजनल रिज़ॉल्यूशन (जैसे कि 1080p) पर रेंडर करना जारी रहता है और इसे 4K में, लेकिन SurfaceView ऑब्जेक्ट में नेटिव रिज़ॉल्यूशन में कॉन्टेंट दिख सकता है.

थीम लायक ColorStateLists

थीम एट्रिब्यूट अब इसमें काम करते हैं Android 6.0 (एपीआई लेवल 23) पर काम करने वाले डिवाइसों के लिए ColorStateList. कॉन्टेंट बनाने Resources.getColorStateList() और Resources.getColor() तरीके बंद कर दिया गया है. अगर इन एपीआई को कॉल किया जा रहा है, तो Context.getColorStateList() या इसके बजाय, Context.getColor() तरीके इस्तेमाल करें. ये तरीके हैं यह ऐप्लिकेशन, ContextCompat के ज़रिए v4 appcompat लाइब्रेरी में भी उपलब्ध है.

ऑडियो से जुड़ी सुविधाएं

इस रिलीज़ में, Android पर ऑडियो प्रोसेसिंग को पहले से बेहतर बनाया गया है. इनमें ये सुविधाएं शामिल हैं:

  • MIDI के लिए सहायता प्रोटोकॉल में नए android.media.midi एपीआई शामिल हैं. एमआईडीआई भेजने और पाने के लिए, इन एपीआई का इस्तेमाल करें इवेंट.
  • नए AudioRecord.Builder और AudioTrack.Builder डिजिटल ऑडियो कैप्चर और प्लेबैक ऑब्जेक्ट बनाने के लिए क्लास. साथ ही, ऑडियो कॉन्फ़िगर करें सोर्स और सिंक प्रॉपर्टी का इस्तेमाल करें.
  • ऑडियो और इनपुट डिवाइसों को जोड़ने के लिए एपीआई हुक. यह खास तौर पर तब फ़ायदेमंद होता है, जब आपका ऐप्लिकेशन उपयोगकर्ताओं को Android से कनेक्ट किए गए गेम कंट्रोलर या रिमोट कंट्रोल से बोलकर खोजने की सुविधा देता है टीवी. सिस्टम onSearchRequested() अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है जब उपयोगकर्ता खोज शुरू करता है, तो कॉलबैक होता है. यह पता लगाने के लिए कि उपयोगकर्ता के इनपुट डिवाइस में पहले से मौजूद है या नहीं माइक्रोफ़ोन, उस कॉलबैक से InputDevice ऑब्जेक्ट पाएं, फिर नई hasMicrophone() तरीका.
  • getDevices() का नया तरीका, जिससे आपको यह सुविधा मिलती है सिस्टम से अभी कनेक्ट किए गए सभी ऑडियो डिवाइस की सूची फिर से पाएं. आप यह भी रजिस्टर कर सकते हैं कि AudioDeviceCallback ऑब्जेक्ट होने की वजह से, सिस्टम आपके ऐप्लिकेशन को सूचना भेज सकता है जब कोई ऑडियो डिवाइस कनेक्ट या डिसकनेक्ट होता है.

वीडियो को बेहतर बनाने के लिए सुविधाएं

इस रिलीज़ में वीडियो प्रोसेसिंग एपीआई में नई सुविधाएं जोड़ी गई हैं. इनमें ये सुविधाएं शामिल हैं:

  • नई MediaSync क्लास, जो ऐप्लिकेशन को सिंक्रोनस रूप से रेंडर करने में मदद करती है ऑडियो और वीडियो स्ट्रीम. ऑडियो बफ़र को ब्लॉक न करने वाले तरीके से सबमिट किया जाता है और कॉलबैक के ज़रिए लौटाया जाता है. इसमें डाइनैमिक प्लेबैक रेट की भी सुविधा है.
  • नया EVENT_SESSION_RECLAIMED इवेंट, जिससे पता चलता है कि ऐप्लिकेशन के ज़रिए खोले गए सेशन पर, संसाधन मैनेजर ने फिर से दावा किया है. अगर आपका ऐप्लिकेशन डीआरएम सेशन का इस्तेमाल करता है, आपको यह इवेंट मैनेज करना चाहिए और पक्का करना चाहिए कि फिर से दावा किए गए सेशन का इस्तेमाल न किया जाए.
  • ERROR_RECLAIMED का नया गड़बड़ी कोड, जो दिखाता है कि रिसॉर्स मैनेजर ने कोडेक में इस्तेमाल किए गए मीडिया रिसॉर्स पर फिर से दावा किया है. इस अपवाद के साथ, कोडेक को रिलीज़ करना ज़रूरी है, क्योंकि यह टर्मिनल स्टेट में चला गया है.
  • नया getMaxSupportedInstances() इंटरफ़ेस, ताकि इस बात का संकेत मिल सके कि वह ज़्यादा से ज़्यादा कितने काम कर सकता है एक साथ कई कोडेक के इंस्टेंस.
  • मीडिया चलाने की स्पीड को तेज़ याsetPlaybackParams() स्लो मोशन में वीडियो चलाना. साथ ही, इससे ऑडियो को अपने-आप स्ट्रेच किया जाता है या उसकी रफ़्तार बढ़ाई जाती है वीडियो के साथ जोड़ा जा सकता है.

कैमरे की सुविधाएं

इस रिलीज़ में कैमरे की फ़्लैशलाइट ऐक्सेस करने और कैमरे से इमेज को दोबारा प्रोसेस करना:

फ़्लैशलाइट एपीआई

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

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

एपीआई को फिर से प्रोसेस करना

Camera2 एपीआई को YUV और निजी के साथ काम करने के लिए बनाया गया है ओपेक फ़ॉर्मैट वाली इमेज को फिर से प्रोसेस करना. यह तय करने के लिए कि दोबारा प्रोसेस करने की ये क्षमताएं उपलब्ध होंगी या नहीं, getCameraCharacteristics() को कॉल करें और REPROCESS_MAX_CAPTURE_STALL बटन. अगर कोई डिवाइस में दोबारा प्रोसेसिंग की जा सकती है, तो कॉल करके दोबारा प्रोसेस किया जा सकने वाला कैमरा कैप्चर सेशन बनाया जा सकता है createReprocessableCaptureSession() और इनपुट बफ़र को दोबारा प्रोसेस करने के लिए अनुरोध करें.

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

  1. dequeueInputImage() तरीके को कॉल करें.
  2. इनपुट बफ़र में डेटा डालें.
  3. इसे कॉल करके बफ़र को कैमरे पर भेजें queueInputImage() तरीका.

यदि आप किसी ImageWriter ऑब्जेक्ट का उपयोग PRIVATE इमेज, आपका ऐप्लिकेशन इस इमेज को ऐक्सेस नहीं कर पा रहा है सकता है. इसके बजाय, PRIVATE इमेज को सीधे इसके लिए, ImageWriter queueInputImage() तरीका वह भी बिना किसी बफ़र कॉपी के.

ImageReader क्लास अब काम करती है PRIVATE फ़ॉर्मैट में इमेज स्ट्रीम. इससे आपके ऐप्लिकेशन को ये काम करने में मदद मिलती है ImageReader आउटपुट इमेज की सर्कुलर इमेज सूची को बनाए रखें, किसी एक को चुनें या और इमेज अपलोड करें और उन्हें ImageWriter में भेजें, ताकि कैमरे को दोबारा प्रोसेस किया जा सके.

Android for Work की सुविधाएं

इस रिलीज़ में Android for Work के लिए नीचे दिए गए नए एपीआई शामिल हैं:

  • कॉर्पोरेट के मालिकाना हक वाले, एक बार इस्तेमाल होने वाले डिवाइसों के लिए बेहतर कंट्रोल: डिवाइस का मालिक के मैनेजमेंट को बेहतर बनाने के लिए, अब नीचे दी गई सेटिंग को कंट्रोल कर सकता है कॉर्पोरेट मालिकाना हक, एक बार इस्तेमाल किए जाने वाले (सीओएसयू) डिवाइस:
    • इसकी मदद से कीगार्ड को बंद या फिर से चालू करते हैं: setKeyguardDisabled() तरीका.
    • स्टेटस बार को बंद या फिर से चालू करते हैं (इसमें क्विक सेटिंग, सूचनाएं, और नेविगेशन स्वाइप-अप जेस्चर, जो Google अभी सेवा को लॉन्च करता है) setStatusBarDisabled() अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है तरीका.
    • UserManager कॉन्स्टेंट की मदद से, सुरक्षित तरीके से बूट करने की सुविधा को बंद या फिर से चालू करें DISALLOW_SAFE_BOOT.
    • इससे प्लग इन होने पर स्क्रीन बंद नहीं होगी STAY_ON_WHILE_PLUGGED_IN कॉन्स्टेंट.
  • डिवाइस के मालिक की ओर से, ऐप्लिकेशन को साइलेंट मोड पर इंस्टॉल और अनइंस्टॉल करने की सुविधा: डिवाइस का मालिक अब ये काम कर सकता है: PackageInstaller का उपयोग करके ऐप्लिकेशन को चुपचाप इंस्टॉल और अनइंस्टॉल करें Google Play for Work से अलग, ऐसे एपीआई. अब आप डिवाइस के मालिक के ज़रिए डिवाइस का प्रावधान कर सकते हैं उपयोगकर्ता के इंटरैक्शन के बिना, ऐप्लिकेशन फ़ेच और इंस्टॉल करता है. इस सुविधा की मदद से, वन-टच की सुविधा को चालू किया जा सकता है Google खाता चालू किए बिना, कीऑस्क या ऐसे अन्य डिवाइसों को इस्तेमाल करने का तरीका.
  • साइलेंट एंटरप्राइज़ सर्टिफ़िकेट का ऐक्सेस: जब कोई ऐप्लिकेशन कॉल करता है choosePrivateKeyAlias(), उपयोगकर्ता को प्रमाणपत्र चुनने का संकेत दिए जाने से पहले, प्रोफ़ाइल या डिवाइस का मालिक अब कॉल कर सकता है onChoosePrivateKeyAlias() अनुरोध करने वाले ऐप्लिकेशन को चुपचाप उपनाम उपलब्ध कराने का तरीका. इस सुविधा की मदद से, अपने संगठन के लोगों को मैनेज किए जा रहे ऐप्लिकेशन, उपयोगकर्ता के इंटरैक्शन के बिना सर्टिफ़िकेट का ऐक्सेस देते हैं.
  • सिस्टम अपडेट अपने-आप स्वीकार होना. सिस्टम अपडेट की नीति, इस तरह सेट करें: setSystemUpdatePolicy(), डिवाइस का मालिक अब सिस्टम को अपने-आप स्वीकार कर सकता है अपडेट नहीं किया जा सकता. उदाहरण के लिए, कीऑस्क डिवाइस के मामले में या अपडेट को टाल दें और अपडेट होने से रोकें इसे उपयोगकर्ता 30 दिनों तक देख सकता है. इसके अलावा, एडमिन जिसे अपडेट करना चाहिए. उदाहरण के लिए, उस समय जब कीऑस्क डिवाइस का इस्तेमाल न किया जा रहा हो. टास्क कब शुरू होगा सिस्टम अपडेट उपलब्ध है. साथ ही, सिस्टम यह देखता है कि डिवाइस की नीति के कंट्रोलर ऐप्लिकेशन ने सिस्टम सेट किया है या नहीं नीति को अपडेट करके, उसके हिसाब से काम करता है.
  • डेलीगेटेड सर्टिफ़िकेट इंस्टॉल करना: प्रोफ़ाइल या डिवाइस का मालिक अब तीसरे पक्ष का ऐप्लिकेशन, इन DevicePolicyManager सर्टिफ़िकेट को कॉल कर सकता है मैनेजमेंट एपीआई:
  • Android for Work में काम की स्थिति की सूचना की सुविधा दिखाता मोबाइल
  • डेटा खर्च को ट्रैक करना. प्रोफ़ाइल या डिवाइस का मालिक, अब डेटा उपयोग के आंकड़े सेटिंग > नए वर्शन का इस्तेमाल करके डेटा खर्च NetworkStatsManager तरीके. प्रोफ़ाइल के मालिक अपने-आप चुन लिए जाते हैं डिवाइस के मालिकों को इस्तेमाल के बारे में डेटा का ऐक्सेस मिलता है. साथ ही, वे जिस प्रोफ़ाइल को मैनेज करते हैं उस पर डेटा के बारे में क्वेरी करने की अनुमति मुख्य उपयोगकर्ता का है.
  • रनटाइम की अनुमति का मैनेजमेंट:

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

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