原文转载自 云在千峰:http://yunfeng.sinaapp.com/?p=431#ixzz25SypV68R

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目录则方便用户以后查找该文件,当然 如果你希望用户需要通过启动您的程序来查看他们下载的文件,您也可以不这么做 ^_^。

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



原文转载自 云在千峰:http://yunfeng.sinaapp.com/?p=431#ixzz25Syn0EQw

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. android 使用私有maven仓库发布、打包、引用
  4. Android中的Button自定义点击效果
  5. 关于Android(安卓)混淆的内容总结
  6. android 9.0 SD卡权限问题 文件管理器没有权限
  7. Android(安卓)Button 点击时替换背景颜色和替换当前图标
  8. Android(安卓)网络权限配置
  9. Android(安卓)DEX安全攻防战

随机推荐

  1. WebKit For Android
  2. android常用控件(三)- ProgressBar、ListVi
  3. Android 开发学习中 各种问题收集
  4. 【Android】AndroidStudio无法创建原生模
  5. android 设置EditText只能输入大写字母,F
  6. android手机安装busybox步骤
  7. android的View的大小写字母问题
  8. Android UI开发神兵利器之Android Asset
  9. android:persistent
  10. Android如何从服务器获取图片