android动态申请读写权限
时间: 2023-10-15 09:02:35 浏览: 140
在 Android 6.0(API level 23)及更高版本中,应用程序需要在运行时动态请求某些权限。以下是一个示例代码,演示如何请求读写外部存储空间的权限:
1. 在 AndroidManifest.xml 文件中添加权限声明:
```xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
```
2. 在代码中请求权限:
```java
private static final int REQUEST_WRITE_EXTERNAL_STORAGE = 1;
// 检查是否已经授权该权限
if (ContextCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
// 如果应用程序没有此权限,则请求该权限
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
REQUEST_WRITE_EXTERNAL_STORAGE);
} else {
// 已经授权
// TODO: 执行具有该权限的操作
}
```
3. 处理权限请求结果:
```java
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case REQUEST_WRITE_EXTERNAL_STORAGE: {
// 如果请求被取消,则结果数组为空
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 权限已授予,执行具有该权限的操作
// TODO: 执行具有该权限的操作
} else {
// 权限被拒绝,禁用该功能或显示提醒
}
return;
}
}
}
```
以上是一个简单的示例,演示了如何动态请求读写外部存储空间的权限。您可以根据自己的需要修改代码,以请求其他权限。
阅读全文