在 AndroidManifest.xml 文件中添加以下权限:

<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />

然后,在你的 Activity 或 Fragment 中,使用以下代码请求文件访问权限:

private static final int REQUEST_CODE_MANAGE_ALL_FILES_ACCESS_PERMISSION = 100;

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && !Environment.isExternalStorageManager()) {
    Intent intent = new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
    startActivityForResult(intent, REQUEST_CODE_MANAGE_ALL_FILES_ACCESS_PERMISSION);
} else {
    // 已经拥有文件访问权限的处理逻辑
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQUEST_CODE_MANAGE_ALL_FILES_ACCESS_PERMISSION) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && Environment.isExternalStorageManager()) {
            // 已经获得文件访问权限的处理逻辑
        } else {
            // 未获得文件访问权限的处理逻辑
        }
    }
}

上述代码首先检查设备是否运行 Android 11 及以上版本,并且用户是否具有文件访问权限。如果用户没有文件访问权限,则会打开系统的权限管理界面,让用户授予文件访问权限。在 onActivityResult 方法中,根据用户的选择进行相应的处理逻辑

配置 ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION 的示例代码

原文地址: http://www.cveoy.top/t/topic/i0TD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录