【问题标题】:How to disable file sharing in Android如何在 Android 中禁用文件共享
【发布时间】:2021-05-10 21:38:49
【问题描述】:

我正在使用FileProviderIntents 将内容从我们的应用程序共享到其他应用程序。使用这些组件还可以将数据从其他应用程序上传到我们的应用程序。出于安全原因,我们只想禁用从我们的应用程序到其他应用程序的共享。是否有全球解决方案来实施此限制?

提前致谢。

【问题讨论】:

    标签: android android-contentprovider android-fileprovider


    【解决方案1】:

    FileProvider 可以将内容从我们的应用程序共享到其他应用程序。

    只有在您的应用中添加额外的代码。 FileProvider单独,并不像你描述的那样。

    它还提供将数据从其他应用程序上传到我们的应用程序的功能。

    同样,只有在您的应用中有其他代码时才会发生这种情况。 FileProvider单独,不会这样做。

    是否有全球解决方案来实施此限制?

    不要编写实现从您的应用程序共享到其他应用程序的代码。

    【讨论】:

    • > 仅通过在您的应用程序中添加附加代码。 FileProvider 本身并不像您所描述的那样做。我们使用可以从FileProvider.getUriForFile() 检索的内容 URI 与另一个应用程序共享文件。我们可以使用 Intent 将此内容 URI 发送到另一个应用程序。因此,在我提到的两种情况下,肯定都需要编写额外的代码。我可以删除所有共享代码,但看看是否有办法在整个应用程序中禁用此功能。
    • @androidstruggler:“我可以删除所有共享代码”——这就是你需要做的。 “看看是否有办法在整个应用程序中禁用此功能”——删除代码。
    • 这是唯一的选择吗?我正在尝试构建一个与平台无关的解决方案。我知道有很多公司都在做这件事(比如微软、MobileIron 等)。你知道这是怎么做到的吗?
    • @androidstruggler:“这是唯一的选择吗?” -- 欢迎您做其他事情来阻止您的代码运行。 “你知道他们是怎么做到的吗?” - 据我所知,Intune 所做的是您说您不想做的事情:Intune 共享(有时);你想完全禁用它。如果您想做 Intune 所做的事情并仅在某些情况下共享,您可以这样做,但 必须编写包装 您的 现有共享代码的代码,以仅条件合适时分享。
    • @androidstruggler:“我知道有很多公司在做这件事(比如微软、MobileIron 等)”——我不知道“这个”是什么。您可能会考虑编写一个新问题,在其中更详细地解释您正在寻找的功能。您的问题集中在FileProvider 并完全阻止共享。 FileProvider 不是分享的前提条件。
    【解决方案2】:

    IIRC 您的应用必须根据具体情况“选择加入”共享自己的文件。其他应用程序从您的应用程序请求文件,然后您的应用程序必须授予它们(临时)权限并将访问 URI 传递给它们。其他应用程序不会在不询问的情况下自动访问您的文件。如果您不实现共享功能,则无法授予共享请求。

    如果您确实想要有限共享,您还可以设置一个策略 XML 文件来限制您的应用程序拥有的哪些目录是可共享的。

    https://developer.android.com/training/secure-file-sharing

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多