在Android 10及更高版本中,应用需要在运行时请求存储权限才能访问外部存储。以下是解决Android 13存储权限问题的代码示例:
private static final int REQUEST_CODE_STORAGE_PERMISSION = 1;
private void requestStoragePermission() {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
REQUEST_CODE_STORAGE_PERMISSION);
} else {
// 已经具有存储权限,执行相关操作
performStorageOperation();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_CODE_STORAGE_PERMISSION) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 存储权限已被授予,执行相关操作
performStorageOperation();
} else {
// 存储权限被拒绝
Toast.makeText(this, "存储权限被拒绝", Toast.LENGTH_SHORT).show();
}
}
}
private void performStorageOperation() {
// 在这里执行需要访问存储的操作,例如读取或写入文件
}
requestStoragePermission()
方法来请求存储权限。这样,当运行时权限被授予时,将执行performStorageOperation()
方法中的操作,否则将显示一个提示消息。