안 드 로 이 드 7.0 시스템 이 SD 카드 를 쓸 수 있 는 권한 이 실 패 했 습 니 다.

그림 에서 보 듯 이 mainfest 파일 에서 SD 카드 의 읽 기와 쓰기 권한 을 설 명 했 지만 여전히 오 류 를 보고 합 니 다.

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

안 드 로 이 드 23.0 버 전 이상 은 위의 권한 을 설정 해 야 할 뿐만 아니 라 SD 카드 에 읽 기와 쓰기 동작 이 있 는 곳 에서 권한 을 부여 해 야 합 니 다.다음은 공공 클래스 입 니 다.

import android.Manifest;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.support.v4.app.ActivityCompat;

public class PermisionUtils {

 // Storage Permissions
 private static final int REQUEST_EXTERNAL_STORAGE = 1;
 private static String[] PERMISSIONS_STORAGE = {
  Manifest.permission.READ_EXTERNAL_STORAGE,
  Manifest.permission.WRITE_EXTERNAL_STORAGE};

 /**
 * Checks if the app has permission to write to device storage
 * If the app does not has permission then the user will be prompted to
 * grant permissions
 *
 * @param activity
 */
 public static void verifyStoragePermissions(Activity activity) {
 // Check if we have write permission
 int permission = ActivityCompat.checkSelfPermission(activity,
  Manifest.permission.WRITE_EXTERNAL_STORAGE);

 if (permission != PackageManager.PERMISSION_GRANTED) {
  // We don't have permission so prompt the user
  ActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE,
   REQUEST_EXTERNAL_STORAGE);
 }
 }
}
그리고 권한 이 필요 한 곳 에서 직접 호출 합 니 다.

verifyStoragePermissions(this);
this 는 현재 Activity 를 말 합 니 다.프로그램 실행 에 다음 과 같은 결과 가 나타 납 니 다.

ALLOW 를 누 르 면 프로그램 이 코드 에 있 는 것 을 읽 고 쓰기 권한 을 가 져 옵 니 다.
verifyStoragePermissions(this);문장 이 삭제 되 었 습 니 다.프로그램 을 마 운 트 해제 하지 않 으 면 권한 이 존재 합 니 다.
안 드 로 이 드 7.0 시스템 이 SD 카드 를 쓸 수 있 는 권한 에 실패 한 문 제 는 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.참고 가 되 고 많은 응원 부 탁 드 리 겠 습 니 다.

좋은 웹페이지 즐겨찾기