android 选择文件uri转路径

网上找的方法Android13 14都没问题 Android10不行。
对华为畅享20 nova7 适配。

选择音频文件

    private ActivityResultLauncher<String[]> mFilePicker;
    mFilePicker.launch(new String[]{"audio/*"});  //跳转文件选择器

/回调
    mFilePicker = registerForActivityResult(new ActivityResultContracts.OpenMultipleDocuments(), new ActivityResultCallback<List<Uri>>() {
            @Override
            public void onActivityResult(List<Uri> result) {
                if (result != null && !result.isEmpty()) {
                    // 处理选择的文件

                    if (result.get(0) != null) {
                        String str = new UriToPath().getRealPathFromURI(CleanEventAddCallbackSaveActivity.this, result.get(0));
                        QUtils.out("文件路径" + str);
    

                    }
                } else {
                    // 用户取消了文件选择操作
                }
            }
        });
               

//URI转路径工具类


public class UriToPath {
    public String getRealPathFromURI(Context context, Uri uri) {
        // 检查是否是文档类型的URI

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            return uriToFileApiQ(context, uri);
        } else {
            return getRealPathUri(context, uri);
        }

    }


    public String getRealPathUri(Context context, Uri uri) {
        if (DocumentsContract.isDocumentUri(context, uri)) {
            // 如果是外部存储的文档
            if (isExternalStorageDocument(uri)) {
                // 外部存储的直接路径
                final String docId = DocumentsContract.getDocumentId(uri);
                final String[] split = docId.split(":");
                final String type = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值