开发学院手机开发Android 开发 Android开发指南 框架主题 安全和许可 阅读

Android开发指南 框架主题 安全和许可

 2010-06-17 03:18:00 来源:WEB开发网   
核心提示:permissions,这些在稍后讨论)不同于其它的Components,Android开发指南 框架主题 安全和许可(5),这里有两种不同的permission属性可以设置: android:readPermission 用于限制谁可以读取provider中的数据,而 android:writePermission
permissions,这些在稍后讨论)不同于其它的Components,这里有两种不同的permission属性可以设置: android:readPermission 用于限制谁可以读取provider中的数据,而 android:writePermission 用于限制谁才可以向provider中写入数据。需要注意的是如果provider同时被读写许可,如果这时只有写许可并不意味着你就可以读取 provider中的数据了。当你第一次获取provider的时候就要进行权限检查(如果你没有任何permission,则会抛出 SecurityException), 并且这时你对provider执行了某些操作。当使用ContentResolver.query()时需要读权限,而当使用 ContentResolver.insert(), ContentResolver.update(), ContentResolver.delete()时需要写权限。在所有这些情况下,没有所需的permission将会导致 SecurityException被抛出。

发送广播时实施许可Enforcing Permissions when Sending Broadcasts

除了之前说过的Permission(用于限制谁才可以发送广播给相应的BroadcastReceiver),你还可以在发送广播的时候指定一个 permission。在调用Context.sendBroadcast()的时候使用一个permission string,你就可以要求receiver的宿主程序必须有相应的permission。

值得注意的是Receiver和broadcaster都可以要求permission。当这种情况发生时,这两种permission检查都需要通过后才会将相应的intent发送给相关的目的地。

其他权限实施Other Permission Enforcement

在调用service的过程中可以设置任意细化的许可。这是通过Context.checkCallingPermission()方法来完成的。呼叫的时候使用一个想得到的permission string,并且当该权限获批的时候可以返回给呼叫方一个Integer(没有获批也会返回一个Integer)。需要注意的是这种情况只能发生在来自另一个进程的呼叫,通常是一个service发布的IDL接口或者是其他方式提供给其他的进程。

Android提供了很多其他的方式用于检查permissions。如果你有另一个进程的pid,你就可以通过 Context.checkPermission(String, int, int)去针对那个pid去检查permission。如果你有另一个应用程序的package name,你可以直接用PackageManager的方法PackageManager.checkPermission(String, String)来确定该package是否已经拥有了相应的权限。

URI许可URI Permissions

到目前为止我们讨论的标准的permission系统对于内容提供器(content

上一页  1 2 3 4 5 6  下一页

Tags:Android 开发指南 框架

编辑录入:coldstar [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接