一个Android应用可能需要权限才能调用Android系统的功能;一个Android应用也可能被其他应用调用,因此它也需要声明调用自身所需要的权限。
声明运行该应用本身所需要的权限
通过为<manifest.../>
元素添加<use-permission.../>
子元素即可为程序本身声明权限。
例如,在<manifest.../>
元素里添加如下代码:
<!--声明该应用本身需要打电话的权限-->
<use-permission android:name="android.permission.CALL_PHONE"/>
声明调用该应用 所需的权限
通过为应用的各组件元素,如<activity.../>
元素添加<use-permission.../>
子元素即可声明调用该程序所需的权限。
例如,在<activity.../>
元素里添加如下代码:
<!--声明该应用本身需要发送短信的权限-->
<use-permission android:name="android.permission.SEND_SMS"/>
通过上面的介绍可以看出,<use-permission.../>
元素的用法倒不难,但到底有多少权限呢?实际上Android提供了大量的权限,这些权限都位于Manifest.permission类中。一般来说,有如下所示的常用权限。
权限 | 说明 |
---|---|
ACCESS_NETWORK_STATE | 允许应用程序获取网络状态信息的权限 |
ACCESS_WIFI_STATE | 允许应用程序获取Wi-Fi网络状态信息的权限 |
BATTERY_STATS | 允许应用程序获取电池状态信息的权限 |
BLUETOOTH | 允许应用程序连接匹配的蓝牙设备的权限 |
BLUETOOTH_ADMIN | 允许应用程序发现匹配的蓝牙设备的权限 |
BROADCAST_SMS | 允许应用程序广播收到短信提醒的权限 |
CALL_PHONE | 允许应用程序拨打电话的权限 |
CAMERA | 允许应用程序使用照相机的权限 |
CHANGE_NETWORK_STATE | 允许应用程序改变网络连接状态的权限 |
CHANGE_WIFI_STATE | 允许应用程序改变wifi网络连接状态的权限 |
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_MMS | 允许应用程序接收、监控、处理彩信的权限 |
RECEIVE_SMS | 允许应用程序接收、监控、处理短信的权限 |
RECORD_AUDIO | 允许应用程序录音的权限 |
SEND_SMS | 允许应用程序发送短信的权限 |
SET_ORIENTATION | 允许应用程序旋转屏幕的权限 |
SET_TIME | 允许应用程序设置时间的权限 |
SET_TIME_ZONE | 允许应用程序设置时区的权限 |
SET_WALLPAPER | 允许应用程序设置桌面壁纸的权限 |
VIBRATE | 允许应用程序控制振动器的权限 |
WRITE_CONTACTS | 允许应用程序写入用户联系人的权限 |
WRITE_HISTORY_BOOKMARKS | 允许应用程序写历史书签的权限 |
WRITE_OWNER_DATA | 允许应用程序写用户数据的权限 |
WRITE_SMS | 允许应用程序写短信的权限 |