@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中的数据参数始终返回null。因此,使用文件路径而不是数据来检索图像。
也许那个解决方案对我有用。但是,我的上述代码在同一场景下一直是有效的。