--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
+ * Description: BluetoothModel view
+ * Author:
+ * Create: 2021-10-13
+ */
+
+#ifndef C_BLUETOOTH_MODEL_H_
+#define C_BLUETOOTH_MODEL_H_
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int uapi_a2dp_snk_connect_(void);
+int uapi_a2dp_snk_disconnect_(void);
+//int uapi_disconnect_remote_device_(void);
+
+int uapi_reconnect_(void);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif
*/\r
#include <cstdint>\r
#include "BluetoothModel.h"\r
+#include "BluetoothModelC.h"\r
+\r
#include "BluetoothWrapper.h"\r
#include "BluetoothPresenter.h"\r
#include "ConnectPhonePresenter.h"\r
#include "bts_spp.h"\r
#include "osal_task.h"\r
#include "bts_pbap.h"\r
-\r
+#include "ConfigModelC.h"\r
+#include "custom_utils.h"\r
#ifdef SUPPORT_ALIPAY_SEC\r
#include "alipay_feature.h"\r
#endif\r
#include "BluetoothWrapper.h"\r
#endif\r
#include "Bluetooyhpabpserver.h"\r
+#include "bletest.h"\r
namespace OHOS {\r
\r
#define BT_SPP_TASK_STACK_SIZE 2048\r
\r
/**TODO: 断开BR链接**/\r
bd_addr_t bdaddr={0};\r
- get_phone_addr(&bdaddr);\r
+ uapi_get_br_address(&bdaddr);\r
if (bt_is_acl_connected(&bdaddr))\r
{\r
ret = gap_disconnect_remote_device(&bdaddr);\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BtGapPairStatusChangedCallback addr: ****%02x%02x%02x%02x status: %d\n",\r
bdAddr->addr[3], bdAddr->addr[2], bdAddr->addr[1], bdAddr->addr[0], status); /* addr下标 0 1 2 3 */\r
memcpy(&BtGapPair_bdAddr,bdAddr,sizeof(bd_addr_t));\r
- uapi_a2dp_snk_connect();\r
+ // if(status == GAP_PAIR_PAIRED)\r
+ // { \r
+ if(cm_custom_ble_service_on_flag() && !get_ble_pair())\r
+ {\r
+ uapi_a2dp_snk_connect();\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uapi_a2dp_snk_connect");\r
+ }\r
+ \r
+ //}\r
//uapi_a2dp_snk_connect();\r
//a2dp_snk_connect(bdAddr);\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
+ //效果不好\r
+ if(!cm_custom_ble_service_on_flag())\r
+ {\r
+ gap_disconnect_remote_device(bdAddr);\r
+ }\r
\r
//ALC_State_flag=state;\r
\r
\r
void uapi_get_br_address(bd_addr_t *bdaddr)\r
{\r
+ \r
if(BtGapPair_bdAddr.addr[0]==0 && BtGapPair_bdAddr.addr[1]==0 &&\r
BtGapPair_bdAddr.addr[2]==0 && BtGapPair_bdAddr.addr[3]==0 )\r
get_phone_addr(bdaddr);\r
memcpy(bdaddr,&BtGapPair_bdAddr,sizeof(bd_addr_t));\r
\r
}\r
+static uint8_t br_cmd=0;\r
int uapi_a2dp_snk_connect()\r
+{\r
+ br_cmd=BR_A2DP_CONNECT;\r
+ do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_BR_CONNECT,&br_cmd,sizeof(br_cmd));\r
+ return 0;\r
+\r
+}\r
+ \r
+\r
+int uapi_a2dp_snk_connect_()\r
{\r
\r
bd_addr_t bdaddr={0};\r
}\r
\r
int uapi_a2dp_snk_disconnect()\r
+{\r
+ br_cmd=BR_A2DP_DISCONNECT;\r
+ do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_BR_CONNECT,&br_cmd,sizeof(br_cmd));\r
+ return 0;\r
+}\r
+ \r
+\r
+int uapi_a2dp_snk_disconnect_()\r
{\r
\r
bd_addr_t bdaddr={0};\r
return ret;\r
}\r
\r
+// int uapi_disconnect_remote_device_()\r
+// {\r
+// do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_BR_CONNECT,&br_cmd,sizeof(br_cmd));\r
+// return 0;\r
+// }\r
+ \r
+\r
int uapi_disconnect_remote_device()\r
{\r
bd_addr_t bdaddr={0};\r
}\r
\r
\r
+int uapi_reconnect_()\r
+{\r
+ \r
+ br_cmd=BR_RECONNECT;\r
+ do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_BR_CONNECT,&br_cmd,sizeof(br_cmd));\r
+ return 0;\r
+}\r
+ \r
+\r
int uapi_reconnect(void)\r
{\r
bd_addr_t bdaddr={0};\r
return 0;\r
}\r
\r
+\r
+\r
// /////////////////////////////////////////HFP hf端 代码///////////////////////////////////////////////////\r
\r
// int uapi_HFP_hf_connect()\r
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
+ * Description: PhoneService
+ * Create: 2021-09-22
+ */
+
+#ifndef PHONE_SERVICE_H
+#define PHONE_SERVICE_H
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int uapi_hfp_disconnect_(void);
+
+int uapi_hfp_connect_(void);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // PHONE_SERVICE_H
*/
#include "PhoneService.h"
+#include "PhoneServiceC.h"
+
#include "PhoneAudio.h"
#include "securec.h"
#include <cstdio>
#include "BluetoothModel.h"
#include "notification_manager.h"
#include "CallerLogModel.h"
+#include "custom_utils.h"
#ifdef __cplusplus
extern "C" {
#endif
case PROFILE_STATE_CONNECTED: // 蓝牙连接成功
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ConnStateChanged] BT connected");
BtConnectedPro(bdAddr);
+ SendMsgToUIService(BT_CONNECTED_TO_UI, 0, nullptr, 0);
+ //SendMsgToMsgCenterService(BT_CONNECTED_TO_MSGCENTER, 0, nullptr, 0);
break;
case PROFILE_STATE_DISCONNECTING: // 蓝牙连接断连
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ConnStateChanged] BT disconnecting");
BtDisconnectedPro();
if(0==OHOS::uapi_a2dp_snk_get_device_connect_state() && 0==uapi_hfp_connect_state())
{
- // remove by merge patch
+ SendMsgToUIService(BT_DISCONNECTED_TO_UI, 0, nullptr, 0);
+ //SendMsgToMsgCenterService(BT_DISCONNECTED_TO_MSGCENTER, 0, nullptr, 0);
}
break;
}
}
-int uapi_hfp_disconnect(void)
+int uapi_hfp_disconnect_(void)
{
int ret;
bd_addr_t bdaddr={0};
- get_phone_addr(&bdaddr);
+ OHOS:: uapi_get_br_address(&bdaddr);
ret = hfp_hf_disconnect(&bdaddr);
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "addr: ****%02x %02x %02x %02x g_bdAddr.type: %x\n",
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(void)
+int uapi_hfp_connect_(void)
{
int ret;
- bd_addr_t bdaddr={0};
- get_phone_addr(&bdaddr);
- if(false==OHOS::uapi_get_acl_connect_state())
+ bd_addr_t bdaddr={0};
+ OHOS:: uapi_get_br_address(&bdaddr);
+
+ if(0==OHOS::uapi_a2dp_snk_get_device_connect_state() && 0==uapi_hfp_connect_state())
{
// ret= gap_connect_remote_device(&bdaddr);
// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[gap_connect_remote_device] ret:%X", ret);
{
int ret;
bd_addr_t bdaddr={0};
- get_phone_addr(&bdaddr);
+ OHOS:: uapi_get_br_address(&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)
void uapi_hfp_send_DTMF_CODE(char code)
{
bd_addr_t bdaddr={0};
- get_phone_addr(&bdaddr);
+ OHOS:: uapi_get_br_address(&bdaddr);
+
int ret= hfp_hf_send_dtmf_tone(&bdaddr,code);
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[hfp_hf_send_dtmf_tone] ret:%d", ret);
}
+
+static uint8_t br_cmd=0;
+int uapi_hfp_connect()
+{
+ br_cmd=BR_HFP_CONNECT;
+ do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_BR_CONNECT,&br_cmd,sizeof(br_cmd));
+ return 0;
+}
+
+
+int uapi_hfp_disconnect()
+{
+ br_cmd=BR_HFP_DISCONNECT;
+ do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_BR_CONNECT,&br_cmd,sizeof(br_cmd));
+ return 0;
+}
+
+
+
#ifdef __cplusplus
}
#endif
\r
\r
}else{\r
- if(false==(bt_is_acl_connected(addr)))\r
+ bd_addr_t bdaddr={0};\r
+ uapi_get_br_address(&bdaddr);\r
+ if(false==(bt_is_acl_connected(&bdaddr)))\r
{\r
- int ret=gap_reconnect_media_device(&phone_addr);\r
+ int ret=gap_reconnect_media_device(&bdaddr);\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gap_reconnect_media_device!!! %X\r\n",ret);\r
}\r
else\r
set(PUBLIC_HEADER
${CMAKE_CURRENT_SOURCE_DIR}
+ ${ROOT_DIR}/application/wearable/fd230app/nativeui/phoneservice/include
)
set(PRIVATE_HEADER
#include "custom_utils.h"
+#include "BluetoothModelC.h"
+
+#include "PhoneServiceC.h"
+
+
typedef struct
{
uint8_t cmd;
case CUSTOM_CMD_MSG_TYPE_VIBRATOR_TEST:
uapi_vibrator_test(2 * 60 * 60);
break;
+ case CUSTOM_CMD_MSG_BR_CONNECT:
+
+ switch (mail.data[0])
+ {
+ //hfp connect
+ case BR_HFP_CONNECT:
+ uapi_hfp_connect_();
+ break;
+ //hfp disconnect
+ case BR_HFP_DISCONNECT:
+ uapi_hfp_disconnect_();
+ break;
+ //a2dp connect
+ case BR_A2DP_CONNECT:
+ uapi_a2dp_snk_connect_();
+ break;
+ //a2dp disconnect
+ case BR_A2DP_DISCONNECT:
+ uapi_a2dp_snk_disconnect_();
+ break;
+ case BR_RECONNECT:
+ uapi_reconnect_();
+ break;
+ default:
+ break;
+ }
+ break;
+
default:
PRINT("Unknown CUSTOM_CMD_MSG cmd 0x%02X \r\n", mail.cmd);
break;
#define CUSTOM_CMD_MSG_TYPE_CROWN_TEST 0x0A
#define CUSTOM_CMD_MSG_TYPE_VIBRATOR_TEST 0x0B
+#define CUSTOM_CMD_MSG_BR_CONNECT 0x0C
+
+typedef enum {
+ BR_HFP_CONNECT=1,
+ BR_HFP_DISCONNECT,
+ BR_A2DP_CONNECT,
+ BR_A2DP_DISCONNECT,
+ BR_RECONNECT,
+
+} CUSTOM_CMD_MSG_BR_CONNECT_TYPE;
+
errcode_t uapi_custom_cmd_service_init(void);
void do_custom_cmd_service_check_msg(int cmd, void *params, int paramlen);
int uapi_delete_files(const char *file_path);
case 1:
uapi_reconnect();
break;
- // case 2:
- // custom_ble_service_start();
- // break;
+ case 2:
+ custom_ble_service_start();
+ break;
case 3:
custom_ble_service_start_(atoi( (char *)argv[1]));
break;
case 4:
uapi_a2dp_snk_connect();
break;
- // case 5:
- // svr_ble_adv_stop();
- // break;
- // case 6:
- // uapi_disconnect_remote_device();
- // break;
- // case 7:
- // uapi_ble_disconnect_device();
- // break;
+ case 5:
+ svr_ble_adv_stop();
+ break;
+ case 6:
+ uapi_disconnect_remote_device();
+ break;
+ case 7:
+ uapi_ble_disconnect_device();
+ break;
- // case 3:
- // gap_br_set_bt_scan_mode(GAP_SCAN_MODE_NONE, 20);;
- // break;
-
default:
break;
}