codecamp

鸿蒙OS 权限应用权限列表

权限分类分级模型

HarmonyOS 的应用权限严格按照权限分类分级模型进行定义,如[图1]所示,具体过程可分为三步:

  1. 根据不同应用所需实现的功能,明确接口是否需要对外开放。
  2. 根据接口所涉数据的敏感程度或所涉能力的安全威胁影响,对所有的开放接口进行分级(包括中、低、高、严重)。不对外开放的接口均为严重级别。
  3. 根据不同的分级,确定权限的开放范围与授权方式。

图1 权限分类分级模型 img

HarmonyOS 已定义的权限列表详见《API 参考》中的“ohos.security.SystemPermission”。下面重点介绍对所有应用开放的 HarmonyOS 的应用权限。

敏感权限

敏感权限的申请需要按照动态申请流程向用户申请授权。

权限分类名称 权限名 说明
位置 ohos.permission.LOCATION 允许应用在前台运行时获取位置信息。如果应用在后台运行时也要获取位置信息,则需要同时申请 ohos.permission.LOCATION_IN_BACKGROUND 权限。
ohos.permission.LOCATION_IN_BACKGROUND 允许应用在后台运行时获取位置信息,需要同时申请 ohos.permission.LOCATION 权限。
相机 ohos.permission.CAMERA 允许应用使用相机拍摄照片和录制视频。
麦克风 ohos.permission.MICROPHONE 允许应用使用麦克风进行录音。
日历 ohos.permission.READ_CALENDAR 允许应用读取日历信息。
ohos.permission.WRITE_CALENDAR 允许应用在设备上添加、移除或修改日历活动。
健身运动 ohos.permission.ACTIVITY_MOTION 允许应用读取用户当前的运动状态。
健康 ohos.permission.READ_HEALTH_DATA 允许应用读取用户的健康数据。
媒体 ohos.permission.MEDIA_LOCATION 允许应用访问用户媒体文件中的地理位置信息。
ohos.permission.READ_MEDIA 允许应用读取用户外部存储中的媒体文件信息。
ohos.permission.WRITE_MEDIA 允许应用读写用户外部存储中的媒体文件信息。
帐号 ohos.permission.GET_APP_ACCOUNTS 允许应用访问系统帐号的分布式信息权限。

非敏感权限

非敏感权限不涉及用户的敏感数据或危险操作,仅需在config.json 中声明,应用安装后即被授权。

权限名 说明
ohos.permission.GET_NETWORK_INFO 允许应用获取数据网络信息。
ohos.permission.GET_WIFI_INFO 允许获取 WLAN 信息。
ohos.permission.USE_BLUETOOTH 允许应用查看蓝牙的配置。
ohos.permission.DISCOVER_BLUETOOTH 允许应用配置本地蓝牙,并允许其查找远端设备且与之配对连接。
ohos.permission.SET_NETWORK_INFO 允许应用控制数据网络。
ohos.permission.SET_WIFI_INFO 允许配置 WLAN 设备。
ohos.permission.SPREAD_STATUS_BAR 允许应用以缩略图方式呈现在状态栏。
ohos.permission.INTERNET 允许使用网络 socket。
ohos.permission.MODIFY_AUDIO_SETTINGS 允许应用程序修改音频设置。
ohos.permission.RECEIVER_STARTUP_COMPLETED 允许应用接收设备启动完成广播。
ohos.permission.RUNNING_LOCK 允许申请休眠运行锁,并执行相关操作。
ohos.permission.ACCESS_BIOMETRIC 允许应用使用生物识别能力进行身份认证。
ohos.permission.RCV_NFC_TRANSACTION_EVENT 允许应用接收卡模拟交易事件。
ohos.permission.COMMONEVENT_STICKY 允许发布粘性公共事件的权限。
ohos.permission.SYSTEM_FLOAT_WINDOW 提供显示悬浮窗的能力。
ohos.permission.VIBRATE 允许应用程序使用马达。
ohos.permission.USE_TRUSTCIRCLE_MANAGER 允许调用设备间认证能力。
ohos.permission.USE_WHOLE_SCREEN 允许通知携带一个全屏 IntentAgent。
ohos.permission.SET_WALLPAPER 允许设置静态壁纸。
ohos.permission.SET_WALLPAPER_DIMENSION 允许设置壁纸尺寸。
ohos.permission.REARRANGE__MISSIONS 允许调整任务栈。
ohos.permission.CLEAN_BACKGROUND_PROCESSES 允许根据包名清理相关后台进程。
ohos.permission.KEEP_BACKGROUND_RUNNING 允许 Service Ability 在后台继续运行。
ohos.permission.GET_BUNDLE_INFO 查询其他应用的信息。
ohos.permission.ACCELEROMETER 允许应用程序读取加速度传感器的数据。
ohos.permission.GYROSCOPE 允许应用程序读取陀螺仪传感器的数据。
ohos.permission.MULTIMODAL_INTERACTIVE 允许应用订阅语音或手势事件。
ohos.permission.radio.ACCESS_FM_AM 允许用户获取收音机相关服务。
ohos.permission.NFC_TAG 允许应用读写 Tag 卡片。
ohos.permission.NFC_CARD_EMULATION 允许应用实现卡模拟功能。

受限开放的权限

受限开放的权限通常是不允许三方应用申请的。如果有特殊场景需要使用,请提供相关申请材料到应用市场申请相应权限证书。如果应用未申请相应的权限证书,却试图在 config.json 文件中声明此类权限,将会导致应用安装失败。另外,由于此类权限涉及到用户敏感数据或危险操作,当应用申请到权限证书后,还需按照动态申请权限的流程向用户申请授权。

权限分类名称 权限名 说明
信息 ohos.permission.READ_MESSAGES 允许应用读取短信息。
ohos.permission.RECEIVE_MMS 允许应用接收彩信。
ohos.permission.RECEIVE_SMS 允许应用接收短信息。
ohos.permission.RECEIVE_WAP_MESSAGES 允许应用接收WAP消息。
ohos.permission.SEND_MESSAGES 允许应用发送短信。
ohos.permission.READ_CELL_MESSAGES 允许应用读取小区广播消息。
通话记录 ohos.permission.READ_CALL_LOG 允许应用读取通话记录。
ohos.permission.WRITE_CALL_LOG 允许应用在设备上添加、修改和删除通话记录。
通讯录 ohos.permission.READ_CONTACTS 允许应用读取联系人数据。
ohos.permission.WRITE_CONTACTS 允许应用添加、移除和更改联系人数据。
电话 ohos.permission.ANSWER_CALL 允许应用接听来电。
鸿蒙OS 权限开发指导
鸿蒙OS 生物特征识别概述
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

鸿蒙OS 开发

鸿蒙OS 术语

鸿蒙OS Java API参考

鸿蒙OS ohos.aafwk.ability

鸿蒙OS ohos.aafwk.abilityjet.activedata

鸿蒙OS ohos.aafwk.content

鸿蒙OS java.lang

鸿蒙OS java.Util

鸿蒙OS java.Util class

鸿蒙OS ohos.data.dataability

鸿蒙OS ohos.data.dataability class

鸿蒙OS ohos.agp.components

鸿蒙OS ohos.agp.components interface

鸿蒙OS ohos.agp.components class

鸿蒙OS ohos.global.configuration

鸿蒙OS java.io

鸿蒙OS ohos.data.resultset

鸿蒙OS ohos.data.resultset interface

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }