#include "msg_center_msg.h"
#include "cat1_server_hal.h"
#include "BluetoothModel.h"
+#include "notification_manager.h"
+#include "CallerLogModel.h"
#ifdef __cplusplus
extern "C" {
#endif
{
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "[ScoConnectPro] CallNum:%d, ScoFlag:%d", g_currCallNum, g_scoFlag);
// 通知sco建立连接(或通话转移:手机 -> 手表)
+ if(OHOS::CallerLogModel::GetInstance()->GetCallSource() == OHOS::CallerLogModel::CallSourceCat1
+ && OHOS::NotificationManager::GetInstance()->GetWatchCallStatus())
+ {
+ 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.
{
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "[ScoDisconnectPro] start CallState:%d", g_currCallState);
+ if(OHOS::CallerLogModel::GetInstance()->GetCallSource() == OHOS::CallerLogModel::CallSourceCat1
+ && OHOS::NotificationManager::GetInstance()->GetWatchCallStatus())
+ {
+ return;
+ }
+
ScoStatusCb(HFP_SCO_STATE_DISCONNECTED);
if (g_currCallState == HFP_HF_CALL_STATE_ACTIVE && g_scoFlag == HFP_SCO_STATE_DISCONNECTED) {
// The call is transferred from the watch to the phone. Need to close the call notification view.
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "call is null or BT disconnected connStatus: 0x%X", g_btConnState);
return;
}
+ if(OHOS::CallerLogModel::GetInstance()->GetCallSource() == OHOS::CallerLogModel::CallSourceCat1
+ && OHOS::NotificationManager::GetInstance()->GetWatchCallStatus())
+ {
+ return;
+ }
SetCompleteCallFlag(call);
CatCallStateChangedInfo(bdAddr, call);
int uapi_hfp_disconnect(void)
{
int ret;
- ret = hfp_hf_disconnect(&g_bdAddr);
+ bd_addr_t bdaddr={0};
+ get_phone_addr(&bdaddr);
+ ret = hfp_hf_disconnect(&bdaddr);
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "addr: ****%02x %02x %02x %02x g_bdAddr.type: %x\n",
- g_bdAddr.addr[3], g_bdAddr.addr[2], g_bdAddr.addr[1], g_bdAddr.addr[0], g_bdAddr.type); /* 3 2 1 0 idx */
+ bdaddr.addr[3], bdaddr.addr[2], bdaddr.addr[1], bdaddr.addr[0], bdaddr.type); /* 3 2 1 0 idx */
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[hfp_disconnect] ret:%X", ret);
return ret;
get_phone_addr(&bdaddr);
if(false==OHOS::uapi_get_acl_connect_state())
{
- // ret= gap_connect_remote_device(&bdaddr);
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[gap_connect_remote_device] ret:%X", ret);
+ // ret= gap_connect_remote_device(&bdaddr);
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[gap_connect_remote_device] ret:%X", ret);
// ret=OHOS::uapi_set_acl_connect_hfp();
ret=gap_reconnect_media_device(&bdaddr);
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[gap_connect_remote_device] ret:%X", ret);
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "addr: ****%02x %02x %02x %02x g_bdAddr.type: %x\n",
- g_bdAddr.addr[3], g_bdAddr.addr[2], g_bdAddr.addr[1], g_bdAddr.addr[0], g_bdAddr.type); /* 3 2 1 0 idx */
+ bdaddr.addr[3], bdaddr.addr[2], bdaddr.addr[1], bdaddr.addr[0], bdaddr.type); /* 3 2 1 0 idx */
return ret;
}
int uapi_hfp_connect_state(void)
{
int ret;
- ret = hfp_hf_get_device_connect_state(&g_bdAddr);
+ bd_addr_t bdaddr={0};
+ get_phone_addr(&bdaddr);
+ ret = hfp_hf_get_device_connect_state(&bdaddr);
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[hfp_connect_hfp] ret:%d", ret);
if(PROFILE_STATE_CONNECTED==ret || PROFILE_STATE_CONNECTING ==ret)
return 1;