HarmonyOS各类硬件或敏感信息访问的权限

在华为 HarmonyOS 应用开发中,涉及各类硬件或敏感信息访问的权限需在配置文件(module.json5)中声明,部分危险权限还需动态申请。以下是你提到的相关权限名称及说明(基于 HarmonyOS API 9 及以上版本,具体以官方最新文档为准):

功能需求权限名称权限类型说明
摄像头ohos.permission.CAMERA危险权限用于访问设备摄像头,需动态申请。
话筒(麦克风)ohos.permission.MICROPHONE危险权限用于访问设备麦克风(录音、语音输入等),需动态申请。
日历(读取)ohos.permission.READ_CALENDAR危险权限用于读取系统日历数据,需动态申请。
日历(写入)ohos.permission.WRITE_CALENDAR危险权限用于修改系统日历数据,需动态申请。
位置(前台)ohos.permission.LOCATION危险权限用于在应用前台时获取设备位置信息(如 GPS),需动态申请。
位置(后台)ohos.permission.LOCATION_IN_BACKGROUND危险权限用于应用在后台时持续获取位置信息,需动态申请(需额外声明)。
通信录(读取)ohos.permission.READ_CONTACTS危险权限用于读取系统联系人数据(姓名、电话等),需动态申请。
通信录(写入)ohos.permission.WRITE_CONTACTS危险权限用于修改系统联系人数据,需动态申请。
内部存储访问无需单独声明默认权限应用可直接访问自身沙箱内的内部存储(如/data/data/包名),无需额外权限。
蓝牙(基础)ohos.permission.BLUETOOTH普通权限用于启用蓝牙、查询蓝牙状态等基础操作,仅需声明。
蓝牙(管理)ohos.permission.BLUETOOTH_ADMIN危险权限用于配对蓝牙设备、修改蓝牙设置等,需动态申请。
蓝牙(扫描)ohos.permission.ACCESS_BLUETOOTH_SCAN危险权限用于扫描附近蓝牙设备,需动态申请(API 10+)。
蓝牙(连接)ohos.permission.ACCESS_BLUETOOTH_CONNECT危险权限用于连接蓝牙设备,需动态申请(API 10+)。
外部存储(读取)ohos.permission.READ_EXTERNAL_STORAGE危险权限用于读取外部存储(如 SD 卡)中的文件,需动态申请(API 9 及以下)。
外部存储(写入)ohos.permission.WRITE_EXTERNAL_STORAGE危险权限用于写入外部存储,需动态申请(API 9 及以下;API 10 + 推荐使用更细化的媒体权限)。
指纹(生物识别)ohos.permission.USE_BIOMETRIC危险权限用于使用生物识别(包括指纹、面部等)进行身份验证,需动态申请。
RFC(推测为 NFC)ohos.permission.NFC危险权限用于访问近场通信(NFC)功能,需动态申请。
陀螺仪ohos.permission.GYROSCOPE普通权限用于访问陀螺仪传感器数据,仅需声明(API 8+)。
Type-C 数据口ohos.permission.USB_ACCESSORY危险权限用于通过 Type-C 接口与外部设备(如 U 盘、外设)通信,需动态申请。
Type-C 数据口(管理)ohos.permission.MANAGE_USB危险权限用于管理 USB 设备连接、配置等高级操作,需动态申请。

注意事项:

  1. 权限类型区分

    • 危险权限(如摄像头、位置):必须在module.json5中声明,并在代码中通过requestPermissionsFromUser动态申请,用户授权后才能使用。
    • 普通权限(如陀螺仪、基础蓝牙):仅需在module.json5中声明,无需动态申请。
  2. API 版本差异:部分权限(如蓝牙扫描 / 连接、外部存储)在 API 10 + 中有细化调整,建议结合目标设备的 API 版本选择权限(可通过@syscap标注适配范围)。

  3. 配置文件声明示例:在module.json5requestPermissions中添加权限:

{
  "module": {
    "requestPermissions": [
      { "name": "ohos.permission.CAMERA" },
      { "name": "ohos.permission.LOCATION" }
    ]
  }
}

5.动态申请示例:通过AbilityContextrequestPermissionsFromUser申请危险权限:

import { abilityAccessCtrl, Permissions } from '@ohos.abilityAccessCtrl';

async requestCameraPermission() {
  let context = getContext(this) as common.UIAbilityContext;
  let atManager = abilityAccessCtrl.createAtManager();
  try {
    // 检查是否已授权
    let status = await atManager.checkPermission(context, Permissions.CAMERA);
    if (status === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED) {
      console.log("已授权摄像头权限");
    } else {
      // 申请权限
      let result = await context.requestPermissionsFromUser([Permissions.CAMERA]);
      if (result.grantedPermissions.length > 0) {
        console.log("用户授权摄像头权限");
      } else {
        console.log("用户拒绝摄像头权限");
      }
    }
  } catch (err) {
    console.error("权限申请失败:", err);
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值