权限分类
HarmonyOS根据接口所涉数据的敏感程度或所涉能力的安全威胁影响,定义了不同开放范围与授权方式的权限来保护数据。
当前权限的开放范围分为:
- all:所有应用可用
- signature:平台签名应用可用
- privileged:预制特权应用可用
- restricted:证书可控应用可用
应用在使用对应服务的能力或数据时,需要申请对应权限。
- 已在config.json文件中声明的非敏感权限,会在应用安装时自动授予,该类权限的授权方式为系统授权(system_grant)。
- 敏感权限需要应用动态申请,通过运行时发送弹窗的方式请求用户授权,该类权限的授权方式为用户授权(user_grant)。
当应用调用服务时,服务会对应用进行权限检查,如果没有对应权限则无法使用该服务。
本章节给出了HarmonyOS所有可供第三方应用申请的应用权限。HarmonyOS已定义的全量权限列表详见《API参考》中的“ohos.security.SystemPermission”。
敏感权限
敏感权限的申请需要按照动态申请流程向用户申请授权。
权限分类名称 |
权限名 |
说明 |
---|---|---|
位置 |
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.DISTRIBUTED_DATASYNC |
允许不同设备间的数据交换。 |
ohos.permission.DISTRIBUTED_DATA |
允许应用使用分布式数据的能力。 |
|
媒体 |
ohos.permission.MEDIA_LOCATION |
允许应用访问用户媒体文件中的地理位置信息。 |
ohos.permission.READ_MEDIA |
允许应用读取用户外部存储中的媒体文件信息。 |
|
ohos.permission.WRITE_MEDIA |
允许应用读写用户外部存储中的媒体文件信息。 |
非敏感权限
非敏感权限不涉及用户的敏感数据或危险操作,仅需在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_CONTACTS |
允许应用读取联系人数据。 |
通讯、备份和恢复用户信息等 |
ohos.permission.WRITE_CONTACTS |
允许应用添加、移除和更改联系人数据。 |