一个Android应用可能需要权限才能调用Android系统的功能;一个Android应用也可能被其它应用调用,因此它也需要声明调用自身所需要的权限。
1、声明该应用自身所拥有的权限
通过为<manifest.../>元素添加<uses-permission.../>子元素即可为自身声明权限。
例如在<manifest.../>元素里添加如下代码:
<!--声明该应用本身需要打电话的权限-->
<uses-permission android:name="android.permission.CALL_PHONE"/>
2、声明调用该应用自身所需的权限
通过为应用的各组件元素,如<activity.../>元素添加<uses-permission.../>子元素即可声明调用该程序所需的权限。
例如在<activity.../>元素里添加如下代码:
<!--声明调用本身需要发送短信的权限-->
<uses-permission android:name="android.permission.SEND_SMS"/>
通过上面的介绍可以看出,<uses-permission.../>元素的用法倒不难,但到底有多少权限?实际上Android提供了大量的权限,这些权限位于Manifest.permission类中。一般来说有如下一些常用的权限。
Android系统的常用权限
权限
说明
ACCESS_NETWORK_STATE 允许应用程序获取网络状态信息的权限 ACCESS_WIFI_STATE 允许应用程序获取Wi-Fi网络状态信息的权限 BATTERY_STATE 允许应用程序获取电池状态信息的权限 BLUETOOTH 允许应用程序链接匹配的蓝牙设备的权限 BLUETOOTH_ADMIN 允许应用程序发现匹配的蓝牙设备的权限 BROADCAST_SMS 允许应用程序广播收到短信提醒的权限 CALL_PHONE 允许应用程序拨打电话的权限 CAMERA 允许应用程序使用照相机的权限 CHANGE_NETWORK_STATE 允许应用程序改变网络连接状态的权限 CHANG_WIFI_STATE 允许应用程序改变Wi-Fi网络连接状态的权限 DELETE_CACHE_FILES 允许应用程序的删除缓存文件权限 DELETE_PACKAGES 允许应用程序删除安装包的权限 FLASHLIGHT 允许应用程序访问闪光灯的权限 INTERNET 允许应用程序打开网络SOcket的权限 MODIFY_AUDIO_SETTINGS 允许应用程序修改全局声音设置的权限 PROCESS_OUTGOING_CALLS 允许应用程序监听、控制、取消呼出电话的权限 READ_CONTACTS 允许应用程序读取用户的联系人数据的权限 READ_HISTORY_BOOKMARKS 允许应用程序读取历史书签的权限 READ_OWNER_DATA 允许应用程序读取用户数据的权限 READ_PHONE_STATE 允许应用程序读取电话状态的权限 READ_PHONE_SMS 允许应用程序读取短信的权限 REBOOT 允许应用程序重启系统的权限 RECEIVE_SMS 允许应用程序接收、监控、处理短信的权限 RECEIVE_MMS 允许应用程序接收、监控、处理彩信的权限 RECORD_AUDIO 允许应用程序录音的权限 SEND_SMS 允许应用程序发送短息的权限 SET_ORIENTATION 允许应用程序旋转屏幕的权限 SET_TIME 允许应用程序设置时间的权限 SET_TIME_ZONE 允许应用程序设置时区的权限 SET_WALLPAPER 允许应用程序设置桌面壁纸的权限 VIBRATE 允许应用程序访问振动器的权限 WRITE_CONTACTS 允许应用程序写入用户联系人的权限 WRITE_HISTORY_BOOKMARKS 允许应用程序写历史书签的权限 WRITE_OWNER_DATA 允许应用程序写用户数据的权限 WRITE_SMS 允许应用程序写短信的权限