mt2503 打完电话返回BT电话本时一直显示“正在加载”
时间:10-02
整理:3721RD
点击:
[DESCRIPTION]
BT电话本查看电话号码后,进选项选择“呼叫”,立刻取消呼叫,返回BT电话本时一直显示“正在加载”
[SOLUTION]
1. UcmKernelBT.c文件
MMI_ucm_sync_call_list
{
//.....
else if (g_num_cur_calls < g_num_calls) // decrease
{
MMI_TRACE(MMI_COMMON_TRC_G5_CALL, TRC_MMI_UCM_BT_SYNC_DECREASE);
// GSM active -> SP connect -> GSM end -> SP mo/mt -> end SP
if (call_state_cntx[0].call_state == SRV_UCM_BT_BT_IDLE_STATE)
{
return MMI_UCM_BT_ACTION_NONE;
}
if (g_num_cur_calls == 0)
{
MMI_TRACE(MMI_COMMON_TRC_G5_CALL, TRC_MMI_UCM_BT_SYNC_DECREASE_SINGLE,
0,call_state_cntx[0].call_state,
call_state_cntx[0].num_uri[0],
call_state_cntx[0].num_uri[1],
call_state_cntx[0].num_uri[2]);
meMCPy(&g_ucm_p_bt->release_call_info, &call_state_cntx[0], sizeof(mmi_ucm_call_state_cntx_struct));
#ifdef __BT_PBAP_CLIENT__ // 添加此处
if (call_state_cntx[0].pbapc_handle)// 添加此处
{
srv_phb_pbapc_destory_handle(call_state_cntx[0].pbapc_handle);// 添加此处
}
#endif /* __BT_PBAP_CLIENT__ */// 添加此处
mEMSet(&call_state_cntx[0], 0, sizeof(mmi_ucm_call_state_cntx_struct));
}
}
//...
}
2. UcmKernelBT.C文件,替换mmi_ucm_clean_all_bt函数
void mmi_ucm_clean_all_bt(void)
{
#ifdef __BT_PBAP_CLIENT__
S32 i;
#endif /* __BT_PBAP_CLIENT__ */
MMI_TRACE(MMI_COMMON_TRC_G5_CALL, TRC_MMI_UCM_BT_CLEAN_ALL);
#ifdef __BT_PBAP_CLIENT__
for (i = 0; i < SRV_UCM_BT_MAX_CALL; i++)
{
if (g_ucm_call_state.pbapc_handle)
{
srv_phb_pbapc_destory_handle(g_ucm_call_state.pbapc_handle);
}
}
#endif /* __BT_PBAP_CLIENT__ */
memset(g_ucm_p_bt, 0, sizeof(mmi_ucm_bt_cntx_struct));
memset(g_ucm_call_state, 0, SRV_UCM_BT_MAX_CALL*sizeof(mmi_ucm_call_state_cntx_struct));
memset(g_ucm_call_state_temp, 0, SRV_UCM_BT_MAX_CALL*sizeof(mmi_ucm_call_info_cntx_struct));
g_num_calls = 0;
}
3. UcmUiBT.c
请在所有srv_phb_pbapc_destory_handle(call_state->pbapc_handle);语句后添加:
call_state->pbapc_handle = NULL; // 共添加三处
BT电话本查看电话号码后,进选项选择“呼叫”,立刻取消呼叫,返回BT电话本时一直显示“正在加载”
[SOLUTION]
1. UcmKernelBT.c文件
MMI_ucm_sync_call_list
{
//.....
else if (g_num_cur_calls < g_num_calls) // decrease
{
MMI_TRACE(MMI_COMMON_TRC_G5_CALL, TRC_MMI_UCM_BT_SYNC_DECREASE);
// GSM active -> SP connect -> GSM end -> SP mo/mt -> end SP
if (call_state_cntx[0].call_state == SRV_UCM_BT_BT_IDLE_STATE)
{
return MMI_UCM_BT_ACTION_NONE;
}
if (g_num_cur_calls == 0)
{
MMI_TRACE(MMI_COMMON_TRC_G5_CALL, TRC_MMI_UCM_BT_SYNC_DECREASE_SINGLE,
0,call_state_cntx[0].call_state,
call_state_cntx[0].num_uri[0],
call_state_cntx[0].num_uri[1],
call_state_cntx[0].num_uri[2]);
meMCPy(&g_ucm_p_bt->release_call_info, &call_state_cntx[0], sizeof(mmi_ucm_call_state_cntx_struct));
#ifdef __BT_PBAP_CLIENT__ // 添加此处
if (call_state_cntx[0].pbapc_handle)// 添加此处
{
srv_phb_pbapc_destory_handle(call_state_cntx[0].pbapc_handle);// 添加此处
}
#endif /* __BT_PBAP_CLIENT__ */// 添加此处
mEMSet(&call_state_cntx[0], 0, sizeof(mmi_ucm_call_state_cntx_struct));
}
}
//...
}
2. UcmKernelBT.C文件,替换mmi_ucm_clean_all_bt函数
void mmi_ucm_clean_all_bt(void)
{
#ifdef __BT_PBAP_CLIENT__
S32 i;
#endif /* __BT_PBAP_CLIENT__ */
MMI_TRACE(MMI_COMMON_TRC_G5_CALL, TRC_MMI_UCM_BT_CLEAN_ALL);
#ifdef __BT_PBAP_CLIENT__
for (i = 0; i < SRV_UCM_BT_MAX_CALL; i++)
{
if (g_ucm_call_state.pbapc_handle)
{
srv_phb_pbapc_destory_handle(g_ucm_call_state.pbapc_handle);
}
}
#endif /* __BT_PBAP_CLIENT__ */
memset(g_ucm_p_bt, 0, sizeof(mmi_ucm_bt_cntx_struct));
memset(g_ucm_call_state, 0, SRV_UCM_BT_MAX_CALL*sizeof(mmi_ucm_call_state_cntx_struct));
memset(g_ucm_call_state_temp, 0, SRV_UCM_BT_MAX_CALL*sizeof(mmi_ucm_call_info_cntx_struct));
g_num_calls = 0;
}
3. UcmUiBT.c
请在所有srv_phb_pbapc_destory_handle(call_state->pbapc_handle);语句后添加:
call_state->pbapc_handle = NULL; // 共添加三处
能分享一下mtk的源代码吗?