Android 文件绝对路径和Content开头的Uri互相转换

Android 文件绝对路径和Content开头的Uri互相转换,第1张

工作中遇到的问题。拍照获取图片后是得到的路径

但是我想要的路径是:

这种 Uri类型的

查阅资料找到如下方法

转Uri

Uri转绝对路径

绝对路径转Uri的那个方法 目前是图片文件的转换 转其他文件 只要把content后面的目录换成对应文件的归属目录就行了。。

近期在部分安卓手机中获取文件,发现部分安卓手机的uri路径中返回的不是 content://media/extenral/images/media/17766 这种常规类型的 地址

而是返回的是content://media/extenral/images/media/raw:/storage/emulated/0/Download/my_file.pdf 类似这种的地址

这样在咱们常用的获取地址中就会报错了 java.lang.NumberFormatException' Exception

解决方法

修改isDownloadsDocument(uri) 中的方法按下述方法进行修改就完美解决了

方法1、用URLDecode解码就可以了。

String code = "D:/%e5%ad%a6%e6%b5%b7/My%20Course/%e8%ae%a1%e7%ae%97%e4%b8%8e%e8%bd%af%e4%bb%b6%e5%b7%a5%e7%a8%8b/Java%20workspace/my Project/bin/"

try{

String src=URLDecoder.decode(code,"UTF-8")//注意编码和输入时一致

System.out.print(src)

}catch (UnsupportedEncodingException e){

e.printStackTrace()

}

======

显示:

D:/学海/My Course/计算与软件工程/Java workspace/my Project/bin/

方法2:URI有自己的getPath方法,直接返回的就是解码后的路径

比如System.out.print(url.getPath())


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11695792.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存