点击打开链接:http://yunfeng.sinaapp.com/?p=431#ixzz22SY9TMOy

Android获取存储卡路径的方式

Android Lint 有个关于在代码中硬编码“sdcard”路径的警告,内容为:

不要硬编码(hardcode) “/sdcard/”; 使用 Environment.getExternalStorageDirectory().getPath() 替代sdcard路径

详情参考: http://developer.android.com/guide/topics/data/data-storage.html#filesExternal

以前的Android(4.1之前的版本)中,SDcard跟路径通过“/sdcard”或者“/mnt/sdcard”来表示,而在Jelly Bean系统中修改为了“/storage/sdcard0”,以后可能还会有多个SDcard的情况。目前为了保持和之前代码的兼容,sdcard路径做了link映射。
为了使您的代码更加健壮并且能够兼容以后的Android版本和新的设备,请通过Environment.getExternalStorageDirectory().getPath()来获取sdcard路径,如果您需要往sdcard中保存特定类型的内容,可以考虑使用Environment.getExternalStoragePublicDirectory(String type)函数,该函数可以返回特定类型的目录,目前支持如下类型:

  • DIRECTORY_ALARMS //警报的铃声
  • DIRECTORY_DCIM //相机拍摄的图片和视频保存的位置
  • DIRECTORY_DOWNLOADS //下载文件保存的位置
  • DIRECTORY_MOVIES //电影保存的位置, 比如 通过google play下载的电影
  • DIRECTORY_MUSIC //音乐保存的位置
  • DIRECTORY_NOTIFICATIONS //通知音保存的位置
  • DIRECTORY_PICTURES //下载的图片保存的位置
  • DIRECTORY_PODCASTS //用于保存podcast(博客)的音频文件
  • DIRECTORY_RINGTONES //保存铃声的位置

如果您的应用需要下载以上类型的文件,者可以放到上面对应的目录中去来帮助用户查找,比如最常用的就是下载文件了。如果您开发了一个浏览器,在下载文件的时候把文件下载到Download目录则方便用户以后查找该文件,当然 如果你希望用户需要通过启动您的程序来查看他们下载的文件,您也可以不这么做 ^_^。

在使用这些目录保存文件的时候,需要注意一点:其他程序也有可能在使用这些目录,在保存文件前,注意判断下文件是否已经存在,不要覆盖了用户之前的数据。

更多相关文章

  1. android中wifi输入的密码保存的路径
  2. 在android上滚动时,列表视图的位置会发生变化
  3. DialogFragment自定义dialog的位置和大小
  4. android里通过什么什么事件可以拿到由于click后的EditText的光标
  5. android 打开系统相册得到路径 上传图片到php服务器
  6. 错误:警告:无法从javaldx读取路径
  7. java项目中Classpath路径到底指的是哪里?
  8. 如何将树路径转换为json对象
  9. Java - 获取ClassPath的路径和资源

随机推荐

  1. CentOS6.9yum安装nginx+php7+mysql环境
  2. linux安装apache/mysql/php的最新完整方
  3. 高性能Mysql——创建高性能的索引
  4. Mysql语句 AND 和 OR 的运用
  5. jsp+tomcat+mysql配置全过程 和mys
  6. 如何从mysql datetime列返回转换后的时间
  7. 通达OA 同步中控考勤机 增强版
  8. MAC 环境下初始化mysql root 密码
  9. Mysql迁移由于字符集导致乱码的数据
  10. [MySQL] 高可用架构MMM简单介绍