基本的な通知には、通常、タイトル、テキスト、アクションが含まれます。 実行できます。より多くの情報を提供するには、大容量の 複数の通知テンプレートのいずれかを 説明します。
まず、通知を作成します。基本コンテンツについては、
通知を作成する。その後、
発信
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.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();
受信トレイスタイルの通知を作成する
申し込み
NotificationCompat.InboxStyle
たとえば、次のような短い要約行を追加する場合は、
メールから抽出するこれにより、複数のコンテンツ テキストを追加できます。
連続した 1 行のテキストではなく、それぞれ 1 行に切り捨てられる
提供元: NotificationCompat.BigTextStyle
新しい回線を追加するには、
addLine()
最大 6 回まで含めることができます。6 つ以上
最初の 6 行のみが表示されます。
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();
結果は次の図のようになります。
<ph type="x-smartling-placeholder">通知に会話を表示する
申し込み
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
を使用する場合、
setContentTitle()
および
setContentText()
は無視されます。
setConversationTitle()
スレッドの上に表示されるタイトルを追加します。たとえば、
ユーザーが作成したグループの名前か、特定の名前がない場合は、
表示することもできます。会話のタイトルを設定しない
1 対 1 のチャット。この欄の存在がヒントとして使用されます。
会話がグループであることを確認します。
このスタイルは、Android 7.0(API レベル 24)以降を搭載しているデバイスにのみ適用されます。
互換性ライブラリを使用する場合
(NotificationCompat
),
前述のように、MessagingStyle
が設定された通知は
自動的に展開されます。
チャットの会話についてこのような通知を作成する場合は、ダイレクト メッセージと 返信アクション。
メディア コントロールを備えた通知を作成する
申し込み
MediaStyleNotificationHelper.MediaStyle
メディアの再生コントロールとトラック情報を表示します。
関連付けられた
MediaSession
:
コンストラクタがあります。これにより、Android は
できます。
発信
addAction()
最大 5 つのアイコンボタンを表示できます。setLargeIcon()
に発信して
アルバムのアートワークを設定します。
他の通知スタイルとは異なり、MediaStyle
では、
表示される 3 つの操作ボタンを指定して、折りたたみサイズのコンテンツ ビューを表示
折りたたまれたビューで表示されます。そのためには、各リソースへのアクション ボタンのインデックスを
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();
参考情報
MediaStyle
と詳細については、次のリファレンスをご覧ください。
展開可能な通知を表示します。