CallerLogModel::GetInstance()->SetCallSource(CallerLogModel::CallSource::CallSourcePhone);
DisshakeTimer();
set_call_hungup_flag(0);
-
+ set_TransCallToMobilePhone_falg(0);
// If the call is handling in the notification, the slice is not switched
if (!CallerLogModel::GetInstance()->GetNotifyFlag())
TransCallToMobilePhone();
// If the call is handling in the notification, the slice is not switched
if (!CallerLogModel::GetInstance()->GetNotifyFlag()) {
- NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN); // 退出通话界面,回到主表盘应用
+ // NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN); // 退出通话界面,回到主表盘应用
} else {
g_isWatchCallView = false;
}
}
if (GetCurrCallNum() == 0) {
g_phoneStatus = PHONE_SINGLE_STATUS;
+
+ set_TransCallToMobilePhone_falg(0);
}
if(get_falg_SOS())
static int g_hdlDnSpk = INVALID_PHONE_SERVICE_VALUE;
static int g_hdlDnSco = INVALID_PHONE_SERVICE_VALUE;
+
+static uint8_t TransCallToMobilePhone_falg=0;
+
PhoneServiceCb g_callChanged;
void HfpIncomingEventPublish(uint16 topic, hfp_hf_calls_info_t callsInfo);
{
int ret;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[AudioConnectScoDevInit] start scoFlag:0x%x, audioState:0x%x",
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[AudioConnectScoDevInit] start scoFlag:0x%x, audioState:0x%x",
g_scoFlag, g_audioState);
if (g_scoFlag != HFP_SCO_STATE_CONNECTED || g_audioState < AUDIO_ACT_INTERRUPT_BT_SCO) {
+
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"AudioConnectScoDevInit");
return;
}
return;
}
+
+
ScoStatusCb(HFP_SCO_STATE_CONNECTED);
if (g_currCallState == HFP_HF_CALL_STATE_ACTIVE && g_scoFlag == HFP_SCO_STATE_CONNECTED) {
// The call is transferred from the phone to the watch. Need to show the call notification view.
ScoConnectPro();
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ScoStateChanged] SCO connecting!");
}
+ else
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[ScoStateChanged] SCO HFP_SCO_STATE_CONNECTING!");
+ }
+
break;
case HFP_SCO_STATE_CONNECTED:
// 同步音量
SyncVolume();
+ if(TransCallToMobilePhone_falg)
+ {
+ TransCallToMobilePhone();
+ }
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ScoStateChanged] SCO connected!");
break;
// SCO断连中
static void CallAudioHandle(const hfp_hf_calls_info_t *call)
{
int state = call->state;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[CallAudioHandle] start %d %d",state,call->in_band_ring);
+ //不能主动连接
+ // if (state == HFP_HF_CALL_STATE_INCOMING)
+ // TransCallToWatch();
if (state == HFP_HF_CALL_STATE_INCOMING || state == HFP_HF_CALL_STATE_DIALING ||
state == HFP_HF_CALL_STATE_ALERTING) { // 电话呼入,支持播放手机铃声
return PhoneAudioSetMicMute(isMute);
}
-static bool data;
+static uint8_t Mutecat1_data;
int32_t SetMicMutecat1(bool isMute)
{
- data=isMute;
- do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_CAT1_MIC_CTRL, &data, sizeof(bool));
+ Mutecat1_data=isMute;
+ do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_CAT1_MIC_CTRL, &Mutecat1_data, sizeof(bool));
return 0;
}
}
}
+
+void set_TransCallToMobilePhone_falg(uint8_t date)
+{
+ TransCallToMobilePhone_falg=date;
+}
// 通话转移到手机
int TransCallToMobilePhone(void)
{
ret = GetScoConnectState();
if (ret == HFP_SCO_STATE_DISCONNECTED || ret == HFP_SCO_STATE_DISCONNECTING) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[TransCallToMobilePhone] >>");
+ TransCallToMobilePhone_falg=1;
+
return OHOS_SUCCESS;
} else {
ret = hfp_hf_disconnect_sco(&g_bdAddr);
if (ret != 0) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[TransCallToMobilePhone] ret:%d", ret);
}
+ TransCallToMobilePhone_falg=1;
return ret;
}
}