android - 有没有办法选择一个 zip 文件以使用存储访问框架打开?

标签 android storage-access-framework

我有一个应用允许用户通过 CSV 或包含多个文件的压缩包导出和/或导入批量数据。

目前它使用第三方库(ar.com.daidalos.afiledialog),但我正在尝试迁移到用户更可能熟悉的存储访问框架(并且看起来更像“android” -y”)。当前库无法使用云端硬盘,这是我想添加的额外功能。

我让它正常工作,因此可以导出为两种格式。我可以选择一个 CSV 文件来阅读:

Intent intent = new Intent();
intent.setAction(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("text/*");
startActivityForResult(intent,4);

但是当我将类型更改为“application/zip”(或任何更宽松的东西)以使 zip 可选择时,文件选择器将 zip 文件视为另一个目录并显示其内容而不是选择它。看起来它正在响应 .zip 扩展名,因为当我将它从文件中删除时它使它可以选择(如果我不能正确解决这个问题,这可能会给我一个解决方法)。

所以问题是,我如何告诉选择器选择 zip 文件而不是下降到其中?我必须使用 zip 文件,因为现有用户已经导出了他们可能需要阅读的那种格式的数据。

最佳答案

供以后遇到此问题的人引用,由于 CommonsWare 的评论,此问题已“解决”。该问题似乎只出现在 Genymotion 模拟器上。在真实设备上,它如我所愿地工作。

关于android - 有没有办法选择一个 zip 文件以使用存储访问框架打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48067076/

相关文章:

android - 通过 ACTION_OPEN_DOCUMENT 的 takePersistableUriPermission 在自定义文档提供程序上失败但仅适用于 API < 26

java - 在服务类中使用 AsyncTask?

android - 在Android中使用Room时如何检查数据库中是否有某个项目?

java - 将工具栏设置为 fragment 中的操作栏

android - FFMPEG Android 存储访问框架

android - SD卡的Kitkat规则和限制如何处理?

android - 在 Android 10 中使用存储访问框架输出 URI 文件比 DocumentFile 更好的方法是什么?

android - 在哪里向 Google 报告 API 错误? (谷歌附近消息 API)

Android Intent getExtras

android - 作为 "Private"(仅限本地)文件夹/文件选择器的存储访问框架?