सूचनाओं का ग्रुप बनाना

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

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

सूचनाओं का छोटा और बड़ा किया गया ग्रुप
पहला डायग्राम. सूचनाओं का ग्रुप, जो छोटा (सबसे ऊपर) और बड़ा (सबसे नीचे) किया गया है.

अगर आपके इस्तेमाल के उदाहरण के लिए, ये सभी शर्तें पूरी होती हैं, तो सूचनाओं के ग्रुप का इस्तेमाल करें:

  • चाइल्ड सूचनाएं, पूरी सूचनाएं होती हैं. इन्हें ग्रुप की खास जानकारी के बिना भी अलग-अलग दिखाया जा सकता है.

  • चाइल्ड सूचनाओं को अलग-अलग दिखाने से फ़ायदा होता है. उदाहरण के लिए:

    • इनमें हर सूचना के लिए अलग-अलग कार्रवाइयां होती हैं.

    • इनमें उपयोगकर्ता के लिए ज़्यादा जानकारी होती है.

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

कोई ग्रुप बनाना और उसमें सूचना जोड़ना

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

val GROUP_KEY_WORK_EMAIL = "com.android.example.WORK_EMAIL"

val newMessageNotification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
    .setSmallIcon(R.drawable.new_mail)
    .setContentTitle(emailObject.getSenderName())
    .setContentText(emailObject.getSubject())
    .setLargeIcon(emailObject.getSenderAvatar())
    .setGroup(GROUP_KEY_WORK_EMAIL)
    .build()

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

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

ग्रुप की खास जानकारी सेट करना

ग्रुप की गई सूचनाओं के लिए, एक अतिरिक्त सूचना होनी चाहिए. यह सूचना, ग्रुप की खास जानकारी के तौर पर काम करती है. ग्रुप की गई सूचनाएं दिखाने के लिए, आपको ग्रुप की खास जानकारी सेट करनी होगी. ग्रुप की खास जानकारी में, ग्रुप में शामिल अन्य सूचनाओं का कुछ टेक्स्ट शामिल होना चाहिए. इससे उपयोगकर्ता को यह समझने में मदद मिलती है कि ग्रुप में क्या है. ग्रुप की खास जानकारी कैसे दिखती है, यह Android के वर्शन पर निर्भर करता है:

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

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

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

ग्रुप की खास जानकारी जोड़ने के लिए, यह तरीका अपनाएं:

  1. ग्रुप की जानकारी के साथ नई सूचना बनाएं. अक्सर, इसके लिए इनबॉक्स स्टाइल वाली सूचना का इस्तेमाल करना सबसे अच्छा होता है.

  2. setGroup को कॉल करके, खास जानकारी वाली सूचना को ग्रुप में जोड़ें.

  3. ` setGroupSummary(true)` को कॉल करके, यह तय करें कि इसका इस्तेमाल ग्रुप की खास जानकारी के तौर पर किया जाना चाहिए.

यहां दिए गए कोड में, ग्रुप की खास जानकारी बनाने का एक उदाहरण दिखाया गया है:

// Use constant ID for notifications used as group summary.
val SUMMARY_ID = 0
val GROUP_KEY_WORK_EMAIL = "com.android.example.WORK_EMAIL"

val newMessageNotification1 = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
    .setSmallIcon(R.drawable.ic_notify_email_status)
    .setContentTitle(emailObject1.getSummary())
    .setContentText("You will not believe...")
    .setGroup(GROUP_KEY_WORK_EMAIL)
    .build()

val newMessageNotification2 = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
    .setSmallIcon(R.drawable.ic_notify_email_status)
    .setContentTitle(emailObject2.getSummary())
    .setContentText("Please join us to celebrate the...")
    .setGroup(GROUP_KEY_WORK_EMAIL)
    .build()

val summaryNotification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
    .setContentTitle(emailObject.getSummary())
    // Set content text to support devices running API level < 24.
    .setContentText("Two new messages")
    .setSmallIcon(R.drawable.ic_notify_summary_status)
    // Build summary info into InboxStyle template.
    .setStyle(
        NotificationCompat.InboxStyle()
            .addLine("Alex Faarborg Check this out")
            .addLine("Jeff Chang Launch Party")
            .setBigContentTitle("2 new messages")
            .setSummaryText("janedoe@example.com")
    )
    // Specify which group this notification belongs to.
    .setGroup(GROUP_KEY_WORK_EMAIL)
    // Set this notification as the summary for the group.
    .setGroupSummary(true)
    .build()

NotificationManagerCompat.from(this).apply {
    notify(emailNotificationId1, newMessageNotification1)
    notify(emailNotificationId2, newMessageNotification2)
    notify(SUMMARY_ID, summaryNotification)
}

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

सूचनाएं अपने-आप ग्रुप होने की सुविधा

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

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