DevEcoStudio:鸿蒙系统的权限申请


前言

自己的第一篇关于鸿蒙系统的文章,本篇文章主要说的是鸿蒙系统权限的申请


提示:如果文章有什么问题欢迎指正,华为官方权限申请文档:开发-权限指导

一、权限的申请

安卓的权限申请过程是:先清单文件中静态声明,再根据是否需要版本适配,在代码中动态申请权限。
而ohos系统也类似于这个过程,不过它的权限申请起来稍微繁琐点,并且动态代码申请是必须有的。

二、申请步骤

1.静态声明

打开config.json文件,再该文件中进行权限的声明。
我们这里申请的是相机权限,其他权限可以去官方文档找。

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();

总结

提示:这里对文章进行总结:
以上就是这篇博客的全部内容,初次学习鸿蒙系统,有问题请评论区多多指教。

猜你喜欢

转载自blog.csdn.net/XL1583135614/article/details/114310627