当前位置: 代码迷 >> 综合 >> Opera书签在短信或者彩信文本中发送
  详细解决方案

Opera书签在短信或者彩信文本中发送

热度:98   发布时间:2024-01-19 20:15:16.0
短信发送修改方案: 
1). 在函数OperaApi_SendByCarrier(int no, const char *url, int url_len)中增加变量 
U16 url_ucs2_len; 
char *url_ucs2; 
修改如下code: 
case STR_ID_OPERA_SEND_BOOKMARK_SMS:  
 /*convert url to ucs2 string*/ 
 url_ucs2_len = mmi_charset_utf8_to_ucs2_length_in_bytes((const kal_uint8 *)url); 
 url_ucs2 = (char*) get_ctrl_buffer(url_ucs2_len + 2); 
 mmi_chset_convert(MMI_CHSET_UTF8, MMI_CHSET_UCS2, (char *)url, url_ucs2, url_ucs2_len + 2); 
opera_adp_comm_mmi_send_bookmark_via_sms(OpDev_GetGroupId(), url_ucs2, url_ucs2_len); //this function
is modified, please refer to its define. 
free_ctrl_buffer(url_ucs2); 
break; 
2). 修改函数opera_adp_comm_mmi_send_bookmark_via_sms, 
void opera_adp_comm_mmi_send_bookmark_via_sms(mmi_id parent_gid, char *url_buff, U16 url_length) 
{ 
 MMI_TRACE(MMI_INET_TRC_G4_BRW, OPERA_ADP_COMM_MMI_SEND_BOOKMARK_VIA_SMS, parent_gid); 
 if (g_opera_adp_comm_ctx.sms_parent_gid != GRP_ID_INVALID) 
 { 
 return; 
 } 
 /* Create screen group (send bookmark via sms) and attach proc opera_adp_send_bkm_via_sms_proc. */
 
 g_opera_adp_comm_ctx.sms_parent_gid =  
mmi_frm_group_create(parent_gid, GRP_ID_AUTO_GEN, opera_adp_send_bkm_via_sms_proc, NULL); 
 /* Enter screen group (send bookmark via sms). */ 
 mmi_frm_group_enter(g_opera_adp_comm_ctx.sms_parent_gid, 0); 
 /* Create sms send CUI. */ 
 g_opera_adp_comm_ctx.sms_cui_gid = cui_sms_send_create(g_opera_adp_comm_ctx.sms_parent_gid);  
if (g_opera_adp_comm_ctx.sms_cui_gid == GRP_ID_INVALID) 
 {  
 /* Fail to create sms send CUI. */ 
 mmi_frm_group_close(g_opera_adp_comm_ctx.sms_parent_gid); 
 }  
else { cui_sms_set_send_content_text_for_bookmark(g_opera_adp_comm_ctx.sms_cui_gid,
url_buff, url_length); //新定义函数 
  
 /* Run sms send CUI */ 
 cui_sms_send_run(g_opera_adp_comm_ctx.sms_cui_gid); 
 } 
} 
3). 参考cui_sms_set_send_content_text,新定义函数 
void cui_sms_set_send_content_text_for_bookmark(mmi_id sms_gid, char *content_buff, U16 content_size) 
{ 
 cui_sms_send_handle_data_struct *hd_data; 
 MMI_TRACE(MMI_COMMON_TRC_G6_MSG, TRC_CUI_SMS_SENDER_SET_SEND_CONTENT_TEXT, sms_gid); 
 if (sms_gid != GRP_ID_INVALID) 
 { 
 hd_data = cui_sms_get_send_handle_data(sms_gid); 
 hd_data->para_flag |= SRV_SMS_PARA_DCS; 
 hd_data->dcs = SRV_SMS_DCS_7BIT; 
 hd_data->para_flag |= SRV_SMS_PARA_CONTENT_BUFF;  
 hd_data->content_buff = OslMalloc(content_size); 
 mmi_ucs2ncpy((S8*)hd_data->content_buff, (S8*) content_buff, (U32)content_size); 
 hd_data->content_buff_size = content_size; 
 } 
} 
 
 
彩信修改部分如下: 
1) 在函数OperaApi_SendByCarrier()中找到MMS的分支,将: 
opera_adp_comm_mmi_send_bookmark_via_mms(OpDev_GetGroupId(), (unsigned char)filename)= 
修改为: 
opera_adp_comm_mmi_send_bookmark_via_mms(OpDev_GetGroupId(),url,url_len) 
2). 在函数opera_adp_comm_mmi_send_bookmark_via_mms()中将 
mms_content_insert_hdlr()替换为: 
mms_text_insert_hdlr(NULL,0,url,rul_len)