当前位置: 首页 > 知识库问答 >
问题:

无法使用ACTION_PICK意图选择特定图像

姚信鸥
2023-03-14

我用的是这样的意图:

Intent intent = new Intent(Intent.ACTION_PICK,
        android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);

OnActivityResult()中,我有以下内容:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode != Activity.RESULT_OK) {
        return; // user cancelled
    }

    Uri imageUri = data.getData();
    if (imageUri == null) {
        // (code to show error message goes here)
    return;
    }

    // Get image path from media store
    String[] filePathColumn = { android.provider.MediaStore.MediaColumns.DATA };
    Cursor cursor = this.getContentResolver().query(imageUri, filePathColumn,
            null, null, null);

    if (cursor == null || !cursor.moveToFirst()) {
        // (code to show error message goes here)
        return;
    }

    int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
    String imagePath = cursor.getString(columnIndex);
    cursor.close();

    if (imagePath == null) {
        // error happens here
    }
}

当我从特定的相册中选择图像时,比如“posts”、“profile photos”(参见屏幕截图),我无法在OnActivityResult()中获取图像路径。可以从其他相册中选择图像,没有任何问题。

我尝试在OnActivityResult()中添加intent.putExtra(“return-data”,true)data.getExtras()返回null

这里也有类似的问题,但没有人回答。

请救命!

共有1个答案

茹正祥
2023-03-14

这会帮助你....

ACTIVITYRESULT_CHOOSEPICTURE是调用startActivity(intent、requestCode)时使用的int;

public void onActivityResult(int requestCode, int resultCode, Intent data) {
  if(requestCode == ACTIVITYRESULT_CHOOSEPICTURE) {
    BitmapFactory.Options options = new BitmapFactory.Options();
    final InputStream ist = ontext.getContentResolver().openInputStream(intent.getData());
    final Bitmap bitmap = BitmapFactory.decodeStream(ist, null, options);
    ist.close();
  }
}

如果上面的代码不起作用,请参考此链接...它会给我们指明方向

 类似资料:
  • 我使用以下代码从图库中选取图像。当我用三星Galaxy S4测试它时,它直接进入Gallery,这就是我真正想要的。 但是,当我在LG Optimus II设备上测试我的代码时,它会显示一个对话框,提供一个选项来选择图库或图片。换句话说,它增加了一个我不想要的层。 这两款设备都具有 KitKat 4.4.2 操作系统。

  • 编辑:我调试了应用程序,并用初始化了。这消除了错误,但是现在ImageView没有得到更新,但是当我从Gallery中选择image时,它已经更新了。

  • 嗨,我想从特定文件夹中获取图像。现在我使用此代码: 现在,有了这个uri,我看到了最近的,我必须手动打开文件夹。我尝试设置uri。用我的文件夹路径解析输入,但我还是得到了我最近的。如何自动打开文件夹?

  • 嗨,我一直在做量角器测试,我的测试有问题。我的ionic应用程序确实有一个具有模型名称的下拉列表,我试图使用模型名称访问它,它可以工作,但问题是它无法选择我需要从该下拉列表选项中选择的确切选项。它只选择第一个?我这样写了量角器语法。 但是这段代码选择的不是值59,而是值0,这是默认选项。有人能帮我吗?

  • 我很难用Selenium IDE在我的网页上选择特定的下拉菜单。下拉列表的html代码如下: 此控件的功能非常好。但Selenium IDE似乎无法选择它。Selenum命令行如下: 我收到以下错误消息: [错误]指定的元素不是Select(没有选项) 然后,我尝试使用以下命令验证下拉列表的文本: 我收到以下错误消息: [错误]实际值“”与“新信息更改数据抄录错误其他”不匹配 我不明白发生了什么事

  • 目前,我创建了一个具有相机功能的应用程序,该功能允许用户选择其图像或进行捕获。我从 https://stackoverflow.com/a/22165449/5261462 那里得到了教程。但是我希望将所选图像意图发送到另一个页面,而不仅仅是显示在imageView上。图像需要修复屏幕,并且可以在下面添加标题,如whatsapp。 这是我目前为止尝试过的。 一切都从 Project1 开始.jav