bigbaicai

芯方式是以半导体人、电子工程师等电子行业相关领域从业人员为核心的知识经验学习、分享、交流社群。 凭借开放、合作、共赢的运营理念,聚集了来自国内外知名院校和顶尖科技公司的半导体人、电子工程师。 我们致力于营造专业、认真、有温度的分享交流环境,将高质量的内容和方案成规模地生产和分享,帮助个人和团队在芯方式找到有价值的Key。 http://www.icfans.com/

为了避免浪费用户流量 ,如何阻止手机不支持的文件类型下载下来?

0
阅读(867)

[DESCRIPTION]
阻止手机不支持的文件类型下载下来,并popup窗口提示,以避免浪费用户的流量
[SOLUTION]
(1) g_applib_mime_tbl[]里面列出了多种MIME TYPE,认为这里列出的MIME TYPE是手机支持的,不在这个table里
的MIME TYPE是手机不支持的
(2) 下载不支持的文件类型时,弹出“不支持的内容”,不会进入下载界面。
(3) 在mmi_da_recv_wap_file_dl_ind() 里, 黑色为原代码, 红色为后添加半导体代码
static void mmi_da_recv_wap_file_dl_ind(void*MsgStruct, int mod_src, void *ilm_p)
{
……………….//中间代码省略
mime_type = mmi_da_util_lookup_mime_type(
(U8*)(msg->mime_type),
mmi_da_util_get_extension((U16*)msg->file_name),
0,
0);
DA_TRACE1(MMI_DA_TRC_MIMETYPE,(S32)(mime_type != NULL ? mime_type-> mime_subtype : 0));
/************don't dl unsupport type file*********************/
if (msg->mime_type!=NULL && applib_mime_type_look_up(msg->mime_type, NULL, 0, 0) == NULL)
{
mmi_da_popup(STR_ID_DA_OMA_NON_ACCEPTABLE_CONTENT_MSG, MMI_DA_POPUP_TYPE_ERROR);
mmi_da_send_wap_file_dl_res(msg->session_id, WAP_DL_ERROR_CANCELLED, NULL);
return;
}
/************ don't dl unsupport type file END****************/
type_handler = mmi_da_search_mime_type_handler(mime_type)
……………….
}
补充: 如果是COSMOS版本,或者11B12.16MP及其之后的DL APP 与service分离之后的版本,对应的接口是以 srv_ 开头
,而不是 mmi_ 。
如果是很早很早之前的版本,如07A ,对应的接口是 mmi_da_download_file()
如果只是为了阻止某种已知的类型的下载,也可以在这个函数中,针对某一种多媒体类型进行判断处理。