美文网首页
鸿蒙学习-权限

鸿蒙学习-权限

作者: 学渣中的战斗渣 | 来源:发表于2021-04-20 11:17 被阅读0次

本文章基于SDK(API Version 5)进行开发

权限分类

权限的grantMode是system_grant(非敏感权限),则权限会在当应用安装的时候被自动授予。

权限的grantMode是user_grant(敏感权限),则必须经用户手动授权(用户在弹框中授权或进入权限设置界面授权)才可使用。用户会看到reason字段中填写的理由,来帮助用户决定是否给予授权。

权限申请

开发者需要在config.json文件中的“reqPermissions”字段中声明所需要的权限。

{

"module": {

"reqPermissions": [

            {

                //必须,填写需要使用的权限名称。

                "name":"ohos.permission.CAMERA",

                //可选,当申请的权限为user_grant权限时此字段必填。描述申请权限的原因,目前reason参数对应的功能没有实现,但是华为建议填写

                "reason":"$string:permreason_camera",

                //可选,当申请的权限为user_grant权限时此字段必填。描述权限使用的场景和时机。场景类型有:ability、when(调用时机)。可配置多个ability。目前usedScene参数对应的功能没有实现,但是华为建议填写

                "usedScene":

                {

                    "ability": ["com.mycamera.Ability","com.mycamera.AbilityBackground"],

                       "when":"always"

                }

            },{

            ...

            }

        ]

    }

}

请求权限

if (verifySelfPermission("ohos.permission.CAMERA") != IBundleManager.PERMISSION_GRANTED) {

// 应用未被授予权限

    if (canRequestPermission("ohos.permission.CAMERA")) {

        // 是否可以申请弹框授权(首次申请或者用户未选择禁止且不再提示)

        requestPermissionsFromUser(new String[] {"ohos.permission.CAMERA" } ,1111);

      }else {

        //上次申请权限时用户选择“禁止后不再提示”

        // 显示应用需要权限的理由,提示用户进入设置授权

    }

}else {

// 权限已被授予

}

//在Ability中的onRequestPermissionsFromUserResult权限申请进行回调

@Override

public void onRequestPermissionsFromUserResult(int requestCode, String[] permissions,int[] grantResults) {

    switch (requestCode) {

        case 1111: {

            // 匹配requestPermissions的requestCode

            if (grantResults.length >0

                    && grantResults[0] == IBundleManager.PERMISSION_GRANTED) {

                // 权限被授予

                // 注意:因时间差导致接口权限检查时有无权限,所以对那些因无权限而抛异常的接口进行异常捕获处理

            }else {

                // 权限被拒绝

            }

}

}

}

相关文章

  • 鸿蒙学习-权限

    本文章基于SDK(API Version 5)进行开发 权限分类 权限的grantMode是system_gran...

  • 鸿蒙Harmony 权限申请--动态权限申请

    权限相关开发,在HarmonyOS开发文档里面,是放在安全这一章节,见官方文档[https://developer...

  • 在鸿蒙系统上实现权限请求框架—桃夭

    一、简介 桃夭是鸿蒙系统上的一款权限请求框架,对请求权限的代码进行高度封装,极大的简化了申请权限的代码逻辑,同时支...

  • 鸿蒙应用配置文件简介

    鸿蒙应用的配置文件 安卓有个清单文件,四大组件、权限等都需要在清单文件中注册,清单文件是个xml文件。类似的,鸿蒙...

  • 零基础学鸿蒙编程-运行时权限

    什么是运行时权限 为了更好的保护用户隐私及安全,鸿蒙引入运行时动态权限检查机制.应用需要访问一些涉及用户隐私及安全...

  • 鸿蒙学习-ListContainer

    ListContainer是用来呈现连续、多行数据的组件,包含一系列相同类型的列表项。 自有XML属性 rebou...

  • 鸿蒙学习-ScrollView

    ScrollView是一种带滚动功能的组件,它采用滑动的方式在有限的区域内显示更多的内容。 ScrollView的...

  • 鸿蒙学习-PageFlipper

    PageFlipper:翻页器,当PageFlipper有两个或多个子组件时,切换期间设置动画时,PageFlip...

  • 鸿蒙学习-ToastDialog

    ToastDialog:在窗口上方提供toast对话框,以通知操作的简单反馈。Toast对话框不可单击,它将自动消...

  • 鸿蒙学习-Checkbox

    Checkbox实现选中和取消选中的功能。从代码上看和RadioButton没有区别,但是由于SDK并没有开源,没...

网友评论

      本文标题:鸿蒙学习-权限

      本文链接:https://www.haomeiwen.com/subject/kwnglltx.html