前言
自己的第一篇关于鸿蒙系统的文章,本篇文章主要说的是鸿蒙系统权限的申请
提示:如果文章有什么问题欢迎指正,华为官方权限申请文档:开发-权限指导
一、权限的申请
安卓的权限申请过程是:先清单文件中静态声明,再根据是否需要版本适配,在代码中动态申请权限。
而ohos系统也类似于这个过程,不过它的权限申请起来稍微繁琐点,并且动态代码申请是必须有的。
二、申请步骤
1.静态声明
打开config.json文件,再该文件中进行权限的声明。
我们这里申请的是相机权限,其他权限可以去官方文档找。
config.json代码如下(示例):
你如果想申请多个权限,依次用{}隔开就行。
"module": {
"reqPermissions": [
{
"name": "ohos.permission.CAMERA",
"reason": "需要拍摄照片",
"usedScene":{
"ability": ["com.example.helloworld.MainAbility"],
"when": "always"
}
}
],{
...
}
]
}
}
①name:根据自己所需要的权限找到对应的名字。
②reason:如果申请的是user_grant权限则必须要填,可以让用户看你需要权限的理由。
③usedScene中:ability:输入 可以使用的ability路径名;when:使用时间
2.代码动态申请权限
代码如下(示例):
if (verifySelfPermission("ohos.permission.CAMERA") != IBundleManager.PERMISSION_GRANTED) {
//应用权限未被授予
if (canRequestPermission("ohos.permission.CAMERA")) {
//验证是否可以申请弹窗授权(首次申请或者用户未选择禁止且不再提示)
requestPermissionsFromUser(new String[]{
"ohos.permission.CAMERA"}, MY_PERMISSION_REQUEST_CAMERA);
} else {
//显示应用权限需要权限的理由,提示用户进入设置授权
new ToastDialog(this).setText("请前往设置授予相机限").setDuration(2000).show();
}
} else {
new ToastDialog(this).setText("相机权限已被授予").setDuration(2000).show();
}
最后要注意的地方就是DevEcoStudio自带的ToastDialog。使用它的时候一定要记得给他设置延长时间(setDuration()),否则将会出现不显示等问题。
new ToastDialog(this).setText("请前往设置授予相机限").setDuration(2000).show();
总结
提示:这里对文章进行总结:
以上就是这篇博客的全部内容,初次学习鸿蒙系统,有问题请评论区多多指教。