Android 访问存储卡的三种主要的目录

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

Android 访问存储卡(即外部存储)通常涉及以下三种主要的目录:

1. 外部存储公共目录 (Public External Storage)

这些目录对所有应用都是可见的,并且不需要任何特殊权限来读取媒体文件。但是从Android 10(API 级别 29)开始,如果要写入这些目录,则需要WRITE_EXTERNAL_STORAGE权限,并且访问路径可能受到某些限制。

  • 获取方法:使用Environment.getExternalStoragePublicDirectory()方法,传入一个类型参数如Environment.DIRECTORY_PICTURESEnvironment.DIRECTORY_MUSIC等。

  • 特点:适合保存用户希望长期保留并可以与其他应用共享的文件,如照片、音乐等。

2. 外部存储应用特定目录 (App-specific External Storage)

这些目录是应用专属的,在应用卸载后会自动删除里面的内容。不需要任何权限即可读写这些目录中的文件。

  • 获取方法:通过调用Context.getExternalFilesDir()方法获取。它可以传入一个类型参数,例如Context.getExternalFilesDir(Environment.DIRECTORY_PICTURES),或者传入null来访问根目录。

  • 特点:适合存储应用的临时缓存数据或不需要与其他应用共享的大型文件。

3. 外部存储缓存目录 (External Cache Directory)

这是用于存储临时缓存文件的目录。系统可能在存储空间不足时删除这些缓存文件。

  • 获取方法:通过调用Context.getExternalCacheDir()来访问。

  • 特点:适合存放应用运行过程中产生的临时缓存文件。

使用方面的区别

  1. 权限

    • 公共目录:从Android 4.4开始,不需要权限就可以读取媒体文件,但Android 10及更高版本对文件写入做了限制。
    • 应用特定目录和缓存目录:不需要任何权限就可以进行读写操作。
  2. 数据持久性

    • 公共目录:文件通常被保留,直到用户手动删除它们。
    • 应用特定目录和缓存目录:当应用被卸载时,其中的文件会被自动删除。
  3. 共享性

    • 公共目录:文件可以被用户和其他应用访问。
    • 应用特定目录:虽然理论上其他应用也可以访问,但实际上主要是为当前应用服务的,其他应用通常不会去访问。
  4. 隐私性

    • 公共目录:由于所有应用都可以访问,所以隐私性较差。
    • 应用特定目录:相对私密,不易被其他应用访问。
  5. 存储策略

    • 公共目录:建议仅存储用户主动创建或明确希望与他人分享的文件。
    • 应用特定目录:适合存储应用的核心数据和不需共享的大型资源文件。
    • 缓存目录:适合存储临时文件,应用必须能够处理这些文件被系统删除的情况。
  6. Android 10(API 级别 29)以上的存储变更

    • 引入分区存储(Scoped Storage),限制了对外部存储的全局访问,强制应用使用自己的应用特定目录,或通过MediaStore API访问共享文件类型。

开发者在选择存储位置时,应该考虑到这些区别,并基于用户的数据隐私以及文件的用途选择正确的存储路径。

另外更全的介绍 《Android 文件存储系统》文章来源地址https://www.toymoban.com/news/detail-820251.html

到了这里,关于Android 访问存储卡的三种主要的目录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Arduino 合宙 ESP32 S3 + OV2640 实现低成本SD存储卡相机(ESP32连接SD模块引脚)

    合宙ESP32 S3 板载16M flash,8m psram和一个FPC相机接口,价格却不到30元,无疑比价格将近50元的第三方ESP32 S3和将近30的ESP32 Cam更具性价比。 但是虽然板载FPC,由于接口冲突,导致相机与psram不能同时开启,作为ESP32 Cam的替代品来看,还缺少了板载SD卡,而且作为一块发布不久的开发

    2024年02月04日
    浏览(52)
  • Docker存储目录迁移的三种方式

    背景: 随着docker的使用时间越来越长,导致镜像和容器越来越多,占满了系统盘空间,这时,我们需要给它们搬个家了 下面咱们提供三种方式 docker info :查看docker的存储等相关信息 1、停止docker 服务 2、备份数据到新的存放路径 3、备份 /var/lib/docker 路径 4、创建软连接 5、启

    2024年02月07日
    浏览(65)
  • 大语言模型的三种主要架构 Decoder-Only、Encoder-Only、Encoder-Decoder

    现代大型语言模型(LLM)的演变进化树,如下图: https://arxiv.org/pdf/2304.13712.pdf 基于 Transformer 模型以非灰色显示: decoder-only 模型在蓝色分支, encoder-only 模型在粉色分支, encoder-decoder 模型在绿色分支。 模型在时间线上的垂直位置表示它们的发布日期。 开源模型由实心方块

    2024年01月24日
    浏览(63)
  • Nginx访问日志切割的三种方法

    接下来,很简单,shell 脚本来了 这已经达到了我们想要的效果了,点个赞 当然还有最重要的一步,那就是要做好定时任务 这种切割的方法,一开始我是不知道的,因为我之前的 nginx 都是使用源码安装的,在一次偶然的情况下,使用了 yum 安装的方式安装了 nginx,然后发现 n

    2024年02月14日
    浏览(71)
  • MySQL的三种存储引擎 InnoDB、MyISAM、Memory

    InnoDB是一种兼顾高可靠性和高性能的通用存储引擎,在 MySQL 5.5 之后,InnoDB是默认的MySQL 存储引擎。 DML操作遵循ACID模型,支持事务; 行级锁,提高并发访问性能; 支持外键FOREIGN KEY约束,保证数据的完整性和正确性; xxx.ibd:xxx代表的是表名,innoDB引擎的每张表都会对应这样

    2024年01月20日
    浏览(58)
  • android的三种动画

    只能被用来设置View的动画。 可以使用xml或者java 代码进行实现 xml放在 res/anim/ 下 android:duration 动画持续时间,以毫秒为单位 android:fillAfter 如果设置为true,控件动画结束时,将保持动画最后时的状态 android:fillBefore 如果设置为true,控件动画结束时,还原到开始动画前的状态

    2023年04月11日
    浏览(42)
  • python字典访问的三种方法的详细用法

    如果想自定义 get() 方法返回的默认值,可以在调用 get() 方法时传入默认值作为参数。示例代码如下:

    2024年02月16日
    浏览(48)
  • 实现计算机间远程桌面访问的三种方法

    下面,我将结合自身实际工作经验,分享三种windows远程桌面访问的方法,解决实际工作场景遇到的远程访问问题。这三种方法分别解决了如下场景下的远程访问: 1. 跨局域网的windows远程桌面访问 2. 同一局域网下的windows远程桌面访问 3. 利用远程控制软件实现远程桌面访问

    2024年02月16日
    浏览(36)
  • uni-app实现上传文件至云存储的三种方式

    目录 前言 1.在uniCloud WEB控制台中可以直接上传文件 2.客户端api上传或者组件 组件上传 客户端手动api上传 3. 云函数上传文件到云存储 总结 开发者使用 uniCloud 的云存储,无需再像传统模式那样单独去购买存储空间、CDN映射、流量采购等,本篇文章主要讲解如何使用uni-app实现

    2024年02月08日
    浏览(62)
  • Android项目获取网页信息的三种方法

    具体操作可以参考我的另一篇文章eclipse创建Android项目调用jsoup获取网页信息 进入想要获取信息的网页,点击F12进入开发者模式,选择网络,刷新页面,点击标头,参考对应字条,没有的字条就不修改。

    2024年02月15日
    浏览(94)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包