Android能用来存储的地方有两个,一个是手机内置的存储空间,一个是外置的SD卡,内置的存储空间一般比较小,所以应用的缓存建议存储在外置的SD卡中。

在Android系统中如何获得存储的路径呢?

public static void getRootPath(Context context) {

Log.d("ExternalDirectory->", Environment.getExternalStorageDirectory().getPath());

Log.d("ExternalCacheDir->", context.getExternalCacheDir().getPath());

Log.d("CacheDir->", context.getCacheDir().getPath());

Log.d("FilesDir->", context.getFilesDir().getPath());

}

以上对应的输出结果为

ExternalDirectory->: /storage/emulated/0

ExternalCacheDir->: /storage/emulated/0/Android/data/zhuwentao.com.pathdemo/cache

CacheDir->: /data/data/zhuwentao.com.pathdemo/cache

FilesDir->: /data/data/zhuwentao.com.pathdemo/files

应用的缓存建议存储在通过getExternalCacheDir().getPath()获取的路径中,这里的zhuwentao.com.pathdemo会根据你的应用程序包名不同会有差别,存在这个路径,主要有以下几个好处

一:该路径是在SD卡中,所以不用担心手机内置存储空间不足,只要SD卡够大就行。

二:该路径是Android系统默认的应用缓存路径,对应手机应用设置里面应用详情的“清除缓存”和“清除数据”按钮。

三:当我们卸载应用时,该路径下的数据也会被清空,这样就避免了有些应用卸载后还有残留数据的问题。

如果需要保存用户下载的数据,就不建议存储在getExternalCacheDir()中了,可以在Environment.getExternalStorageDirectory()下新建一个文件夹,用来存储用户下载的数据。

我们在选择存储路径的时候,还要考虑到用户的手机是否有SD卡,再进行选择,通过以下代码判断用户是否有SD卡:

/**

* 获取手机可存储路径

* @param context 上下文

* @return 手机可存储路径

*/

public static String getRootPath(Context context) {

// 是否有SD卡

if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)

|| !Environment.isExternalStorageRemovable()) {

return context.getExternalCacheDir().getPath(); // 有

} else {

return context.getCacheDir().getPath(); // 无

}

}

如果有SD卡或者SD卡不可被移除的时候则获取SD卡下的路径,没有则获取应用程序缓存路径。

有时候getExternalStorageDirectory()怎么也获取不到外置SD卡,这是为何呢?

在Android4.0之前Environment.getExternalStorageDirectory()获取到的是外置SD卡路径,而在4.0之后由于很多手机的自带内存已经很大了,不需要外置SD卡,所以Android就把内置的内存分一部分出来当作SD卡使用了,导致不同版本的Android系统获取到的SD卡路径会存在差异。

需要注意的是,各个手机厂商的SD卡路径也是会存在差异的,有些手机获取到的路径是“/mnt/sdcard/…”,而有的获取的是“/storage/sdcard0/…”所以绝对不能写死SD卡的路径。

以上这篇Android 存储路径选择方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

