android 8이상에서 fcm이 정상적으로 동작하는지 확인해보세요

안드로이드 앱의 targetSdkVersion이 25이거나 이보다 작을때는 안드로이드 7.1 처럼 작동하지만

 

26이상인데 채널을 지정하지 않는경우 노티가 나타나지 않습니다

 

요즘 최신기종이 android 9를 탑재하고 있으니

 

기존에 만든 앱이 최신버전의 안드로이드에서 푸시 알림을 제대로 받고 있는지

 

테스트를 해보시는 것이 좋을것 같습니다.

 

안드로이드 8.0(API level 26)부터는 모든 notification은 반드시 channel에 소속되어있어야 합니다. 

 

개발자입장에서는 채널이라고 부르지만 사용자 입장에서는 카테고리라고 불리는 기능이 추가되었는데요

 

사용자는 각각의 채널에 대해서 노티에 대한 세부적인 설정이 가능합니다. 

 

 

그러니깐 한개의 앱이 여러종류의 채널을 가지고 있을때

 

사용자는 그 앱의 각 채널별로 노티피케이션 수신 설정을 커스텀하게 할수 있습니다

 

공지사항 채널은 사운드와 함께 표시가 되도록 하고,

 

광고 채널은 표시되지 않도록 하거나

 

이렇게 한가지 앱에서 각 채널별로 다양하게 수신설정을 할 수 있습니다.

 

물론 이렇게 하려면 개발자가 다양한 채널을 제공하고 각 채널에 맞게 푸시를 보내줄때 가능한일이죠.

 

아직은 많은 앱들이 여러개의 채널을 사용하지는 않는것 같습니다.

 

 

 

채널의 생성은 아래 처럼 가능합니다.

 

한가지 주의해야할 점은

 

채널을 한번 생성한 경우 생성한 채널에 대해서 개발자가 값을 변경할수 없습니다.

 

채널의 존재의 의미가 사용자가 푸시 알림을 채널별로 자신이 원하는대로 커스텀하게 설정할수 있는다는것이기 때문에

 

한번 설정한 채널에 대해서는 개발자가 각 채널이 어떻게 설정되었는지 

 

getNotificationChannel()을 통해 값을 확인할 수만 있을뿐 개발자가 그 설정을 건드릴수는 없습니다.

 

 

채널 생성하는 시점에 파라메터중에 importance 파라메터가 있는데요

 

importance 설정에 따라 초기 채널값의 액션이 정해집니다.

 

 

 

제가 해당 기능을 적용하면서 테스트해보니

1. 생성하지 않은 채널을 할당하는 경우 노티가 발생되지 않습니다

2. 마찬가지로 앱에 생성된 채널이 1개도 없는 경우에도 노티가 발생되지 않습니다

3. 같은 이름으로 반복해서 채널을 생성해도 한번만 생성되는것 같습니다.

4. 그리고 일단 채널을 생성한 경우라면 이후에 명시적으로 채널을 넣지 않아도 기본 채널로 보내지는것 같습니다.

 

 

사용자에게 해당 채널의 설정으로 쉽게 이동시켜줄수 있는데요

 

앱의 특정 notification channel 설정 창으로 이동하기 위해서는 다음과 같이 이동 할수 있습니다

 

 

 

참고

https://developer.android.com/training/notify-user/channels