我正在使用Android的DownloadManager
课程。单击“下载的文件”通知后,它会以Uri
方案返回content://
。我有一个方法,现在只能使用文件Uris打开文件(使用“文件”方案)。从内容Uri获取File file
的最简单方法是什么?欢迎任何例子。
public PlsReader(URI path) {
File file = new File(path);
}
答案 0 :(得分:0)
使用Context#getContentResolver().openInputStream(uri)
从Uri获取InputStream。
或使用Context#getContentResolver().openFileDescriptor()
获取ParcelFileDescriptor。然后使用ParcelFileDescriptor#getFileDescriptor()
获取FileDescriptor。
答案 1 :(得分:-2)
试试这个 获得的第一种方法是
Uri.getPath();
这将给出任何文件的完整绝对路径
和第二种方法如下
Strinf absolutepath = getRealPathFromURI(this,URI);
和方法getRealPathFromURI在这里
public 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();
return cursor.getString(column_index);
} finally {
if (cursor != null) {
cursor.close();
}
}
}
然后将此绝对路径字符串传递给您的文件
public PlsReader(String absolutepath ) {
File file = new File(absolutepath );
}
祝你好运。)