Android 开发指南-框架主题-安全和许可
2010-03-31 05:27:00 来源:WEB开发网核心提示:provider)来说是不够的,一个内容提供器可能想保护它的读写权限,Android 开发指南-框架主题-安全和许可(7),而同时与它对应的直属客户端也需要将特定的URI传递给其它应用程序,以便对该URI进行操作,强烈推荐在内容提供器中实现这种能力,并通过android:grantUriPermissions或者标签来
provider)来说是不够的。一个内容提供器可能想保护它的读写权限,而同时与它对应的直属客户端也需要将特定的URI传递给其它应用程序,以便对该URI进行操作。一个典型的例子是邮件应用程序的附件。访问邮件需要使用permission来保护,因为这些是敏感的用户数据。然而,如果有一个指向图片附件的URI需要传递给图片
浏览器,那个图片浏览器是不会有访问附件的权利的,因为它不可能拥有所有的邮件的访问权限。
针对这个问题的解决方案就是per-URI permission: 当启动一个activity或者给一个activity返回结果的时候,呼叫方可以设置Intent.FLAG_GRANT_READ_URI_PERMISSION和/或 Intent.FLAG_GRANT_WRITE_URI_PERMISSION。这赋予接收活动(activity)访问该意图(Intent)指定的URI的权限,而不论它是否有权限进入该意图对应的内容提供器。
这种机制允许一个通常的能力-风格(capability-style)模型,以用户交互(如打开一个附件, 从列表中选择一个联系人)来驱动细化的特别授权。这是一个很关键的能力,可以减少应用程序所需要的权限,只留下和程序行为直接相关的权限。
这些URI
permission的获取需要内容提供器(包含那些URI)的配合。强烈推荐在内容提供器中实现这种能力,并通过android:grantUriPermissions或者
更多的信息可以参考Context.grantUriPermission(), Context.revokeUriPermission()和Context.checkUriPermission()方法。
更多精彩
赞助商链接