【问题标题】:Flutter Android after pick and image google photo does not open my app挑选和图像谷歌照片后颤振Android没有打开我的应用程序
【发布时间】:2021-02-02 12:07:54
【问题描述】:

我正在使用 ImagePicker 在我的应用中选择图像。如果我试图从最近的图像中选择它,那么应用程序行为是正常的并且我的应用程序正在打开并且 onActivityResult 方法正在被调用,但是如果我试图从照片应用程序中选择一个图像 - 它只是返回到上一个屏幕,没有打开我的应用程序并且没有调用 onActivityResult。也许有人面临这样的问题?

以下是插件开始采摘的方式:

   private void launchPickImageFromGalleryIntent() {
    Intent pickImageIntent = new Intent(Intent.ACTION_GET_CONTENT);
    pickImageIntent.setType("image/*");

    activity.startActivityForResult(pickImageIntent, REQUEST_CODE_CHOOSE_IMAGE_FROM_GALLERY);
  }

这是 onActivityResult 的实现,如果我们试图从 Google Photo 应用程序中选择,它不会被调用:

  @Override
  public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode) {
      case REQUEST_CODE_CHOOSE_IMAGE_FROM_GALLERY:
        handleChooseImageResult(resultCode, data);
        break;
      case REQUEST_CODE_TAKE_IMAGE_WITH_CAMERA:
        handleCaptureImageResult(resultCode);
        break;
      case REQUEST_CODE_CHOOSE_VIDEO_FROM_GALLERY:
        handleChooseVideoResult(resultCode, data);
        break;
      case REQUEST_CODE_TAKE_VIDEO_WITH_CAMERA:
        handleCaptureVideoResult(resultCode);
        break;
      default:
        return false;
    }

    return true;
  }

我是否需要注册应用程序包名称或其他信息才能让照片应用了解我的应用?

【问题讨论】:

  • it just return to the previous screen 但是...上一个屏幕将是您的应用程序。将是您启动选择器的活动。你为什么要在你的应用仍然打开的地方打开你的应用?
  • I'm using ImagePicker to pick an image in my app 你的意思是:I'm using ACTION_GET_CONTENT to pick an image in my app
  • ImagePicker 是一个 Flutter 库,它使用了 ACTION_GET_CONTENT。当您使用 ACTION_GET_CONTENT 时,它会在您的手机上打开带有最新文档的屏幕,然后您可以转到菜单并选择任何应用程序(图库、Google 照片)来选择图像。完成此操作后,它会将您带回到最新文档的屏幕,而不是您的应用程序。
  • 难以置信。如果用户选择了一张图片,那么选择器应该关闭并调用您的应用程序的 onActivityResult。所以回到你的应用程序。如何选择图像并且选择器仅返回最近(您的意思是最新文档?)?那么你的应用什么时候会在 onActivityResult 中获取 uri?请完成场景。
  • 问题是它没有重定向到应用程序并且没有调用 onActivityResult。

标签: android flutter onactivityresult imagepicker


【解决方案1】:

通过 fork 一个 TimePicker 项目进行临时修复,并将方法 launchPickImageFromGalleryIntent 更改为

  private void launchPickImageFromGalleryIntent() {
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    activity.startActivityForResult(Intent.createChooser(intent, "Select Picture"), REQUEST_CODE_CHOOSE_IMAGE_FROM_GALLERY);
  }

这里是original implementation

【讨论】:

    猜你喜欢
    • 2018-04-13
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 2021-07-19
    • 2021-04-05
    • 1970-01-01
    • 2020-10-04
    • 2020-07-19
    相关资源
    最近更新 更多