android.permission.WRITE_EXTERNAL_STORAGE
时间: 2024-04-21 08:18:51 浏览: 348
Android中的`android.permission.WRITE_EXTERNAL_STORAGE`权限用于访问外部存储设备(如SD卡)的写入权限。以下是Android 11及以上版本和Android 6.0到Android 10版本的适配方法:
1. Android 11及以上版本:
在AndroidManifest.xml文件中添加以下权限:
```xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
```
然后,在代码中使用`ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION`权限来请求用户授权操作手机中的文件管理:
```java
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivity(intent);
```
2. Android 6.0到Android 10版本:
在AndroidManifest.xml文件中添加以下权限:
```xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
```
然后,在代码中使用运行时权限来请求用户授权:
```java
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_CODE);
}
}
```
请注意,从Android 11开始,即使在AndroidManifest.xml中声明了存储权限,也需要在代码中动态请求权限。此外,Android 11及以上版本的存储权限只允许访问媒体文件,无法直接操作手机的文件管理。只有通过`ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION`权限才能操作手机中的文件管理。
阅读全文