一.在新版本上添加一个提醒:
下面的说明适合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;
下面的说明适合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;