android手机 存储路径设置在哪里找,Android 存储路径选择方法相关推荐

  1. android 手机恢复出厂设置,恢复青春活力

    本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/50516200 未经博主允许不得转载. 博主地址是:http://blog.csd ...

  2. android手机可以设置屏幕锁定,Android手机屏幕锁定设置方法(九个点图案)

    这是三星S5368手机屏幕锁的示例 随着三星S5368手机系统的功能越来越完善,性能越来越强. 越来越多的三星S5368用户喜欢在三星S5368手机中添加一些重要信息甚至是隐私,但是这种方式可能会被其 ...

  3. android 恢复出厂,安卓(Android)手机恢复出厂设置的方法

    手机恢复出厂设置是把手机中的个性设置或者说自定义的设置恢复刚买手机时的一些东西,下面我来介绍两种恢复出厂设置的方法,希望本文章对各位同学会有所帮助. 手机恢复出厂设置会怎么样? 手机恢复出厂设置.只会 ...

  4. android 双卡的铃声设置在哪里,安卓android手机铃声设置方法

    android铃声设置另类方法 我们在其他Android手机设置铃声的时候,一般采用的方法都是使用第三方软件(如TongPicker)设置,这样的设置方法有些繁琐,必须在相应的设置箱内启动该程序才能设 ...

  5. android手机短信息中心设置

    android手机有的不容易找到短信息中心的设置.可采用下面这种方法. 1.在拨号界面输入 *#*#4636#*#*,然后选择"手机信息": 2. 在SMSC部分点刷新按钮的话会出 ...

  6. Android手机或平板设置浏览器的UserAgent

    目录 前言 修改UserAgent实操 华为手机自带浏览器 Chrome(谷歌浏览器) QQ浏览器 UC浏览器 360浏览器 前言 移动互联网盛行的当下,网页在电脑端和移动设备(包括手机,平板以及一些 ...

  7. android手机电话铃声设置,安卓手机铃声怎么设置

    网上有很多安卓手机铃声的设置教程,说什么SD卡里建立这个那个的文件夹,那问题是怎么才能进到SD卡里去建立文件夹啊?手机里哪个选项里进去呢? 这里小编告诉你,可以通过电脑连接数据线管理SD卡.下面介绍两 ...

  8. uni-app开发之调用android手机应用信息设置

    文章目录 业务场景 一.uni-app提供的api 二.插件库 业务场景 app开发需要获取位置操作权限. 一.uni-app提供的api uni-app提供了调起客户端小程序设置界面的api:uni ...

  9. Charles4.6.2版本手机抓包设置,抓包失败的解决方法详解

    一.Charles手机抓包设置 第一步:设置Charles为允许状态,并设置好接入的接口 在Charles的菜单栏选择"Proxy"->"Proxy Setting ...

最新文章

  1. IE8下不识别indexOf的问题
  2. Go中协程间通信的方式Sync.Cond
  3. 015_html注释
  4. 圣殿骑士-移民结婚了,而且很年轻~
  5. 插件架构的原理及实现探讨
  6. #敏捷个人# 第二批敏捷个人推广者实践团报名
  7. 读取iOS plist文件 (其实类似读取xml文件)
  8. 表达回填字体颜色_使用Python创建标注表达式
  9. Bailian2764 数根(POJ NOI0113-50)【数论】
  10. zookeeper 日志查看_zookeeper 安装和集群配置
  11. AutoIt:工具栏中没有其它工具,eg,Koda
  12. order by 升序和降序排列显示
  13. intel服务器芯片组C,Intel C232芯片组 华硕P10S-C售2399元
  14. KK 的99 条额外的建议[翻译]#yyds干货盘点#
  15. Oracle 19c VLDB and Partitioning Guide 第2章:Partitioning Concepts 读书笔记
  16. 攻心为上,俘获人心的商业推广软文这样写
  17. 利用conda创建、激活和删除新环境。
  18. 北大计算机陈鹏,陈鹏-北京语言大学人事处
  19. 【渝粤教育】电大中专计算机职业素养 (9)作业 题库
  20. 天津大学计算机专业推免加分细则,天津大学计算机科学与技术学院(专业学位)计算机技术保研细则...

热门文章

  1. 德国奔驰、博世和保时捷的员工年薪有多少?
  2. 异形布局 canvas画龙
  3. PDFsharp使用介绍
  4. postman批量调用接口操作步骤
  5. [业务知识] 深入了解医联体和医共体
  6. 为什么用手机拍摄电脑屏幕时会出现波纹?终于明白了!
  7. 五一节日马上到来,大数据已经万事俱备,只欠东风?
  8. [ODBC Driver 18 for SQL Server]SSL 提供程序: 证书链是由不受信任的颁发机构颁发的
  9. 大数据和机器学习,对我们商业和生活的影响
  10. win7cmd闪退_Win7运行bat批处理闪退怎么解决?