Android Uri和文件路径互相转换

这篇笔记详细介绍了在Android中如何进行Uri和文件路径的互相转换,针对4.4及以上版本提供了有效的方法。在Uri转文件路径时,注意兼容性问题;而在Android 7.0以上,文件路径转Uri时,由于FileUriExposedException,推荐使用FileProvider来避免错误。
摘要由CSDN通过智能技术生成

在调用系统相机、相册时,经常需要进行Uri和File路径的互相转换,这里做个笔记方便日后查看。

Uri转文件路径

网上有不少方法,但是有的对4.4后的版本无效,这里的方法可以在4.4之后的版本将Uri转换为绝对路径。
​ ​

public class GetPathFromUri {
/**
 * 专为Android4.4设计的从Uri获取文件绝对路径
 */
public static String getPath(final Context context, final Uri uri) {

    final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;

    // DocumentProvider
    if (isKitKat && DocumentsContract.isDocumentUri(context, uri)) {
        // ExternalStorageProvider
        if (isExternalStorageDocument(uri)) {
            final String docId = DocumentsContract.getDocumentId(uri);
            final String[] split = docId.split(":");
            final String type = split[0];

            if ("primary".equalsIgnoreCase(type)) {
                return Environment.getExternalStorageDirectory() + "/" + split[1];
            }
        }
        
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值