在Android开发中,权限是一种安全机制,用于控制应用程序对系统资源和数据的访问。Android系统提供了一系列的权限,包括但不限于访问网络、读取存储、定位等。开发者在开发应用时需要在清单文件(AndroidManifest.xml)中声明所需的权限,以便在用户安装应用时向用户展示权限请求,并在运行时获取所需的权限。
应用访问网络的权限声明的示例:
<uses-permission android:name="android.permission.INTERNET" />
- 1.
权限分为普通权限和危险权限两种类型。普通权限是指不涉及用户隐私和敏感数据的权限,系统会自动授予应用。而危险权限是指涉及用户隐私和敏感数据的权限,需要在运行时向用户请求授权。开发者需要在代码中处理用户授权的结果,并在需要权限时动态请求权限。
普通权限
普通权限是指不涉及用户隐私或设备操作的权限,通常不需要用户明确授权。一般来说,普通权限包括访问网络状态、访问网络、访问WiFi连接状态等。在Android应用程序开发中,可以在清单文件(AndroidManifest.xml)中声明需要使用的普通权限。
ACCESS_CHECKIN_PROPERTIES:读取和写入“properties”表在checkin数据库中
ACCESS_LOCATION_EXTRA_COMMANDS:访问额外的位置提供命令
ACCESS_NETWORK_STATE:获取网络信息状态
ACCESS_NOTIFICATION_POLICY:希望访问通知策略的应用程序的标记许可
ACCESS_WIFI_STATE:获取当前WiFi接入的状态以及WLAN热点的信息
ACCOUNT_MANAGER:通过账户验证方式访问账户管理ACCOUNT_MANAGER相关信息
BATTERY_STATS:更新手机电池统计信息
BIND_ACCESSIBILITY_SERVICE:请求accessibilityservice服务
BIND_APPWIDGET:告诉appWidget服务需要访问小插件的数据库
BIND_CARRIER_MESSAGING_SERVICE:绑定到运营商应用程序中的服务
BIND_CARRIER_SERVICES:绑定到运营商应用程序中的服务
BIND_CHOOSER_TARGET_SERVICE:由ChooserTargetService要求的服务
BIND_DEVICE_ADMIN:请求系统管理员receiver
BIND_DREAM_SERVICE:由一个DreamService要求的服务
BIND_INCALL_SERVICE:请求MidiDeviceService服务
BIND_INPUT_METHOD:请求InputMethodService服务
BIND_MIDI_DEVICE_SERVICE:由一MidiDeviceService要求的服务
BIND_NFC_SERVICE:由HostApduServiceOffHostApduService要求的服务
BIND_NOTIFICATION_LISTENER_SERVICE:由notificationlistenerservice要求的服务
BIND_PRINT_SERVICE:由printservice要求的服务
BIND_REMOTEVIEWS:通过RemoteViewsService服务请求
BIND_TELECOM_CONNECTION_SERVICE:由ConnectionService要求的服务
BIND_TEXT_SERVICE:由textservice要求的服务
BIND_TV_INPUT:由TvInputService要求的服务
BIND_VOICE_INTERACTION:由VoiceInteractionService要求的服务
BIND_VPN_SERVICE:通过VpnService服务请求
BIND_WALLPAPER:通过WallpaperService服务请求
BLUETOOTH:连接配对过的蓝牙设备
BLUETOOTH_ADMIN:发现和配对新的蓝牙设备
BLUETOOTH_PRIVILEGED:配对蓝牙设备,无需用户交互
BROADCAST_PACKAGE_REMOVED:广播一个提示消息在一个应用程序包已经移除后
BROADCAST_SMS:当收到短信时触发广播
BROADCAST_STICKY:收到广播后快速收到下一个广播
BROADCAST_WAP_PUSH:WAP PUSH服务收到后触发广播
CALL_PRIVILEGED:拨打电话,替换系统的拨号器界面
CAPTURE_AUDIO_OUTPUT:捕获音频输出
CAPTURE_SECURE_VIDEO_OUTPUT:捕获视频输出
CAPTURE_VIDEO_OUTPUT:捕获视频输出
CHANGE_COMPONENT_ENABLED_STATE:改变组件是否启用状态
CHANGE_CONFIGURATION:改变配置信息
CHANGE_NETWORK_STATE:改变网络状态,如是否联网
CHANGE_WIFI_MULTICAST_STATE:改变WiFi多播状态
CHANGE_WIFI_STATE:改变WiFi状态
CLEAR_APP_CACHE:清除应用缓存
CONTROL_LOCATION_UPDATES:获得移动网络定位信息
DELETE_CACHE_FILES:删除缓存文件
DELETE_PACKAGES:删除应用
DIAGNOSTIC:RW到诊断资源
DISABLE_KEYGUARD:禁用键盘锁
DUMP:获取系统dump信息
EXPAND_STATUS_BAR:扩展或收缩状态栏
FACTORY_TEST:运行工厂测试模式
FLASHLIGHT:访问闪光灯
GET_ACCOUNTS_PRIVILEGED:访问帐户服务中的帐户列表
GET_PACKAGE_SIZE:获取任何package占用空间容量
GET_TASKS:获取信息有关当前或最近运行的任务
GLOBAL_SEARCH:允许全局搜索
INSTALL_LOCATION_PROVIDER:安装定位提供
INSTALL_PACKAGES:安装应用
INSTALL_SHORTCUT:创建快捷方式
INTERNET:访问网络连接
KILL_BACKGROUND_PROCESSES:结束后台进
LOCATION_HARDWARE:使用定位功能的硬件
MANAGE_DOCUMENTS:管理文档访问
MASTER_CLEAR:执行软格式化,删除系统配置信息
MEDIA_CONTENT_CONTROL:控制播放和内容
MODIFY_AUDIO_SETTINGS:修改声音设置信息
MODIFY_PHONE_STATE:修改电话状态
MOUNT_FORMAT_FILESYSTEMS:格式化可移动文件系统
MOUNT_UNMOUNT_FILESYSTEMS:挂载、反挂载外部文件系统
NFC:执行NFC近距离通讯操作
PACKAGE_USAGE_STATS:设置他的activities显示
PERSISTENT_ACTIVITY:创建一个永久的Activity
READ_FRAME_BUFFER:读取帧缓存
READ_INPUT_STATE:读取当前键的输入状态
READ_LOGS:读取系统底层日志
READ_SYNC_SETTINGS:读取同步设置
READ_SYNC_STATS:读取同步状态
READ_VOICEMAIL:读取语音邮件
REBOOT:重新启动设备
RECEIVE_BOOT_COMPLETED:开机自动运行
REORDER_TASKS:重新排序系统Z轴运行中的任务
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS:请求忽略电池优化
REQUEST_INSTALL_PACKAGES:请求安装包
RESTART_PACKAGES:结束任务
SEND_RESPOND_VIA_MESSAGE:即时的短信息回复
SET_ALARM:设置闹铃提醒
SET_ALWAYS_FINISH:程序在后台是否总是退出
SET_ANIMATION_SCALE:设置全局动画缩放
SET_DEBUG_APP:设置调试程序
SET_PREFERRED_APPLICATIONS:设置应用的参数
SET_PROCESS_LIMIT:设置最大的进程数量的限制
SET_TIME:设置系统时间
SET_TIME_ZONE:设置系统时区
SET_WALLPAPER:设置桌面壁纸
SET_WALLPAPER_HINTS:设置壁纸建议
SIGNAL_PERSISTENT_PROCESSES:发送一个永久的进程信号
STATUS_BAR:打开、关闭、禁用状态栏
SYSTEM_ALERT_WINDOW:显示系统窗口
TRANSMIT_IR:使用设备的红外发射器
UNINSTALL_SHORTCUT:删除快捷方式
UPDATE_DEVICE_STATS:更新设备状态
USE_FINGERPRINT:使用指纹硬件
VIBRATE:允许程序振动
WAKE_LOCK :允许程序在手机屏幕关闭后后台进程仍然运行
WRITE_APN_SETTINGS:允许程序写入网络GPRS接入点设置
WRITE_GSERVICES:允许程序修改Google服务地图
WRITE_SECURE_SETTINGS:允许应用程序读取或写入安全系统设置
WRITE_SETTINGS:允许程序读取或写入系统设置 WRITE_SYNC_SETTINGS:允许程序写入同步设置
WRITE_VOICEMAIL:允许应用程序修改和删除系统中的现有的语音邮件,只有系统才能使用
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
- 74.
- 75.
- 76.
- 77.
- 78.
- 79.
- 80.
- 81.
- 82.
- 83.
- 84.
- 85.
- 86.
- 87.
- 88.
- 89.
- 90.
- 91.
- 92.
- 93.
- 94.
- 95.
- 96.
- 97.
- 98.
- 99.
- 100.
- 101.
- 102.
- 103.
- 104.
- 105.
- 106.
- 107.
- 108.
- 109.
- 110.
- 111.
- 112.
- 113.
- 114.
- 115.
- 116.
- 117.
- 118.
- 119.
- 120.
- 121.
- 122.
- 123.
- 124.
- 125.
- 126.
- 127.
- 128.
- 129.
- 130.
- 131.
- 132.
- 133.
- 134.
- 135.
- 136.
- 137.
- 138.
- 139.
- 140.
- 141.
- 142.
- 143.
- 144.
- 145.
- 146.
- 147.
- 148.
- 149.
- 150.
- 151.
- 152.
- 153.
- 154.
- 155.
- 156.
- 157.
- 158.
- 159.
- 160.
- 161.
- 162.
- 163.
- 164.
- 165.
- 166.
- 167.
- 168.
- 169.
- 170.
- 171.
- 172.
- 173.
- 174.
- 175.
- 176.
- 177.
- 178.
- 179.
- 180.
- 181.
- 182.
- 183.
- 184.
- 185.
- 186.
- 187.
- 188.
- 189.
- 190.
- 191.
- 192.
- 193.
- 194.
- 195.
- 196.
- 197.
- 198.
- 199.
- 200.
- 201.
- 202.
- 203.
- 204.
- 205.
- 206.
- 207.
- 208.
- 209.
- 210.
- 211.
- 212.
- 213.
- 214.
- 215.
- 216.
- 217.
- 218.
- 219.
- 220.
危险权限
在Android系统中,危险权限是指那些涉及用户隐私或可能对设备造成重大影响的权限。这些权限需要用户明确授权才能被应用程序调用。
短信权限
SEND_SMS:发送短信
RECEIVE_SMS:接收短信
READ_SMS:读取短信
RECEIVE_WAP_PUSH:接收WAP Push消息
RECEIVE_MMS:接收彩信
- 1.
- 2.
- 3.
- 4.
- 5.
联系人权限
READ_CONTACTS:读取联系人
WRITE_CONTACTS:写入联系人
GET_ACCOUNTS:访问帐户列表
- 1.
- 2.
- 3.
存储权限
READ_EXTERNAL_STORAGE:读取SD卡中的内容
WRITE_EXTERNAL_STORAGE:向SD卡中写入内容
- 1.
- 2.
手机权限
READ_PHONE_STATE:读取手机状态
CALL_PHONE:拨打电话
READ_CALL_LOG:读取通话记录
WRITE_CALL_LOG:写入通话记录
ADD_VOICEMAIL:添加语音信箱
USE_SIP:使用SIP协议进行网络电话
PROCESS_OUTGOING_CALLS:处理呼出电话
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
日历权限
READ_CALENDAR:读取日历
WRITE_CALENDAR:写入日历
- 1.
- 2.
相机权限
CAMERA:访问摄像头
- 1.
位置权限
ACCESS_FINE_LOCATION:访问精准位置
ACCESS_COARSE_LOCATION:访问大致位置
- 1.
- 2.
传感器权限
BODY_SENSORS:访问传感器
- 1.
麦克风权限
RECORD_AUDIO:录音
- 1.
使用这些危险权限需要经过用户的授权,并且开发者需要在应用程序中清晰地说明使用这些权限的原因。