लोग और बातचीत

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

Android 11 में कई सुविधाएं जोड़ी गई थीं, ताकि लोगों और बातचीत से जुड़ी पहल को बढ़ावा दिया जा सके.

बातचीत के लिए स्पेस


बातचीत के लिए स्पेस, सूचनाओं के लिए एक खास सेक्शन है. इसमें इंसानों के बीच रीयल-टाइम में होने वाली बातचीत की सूचनाएं दिखती हैं.
पहली इमेज: बातचीत वाला स्पेस.

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

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

बबल में बातचीत

अगर कोई सूचना, बातचीत की ज़रूरी शर्तों को पूरा करती है, तो प्लैटफ़ॉर्म उसे सूचना पैनल से बबल के तौर पर लॉन्च करता है.
दूसरी इमेज: सूचना ड्रॉअर से बबल के तौर पर लॉन्च की जा रही सूचना.

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

बातचीत के शॉर्टकट

बातचीत के शॉर्टकट, लॉन्चर में और शेयरशीट में लंबे समय तक रहने वाले, शेयर करने के शॉर्टकट के साथ दिखते हैं.

एपीआई से जुड़े दिशा-निर्देश

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

बातचीत के लिए शॉर्टकट

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

बातचीत के लिए शॉर्टकट पब्लिश करने के लिए, ShortcutManagerCompat के तरीके setDynamicShortcuts(), addDynamicShortcuts() या pushDynamicShortcut() को कॉल करें. इससे डेवलपर के लिए, शॉर्टकट की सीमा अपने-आप मैनेज हो जाती है. यह शॉर्टकट लंबे समय तक मौजूद रहना चाहिए. साथ ही, इसमें एक या उससे ज़्यादा लोगों का Person डेटा अटैच होना चाहिए, ताकि बातचीत में शामिल अन्य लोगों की पहचान की जा सके. हमारा यह भी सुझाव है कि आप LocusIdCompat सेट करें.

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

बातचीत की सूचनाएं

किसी सूचना को बातचीत की सूचना तब माना जाता है, जब ये बातें सही हों:

  • सूचना में MessagingStyle का इस्तेमाल किया गया है.

  • (सिर्फ़ तब, जब ऐप्लिकेशन Android 11 या इसके बाद के वर्शन को टारगेट करता हो) सूचना, डाइनैमिक या कैश मेमोरी में सेव किए गए, लंबे समय तक इस्तेमाल किए जा सकने वाले शेयरिंग शॉर्टकट से जुड़ी हो. सूचना में, setShortcutId() या setShortcutInfo() को कॉल करके, इस असोसिएशन को सेट किया जा सकता है. अगर ऐप्लिकेशन Android 10 या इससे पहले के वर्शन को टारगेट करता है, तो सूचना को शॉर्टकट से जोड़ने की ज़रूरत नहीं है. इस बारे में फ़ॉलबैक विकल्प सेक्शन में बताया गया है.

  • पोस्ट करने के समय, उपयोगकर्ता ने सूचना चैनल की सेटिंग में जाकर, बातचीत सेक्शन से बातचीत का दर्जा नहीं घटाया है.

LocusIdCompat का इस्तेमाल करें

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

Android 10 या इससे पहले के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, बातचीत की जगह से जुड़ी ज़रूरी शर्तें

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

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

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

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

फ़ॉलबैक: अगर MessagingStyle का इस्तेमाल किया गया है, लेकिन कोई शॉर्टकट नहीं दिया गया है

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

  • सूचना, बातचीत के स्टाइल में दिखती है
  • बबल बटन नहीं है
  • इनलाइन मोड में, बातचीत से जुड़े कोई फ़ंक्शन उपलब्ध नहीं होते

फ़ॉलबैक: अगर MessagingStyle का इस्तेमाल नहीं किया जाता है, लेकिन ऐप्लिकेशन को मैसेजिंग ऐप्लिकेशन के तौर पर पहचाना जाता है

