怎么解决Android 10无法随意创建文件

2024-06-20 03:48

本文主要是介绍怎么解决Android 10无法随意创建文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 创建文件所需要权限
//可创建和删除文件权限
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS">
//存储读写权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  • 6.0动态授权
 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 0); 
  • 申请权限监听
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {if (!hasAllPermissionsGranted(grantResults)) {return;}switch (requestCode) {case 0:Toast.makeText(getApplicationContext(), "已申请权限", Toast.LENGTH_SHORT).show();default:super.onRequestPermissionsResult(requestCode, permissions, grantResults);}}

解决方式:

1.使用Android10规定的文件夹做操作
在这里插入图片描述

2.将gradle中的编译环境,SDK的版本号修改到29以下
在这里插入图片描述

3.清单文件加入下面这句停用分区存储即可随意创建文件夹

 <applicationandroid:requestLegacyExternalStorage="true"></application>

测试 (2)和(3)在SDcard根目录成功创建文件

 /*** sdcard根目录路径** @return*/public static String rootSDPath(Context context){String rootPath = "" ;/*** 是否插入外部SDCard*/if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){/*文件管理根目录*/File rootFile = Environment.getExternalStorageDirectory();rootPath = rootFile.getPath();}else {/*如果没有插内存卡*/File cacheDir=context.getCacheDir() ;rootPath = cacheDir.getPath();}try {PackageManager packageManager = context.getPackageManager() ;ApplicationInfo info = packageManager.getApplicationInfo(context.getPackageName(), 0);File file = new File(rootPath + File.separator + info.loadLabel(packageManager));if (!file.exists()){file.mkdir();}Log.v(TAG,"[rootPath]->file="+info.loadLabel(packageManager));return file.getPath();} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}return "";}

这篇关于怎么解决Android 10无法随意创建文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1077012

相关文章

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

IDEA和GIT关于文件中LF和CRLF问题及解决

《IDEA和GIT关于文件中LF和CRLF问题及解决》文章总结:因IDEA默认使用CRLF换行符导致Shell脚本在Linux运行报错,需在编辑器和Git中统一为LF,通过调整Git的core.aut... 目录问题描述问题思考解决过程总结问题描述项目软件安装shell脚本上git仓库管理,但拉取后,上l

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

idea npm install很慢问题及解决(nodejs)

《ideanpminstall很慢问题及解决(nodejs)》npm安装速度慢可通过配置国内镜像源(如淘宝)、清理缓存及切换工具解决,建议设置全局镜像(npmconfigsetregistryht... 目录idea npm install很慢(nodejs)配置国内镜像源清理缓存总结idea npm in

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

idea突然报错Malformed \uxxxx encoding问题及解决

《idea突然报错Malformeduxxxxencoding问题及解决》Maven项目在切换Git分支时报错,提示project元素为描述符根元素,解决方法:删除Maven仓库中的resolv... 目www.chinasem.cn录问题解决方式总结问题idea 上的 maven China编程项目突然报错,是

在Ubuntu上打不开GitHub的完整解决方法

《在Ubuntu上打不开GitHub的完整解决方法》当你满心欢喜打开Ubuntu准备推送代码时,突然发现终端里的gitpush卡成狗,浏览器里的GitHub页面直接变成Whoathere!警告页面... 目录一、那些年我们遇到的"红色惊叹号"二、三大症状快速诊断症状1:浏览器直接无法访问症状2:终端操作异常

mybatis直接执行完整sql及踩坑解决

《mybatis直接执行完整sql及踩坑解决》MyBatis可通过select标签执行动态SQL,DQL用ListLinkedHashMap接收结果,DML用int处理,注意防御SQL注入,优先使用#... 目录myBATiFBNZQs直接执行完整sql及踩坑select语句采用count、insert、u