Notice
Recent Posts
Recent Comments
Link
투케이2K
234. (AndroidStudio/android/java) 안드로이드 os 11 (R 버전) 이상 모든 파일 접근 액세스 권한 부여 - MANAGE_EXTERNAL_STORAGE 본문
Android
234. (AndroidStudio/android/java) 안드로이드 os 11 (R 버전) 이상 모든 파일 접근 액세스 권한 부여 - MANAGE_EXTERNAL_STORAGE
투케이2K 2021. 12. 13. 20:44[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : java
[소스 코드]
// TODO [checkFilePermission 앱 파일 접근 허용 설정 창 이동]
public static void checkFilePermission(Context mContext){
// [구글 디벨로퍼 참고 사이트]
// url : https://developer.android.com/training/data-storage/manage-all-files?hl=ko
// [필요 퍼미션]
// <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
// [안드로이드 os 11 버전 이상 체크 수행 실시]
if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) && !isFileGranted(mContext)){
Log.i("---","---");
Log.e("//===========//","================================================");
Log.i("","\n"+"[C_Permission >> checkFilePermission() :: 앱 파일 접근 권한 상태 확인]");
Log.i("","\n"+"[상태 :: "+"앱 파일 접근 권한 부여되지 않은 상태 >> 앱 파일 접근 권한 설정 창 이동 실시"+"]");
Log.e("//===========//","================================================");
Log.i("---","---");
// [안드로이드 R 버전 이상 파일 접근 권한 필요]
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
Uri uri = Uri.fromParts("package", mContext.getPackageName(), null);
intent.setData(uri);
mContext.startActivity(intent);
}
else if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) && isFileGranted(mContext)) {
Log.i("---","---");
Log.w("//===========//","================================================");
Log.i("","\n"+"[C_Permission >> checkFilePermission() :: 앱 파일 접근 권한 상태 확인]");
Log.i("","\n"+"[상태 :: "+"앱 파일 접근 권한 부여된 상태"+"]");
Log.w("//===========//","================================================");
Log.i("---","---");
}
else {
Log.i("---","---");
Log.d("//===========//","================================================");
Log.i("","\n"+"[C_Permission >> checkFilePermission() :: 앱 파일 접근 권한 상태 확인]");
Log.i("","\n"+"[상태 :: "+"Android 11 버전 미만 단말기"+"]");
Log.d("//===========//","================================================");
Log.i("---","---");
}
}
@TargetApi(Build.VERSION_CODES.R)
private static boolean isFileGranted(Context mContext) {
boolean granted = false; // 권한 부여 상태값 저장
try {
// [파일 접근 권한이 허용 된 경우]
if (Environment.isExternalStorageManager() == true){
granted = true;
}
else {
granted = false;
}
}
catch (Throwable why) {
//why.printStackTrace();
}
// [결과 반환 실시]
return granted;
}
반응형
'Android' 카테고리의 다른 글
Comments