【发布时间】:2021-05-10 21:38:49
【问题描述】:
我正在使用FileProvider 和Intents 将内容从我们的应用程序共享到其他应用程序。使用这些组件还可以将数据从其他应用程序上传到我们的应用程序。出于安全原因,我们只想禁用从我们的应用程序到其他应用程序的共享。是否有全球解决方案来实施此限制?
提前致谢。
【问题讨论】:
标签: android android-contentprovider android-fileprovider
我正在使用FileProvider 和Intents 将内容从我们的应用程序共享到其他应用程序。使用这些组件还可以将数据从其他应用程序上传到我们的应用程序。出于安全原因,我们只想禁用从我们的应用程序到其他应用程序的共享。是否有全球解决方案来实施此限制?
提前致谢。
【问题讨论】:
标签: android android-contentprovider android-fileprovider
FileProvider 可以将内容从我们的应用程序共享到其他应用程序。
只有在您的应用中添加额外的代码。 FileProvider,单独,并不像你描述的那样。
它还提供将数据从其他应用程序上传到我们的应用程序的功能。
同样,只有在您的应用中有其他代码时才会发生这种情况。 FileProvider,单独,不会这样做。
是否有全球解决方案来实施此限制?
不要编写实现从您的应用程序共享到其他应用程序的代码。
【讨论】:
FileProvider.getUriForFile() 检索的内容 URI 与另一个应用程序共享文件。我们可以使用 Intent 将此内容 URI 发送到另一个应用程序。因此,在我提到的两种情况下,肯定都需要编写额外的代码。我可以删除所有共享代码,但看看是否有办法在整个应用程序中禁用此功能。
FileProvider 并完全阻止共享。 FileProvider 不是分享的前提条件。
IIRC 您的应用必须根据具体情况“选择加入”共享自己的文件。其他应用程序从您的应用程序请求文件,然后您的应用程序必须授予它们(临时)权限并将访问 URI 传递给它们。其他应用程序不会在不询问的情况下自动访问您的文件。如果您不实现共享功能,则无法授予共享请求。
如果您确实想要有限共享,您还可以设置一个策略 XML 文件来限制您的应用程序拥有的哪些目录是可共享的。
【讨论】: