Screentime.OverrideResult
当屏幕时间豁免请求得到处理时发出:父母批准、父母拒绝,或请求在无人答复的情况下到期。这是对 /screentime/request-override 调用的答复,也是您的产品获知结果的唯一途径。
请为您的端点订阅此事件
k-ID 只会把 Screentime.OverrideResult 投递给已订阅它的端点,其余端点会被丢弃,既不尝试投递也不报错。请在产品的 Developer Settings 页面为您的端点选择它。请参阅开始之前。
一个请求恰好产生一个 Screentime.OverrideResult。请通过 data.id 将它与请求关联,该值就是 /screentime/request-override 返回的 id。
字段
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
eventType | string | 是 | 始终为 "Screentime.OverrideResult" |
data | object | 是 | 豁免结果数据 |
data.id | string (UUID) | 是 | 豁免请求 ID,与 /screentime/request-override 返回的 id 一致 |
data.sessionId | string (UUID) | 是 | 申请豁免的会话 ID |
data.productId | number | 是 | 产品 ID |
data.status | string | 是 | granted、denied 或 expired |
data.state | object | 是 | 决定生效后的屏幕时间状态,结构与 GET /screentime/get-state 的响应相同 |
示例
{
"eventType": "Screentime.OverrideResult",
"data": {
"id": "2e9b7c41-8d6a-4f23-bc15-3a8e9d0f1b62",
"sessionId": "b1a6482d-5242-4b4a-aa88-3fa52595a672",
"productId": 42,
"status": "granted",
"state": {
"enabled": true,
"access": {
"allowed": true
},
"state": {
"timeUsedTodayMinutes": 120,
"continuousUsageMinutes": 45,
"timeLimitTodayMinutes": 150,
"timeRemainingTodayMinutes": 30,
"dayResetsAt": "2026-06-25T00:00:00Z"
},
"schedule": {
"timezone": "UTC",
"breakReminderIntervalMinutes": 45,
"dailyLimits": [
{ "day": "mon", "limitMinutes": 120 },
{ "day": "sat", "limitMinutes": 180 }
],
"quietHours": [
{
"name": "Bedtime",
"days": ["mon", "tue", "wed", "thu", "fri"],
"start": "21:00",
"end": "07:00"
}
]
}
}
}
}
被拒绝的结果结构相同,规则保持不变:
{
"eventType": "Screentime.OverrideResult",
"data": {
"id": "2e9b7c41-8d6a-4f23-bc15-3a8e9d0f1b62",
"sessionId": "b1a6482d-5242-4b4a-aa88-3fa52595a672",
"productId": 42,
"status": "denied",
"state": {
"enabled": true,
"access": {
"allowed": false,
"details": {
"reason": "limit_reached",
"resumesAt": "2026-06-25T00:00:00Z"
}
},
"state": {
"timeUsedTodayMinutes": 120,
"continuousUsageMinutes": 45,
"timeLimitTodayMinutes": 120,
"timeRemainingTodayMinutes": 0,
"dayResetsAt": "2026-06-25T00:00:00Z"
}
}
}
}
状态
status | 含义 |
|---|---|
granted | 父母批准了请求。当天的可用时长已增加额外分钟数。 |
denied | 父母拒绝了请求。当天的规则没有变化。 |
expired | 父母在请求后 24 小时内未作答。当天的规则没有变化。 |
expired 不是错误,也不是投递失败。请求到期后,玩家可以提交新的请求。
状态已包含在负载中
data.state 与 GET /screentime/get-state 的响应结构相同,并且是在决定生效之后计算得出的。您无需再次请求即可知道玩家是否可以继续游玩:读取 state.access.allowed,若为批准,则读取提高后的 state.state.timeLimitTodayMinutes 和 state.state.timeRemainingTodayMinutes。
豁免获批会提高当天的限制,因此 access.allowed 可能在没有任何后续事件的情况下重新变为 true。当玩家用完额外时间并达到提高后的限制时,不会再发出第二次 Screentime.LimitReached,因为该事件对每位玩家每天最多只发出一次。