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

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

 2010-06-17 03:18:00 来源:WEB开发网   
核心提示:许可的label和description的例子:< string name="permlab_callPhone" >directly call phone numbers< /string >< string name="permdesc_callPhone
许可的label和description的例子:

< string name="permlab_callPhone" >directly call phone numbers< /string >

< string name="permdesc_callPhone" >Allows the application to call

phone numbers without your intervention. Malicious applications may

cause unexpected calls on your phone bill. Note that this does not

allow the application to call emergency numbers.< /string >

你可以通过shell指令 adb shell pm list permissions 来查看目前系统已有的permissions. 特别的,"-s"选项会以一种用户会看到的基本相同的格式来显示这些permissions。

在清单文件里实施许可Enforcing Permissions in AndroidManifest.xml

用于限制进入系统或应用程序的Components的高级别许可可以再AndroidManifest.xml中实现.所有这些都可以通过在相应的 component中包含 android:permission 属性,命名该permission以使其被用以控制进入的权限。

Activity许可(应用于< activity > 标签)限制了谁才可以启动相应的活动。permission会在Context.startActivity()和 Activity.startActivityForResult()的时候进行检查。如果caller没有所需的权限,则会抛出一个 SecurityException。

Service许可(应用于< service > 标签)用于限制谁才可以start或bind该service。在Context.startService() , Context.stopService()和Context.bindService()调用的时候会进行权限检查。如果caller没有所需的权限,则会抛出一个SecurityException。

BroadcastReceiver许可(应用于< receiver > 标签)用于限制谁才可以向该receiver发送广播。权限检查会在Context.sendBroadcast() 返回时进行,由系统去发送已经提交的广播给相应的Receiver。最终,一个permission failure不会再返回给Caller一个exception;它只是不会去deliver该Intent而已。同样地,Context.registerReceiver()也可以有自己permission用于限制谁才可以向一个在程序中注册的receiver发送广播。另一种方式是,一个permission也可以提供给Context.sendBroadcast() 用以限制哪一个BroadcastReceiver才可以接收该广播。

ContentProvider许可(应用于< provider > 标签)用于限制谁才可以访问ContentProvider提供的数据。(Content providers有一套而外的安全机制叫做URI

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

Tags:Android 开发指南 框架

编辑录入:coldstar [复制链接] [打 印]
赞助商链接