본문 바로가기
IT 꿀팁

안드로이드 13이상에서 변경되는 퍼미션 3가지와 퍼미션계의 히어로 상권이 형님의 "테드 퍼미션" 커스텀 작업하기 [1편]

by BiBLeg 2024. 1. 14.
반응형

안드로이드 13 테드퍼미션 권한 설정
안드로이드 13 테드퍼미션 권한 설정

안드로이드 앱을 마켓에 등록하려면 이제 타깃 SDK를 33 이상으로 설정해야만 구글 플레이 스토어 마켓에 등록할 수 있게 정책이 변경되었다.

그것은 안드로이드 S/W 버전 13 이상을 의미하는 것인데 안드로이드 버전 13부터는 그런데 퍼미션 정책이 변경 되어서 코드 수정 작업을 해 줘야 한다.

gradle : app 레벨에서 아래와 같이 타깃 SDK를 33 이상으로 설정한 뒤 Sync Project (Ctrl + Shift + O) 를 해 준다

targetSdk = 33

※ 아래는 메니페스트 AndroidManifest.mxl 파일에서 작업해 줘야 하는 부분이다.

1. 알림 권한 선언

푸시 알림 권한도 이제 메니페스트에서 선언을 해 주고 사용자의 수락을 받아야 한다

<uses-permission android:name="android.permission.POST_NOTIFICATIONS"
android:minSdkVersion="33" />

2. READ_ MEDIA & WRITE_MEDIA 선언의 변경

READ_ MEDIA & WRITE_MEDIA 권한이 통합 되고 아래와 같이 3가지로 변경되었다.

READ_MEDIA_IMAGES // READ_MEDIA_VIDEO // READ_MEDIA_AUDIO

<uses-permission android:name= "android.permission.READ_MEDIA_IMAGES" android:minSdkVersion="33" />
<uses-permission android:name= "android.permission.READ_MEDIA_VIDEO" android:minSdkVersion="33" />
<uses-permission android:name= "android.permission.READ_MEDIA_AUDIO" android:minSdkVersion="33" />

※ 기존의 READ_ MEDIA & WRITE_MEDIA 권한도 아래와 같이 선언을 해 주도록 한다

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />

3. 애드몹 광고 ID 선언

아래와 같이 애드몹 광고 권한도 선언을 해 줘야 한다

<uses-permission android:name="com.google.android.gms.permission.@string/admob_app_ID" android:minSdkVersion="33"/>

안드로이드 13 테드퍼미션 권한 설정
안드로이드 13 테드퍼미션 권한 설정

※ 아래는 메니페스트 전체 권한 선언 예시 코드이다

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <!--    안드로이드 13부터 알림 권한 선언해야 함-->
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS"
        android:minSdkVersion="33" />

    <!--    안드로이드 13부터 READ_MEDIA는 아래 3개로 선언해야 함-->
    <uses-permission android:name= "android.permission.READ_MEDIA_IMAGES" android:minSdkVersion="33" />
    <uses-permission android:name= "android.permission.READ_MEDIA_VIDEO" android:minSdkVersion="33" />
    <uses-permission android:name= "android.permission.READ_MEDIA_AUDIO" android:minSdkVersion="33" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

    <!-- 카메라 퍼미션 -->
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />

    <!-- 안드로이드 13부터 광고 권한 선언해야 함 -->
    <uses-permission android:name="com.google.android.gms.permission.@string/admob_app_ID" android:minSdkVersion="33"/>

다음 [2편]에서 계속..

반응형

댓글