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

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

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

पहला डायग्राम. छोटा (ऊपर) और बड़ा किया गया (नीचे) नोटिफ़िकेशन समूह.

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

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

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

    • इन पर कार्रवाई की जा सकती है और हर सूचना के लिए खास कार्रवाइयां की जा सकती हैं.

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

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

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

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

Kotlin

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()

Java

String GROUP_KEY_WORK_EMAIL = "com.android.example.WORK_EMAIL";

Notification newMessageNotification = new NotificationCompat.Builder(MainActivity.this, 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) से पहले के वर्शन पर, जो नेस्ट किया गया (एपीआई लेवल 24) नहीं दिखा सकता सूचनाओं का समूह, सिस्टम सिर्फ़ आपके समूह की खास जानकारी दिखाता है सूचना मिलती है और अन्य सभी को छिपा देता है. उपयोगकर्ता, ग्रुप की खास जानकारी पर टैप कर सकता है सूचना पर क्लिक करें.

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

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

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

  1. ग्रुप के ब्यौरे के साथ नई सूचना बनाएं—अक्सर यह सबसे अच्छा होता है इनबॉक्स-शैली के साथ किया सूचना पर टैप करें.

  2. setGroup() पर कॉल करके ग्रुप में खास जानकारी जोड़ें.

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

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

Kotlin

// 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)
}

Java

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

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

Notification newMessageNotification2 =
    new NotificationCompat.Builder(MainActivity.this, 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();

Notification summaryNotification =
    new NotificationCompat.Builder(MainActivity.this, 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(new 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 notificationManager = NotificationManagerCompat.from(this);
notificationManager.notify(emailNotificationId1, newMessageNotification1);
notificationManager.notify(emailNotificationId2, newMessageNotification2);
notificationManager.notify(SUMMARY_ID, summaryNotification);

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

सूचनाओं का इस्तेमाल करने वाले सैंपल कोड के लिए, Android की सूचनाएं सैंपल को अपनाएं.

अपने-आप ग्रुप बनाने की सुविधा

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

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