확장형 알림 만들기

기본 알림에는 보통 제목, 텍스트 줄, 그리고 수행할 수 있습니다. 더 많은 정보를 제공하기 위해 확장 가능한 알림으로 여러 알림 템플릿 중 하나를 이 문서에 설명되어 있습니다.

시작하려면 알림 만들기 그런 다음 통화 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()

자바

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

자바

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();
<ph type="x-smartling-placeholder">
</ph> 접힌 알림과 파란색 이미지가 포함된 펼쳐진 알림을 보여주는 이미지 <ph type="x-smartling-placeholder">
</ph> 그림 1. 다음을 사용하는 알림 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()

자바

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();
<ph type="x-smartling-placeholder">
</ph> BigTextStyle을 사용하여 축소된 알림과 확장된 알림을 보여주는 이미지 <ph type="x-smartling-placeholder">
</ph> 그림 2. 다음을 사용하는 알림 NotificationCompat.BigTextStyle
를 통해 개인정보처리방침을 정의할 수 있습니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.

받은편지함 스타일 알림 만들기

신청 NotificationCompat.InboxStyle 드림 다음과 같이 여러 개의 짧은 요약 줄을 추가하려는 경우 추출하는 데 사용됩니다. 이렇게 하면 여러 콘텐츠 텍스트를 추가할 수 있습니다. 텍스트가 연속된 한 줄 대신 한 줄로 잘리는 문구 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()

자바

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">
</ph> 확장된 받은편지함 스타일 알림을 보여주는 이미지 <ph type="x-smartling-placeholder">
</ph> 그림 3. 확장된 받은편지함 스타일 있습니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.

알림에 대화 표시

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

자바

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();
<ph type="x-smartling-placeholder">
</ph> 메시지 스타일의 알림을 보여주는 이미지 <ph type="x-smartling-placeholder">
</ph> 그림 4. 다음을 사용하는 알림 NotificationCompat.MessagingStyle

NotificationCompat.MessagingStyle를 사용할 때 setContentTitle()setContentText() 무시됩니다.

다음을 호출할 수 있습니다. setConversationTitle() 드림 대화 위에 표시되는 제목을 추가합니다. 이는 사용자가 만든 그룹 이름 또는 특정 이름이 없는 경우 생성할 수 있습니다. 대화 제목 설정 안함 일대일 채팅. 시스템이 이 필드의 존재를 힌트로 사용하기 때문입니다. 대화는 그룹입니다.

이 스타일은 Android 7.0 (API 수준 24) 이상을 실행하는 기기에만 적용됩니다. 호환성 라이브러리를 사용하는 경우 (NotificationCompat), 앞에서 설명한 것처럼 MessagingStyle가 있는 알림은 돌아갑니다. 지원되는 확장 알림 스타일로 자동 변경합니다.

채팅 대화에 대해 이와 같은 알림을 작성할 때는 직접 응답 작업을 참조하세요.

미디어 컨트롤로 알림 만들기

신청 MediaStyleNotificationHelper.MediaStyle 드림 을 사용하여 미디어 재생 컨트롤과 트랙 정보를 표시합니다.

연결된 MediaSession 생성자에 전달해야 합니다. 이렇게 하면 Android에서 기기에 관한 올바른 정보를 있습니다.

전화걸기 addAction() 드림 최대 5개의 아이콘 버튼을 표시할 수 있습니다. 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()

자바

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();
<ph type="x-smartling-placeholder">
</ph> 미디어 스타일의 알림을 보여주는 이미지 <ph type="x-smartling-placeholder">
</ph> 그림 5. 다음을 사용하는 알림 MediaStyleNotificationHelper.MediaStyle
를 통해 개인정보처리방침을 정의할 수 있습니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.

추가 리소스

MediaStyle 및 펼칠 수 있는 알림을 제공합니다.