वार्तालाप सूचनाएं और विजेट

एंड्रॉइड 11 प्राथमिकता और अलर्टिंग स्तर के आधार पर नोटिफिकेशन शेड पर वार्तालाप नोटिफिकेशन के व्यवहार और प्लेसमेंट को अनुकूलित करने के लिए समर्थन जोड़ता है, जिससे वार्तालापों को महत्वपूर्ण के रूप में चिह्नित किया जा सकता है और वार्तालाप स्पेस में वार्तालाप विशिष्ट बुलबुले लॉन्च किए जा सकते हैं।

इन Android 11 सुविधाओं के आधार पर, Android 12 दो नई वार्तालाप सुविधाएँ प्रदान करता है:

  • सेटिंग्स में हालिया वार्तालाप सुविधा उपयोगकर्ताओं को अधिसूचना की प्रतीक्षा किए बिना हाल की बातचीत के लिए अधिसूचना व्यवहार को अनुकूलित करने में सक्षम बनाती है।

  • वार्तालाप विजेट सुविधा उपयोगकर्ताओं को हाल की बातचीत का त्वरित दृश्य देते हुए होम स्क्रीन पर आसानी से चैट खोलने में सक्षम बनाती है।

यह दस्तावेज़ वार्तालाप अधिसूचनाओं और विजेट्स के कार्यान्वयन, अनुकूलन और सत्यापन पहलुओं का वर्णन करता है।

वार्तालाप सूचनाएं सिंहावलोकन

एंड्रॉइड 11 एक नया सिस्टम प्रिमिटिव, कन्वर्सेशन पेश करता है, जिसे मौजूदा शेयरिंग शॉर्टकट ऑब्जेक्ट (जिसे एंड्रॉइड 9 के साथ रोल आउट किया गया था) द्वारा दर्शाया गया है।

वार्तालाप आदिम का उपयोग निम्नानुसार किया जा सकता है:

  • शेयरशीट (पहले से ही एंड्रॉइड 10 में) के माध्यम से पूरे सिस्टम में ऐप्स के बीच वार्तालाप डेटा साझा करने के लिए।

  • बुलबुले चलाने के लिए (Android 11 में शॉर्टकट )। चित्र 1 देखें।

  • अधिसूचना शेड (एंड्रॉइड 11 में लागू) के शीर्ष पर नए वार्तालाप स्थान में भाग लेने के लिए। चित्र 2 देखें।

  • वार्तालाप विजेट बनाने के लिए (Android 12 में लागू)।

    conv_bubbles

    चित्र 1: अधिसूचना ड्रॉअर से बबल के रूप में अधिसूचना शुरू की जा रही है

    conv_notification

    चित्र 2: सूचना छाया के शीर्ष पर स्थित वार्तालाप स्थान

वार्तालाप का प्रतिनिधित्व करने वाले शॉर्टकट से लिंक करने के अलावा, वार्तालाप के अंतिम संदेश को वार्तालाप स्थान में शामिल करने के लिए अधिसूचना MessagingStyle का भी उपयोग करती है।

GMS भागीदारों को निम्नलिखित को लागू करने की आवश्यकता है:

  • अधिसूचना छाया के शीर्ष पर एक अलग अनुभाग के रूप में एक नया वार्तालाप स्थान।
  • एक अधिसूचना शैली जो वार्तालाप विशिष्ट बबल पैटर्न की अनुमति देती है और उसका समर्थन करती है।

वार्तालापों को लागू करने वाले भागीदारों को महत्वपूर्ण वार्तालापों को भी लागू करने की आवश्यकता होती है। हालांकि, बातचीत के कार्यान्वयन को समान प्रकृति की ओईएम अवधारणाओं के साथ जोड़ा जा सकता है। कुल मिलाकर, भागीदारों को अपने विशिष्ट सिस्टम UI के साथ वार्तालाप अनुभाग को संरेखित करने की स्वतंत्रता है। पार्टनर को एचएएल/ड्राइवर/कर्नेल कोड/एक्सटेंशन को संशोधित या लागू करने की आवश्यकता नहीं है।

AOSP में SystemUI और PeopleService अनुभागों में निम्नलिखित संदर्भ कार्यान्वयन देखें:

frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/

मान्यकरण

यह सुनिश्चित करने के लिए कि सुविधा का आपका संस्करण अपेक्षित रूप से काम करता है, निम्नलिखित को सत्यापित करें:

  1. वार्तालाप API का पूर्ण समर्थन करने वाले ऐप्स नए अनुभाग में अपनी सूचनाएं देखते हैं, और उन सूचनाओं को सामान्य NotificationChannel के बजाय वार्तालाप द्वारा अनुकूलित कर सकते हैं।

  2. बातचीत के लिए खास बबल काम कर रहे हैं.

कार्यान्वयन को मान्य करने के लिए, अधिसूचना पैकेज में निम्नलिखित परीक्षणों का उपयोग करें:

  • सीटीएस परीक्षण।

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • सीटीएस सत्यापनकर्ता परीक्षण।

    cts/apps/CtsVerifier/src/com/android/cts/verifier/notifications/
    
    

वार्तालाप विजेट अवलोकन

