Foggy day
[Android] SYSTEM_ALERT_WINDOW 권한 획득 본문
android.permission.SYSTEM_ALERT_WINDOW 권한은 overlay View를 사용하기 위해 필요합니다.
1. manifest 에 permission 추가
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
2. 런타임 권한 요청
checkPermissionOverlay 함수로 권한을 요청하면 권한 허용 시스템 창으로 이동하게 됩니다.
그리고 다시 화면으로 돌아왔을 때 onActivityResult에서 권한을 허용 했는지 아닌지 확인할 수 있습니다.
const val overlayPermission = 100
....
private fun checkPermissionOverlay(): Boolean {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (Settings.canDrawOverlays(this)) return true
val intent = Intent(
Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:$packageName")
)
startActivityForResult(intent, overlayPermission)
}
return true
}
....
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (requestCode == overlayPermission) {
if (!Settings.canDrawOverlays(this)) {
// 아직 허용 안 함
}
}
}
}
'Android' 카테고리의 다른 글
[Android] Syntax highlighting has been temporarily turned of because of an internal error (0) | 2023.11.15 |
---|---|
[Android] PACKAGE_USAGE_STATS 권한 획득 (0) | 2023.09.26 |
[Android] Android read file (0) | 2023.08.30 |
[Android] Boot App(부트앱) 만들기 (0) | 2023.08.27 |
[Android] Android launcher basic (0) | 2023.08.27 |