1.需要先在配置文件中,声明应用需要请求的权限,且设置需要使用的场景+使用原因
"requestPermissions": [
// 申请的网络权限
{ "name": "ohos.permission.INTERNET" },
{
// 申请麦克风权限
"name": "ohos.permission.MICROPHONE",
"usedScene": {},
// 申请麦克风权限的原因
"reason": "$string:reason_microphone"
}
],
{
"name": "MICROPHONE",
"value": "用于说明为什么要申请麦克风权限"
}
2.调用 requestPermissionsFromUser() 方法后,应用程序将等待用户授权的结果。如果用户授权,则可以继续访问目标操作。如果用户拒绝授权,则需要提示用户必须授权才能访问当前页面的功能,并引导用户到系统应用“设置”中打开相应的权限。
3.拉起麦克风权限的授权提示框
示例代码如下:
import { abilityAccessCtrl } from '@kit.AbilityKit'
import { promptAction } from '@kit.ArkUI'
@Entry
@Component
struct AudioPage {
async aboutToAppear() {
// 1. 创建权限管理对象
const atManager = abilityAccessCtrl.createAtManager()
// 2. 弹窗授权窗口
const res = await atManager.requestPermissionsFromUser(getContext(this), ['ohos.permission.MICROPHONE'])
// 3. 判断用户是否授权
// abilityAccessCtrl.GrantStatus 枚举 0-PERMISSION_GRANTED(已授权) -1-PERMISSION_DENIED(未授权)
const flag = res.authResults.every(item => item === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED)
promptAction.showToast({ message: flag ? '已授权' : '已禁用' })
}
build() {
Column() {
Row()
.height(200)
.width('100%')
Button('开始录音')
}
}
}