Android 权限分类说明

Android 全量权限的分类整理 ,我会按照Android 官方权限等级 + 实际开发使用场景 双重维度划分,覆盖所有系统原生权限 ,区分普通权限、危险权限、特殊权限、系统保护权限 四大核心等级,标注API 版本要求、是否需动态申请、核心作用、使用场景 ,同时补充高版本权限变更、权限组特性、开发避坑要点,兼顾新手入门和实际开发的实用性,所有权限均可直接在 Manifest 中声明使用。

核心前置知识(必看,避免权限混淆)

  1. 权限等级决定使用规则:这是 Android 权限的核心逻辑,不同等级的权限申请 / 生效方式完全不同,是开发的基础;
  2. 危险权限按组授权 :Android 6.0+(API23)中,同一权限组的任意一个权限被授权,整组权限都会被授予 (如申请READ_CONTACTS,则WRITE_CONTACTS也会被授权);
  3. 高版本权限拆分 / 废弃 :Android 10+(API29)、12+(API31)、13+(API33)对多个权限做了拆分、废弃、替代(如存储 / 蓝牙 / 定位权限),以下会重点标注;
  4. Manifest 声明是基础:所有权限都需先在 Manifest 中声明,再按等级做后续处理(动态申请 / 直接使用)。

一、Android 权限四大核心等级(按系统规则划分)

🔹 1. 普通权限(Normal Permissions)

  • 核心规则 :仅在 Manifest 中声明即可生效,无需动态申请,系统安装时自动授予;
  • 权限特点:低风险,仅涉及应用自身 / 系统基础功能,不会获取用户敏感信息;
  • 开发场景:所有应用的基础权限,如网络、蓝牙基础、振动、WiFi 状态等。

🔹 2. 危险权限(Dangerous Permissions)

  • 核心规则 :Manifest 声明 +Android 6.0 + 动态申请 + 用户手动授权,仅声明无效;
  • 权限特点:高风险,可获取用户敏感信息(位置、联系人、存储、相机等),或执行敏感操作(拨打电话、发送短信等);
  • 关键特性按权限组授权,同一组权限只需申请一个,整组生效;
  • 开发场景:涉及用户隐私 / 设备敏感操作的所有功能。

🔹 3. 特殊权限(Special Permissions)

  • 核心规则 :Manifest 声明后,无法通过常规动态申请 API 获取 ,需引导用户跳转到系统设置页手动开启
  • 权限特点:比危险权限更敏感,涉及系统核心功能(如悬浮窗、后台定位、安装应用等);
  • 开发场景:应用内更新、后台持续定位、悬浮窗显示等特殊功能。

🔹 4. 系统保护权限(Protected Permissions)

  • 核心规则普通商用应用完全无法获取,仅系统预装应用(和系统签名一致)或 ROOT 设备可通过 ADB 手动授予;
  • 权限特点:系统级高风险权限,可执行底层操作(静默安装、修改系统设置、挂载文件系统等);
  • 开发场景:仅系统应用(应用商店、手机管家、系统文件管理器)可用,普通应用声明无任何意义。

二、全量权限分类整理(按使用场景 + 等级划分,开发高频标⭐)

模块 1:网络 / 连接类权限(基础必配,多为普通权限)

