andorid 获取系统分享进来uri(vcf文件)

2019-08-09  本文已影响0人  Pino
/**
     * @Author Peng
     * @Date 2019/8/9 14:46
     * @Describe 根据uri 把数据写入vcf文件
     */
    public String getPathByUri(Uri contentUri) {
        String path = Environment.getExternalStorageDirectory().toString() + File.separator + fileName;
        AssetFileDescriptor fd;
        try {
            fd = this.getContentResolver().openAssetFileDescriptor(contentUri, "r");
            // 根据uri转化文件流形式
            FileInputStream fis = fd.createInputStream();
            byte[] data = new byte[1024 * 1];
            // 创建一个向指定 File 对象表示的文件中写入数据的文件输出流。
            FileOutputStream fout = new FileOutputStream(path, false);
            int len = -1;
            // 读取fis的流数据,写入到文件的流当中
            while ((len = fis.read(data)) != -1) {
                //把转化后的流写到vcf文件中
                fout.write(data, 0, len);
            }
            return path;
        } catch (Exception e1) {
            e1.printStackTrace();
        }
        return null;
    }
    /**
     * @Author Peng
     * @Date 2019/8/9 14:49
     * @Describe 根据uri获取文件名
     */
    private String getRealPathFromURI(Uri contentUri) {
        Cursor cursor = getContentResolver().query(contentUri, null, null, null, null);
        int columnCount = cursor.getColumnCount();
        Log.e("tage", columnCount + "");
        if (cursor.moveToNext()) {
            String textName = cursor.getString(cursor.getColumnIndex("_display_name"));
            return textName;
        }
        cursor.close();
        return null;
    }

// 使用方式
String filePath=getPathByUri(uri);
Log.e("TAG","文件路径:"+filePath);
上一篇下一篇

猜你喜欢

热点阅读