본문 바로가기
IT 꿀팁

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

by GGhool tip 1min 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편]에서 계속..

반응형