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

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

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

बड़ी इमेज जोड़ें

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

Kotlin

val notification = NotificationCompat.Builder(context, CHANNEL_ID)
        .setSmallIcon(R.drawable.new_post)
        .setContentTitle(imageTitle)
        .setContentText(imageDescription)
        .setStyle(NotificationCompat.BigPictureStyle()
                .bigPicture(myBitmap))
        .build()

Java

Notification notification = new NotificationCompat.Builder(context, CHANNEL_ID)
        .setSmallIcon(R.drawable.new_post)
        .setContentTitle(imageTitle)
        .setContentText(imageDescription)
        .setStyle(new NotificationCompat.BigPictureStyle()
               .bigPicture(myBitmap))
        .build();

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

Kotlin

val notification = NotificationCompat.Builder(context, CHANNEL_ID)
        .setSmallIcon(R.drawable.new_post)
        .setContentTitle(imageTitle)
        .setContentText(imageDescription)
        .setLargeIcon(myBitmap)
        .setStyle(NotificationCompat.BigPictureStyle()
                .bigPicture(myBitmap)
                .bigLargeIcon(null))
        .build()

Java

Notification notification = new NotificationCompat.Builder(context, CHANNEL_ID)
        .setSmallIcon(R.drawable.new_post)
        .setContentTitle(imageTitle)
        .setContentText(imageDescription)
        .setLargeIcon(myBitmap)
        .setStyle(new NotificationCompat.BigPictureStyle()
                .bigPicture(myBitmap)
                .bigLargeIcon(null))
        .build();
एक इमेज, जिसमें 'छोटा की गई सूचना' और 'बड़ा की गई सूचना' दिख रही है. इसमें नीले रंग की इमेज है
पहली इमेज. इसका इस्तेमाल करने वाली सूचना NotificationCompat.BigPictureStyle.

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

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

Kotlin

val notification = NotificationCompat.Builder(context, CHANNEL_ID)
        .setSmallIcon(R.drawable.new_mail)
        .setContentTitle(emailObject.getSenderName())
        .setContentText(emailObject.getSubject())
        .setLargeIcon(emailObject.getSenderAvatar())
        .setStyle(NotificationCompat.BigTextStyle()
                .bigText(emailObject.getSubjectAndSnippet()))
        .build()

Java

Notification notification = new NotificationCompat.Builder(context, CHANNEL_ID)
        .setSmallIcon(R.drawable.new_mail)
        .setContentTitle(emailObject.getSenderName())
        .setContentText(emailObject.getSubject())
        .setLargeIcon(emailObject.getSenderAvatar())
        .setStyle(new NotificationCompat.BigTextStyle()
                .bigText(emailObject.getSubjectAndSnippet()))
        .build();
BigTextStyle का इस्तेमाल करके छोटी की गई सूचना और बड़ी की गई सूचना को दिखाने वाली इमेज
दूसरी इमेज. इसका इस्तेमाल करने वाली सूचना NotificationCompat.BigTextStyle.

इनबॉक्स-स्टाइल की सूचना बनाएं

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

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

Kotlin

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

Java

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

नतीजा यहां दिया गया है:

इनबॉक्स की स्टाइल में सूचना दिखाने की इमेज
तीसरी इमेज. इनबॉक्स की बड़ी शैली सूचना पर टैप करें.

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

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

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

Kotlin

val message1 = NotificationCompat.MessagingStyle.Message(
        messages[0].getText(),
        messages[0].getTime(),
        messages[0].getSender())
val message2 = NotificationCompat.MessagingStyle.Message(
        messages[1].getText(),
        messages[1].getTime(),
        messages[1].getSender())
val notification = NotificationCompat.Builder(context, CHANNEL_ID)
        .setSmallIcon(R.drawable.new_message)
        .setStyle(
                NotificationCompat.MessagingStyle(resources.getString(R.string.reply_name))
                .addMessage(message1)
                .addMessage(message2))
        .build()

Java

NotificationCompat.MessagingStyle.Message message1 =
        new NotificationCompat.MessagingStyle.Message(messages[0].getText(),
                                                      messages[0].getTime(),
                                                      messages[0].getSender());
NotificationCompat.MessagingStyle.Message message2 =
        new NotificationCompat.MessagingStyle.Message(messages[1].getText(),
                                                      messages[1].getTime(),
                                                      messages[1].getSender());

Notification notification = new NotificationCompat.Builder(context, CHANNEL_ID)
        .setSmallIcon(R.drawable.new_message)
        .setStyle(new NotificationCompat.MessagingStyle(resources.getString(R.string.reply_name))
                .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().

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

Kotlin

val notification = NotificationCompat.Builder(context, CHANNEL_ID)
        // Show controls on lock screen even when user hides sensitive content.
        .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
        .setSmallIcon(R.drawable.ic_stat_player)
        // Add media control buttons that invoke intents in your media service
        .addAction(R.drawable.ic_prev, "Previous", prevPendingIntent) // #0
        .addAction(R.drawable.ic_pause, "Pause", pausePendingIntent) // #1
        .addAction(R.drawable.ic_next, "Next", nextPendingIntent) // #2
        // Apply the media style template.
        .setStyle(MediaStyleNotificationHelper.MediaStyle(mediaSession)
                .setShowActionsInCompactView(1 /* #1: pause button \*/))
        .setContentTitle("Wonderful music")
        .setContentText("My Awesome Band")
        .setLargeIcon(albumArtBitmap)
        .build()

Java

Notification notification = new NotificationCompat.Builder(context, CHANNEL_ID)
        // Show controls on lock screen even when user hides sensitive content.
        .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
        .setSmallIcon(R.drawable.ic_stat_player)
        // Add media control buttons that invoke intents in your media service
        .addAction(R.drawable.ic_prev, "Previous", prevPendingIntent) // #0
        .addAction(R.drawable.ic_pause, "Pause", pausePendingIntent)  // #1
        .addAction(R.drawable.ic_next, "Next", nextPendingIntent)     // #2
        // Apply the media style template.
        .setStyle(new MediaStyleNotificationHelper.MediaStyle(mediaSession)
                .setShowActionsInCompactView(1 /* #1: pause button */))
        .setContentTitle("Wonderful music")
        .setContentText("My Awesome Band")
        .setLargeIcon(albumArtBitmap)
        .build();
मीडिया स्टाइल के साथ सूचना दिखाने वाली इमेज
पांचवीं इमेज. इसका इस्तेमाल करने वाली सूचना MediaStyleNotificationHelper.MediaStyle.

अन्य संसाधन

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