Temel bir bildirim genellikle bir başlık, bir metin satırı ve gerçekleşebilecek başka bir değişikliktir. Daha fazla bilgi sağlamak için büyük boyutlu, birden fazla bildirim şablonundan birini uygulayarak genişletilebilir bildirimleri bu belgede açıklanmıştı.
Başlamak için şurada açıklandığı gibi tüm temel içerikle birlikte bir bildirim oluşturun:
Bildirim oluşturun. Ardından,
telefon etmek
setStyle()
her şablona karşılık gelen bir stil nesnesi ve tedarik bilgileri ile,
aşağıda gösterilmiştir.
Büyük resim ekleyin
Bildiriminize resim eklemek için şunun bir örneğini iletin:
NotificationCompat.BigPictureStyle
Hedef: 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();
Resmin yalnızca bildirim açıkken küçük resim olarak görünmesini sağlamak için
aşağıda gösterildiği gibi daraltılmış kod,
setLargeIcon()
ve resmi ileteceğim. Ardından şu numarayı arayın:
BigPictureStyle.bigLargeIcon()
ve bildirim gönderildiğinde büyük simgenin kaybolması için null
iletir
genişletildi:
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();
Büyük bir metin bloğu ekleme
Uygula
NotificationCompat.BigTextStyle
metni, bildirimin genişletilmiş içerik alanında görüntülemek için:
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();
Gelen kutusu tarzında bildirim oluşturma
Uygula
NotificationCompat.InboxStyle
Birden fazla kısa özet satırı eklemek isterseniz bir bildirime
snippet'leri ekleyin. Bu, birden fazla içerik metni parçası eklemenize olanak tanır
Kesintisiz tek bir metin satırı yerine her biri tek satıra kısaltılmış
sağlayan: NotificationCompat.BigTextStyle
.
Yeni bir hat eklemek için şu numarayı arayın:
addLine()
aşağıda gösterildiği gibi en fazla altı kat olabilir. Altıdan fazla eklerseniz
yalnızca ilk altı satır görünür.
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();
Sonuç aşağıdaki şekilde görünür:
'nı inceleyin.Bir görüşmeyi bildirimde gösterme
Uygula
NotificationCompat.MessagingStyle
kullanabilirsiniz. Bu yöntem,
Böylece her mesaj için ayrı ayrı tutarlı bir düzen sunduğundan
ile ayrı ayrı işlem yapmanız gerekir ve her ileti özel
birkaç satır uzunluğunda olmalıdır.
Yeni bir mesaj eklemek için şu numarayı arayın:
addMessage()
ileti metnini, alınan zamanı ve gönderenin adını iletmelidir. Ayrıca transkriptinizi
bu bilgileri
NotificationCompat.MessagingStyle.Message
nesnesini tanımlayın:
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
kullanılırken
setContentTitle()
ve
setContentText()
yok sayılır.
Şu numarayı arayabilirsiniz:
setConversationTitle()
sohbetin üzerinde görünen bir başlık ekleyin. Bu,
grubun kullanıcı tarafından oluşturulan adını veya belirli bir adı yoksa
daha fazla bilgi edindiniz. Şu etkinlik için görüşme başlığı belirleme:
bire bir sohbetler, çünkü sistem bir ipucu olarak bu alanın varlığını kullanır
grup olduğunu düşünelim.
Bu stil yalnızca Android 7.0 (API düzeyi 24) ve sonraki sürümleri çalıştıran cihazlarda geçerlidir.
Uyumluluk kitaplığını kullanırken
(NotificationCompat
),
Daha önce gösterildiği gibi, MessagingStyle
içeren bildirimler yedeklenir
desteklenen bir genişletilmiş bildirim stiline otomatik olarak
dönüşmesini sağlar.
Bir sohbet görüşmesi için buna benzer bir bildirim oluştururken doğrudan bir yanıt işlemi olarak adlandırılır.
Medya denetimleriyle bildirim oluşturma
Uygula
MediaStyleNotificationHelper.MediaStyle
medya oynatma kontrollerini ve parça bilgilerini görüntüleyin.
İlişkili olduklarınızı belirtin
MediaSession
kurucusu. Bu, Android'in hesabınızla ilgili doğru bilgileri göstermesini sağlar.
medya
Telefonla arama
addAction()
beş taneye kadar simge düğmesi görüntüleyebilir. setLargeIcon()
numaralı telefonu arayın:
ve albüm kapağını ayarlayın.
Diğer bildirim stillerinden farklı olarak MediaStyle
,
daraltılmış boyutlu içerik görünümü gibi görünen üç işlem düğmesi
bunu daraltabilirsiniz. Bunu yapmak için işlem düğmesi dizinlerini
setShowActionsInCompactView()
.
Aşağıdaki örnekte, medya denetimleriyle nasıl bildirim oluşturulacağı gösterilmektedir:
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();
Ek kaynaklar
MediaStyle
ve
genişletilebilir bildirimlerden yararlanabilirsiniz.