ITEEDU

权限命名

一个基本的Android应用程序没有与其相关联的权限,意味着它不能做任何影响用户体验或设备中的数据的有害操作。 要利用这个设备的保护特性,在你的应用程序需要时,你必须在AndroidManifest.xml文件中 包含一个或更多的<uses-permission> 标签来声明此权限。

例如:需要监听来自SMS消息的应用程序将要指定如下内容:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.app.myapp" >

    <uses-permission android:name="android.permission.RECEIVE_SMS" />

</manifest>

在安装应用程序时,通过包安装器应用程序要通过权限请求的许可,使建立在与应用程序 签名的核对下声明对于用户的那些权限和影响。在应用运行期间对用户不做检查:它要么在安 装时被授予特定的许可,并且使用想用的特性;要么不被授予许可,并且使得一切使用特性的 尝试失败而不提示用户。

例如,sendBroadcast(Intent) 方法就是当数据被发送给到每个接收器时检查许可的,在方法调用返回之后,因此当许可失败时你不会收到一个异常。 然而,几乎在所有例子中,许可失败都会被打印到系统日志中。通常,多次的许可错误会产生抛回至应用程序的SecurityException异常。

Android系统提供的许可可以在Manifest.permission中找到。每个引 用也可以定义和Enforce它自己的许可,因此这不是全面的所有可能的列表。

在程序操作期间,个别权限在一些地方可能被强制:

  • 在系统接到呼叫的时候,预防一个应用程序去执行特定的函数。
  • 在启动Activity时,防止一个应用启动其它应用程序的Activities。
  • 发送和接收Intent广播时,控制谁能接收你的广播或者谁能发送广播给你。
  • 在一个内容提供器上访问和操作时。
  • 绑定或开始一个服务时。