BT call 接通,发送DTMF无界面显示
0赞[DESCRIPTION]
发送DTMF无界面显示。
[SOLUTION]来自半导体社区
BT Dialer v2.1及其以前版本,未添加此项功能。
可以参考下面的方法添加这部分功能:
(注:可以显示出输入数字,但不能发起第二个拨号)
(建议不要增加发起第二个拨号的响应,添加之后处理的case会变多,此部分没有进行过测试,会有风险)
1 .mcu\plutommi\MMI\BT_UCM\UcmBTRes\ucmbt.res文件中
1) 添加string id <STRING id="STR_ID_UCM_BT_DTMF"/>
2) 添加一个screen id <SCREEN id="SCR_ID_UCM_BT_DTMF_EDITOR"/>
3) 添加一个menu id
<MENU id="MENU_ID_UCM_BT_INCALL_OPTION" type="OPTION" str="STR_GLOBAL_OPTIONS">
<MENUITEM_ID>MENU_ID_UCM_BT_INCALL_OPTION_HOLD</MENUITEM_ID>
<MENUITEM_ID>MENU_ID_UCM_BT_INCALL_OPTION_RETRIEVE</MENUITEM_ID>
<MENUITEM_ID>MENU_ID_UCM_BT_INCALL_OPTION_SWAP</MENUITEM_ID>
<MENUITEM_ID>MENU_ID_UCM_BT_INCALL_OPTION_DTMF</MENUITEM_ID> // 添加此行
<MENUITEM_ID>MENU_ID_UCM_BT_INCALL_OPTION_MUTE</MENUITEM_ID>
<MENUITEM_ID>MENU_ID_UCM_BT_INCALL_OPTION_UNMUTE</MENUITEM_ID>
<MENUITEM_ID>MENU_ID_UCM_BT_INCALL_OPTION_END_SINGLE</MENUITEM_ID>
<MENUITEM_ID>MENU_ID_UCM_BT_INCALL_OPTION_END_ALL</MENUITEM_ID>
</MENU>
4) 添加menu对应字串
<MENUITEM id="MENU_ID_UCM_BT_INCALL_OPTION_SWAP" str="STR_ID_UCM_BT_SWAP"/>
<MENUITEM id="MENU_ID_UCM_BT_INCALL_OPTION_DTMF" str="STR_ID_UCM_BT_DTMF"/> // 添加此行
<MENUITEM id="MENU_ID_UCM_BT_INCALL_OPTION_MUTE" str="STR_GLOBAL_MUTE"/>
2. mcu\plutommi\MMI\BT_UCM\ref_list_ucmbt.txt 中添加STR_ID_UCM_BT_DTMF对应的内容
3. UcmUiBT.c文件
1) 将void mmi_ucm_send_dtmf_action_bt(void)函数及其实现替换为:
static void mmi_ucm_send_dtmf_action_bt(U16 keyCode)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U8 asc_digit;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
asc_digit = mmi_ucm_convert_dtmf_to_ascii_bt(&keyCode);
MMI_TRACE(MMI_COMMON_TRC_G5_CALL, TRC_MMI_UCM_BT_SEND_DTMF, asc_digit);
if((asc_digit == (U8)'*')
|| (asc_digit == (U8)'#')
|| ((asc_digit >= (U8)'0') && (asc_digit <= (U8)'9')))
{
srv_bt_dialer_send_generate_dtmf_tone_req(srv_hd,asc_digit);
}
}
2) 添加声明
static void mmi_ucm_enter_dtmf_editor_bt(void);
static void mmi_ucm_pre_entry_dtmf_editor_bt(void);
static void mmi_ucm_send_dtmf_by_key(void);
3) 添加下面函数
static void mmi_ucm_send_dtmf_by_key(void)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
U16 keyCode = 0, keyType = 0;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
GetkeyInfo(&keyCode, &keyType);
if (MMI_FALSE == wgui_inputs_dialer_is_dialer_keys(keyCode))
{
return;
}