步骤1:
纳入程序包依赖项
纳入程序包依赖项
如果您的应用在安装应用时提供免费直播内容,或者您想在应用更新时更新频道时间表数据,则应创建或更新onInstallOrUpdateTask来计划您的EPG同步任务。否则,您可以跳过此步骤。
onInstallOrUpdateTask
[components]
## <其他与组件相关的条目>
[[components.task]]
## 定义需要运行“应用安装/更新时”的任务
id = "<程序包ID>.onInstallOrUpdateTask"
runtime-module = "/com.amazon.kepler.headless.runtime.loader_2@IKeplerScript_2_0"
## 为每个组件定义一个进程组
[processes]
## <其他与进程相关的条目>
[[processes.group]]
component-ids = ["<程序包ID>.onInstallOrUpdateTask"]
[tasks]
## 要求系统在安装和应用更新时运行'onInstallOrUpdateTask'任务
[[tasks.work]]
component-id = "<程序包ID>.onInstallOrUpdateTask"
mode = "install"
定义应用在安装/更新时运行的任务,方法是在src文件夹中创建包含以下内容的OnInstallOrUpdate.ts文件。请注意此任务在应用安装和 (OTA) 更新时运行。
import {EpgSyncTaskScheduler} from '@amazon-devices/kepler-epg-sync-scheduler';
import { UtcTimePropertiesBuilder } from '@amazon-devices/kepler-epg-sync-scheduler';
const doTask = async (): Promise<void> => {
console.info('安排EPG同步任务');
// 待办事项: 选择以下选项之一以安排EPG同步任务。
// 如果多次调用“scheduleTask()”或“scheduleTaskWithExecutionWindow()”,
// 则最新的EPG同步任务方法调用将在重新启动时履行并保留。
// 选项1: 以给定的间隔安排EPG同步任务。
// 如果启用了此项,请确保在tst/task/OnInstallOrUpdateTask.test.ts中启用了“scheduleTask”的测试。
await EpgSyncTaskScheduler.scheduleTask(
'<程序包ID>.epgSyncTask', // 同步任务的组件ID
60 * 24, // 24小时(以分钟为单位)
);
// 选项2: 用执行窗口安排任务,即在UTC时间每天凌晨2点到4点之间运行任务。
// 如果启用了此项,请确保在tst/task/OnInstallOrUpdateTask.test.ts中启用了“scheduleTaskWithExecutionWindow”的测试。
// let timeProperties = new UtcTimePropertiesBuilder()
// .startHour(2)
// .startMinute(0)
// .startSecond(0)
// .executionWindowInMinutes(120)
// .build();
// await EpgSyncTaskScheduler.scheduleTaskWithExecutionWindow(
// '<程序包ID>.epgSyncTask', // 同步任务的组件ID
// timeProperties,
// );
};
export default doTask;
当您的onInstallOrUpdate
任务运行时,您应该会看到和如下所示类似的日志行:
INFO ktf.tm.nests:Successfully scheduled EPG Sync task
Last updated: 2025年9月30日