解决Android WRITE_EXTERNAL_STORAGE权限未授予问题的一种常见方法是通过运行时权限请求来获取该权限。以下是一个使用运行时权限请求的示例代码:
private static final int REQUEST_WRITE_EXTERNAL_STORAGE = 1;
// 检查权限是否已经被授予
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
// 权限未被授予,请求权限
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
REQUEST_WRITE_EXTERNAL_STORAGE);
} else {
// 权限已经被授予,执行相应操作
// ...
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == REQUEST_WRITE_EXTERNAL_STORAGE) {
// 如果请求被取消,结果数组将为空
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 权限被授予,执行相应操作
// ...
} else {
// 权限被拒绝,显示一个提示或者禁用相关功能
// ...
}
}
}
通过以上代码示例,你可以在权限未授予时请求WRITE_EXTERNAL_STORAGE权限,并根据权限请求结果进行相应的处理。