无法从android中获取URI的文件路径M
我正在测试nexus 5上的应用程序,它有Android的棉花糖版本。我看了几种方法从uri获取文件路径,但一直返回null。这种方法适用于果冻豆,也适用于kitkat,但不适用于棉花糖。无法从android中获取URI的文件路径M
public String getPath(Uri uri) {
Log.d(TAG,"Uri GET PATH "+uri);
String[] projection = {MediaStore.Images.Media.DATA};
Cursor cursor = context.getContentResolver().query(uri, projection, null, null, null);
Log.d(TAG,"Cursor value "+cursor);
int Column_Index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
Log.d(TAG,"Column Index "+Column_Index);
cursor.moveToFirst();
String ImagePath = cursor.getString(Column_Index);
Log.d(TAG,"ImagePath of "+ImagePath);
cursor.close();
return ImagePath;
}
我也试过thisthis也这么多的人,但是从URI获取文件路径始终为空。
从意向乌里回报:内容:// com.android.providers.media.documents /文档/图片%3A2304`
我看着几个方法从URI获取文件路径,但所有的它返回空值
没有文件路径。 A Uri
不是一个文件。
使用ContentResolver
和openInputStream()
得到Uri
标识的内容InputStream
。直接使用InputStream
,或者在您控制的某个文件(如getCacheDir()
)上使用它和FileOutputStream
将内容复制到文件中,然后使用生成的文件。
但我正在越来越文件路径kitkat和以下的Android版本 – Ritu
@Ritu:对于一些设备型号,以及在这些设备型号的一些应用程序,也许。但是,您的方法从来不可靠,而且在较新的设备上不常用。 – CommonsWare
那么我怎样才能使代码适合所有设备和操作系统版本 – Ritu
你想要什么文件Uri?从相机?从画廊? –
从相机,也从画廊 – Ritu