【发布时间】:2015-09-29 11:22:48
【问题描述】:
我正在使用片段中的相机意图拍照。在某些设备上它可以完美运行,但在某些设备上,我的片段在拍照后会关闭。
这是我调用相机意图的代码:
Intent picIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
getActivity().startActivityForResult(picIntent, Constants.TAKE_PICTURE_SIGN_UP);
这是我的 MainActivity 的 onActivityResult:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == Constants.TAKE_PICTURE_SIGN_UP || requestCode == Constants.SELECT_PICTURE_SIGN_UP)
{
SignUpFragment frag = (SignUpFragment)getSupportFragmentManager().findFragmentByTag(Constants.SignUpFragmentTag);
if(frag != null && frag.isVisible())
{
frag.onActivityResult(requestCode, resultCode, data);
}
}
}
当我从图库中选择图片时,它可以正常工作,但是当我从相机碎片中拍照时,它是空的。是什么原因导致这里出现问题以及如何解决?
【问题讨论】:
-
您在使用 ChildFragmentManager 吗?因为在某些设备上,如果片段是 ChildFragment 并且 onActivityResult 被关闭片段的主 Activity 捕获,则 onActivityResult 无法正常工作
-
protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) { Bitmap photo = (Bitmap) data.getExtras().get("数据”); imageView.setImageBitmap(照片); } }
-
我正在使用 SupportFragmentManager。由于片段有 1 个父活动,即 MainActivity。在从图库中选择图片时,我能够找到片段标签,但在从相机拍照时 findFragmentByTag 返回 null。 @DarioPicco
-
这只是 Activity getting Destroyed after calling Camera Intent 现象的另一个例子。这有时可能会发生,在某些设备上比在其他设备上更频繁。修复是实现实例状态的保存/恢复。有关代码 sn-ps,请参阅 this answer。
-
@MianAzhar 嗨,你有什么解决办法吗? M 面临同样的问题。
标签: android android-fragments android-intent camera