एंड्रॉइड 12 में, वार्तालाप विजेट फीचर एंड्रॉइड 11 में बनाए गए वार्तालाप प्रतिनिधित्व पर बनाता है (जैसा कि पिछले अनुभाग में बताया गया है) ऐप्स को उन वार्तालापों के लिए स्थिति प्रदान करने की अनुमति देता है जो वार्तालाप विजेट में प्रदर्शित होते हैं।

conv_widgets

चित्र 3: वार्तालाप विजेट में प्रदर्शित वार्तालाप

एंड्रॉइड 12 में वार्तालाप विजेट सुविधा उपयोगकर्ताओं को होम स्क्रीन पर आसानी से चैट खोलने की अनुमति देकर कनेक्शन को बढ़ावा देती है। विजेट उन्नत शॉर्टकट हैं जो उपयोगकर्ताओं को बातचीत की स्थिति के स्निपेट दिखाते हुए कुशलता से अपनी बातचीत पर वापस जाने की अनुमति देते हैं।

भागीदार को निम्नलिखित को लागू करना चाहिए:

  1. SystemUI द्वारा प्रदान किया गया एक विजेट।
  2. इन विजेट्स को विजेट पिकिंग स्क्रीन से जोड़ने का प्रवाह।
  3. विजेट आकार बदलने के लिए समर्थन निम्नानुसार है:
    • जब उपयोगकर्ता लेआउट का आकार बदलता है या लैंडस्केप में घूमता है, तो लेआउट को बेहतर आकार के लेआउट में बदलने के लिए onAppWidgetOptionsChanged() का उपयोग करें।
    • अपने विजेट आकार परिवर्तनों को सही ढंग से बाध्य करने के लिए maxResizeHeight , maxResizeWidth , minWidth , minHeight , minResizeWidth , minResizeHeight का उपयोग करें।

वार्तालाप विजेट लागू करते समय निम्नलिखित निर्भरताओं से अवगत रहें:

  • पार्टनर को HAL/ड्राइवर/कर्नेल कोड को संशोधित या लागू करने की आवश्यकता नहीं है।
  • स्टेटस एपीआई, जो ऐप्स को बातचीत और संबंधित विजेट में स्थिति या उपलब्धता की जानकारी जोड़ने की अनुमति देता है, का उपयोग कार्यान्वयन के लिए किया जाता है।
  • नए डिवाइस कार्यान्वयन और अपग्रेड कार्यान्वयन दोनों पर प्रक्रिया समान है।
  • वार्तालाप विजेट सुविधा की Android 12 में लॉन्च होने वाली एक नई सुविधा पर निर्भरता है, जो हाल ही में देखी गई बातचीत (उदाहरण के लिए सूचनाओं से) को कैश करती है। यह बाद की सुविधा उन वार्तालापों की सूची का विस्तार करने की अनुमति देती है जिन्हें उपयोगकर्ता संभावित रूप से अपनी होम स्क्रीन पर जोड़ सकता है।

SystemUI और Launcher3 फाइलों में निम्नलिखित संदर्भ कार्यान्वयन देखें:

frameworks/base/packages/SystemUI/src/com/android/systemui/people/
frameworks/base/core/java/android/app/people/
frameworks/base/services/people/java/com/android/server/people/

अनुकूलन

वार्तालाप विजेट सुविधा को चालू या बंद नहीं किया जा सकता है। हालांकि, एक भागीदार विजेट टेम्प्लेट के लेआउट को तब तक बदल सकता है, जब तक कि GMS आवश्यकताएं पूरी हो जाती हैं।

मान्यकरण

यह सुनिश्चित करने के लिए कि सुविधा का आपका संस्करण अपेक्षित रूप से काम करता है, निम्नलिखित को सत्यापित करें:

  1. लॉन्चर पर लंबे समय तक दबाए रखने पर, वार्तालाप के लिए एक नया वार्तालाप विजेट विजेट पिकर के माध्यम से जोड़ा जा सकता है। विजेट पिकर UI के लिए चित्र 4 देखें:

    widget_picker

    चित्र 4: नया वार्तालाप विजेट जोड़ने के लिए विजेट पिकर UI

  2. चयनित वार्तालाप से डिवाइस पर सूचनाएं भेजने पर, उन सूचनाओं को दर्शाने के लिए विजेट को अपडेट किया जाता है।

  3. ConversationStatus API का उपयोग करके उस वार्तालाप में स्थितियाँ लागू करने पर, विजेट उन स्थितियों को दर्शाता है।

  4. उपयोगकर्ता विजेट का आकार बदल सकते हैं और विजेट अपने वर्तमान लॉन्चर के आधार पर अपने आकार बदल सकते हैं। आपके विजेट लेआउट को विभिन्न उपकरणों पर और विजेट का आकार बदलने पर विभिन्न लॉन्चर आकारों के साथ अच्छी तरह से काम करना चाहिए।

कार्यान्वयन को मान्य करने के लिए, अधिसूचना पैकेज में निम्नलिखित परीक्षणों का उपयोग करें:

  • एपीआई सतहों के लिए सीटीएस परीक्षण (पीपलमैनेजरटेस्ट)।

    cts/tests/app/src/android/app/cts/NotificationManagerTest.java
    
  • GMS आवश्यकता के लिए मैन्युअल परीक्षण - वार्तालाप।