在API 23之前,清单中的权限足以让您访问设备的外部存储以及其他类型的权限。根据API 23,用户必须在运行时授予某些权限,例如在外部存储器中写入的权限。
private boolean checkWriteExternalPermission() {
String permission_read = Manifest.permission.READ_EXTERNAL_STORAGE;
String permission_write = Manifest.permission.WRITE_EXTERNAL_STORAGE;
int res = this.checkCallingOrSelfPermission(permission_read);
int res2 = this.checkCallingOrSelfPermission(permission_write);
return (res == PackageManager.PERMISSION_GRANTED && res2 == PackageManager.PERMISSION_GRANTED);
}
现在,您只需将其应用于您的方法,例如:
if(checkWriteExternalPermission()){
//do your logic with file writing/reading
} else{
//ask for user permissions
ActivityCompat.requestPermissions(this, PERMISSIONS_STORAGE, REQUEST_EXTERNAL_STORAGE);
}