关于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的填充

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值