为 FileProvider 动态生成文件路径

Dynamically generate file-path for FileProvider

我正在开发一个文件管理器应用程序。在此应用程序中,我还需要提供共享选项。但是从 API 24 及更高版本开始,我们无法将 file:// Uri 公开给另一个应用程序。这将抛出 FileUriExposedException. To resolve this we should use FileProvider 和文件路径。

但是每个应用程序都有自己独特的文件夹路径,我们不能将每个文件夹路径都添加到文件路径中,例如

<paths>
    <external-path
        name="Downloads"
        path="/Download/" />
    <external-path
        name="WhatsApp"
        path="/WhatsApp/" />
</paths>

那么有没有什么简单的方法可以为我们的外部存储器中的所有可用文件夹添加路径,或者有没有办法动态生成文件路径?

<paths>
    <external-path
        name="Others"
        path="." />
</paths>

此代码对我来说几乎适用于所有文件夹。但我不确定这在未来是否也会奏效。