Android 使用 MediaStore

标签 android gallery mediastore

如何打开存储在图库中的文件?我用这种方法把我的文件放在那里:

MediaStore.Images.Media.insertImage()

根据文档,它将 String url 返回到新创建的文件。但是,当我尝试打开此文件时,它失败了。获取文件未找到异常。

我错过了什么?有什么想法吗?

最佳答案

它返回 String url 或内容 uri 字符串。要从 uri 获取实际文件路径,您需要使用类似

protected String convertMediaUriToPath(Uri uri) {
    String [] proj={MediaStore.Images.Media.DATA};
    Cursor cursor = getContentResolver().query(uri, proj,  null, null, null);
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    String path = cursor.getString(column_index); 
    cursor.close();
    return path;
}

您可以使用 Uri.parse(url);

将获得的字符串 url 转换为 Uri

关于Android 使用 MediaStore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17030429/

相关文章:

android - 一旦应用程序运行并出现错误 ClassNotFoundException : Didn't find class application on path: DexPathList,应用程序立即崩溃

c# - 如何使用字符串 JSON 响应压缩 ASMX 数据(C# Web 服务)

html - 在列表内联中显示图像

ios - 如何快速刷新照片库?

android - 如何检测是否正在 Android 上运行新媒体文件扫描(在后台)

android - 如何增加 android chronometer 的文字大小?

android - 使用 Picasso 从内部存储加载图像

java - 我无法从我的图库中选择图像进行上传(android studio)

mediastore - SDK-29 上的 MediaScanner 和 ScopedStorage

android - 我怎样才能让这个 MediaStore 代码在 API 11 以下工作?