Android11获取外部存储目录

android知识点总结---文件的处理(二)--内部存储和外部存储 Android 应用提供内部和外部存储,分别用于存放应用自身数据以及应用产生的用户数据。可以通过相关 API 接口获取对应的目录,进行文件操作 Environment.getExternalStorageDirectory() Environment.getExternalStoragePublicDirectory() Context.getFilesDir() Context.getCacheDir 内部存储: 只有您的应用可以访问此处保存的文件,当用户卸载您的应用时,系统会从内部存储中移除您的 阅读详情

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getPath();对应路径:       DIRECTORY_PICTURES =/storage/emulated/0/Pictures
this.getExternalFilesDir(Environment.DIRECTORY_PICTURES).getPath();对应路径                  DIRECTORY_PICTURES= /storage/emulated/0/Android/data/com.example.testpplication/files/Pictures
 

Android Q不再需要申请文件读写权限,默认可以读写自己沙盒文件和公共媒体文件。所以Q以上不需要再动态申请文件读写权限

apk安装路径为 /data/data/,沙盒路径 /sdcard/Android/data/xxx 不做操作安装的同时不会立即生成

而Environment.getExternalStorageDirectory() 在 API Level 29 开始已被弃用,开发者应迁移至 Context#getExternalFilesDir(String), MediaStore, 或Intent#ACTION_OPEN_DOCUMENT。

应用只能访问自己沙盒下的文件和公共媒体文件

公共文件的操作需要用到ContentResolver和Cursor
 

 

Android 10-11适配外部存储方案 Android Api 29 对文件和文件夹进行了重大更改。不允许使用外部存储,如下方法:只能使用内部存储但谷歌官方给了一个后门,在AndroidManifest.xml文件中application节点中加上android:requestLegacyExternalStorage="true"属性才可以访问沙盒路径下的数据原来的项目就要重新适配。 阅读详情

相关推荐

Android 11 存取文件或保存取出图片到目录

前言 今天遇到个问题,在安卓10以下保存图片到目录有效,在安卓11上就不行。 有问题的代码是这样的 String path = Environment.getExternalStorageDirectory()+"/DirName/"+"123.jpg"; 上面这句代码获取的是文件的根目录。 最终的解决办法是,把上述代码换成下面这个代码: //下面这段代码获取的目录是//storage/emulated/0/Android/data/com.microhabit/files/DirName/

gaoqingliang521的专栏 3万+

Android开发之API29以上Environment.getExternalStoragePublicDirectory废弃的问题

