Manifest.permission.WRITE_EXTERNAL_STORAGE 在哪里定义
时间: 2024-03-01 12:55:44 浏览: 19
Manifest.permission.WRITE_EXTERNAL_STORAGE 是在 Android SDK 中的 AndroidManifest.xml 文件中定义的。这个权限允许应用程序在外部存储器中写入数据。在 AndroidManifest.xml 文件中,这个权限的定义如下:
```xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
```
这个权限在 Android 6.0 及以上的版本中是需要动态申请的,而且如果应用程序需要在外部存储器中读取数据,也需要申请 Manifest.permission.READ_EXTERNAL_STORAGE 权限。
相关问题
Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) 标红
这是因为 Android Studio 中的代码编辑器认为 `Manifest.permission.WRITE_EXTERNAL_STORAGE` 是一个未定义的符号,因此将其标记为错误。要解决这个问题,你需要确保在你的代码中导入了 `android.Manifest` 类,并且应用程序清单文件中声明了 `WRITE_EXTERNAL_STORAGE` 权限。可以尝试在代码中添加以下导入语句:
```java
import android.Manifest;
```
如果你已经添加了这个导入语句,那么请检查你的应用程序清单文件中是否声明了 `WRITE_EXTERNAL_STORAGE` 权限。你可以在清单文件中添加以下代码:
```xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
```
这应该解决了代码编辑器中的错误标记问题。
android.permission.WRITE_EXTERNAL_STORAGE
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`权限才能操作手机中的文件管理。