前置知识: HarmonyOS

权限申请

00:00
1 min Advanced 2026/6/14

HarmonyOS权限申请详解:requestPermissionsFromUser。

1. 声明权限

// module.json5
{
  "requestPermissions": [
    {
      "name": "ohos.permission.INTERNET"
    },
    {
      "name": "ohos.permission.CAMERA",
      "reason": "$string:camera_reason",
      "usedScene": {
        "abilities": ["EntryAbility"],
        "when": "inuse"
      }
    }
  ]
}

2. 运行时申请

import abilityAccessCtrl from '@ohos.abilityAccessCtrl';

async function requestCameraPermission() {
  const atManager = abilityAccessCtrl.createAtManager();

  try {
    const result = await atManager.requestPermissionsFromUser(getContext(this), [
      'ohos.permission.CAMERA',
    ]);

    if (result.authResults[0] === 0) {
      console.log('权限已授予');
    } else {
      console.log('权限被拒绝');
    }
  } catch (err) {
    console.error('申请权限失败:', err);
  }
}

3. 权限类型

类型示例授权方式
normalINTERNET安装时自动授予
system_basicCAMERA运行时弹窗
system_coreMANAGE_USERS系统应用

知识检测

学习进度

-- 已学文档
--% 知识覆盖率

学习推荐

专注模式