반응형
안드로이드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 막기 (0) | 2023.02.14 |
안드로이드 OutOfMemoryError: Java heap space 오류 해결 방법 (0) | 2023.02.04 |
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
댓글