【问题标题】:FileProvider for dynamic files动态文件的 FileProvider
【发布时间】:2015-05-07 12:16:26
【问题描述】:

我想使用FileProvider 来访问MySecondApplication 中存储在内部目录中的MyFirstApplication 文件。我已经浏览了 FileProvider 和示例的文档。

我的问题是,InternalStorage 名称中的文件夹和文件可能会在每个实例中发生变化。所以在manifest.xml<provider> 中定义<meta-data> 标记时,我不能给xml 文件提供静态路径和名称。我想在运行时动态选择文件和文件夹。这可能吗?如果是这样,我怎样才能做到这一点?

EDIT :这正是我所需要的。我有两个申请。第一个应用程序会将所有文件存储在其内部存储器中。稍后我想通过第二个应用程序上传所有这些文件(基本上是 .zip 文件)。所以第二个应用程序要访问的那些文件也需要这些文件的路径。

【问题讨论】:

    标签: android android-contentprovider android-fileprovider


    【解决方案1】:

    你有两个选择:

    1. <meta-data> 指向您的文件和目录所在的根目录。 IOW,指向位置不会改变的最低级别。这可能需要对其余代码进行一些重组,以将文件/目录操作的范围限制在某个特定区域。

    2. 不要使用FileProvider,而是使用您自己的ContentProvider,它支持带有您希望使用的业务规则的流式API。

    【讨论】:

    • 感谢您的回答。我正在实现我自己的ContentProvider 来访问MySecondApplication 的数据库。但是如何从ContentProvider 获取文件的路径我已经用谷歌搜索过了,结果是FileProvider。你能不能请我一点点来访问文件或文件夹
    • @KevinChris:您无法“访问文件或文件夹”。 ContentProvider 的工作方式很像 Web 服务器。您无法通过 Web 服务器“访问文件或文件夹”。相反,您有 URL 并在这些 URL 上打开流。与ContentProvider 相同。
    • 是的,我想通了并访问了文件的InputStream。感谢您的宝贵帮助。
    猜你喜欢
    • 1970-01-01
    • 2017-03-20
    • 2017-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多