我尝试了一种运行良好的解决方案(请参见下文),但在Android 4.4中,该调用调出startActivityForResult()了一个名为“打开自”的活动,该活动包含“最近”,“图像”,“下载”以及可供选择的多个应用。当我选择“图像”并尝试解析返回的内容URI(使用下面的代码)时,调用cursor.getString()返回null。如果我使用Gallery应用程序选择了完全相同的文件,则cursor.getString()返回文件路径。我只在API级别16和19中对此进行了测试。一切都可以在16中按预期进行。就19而言,我必须选择Gallery或其他应用程序,否则它将不起作用。
private String getRealPathFromURI(Context context, Uri contentUri) {
Cursor cursor = null;
try {
String[] proj = { MediaStore.Images.Media.DATA };
cursor = context.getContentResolver().query(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String path = cursor.getString(column_index);
return path;
} finally {
if (cursor != null) {
cursor.close();
}
}
}
翻翻过去那场雪
森林海
相关分类