FileProvider分享的Uri转成文件

代码片段  2024年7月10日 pm5:51发布5个月前更新 城堡大人
150 0 0

前言

简单记录一下FileProvider分享的Uri转出文件。

流水账而已,可以跳过。

正文

之前我们使用FileProvider分享的Uri格式如下:

content://com.biumall.file2.fileProvider/root/storage/udisk2/m4a/%E5%87%89%E5%87%89m4a.m4a

直接上代码

Uri uri = intent.getData()
if (null != uri) {
    String path = uri.getPath();
    String name = getPathName(path);
    try {
        @SuppressLint("Recycle")
        InputStream inputStream = getContentResolver().openInputStream(uri);
        byte[] buffer = new byte[inputStream.available()];
        inputStream.read(buffer);
        File targetFile = new File(getFilesDir().getPath() + "/" + name);
        OutputStream outStream = new FileOutputStream(targetFile);
        outStream.write(buffer);
        outStream.flush();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

获取文件名getPathName()

/**
* 获取文件名
**/
public String getPathName(String path) {
    String name = null;
    try {
        if (!TextUtils.isEmpty(path)) {
            int iStart = path.lastIndexOf('/');
            if (iStart != 0 && iStart < path.length()) {
                iStart++;
            }
            name = path.substring(iStart);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return name;
}

参考文章

 历史上的今天

  1. 2023: MediaScanner源码JNI介绍2(0条评论)
  2. 2021: 许立志:梦想(0条评论)
  3. 2020: [摘]Java垃圾回收机制(GC)详解(0条评论)
  4. 2019: 戴望舒 :寻梦者(0条评论)
  5. 2019: 穆旦:春(0条评论)
版权声明 1、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

Android WindowManager弹窗容易出现的问题

WindowManager弹窗提示时需要注意下,比如系统应用和非系统应用权限的不同、Android不同版本的权限申请不同等,下面是我在应用中出现的问题,因此整理一下。问题一:没有设置android.permission.SYSTEM_ALERT_WINDOW出现异常提示Unable to a...

个人常用的ListView方法简介

前言项目中ListView还是比较常用的,ListView有些方法或者配置属性都是比较常用也比较容易忘记的。因此,今天抽空整(抄)理(袭)一下,以便查阅。PS: 现在RecyclerView比较多了好记性不如烂笔头正文停止滚动 private void stopListView...

[摘]final、finally与finalize的区别

final在Java中final可以用来修饰类,方法和变量(成员变量和局部变量)。修饰类当用final修饰类时,表示该类不能被其他类继承。同时,final修饰的类中的方法和都会隐式的定义为final 方法。修饰方法final修饰的方法表示不能被重写。注意:若父类中final方法的访问...

朱湘:海外寄霓君(节选)

一霓妹,我的爱妻:你从般若庵十二月初五写的“第一封”信我收到了。我后天就要搬家,你的信可以寄到憩轩四兄第一次替你打的信封那里。我在芝加哥城里过得好些,身体也好,望你不要记挂。我到今天总共收到你八封信。你信内并不曾提到岳母大人同憩轩四兄的病,想必是都好了。你的奶水不够,务必要请奶妈子。照我如今这般...

音视频学习:AudioRecord的简单使用

前言相关文章摘抄过,但由于不是自己写的或者敲过代码,后面就忘了。本站主要简单的介绍AudioRecord的使用。好记性不如烂笔头正文Android录音的流程:构造一个AudioRecord对象,其中需要的最小录音缓存buffer大小可以通过getMinBufferSize方法得到。...

[转]android NTP时间同步

推荐使用 极客导航:极客导航(http://www.biumall.com/jike.html)相关文件:frameworks/base/services/java/com/android/server/SystemServer.javaframeworks/base/service...