java.io.FileNotFoundException: sdcard/Movies/123.mp4: open failed: EACCES (Permission denied)
时间: 2024-02-02 10:04:27 浏览: 31
这个错误提示是因为你的应用在尝试访问外部存储(sdcard)上的一个文件(123.mp4),但是没有获得相关的读写权限。解决这个问题的方法如下:
1. 在 AndroidManifest.xml 文件中添加读写外部存储的权限声明:
```
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
```
2. 在代码中请求权限:
```
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_CODE);
}
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_CODE);
}
```
其中 REQUEST_CODE 是请求权限时传递的请求码,可以自定义一个整型常量。
3. 处理权限请求的回调:
```
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 权限已授予,可以进行相关操作
} else {
// 权限未授予,无法进行相关操作
}
}
}
```
这样就可以解决访问外部存储的权限问题了。