获取给定路径的光标

时间:2016-09-05 20:40:25

标签: android sql uri android-contentresolver

我的uri对象包含图像的真实路径。我知道我们需要在查询时使用选择字符串,但我在sql上很糟糕。

如何让光标代表该图像?

这是我DTO的投影字符串。

  String[] projection = {
            MediaStore.Images.ImageColumns._ID,
            MediaStore.Images.ImageColumns.DISPLAY_NAME,
            MediaStore.Images.ImageColumns.DATA,
            MediaStore.Images.ImageColumns.WIDTH,
            MediaStore.Images.ImageColumns.HEIGHT,
            MediaStore.Images.ImageColumns.MIME_TYPE};

Uri从裁剪库返回。

 @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK && requestCode == UCrop.REQUEST_CROP) {
        final Uri resultUri = UCrop.getOutput(data);
    } else if (resultCode == UCrop.RESULT_ERROR) {
        final Throwable cropError = UCrop.getError(data);
    }
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

通常,Uri不必表示文件系统上的文件,更不用说有一个可以确定的路径,更不用说是一个可以访问的文件了。

对于方案为Uri的{​​{1}},file返回文件的文件系统路径。但是,您可能无法通过文件系统读取或写入该文件(尽管这表示创建getPath()并将其提供给您的人员编码错误。)

对于任何其他类型的Uri - 最常见的是具有Uri方案的那些 - 无法确定文件系统路径,因为不要求内容是普通文件。它可能是加密文件,存储在数据库中content列中的内容,要从网络下载的内容,或无数其他模式。