当前位置:   article > 正文

DevEcoStudio:鸿蒙系统的权限申请_鸿蒙系统申请相机权限只有一次

鸿蒙系统申请相机权限只有一次


前言

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


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

一、权限的申请

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

二、申请步骤

1.静态声明

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

config.json文件

config.json代码如下(示例):
你如果想申请多个权限,依次用{}隔开就行。

"module": {
    "reqPermissions": [
      {
        "name": "ohos.permission.CAMERA",
        "reason": "需要拍摄照片",
        "usedScene":{
          "ability": ["com.example.helloworld.MainAbility"],
          "when": "always"
        }
      }
    ],{
            ...
            }
        ]
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

官方对字段的详细描述
①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();
        }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在这里插入图片描述最后要注意的地方就是DevEcoStudio自带的ToastDialog。使用它的时候一定要记得给他设置延长时间(setDuration()),否则将会出现不显示等问题。

 new ToastDialog(this).setText("请前往设置授予相机限").setDuration(2000).show();
  • 1

总结

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/247667?site
推荐阅读
相关标签
  

闽ICP备14008679号