【问题标题】:Uri Returns null in onActivityResultUri 在 onActivityResult 中返回 null
【发布时间】:2017-05-23 09:47:39
【问题描述】:

我正在做一个需要将图像转换为 pdf 的模块。我已经成功实现了相机并且可以显示它的图像。但我的问题是获取该图像的 uri。我在 StackOverflow 中看到了一个代码 sn-p 并遵循它,但它返回 null。

这是我的示例代码:

            @Override
        public void onClick(View v) {
            Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(cameraIntent, CAMERA_REQUEST);
        }
    });
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
        Bitmap photo = (Bitmap) data.getExtras().get("data");
        imageView.setImageBitmap(photo);
        uri = data.getData();

        if(uri == null)
        {
            tvUri.setText("null");
        }else{
            tvUri.setText(uri.toString());
        }

    }
}

为了测试它是否为空,我继续将 textview 设置为它的值,如果它有一个,但如果没有,那么我将它设置为空。

【问题讨论】:

标签: android uri


【解决方案1】:
protected void onActivityResult(int requestCode, int resultCode, Intent intent)
{
    Uri u = intent.getData();
}

【讨论】:

  • 这就是我所做的。仍然为空
  • 通过添加断点和调试来检查它,然后你就会知道数据是否可用。
  • 来自审核队列:我可以请求您在源代码周围添加一些上下文。仅代码的答案很难理解。如果您可以在帖子中添加更多信息,这将对提问者和未来的读者都有帮助。
【解决方案2】:

试试这个

uri = data.getExtras().get("data");

而不是

uri = data.getData();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 2013-08-09
    相关资源
    最近更新 更多