本文共 1407 字,大约阅读时间需要 4 分钟。
一.在新版本上添加一个提醒: 下面的说明适合pluto 和 cosmos,在10A1108MP之后的版本上添加一个提醒。 具体步骤如下: 1, 在 srv_reminder_type 中添加type; 2,在当前 app的res 文件中注册EVT_ID_SRV_REMINDER_NOTIFY 的 callback; 例如: <RECEIVER id="EVT_ID_SRV_REMINDER_NOTIFY" proc="mmi_theme_rmdr_notify"/> 3,在对应的 app 文件中实现callback,处理srv_reminder_notify_enum 中的消息;可以参考其他的app; 注意,定义的闹钟响应完了,需要执行 srv_reminder_notify_finish 来清除定时器。 关于设置alarm,请使用 srv_reminder_set;如果是要设置重复提醒,需要当前app做处理,在前一次提醒响应后,计算并设置下一个提醒; 取消alarm,使用srv_reminder_cancel; 关于下面原来创建 alarm 的四个函数,现在不需要使用了: AlmSetExpiryTimeCB(ALM_TYPE_ALARM, AlmExpiryTimeCBH); AlmSetExpiryHandlerCB(ALM_TYPE_ALARM, AlmExpiryHandlerCB); AlmSetInitHandlerCB(ALM_TYPE_ALARM, AlmInitNvram, AlmReInitQueueCBH); AlmSetStopAlarmCB(ALM_TYPE_ALARM, AlmSnoozeHandler); 请参考注册消息 EVT_ID_SRV_REMINDER_NOTIFY 的地方; 例如: theme 中注册的情况: <RECEIVER&NBSP;ID="EVT_ID_SRV_REMINDER_NOTIFY"&NBSP;PROC="MMI_THEME_RMDR_NOTIFY" /> 在 mmi_theme_rmdr_notify 中,就会处理EVT_ID_SRV_REMINDER_NOTIFY 带来的状态,是 srv_reminder_notify_enum 中的一种: /* Reminder notification enum */ typedef enum { SRV_REMINDER_NOTIFY_INIT, /* Ap should init reminder related data */ SRV_REMINDER_NOTIFY_EXPIRY, /* Reminder expiry */ SRV_REMINDER_NOTIFY_REINIT, /* If the current time is changed, AP should set all reminder time again */ SRV_REMINDER_NOTIFY_DEINIT, /* AT command ask for pwr-off, reminder need to notify all active type. */ SRV_REMINDER_NOTIFY_TOTAL /* End. */ } srv_reminder_notify_enum;转载地址:http://vvgdi.baihongyu.com/