我有一个问题,当我用startActivityForResult拍照时,如果有两个或多个可以处理该意图的相机应用程序出现,则resultCode始终是Activity.RESULT_CANCELED(0)。但是,如果我将其中之一设置为默认应用程序,而下次它不向我提供选择器,则一切正常,它将拍照并在启动startActivityForResult()的片段的onActivityResult中检测到它。 当我尝试打开图库以选择图片时,也会发生同样的事情。如果有两个图库应用程序,则选择其中一个,图片选择结果始终为0。 这是我用来启动相机应用程序的代码:
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getActivity().getPackageManager()) != null) {
startActivityForResult(takePictureIntent, AppConstants.TAKE_PICURE_CAMERA_REQUEST_CODE);
}
答案 0 :(得分:1)
当我的活动有launchMode="singleTask"
时,我遇到了同样的问题,但是我更改为singleTop
并解决了问题
答案 1 :(得分:0)
我刚刚将我的 Poco X3 更新到了 Android 11,现在我遇到了同样的问题......这可能是 MIUI (12.0.8) 中的一个错误。它在其他 Android 11 设备上运行良好。
更改启动模式不起作用。但是,当我检测到 MIUI 用户时,我会绕过选择器并打开它找到的第一个相机应用。
最糟糕的是,您无法真正检测到此问题何时发生。因此,您无法在出现问题时进行登录,因此您无法找出遇到此问题的用户。
当您尝试从图库中获取照片或尝试在照片应用中打开照片时,也会出现同样的问题。后者导致“找不到照片”消息。