Archives
Recent Posts
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Today
Total
관리 메뉴

안드로이드 개발자의 창고

[38일차 Android] 다양한 Notification 본문

Computer/Android

[38일차 Android] 다양한 Notification

Wise-99 2023. 6. 25. 20:37

 

 

 

출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT

 

 

 

📖 다양한 Notification

Big Picture

  • 메시지를 펼쳤을 때 이미지를 표시할 수 있다.
button.setOnClickListener {

    val builder = getNotificationBuilder(NOTIFICATION_CHANNEL1_ID)
    builder.setContentTitle("Big Picture")
    builder.setContentText("Big Picture Notification")
    builder.setSmallIcon(android.R.drawable.ic_menu_search)

    // BigPicture 설정
    val big = NotificationCompat.BigPictureStyle(builder)
    
    // 보여줄 이미지를 설정한다.
    val bitmap = BitmapFactory.decodeResource(resources, R.drawable.img_android)
    big.bigPicture(bitmap)
    big.setBigContentTitle("Big Content Title")
    big.setSummaryText("Summary Text")

    val notification = builder.build()
    val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
    notificationManager.notify(10, notification)
}

결과


Big Text

  • 메시지를 펼쳤을 때 장문의 문자열을 표시할 수 있다.
button2.setOnClickListener {

    val builder = getNotificationBuilder(NOTIFICATION_CHANNEL1_ID)
    builder.setContentTitle("Big Text")
    builder.setContentText("Big Text Notification")
    builder.setSmallIcon(android.R.drawable.ic_menu_search)

    // BigText 설정
    val big = NotificationCompat.BigTextStyle(builder)
    big.setBigContentTitle("Big Content Title")
    big.setSummaryText("Summary Text")
    big.bigText("""동해물과 백두산이
        |마르고 달도록
        |하느님이 보우하사
        |우리나라 만세
    """.trimMargin())

    val notification = builder.build()
    val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
    notificationManager.notify(20, notification)
}

결과


InBox

  • 메시지를 펼쳤을 때 문자열 들을 표시할 수 있다.
  • 한 줄의 문자열을 다수 보여준다.
button3.setOnClickListener {

    val builder = getNotificationBuilder(NOTIFICATION_CHANNEL1_ID)
    builder.setContentTitle("InBox")
    builder.setContentText("InBox Notification")
    builder.setSmallIcon(android.R.drawable.ic_menu_search)

    // InBox 설정
    val inbox = NotificationCompat.InboxStyle(builder)
    inbox.setSummaryText("Summary Text")
    inbox.setBigContentTitle("InBox Style")

    inbox.addLine("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
    inbox.addLine("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb")
    inbox.addLine("ccccccccccccccccccccccccccccccccccccccc")
    inbox.addLine("dddddddddddddddddddddddddddddddddddddddd")
    inbox.addLine("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee")
    inbox.addLine("ffffffffffffffffffffffffffffffffffffffff")
    inbox.addLine("gggggggggggggggggggggggggggggggggggggggggg")

    val notification = builder.build()
    val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
    notificationManager.notify(30, notification)
}

결과


Message

  • 안드로이드 9.0에서 새롭게 추가된 Notification
  • 다자간의 메시지 내용을 표시하는 용도로 사용한다.
button4.setOnClickListener {

    val builder = getNotificationBuilder(NOTIFICATION_CHANNEL1_ID)
    builder.setContentTitle("Message")
    builder.setContentText("Message Notification")
    builder.setSmallIcon(android.R.drawable.ic_menu_search)

    // 사람1
    val personBuilder1 = Person.Builder()
    val icon1 = IconCompat.createWithResource(this@MainActivity, android.R.drawable.ic_dialog_email)
    personBuilder1.setIcon(icon1)
    personBuilder1.setName("홍길동")
    var person1 = personBuilder1.build()

    // 사람2
    val personBuilder2 = Person.Builder()
    val icon2 = IconCompat.createWithResource(this@MainActivity, android.R.drawable.ic_dialog_dialer)
    personBuilder2.setIcon(icon2)
    personBuilder2.setName("김길동")
    var person2 = personBuilder2.build()

    // Message Style 설정
    val msg = NotificationCompat.MessagingStyle(person1)

    // 대화 내용을 설정한다.
    msg.addMessage("첫번째 메시지", System.currentTimeMillis(), person1)
    msg.addMessage("두번째 메시지", System.currentTimeMillis(), person2)
    msg.addMessage("세번째 메시지", System.currentTimeMillis(), person1)
    msg.addMessage("네번째 메시지", System.currentTimeMillis(), person2)

    builder.setStyle(msg)

    val notification = builder.build()
    val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
    notificationManager.notify(40, notification)
}

결과

'Computer > Android' 카테고리의 다른 글

[39일차 Android] Broadcast Receiver  (0) 2023.06.27
[39일차 Android] Thread, runOnUiThraad  (0) 2023.06.26
[38일차 Android] Pending Intent  (0) 2023.06.25
[38일차 Android] Notification  (0) 2023.06.25
[37일차 Android] Dialog  (0) 2023.06.23