그러냐

안드로이드 FCM 화면 깨우기 본문

android

안드로이드 FCM 화면 깨우기

관절분리 2020. 9. 26. 01:27
반응형

안드로이드 버젼이 올라가면서 백그라운드 제한이 많아졌다.. 이미 계약은 되있는 상태.. 제한 걸릴때마다 가슴이 철렁ㅜ

 

fcm 으로 깨워서 무언가를 띄우기 위해서는 여러 작업이 필요하다

 

1. 먼저 fcm 구현한다음 화면을 깨우기위해서 wakelock 으로 화면을 깨운다

화면깨우기로 검색해보면 주르륵 나온다 근데 이거 해도 일단 deep sleep 상태 들어가면 안 깨워진다

 

2. priority high 설정

노멀, 하이 두가지 상태로 푸시를 받을수있는데 노멀일 경우 기다렸다가 폰을 조작하기 시작할때 푸시를 받을 수있게된다.

근데 하이로 보내도 노멀 취급을 받을 수 있다. 아래 링크에서 알게 된 사실이다.

그래서 high로 취급받을 수 있도록 아래 링크에 나오는 조건들이 충족되어야한다.

그리고 안드로이드에서 noti 알람 띄울경우 priorryt high 로 받도록 설정해야하는건 물론이고 보내는 쪽에서도 high로 설정해서 보내는게 중요한 거 같다. 

medium.com/@yonghan_89267/android-push-%EC%A0%88%EC%A0%84%EB%AA%A8%EB%93%9C-%EC%83%81%ED%83%9C%EC%97%90%EC%84%9C-push-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EB%B0%A9%EB%B2%95-a0665fa850aa

developer.android.com/about/versions/pie/power

 

3. startForegroundService

2단계까지하면 아직 테스트는 마치지 못했으나 얼추 fcm 푸시에서 알람 받는건 되는거 같다 그리고 나는 푸시받은다음 액티비티를 잠금화면에 띄우고 싶다 그래서 fcm 받는 부분에서 서비스를 하나 띄워서 원하는 작업을 하고 penddingintent를 사용해 액티비티를 띄운다

그 액티비티에서 또 다른 액티비티를 띄우고 싶었으나 잘 안되서 걍 한 화면에서 레이아웃조정으로 해결했다

startForegroundService를 사용해서 새로운 서비스를 시작했다면

 

startForeground(1, notificationBuilder.build());

 

이런식으로 짝을 이루어 사용해주어야한다 실제 소스 사용 예제는 검색하면 나온다

 

이 글을 쓰는동안 폰이 deep sleep 상태에 빠졌을 테니 이제 다시 테스트해보러간다.. 왠지 이번엔 성공할듯..

 

안드로이드 너무 자주 바껴...아오

반응형