【发布时间】:2013-07-23 13:00:54
【问题描述】:
@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;
}
我检查了 file 和 output Uri 的值,两者都很好,并且捕获的 图像实际上存在于该位置。
但是onActivityResult中返回的数据即使在捕获图像之后也始终是null。
编辑:
我检查了这个问题:
onActivityResult returns with data = null
上面写着:
每当您通过带有相机意图的 EXTRAOUTPUT 来保存图像时 onActivityResult 中的 data 参数总是返回 null。所以, 而不是使用数据来检索图像,而是使用文件路径来 检索位图。
也许该解决方案对我有用。但到目前为止,我的上述代码对于相同的场景来说是一个有效的代码。
【问题讨论】: