当前位置: 代码网 > it编程>App开发>Android > android11 申请所有文件访问权限

android11 申请所有文件访问权限

2024年07月28日 Android 我要评论
用于声明应用程序需要使用 MANAGE_EXTERNAL_STORAGE 权限。同时,使用了 tools:ignore=“ScopedStorage” 来忽略与分区存储(Scoped Storage)相关的 Lint 检查。11 引入了强制执行分区存储的限制,导致应用默认不能访问外部文件。低,官方并不推荐这样,但确实最快适配原有应用程序的方式)针对以前涉及较多文件的操作,可采用申请所有文件。的方式来解决这一问题,实现方式如下。

android 11 引入了强制执行分区存储的限制,导致应用默认不能访问外部文件。
针对以前涉及较多文件的操作,可采用申请所有文件访问权限的方式来解决这一问题,实现方式如下。
(虽然这样做安全性低,官方并不推荐这样,但确实最快适配原有应用程序的方式)

1. androidmanifest.xml中添加如下内容:
用于声明应用程序需要使用 manage_external_storage 权限。同时,使用了 tools:ignore=“scopedstorage” 来忽略与分区存储(scoped storage)相关的 lint 检查。

     <!-- android11额外添加 -->
<uses-permission android:name="android.permission.manage_external_storage"
    tools:ignore="scopedstorage" />

2. 申请所有文件访问权限,该操作会跳转到所有文件权限申请页面

    // 请求文件访问权限的请求码,可以是任意整数值
    private static final int request_manage_files_access = 2;
    //申请所有文件访问权限
    public void requestpermission() {
        if (build.version.sdk_int >= build.version_codes.r) {
            //判断是否有管理外部存储的权限
            if (!environment.isexternalstoragemanager()) {
                intent intent = new intent(settings.action_manage_app_all_files_access_permission);
                intent.setdata(uri.parse("package:" + getpackagename()));
                startactivityforresult(intent, request_manage_files_access);
            } else {
                // todo: 2023/11/22  
                // 已有所有文件访问权限,可直接执行文件相关操作
            }
        } else {
            // todo: 2023/11/22  
            //非android11及以上版本,走正常申请权限流程
        }
    }

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com