我有一个应用程序,叫做ApplicationProvider,它包含一个提供者和一个接收器。另一个应用程序,称为ApplicationCreator,通过意图在提供者上创建一个元素。ApplicationProvider获取意图并相应地创建元素。
现在我希望ApplicationCreator是唯一拥有访问该元素的权利。因此,如果其他应用程序尝试访问该元素,则会生成某种错误。
最好的方法是什么?我想到了两种可能的解决方案,但我都不喜欢。
1)ApplicationProvider拒绝直接访问提供程序,而是使用接收器获取通过intentForResult发送的意图,因此接收器可以检查调用者,验证是创建元素的原始调用者并授予权限。其他应用程序将被拒绝,因为它们具有不同的UID。由于没有简单的方法来伪造UID,因此该系统有效。
2)任何应用程序都可以向提供程序发送意图,但在清单中,我指定所有路径级别权限到创建的单个URI。每当有人想要创建新元素时,我手动向应用程序发出更新。
附加信息:
如果不同的应用程序可以放置不同的元素并能够保留修改他们创建的这些元素的权利,并且还可以授予请求该权限的人对这些元素的权限,那就太理想了。
现在我希望ApplicationCreator是唯一拥有访问该元素的权利。因此,如果其他应用程序尝试访问该元素,则会生成某种错误。
最好的方法是什么?我想到了两种可能的解决方案,但我都不喜欢。
1)ApplicationProvider拒绝直接访问提供程序,而是使用接收器获取通过intentForResult发送的意图,因此接收器可以检查调用者,验证是创建元素的原始调用者并授予权限。其他应用程序将被拒绝,因为它们具有不同的UID。由于没有简单的方法来伪造UID,因此该系统有效。
2)任何应用程序都可以向提供程序发送意图,但在清单中,我指定所有路径级别权限到创建的单个URI。每当有人想要创建新元素时,我手动向应用程序发出更新。
附加信息:
如果不同的应用程序可以放置不同的元素并能够保留修改他们创建的这些元素的权利,并且还可以授予请求该权限的人对这些元素的权限,那就太理想了。
A---> +--------+ A creates content
| pro | <---B B asks permission
A<----| vid | the provider forward permission
A---->| er | A grant permission
| | --->B B is given permission and can access A's stuff
+--------+