短信发送修改方案:
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)