targetSdkVersion 33
manifest 파일
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> 
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/> 
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/> // 광고
private val requiredPermissionList = if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU){ 
    arrayOf(  // 안드로이드 13 이상 필요한 권한들 
        Manifest.permission.READ_EXTERNAL_STORAGE, 
        Manifest.permission.WRITE_EXTERNAL_STORAGE, 
        Manifest.permission.READ_MEDIA_IMAGES, 
        Manifest.permission.READ_MEDIA_VIDEO, 
        Manifest.permission.POST_NOTIFICATIONS 
    ) 
}else if ( Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
    arrayOf(  // 안드로이드 13 미만 마시멜로우 이상 필요한 권한들 
        Manifest.permission.READ_EXTERNAL_STORAGE, 
        Manifest.permission.WRITE_EXTERNAL_STORAGE 
    ) 
}
// 권한 체크 이후로직 
    @Override 
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grandResults) { 
        // READ_PHONE_STATE의 권한 체크 결과를 불러온다 
        if (requestCode == 1001) { 
            if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) { 
                boolean check_result = true; 
                // 모든 퍼미션을 허용했는지 체크 
                for (int result : grandResults) { 
                    if (result != PackageManager.PERMISSION_GRANTED) { 
                        check_result = false; 
                        break; 
                    } 
                } 
                // 권한 체크에 동의를 하지 않으면 안드로이드 종료 
                if (check_result == true) { 
                } else { 
                    finish(); 
                } 
            } 
        } 
    }
'Android' 카테고리의 다른 글
| Lint found fatal errors while assembling a release target. 임시 해결 (0) | 2023.10.11 | 
|---|---|
| [Android Studio]Notification 정보 가져오기 ( java ) (0) | 2023.09.07 | 
| [Android Studio] 안드로이드 웹뷰(WebView) 파일선택, 여러개 파일선택 (0) | 2023.09.01 | 
| [Android Studio] 프로젝트 필수 파일 (0) | 2023.01.15 | 





