在我的应用程序中,我运行相机意图与照片应用程序拍照,下面的代码如下:
Activity activity;
File currentPhotoFile;
Intent capturePhoto = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri uri = GenericFileProvider.getUriForFile(activity, activity.getPackageName() + providerSufixName, currentPhotoFile);
capturePhoto.putExtra(MediaStore.EXTRA_OUTPUT, uri);
activity.startActivityForResult(capturePhoto, REQUEST_PHOTO);之后,我在活动中的activity.onActivityResult函数中捕捉到创建的照片。
如果我只有一个!照片应用程序在我的移动设备-一切运行良好。
但!如果我再在我的设备上安装一个!照片应用-上面的代码不起作用:(
在两个照片应用程序的情况下,当我调用activity.startActivityForResult时,我看到了带有所有可用照片应用列表的andoid对话框。(就像Intent.createChooser调用)。我从中选择,更好的照片应用和点击“只一次”。选择运行的应用程序,我在里面拍照,然后按Ok按钮返回我的应用程序。这时,我收到了用我的代码:REQUEST_PHOTO,但用requestCode = RESULT_CANCELED回调我的REQUEST_PHOTO。仅此而已:
为什么不起作用?我如何解决这个问题,并使用相机意图与多个照片应用程序?
发布于 2020-06-04 04:01:36
问题是,在清单中,我可以选择:android:launchMode="singleInstance"作为我的活动。
<activity
android:name="MyActivity"
android:launchMode="singleInstance"
>为了解决上述问题,您应该从清单文件中删除singleInstance选项(或者在singleTask选项中替换它)。这就是解决问题的方法,onActivityResult正在正常工作。
https://stackoverflow.com/questions/61803633
复制相似问题