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 |