权限名称 权限等级 动态申请 API 要求 核心作用 使用场景 高版本变更
INTERNET 普通 所有 允许网络请求(HTTP/HTTPS/Socket) 所有网络应用 无,必须显式声明
ACCESS_NETWORK_STATE 普通 所有 获取网络状态(WiFi / 移动数据 / 无网) 网络状态判断、按需请求
ACCESS_WIFI_STATE 普通 所有 获取 WiFi 状态(是否开启、SSID、信号) WiFi 连接判断、WiFi 信息获取
CHANGE_WIFI_STATE 普通 所有 控制 WiFi 开关、触发 WiFi 扫描 打开 / 关闭 WiFi、扫描周边 WiFi Android10 + 无法直接控制 WiFi 开关
BLUETOOTH/BLUETOOTH_ADMIN 普通 所有 基础蓝牙操作(API31-) 蓝牙扫描 / 连接(API31-) API31 + 被拆分为细粒度蓝牙权限
BLUETOOTH_SCAN 危险 31+ 蓝牙扫描(API31+) 发现周边蓝牙设备 API33 + 无需定位权限
BLUETOOTH_CONNECT 危险 31+ 蓝牙连接(API31+) 与蓝牙设备建立连接 / 通信
BLUETOOTH_ADVERTISE 危险 31+ 蓝牙广播(API31+) BLE 蓝牙外设广播 普通应用极少用
NEARBY_WIFI_DEVICES 普通 33+ WiFi 扫描 / 发现 扫描周边 WiFi(替代定位) 替代 API33 + 的定位权限 WiFi 扫描
ACCESS_CELLULAR_NETWORK_STATE 普通 28+ 获取蜂窝网络状态 移动数据类型判断(4G/5G)

模块 2:定位类权限(危险 / 特殊,高版本拆分,高频⭐)

权限名称 权限等级 动态申请 API 要求 核心作用 使用场景 高版本变更
ACCESS_COARSE_LOCATION 危险 23+ 粗略定位(1-3 公里,基站 / WiFi) 城市级定位、区域推荐 API33 + 替换为ACCESS_NETWORK_STATE_LOCATION
ACCESS_FINE_LOCATION 危险 23+ 精确定位(几米 - 几十米,GPS / 北斗) 导航、外卖配送、周边打卡 名称保留,逻辑不变
ACCESS_BACKGROUND_LOCATION 特殊 29+ 后台持续定位 打车、外卖、运动计步(后台) 需先获取前台定位,再引导到设置开启
ACCESS_LOCATION_EXTRA_COMMANDS 普通 所有 发送定位相关指令 定位硬件控制(极少用)

模块 3:存储类权限(危险,高版本大幅拆分,高频⭐)

权限名称 权限等级 动态申请 API 要求 核心作用 使用场景 高版本变更
READ_EXTERNAL_STORAGE 危险 23+ 读取外部存储所有文件 读取图片 / 视频 / 文档(API32-) API33 + 被拆分为媒体细分权限
WRITE_EXTERNAL_STORAGE 危险 23+ 写入外部存储所有文件 保存图片 / 视频 / 文档(API32-) API33 + 废弃,改用媒体 / 文件 API
MANAGE_EXTERNAL_STORAGE 特殊 30+ 管理所有外部存储文件 文件管理器、大文件编辑 需引导到系统设置开启,Google Play 审核严格
READ_MEDIA_IMAGES 危险 33+ 读取图片 / 照片 相册访问、图片选择 替代 API33 + 的READ_EXTERNAL_STORAGE(图片)
READ_MEDIA_VIDEO 危险 33+ 读取视频 视频选择、视频播放 替代 API33 + 的READ_EXTERNAL_STORAGE(视频)
READ_MEDIA_AUDIO 危险 33+ 读取音频 / 音乐 音乐播放、音频选择 替代 API33 + 的READ_EXTERNAL_STORAGE(音频)
ACCESS_MEDIA_LOCATION 危险 29+ 读取媒体文件的位置信息 查看照片 / 视频的拍摄地点

模块 4:设备 / 硬件类权限(危险 / 普通,含敏感信息获取,高频⭐)

