我正在考虑使用uri.getPath()。 但是由于我在网上看到的代码片段,我有点困惑,如下所示。在该示例中,作者首先尝试以不同的方式检索图像。
所以我想知道使用uri.getPath()是否存在一些严重的性能缺点? (或者他为什么不简单地跳过媒体商店部分?)
/**
* helper to retrieve the path of an image URI
*/
public String getPath(Uri uri) {
// just some safety built in
if( uri == null ) {
// TODO perform some logging or show user feedback
return null;
}
// try to retrieve the image from the media store first
// this will only work for images selected from gallery
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
if( cursor != null ){
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
// this is our fallback here
return uri.getPath();
}