鸿蒙学习实战之路-STG系列(1/11)-屏幕时间守护服务全攻略

鸿蒙学习实战之路-STG系列(1/11)-屏幕时间守护服务全攻略

朋友们,是不是经常遇到家长控诉:"我家孩子天天抱着手机打游戏,能不能帮忙做个应用限制一下?"或者想给自己开发一个专注模式应用,在指定时间段禁止使用某些娱乐应用?别慌,HarmonyOS 提供了 Screen Time Guard Kit(屏幕时间守护服务),可以帮我们实现应用时间管理、使用限制等功能 o(╯□╰)o

今天这篇,我就手把手带你了解 Screen Time Guard Kit,教你怎么用它来实现各种屏幕时间管控功能,全程不超过5分钟(不含你思考应用场景的时间)~


一、Screen Time Guard Kit 是什么?

Screen Time Guard Kit 是 HarmonyOS 提供的一个屏幕时间管控能力包,说白了就是"家长控制"和"专注模式"的官方实现方案。

它提供了以下核心能力:

  1. 用户授权管理 - 请求用户授权、取消授权、查询授权状态
  2. 应用选择页 - 拉起半模态页面让用户选择要管控的应用
  3. 守护策略管理 - 添加、修改、查询、删除、启动、停止时间策略
  4. 应用访问限制 - 立即生效的允许/禁止管理

🥦 西兰花小贴士 :

这个 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 有一些限制,大家要注意:

  1. 设备限制: 只支持 Phone、Tablet,支持模拟器
  2. 地区限制: 目前只支持中国境内(港澳台除外)
  3. 空间限制: 只能在主空间调用,不支持隐私空间
  4. 应用限制: 不支持调用方的分身应用接入

🥦 西兰花警告 :

如果你的应用要出海,这个功能就得想别的办法了,目前只支持国内用户~


五、开发准备

在开始使用 Screen Time Guard Kit 之前,需要做以下准备工作:

1. 配置签名

调试阶段需要在 AGC 中:

  • 申请调试证书
  • 注册调试设备
  • 申请调试 Profile
  • 手动配置签名信息

发布阶段需要:

  • 重新申请发布证书
  • 申请发布 Profile 文件
  • 完成手动配置签名信息

2. 申请受限 ACL 权限

这是重点!Screen Time Guard Kit 需要申请 ohos.permission.MANAGE_SCREEN_TIME_GUARD 权限。

具体步骤:

  1. 登录 AppGallery Connect
  2. 找到你的项目,选择需要申请权限的应用
  3. 在"项目设置"页面,选择"ACL权限"页签
  4. 搜索"ohos.permission.MANAGE_SCREEN_TIME_GUARD",勾选并提交申请
  5. 填写申请原因,提交后 1 个工作日回复
  6. 权限申请通过后,在申请 Profile 文件时选择"受限ACL权限"
  7. 在 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 提供的屏幕时间管控能力包,可以帮助我们实现各种时间管理功能。

核心要点:

  1. 支持三种时间策略:起止时间、总时长、共享时长
  2. 支持两种限制类型:允许清单、禁止清单
  3. 需要申请受限 ACL 权限
  4. 需要用户授权才能使用
  5. 支持模拟器调试
  6. 只支持中国境内

这个 Kit 非常适合做家长控制、专注模式、数字健康类应用,而且官方提供的 API 设计得很合理,用起来也比较顺手 _


下一步行动

建议你:

  1. 先阅读官方文档,了解整体架构
  2. 在 AGC 中申请 ACL 权限
  3. 准备好测试设备(真机或模拟器)
  4. 按照系列文章逐步实现各个功能
  5. 结合自己的应用场景设计产品功能

记住,不教理论,只给你能跑的代码和避坑指南! _


我是盐焗西兰花,

不教理论,只给你能跑的代码和避坑指南。

下期见!🥦

相关推荐
啊阿狸不会拉杆2 小时前
《机器学习导论》第 17 章 - 组合多学习器
人工智能·python·学习·算法·机器学习·聚类·集成学习
阿林来了2 小时前
Flutter三方库适配OpenHarmony【flutter_speech】— Core Speech Kit 概述
flutter·harmonyos
一只大侠的侠2 小时前
HarmonyOS实战:React Native实现Popover弹出位置精准控制
react native·华为·harmonyos
qq_433502182 小时前
收集了一些免费视频背景映月素材网站分享记录
经验分享·学习·音视频·生活
前路不黑暗@2 小时前
Java项目:Java脚手架项目的通用组件的封装(七)
java·开发语言·spring boot·后端·学习·spring cloud·maven
Aliex_git2 小时前
Gitlab Runner 配置实践
笔记·学习·ci/cd·gitlab
松叶似针2 小时前
Flutter三方库适配OpenHarmony【secure_application】— Window 管理与 getLastWindow API
flutter·harmonyos
●VON2 小时前
HarmonyOS应用开发实战(基础篇)Day05-《常见布局Row和Column》
学习·华为·harmonyos·鸿蒙·von
前端不太难2 小时前
鸿蒙 App 架构重建后,为何再次失控
架构·状态模式·harmonyos