【发布时间】: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