Android SDcard

最近做个音乐播放器的项目,其中全盘扫描功能,通过扫描手机根目录下的文件路径(过滤掉系统目录)完成歌曲扫描。但是在4.1系统的手机歌曲被扫描的两次,确认歌曲只保存了一份。

仔细查看android系统根目录(\)下的文件夹:

4.1以下版本:

系统目录下存在两个sdcard,也就是储存卡。mnt是安卓unix传统系统下挂载外部设备的专用目录,mnt/sdcard是实际的文件所在的地方,/sdcard是mnt/sdcard的虚拟或快捷方式。

4.1以前,/sdcard是个link文件,链接到实际的/mnt/sdcard的。

4.1及以上版本:

系统中修改了sdcard的真实路径:“/storage/sdcard0”,以后可能还会有多个SDcard的情况。

目前为了保持和之前代码的兼容,sdcard路径做了link映射,/sdcard 和 /mnt/sdcard 都是link 到 /storage/sdcard0 的。


  为了使您的代码更加健壮并且能够兼容以后的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目录则方便用户以后查找该文件。当然,如果你希望用户需要通过启动您的程序来查看他们下载的文件,您也可以不这么做 ^_^。
在使用这些目录保存文件的时候,需要注意一点:其他程序也有可能在使用这些目录,在保存文件前,注意判断下文件是否已经存在,不要覆盖了用户之前的数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值