반응형
    
    
    
  안드로이드13 잠금화면 위에 Activity 열기
안드로이드 12로 넘어오면서 잠금화면 위로
Activity를 열기 위해선 특별한 권한 추가 및 동작하는 방법이 조금 바뀌었다.
해당 방법을 빠르고 간단하게 알아보겠다

안드로이드13에서 잠금화면 위에 Activity를 띄우는 방법
안드로이드13에서 잠금화면 위에 Activity를 띄우기 위해선 먼저 androidManifest를 수정해야한다.
다음과 같이 androidManifest.xml을 수정한다.
androidManifest.xml
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<!-- 대상이 되는 Activity에 다음과 같이 설정 -->
<activity
    android:name=".ui.activity.OnAlarmActivity"
    android:permission="android.permission.SYSTEM_ALERT_WINDOW"
    android:excludeFromRecents="true"
    android:exported="false"
    android:launchMode="singleTask"
    android:showOnLockScreen="true"/>
이후 잠금 화면 위에 띄울 Activity에 다음과 같이 정의한다
LockScreenOverlayActivity
onCreate()안에 다음과 같이 정의한다
// 안드12 이상에서 잠금화면 위로 액티비티 띄우기 & 화면 켜기
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
    setShowWhenLocked(true)
    setTurnScreenOn(true)
    (getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager).apply {
        requestDismissKeyguard(this@OnAlarmActivity, null)
    }
} else {
    this.window.addFlags(
        WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD or
                WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED or
                WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
    )
}
이렇게까지 하고 해당 Activitiy를 호출하면된다.
정리
- androidManifest.xml에 SYSTEM_ALERT_WINDOW를 추가하고 Activity에도 추가한다.
- Activity에서 setShowWhenLocked를 true로 설정한다.
- 안드로이드12 전후로 사용하는 방법이 다르다.
반응형
    
    
    
  '안드로이드(kotlin)' 카테고리의 다른 글
| 안드로이드 MVVM 아키텍처란 무엇인가 필요성과 그 배경 (0) | 2023.03.17 | 
|---|---|
| 안드로이드 Broadcast Receiver 테스트 하기 (0) | 2023.03.16 | 
| 안드로이드 WorkManager는 왜 필요하고 어디서 쓰면될까? (0) | 2023.02.18 | 
| 안드로이드 코틀린 editText 자동 focus 막기 (2) | 2023.02.14 | 
| 안드로이드 OutOfMemoryError: Java heap space 오류 해결 방법 (0) | 2023.02.04 | 
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
 
										
									 
										
									 
										
									 
										
									 
댓글