我的DocumentsProvider如何访问用于启动文件选择器的意图数据

时间:2018-06-30 15:14:28

标签: android android-storage document-provider

我正在实现自定义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”方法中适当地加载光标。

我如何获得用于从DocumentsProvider中启动文件选择器的意图中的数据?

1 个答案:

答案 0 :(得分:1)

这是不可能的-您应该只返回所有拥有的文件。

提供给文件选择器的mime类型用于两个目的:

  • 当mime类型没有重叠时,过滤掉设置COLUMN_MIME_TYPES的DocumentsProviders
  • 自动将无效的mime类型的文档显示为灰色,以使用户无法选择它们