我正在实现一个自定义的DocumentsProvider。使用标准 Android 协议访问文件选取器时,应用可以提供它们感兴趣的多种 mime 类型,然后请求文件选取器执行以下操作:
// Use the media type they selected
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
intent.setType( "*/*");
startActivityForResult(intent, SELECT_MEDIA_CODE);
当文件选取器打开时,将显示我的自定义文档提供程序。在该类中,我需要做的是能够检测存储在上面"putExtra"行中的应用程序 MIME 类型列表是什么,因此我可以在文档提供程序"queryChildDocuments"方法中适当地加载光标。
如何获取用于从文档提供程序中启动文件选取器的目的中的数据?
这是不可能的 - 你应该只返回你拥有的所有文件。
提供给文件选取器的 MIME 类型用于两个目的:
- 筛选出在 MIME 类型中没有重叠时设置了COLUMN_MIME_TYPES的文档提供程序
- 自动灰显无效 MIME 类型的文档,以便用户无法选择它们