权限名称 权限等级 动态申请 API 要求 核心作用 使用场景 高版本变更
READ_PHONE_STATE 危险 23+ 读取设备状态(IMEI / 通话状态等) 设备标识、通话状态判断 API33 + 彻底阉割,无法获取 IMEI
CALL_PHONE 危险 23+ 直接拨打电话(无需用户确认) 一键拨号、客服电话
READ_CALL_LOG 危险 23+ 读取通话记录 通话记录管理、通话分析 API31 + 需单独授权,审核严格
WRITE_CALL_LOG 危险 23+ 写入 / 修改通话记录 通话记录备份、添加 审核严格,普通应用极少用
CAMERA 危险 23+ 使用相机硬件 拍照、扫码、视频拍摄 无,需配合相机权限申请
MICROPHONERECORD_AUDIO 危险 23+ 使用麦克风录音 语音聊天、录音、语音识别
VIBRATE 普通 所有 控制设备振动 消息提醒、游戏反馈、扫码提示 无,声明即生效
NFC 普通 10+ 使用 NFC 硬件 公交卡、门禁卡、NFC 支付 无,需设备支持 NFC
USE_BIOMETRIC 危险 28+ 使用生物识别(指纹 / 人脸) 指纹解锁、人脸支付 API30 + 替换为USE_BIOMETRICS(复数)
USE_FINGERPRINT 危险 23+ 使用指纹识别 指纹解锁 API28 + 被USE_BIOMETRIC替代

模块 5:通讯 / 消息类权限(危险,涉及用户隐私)

权限名称 权限等级 动态申请 API 要求 核心作用 使用场景 高版本变更
READ_CONTACTS 危险 23+ 读取手机联系人 联系人列表、联系人选择 无,审核需说明用途
WRITE_CONTACTS 危险 23+ 写入 / 修改联系人 联系人添加、备份 READ_CONTACTS同组,授权一个即全组生效
GET_ACCOUNTS 危险 23+ 获取设备账户信息(Google / 手机厂商) 账户登录、账户同步 API26 + 需配合AUTHENTICATE_ACCOUNTS
SEND_SMS 危险 23+ 直接发送短信(无需用户确认) 短信验证码、一键发短信 无,需说明用途
RECEIVE_SMS 危险 23+ 接收短信 短信验证码自动填充
READ_SMS 危险 23+ 读取短信内容 短信管理、验证码提取 审核严格,建议用短信回执 API 替代
RECEIVE_MMS 危险 23+ 接收彩信 彩信查看、保存 普通应用极少用
RECEIVE_WAP_PUSH 危险 23+ 接收 WAP 推送短信 运营商推送信息 普通应用极少用

模块 6:应用 / 系统操作类权限(特殊 / 系统保护,高频⭐)

权限名称 权限等级 动态申请 API 要求 核心作用 使用场景 高版本变更
REQUEST_INSTALL_PACKAGES 特殊 26+ 引导用户安装 APK 应用内更新、手动下载 APK 安装 声明即生效,需跳转到系统安装界面
INSTALL_PACKAGES 系统保护 所有 静默安装 APK(无需用户确认) 系统应用商店 普通应用完全无法获取
DELETE_PACKAGES 系统保护 所有 静默卸载应用 系统应用商店、手机管家 普通应用完全无法获取
SYSTEM_ALERT_WINDOW 特殊 23+ 显示悬浮窗(覆盖其他应用) 悬浮球、直播悬浮窗、桌面挂件 需引导到系统设置开启
WRITE_SETTINGS 特殊 23+ 修改系统设置(亮度、音量、壁纸等) 调节屏幕亮度、修改系统音量 需引导到系统设置开启
MOUNT_UNMOUNT_FILESYSTEMS 系统保护 所有 挂载 / 卸载文件系统 系统文件管理器 Android10 + 彻底废弃
ACCESS_NOTIFICATION_POLICY 特殊 23+ 修改通知策略(勿扰模式等) 通知管理、勿扰模式控制 需引导到系统设置开启
REQUEST_DELETE_PACKAGES 特殊 26+ 引导用户卸载应用 应用内卸载、批量卸载 需跳转到系统卸载界面

模块 7:后台 / 服务类权限(普通 / 特殊,控制应用后台行为)

权限名称 权限等级 动态申请 API 要求 核心作用 使用场景 高版本变更
FOREGROUND_SERVICE 普通 28+ 启动前台服务(保活) 音乐播放、后台定位、闹钟 API34 + 按场景拆分(FOREGROUND_SERVICE_LOCATION等)
WAKE_LOCK 普通 所有 保持屏幕 / CPU 唤醒(防止休眠) 视频播放、下载、后台任务 需在代码中申请 / 释放锁
RECEIVE_BOOT_COMPLETED 普通 所有 设备开机后启动应用 / 服务 开机自启、后台保活 高版本系统限制严格,需用户手动授权
ACCESS_NOTIFICATIONS 危险 26+ 读取设备通知 通知管理、消息聚合 审核严格,普通应用极少用
POST_NOTIFICATIONS 危险 33+ 发送应用通知 所有应用通知(如消息、提醒) API33 + 新增,必须动态申请,否则无法发通知