在API29的时候就会提示API失效如下图:Environment.getExternalStoragePublicDirectory 代替方法也很简单,我们点进去看源码就会看到注释信息给我们的提示的替代方案: 然后我分别打印了下这些对应代码的目录如下图: 总体目录代表的是根目录/Android/data/包名/file 上面目录对应的代码如下: File externalFilesDir1 = getExternalFilesDir(Environment.DIRECTORY_AL

xiayiye5的博客 5354

Android 存储进化:分区存储

Android系统会自动扫描外部存储空间,将媒体文件按类型添加到系统预定义的Images、Videos、Audiofiles、Downloadedfiles集合中。AndroidQ通过MediaStore.Images、MediaStore.Video、MediaStore.Audio、MediaStore.Downloads访问相对应共享目录文件资源。预定义集合所对应的目录如下表所示:|媒体类型|Uri|默认创建目录|允许创建目录|

2401_89790786的博客 1602

Environment.getExternalStorageDirectory()与Environment.getExternalStoragePublicDirectory(String type)

Environment.getExternalStorageDirectory()是获得外部存储的第一层的对象,可以通过这个对象获得这一层的各个文件的名称,路径,以及建立其中一个文件的抽象对象。 代码如下: File files = Environment.getExternalStorageDirectory();//获得外部存储器的第一层的文件对象 File fil

chenmeng911的博客 2万+

2022-02-24 Android R11 之后外部存储权限获取,Android R11 里将会引入一个特别的权限叫做 MANAGE_EXTERNAL_STORAGE,跟之前的版本有区别。

一、因为Android新版本外部权限的问题,折腾了几天,百思不得其解,特意记录下来一下。 二、针对文件管理器以及一些备份类的应用,它们需要获得共享存储的更广泛的访问权限。Android 11 里将会引入一个特别的权限叫做MANAGE_EXTERNAL_STORAGE,该权限将授权读写所有共享存储内容,这也将同时包含非媒体类型的文件。但是获得这个权限的应用还是无法访问其他应用的应用专属目录 (app-specific directory),无论是外部存储还是内部存储。 二、如果是按以前的方法申请 ...

海月汐辰 2万+

Android存储之分区存储适配

在上文中我们了解到,外部存储空间分为私有目录和公共目录,在Android10以前,应用程序通过获取READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 权限。获得外部存储空间的权限以后直接通过file path读取和修改外部存储空间中任意的文件,当然也包括其他应用的外部私有目录文件,这样一来极易造成泄露用户隐私。而且很多应用会在外部存储根目录建一个自己应用的文件夹,用于存放应用的数据。这样会导致用户卸载后,应用数据不会随之删除。导致手机文件特别混乱,长期占用空间。

XBlithe的博客 9550

【Android】外部文件存储

需要在AndroidManifest.xml的application域中添加以下字段: android:requestLegacyExternalStorage="true" AndroidManifest和PermissionHelp运行中都要申请权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="a

凡人的专栏 1018

Android 中内部存储和外部存储的理解与应用

一、Android存储分为: 内部存储(Internal Storage)和外部存储(External Storage) 特点: 内部存储:随应用卸载被删除 外部存储: 1.公有目录:存放一些下载的视频文件等,比如还有movies,fictures,music等公有的一些文件目录 2.私有目录:随应用卸载被删除 下面来具体介绍一下内部存储和外部存储的具体路径: 1、内部存储: /data/data/< applicationId >/shared_prefs /data/data/<

路宇的博客 5801

Android 存储空间访问方法

记录 Android 内外部存储空间的路径及访问方法。

AmieVastness的博客 2370

【UV打印机】PrintExp打印软件教程(六)-高级模式(马达)

输入高级模式密码进入高级模式高级模式界面有操作栏、控制栏、参数栏及参数界面操作栏名称功能说明文件加载数据从板卡加载参数保存将参数保存到主板退出退出高级模式固件导入固件导入配套版本下的固件配置*xpcfx导出固件导出当前使用的固件配置*xpcfx导入波形文件导入对应的波形文件*waf操作初始化系统继续初始化动作复位X轴复位回原点控制栏可进行小车运动、闪喷操作(此闪喷为点击进行闪喷,不受平台位置限制),无清洗功能。

Print World的专栏 3112

【面试题】MySQL索引相关的面试题(红黑树,hash,B树,B+树)

自己整理了几个面试题分享给大家 问题1:红黑树为什么那样设计? 首先聊一下二叉搜索树,主要特点是左节点比根节点小,右节点比根节点大,并且左右子树都是二叉搜索树。缺点是在极端情况下,比如插入都是有序的,就会出现退化的情况有序序列树退化成链表。 二叉搜索树 退化成链表的二叉搜索树 此时,要想让树的节点平均分布就需要平衡树了,红黑树就是平衡树的一种(平衡二叉搜索树)。然后,一棵树的查询性能取决...

Mr_黑_ 的博客 4044

【Android】【版本适配】Android11权限适配终极解决方案

Android11有了哪些改动 Android11主要是进一步收缩了应用权限,在权限管理方面比以前更加严格 最主要,影响最大的,就是存储卡访问权限的调整 从Android11开始,应用将只能访问自己的私有目录、公共媒体目录、存储卡根目录 其它目录,只能判断文件是否存在,但是既不能读取,也不能写入 这直接影响到文件选取、拍照录像录音、文件分享、文件下载等功能 对开发者影响非常大,特别是严重依赖于外部存储的项目 应对方案 首先摆正心态,积极适配,不要抗拒变化,逃避问题,影响比较多,我们逐个击破 Android1

天天向上 Up Up Up (*^▽^*) 7627

ERA5 数据集下载(2025最新 可运行)

众所周知,ERA5数据集经过了更新,尤其是在API访问和下载方式上发生了变化。2025年版的ERA5数据集为气象研究人员提供了更高质量的历史气象数据。本文将介绍如何通过新的API接口下载最新的ERA5数据集。

m0_72141699的博客 3594

内部存储和外部存储

这张图是Android11之前的,现在Android11外部存储空间已经变成: 现在图为: 现在得到私有目录file的话用context.getFileDir()还是可以的,访问外部的话,那些什么Enviroment直接取用的getExternal那些都不行了。这时候建议用MediaStore和FileProvider的方式。 ...

sometime here 162

Langchain与Milvus集成中的pymilvus.exceptions.MilvusException: channel not found错误解析

本文深入解析了在Langchain与Milvus集成时常见的pymilvus.exceptions.MilvusException: channel not found错误。该错误通常由客户端配置错误、网络问题、服务端状态异常或版本不兼容导致。文章提供了从基础连通性测试到高级网络排查的完整故障排除指南,并针对本地Docker、远程服务器及Kubernetes等典型部署场景给出了具体解决方案,帮助开发者快速定位并修复这一连接层问题。

weixin_29229989的博客 217

Win10自动更新怎么永久关闭?有效的Win10强制更新关闭方法

之前小编为大家分享过一些Win10彻底关闭Windows Update自动更新的方法,主要是通过一些如设置流量计费或借助一些专门的小工具来实现,但往往会发现,Win10自动更新就像打不死的小强,不管怎么关闭,之后还是会自动更新,让不少小伙伴颇为不爽。今天小编带来了这篇改进型教程,通过全方位设置,彻底关闭Win10自动更新,感兴趣的小伙伴不妨试试吧。 ...

jianai0602的博客 108万+

2022-02-26 AndroidR 11 调用文件管理器并返回选中文件的路径

一、Android8 调用文件管理器并返回选中文件的路径的时候可以参考这个文章。 Android中调用文件管理器并返回选中文件的路径_潘侯爷的博客-优快云博客 二、Android11的从图标打开ExternalStorage是跟之前一样的。但是是打开Recent、Images、Downloads的时候各种问题,同样的软件在android8的时候可以运行,到Android11就不行,这里简单总结一下在Android11的时候打开浏览器的demo。 1、打开文件管理器的效果。 ...

海月汐辰 8323

不带DDR的ZYNQ使用OCM加载程序运行的方法

软件版本:Vivado Vitis2019.2 第一步: 在Vivado的ZYNQ Block Design时候不配置DDR 第二步: 在Vitis中: 1、 在Vitis中新建Platform,选择xsa文件: 2、 在xparameters.h中添加DDR的地址空间定义,如下: 3、 修改链接文件,修改每个段都到ram_0,因为ram_1空间全部给到应用程序 4、 修改fsbl工程的main.c,增加XPAR_PS7_DDR_0条件编译 5、 修改fsbl.h,重定义DDR_EN

hpf247的博客 5535

Android写入文件报错

Android异常分析

qq_41273101的博客 1万+

基于STM32F1XX 、HAL库的LTR-303ALS-01 环境光传感器驱动应用C语言程序设计

printf("制造商ID: 0x%02X\r\n", LTR303_ReadManufacID());printf("器件ID: 0x%02X\r\n", LTR303_ReadPartID());LTR-303ALS-01是一款数字环境光传感器(ALS),由Lite-On公司生产。printf("LTR-303ALS初始化失败!printf("LTR-303ALS初始化成功!printf("数据无效\r\n");* @param mode: 0-待机, 1-激活。

PP_Cottage的博客 1033

DAMMFND: Domain-Aware Multimodal Multi-view Fake News Detection

虚假新闻的泛滥不仅严重阻碍了互联网社交媒体的健康发展,还在政治、经济和社会层面造成了实际危害,凸显了自动化虚假新闻检测的重要性(Zhou 等,2015;Cui 等,2019;Zhu 等,2022a;Li 等,2024c,b,a)。现有的虚假新闻检测方法通常聚焦于特定领域的新闻,例如健康或政治领域。然而,在现实世界中,社交媒体上的新闻往往跨越多个领域,这就要求现有的虚假新闻检测方法必须考虑多域泛化(Nan 等,2021;Qi 等,2019;Zhu 等,2022b)。

qq_52053775的博客 337

Android 接收系统分享的文件

Android 接收系统分享的文件 测试使用环境: 小米11 Android 11 代码如下: XML清单 配置 <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.int

WeiPR的博客 2617

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

获取android手机内部存储空间和外…

原文 获取android文件系统的信息,需要Environment类和StatFs类的支持。 (1)Environment 是一个提供访问环境变量的类,常用的方法有:        A,getRootDirectory() ,返回File,获取Android 的根目录。        B,getDataDirectory() ,返回File ,获取Android 数据目录。       

sheng的博客 5616

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

android 获取sd卡目录失败_Android怎么获取外置SD卡的路径?

该楼层疑似违规已被系统折叠隐藏此楼查看此楼最近写一个测试机顶盒的APK,需求是播放外置SD卡中的视频。现在有的手机用Environment.getExternalStorageDirectory().getAbsolutePath();这个方法获取到的是内置存储的路径。private static String getStoragePath(Context mContext, boolean i...

weixin_39662263的博客 379

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Android 11 保存文件到外部存储,并分享文件

众所周知,Android 11 使用了专属目录,并且强制启用。关于专属目录的介绍,这里不详细多说,因为官方文档已经很明确了,这里主要介绍我保存在外部存储根目录遇到的一些坑。 专属目录,就是Android11为应用开辟的专属空间,APP将文件保存到专属目录,不再需要请求存储权限,直接就可以保存。并且其它应用无法访问专属目录里的文件,保证了用户的隐私安全。 而我这里的需求不是将文件保存在专属目录里,也不是保存在媒体目录里,而是外部存储的根目录,新建一个文件夹,保存我的csv文件,并将csv分享出去。 其实之前针

Cherish 1万+

Android外部存储/内部存储路径获取大全

package com.mufeng.toolproject.utils; import android.content.Context; import android.os.Environment; /** * Created by mufeng on 2017/3/11. */ public class DirectoryUtils { private static final

mufeng_慕枫学习笔记 6340
上一篇: SQL预编译
下一篇: 记一次Linux磁盘分区挂载
JianfeiMa
博客等级 码龄10年 61粉丝 131原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值