본문 바로가기
Android 개발/Android

Full Screen Intent Notificaiton 에 관한 정리 # 풀스크린 인텐트

by Developer88 2020. 10. 2.
반응형

오늘은 Full Screen Intent에 대해서 정리해 보도록 하겠습니다.

다만 Notification의 기본에 대해서는 다른 글에서 다루고 있으니, 이 글에서는 fullScreenIntent에 관한 부분만 다루도록 하겠습니다.

 

1. Full Screen Intent

전화가 오는 경우나 알람시계와 같이 특정시간에 즉시 그리고 분명하게 유저에게 알려야 하는 경우가있는데요.

스테이터스바에 노티를 보여주는대신에 해당 intent를 launch시켜주어야 할 때가 있습니다.

전체화면 노티라고 생각해 볼 수 있겠지요.

알람앱에게 있어서는 필수적인 부분이라고 할 수 있습니다.

알람이 울리는 즉시 사용자가 알아채고 알람을 Off시키는 노력을 해 주어야 하니까요.

 

Notification.Builder클래스의 함수 API로 설정할 수 있는 setFullScreenIntent가 있는데,

이 API를 이용하면 Full Screen Intent를 구현할 수 있습니다.

공식문서를 보면 아래와 같이 설명을 해주고 있습니다.

 

 

위의 설명에 나오는 것처럼, Android특성상 기기별로 System UI가 다른데요. 어떤 기기의 SystemUI에서는 유저가 디바이스를 사용하는 경우에 intent를 launch시켜주지 않고, heads-up notification만 보여주는 경우도 있다고 합니다.

 

아래와 같이 Notification.Builder클래스에서 set함수들을 이용해서 설정할 때 아래와 같이 사용해주고 있겠지요.

여기서 setFullScreenIntent를 사용해 주는데요.

첫번째 인자는 pendingIntent이구요, 두번째는 highPriority설정으로 다른 알람들이 notify되지 않도록 되어있어도, notify할 것인지를 설정해 줍니다. 물론 setFullScreenIntent함수를 쓴다는 것 자체가 true로 하겠다는 의미이겠지요.

 

다만, 위의 공식문서에 나와있는 것처럼, fullScreenIntent를 사용은 하되, 항상 화면전체로 나오지는 못하고, 어떤 System UI에서는 Heads-up Notification으로 등장할수 있다고 한 점은 기억해 두어야 합니다.

100%보장은 않된다는 의미인데요.

(앱 유저들의 리뷰가 조금 걱정이 됩니다만, 구글은 신경써주지 못하는 것 같습니다.)

 

 

 

위 공식문서의 API를 보면, AndroidQ(Api10)을 targeting하는 경우라면, manifest에 아래와 같은 부분을 추가해 주어야 하는군요.

2020년 11월 부터는 AndroidQ를 타게팅하지 않으면 앱을 플레이스토어에 올릴 수 없으므로 미리 해 주는 것이 좋겠지요.

 

<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />

 

혹시, 다른 개발자가 구현하였거나, 구현한지 오래되서 기억이 나지 않으시다면,

setFullScreenIntent를검색해서 코드에서 사용하고 있는지 확인을 해 보아야 합니다.

 

2. 정리

사실 fullScreenIntent는 함수 한줄과 manifest에 permission만 선언해 놓으면 되는데요.

다만, 실제로 앱을 만들때는 keyguard가 올라와 있을 때나, 알람매니저를 통해서 알람이 울릴 때,

그리고 앱을 사용중에 있을 때 어떻게 알람이 울리는지 테스트가 필요합니다.

글내용과 관련해서 좋은 방법이나 추가할 내용이 있다면 이 글에서 업데이트 하도록 하겠습니다.

 

728x90

댓글