int uapi_a2dp_snk_connect(void);\r
int uapi_a2dp_snk_disconnect(void);\r
int uapi_disconnect_remote_device(void);\r
+int uapi_get_acl_connect_state(void);\r
+int uapi_set_acl_connect_hfp(void);\r
\r
\r
#ifdef __cplusplus\r
}\r
}\r
}\r
+static uint8_t ALC_State_flag=0;\r
\r
+static uint8_t ALC_connect_hfp_flag=0;\r
// 回调:ACL连接状态上报\r
void GapAclStateChangedCallback(const bd_addr_t *bdAddr, gap_acl_state_t state, unsigned int reason)\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "addr: %02x%02x%02x%02x%02x%02x",\r
bdAddr->addr[5], bdAddr->addr[4], bdAddr->addr[3], /* mac下标 0 1 2 3 4 5 */\r
bdAddr->addr[2], bdAddr->addr[1], bdAddr->addr[0]); /* mac下标 0 1 2 3 4 5 */\r
+ ALC_State_flag=state;\r
+\r
+ if(ALC_connect_hfp_flag && state==GAP_ACL_STATE_CONNECTED)\r
+ {\r
+ int ret= hfp_hf_connect(bdAddr);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bt hfp_hf_connect ret %X", ret);\r
+ ALC_connect_hfp_flag=0;\r
+ }\r
+ \r
+\r
if ((gap_get_device_class(bdAddr) & 0x200) != 0) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GapAclStateChangedCallback: Mobile Phone Device");\r
return;\r
get_phone_addr(&bdaddr);\r
if (bt_is_acl_connected(&bdaddr))\r
{\r
+ \r
int ret = gap_disconnect_remote_device(&bdaddr);\r
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "bluetooth_close_all gap_disconnect_remote_device ret = %u", ret);\r
}\r
return 0;\r
}\r
- \r
+\r
+\r
+int uapi_get_acl_connect_state()\r
+{\r
+ if( ALC_State_flag==GAP_ACL_STATE_DISCONNECTED )//|| ALC_State_flag ==GAP_ACL_STATE_LE_DISCONNECTED)\r
+ return 0;\r
+ else\r
+ return 1;\r
+}\r
+\r
+int uapi_set_acl_connect_hfp()\r
+{\r
+ ALC_connect_hfp_flag=1;\r
+ return 0;\r
+}\r
// /////////////////////////////////////////HFP hf端 代码///////////////////////////////////////////////////\r
\r
// int uapi_HFP_hf_connect()\r
int ret;
bd_addr_t bdaddr={0};
get_phone_addr(&bdaddr);
- // if(false==bt_is_acl_connected(&bdaddr))
- // {
- // ret= gap_connect_remote_device(&bdaddr);
-
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[bt_is_acl_connected] ret:%X", ret);
- // }
- // else
- // {
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[bt_is_acl_connected is true");
- // }
- // ret= hfp_hf_send_dtmf_tone(&bdaddr,'1');
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[hfp_hf_send_dtmf_tone] ret:%X", ret);
+ 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=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);
+ }
+ else
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[bt_is_acl_connected is true");
+ ret = hfp_hf_connect(&bdaddr);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[uapi_hfp_connect] ret:%X", ret);
+ }
+
+
- ret = hfp_hf_connect(&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 */
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[uapi_hfp_connect] ret:%X", ret);
return ret;
}