与应用程序共享图像时获取不同类型的uri

时间:2018-09-11 17:51:57

标签: java android image uri filepath

我有一个应用程序,可以与图库共享图像。 当我共享一张图片时,我得到了以下代码:

    imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
            if (imageUri != null) {
                filePath = null;
                if (imageUri != null && "content".equals(imageUri.getScheme())) {
                    Cursor cursor = this.getContentResolver().query(imageUri, new String[]{android.provider.MediaStore.Images.ImageColumns.DATA}, null, null, null);
                    cursor.moveToFirst();
                    filePath = cursor.getString(0);
                    cursor.close();
                } else {
                    filePath = imageUri.getPath();
                }
}

将uri从“ external / images / media / 3000”之类的内容转换为实际的文件路径。

当与应用程序共享多图像时,Intent.EXTRA_STREAM是一个URI数组,而不是一个URI,因此将它们分开,我将整个数组作为一个字符串,将其分成另一个字符串数组。 URI,然后对每个单元格执行一个URI.parse()并尝试重复对单个URI完成的过程。 这是行不通的,当我试图弄清为什么我发现单个URI的类型(通过imageUri.getClass().getName())是android.net.uri$HierarchicalUri时,我解析为URI的multipul字符串是{{1} }。

我仍然找不到解释之间的区别,或者如何将它们转换为另一种,或者是否有更好的方法来解释。

0 个答案:

没有答案