Android 开发指南-框架主题-安全和许可
2010-03-31 05:27:00 来源:WEB开发网核心提示:很多时候, 一个许可失败会导致一个SecurityException被抛回该应用程序. 但是Android并不保证这种情况会处处发生,例如,Android 开发指南-框架主题-安全和许可(3),当数据被deliver到每一个receiver的时候,sendBroadcast(Intent) 方法会去检查permissi
很多时候, 一个许可失败会导致一个SecurityException被抛回该应用程序. 但是Android并不保证这种情况会处处发生。例如,当数据被deliver到每一个receiver的时候,sendBroadcast(Intent) 方法会去检查permissions,在这个方法调用返回之后,你也不会收到任何exception。几乎绝大多数情况,一个permission failure都会打印到log当中。
Android系统定义的权限可以在Manifest.permission中找到。任何一个程序都可以定义并强制执行自己独有的 permissions,因此Manifest.permission中定义的permissions并不是一个完整的列表(即有肯能有自定义的 permissions)。
一个特定的许可可能会在你的程序操作过程中的很多地方都被实施:
* 当系统有来电的时候,用以阻止程序执行其它功能。
* 当启动一个活动(activity)的时候,会阻止应用程序启动其它应用程序的Acitivity。
* 在发送和接收广播的时候,去控制谁可以接收你的广播或谁可以发送广播给你。
* 当进入并操作一个内容提供器(content provider)的时候
* 当绑定或起动一个服务(service)的时候
声明和实施许可Declaring and Enforcing Permissions
为了实施你自己的permissions,你必须首先在AndroidManifest.xml文件中声明该permissions.通常我们通过使用一到多个
例如,一个应用程序想要控制谁能启动它的活动,可以为该操作声明许可如下:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.me.app.myapp">
<permission android:name="com.me.app.myapp.permission.DEADLY_ACTIVITY"
android:label="@string/permlab_deadlyActivity"
android:description="@string/permdesc_deadlyActivity"
android:permissionGroup="android.permission-group.COST_MONEY"
android:protectionLevel="dangerous" />
</manifest>
更多精彩
赞助商链接