android 打开文件管理器选择文件上传 uri转绝对路径 得到file文件

本文介绍了在Android应用中如何打开文件管理器,让用户选择文件,并详细讲解了如何将选中文件的URI转换为绝对路径,以便进行后续的文件操作。
摘要由CSDN通过智能技术生成

1 打开文件管理器

            val intent = Intent(Intent.ACTION_GET_CONTENT)
            intent.type = "*/*"//设置类型,我这里是任意类型,任意后缀的可以这样写。
            intent.addCategory(Intent.CATEGORY_OPENABLE)
            startActivityForResult(intent, 120)

2 文件选择回调

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == 120 && resultCode == RESULT_OK) {
            val uri = data?.data
            if (Uri2PathUtil.getRealPathFromUri(this, uri) != null) {
                //从uri得到绝对路径,并获取到file文件
                val file = File(Uri2PathUtil.getRealPathFromUri(this, uri))
                uploadFileViewModel.uploadHead(file)
            } else {
                LogUtils.e("获取文件失败")
            }
        }
    }

3 工具类 uri转绝对路径


import android.annotation.TargetApi;
import android.content.ContentUris;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.provider.DocumentsContract;
import android.provider.MediaStore;

import androidx.loader.content.CursorLoader;

public class Uri2PathUtil {

    //复杂版处理  (适配多种API)
    public static String getRealPathFromUri(Context context, Uri uri) {
        int sdkVersion = Build.VERSION.SDK_I
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值