Android

[안드로이드/메시징] 다양한 Notification

gangmini 2023. 4. 14. 22:20
반응형
  • 안드로이드 4.0 이하 버전 ->  기본 알림 메시지 / 4.1 이상 -> 알림 메시지를 접었다 폈다 가능
  • 펼쳐진 메시징에 부가 정보 표시 가능 ex)이미지 등, 메세지
  • os 버전별로 접힌 상태로, 펼져진 상태로 등등 인터페이스 조금 달라짐

Big Picture

  • 메세지를 펼쳤을 때 이미지를 볼 수 있음
binding.button.setOnClickListener {
    val builder = getNotificationBuilder("style", "style Notification")

    builder.setContentTitle("Big Picture")
    builder.setContentText("Big Picture Notification")
    // 메세지 아이콘
    builder.setSmallIcon(android.R.drawable.ic_menu_camera)

    // 메세지를 터치하면 자동으로 제거됨
    builder.setAutoCancel(true)

    // 다양한 경로의 이미지를 bitmap 객체로 만들어 사용할 수 있음
    // Big Picture Notification 객체 생성
    val big = NotificationCompat.BigPictureStyle(builder)
    // 보여줄 이미지 설정
    val bitmap = BitmapFactory.decodeResource(resources, R.drawable.custom_img)
    big.bigPicture(bitmap) //  big picture 세팅
    big.setBigContentTitle("Big Picture Title") // 접은거 폈을때 '부가 정보의 타이틀'
    big.setSummaryText("Summary text")
    

    val notification = builder.build()
    val manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
    manager.notify(10, notification)

}

Big Text Style

  • 메세지를 펼쳤을 때 장문의 문자열을 표시
binding.button2.setOnClickListener {
    val builder = getNotificationBuilder("style", "style Notification")

    builder.setContentTitle("Big Picture")
    builder.setContentText("Big Picture Notification")
    // 메세지 아이콘
    builder.setSmallIcon(android.R.drawable.ic_menu_camera)

    // 메세지를 터치하면 자동으로 제거됨
    builder.setAutoCancel(true)

    // Big Text Notification 객체 생성
    val big = NotificationCompat.BigTextStyle(builder)
    big.setBigContentTitle("Big Content Title")
    big.setSummaryText("Summary text")
    big.bigText("이것은 장문의 문자열 입니다.\n 저는 내일 슬램덩크를 보러 갑니다. 이걸로 4번째 감상인데요. 대만아 사랑한다.")// 장문의 문자열 세팅

    val notification = builder.build()
    val manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
    manager.notify(10, notification)

}

 

InBox Style

  • 메시지를 펼쳤을 때 여러 문자열 객체들을 표시할 수 있음 => 문자열을 한 번에 다 쓰는게 아니라 addLine() 메서드를 통해 여러 문자열 객체를 이어 붙여서 표시 한다는 의미
binding.button2.setOnClickListener {
    val builder = getNotificationBuilder("style", "style Notification")

    // 메시징 전체 타이틀, 텍스트
    builder.setContentTitle("Inbox Text")
    builder.setContentText("Inbox Notification")
    // 메세지 아이콘
    builder.setSmallIcon(android.R.drawable.ic_menu_camera)

    // 메세지를 터치하면 자동으로 제거됨
    builder.setAutoCancel(true)

    // Big Text Notification 객체 생성
    val inbox = NotificationCompat.InboxStyle(builder)
    inbox.setBigContentTitle("title") // 메시징 접은거 열었을 때 타이틀
    inbox.setSummaryText("Summary text")
    inbox.addLine("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
    inbox.addLine("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb")
    inbox.addLine("cccccccccccccccccccccccccccccccccccccccccccccccccccccccc")

    val notification = builder.build()
    val manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
    manager.notify(10, notification)

}

반응형