MTK10A之短信函数解读

来源:互联网 发布:php 地方门户系统 编辑:程序博客网 时间:2024/05/16 17:20

提到短信,很多人最想知道的是短信列表的保存,本人也找了好久,在plutommi\service\smssrv下有一个SmsFolderListSrv.c的文件,短信列表就定义在此。

另外,提到短信的还有SmsAppSendMsg.c

static U16 srv_sms_inbox_size;
static U16 srv_sms_outbox_size;
static U16 
srv_sms_drafts_size;
#ifdef __SRV_SMS_UNSENT_LIST__
static U16 
srv_sms_unsent_size;
#endif
#ifdef __SRV_SMS_SIMBOX_SUPPORT__
static 
U16 srv_sms_sim_size;
#endif
#ifdef __SRV_SMS_ARCHIVE__
static U16 
srv_sms_archive_size;
#endif /* __SRV_SMS_ARCHIVE__ */

以上部分定义的是各个短信箱的短信数量。

static U16 srv_sms_inbox_list[SRV_SMS_MAX_SMS_ENTRY];
static U16 
srv_sms_outbox_list[SRV_SMS_MAX_SMS_ENTRY];
static U16 
srv_sms_drafts_list[SRV_SMS_MAX_SMS_ENTRY];
#ifdef 
__SRV_SMS_UNSENT_LIST__
static U16 
srv_sms_unsent_list[SRV_SMS_MAX_SMS_ENTRY];
#endif /* __SRV_SMS_UNSENT_LIST__ 
*/
#ifdef __SRV_SMS_SIMBOX_SUPPORT__
static U16 
srv_sms_sim_list[SRV_SMS_MAX_SMS_ENTRY];
#endif /* __SRV_SMS_SIMBOX_SUPPORT__ 
*/
#ifdef __SRV_SMS_ARCHIVE__
static U16 
srv_sms_archive_list[SRV_SMS_MAX_ARCH_ENTRY];
#endif /* __SRV_SMS_ARCHIVE__ 
*/

以上部分定义的是各个短信箱中信息ID列表数组。以上是短信数组的核心部分,是用户最关心的短信列表。下面来介绍具体的列表操作函数。

void srv_sms_list_init(void):列表初始化函数

U16 srv_sms_get_unread_sms_num(void):获取未读短信数量函数

U16 srv_sms_get_unread_sim_sms_num(void):获取SIM卡中未读短信数量函数

U16 srv_sms_get_msg_id(srv_sms_box_enum msg_box_type, U16 list_index):通过短信箱类型和列表索引号获得短信息ID,这里说一下,列表索引号即刚才所定义的对应数组的下标

U16 srv_sms_get_list_size(srv_sms_box_enum msg_box_type):很常用的一个函数,通过短信箱类型获取其元素个数

srv_sms_box_enum srv_sms_get_list_type(srv_sms_status_enum status, srv_sms_storage_enum storage_type, srv_sms_folder_enum folder_id):通过短信息类型、存储位置、文件夹属性之一或许短信箱类型

U16 srv_sms_get_msg_list_index(srv_sms_box_enum* msg_box_type, U16 msg_id):通过短信息ID获取短信箱类型和短信息在对应短信箱中的索引值。编程时经常不使用该函数的返回值,但是该返回值是索引值和信息ID值关联的途径,有时候会起到很大作用。切不可只看到srv_sms_get_msg_list_index(&msg_box_type, msg_id);就认为该函数只能获得短信息的信箱类型。

void srv_sms_copy_msg_list(srv_sms_box_enum msg_box_type, srv_sms_storage_enum dest_storage, srv_sms_sim_enum sim_id, SrvSmsCallbackFunc callback_func, void* user_data):拷贝所有源(手机或SIM1、SIM2卡)短信到目标位置

void srv_sms_move_msg_list(srv_sms_box_enum msg_box_type, srv_sms_storage_enum dest_storage, srv_sms_sim_enum sim_id, SrvSmsCallbackFunc callback_func, void* user_data):移动所有源短信到目标位置

void srv_sms_delete_msg_list(srv_sms_box_enum msg_box_type, srv_sms_sim_enum sim_id, SrvSmsCallbackFunc callback_func, void* user_data):删除所有指定位置(手机或SIM1、SIM2卡)短信

再来看SmsStorageInterfaceSrv.c文件:

MMI_BOOL srv_sms_is_msg_exist(U16 msg_id):判断信息ID为msg_id的信息是否存在

void srv_sms_read_msg(U16 msg_id, MMI_BOOL change_status, srv_sms_msg_data_struct* msg_data, SrvSmsCallbackFunc callback_func, void *user_data):通过或msg_id读取信息到队列并注册回调函数。该函数并不显示信息内容,一般信息显示内容在回调函数中。

void srv_sms_change_msg_status(U16 msg_id, srv_sms_status_enum status, SrvSmsCallbackFunc callback_func, void *user_data):修改信息状态并注册回调函数。

void srv_sms_sort_msg(U16 *msg_id_array, U16 msg_num, srv_sms_sort_enum sort_flag, srv_sms_order_enum order_flag):信息排序,目前只支持按时间排序,若需要其它排序方式可在此添加。

const S8* srv_sms_get_msg_asc_address(U16 msg_id):读取信息地址,以ASCII字符串返回

void srv_sms_get_msg_address(U16 msg_id, S8* ucs2_addr_buff):读取信息地址,以UCS2字符流返回

void srv_sms_get_msg_timestamp(U16 msg_id, MYTIME *time_stamp):获取信息时间,以MYTIME类型结构体指针返回

U32 srv_sms_get_msg_timestamp_utc_sec(U16 msg_id):获取信息时间,以UTC秒数返回

srv_sms_pid_enum srv_sms_get_msg_pid(U16 msg_id):获得信息协议ID

srv_sms_status_enum srv_sms_get_msg_status(U16 msg_id):获取信息状态

srv_sms_sim_enum srv_sms_get_msg_sim_id(U16 msg_id):获取信息所属SIM卡

U16 srv_sms_get_msg_size(U16 msg_id):获取信息大小

原创粉丝点击