安卓中读取/storage中的文件被拒绝
时间: 2023-12-06 16:41:34 浏览: 335
在Android中,读取`/storage`中的文件需要获得特定的权限。如果您的应用程序没有获得这些权限,则会出现“被拒绝”的错误。
以下是解决该问题的几种方法:
1. 在AndroidManifest.xml文件中添加读取存储权限声明:
```xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
```
2. 如果您的应用程序运行在Android 6.0及以上版本上,您还需要在运行时请求权限。您可以使用以下代码:
```java
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_CODE);
}
```
3. 如果您的应用程序需要访问外部存储的特定目录,则还需要使用`getExternalStorageDirectory()`方法来获取正确的路径:
```java
File file = new File(Environment.getExternalStorageDirectory(), "filename.txt");
```
请注意,从Android 10(API级别29)开始,应用程序无法直接访问外部存储中的文件。相反,您需要使用`MediaStore`或`Storage Access Framework`(SAF)来访问这些文件。如果您需要支持Android 10及更高版本,请参考[这篇文章](https://developer.android.com/training/data-storage/shared/media)。
阅读全文