विस्तार करने लायक सूचना बनाएं

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

शुरू करने के लिए, सूचना बनाएं में बताए गए सभी बुनियादी कॉन्टेंट के साथ एक सूचना बनाएं. इसके बाद, स्टाइल ऑब्जेक्ट के साथ setStyle() को कॉल करें और हर टेंप्लेट के हिसाब से जानकारी दें, जैसा कि यहां दिए गए उदाहरणों में दिखाया गया है.

बड़ी इमेज जोड़ना

अपनी सूचना में कोई इमेज जोड़ने के लिए, NotificationCompat.BigPictureStyle का इंस्टेंस setStyle() में पास करें.

var notification =
    NotificationCompat.Builder(context, CHANNEL_ID)
        .setSmallIcon(com.example.compose.snippets.R.drawable.ic_logo)
        .setContentTitle("Title")
        .setContentText("Content text")
        .setStyle(
            NotificationCompat.BigPictureStyle()
                .bigPicture(bitmapImage)
        )
        .build()

अगर आपको इमेज को सिर्फ़ थंबनेल के तौर पर दिखाना है, तो सूचना को छोटा करें. इसके लिए, setLargeIcon() को कॉल करें और इमेज को पास करें. ऐसा करने पर, इमेज नीचे दी गई इमेज की तरह दिखेगी. इसके बाद, BigPictureStyle.bigLargeIcon() को कॉल करें और null को पास करें, ताकि सूचना को बड़ा करने पर बड़ा आइकॉन हट जाए:

notification = NotificationCompat.Builder(context, CHANNEL_ID)
    .setSmallIcon(R.drawable.ic_logo)
    .setContentTitle("Title")
    .setContentText("Content text")
    .setLargeIcon(Icon.createWithResource(context, R.drawable.dog))
    .setStyle(
        NotificationCompat.BigPictureStyle()
            .bigPicture(bitmapImage)
            .bigLargeIcon(null as Bitmap?)
    )
    .build()

छोटी की गई सूचना और बड़ी की गई सूचना, जिसमें नीले रंग की इमेज है
पहली इमेज. NotificationCompat.BigPictureStyle का इस्तेमाल करके सूचना.

टेक्स्ट का बड़ा ब्लॉक जोड़ना

सूचना के बड़े किए गए कॉन्टेंट एरिया में टेक्स्ट दिखाने के लिए, NotificationCompat.BigTextStyle लागू करें:

notification = NotificationCompat.Builder(context, CHANNEL_ID)
    .setSmallIcon(R.drawable.ic_logo)
    .setContentTitle("Sender name")
    .setContentText("Email subject")
    .setLargeIcon(Icon.createWithResource(context, R.drawable.dog))
    .setStyle(
        NotificationCompat.BigTextStyle()
            .bigText(someVeryLongMessage)
    )
    .build()

BigTextStyle का इस्तेमाल करके, सूचना वाले कार्ड को छोटा और बड़ा किया गया
दूसरी इमेज. NotificationCompat.BigTextStyle का इस्तेमाल करके सूचना.

इनबॉक्स स्टाइल वाली सूचना बनाना

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

नई लाइन जोड़ने के लिए, addLine() को ज़्यादा से ज़्यादा छह बार कॉल करें, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है. अगर छह से ज़्यादा लाइनें जोड़ी जाती हैं, तो सिर्फ़ पहली छह लाइनें दिखती हैं.

notification = NotificationCompat.Builder(context, CHANNEL_ID)
    .setSmallIcon(R.drawable.mail)
    .setContentTitle("5 New mails from Frank")
    .setContentText("Check them out")
    .setLargeIcon(bitmapImage)
    .setStyle(
        NotificationCompat.InboxStyle()
            .addLine("Re: Planning")
            .addLine("Delivery on its way")
            .addLine("Follow-up")
    )
    .build()

नतीजा इस इमेज की तरह दिखता है:

इनबॉक्स-स्टाइल में सूचना, जिसे बड़ा किया गया है
तीसरी इमेज. बड़ा किया गया इनबॉक्स-स्टाइल नोटिफ़िकेशन.

