背景

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"
      }
    ]
  }
}
  • 配置权限之后,需要重新签名

    File → Project 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

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

更多推荐