跳到主要内容

屏幕时间

屏幕时间让父母能够决定孩子在已接入的应用上可以使用多久、以及可以在什么时间使用。规则保存在 k-ID 中,而不是在每个应用里各自实现,因此父母只需为您的产品设置一次上学日的限制,它就会应用于孩子对该产品的使用。使用时间按孩子、按天统计,而不是按会话统计,因此关闭应用后再打开不会重置当天的总量。

您的产品需要做两件事:报告玩家正在使用它,以及遵循 k-ID 返回的判定结果。保存规则、统计使用时间、计算安排以及告知当前的判定结果,都由 k-ID 完成。

父母可以设置的内容

父母在 Family Connect 中为孩子配置屏幕时间。一份安排包含三类规则,任何一类都可以不设置:

  • 每日限制:按星期设置的分钟上限。没有条目的日期没有限制;设置为 0 分钟的日期完全不允许使用。父母可以借此在上学日给两小时、在周末给三小时。
  • 安静时段:带名称的时间段,包含开始时间、结束时间以及适用的日期,例如工作日 21:0007:00就寝时间。安静时段是日历而不是预算:无论当天已使用多少时间,它们都会在这些时刻生效。
  • 休息提醒:一个间隔,连续处于同一会话中的孩子在超过该间隔后会收到休息提示。

每份安排都带有时区。时刻、星期以及每日重置都按该时区计算,因此限制会在当地时间的午夜重置,而不是在 UTC 午夜。

使用时间如何统计

每日计数器关联的是孩子和产品,而不是会话:每个产品、每个孩子、每个当地日期对应一个计数器。正因如此,一天之内多次中断再继续,限制依然有效;玩家关闭应用后再打开,当天的总量也不会丢失。

要做到这一点,玩家需要解析到您已经持有的那个会话。请保存会话中的 kuid 并重复使用它,而不是为每台设备打开一个新会话。请参阅会话

职责边界

k-ID 跟踪使用时间、计算安排并报告判定结果。限制在您产品中的具体形态由您的产品决定。

k-ID 从不屏蔽玩家、结束会话、将任何人登出,也不规定您的界面。达到限制时,k-ID 会告知限制已经达到以及何时解除。这意味着全屏拦截、只读模式、保存检查点还是温和的提示,是产品决策,且由您做出。

内容完全不在屏幕时间的范围内。屏幕时间关注的是多久和何时,而不是做什么。

在达到限制之前预警

在活动进行中被突然中断的孩子会丢失进度,也学不到任何东西。因此屏幕时间中的每项限制都有一个在它生效之前到达的信号:

之前生效时
剩余 15 分钟和 5 分钟时的 Screentime.LimitWarning每日限制生效时的 Screentime.LimitReached
时段开始前 15 分钟的 Screentime.QuietHoursWarning时段开始时的 Screentime.QuietHoursReached

请把每一对当作一个行为来处理。警告是您告知玩家、并让他们有机会到达存档点的时机。第二个事件是规则生效的时机。只处理第二个事件在技术上满足了 API,却破坏了这项设计。

警告在玩家仍处于会话中时发出,而这只有在您的产品实时报告会话边界时才可能实现。这一点如何影响您选择哪种数据上报方式,请参阅报告使用时间

向父母申请更多时间

遇到限制的孩子可以提出申请,而不是无从选择。您的产品通过 /screentime/request-override 提交申请,k-ID 通知父母,父母在 Family Connect 中批准或拒绝。

结果会作为 Screentime.OverrideResult 到达,状态为 granteddeniedexpired。父母始终未作答的请求会在 24 小时后到期,这是正常结果而非失败。批准会提高当天的限制,但不会移除或更改安排。

屏幕时间与活动

屏幕时间是对使用时间的计数,而使用时间是产品向 k-ID 报告的活动之一。结束一个进行中的屏幕时间会话会把该时长记录为活动,因此它也会体现在父母在 Family Connect 中看到的使用情况中。这两项功能的配置与集成是分开进行的。

后续步骤