अगर कोई सूचना MessagingStyle का इस्तेमाल नहीं करती है, लेकिन प्लैटफ़ॉर्म, ऐप्लिकेशन को मैसेजिंग ऐप्लिकेशन के तौर पर पहचानता है और सूचना का category पैरामीटर msg पर सेट है, तो सूचना को बातचीत वाली जगह पर इस तरह दिखाया जाता है:

  • सूचना, Android 11 से पहले के पुराने स्टाइल में दिखती है
  • बबल बटन नहीं है
  • इनलाइन मोड में, बातचीत से जुड़े कोई फ़ंक्शन उपलब्ध नहीं होते

दिशा-निर्देश, इस्तेमाल, और टेस्टिंग

इस सेक्शन में, बातचीत की सुविधाओं को इस्तेमाल करने और उन्हें टेस्ट करने के बारे में सामान्य जानकारी दी गई है.

मुझे बातचीत की सुविधा का इस्तेमाल कब करना चाहिए?

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

हमने उपयोगकर्ताओं को बातचीत सेक्शन से किसी बातचीत को हटाने की सुविधा दी है. ऐसा तब किया जा सकता है, जब उन्हें लगे कि वह बातचीत सही स्पेस में नहीं है.

सबसे सही तरीके

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

  • यह पक्का करने के लिए कि मिस्ड कॉल, बातचीत वाले शेड में सबसे ऊपर दिखें और बातचीत वाले विजेट में सही तरीके से दिखें, मिस्ड कॉल की सूचनाओं को conversations के तौर पर फ़ॉर्मैट करें. साथ ही, कैटगरी को CATEGORY_MISSED_CALL पर सेट करें.
  • उपयोगकर्ताओं के लिए अच्छी क्वालिटी के अवतार (104dp) उपलब्ध कराएं. ऐसा न करने पर, सिस्टम उस व्यक्ति के नाम के पहले अक्षर का इस्तेमाल करता है. इससे उपयोगकर्ता को कम दिलचस्प अनुभव मिलता है.
  • जब तक उपयोगकर्ता ने मैसेज नहीं देखा है, तब तक बातचीत की सूचना को cancel न करें. इसका एक उदाहरण यह है कि ऐप्लिकेशन को ऐसे व्यू में खोलने पर सूचना रद्द कर दी जाए जहां उपयोगकर्ता को मैसेज न दिखे या वह उसे न पढ़ पाए. अगर उपयोगकर्ता को मैसेज पढ़ने या उसका जवाब देने का मौका नहीं मिलता है, तो रद्द की गई सूचना और उससे जुड़ा बबल हटा दिया जाता है. इससे बातचीत का कॉन्टेक्स्ट मिट जाता है.
  • मैसेज से जुड़े एमआईएमई मेटाडेटा के लिए, data यूआरआई दें. इससे आपको सूचनाओं में बेहतर अनुभव देने का विकल्प मिलता है.
  • बातचीत वाले विजेट को ज़्यादा दिलचस्प बनाने के लिए, Android 12 status एपीआई का इस्तेमाल करें.
  • बातचीत के शॉर्टकट के लिए, ये सबसे सही तरीके अपनाएं.
    • ऐप्लिकेशन में होने वाली इनकमिंग और आउटगोइंग बातचीत के लिए शॉर्टकट पब्लिश करें, जो पुश नोटिफ़िकेशन नहीं भेजते. एक ही बातचीत के लिए, आने वाले और जाने वाले मैसेज का शॉर्टकट आईडी एक ही होना चाहिए. अपने शॉर्टकट पब्लिश करने और उनके इस्तेमाल की रिपोर्ट करने के लिए, pushDynamicShortcut() का इस्तेमाल करें.
    • शॉर्टकट अवतार को अनजाने में क्लिप होने से बचाने के लिए, शॉर्टकट के आइकॉन के लिए AdaptiveIconDrawable उपलब्ध कराएं. ज़्यादा जानकारी के लिए, शॉर्टकट की इमेज उपलब्ध कराना देखें.
    • सिस्टम आपके शॉर्टकट का प्रमोशन कर सके, इसके लिए सबसे अच्छी रैंकिंग पाने के दिशा-निर्देशों का पालन करें. आपके शॉर्टकट को सिस्टम के अलग-अलग प्लैटफ़ॉर्म पर रैंक किया जाता है. इनमें Android शेयरशीट भी शामिल है. हालांकि, ऐसा तब होता है, जब वह शेयर करने वाला शॉर्टकट हो.
    • पक्का करें कि बातचीत के शॉर्टकट intents सीधे तौर पर लागू होने वाली बातचीत में लॉन्च हों.
    • अपने शॉर्टकट को conversation से जुड़े शॉर्टकट के तौर पर सेट करने के लिए, कंपैटिबिलिटी लाइब्रेरी का इस्तेमाल करें.