模块 8:小众 / 系统类权限(普通 / 危险,特定场景使用)

权限名称 权限等级 动态申请 API 要求 核心作用 使用场景
READ_CALENDAR/WRITE_CALENDAR 危险 23+ 读取 / 写入日历 日历同步、日程管理
READ_SENSOR 危险 23+ 读取设备传感器(加速度、陀螺仪等) 运动计步、体感游戏
BODY_SENSORS 危险 23+ 读取身体传感器(心率、血氧等) 智能手环、健康监测应用
ADD_VOICEMAIL 危险 23+ 添加语音邮件 运营商语音邮件功能
USE_SIP 危险 23+ 使用 SIP 协议进行语音 / 视频通话 SIP 网络电话
PROCESS_OUTGOING_CALLS 危险 23+ 监听 / 处理呼出电话 来电显示、通话拦截

三、Android 高版本权限核心变更(API29/31/33,开发必适配)

1. Android 10(API29)核心变更

  • 存储:开启强制限定存储(Scoped Storage) ,新增MANAGE_EXTERNAL_STORAGE特殊权限;
  • 定位:新增ACCESS_BACKGROUND_LOCATION后台定位特殊权限,前台定位和后台定位分离;
  • WiFi / 蓝牙:扫描 WiFi / 蓝牙需配合ACCESS_FINE_LOCATION精确定位权限;
  • 设备标识:限制READ_PHONE_STATE获取 IMEI,推荐用Android ID替代。

2. Android 12(API31)核心变更

  • 蓝牙:拆分旧版BLUETOOTH/BLUETOOTH_ADMINBLUETOOTH_SCAN/CONNECT/ADVERTISE细粒度危险权限;
  • 组件:强制要求四大组件显式设置android:exported,否则应用崩溃;
  • 通话 / 短信:READ_CALL_LOG/WRITE_CALL_LOG需单独授权,审核更严格。

3. Android 13(API33)核心变更

  • 存储:彻底废弃READ/WRITE_EXTERNAL_STORAGE,拆分为READ_MEDIA_IMAGES/VIDEO/AUDIO媒体危险权限;
  • 蓝牙 / 定位:蓝牙扫描彻底移除定位权限限制 ,无需ACCESS_FINE_LOCATION
  • 通知:新增POST_NOTIFICATIONS危险权限,必须动态申请否则无法发送通知
  • 设备状态:彻底阉割READ_PHONE_STATE,无法获取 IMEI / 手机号等敏感信息;
  • 定位:ACCESS_COARSE_LOCATION替换为ACCESS_NETWORK_STATE_LOCATION,逻辑不变。

4. Android 14(API34)核心变更

  • 前台服务:按场景拆分FOREGROUND_SERVICEFOREGROUND_SERVICE_LOCATION/BLUETOOTH/USB等细分权限;
  • 存储:强化限定存储,禁止应用访问其他应用的私有目录;
  • 权限:新增READ_MEDIA_VISUAL_USER_SELECTED,仅允许读取用户手动选择的媒体文件。

四、开发必知的权限使用核心规则(避坑关键)

1. 权限申请核心原则

  • 最小权限原则:仅声明 / 申请功能所需的权限,避免无用权限(如仅连蓝牙无需申请定位);
  • 按需申请原则 :在首次使用功能时申请权限(如点击 "扫码" 再申请相机权限),而非应用启动时,提升用户授权意愿;
  • 明确说明原则 :申请权限前,向用户清晰说明权限使用目的(如 "需要相机权限用于扫码登录"),避免用户拒绝。

