티스토리 뷰
알림 배지 아이콘 숫자 컨트롤 하기
운영업무를 하고 있는 상황에서 특이한 요건이 들어와 기록 한다.
현재 운영중인 앱은 서버에서 내려오는 푸시와 로컬에서 생성하는 푸시 두가지가 존재 한다.
여기서 요건은
서버에서 받는 푸시는 알림 아이콘이 표시 되야 하고
로컬에서 받는 푸시는 알림 아이콘을 에 숫자에 반영 되지 않게 해달라는 요건 ..
https://developer.android.com/training/notify-user/badges?hl=ko
배지를 표시하고 안하고의 차이는 단순하게 Notification 의 채널 생성과 동시에 플레그를 변경 해주면 노출 해 줄 수 있다.
( 8.0 이전에서는 기본 노출인가 ? 지원되는 플레그가 없는듯 ? )
val builder: NotificationCompat.Builder
val manager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
//버전 오레오 이상일 경우
builder = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
manager.createNotificationChannel(
NotificationChannel(
CHANNEL_ID,
CHANEL_NAME,
NotificationManager.IMPORTANCE_DEFAULT
).apply { setShowBadge(true) }
)
NotificationCompat.Builder(this, CHANNEL_ID)
} else {
NotificationCompat.Builder(this)
}
.apply { setShowBadge(true) }
근데 여기서 추가로
푸시 데이터로 카운트를 넘겨 줄 테니 현재 디바이스에 노출되고 있는 푸시 갯수와 상관 없이 푸시 데이터안에 있는 카운트가 노출 되도록 해달라고 ..
Android Develop 에서 제공하는 알림 카운트 컨트롤의 경우
var notification = NotificationCompat.Builder(this@MainActivity, CHANNEL_ID)
.setContentTitle("New Messages")
.setContentText("You've received 3 new messages.")
.setSmallIcon(R.drawable.ic_notify_status)
.setNumber(messageCount)
.build()
.setNumber(messageCount)
위 처럼 적용하면 카운트를 적용할 수 있다고 .. 한다
그러나 동작이 잘 되지 않는다.
어떤 디바이스에서는 그냥 스테이터스바에 노출된 푸시 갯수만큼 노출되고
어떤 디바이스에서는 처음에는 셋팅 되던가 싶더니 다음 푸시 부터는 +1 씩 증가만 한다 ..
그럼 다시 푸시 동작 개념을 좀 봐야 겠다 .
FCM 푸시는 SDK 내에서 이벤트를 받아 FirebaseMessagingService를 통해 onMessageReceived 메소드로 부터 이벤트를 캐치해서 처리 할 수 있다.
여기서 로그를 찍어보니 Foreground 상태에서는 로그가 잘 찍히는데
Background 상태일 때, ( 앱이 죽어있을 때 ? )
는 로그가 찍히지 않더라,
앱이 실행되어 있지 않은 경우에는 데이터에 Notification 키가 있는 경우 SDK 내에서 처리하고 onMessageReceived 로는 이벤트가 오지 않는 다고 한다.
그럼 해결방법은
Notification 키를 제거 하면 onMessageReceived 를 무조건 타기 때문에 여기서 컨트롤 할수 있다.
현재 운영중인 앱은
사일런트 푸시 ( Silent Push )도 제공되기 때문에
Notification 키가 없이 보내는 데이터 포멧은 사일런트 푸시 형식인데 안에 데이터를 바라보고 사일런트 푸시로 사용할 것인지
상태바에 Notification을 셋팅해서 보여줄 것인지를 구분해서 처리해야 겠다.
2023.05.03 - [Android/Notification] - [ Notification #3 ] 푸시 알림 아이콘 숫자 업데이트 하기
'Android > Notification' 카테고리의 다른 글
[ Notification #4 ] ShortcutBadger 라이브러리에 대하여.. ( 개인적인 의견 ) (2) | 2023.05.04 |
---|---|
[ Notification #3 ] 푸시 알림 아이콘 숫자 업데이트 하기 (0) | 2023.05.03 |
- Total
- Today
- Yesterday
- widget 이미지 로딩
- RandomColor
- 폰과 워치 페어링
- aos img url bitmap
- 풀배열 키보드
- Android Wear Os
- 폴더블 상태 유지
- 랜덤컬러
- android widget 만들기
- 프래그먼트 데이터 저장
- Fragment data
- widget glide
- widget onreceive
- 쏘렌토 하이브리드 시그니처
- widget onupdate
- wear os
- Dot indicator
- 가중치랜덤
- widget 만들기
- 안드로이드 폴드 대응
- 역시 키크론이네
- 갤럭시 워치
- 웨어러블
- 쏘렌토 하이브리드
- 안드로이드 플립 대응
- 폴더블 이벤트 받기
- Foldable Event
- 맥 전용
- Android
- flutter web
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |