在我的应用程序中,我运行相机意图使用照片应用程序拍照,并使用以下代码:
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
时-我看到包含所有可用照片应用程序列表的仿制系统对话框。 (例如Intent.createChooser调用)。我从中选择首选的照片应用,然后点击“仅一次”。选定的应用程序运行,我在其中拍照,然后按“确定”按钮以返回到我的应用程序。这时,我收到使用代码onActivityResult
但使用REQUEST_PHOTO
回调到requestCode = RESULT_CANCELED
的信息。仅此而已:(
为什么不起作用?以及如何解决此问题并将相机意图用于多个照片应用程序?
在我的应用程序中,我运行相机意图使用照片应用程序拍照,其代码如下:活动活动;文件currentPhotoFile;意图捕获照片=新意图(MediaStore.ACTION_IMAGE_CAPTURE); Uri ...
问题是清单中我有选择:android:launchMode="singleInstance"
是我的活动。