बातचीत की सूचनाओं और शॉर्टकट की जांच करना

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

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

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

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

बातचीत वाले विजेट

बातचीत वाले विजेट में दिखने वाली बातचीत
पहली इमेज: बातचीत वाले विजेट में दिखाई गई बातचीत.

Android 12 में, बातचीत वाले विजेट की सुविधा, लोगों और बातचीत की सुविधा पर आधारित है. इसे Android 11 में लॉन्च किया गया था. इसकी मदद से, ऐप्लिकेशन बातचीत वाले विजेट में बातचीत की स्थिति दिखा सकते हैं.

बातचीत वाले विजेट, उपयोगकर्ता के इंटरैक्शन को बढ़ावा देते हैं. इनकी मदद से, उपयोगकर्ता होम स्क्रीन पर आसानी से चैट खोल सकते हैं. ये विजेट, बेहतर शॉर्टकट होते हैं. इनकी मदद से, उपयोगकर्ता अपनी बातचीत पर आसानी से वापस जा सकते हैं. साथ ही, उन्हें अपनी बातचीत की स्थिति के स्निपेट या अन्य काम की जानकारी दिखती है.

पुष्टि करना कि आपका ऐप्लिकेशन, बातचीत वाले विजेट के साथ काम करता है

यह पुष्टि करने के लिए कि आपका ऐप्लिकेशन, बातचीत वाले विजेट के साथ काम करता है, आपके पास कम से कम दो Android डिवाइस (दोनों पर Android 12 चल रहा हो) और दो उपयोगकर्ता खाते (हर डिवाइस पर एक) होने चाहिए, ताकि मैसेज भेजे और पाए जा सकें. इस प्रक्रिया के लिए, हम खातों को “उपयोगकर्ता A” और “उपयोगकर्ता B” कहेंगे.

बातचीत वाला नया विजेट जोड़ने के लिए, विजेट पिकर का यूज़र इंटरफ़ेस
दूसरी इमेज: बातचीत वाला नया विजेट जोड़ने के लिए, विजेट पिकर का यूज़र इंटरफ़ेस (यूआई).

यहां बताया गया तरीका अपनाएं:

  1. उपयोगकर्ता A के डिवाइस पर, लॉन्चर को दबाकर रखें. विजेट पिकर में, किसी बातचीत के लिए नए विजेट पर टैप करें, जैसा कि दूसरी इमेज में दिखाया गया है.
  2. विजेट को खींचें और होम स्क्रीन पर छोड़ें. उपयोगकर्ता A के ऐप्लिकेशन से, ऐक्टिव या हाल ही की बातचीत की सूची को चुना जा सकता है.
  3. अब उपयोगकर्ता B के डिवाइस से, उपयोगकर्ता A को टेस्ट मैसेज भेजें.
  4. उपयोगकर्ता A के डिवाइस पर वापस जाएं. इसके बाद, पुष्टि करें कि विजेट अपडेट हो गया है और उसमें उपयोगकर्ता B के मैसेज की सूचना दिख रही है.
  5. ज़रूरी नहीं: उपयोगकर्ता A और उपयोगकर्ता B, दोनों को बातचीत के लिए अलग-अलग स्टेटस वैल्यू सेट करने के लिए कहें. इससे यह पक्का किया जा सकेगा कि उनके विजेट, उन्हें सही तरीके से दिखाएं. स्टेटस की वैल्यू की सूची देखने के लिए, ConversationStatus देखें.