【问题标题】:Zip file intent chooser returns (data=null) onActivityResultZip 文件意图选择器返回 (data=null) onActivityResult
【发布时间】:2017-01-18 20:19:44
【问题描述】:

我需要打开一个文件选择器,让用户选择一个 zip 文件。用户选择 zip 文件后,onActivityResult 返回 data=null。我不确定我做错了什么。

        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.setType("application/zip");
        startActivityForResult(intent, SELECT_ZIP_FILE);

我尝试寻找其他问题并发现这是解决方案之一。这也不起作用。

    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
      intent.addCategory(Intent.CATEGORY_OPENABLE);
      intent.setType("*/*");
      String[] mimetypes = {"application/zip", "text/plain"};
      intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes);
    } else {
      intent.setType("application/zip");
    }
    startActivityForResult(intent, SELECT_ZIP_FILE);

对此的任何帮助表示赞赏。

注意:如果我使用 setType("*/*") 而不提及 MIME_TYPE,我可以打开任何文件,但不能打开 zip 文件。我有我的清单中提到的适当权限。

【问题讨论】:

  • “用户选择 zip 文件后,onActivityResult 返回 data=null”——无论您选择处理 ACTION_GET_CONTENT 请求的任何应用程序,都会出现错误。
  • @CommonsWare 我尝试使用不同的文件选择器打开。工作正常。你是对的。谢谢你。 :)

标签: android android-fragments android-intent


【解决方案1】:

如果ACTION_GET_CONTENT 请求将RESULT_OK 返回到onActivityResult(),并且您没有获得所选内容的Uri,则在处理ACTION_GET_CONTENT 请求的过程中存在错误。不幸的是,除了让用户知道他们选择了一个有问题的应用程序之外,您对此无能为力。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-20
    • 2018-12-10
    相关资源
    最近更新 更多