}else
{
- if(copare_mac[0] == 0 && copare_mac[1] == 0 && copare_mac[2] == 0 && copare_mac[3] == 0 && copare_mac[4] == 0 && copare_mac[5] == 0)
- {
- bond = 0x03;//手表和其他手机绑定过
-
- }else{//如果手机有保存mac app下发是空就提示和其他手机绑定过界面不在发起配对
+ if(copare_mac[0] == 0 && copare_mac[1] == 0 && copare_mac[2] == 0 && copare_mac[3] == 0 && copare_mac[4] == 0 && copare_mac[5] == 0)
+ {
+ /* App 未带 MAC:用当前 BLE 连接对端地址与本地已保存 MAC 比对(如重装 App 后系统仍配对) */
+ bd_addr_t peer = {0};
+ get_phone_addr(&peer, g_ble_conn_id);
+ bool peer_addr_valid = (peer.addr[0] | peer.addr[1] | peer.addr[2] | peer.addr[3] | peer.addr[4] |
+ peer.addr[5]) != 0;
+ if (peer_addr_valid && memcmp(peer.addr, save_mac, BD_ADDR_LEN) == 0) {
+ if (get_ble_pair()) {
+ set_ctkd_flag(true);
+ errcode_t ret = gap_ble_set_ctkd_enable(true);
+ (void)ret;
+ } else {
+ errcode_t ret = gap_ble_set_ctkd_enable(true);
+ (void)ret;
+ }
+ if (get_ble_pair()) {
+ bd_addr_t addr = {0};
+ get_phone_addr(&addr, g_ble_conn_id);
+ errcode_t code = gap_ble_pair_remote_device(&addr);
+ if (code != ERRCODE_SUCC) {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "gap_ble_pair_remote_device fail %X\r\n", code);
+ }
+ }
+ bond = 0x02;
+ value[17] = bond;
+ value[18] = Calculate_CRC(value, 18);
+ sendBleData(value, 19);
+ return;
+ }
+ bond = 0x03;
+ }
+ else {
int result = memcmp(copare_mac,save_mac,6);
if(result == 0)
{