我已经足够搜索了,但找不到这种情况。我想编写一个只为特定应用程序共享/访问的自定义内容提供程序。
我有这种情况:
现在我的问题是:
是否有可能完全编写此类内容提供程序,仅在特定应用程序之间共享? android:exported =“false”使任何其他外部应用程序无法访问它。 android:grantUriPermissions =“true”在android:exported设置为false时不起作用,将android:exports设置为true使其可以公开访问。
如果它们看起来更符合我在多个应用之间共享信息的要求,请随时分享其他解决方案。
答案 0 :(得分:1)
当android:exported设置为false时,android:grantUriPermissions =“true”不起作用
是的,确实如此。
但是,android:grantUriPermissions
可能与您的用例无关,特别是如果Z是其自己的独立应用程序。 Z必须是使用带有Intent
标志的FLAG_GRANT*
进入A / B / C的人,我猜这不适合您的计划。
如果我怀疑,A / B / C需要独立于Z访问Z,告诉他们可以访问并授予Uri
特定权限,标准方法是使用自定义{ {1}} - 级别signature
。然后,您将使用<permission>
中的android:permission
保护导出提供程序并使用该权限进行保护。理论上,只有您的应用程序套件才能拥有该权限,因为只有您的应用程序套件将由该签名密钥签名,因此具有签名匹配。
(我说“理论上”因为有issues with this approach)