我有一个应用程序,可以与图库共享图像。 当我共享一张图片时,我得到了以下代码:
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} }。
我仍然找不到解释之间的区别,或者如何将它们转换为另一种,或者是否有更好的方法来解释。