没有从Android照片应用程序获取图像

时间:2016-08-02 07:03:53

标签: android android-gallery android-image-capture

我在SO herehere中看到了类似的问题。

但这些仍然没有解决我的问题,所以我发布了一个新问题。

以下是获取照片应用中所选图片路径的代码。但是我没有得到cursor.getColumnIndexOrThrow(列);值为 0 ,cursor.getString(column_index)值为 null

Cursor cursor = null;
        final String column = "_data";
        final String[] projection = {
                column
        };

        try {
            cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs,
                    null);
            if (cursor != null && cursor.moveToFirst()) {
                final int column_index = cursor.getColumnIndexOrThrow(column);
                return cursor.getString(column_index);
            }
        } finally {
            if (cursor != null)
                cursor.close();
        }

任何人都可以帮我解决这个问题。如果我的问题太广泛,请告诉我。我会更新我的问题。

更新 开始意图:

Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setType("image/*");
startActivityForResult(Intent.createChooser(intent, getString(R.string.selectPhoto)), RESULT_LOAD_IMAGE);
onActivityResult:

if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {

    String[] projection = {MediaStore.Images.Media.DATA};
    Cursor cursor = getContentResolver().query(contentURI, projection, null, null, null);
    if (cursor == null) {
          return contentURI.getPath();
    } else {
        cursor.moveToFirst();
        int idx = cursor.getColumnIndex(projection[0]);
        return cursor.getString(idx);
    }
}

此致

1 个答案:

答案 0 :(得分:0)

用户以下代码

FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Validation error",  "Value is required");