【问题标题】:Camera Intent not working with multiple camera apps相机意图不适用于多个相机应用程序
【发布时间】:2020-08-31 08:35:36
【问题描述】:

在我的应用程序中,我运行相机意图以使用照片应用程序拍照,代码如下:

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 的 activity.onActivityResult 函数中捕捉到创建的照片

如果我只有一个!我的移动设备上的照片应用程序 - 一切正常。

但是!如果我在我的设备上再安装一个!照片应用程序 - 上面的代码不起作用:(

如果有两个照片应用程序,当我致电 activity.startActivityForResult 时 - 我会看到带有所有可用照片应用程序列表的 Android 系统对话框。 (如 Intent.createChooser 调用)。我从中选择,首选照片应用程序,然后点击“JUST ONCE”。选定的应用程序运行,我在里面拍照,然后按确定按钮返回我的应用程序。 此刻,我收到了对我的onActivityResult 的回调,我的代码是:REQUEST_PHOTO,但使用的是requestCode = RESULT_CANCELED。就是这样:(

为什么它不起作用? 以及如何解决此问题并将相机意图与多个照片应用程序一起使用?

【问题讨论】:

    标签: android android-camera-intent


    【解决方案1】:

    问题是在清单中我有选项: android:launchMode="singleInstance" 我的活动。

    <activity
                android:name="MyActivity"
                android:launchMode="singleInstance"
    >
    

    为了解决上述问题,您应该从清单文件中删除 singleInstance 选项(或在 singleTask 选项中替换它)。 这解决了问题,onActivityResult 工作正常。

    【讨论】:

      猜你喜欢
      • 2018-05-07
      • 1970-01-01
      • 2021-02-08
      • 2013-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多