Android13获取不到内存权限
时间: 2023-11-28 07:47:41 浏览: 199
在 Android 10 及以上的版本中,应用程序需要明确请求访问存储和其他敏感权限。因此,如果您的应用程序需要访问内存,您需要在应用程序的 Manifest 文件中声明 MANAGE_EXTERNAL_STORAGE 权限,并在运行时向用户请求此权限。
您可以使用以下代码请求权限:
```java
if (ContextCompat.checkSelfPermission(this, Manifest.permission.MANAGE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
// Permission is not granted, request it
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.MANAGE_EXTERNAL_STORAGE},
REQUEST_CODE);
}
```
在用户授予或拒绝权限后,系统将调用 onRequestPermissionsResult() 方法。在此方法中,您可以检查用户的响应并相应地执行操作。
```java
@Override
public void onRequestPermissionsResult(int requestCode,
String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_CODE) {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permission granted, do your work
} else {
// Permission denied, handle it
}
}
}
```
请注意,MANAGE_EXTERNAL_STORAGE 权限是一个特殊权限,需要您的应用程序具有 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 权限才能正常工作。因此,在请求 MANAGE_EXTERNAL_STORAGE 权限之前,请确保已经请求了这两个权限。
阅读全文