# Accountkit-Codelab-MinorsMode-ArkTS **Repository Path**: harmonyos_codelabs/accountkit-codelab-minors-mode-ark-ts ## Basic Information - **Project Name**: Accountkit-Codelab-MinorsMode-ArkTS - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-30 - **Last Updated**: 2025-06-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 华为账号服务 ## 介绍 本示例展示了使用华为账号服务提供的未成年人模式相关能力,获取未成年人模式开启状态,订阅未成年人模式相关公共事件,开启系统的未成年人模式,关闭应用的未成年人模式等功能。 需要使用华为账号服务接口@kit.AccountKit。 ## 效果预览 | **未成年人模式未开启** | **未成年人模式已开启** | |------------------------------------------|------------------------------------------| | ![avatar](./screenshots/device/img1.png) | ![avatar](./screenshots/device/img2.png) | ## 本示例工程的配置与使用 ### 在DevEco中配置本示例工程的步骤如下 1. 请参考开发准备中的[配置签名信息](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/application-dev-overview#section42841246144813),选择自动签名方式。 #### 本示例工程使用说明 1. 当前应用启动后会订阅未成年人模式开启/关闭事件: * 当订阅到系统未成年人模式开启时,会再判断应用内未成年人模式单独关闭标记(userTurnOffFlag)是否为true(true表示用户主动关闭应用的未成年人模式),如果应用内单独关闭标记为true,则关闭应用内未成年人模式,如果应用内单独关闭标记为false(false表示用户未主动关闭应用的未成年人模式),则应用内未成年人模式开启,并获取适龄内容年龄段。 * 当订阅到系统未成年人模式关闭时,会关闭应用内未成年人模式,并设置应用内未成年人模式单独关闭标记为false。 2. 应用启动时,会调用 getMinorsProtectionInfoSync 接口,查询系统未成年人模式的开启状态,当查询到系统未成年人模式已关闭时,设置应用内未成年人模式单独关闭标记为false。 3. 当应用内未成年人模式未开启时,点击未成年人模式开关,如当前系统未成年人模式状态为已开启,则应用直接开启自身未成年人模式,展示当前从系统获取的年龄段信息;如当前系统未成年人模式状态为未开启,则引导用户开启系统未成年人模式。 4. 当应用内未成年人模式开启时,点击未成年人模式开关,系统会校验健康使用设备密码,校验通过后,应用的未成年人模式成功关闭,设置应用内未成年人模式单独关闭标记为true。 5. 当未成年人模式开启时,当前设备的开发者调试模式会被禁用,开发者可以进入设置-系统-开发者选项,点击USB调试开关,会校验健康使用设备密码,校验成功后可解除开发者调试模式限制。 ## 工程目录 ``` ├─entry/src/main/ets // 代码区 │ ├─common │ │ └─CommonEventUtil.ets // 公共事件工具类,定义了注册事件和相关回调 │ ├─entryability │ │ └─EntryAbility.ets // 程序入口类,订阅未成年人模式公共事件 │ ├─pages // 存放页面文件目录 │ │ └─Index.ets // 主页面,包括查询未成年人模式开启状态、开启系统的未成年人模式、关闭应用的未成年人模式等场景 ``` ## 具体实现 在@kit.AccountKit定义了华为账号服务接口API: * minorsProtection.getMinorsProtectionInfoSync() * minorsProtection.leadToTurnOnMinorsMode(this.getUIContext().getHostContext()) * minorsProtection.verifyMinorsProtectionCredential(this.getUIContext().getHostContext()) 业务使用前先完成接口导入 ``` import { minorsProtection } from '@kit.AccountKit'; ``` 参考 1. entry/src/main/ets/pages/Index.ets ## 相关权限 不涉及。 ## 依赖 依赖设备具备WIFI能力 ## 约束与限制 1. 本示例仅支持标准系统上运行,支持设备:phone、2in1、tablet,支持账号:中国境内(不包含中国香港、中国澳门、中国台湾)地区账号。 2. 本示例不支持大字体模式、横屏模式、隐私空间模式。 3. HarmonyOS系统:HarmonyOS NEXT Beta1及以上。 4. DevEco Studio版本:DevEco Studio NEXT Beta1及以上。 5. HarmonyOS SDK版本:HarmonyOS NEXT Beta1及以上。