我们一起俩聊聊普通权限与危险权限的恩怨情仇

移动开发 Android
权限分为普通权限和危险权限两种类型。普通权限是指不涉及用户隐私和敏感数据的权限,系统会自动授予应用。而危险权限是指涉及用户隐私和敏感数据的权限,需要在运行时向用户请求授权。开发者需要在代码中处理用户授权的结果,并在需要权限时动态请求权限。

在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.

使用这些危险权限需要经过用户的授权,并且开发者需要在应用程序中清晰地说明使用这些权限的原因。

责任编辑:武晓燕 来源: 沐雨花飞蝶
相关推荐

2022-03-15 20:18:35

单元测试工具

2022-04-06 08:23:57

指针函数代码

2022-05-07 07:43:07

Redis存储系统数据库

2023-12-06 08:26:19

Service数据库

2024-02-26 00:00:00

架构老化重构

2022-10-08 00:00:05

SQL机制结构

2022-05-24 08:21:16

数据安全API

2023-08-04 08:20:56

DockerfileDocker工具

2023-08-10 08:28:46

网络编程通信

2023-09-10 21:42:31

2023-06-30 08:18:51

敏捷开发模式

2023-04-26 07:30:00

promptUI非结构化

2024-02-20 21:34:16

循环GolangGo

2021-08-27 07:06:10

IOJava抽象

2024-01-29 09:01:20

React列表模式

2023-07-04 08:06:40

数据库容器公有云

2022-12-06 08:12:11

Java关键字

2023-08-02 08:35:54

文件操作数据源

2022-09-08 08:50:17

SSDOracleCPU

2024-09-09 08:53:56

点赞
收藏

51CTO技术栈公众号