OpenHarmony Flutter-原生侧权限申请说明
·
背景
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
问题反馈
- 问题反馈:欢迎在 Flutter框架仓库 以及各个Flutter三方库提交 issue。
更多推荐

所有评论(0)