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