Java 从Android中的URI获取文件路径时出错
这是一段返回给定URI的文件路径的代码Java 从Android中的URI获取文件路径时出错,java,android,file,uri,Java,Android,File,Uri,这是一段返回给定URI的文件路径的代码 public String getPath(Uri uri) { String[] projection = { MediaStore.Images.Media.DATA }; //String[] projection = { MediaColumns.DATA }; Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
//String[] projection = { MediaColumns.DATA };
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaColumns.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
这适用于Gallery中的图像,因为投影是MediaStore.images。如何获取所有其他目录的文件路径?文件可以是文档类型,也可以位于sd卡的任何位置。我应该搜索文件路径的哪个投影?问题就在这里。它只检查
图像中的投影。所以,如果文件的类型不同,您将无法获得路径<将返回代码>异常
。此外,最好使用:
int column_index = cursor.getColumnIndex(MediaColumns.DATA);
并使用onw
try catch
块。这将防止你的应用程序崩溃谢谢!我已经解决了。这就是我所做的,还有一些其他的小调整,使它工作:)