我从 Android 开发者页面复制了代码。 我在这里读了很多关于 onActivityResult 未触发的帖子。这些场景都不适合我。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_TAKE_PHOTO && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
mImageView = (ImageView)findViewById(R.id.imageView);
mImageView.setImageBitmap(imageBitmap);
}
}
static final int REQUEST_TAKE_PHOTO = 1;
private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
File photoFile = null;
try {
photoFile = createImageFile();
} catch (IOException ex) {
}
if (photoFile != null) {
Uri photoURI = Uri.fromFile(photoFile);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
}
}
最佳答案
当我写这个时;
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
onActivityResult() 的 Intent 返回 null。所以,实际上并不是 onActivityResult() 没有被调用。是关于onActivityResult中传入的intent返回null。
所以,我刚刚删除了 putExtra() 方法,现在工作正常了。
关于java - Intent 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40864070/