我正在拼命尝试将捕获的视频发送到服务器。问题是内置相机应用程序提供的URI不是真正的文件路径。它看起来像这样 - /content:/media/external/video/media/19
。
如何直接从这种URI访问真实路径或数据?
在阅读了android文档之后,我看到它看起来像是内容提供者的符号,但我仍然不知道如何获取我需要的数据。请帮忙!!!
提前致谢
答案 0 :(得分:3)
如何直接从这种URI访问真实路径或数据?
你没有。它可能不作为文件存在。或者,它可能不会作为您可以阅读的文件存在,除非通过ContentProvider
。
相反,使用ContentResolver
在InputStream
上打开Uri
,然后使用InputStream
将数据传输到服务器。
答案 1 :(得分:1)
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();
}
}
}