关于android 4.2版本后的多用户目录结构分析(二)- /storage/sdcard0设定铃声失败

关于android 4.2版本的sdcard文件目录分析(含修正)中对4.2版本的android的目录结构进行了简单的分析,但随着测试的深入,越来越发现有些问题,整理如下(是上面的补充)


在android 4.2版本中,通过adb和自己的写文件方法(项目是手机助手),上传图片文件1.jpg,虽然指定目录是/storage/sdcard0/image/1.jpg,但通过debug显示首先获得的上传成功的路径是/storage/emulated/legacy/image/1.jpg,然后系统又自行copy了份到指定的目录/storage/sdcard0/image/1.jpg,通过ContentProvider获得的image时,明显感觉到会有2个1.jpg,而且/storage/emulated/legacy/image/1.jpg会先出现(虽然不是指定目录),虽有瑕疵,但也无所谓了,可以通过过滤显示其中之一,另一份可以删除,当然给用户看来说,也可以使用假的目录,只使用第一种就行


但问题很快就来了,虽然可以通过上面的过滤显示,设置壁纸可以成功,但若上传的music设定铃声时就会有问题,同样会有两份音乐显示(同image),因为为了获取音乐,手机端的默认路径已经将/storage/emulated/0改为了/storage/sdcard0(因为前面的路径/storage/emulated/0不能写入,只能读取),但设置铃声时,使用的URI只能使用/storage/emulated/0的路径而不能使用/storage/sdcard0作为URI的路径进行设置,所以要进行转换即可,即设定铃声时使用/storage/emulated/0模式的路径作为URI的填充

发布了42 篇原创文章 · 获赞 9 · 访问量 173万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览