在 Android 上的应用之间共享文件。 ContentProvider 有什么好的替代品吗?

Sharing files between apps on Android. Is there any good alternatives to ContentProvider?

我正在寻找一种在以下情况下在应用程序之间共享文件的方法 运行:

据我了解,满足所有条件的唯一方法是在我的应用程序自定义 ContentProviderFileProvider 中实施。 ContentProvider 将给出文件的内容 URI,我们将该 URI 附加到 ACTION_SHARE Intent 和 FLAG_GRANT_READ_URI_PERMISSION.

我担心我错过了一些其他简单干净的解决方案。是否存在 ContentProvider 的其他可靠替代品,如果存在,它是什么?

因此,我在 FileProvider 中发现了一个未记录的功能,它允许您从设备上的任何位置共享文件。这是 root-path 个元素:

<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <root-path name="my_root"/>
</paths>

使用root-path时,FileProvider完全满足我的所有要求。实现只需要十几行,FileProvider是一个优秀的组件。