华为手机读写SD卡,加了权限创建文件还是报错,求指导

移动开发 码拜 8年前 (2016-05-03) 3981次浏览
RT添加了权限,创建文件的时候还是报错,别的手机没有问题,现在手上的华为P9不行,具体如下:
添加的权限:
<uses-permission android:name=”android.permission.READ_EXTERNAL_STORAGE” />
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” />
<uses-permission android:name=”android.permission.MOUNT_UNMOUNT_FILESYSTEMS” />

代码如下:
String state = Environment.getExternalStorageState();
if (state.equals(Environment.MEDIA_MOUNTED)) {
file = new File(saveDir, “temp.jpg”);
file.delete();
File dir = new File(saveDir);
if(!dir.exists()) {
dir.mkdirs();
}
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(ReportActivity.this, “照片创建失败!”,
Toast.LENGTH_LONG).show();
return;
}
}

异常信息:
java.io.IOException: open failed: ENOENT (No such file or directory)
07-17 10:57:31.275 9327-9327/com.jackson.spdtreport W/System.err:     at java.io.File.createNewFile(File.java:942)
解决方案

40

华为P9是android 6.0 的==
在API23+以上也就是安卓6.0以上的,进行了权限管理
不止要在AndroidManifest.xml里面添加权限
<uses-permission android:name=”android.permission.READ_EXTERNAL_STORAGE”/>
<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE”/>
还要在JAVA代码中运行时实时请求权限:
// 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);
}
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明华为手机读写SD卡,加了权限创建文件还是报错,求指导
喜欢 (0)
[1034331897@qq.com]
分享 (0)