सूचना में बातचीत दिखाना

NotificationCompat.MessagingStyle का इस्तेमाल करके, लोगों के बीच हुए मैसेज के क्रम को दिखाएं. यह मैसेजिंग ऐप्लिकेशन के लिए सबसे सही है, क्योंकि यह भेजने वाले के नाम और मैसेज के टेक्स्ट को अलग-अलग मैनेज करके, हर मैसेज के लिए एक जैसा लेआउट उपलब्ध कराता है. साथ ही, हर मैसेज कई लाइनों का हो सकता है.

नया मैसेज जोड़ने के लिए, addMessage() को कॉल करें. साथ ही, मैसेज का टेक्स्ट, मैसेज मिलने का समय, और भेजने वाले का नाम पास करें. इस जानकारी को NotificationCompat.MessagingStyle.Message ऑब्जेक्ट के तौर पर भी पास किया जा सकता है, जैसा कि इस उदाहरण में दिखाया गया है:

val message1 = NotificationCompat.MessagingStyle.Message(
    messages[0].text,
    messages[0].time,
    messages[0].sender
)
val message2 = NotificationCompat.MessagingStyle.Message(
    messages[1].text,
    messages[1].time,
    messages[1].sender
)
notification = NotificationCompat.Builder(context, CHANNEL_ID)
    .setSmallIcon(R.drawable.ic_logo)
    .setStyle(
        NotificationCompat.MessagingStyle(Person.Builder().setName("Me").build())
            .addMessage(message1)
            .addMessage(message2)
    )
    .build()

मैसेज स्टाइल में सूचना
चौथी इमेज. NotificationCompat.MessagingStyle का इस्तेमाल करके सूचना.

NotificationCompat.MessagingStyle का इस्तेमाल करने पर, setContentTitle() और setContentText() के लिए दी गई किसी भी वैल्यू को अनदेखा कर दिया जाता है.

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

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

चैट बातचीत के लिए इस तरह की सूचना बनाते समय, सीधे जवाब देने की कार्रवाई जोड़ें.

मीडिया कंट्रोल के साथ सूचना बनाना

मीडिया प्लेबैक कंट्रोल और ट्रैक की जानकारी दिखाने के लिए, MediaStyleNotificationHelper.MediaStyle लागू करें.

कंस्ट्रक्टर में, अपने असोसिएटेड MediaSession के बारे में बताएं. इससे Android को आपके मीडिया के बारे में सही जानकारी दिखाने में मदद मिलती है.

ज़्यादा से ज़्यादा पांच आइकॉन बटन दिखाने के लिए, addAction() को ज़्यादा से ज़्यादा पांच बार कॉल करें. एल्बम आर्ट सेट करने के लिए, setLargeIcon() को कॉल करें.

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

यहां दिए गए उदाहरण में, मीडिया कंट्रोल वाली सूचना बनाने का तरीका बताया गया है:

notification = NotificationCompat.Builder(context, CHANNEL_ID)
    // Show controls on lock screen even when user hides sensitive content.
    .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
    .setSmallIcon(com.example.compose.snippets.R.drawable.play)
    // Add media control buttons that invoke intents in your media service
    .addAction(R.drawable.previous, "Previous", null /* Add valid intent */) // #0
    .addAction(R.drawable.pause, "Pause", null /* Add valid intent */) // #1
    .addAction(R.drawable.next, "Next", null /* Add valid intent */) // #2
    // Apply the media style template.
    .setStyle(MediaStyleNotificationHelper.MediaStyle(mediaSession)
        .setShowActionsInCompactView(1 /* #1: pause button */))
    .setContentTitle("Wonderful music")
    .setContentText("My Awesome Band")
    .setLargeIcon(bitmapImage)
    .build()

मीडिया स्टाइल वाली सूचना
पांचवीं इमेज. MediaStyleNotificationHelper.MediaStyle का इस्तेमाल करके सूचना.

अन्य संसाधन

MediaStyle और बड़ी की जा सकने वाली सूचनाओं के बारे में ज़्यादा जानने के लिए, यहां दिए गए रेफ़रंस देखें.