ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 안드로이드 예제 - 알람 보여주기 위해 화면을 켜는 방법(PowerManager.WakeLock)
    Android/개념 및 예제 2019. 8. 16. 17:05




    안드로이드폰이 꺼진 상태에서 발생한 알람 메시지를 화면에 보여주기 위해 화면을 켜는 방법을 소개합니다. 



    다음 포스트에서 매일 정해진 시간에 알람이 울리도록하는 앱을 소개했었습니다.


    Android 알람 앱 예제(AlarmManager, NotificationManager, SharedPreferences)

    https://webnautes.tistory.com/1365 



    다음과 같은 기능이 구현되어 있습니다.


    • 매일 설정해놓은 시간에 알람 소리가 울리고 노티피케이션을 띄웁니다. 

    • 노티피케이션을 선택시 앱이 실행됩니다. 

    • 지나간 시간에 대한 알림을 설정하면 다음 날에 울리도록 합니다.

    • 앱을 끄거나 스마트폰이 재부팅되어도 알람 시간을 기억했다가 울립니다. 



    문제 없이 동작하는듯했지만 화면이 꺼진상태에서는 알림 소리만 들리는 것을 개선하고 싶었습니다.


    구글에서 찾아보니 다음과 같은 코드를 추가하면 화면이 켜진다고 합니다. 

    ( https://stackoverflow.com/a/30506198 )

    하지만 deprecated 되었기 때문에 언제 동작 안하게 될지 모릅니다. 


    다음처럼 알람시간이 되어 노티피케이션을 동작시키기 전에 화면이 켜지도록 하면 동작합니다.

    앞에서 언급한 포스트의 코드의 다음 부분에 노란색 코드들을 추가하면 됩니다. 


                PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
                PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK  |
                        PowerManager.ACQUIRE_CAUSES_WAKEUP |
                        PowerManager.ON_AFTER_RELEASE, "My:Tag");
                wakeLock.acquire(5000);

                // 노티피케이션 동작시킴
                notificationManager.notify(1234, builder.build());





    포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
    댓글로 알려주시면 빠른 시일내에 답변을 드리겠습니다.

    여러분의 응원으로 좋은 컨텐츠가 만들어집니다. 지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 : )

    유튜브 구독하기


    댓글 0

Designed by Tistory.