android headup notification

참고

푸시 채널 이야기

  • P 버전 이상에서는 채널을 추가해야 노티피케이션을 사용 할 수 있습니다.

headup notification 매우 강조 되는 표시

  • 문자등이 올때 상태바에서 뚝 떨어지는 노티피케이션 입니다.

Head Up Notifiation

  • Head up Notification은 전면에 노티가 뜨는 것을 말합니다. 사용자가 Statusbar를 내려서 확인하지 않아도 바로 화면에 뜨기 때문에 쉽게 눈에 띕니다. 전화와 같은 중요한 작업을 알릴 때 이런 노티를 적용하면 좋을 것 같습니다. 중요하지 않은데 사용된다면 사용자가 이 앱이 거슬리다고 생각할 수 있습니다.
    아래 화면은 Head up notification입니다. 예제는 기본 노티에 적용하였지만 모든 스타일의 노티에 적용할 수 있습니다.
    1. 채널을 만들 때 중요도를 IMPORTANCE_HIGH로 설정해야 합니다.
    1. PendingIntent를 만듭니다. Builder에 fullScreenPendingIntent를 등록하기 때문에 변수 이름을 fullScreenPendingIntent라고 했습니다.
    1. Builder의 priority를 PRIORITY_HIGH로 설정해야 합니다.
    1. fullScreenPendingIntent를 등록합니다.
  • 그리고 가장 중요한 것은 앱의 AndroidManifest.xml에 다음 퍼미션을 꼭 추가해야 합니다. Install 퍼미션이기 때문에 설치만 하면 바로 권한을 받습니다.
    • Head up notification은 채널의 중요도를 IMPORTANCE_HIGH, 노티의 중요도를 PRIORITY_HIGH로 설정해야 합니다. 그리고 fullScreenIntent를 추가해야 합니다. 마지막으로 가장 중요한 것은 Q부터 USE_FULL_SCREEN_INTENT 권한이 없으면 Head up 노티를 띄울 수 없기 때문에 꼭 추가해줘야 합니다.

문제점

  • 포그라운드 푸시 에서는 위 코드를 적용해서 헤드업 노티피케이션을 만들수 있습니다.
  • background 에서는 onMessageReceived 에서 작업하는 내용이 동작하지 않아서 head-up notification 동작을 고민하고 찾아 보았습니다.
  • 결론은 푸시전송시 아래와 같은 형태로 하여 보내고 있습니다.
  • 아래와 같은 형태는 포그라운드 상태에서 onMessageReceived 메소드를 이용하여 원하는 작업이 가능합니다.
  • 백그라운드 상태에서는 priority : high 를 추가해도 head-up 은 동작 하지 않았습니다.
  • 동작 안할때는 역시 옛날 방식 notification 필드 자체를 제거해서 하면 onMessageReceived 에서 head up 이 동작 가능합니다.
  • 꼭 필요한 경우 예날 방식 처림 notification 없는 버전으로 작업 해야 할거 같습니다.

```json { “to”: “토큰”, “notification”: {

},
"data": {
  
}   }   ```

PyeongHo

즐겁게 또 즐겁게