背景

Flutter OH 应用在调用某些系统功能时(如网络、相机、定位、存储等),需要在 ohos 原生侧声明相应权限。若未正确申请权限,可能导致 API 调用失败或应用崩溃。


权限声明位置

  • 在 ohos/entry/src/main/module.json5 文件的 module 内配置 requestPermissions 声明权限:
{
  "module": {
    "name": "entry",
    "type": "entry",
    "description": "$string:module_desc",
    "mainElement": "EntryAbility",
    "deviceTypes": [
      "phone",
      "tablet"
    ],
    "pages": "$profile:main_pages",
    // 权限声明在此处
    "requestPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ]
  }
}
  • 配置权限之后,需要重新签名

    FileProject Structure → Project → Signing Configs
    

功能与权限对照表

开发 Flutter OH 应用时,请根据功能场景,在 ohos 原生侧申请相应权限:

表格仅列出常用权限,更多权限请参考 应用权限列表

功能场景 所需权限 授权方式
网络请求 ohos.permission.INTERNET 系统授权
获取本应用信息 ohos.permission.GET_BUNDLE_INFO 系统授权
获取设备位置信息 ohos.permission.LOCATION_IN_BACKGROUND
ohos.permission.LOCATION
ohos.permission.APPROXIMATELY_LOCATION
用户授权
相机 ohos.permission.CAMERA 用户授权
麦克风 ohos.permission.MICROPHONE 用户授权
通讯录 ohos.permission.READ_CONTACTS
ohos.permission.WRITE_CONTACTS
用户授权
日历 ohos.permission.READ_CALENDAR
ohos.permission.WRITE_CALENDAR
ohos.permission.READ_WHOLE_CALENDAR
ohos.permission.WRITE_WHOLE_CALENDAR
用户授权
运动数据 ohos.permission.ACTIVITY_MOTION 用户授权
身体传感器 ohos.permission.READ_HEALTH_DATA 用户授权
图片和视频 ohos.permission.WRITE_IMAGEVIDEO
ohos.permission.READ_IMAGEVIDEO
ohos.permission.MEDIA_LOCATION
用户授权
音乐和音频 ohos.permission.WRITE_AUDIO
ohos.permission.READ_AUDIO
用户授权
跨应用关联 ohos.permission.APP_TRACKING_CONSENT 用户授权
设备发现和连接 ohos.permission.ACCESS_BLUETOOTH
ohos.permission.ACCESS_NEARLINK
ohos.permission.DISTRIBUTED_DATASYNC
用户授权
剪切板 ohos.permission.READ_PASTEBOARD` 用户授权
截屏 ohos.permission.CUSTOM_SCREEN_CAPTURE` 用户授权
文件夹 ohos.permission.READ_WRITE_DOWNLOAD_DIRECTORY
ohos.permission.READ_WRITE_DESKTOP_DIRECTORY
ohos.permission.READ_WRITE_DOCUMENTS_DIRECTORY
用户授权

权限与Profile

  • 开发调试时,权限可以在授权到临时签名文件里
  • 发布应用时,需要 申请发布Profile

问题反馈

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