android11 申请所有文件访问权限

这篇具有很好参考价值的文章主要介绍了android11 申请所有文件访问权限。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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及以上版本,走正常申请权限流程
        }
    }

android11 申请所有文件访问权限,android,android11
3. 获取用户授权情况文章来源地址https://www.toymoban.com/news/detail-756396.html

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_MANAGE_FILES_ACCESS) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
                if (Environment.isExternalStorageManager()) {
                    // TODO: 2023/11/22  
                    // 用户已经授予文件访问权限
                    // 在这里执行创建文件夹和初始化数据库的操作
                } else {
                   	// TODO: 2023/11/22  
                    // 用户尚未授予文件访问权限
                    // 可以在此处处理用户未授予权限的情况
                    
                }
            }
        }
    }

到了这里,关于android11 申请所有文件访问权限的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android13适配所有文件管理权限

    很早之前在Android11上面就适配过所有文件管理权限,这次是海外版升级到Android13,由于选择相册用的是第三方库,组内的同事没有上架Google的经验直接就提交代码,虽然功能没有问题,但是上架的时候被打回了,于是记录一下适配工作. 绝大多数需要共享存储空间访问权限的

    2024年01月22日
    浏览(40)
  • Android权限申请之动态申请权限

    先上图: 对于一些危险权限在AndroidManifest清单文件中申请之后,还需要得到用户的许可并打开,才算是真正的开启了这个权限。所以可以使用动态申请权限,对于某个功能,如果需要开启某个权限,在用户使用它之前,弹窗提示用户是否要开启这个权限。 动态申请权限大致

    2024年02月11日
    浏览(57)
  • Android动态申请权限(运行时申请权限)

    目录 1.需要动态申请权限的原因 2.Android权限动态申请 1.需要动态申请权限的原因   首先,Android权限分为大致两类,一类是普通权限,一类是危险权限,准确地讲其实还有一些特殊的权限,不过这些权限使用得相对较少,我们大致跳过.对于普通权限,系统会自动帮我们进行授权,由于

    2024年02月20日
    浏览(47)
  • Android文件基本操作(创建文件(夹)、复制文件(夹)、设置文件访问权限)

    将src目录下的info.txt复制到dst目录并重命名为info_dst.txt 1、 方法一:调用java.nio.file.Files.copy() 2、方法二:使用输入输出流 1、删除文件 只需要调用File的delete方法即可删除指定文件 2、删除文件夹 如果文件夹不为空,调用delete方法是无法删除文件夹的。需要先删除文件夹中包含

    2024年02月01日
    浏览(88)
  • Delphi v11 安卓权限申请

    问题 Delphi 10.4 的安卓权限申请代码,在 Delphi 11 下面编译无法通过。 原因 原因是里面有几个变量类型的定义有所不同。 上述代码是 Delphi 10.4 的,里面有两个类型需要更改: 1.  TArraystring 更改为: TClassicStringDynArray ; 2.  TArrayTPermissionStatus 更改为: TClassicPermissionStatusDynArr

    2024年02月20日
    浏览(45)
  • Android申请权限(相机权限和读写权限)

    开发一个相机应用,需要申请三个权限:相机、读文件、写文件。 初步授权成功

    2024年02月11日
    浏览(55)
  • Android 11 上的文件读写权限(MANAGE_EXTERNAL_STORAGE)

         Android11 + RK3566 + AndroidStudio Android 权限的变化, 几乎每个版本的SDK都会有, 其中最大的一次是在6.0时, 增加的动态权限申请 读写存储的权限也几经更迭, 对开发人员来说, 越来越难.比如, 本文所要讨论的: 允许管理所有文件 首先是 targetSdkVersion 大于等于 30. (build.gradle) 当声

    2024年01月16日
    浏览(42)
  • Android动态申请权限

    一、在AndroidManifest清单文件中声明要开启的权限 二、代码中动态申请相关权限

    2024年02月06日
    浏览(42)
  • Android之动态申请权限

    Android 6.0 (API 23) 之前应用的权限在安装时全部授予,运行时应用不再需要询问用户。在 Android 6.0 或更高版本对权限进行了分类,对某些涉及到用户隐私的权限可在运行时根据用户的需要动态授予。 Android 6.0以下,在AndroidManifest.xml文件中注册权限即可。 Android 6.0及其以后,既

    2024年02月04日
    浏览(48)
  • Android 开发中的权限申请

            我们都知道,从 Android 6.0 开始,部分危险权限在 xml 注册的同时,还需要动态申请。 1、需要动态申请的权限         需要动态申请的权限主要分为这 9 类,当然每类中可能不止一个权限,但只要动态申请一个就默认获取整个类别的权限。 2、申请单个权限   

    2024年02月09日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包