android – onActivityResult返回图像捕获的空数据

前端之家收集整理的这篇文章主要介绍了android – onActivityResult返回图像捕获的空数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    filePath = getOutputMediaFile(FileColumns.MEDIA_TYPE_IMAGE);
    File file = new File(filePath);
    Uri output = Uri.fromFile(file);
    Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    i.putExtra(MediaStore.EXTRA_OUTPUT,output);
    startActivityForResult(i,RETURN_FILE_PATH);
}

    @Override
protected void onActivityResult(int requestCode,int resultCode,Intent data) {
    super.onActivityResult(requestCode,resultCode,data);

    //data is always null here.
    //requestCode = RETURN_FILE_PATH;
    //resultCode = Activity.RESULT_OK;
}

我检查了文件输出Uri的值,两者都很好,捕获的图像实际上存在于该位置.

但是,即使在捕获图像之后,onActivityResult中返回的数据也始终为null.

编辑:

我查了这个问题:

onActivityResult returns with data = null

其中说:

Whenever you save an image by passing EXTRAOUTPUT with camera intent
the data parameter inside the onActivityResult always return null. So,
instead of using data to retrieve the image,use the filepath to
retrieve the Bitmap.

也许这个解决方案对我有用.但是我的上述代码到目前为止是一个工作代码.

解决方法

根据此 post数据在您预先插入uri时为null.这意味着您已经在此处定义了输出uri:
i.putExtra(MediaStore.EXTRA_OUTPUT,output);

所以当你得到一个Activity.RESULT_OK;只需通过其已知网址加载拍摄的照片.

猜你在找的Android相关文章