2. 动态申请核心步骤(危险权限)

  1. 在 Manifest 中声明权限;
  2. 代码中判断权限是否已授权ContextCompat.checkSelfPermission);
  3. 未授权则动态申请ActivityCompat.requestPermissions);
  4. onRequestPermissionsResult处理授权结果(成功则执行功能,失败则提示用户);
  5. 若用户拒绝并勾选 "不再询问" ,引导用户跳转到应用设置页手动开启权限

3. 特殊权限申请核心步骤

  1. 在 Manifest 中声明权限;
  2. 代码中判断权限是否已开启 (如Settings.canDrawOverlays判断悬浮窗);
  3. 未开启则构建系统设置页 Intent,引导用户手动开启;
  4. 用户开启后,通过onActivityResult判断返回结果,执行功能。

4. 权限兼容核心建议

  • targetSdkVersion:尽量升级到最新 API(如 34),适配系统新特性,减少兼容问题;
  • 版本判断 :对高版本新增 / 变更的权限,通过Build.VERSION.SDK_INT做版本判断,按需申请;
  • 替代方案:对审核严格 / 高版本受限的权限,使用替代方案(如 IP 定位替代定位权限、短信回执 API 替代读取短信权限)。

五、Google Play 上架权限审核核心要求

  1. 权限必要性 :所有声明的权限必须有明确的业务用途,无意义的权限会被判定为 "权限滥用",拒绝上架;
  2. 隐私政策 :涉及用户隐私的权限(定位、相机、联系人、存储等),必须在隐私政策中明确说明:信息收集目的、使用方式、存储周期;
  3. 后台权限 :申请ACCESS_BACKGROUND_LOCATION/MANAGE_EXTERNAL_STORAGE等特殊权限,必须在上架资料中详细说明后台使用的必要性,无合理理由会被拒绝;
  4. 权限说明 :在应用内添加权限说明页,向用户清晰说明每个权限的使用场景,提升用户信任。

总结

  1. Android 权限按系统规则 分为普通、危险、特殊、系统保护 四大等级,等级决定使用规则(是否需动态申请 / 引导设置);
  2. 使用场景 可分为 8 大模块,开发中重点掌握网络、定位、存储、设备、应用操作5 大核心模块的高频权限;
  3. 危险权限按组授权 ,特殊权限需引导到系统设置页开启 ,系统保护权限普通应用完全无法获取
  4. 高版本 Android(API29/31/33)对存储、蓝牙、定位、通知 权限做了大幅拆分 / 废弃 / 替代,是适配的核心;
  5. 开发遵循最小权限、按需申请、明确说明 原则,Google Play 上架需保证权限必要性 并完善隐私政策

这份权限大全覆盖手机应用开发的所有场景,车载 / 电视 / 穿戴等特殊设备的扩展权限可参考 Android 官方文档,核心基础权限通用,开发时可按模块快速查找。

相关推荐
莞凰1 天前
昇腾CANN的“灵脉根基“:Runtime仓库探秘
android·人工智能·transformer
NiceCloud喜云1 天前
Claude Files API 深入:从上传、复用到配额管理的工程化指南
android·java·数据库·人工智能·python·json·飞书
ujainu1 天前
CANN pto-isa:虚拟指令集如何连接编译与执行
android·ascend
赏金术士1 天前
第六章:UI组件与Material3主题
android·ui·kotlin·compose
TechMerger1 天前
Android 17 重磅重构!服役 20 年的 MessageQueue 迎来无锁改造,卡顿大幅优化!
android·性能优化
yuhuofei20211 天前
【Python入门】Python中字符串相关拓展
android·java·python
dalancon1 天前
Android Input Spy Window
android
dalancon1 天前
InputDispatcher派发事件,查找目标窗口
android
我命由我123451 天前
Android Framework P3 - MediaServer 进程、认识 ServiceManager 进程
android·c语言·开发语言·c++·visualstudio·visual studio·android runtime
天才少年曾牛1 天前
Android14 新增系统服务后,应用调用出现 “hidden api” 警告的原因与解决方案
android·frameworks