鸿蒙学习实战之路-STG系列(1/11)-屏幕时间守护服务全攻略
朋友们,是不是经常遇到家长控诉:"我家孩子天天抱着手机打游戏,能不能帮忙做个应用限制一下?"或者想给自己开发一个专注模式应用,在指定时间段禁止使用某些娱乐应用?别慌,HarmonyOS 提供了 Screen Time Guard Kit(屏幕时间守护服务),可以帮我们实现应用时间管理、使用限制等功能 o(╯□╰)o
今天这篇,我就手把手带你了解 Screen Time Guard Kit,教你怎么用它来实现各种屏幕时间管控功能,全程不超过5分钟(不含你思考应用场景的时间)~
一、Screen Time Guard Kit 是什么?
Screen Time Guard Kit 是 HarmonyOS 提供的一个屏幕时间管控能力包,说白了就是"家长控制"和"专注模式"的官方实现方案。
它提供了以下核心能力:
- 用户授权管理 - 请求用户授权、取消授权、查询授权状态
- 应用选择页 - 拉起半模态页面让用户选择要管控的应用
- 守护策略管理 - 添加、修改、查询、删除、启动、停止时间策略
- 应用访问限制 - 立即生效的允许/禁止管理
🥦 西兰花小贴士 :
这个 Kit 目前只支持 Phone 和 Tablet 设备,模拟器也能用,这个限制也合理吧?毕竟屏幕时间管控主要针对移动设备场景~
二、能做什么?
1. 三种时间策略类型
Screen Time Guard Kit 支持三种时间策略:
| 策略类型 | 说明 | 使用场景 |
|---|---|---|
| 起止时间策略 | 设定策略生效的开始时间和结束时间 | 工作日 9:00-18:00 禁止游戏 |
| 总时长策略 | 从当前开始的一个时间长度 | 每天只能刷抖音 2 小时 |
| 共享时长策略 | 多个应用共享同一可用时长 | 微信、QQ、抖音总共只能用 3 小时 |
2. 两种限制类型
| 限制类型 | 说明 | 举个例子 |
|---|---|---|
| 允许清单 | 只能使用清单中的应用 | 学习时间只能用学习类 App |
| 禁止清单 | 禁止使用清单中的应用 | 禁止使用游戏类 App |
3. 管控范围
所有应用都可以被管控,除了:
- 系统内置允许清单应用(时钟、电话等)
- 管控发起应用本身
- 已授权的管控应用
- 健康使用设备
🥦 西兰花警告 :
这些系统应用不能被管控是有道理的,不然用户连电话都打不出去,那可就尴尬了 o(╯□╰)o
三、核心概念
1. Token(应用标识)
Token 是被管控应用的唯一标识,就像应用的"身份证号"。
🥦 西兰花小贴士 :
Token 不包含应用的包名、应用名等信息,这是为了保护用户隐私安全。你只能知道这是个应用的标识,但不知道具体是哪个应用~
2. Guard Strategy(守护策略)
守护策略就是你要设置的规则,包含:
- 策略名称 - 给策略起个名字,比如"工作日专注模式"
- 时间策略 - 什么时候生效
- 应用信息 - 管控哪些应用
- 限制类型 - 允许还是禁止
3. TimeStrategy(时间策略)
时间策略有三种类型,对应上面的三种策略类型。
四、约束与限制
使用 Screen Time Guard Kit 有一些限制,大家要注意:
- 设备限制: 只支持 Phone、Tablet,支持模拟器
- 地区限制: 目前只支持中国境内(港澳台除外)
- 空间限制: 只能在主空间调用,不支持隐私空间
- 应用限制: 不支持调用方的分身应用接入
🥦 西兰花警告 :
如果你的应用要出海,这个功能就得想别的办法了,目前只支持国内用户~
五、开发准备
在开始使用 Screen Time Guard Kit 之前,需要做以下准备工作:
1. 配置签名
调试阶段需要在 AGC 中:
- 申请调试证书
- 注册调试设备
- 申请调试 Profile
- 手动配置签名信息
发布阶段需要:
- 重新申请发布证书
- 申请发布 Profile 文件
- 完成手动配置签名信息
2. 申请受限 ACL 权限
这是重点!Screen Time Guard Kit 需要申请 ohos.permission.MANAGE_SCREEN_TIME_GUARD 权限。
具体步骤:
- 登录 AppGallery Connect
- 找到你的项目,选择需要申请权限的应用
- 在"项目设置"页面,选择"ACL权限"页签
- 搜索"ohos.permission.MANAGE_SCREEN_TIME_GUARD",勾选并提交申请
- 填写申请原因,提交后 1 个工作日回复
- 权限申请通过后,在申请 Profile 文件时选择"受限ACL权限"
- 在 module.json5 中添加权限声明:
json5
{
"requestPermissions": [
{
"name": "ohos.permission.MANAGE_SCREEN_TIME_GUARD"
}
]
}
🥦 西兰花警告 :
这个权限申请需要 1 个工作日,记得提前申请!别等到项目上线前一天才想起来,那就惨了 o(╥﹏╥)o
六、整体业务流程
使用 Screen Time Guard Kit 的整体流程就像这样:
用户授权
↓
选择要管控的应用
↓
创建守护策略
↓
启动策略
↓
策略生效,应用被管控
↓
可以停止或删除策略
简单来说,就是"授权 → 选应用 → 定规则 → 启动 → 生效",是不是超简单? (┓( ´∀` )┏
七、核心功能模块
Screen Time Guard Kit 主要包含以下功能模块:
1. 用户授权管理
- 请求用户授权
- 取消用户授权
- 查询授权状态
- 监听授权状态变化
2. 应用选择页
- 拉起应用选择页,让用户选择要管控的应用
- 拉起许可应用跳转页,在被管控期间快速跳转到许可应用
3. 守护策略管理
- 添加策略
- 修改策略
- 查询策略
- 删除策略
- 启动策略
- 停止策略
4. 应用访问限制
- 设置应用访问限制(允许/禁止)
- 解除应用访问限制
八、典型应用场景
1. 家长控制应用
帮家长控制孩子的手机使用时间:
- 学习时间禁止游戏
- 限制娱乐应用使用时长
- 睡前禁止使用手机
2. 专注模式应用
帮助用户提升专注力:
- 工作时间禁止社交应用
- 学习时间只能使用学习类应用
- 设置专注时长,时间到后自动解除限制
3. 数字健康应用
帮助用户管理屏幕使用时间:
- 统计各应用使用时长
- 设置每日使用限额
- 提供使用报告和建议
九、开发指南概览
接下来的系列文章,我会按照以下顺序详细介绍 Screen Time Guard Kit 的各个功能:
| 序号 | 文章标题 | 内容 |
|---|---|---|
| 85 | STG系列(1/11)-屏幕时间守护服务全攻略 | 简介、核心概念、开发准备 |
| 86 | STG系列(2/11)-配置签名与权限申请 | 签名配置、ACL 权限申请 |
| 87 | STG系列(3/11)-用户授权管理详解 | 请求授权、取消授权、监听变化 |
| 88 | STG系列(4/11)-应用选择页功能详解 | 拉起选择页、拉起跳转页 |
| 89 | STG系列(5/11)-守护策略管理-添加与修改策略 | 如何添加和修改策略 |
| 90 | STG系列(6/11)-守护策略管理-查询与删除策略 | 如何查询和删除策略 |
| 91 | STG系列(7/11)-守护策略管理-启动与停止策略 | 如何启动和停止策略 |
| 92 | STG系列(8/11)-守护策略管理完整实战 | 策略管理综合实战案例 |
| 93 | STG系列(9/11)-应用访问限制-设置限制 | 如何立即限制应用访问 |
| 94 | STG系列(10/11)-应用访问限制-解除限制 | 如何解除应用访问限制 |
| 95 | STG系列(11/11)-Screen Time Guard Kit完整实战案例 | 完整应用开发案例 |
十、文档资源
官方文档链接:
十一、总结
Screen Time Guard Kit 是 HarmonyOS 提供的屏幕时间管控能力包,可以帮助我们实现各种时间管理功能。
核心要点:
- 支持三种时间策略:起止时间、总时长、共享时长
- 支持两种限制类型:允许清单、禁止清单
- 需要申请受限 ACL 权限
- 需要用户授权才能使用
- 支持模拟器调试
- 只支持中国境内
这个 Kit 非常适合做家长控制、专注模式、数字健康类应用,而且官方提供的 API 设计得很合理,用起来也比较顺手 _
下一步行动
建议你:
- 先阅读官方文档,了解整体架构
- 在 AGC 中申请 ACL 权限
- 准备好测试设备(真机或模拟器)
- 按照系列文章逐步实现各个功能
- 结合自己的应用场景设计产品功能
记住,不教理论,只给你能跑的代码和避坑指南! _
我是盐焗西兰花,
不教理论,只给你能跑的代码和避坑指南。
下期见!🥦