【鸿蒙应用开发】【HCIA认证】模拟题每日1练(第8题) 原创

发布于 2021-8-31 15:57
浏览
28收藏

【鸿蒙应用开发】【HCIA认证】模拟题每日1练(第8题)-开源基础软件社区

选项A,权限GET_DISTRIBUTED_DEVICE_INFO用于获取分布式组网内的设备列表和设备信息。

选项B,权限DISTRIBUTED_DEVICE_STATE_CHANGE用于获取分布式组网内设备的状态变化。

选项C,权限GET_BUNDLE_INFO用于查询其他应用的信息。

选项A、B、C这3个权限都为非敏感权限。非敏感权限不涉及用户的敏感数据或危险操作,仅需在config.json中申请,应用安装后即被系统授权。

选项D,权限DISTRIBUTED_DATASYNC用于不同设备间的数据交换。该权限为敏感权限。敏感权限涉及用户的敏感数据或危险操作,除了在config.json中申请之外,还需要在代码中动态申请,通过运行时发送弹窗的方式请求用户授权。

所以,这道题的答案是A、B、C。

在config.json中,A、B、C、D对应的权限全都需要通过"reqPermissions"进行申请。在MainAbility的回调方法onStart()中,还必须动态申请config.json中的敏感权限。如下所示:

public class MainAbility extends Ability {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setMainRoute(MainAbilitySlice.class.getName());

        // 将所有要动态申请的权限存放在一个字符串数组中
        String[] permissions = {
                "ohos.permission.DISTRIBUTED_DATASYNC"};
        // 初始化可以动态申请权限的列表
        List<String> canRequestPermissions = new ArrayList<>();
        // 遍历所有要动态申请的权限
        for (String permission : permissions) {
            // 如果当前应用没有被用户授予指定的权限
            if (verifySelfPermission(permission) != IBundleManager.PERMISSION_GRANTED) {
                // 如果可以动态申请指定的权限
                if (canRequestPermission(permission)) {
                    // 将指定的权限添加到可以动态申请权限的列表中
                    canRequestPermissions.add(permission);
                }
            }
        }
        // 通过运行时发送弹窗的方式请求用户授予指定的权限
        requestPermissionsFromUser(
                canRequestPermissions.toArray(new String[0]), 0);
    }
}

将所有要动态申请的权限存放在一个字符串数组中,然后遍历该数组。对于遍历过程中的当前迭代权限permission,如果当前应用没有被用户授予该权限,再进行判断,如果可以动态申请该权限,那么就将该权限添加到一个列表中,这需要在for循环之前构造一个列表。如果不可动态申请该权限,说明已被用户或系统禁止授权。

for循环结束后,调用方法requestPermissionsFromUser(),通过运行时发送弹窗的方式请求用户授予指定的权限,传入的第一个参数,是列表canRequestPermissions对应的数组;传入的第二个参数,是一个非负的整数,表示请求码,我们指定为0。

运行工程,弹出一个对话框,询问用户是否允许使用多设备协同,也就是通过运行时发送弹窗的方式请求用户授权。如下图所示:

【鸿蒙应用开发】【HCIA认证】模拟题每日1练(第8题)-开源基础软件社区

 

向大家推荐由我的教学团队开发的视频课程《鸿蒙应用开发HCIA认证超细致精讲》:

https://edu.51cto.com/course/28571.html

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
标签
HCIA_Exercise8.zip 1.28M 113次下载
已于2021-8-31 15:57:05修改
32
收藏 28
回复
举报
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源 去关联
    相关推荐