优化绑定流程加界面显示
authordxy <1731678236@qq.com>
Sat, 13 Apr 2024 03:52:24 +0000 (11:52 +0800)
committerdxy <1731678236@qq.com>
Sat, 13 Apr 2024 03:52:24 +0000 (11:52 +0800)
1  2 
code/sdk/application/wearable/service/ble_service/blemoder/bletest.h
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c
code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.h
code/sdk/application/wearable/service/ble_service/bleservice/bleService.c
code/sdk/application/wearable/service/msg_center/src/notify/pairing_notification.cpp

@@@ -18,7 -18,7 +18,12 @@@ extern "C" 
  
  #include "stdint.h"
  #include "errcode.h"
--
++enum PAIRING
++{
++    DEVICEBIND = 0,//
++    DEVICEUNBIND,//设备解绑通知
++    DeviceUnBindingRequest//设备解绑请求(与新设备连接)通知
++};
  void set_weather_now_data(int humidity, char* windScale, char* textNight,int uvIndex,int temp,int iconNight);
  
  void set_weather_address_data(int lat, char* atm, char* city,char* subLocality,int lon);
@@@ -39,7 -39,7 +39,7 @@@ extern "C" 
  #define PHONE_WATCH_CONFIG_PATH "/user/userdata/phone_watch.json"\r
  #define ALARM_DATA_CONFIG_PATH "/user/userdata/alarm_test.json"\r
  #include "bletest.h"\r
--\r
++#define DEBUG_TEST (0)\r
  \r
  uint8_t *bigDataBuf = NULL;//大数据buf\r
  uint8_t bigDataBufLen=0;\r
@@@ -337,7 -337,7 +337,7 @@@ static uint8_t  jsonCheck_phoneinfor(ui
      return len;\r
      \r
  }\r
--errcode_t bondSucessCmd(void)//发送解绑指令,解绑界面调用这个函数 如果点了✓调用这个函数 返回成功后延迟10s再重启设备  \r
++errcode_t UnbindSucessCmd(void)//发送解绑指令,解绑界面调用这个函数 如果点了✓调用这个函数 返回成功后延迟10s再重启设备  \r
  {\r
      errcode_t sendok = ERRCODE_FAIL;\r
      uint32_t tmp = 1;\r
      value[18] = Calculate_CRC(value,18);\r
      sendok =  sendBleData(value,19);\r
      bool ret = bt_is_acl_connected(&phone_addr);\r
++    if(0!=remove(PHONE_WATCH_CONFIG_PATH))\r
++    {\r
++        printf("json remove fail\r\n");\r
++    }\r
      gap_ble_remove_all_pairs(); \r
      gap_remove_all_pairs();\r
--    closeBle();\r
++    // uapi_reboot_device();\r
++\r
      return sendok;\r
  }\r
  void getDeviceState(void)\r
@@@ -396,7 -396,7 +401,7 @@@ void clearPaireCmd(uint16_t cmd,uint8_
          clearPaireFlag(0);\r
      }\r
  }\r
--char *savephonename;\r
++uint8_t *savephonename;\r
  //确认配对指令\r
  uint8_t first_bond = 0;//是否第一次绑定 第一次绑定保存配对mac地址\r
  void comfirmPaire(uint8_t flag)\r
          first_bond = 0;\r
          printf("gap_ble_pair_remote_device 444444444\r\n");\r
          gap_ble_disconnect_remote_device(&disconect_addr);//与固定的mac设置地址进行断开连接\r
--        gap_ble_remove_pair(&disconect_addr);//清除配对信息\r
++        gap_ble_remove_all_pairs(); \r
++        gap_remove_all_pairs();\r
          if(savephonename != NULL)\r
          {\r
              free(savephonename);\r
@@@ -535,17 -535,13 +541,17 @@@ void getPhoneNameLen(uint8_t *crcnum,ui
          }\r
          memcpy(datalen,&len,1);\r
          cJSON_Delete(root);\r
 -    } \r
 +    } else{\r
 +        len = 0;\r
 +\r
 +        memcpy(datalen,&len,1);\r
 +    }\r
  }\r
  \r
--static char *getPhoneName(uint8_t *crcnum)//获取手机设备名称\r
++static uint8_t *getPhoneName(uint8_t *crcnum)//获取手机设备名称\r
  {\r
      uint8_t *json = crcnum;\r
--    char *str = NULL; \r
++    uint8_t *str = NULL; \r
      cJSON* root = cJSON_Parse((const char *)json);\r
      if(root != NULL)\r
      {\r
                  pn->valuestring[datalen-1]='\0';\r
                  str = malloc(sizeof(char)*datalen);\r
                  savephonename =  malloc(sizeof(char)*datalen);\r
--                strcpy(str,pn->valuestring);\r
--                strcpy(savephonename,pn->valuestring);\r
 -                free(str);\r
++                memcpy(str,(uint8_t *)pn->valuestring,datalen);\r
++                // strcpy(str,pn->valuestring);\r
++                memcpy(savephonename,(uint8_t *)pn->valuestring,datalen);\r
++                // strcpy(savephonename,pn->valuestring);\r
                  printf("str:%s savephonename:%s\n",str,savephonename);\r
              }\r
              printf("设备名称: %s\n", pn->valuestring);\r
@@@ -695,15 -682,12 +703,15 @@@ static void GetwatchSaveNameLen(uint8_
          memcpy(datalen,&len,1);\r
          // 释放资源\r
          cJSON_Delete(root);\r
 +    }else{\r
 +        len = 0;\r
 +       memcpy(datalen,&len,1); \r
      }\r
  }\r
--static char *GetwatchSaveName(void)//获取手表本地保存的手机设备名称\r
++static uint8_t *GetwatchSaveName(void)//获取手表本地保存的手机设备名称\r
  {\r
      uint8_t count = 0;\r
--    char *str = NULL;\r
++    uint8_t *str = NULL;\r
      FILE *jsfile = fopen(PHONE_WATCH_CONFIG_PATH, "r");\r
      if (jsfile != NULL) {\r
          printf("succes opening file\n");\r
                  if(showname_len-1 > 0){\r
                      str = malloc(sizeof(char)*showname_len);\r
                      pn->valuestring[showname_len-1]='\0';\r
--                    strcpy(str,pn->valuestring);\r
 -                    if(str)\r
 -                    {\r
 -                        free(str);\r
 -                    }\r
++                    str[showname_len]=0;\r
++                    memcpy(str,(uint8_t *)pn->valuestring,showname_len);\r
++                    // strcpy(str,pn->valuestring);\r
                      printf("GetwatchSaveName:%s",pn->valuestring);\r
                  }\r
              }\r
          // 释放资源\r
          cJSON_Delete(root);\r
      }\r
 -    return str;\r
 +    if (str == NULL)\r
 +    {\r
 +        return NULL;\r
 +    }else{\r
 +        return str;\r
 +    }\r
 +    \r
  }\r
--void cleanUnbindInfor(void)//和旧手机解绑清除配对信息\r
++void cleanUnbindInfor(uint8_t flag)//和旧手机解绑清除配对信息\r
  {\r
 +    uint8_t value[19];\r
 +    memset(value,0,19);\r
 +    uint32_t tmp = 1;\r
 +    uint16_t tmp_fen= 1;\r
 +    value[0] =0x72;\r
 +    value[1] =0x05;\r
 +    value[2] =0x11;\r
 +    memcpy(value+3,&tmp,4);\r
 +    memcpy(value+7,&tmp,4);\r
 +    memcpy(value+11,&tmp,4);\r
 +    memcpy(value+15,&tmp_fen,2);\r
 +    value[17] = 0x03;//\r
 +    value[18] = Calculate_CRC(value,18);\r
 +    sendBleData(value,19);\r
 +\r
      uint8_t MacType = 0;\r
      uint8_t mac_data[6];\r
      memset(mac_data,0,6);\r
      GetwatchSaveMac(&mac_data,&MacType);\r
-     // printf("inforaddr:%x",ret1);\r
 +    errcode_t ret1 = gap_disconnect_remote_device(&disconect_addr);\r
      gap_ble_disconnect_remote_device(&disconect_addr);//与固定的mac设置地址进行断开连接\r
--    bd_addr_t inforaddr;\r
--    inforaddr.addr[0] = mac_data[0];\r
--    inforaddr.addr[1] = mac_data[1];\r
--    inforaddr.addr[2] = mac_data[2];\r
--    inforaddr.addr[3] = mac_data[3];\r
--    inforaddr.addr[4] = mac_data[4];\r
--    inforaddr.addr[5] = mac_data[5];\r
--    inforaddr.type = MacType;\r
--    // printf("inforaddr:%x-%x-%x-%x-%x-%x",inforaddr.addr[0],inforaddr.addr[1],inforaddr.addr[2],inforaddr.addr[3],inforaddr.addr[4],inforaddr.addr[5]);\r
-     errcode_t ret= gap_ble_remove_pair(&disconect_addr);//清除配对信息\r
-     gap_remove_pair(&disconect_addr);\r
-     // if(ret!=ERRCODE_SUCC)\r
-     // {\r
-     //     printf("gap_ble_remove_pair : %X\r\n",ret);\r
-     // }\r
 -    errcode_t ret= gap_ble_remove_pair(&inforaddr);//清除配对信息\r
 -    if(ret!=ERRCODE_SUCC)\r
 -    {\r
 -        printf("gap_ble_remove_pair : %X\r\n",ret);\r
 -    }\r
--    //清除保存的文件信息\r
--    if(0!=remove(PHONE_WATCH_CONFIG_PATH))\r
--    {\r
--        printf("json remove fail\r\n");\r
++    if (flag == 1){\r
++        errcode_t ret= gap_ble_remove_pair(&disconect_addr);//清除配对信息\r
++        gap_ble_remove_all_pairs(); \r
++        bool ret_flag = gap_remove_all_pairs();\r
++        printf("ret_flag:%d ret:%x\r\n",ret_flag,ret);\r
++        if(0!=remove(PHONE_WATCH_CONFIG_PATH))\r
++        {\r
++            printf("json remove fail\r\n");\r
++        }\r
++        set_ble_falg(0);\r
++        uapi_reboot_device();\r
      }\r
--    set_ble_falg(0);\r
-     uapi_reboot_device();\r
--\r
  }\r
  void sendBindInfor(uint8_t *crcnum)\r
  {\r
      uint8_t copare_mac[6];\r
      memset(copare_mac,0,6);\r
      uint8_t datalen=0;\r
-     char *devname = NULL;\r
 -    char *devname;\r
++    uint8_t *devname = NULL;\r
      uint8_t devnamelen = 0;\r
      uint8_t mac_tmp[6];\r
      memset(mac_tmp,0,6);\r
      uint8_t bond = 1;//未与任何手机绑定过\r
      errcode_t ret = 0;\r
      first_bond = 0;\r
 -   \r
 -\r
      uint8_t save_mac[6];\r
      memset(save_mac,0,6);\r
-     char *showname = NULL;\r
 -    char *showname;\r
--    uint8_t showname_len = 0;\r
      uint8_t MacType = 0;\r
--\r
++    \r
      GetwatchSaveMac(&save_mac,&MacType);//获取手表设备本地保存的mac地址和mac地址类型 \r
      getPhoneMac(crcnum,&copare_mac);\r
-     // save_mac[0] = 90;\r
-     // memset(copare_mac,0,6);\r
 -   \r
++    save_mac[0] = 0;\r
++    memset(copare_mac,0,6);\r
      if(save_mac[0] == 0 && save_mac[1] == 0 && save_mac[2] == 0 && save_mac[3] == 0 && save_mac[4] == 0 && save_mac[5] == 0)//只要手表本地存储没有mac地址就走连接流程重新绑定\r
      {\r
-         comfirmPaire(1);\r
-         return;\r
 +        bond = 0x01;//手表未和任何手机绑定过\r
 +        value[17] = bond;//\r
 +        value[18] = Calculate_CRC(value,18);\r
 +        sendBleData(value,19);\r
          #ifdef SUPPORT_DEVICE_PAIRING_NOTIFICATION\r
          devnamelen = 0;\r
          getPhoneNameLen(crcnum,&devnamelen);//获取手机下发的手机设备名称长度\r
++        devnamelen = 0;\r
          if(devnamelen > 0 )\r
          {\r
              devname = getPhoneName(crcnum);\r
              printf("devname!!!!!!!!!:%s devnamelen:%d",devname,devnamelen);\r
 -            CustomEventPublish(TOPIC_EVENT_DEVICE_BIND,NULL,0);\r
 -            printf("bond flag:!!!!!!!!!\r\n");\r
 +            if (devname != NULL){\r
 +                printf("phone devname is name!!!!!!!!!:");\r
-                 CustomEventPublish(TOPIC_EVENT_DEVICE_BIND,NULL,0);\r
++                uint8_t buf[devnamelen+2]; \r
++                buf[0] = DEVICEBIND;\r
++                buf[1] = devnamelen;//设备名称长度 0不显示\r
++                memcpy(buf+2,devname,devnamelen);\r
++                CustomEventPublish(TOPIC_EVENT_DEVICE_BIND,(uint8_t *)buf,devnamelen+2);\r
++                if(devname)\r
++                {   \r
++                    free(devname);\r
++                }\r
 +            }else{\r
 +                printf("phone devname is no name11111!!!!!!!!!:");\r
-                 CustomEventPublish(TOPIC_EVENT_DEVICE_BIND,NULL,0);\r
++                uint8_t buf[2]; \r
++                buf[0] = DEVICEBIND;\r
++                buf[1] = 0;\r
++                CustomEventPublish(TOPIC_EVENT_DEVICE_BIND,buf,2);\r
++                \r
 +            }\r
          }else{\r
 -            CustomEventPublish(TOPIC_EVENT_DEVICE_BIND,NULL,0);\r
++            uint8_t buf[2]; \r
++            buf[0] = DEVICEBIND;\r
++            buf[1] = 0;\r
 +            printf("phone devname is no name!!!!!!!!!:");\r
-             CustomEventPublish(TOPIC_EVENT_DEVICE_BIND,NULL,0);\r
++            CustomEventPublish(TOPIC_EVENT_DEVICE_BIND,buf,2);\r
          }\r
          #endif\r
 -        bond = 0x01;//手表未和任何手机绑定过\r
++        return;\r
 +        \r
      }else\r
      {\r
 -        // printf("success parsing JSON :save_mac :%x %x %x %x %x %x copare_mac %x %x %x %x %x %x;\n",save_mac[0],save_mac[1],save_mac[2],save_mac[3],save_mac[4],save_mac[5],\r
 -            // copare_mac[0],copare_mac[1],copare_mac[2],copare_mac[3],copare_mac[4],copare_mac[5]);\r
          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) \r
          {\r
              bond = 0x03;//手表和其他手机绑定过\r
      sendBleData(value,19);\r
      if(bond == 0x03)\r
      {\r
-         cleanUnbindInfor();\r
-         return;\r
-         errcode_t ret1 = gap_disconnect_remote_device(&disconect_addr);\r
 +        gap_ble_disconnect_remote_device(&disconect_addr);//与固定的mac设置地址进行断开连接\r
          devnamelen = 0;\r
          GetwatchSaveNameLen(&devnamelen);//获取手表设备保存手机的设备名称长度\r
          if(devnamelen > 0)\r
          {   \r
              devname = GetwatchSaveName();\r
--            printf("devname:%s showname_len:%d",devname,devnamelen);\r
-             // cleanUnbindInfor();\r
 -            CustomEventPublish(TOPIC_EVENT_DEVICE_UNBIND,(uint8_t *)devname,devnamelen);\r
 -            printf("cleanUnbindInfor!!!!!!!");\r
 +            if (devname != NULL){\r
++                uint8_t buf[devnamelen+1]; \r
++                buf[0] = devnamelen;\r
++                buf[1] = DEVICEUNBIND;\r
++                memcpy(buf+2,devname,devnamelen);\r
++                CustomEventPublish(TOPIC_EVENT_DEVICE_UNBIND,(uint8_t *)buf,devnamelen+2);\r
 +                printf("devname:is no null!!!!!");\r
-                 CustomEventPublish(TOPIC_EVENT_DEVICE_UNBIND,(uint8_t *)devname,devnamelen);\r
 +            }else{\r
++                uint8_t buf[2]; \r
++                buf[0] = DEVICEUNBIND;\r
++                buf[1] = 0;\r
 +                printf("devname:is  null!!!!!");\r
-                 CustomEventPublish(TOPIC_EVENT_DEVICE_UNBIND,NULL,0);\r
++                CustomEventPublish(TOPIC_EVENT_DEVICE_UNBIND,buf,2);\r
 +            }\r
-             \r
-             printf("cleanUnbindInfor!!!!!!!");\r
          }else{\r
-             cleanUnbindInfor();\r
-             return;\r
-             printf("devname:is no name!!!!!");\r
-             // cleanUnbindInfor();\r
--            CustomEventPublish(TOPIC_EVENT_DEVICE_UNBIND,NULL,0);\r
++            uint8_t buf[2]; \r
++            buf[0] = DEVICEUNBIND;\r
++            buf[1] = 0;\r
++            CustomEventPublish(TOPIC_EVENT_DEVICE_UNBIND,buf,2);\r
          }\r
--        //加解绑提示界面是否和旧的手机解绑app 弹窗提示\r
      }\r
  }\r
  void getPhoneInfo(uint16_t cmd,uint8_t *crcnum,uint16_t len,uint8_t *totalData,uint8_t crcvalue)//获取手机信息\r
  {\r
--    uint8_t value[20];\r
--    memset(value,0,20);\r
++    uint8_t value[19];\r
++    memset(value,0,19);\r
      uint32_t tmp = 1;\r
      uint16_t tmp_fen= 1;\r
      value[0] =0x72;\r
@@@ -973,7 -907,7 +982,7 @@@ void sendParieSuccess(uint8_t flag,bd_a
              }\r
              if(savephonename != NULL)\r
              {\r
--                cJSON_AddStringToObject(dataJSON,"pn",savephonename);\r
++                cJSON_AddStringToObject(dataJSON,"pn",(char *)savephonename);\r
                  free(savephonename);\r
              }\r
              cJSON_AddNumberToObject(dataJSON,"phoneType",phoneType);\r
@@@ -3957,7 -3895,7 +3966,7 @@@ void getPhoneInfo_test(void
      // memcpy(value+15,&tmp_data,2);\r
      // memcpy(&value[17],buf,strlen(buf));\r
  \r
--    comfirmPaire(0);\r
++    // comfirmPaire(0);\r
  \r
  }\r
  \r
@@@ -3966,9 -3904,9 +3975,9 @@@ void bleLongRecvData(uint8_t *data, uin
  {\r
      uint8_t type=buf_cmd[1];\r
      printf("type:%d %d data_size:%d data:%d crcvalue:%x",buf_cmd[0],type,data_size,data[0],crcvalue);\r
--    FILE *fp= fopen("user/ble_test.json","w+");\r
--    fwrite((void *)data,1,data_size,fp);\r
--    fclose(fp);\r
++    // FILE *fp= fopen("user/ble_test.json","w+");\r
++    // fwrite((void *)data,1,data_size,fp);\r
++    // fclose(fp);\r
      switch (type)\r
      {\r
          case 0x02://获取手机信息\r
      }\r
  }\r
  \r
--uint8_t *recvData;\r
++\r
  uint32_t packdataLen = 0;\r
  uint32_t totalDataLen = 0;\r
  uint8_t totalpack = 0;\r
  uint8_t cmd_data[17];\r
++uint8_t *recvData;\r
  void bleDataRecv(uint8_t *totalData, uint16_t event_size,uint16_t handle)\r
  {\r
++    \r
      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "xhandle %d,%d %d",data2ae3Cmd,data2ae4Cmd,handle);\r
      if(sendbigDataBufState == true)//正在发送大数据不接收任何app指令下发的数据\r
      {\r
              uint16_t cmd = totalData[1]*256+totalData[2];\r
              crcvalue = totalData[event_size-1];\r
              \r
--            memcpy(&packdataLen,&totalData[3],4);\r
++            memcpy(&packdataLen,totalData+3,4);\r
              recvData = malloc(packdataLen);\r
              memcpy(recvData,totalData+17,packdataLen);\r
              printf("recv crcvalue:%x packdataLen-1:%d\r\n",crcvalue,packdataLen);\r
                  free(recvData);\r
              }\r
          }\r
--    }else if(handle)\r
++    }else if(data2ae4Cmd == handle)\r
      {\r
          while (1)\r
          {\r
                          packdataLen = event_size-17;\r
                          memset(cmd_data,0,17);\r
                          memcpy(cmd_data,totalData,17);\r
--                        \r
++\r
++                        // 73 2 10 1 0 0 0 16 0 0 0 1 0 0 0 16 0\r
                          recvData = malloc(packdataLen-1);\r
                          if(recvData == NULL)return;\r
                          memcpy(recvData,totalData+17,packdataLen-1);\r
                          }else{\r
                              crcvalue = totalData[event_size-1];\r
                          }\r
--                        bleLongRecvData(recvData,packdataLen-1,&cmd_data,totalData,crcvalue);\r
++                        \r
++                        bleLongRecvData(recvData,packdataLen-1,cmd_data,totalData,crcvalue);\r
                          if(recvData != NULL){\r
                              free(recvData);\r
                          }\r
                      bigDataBuf = malloc(totalDataLen);\r
                      crcvalue = totalData[event_size-1];\r
                      memcpy(bigDataBuf,recvData+17,totalDataLen);\r
--                    bleLongRecvData(bigDataBuf,totalDataLen,&cmd_data,recvData,crcvalue);\r
++                    bleLongRecvData(bigDataBuf,totalDataLen,cmd_data,recvData,crcvalue);\r
                      totalDataLen = 0;\r
                      packdataLen = 0;\r
                      muiltFlag = 0;\r
                  if(bigDataBuf != NULL){\r
                      free(bigDataBuf);\r
                  }\r
--                if(recvData != NULL){\r
--                    free(recvData);\r
--                }\r
++                // if(recvData != NULL){\r
++                //     // free(recvData);\r
++                // }\r
                  break;\r
              }\r
          }\r
  void revBleOldData(uint8_t *buf, uint16_t event_size,uint16_t handle)//每包的数据大小\r
  {\r
      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "xxxxxxxxxxxxxxxx");\r
--    printf("handle :%d data2ae3Cmd:%d data2ae4Cmd:%d buf:%d event_size %d\r\n",handle,data2ae3Cmd,data2ae4Cmd,buf,event_size);\r
++    printf("handle :%d data2ae3Cmd:%d data2ae4Cmd:%d  event_size %d\r\n",handle,data2ae3Cmd,data2ae4Cmd,event_size);\r
      bleDataRecv(buf,event_size,handle);\r
  }\r
  #endif\r
@@@ -581,12 -581,12 +581,13 @@@ errcode_t sendBleData(uint8_t *buf,uint
  void sendParieSuccess(uint8_t flag,bd_addr_t *addr);//发送配对成功指令to app mac手机端的地址
  void getPhoneInfo_test(void);
  void setFindWatchFlag(uint8_t flag);//查找手表标识
--errcode_t bondSucessCmd(void);//发送解绑指令,解绑界面调用这个函数 如果点了✓调用这个函数 返回成功后延迟10s再重启设备  
++errcode_t UnbindSucessCmd(void);//发送解绑指令,解绑界面调用这个函数 如果点了✓调用这个函数 返回成功后延迟10s再重启设备  
  void getDeviceState(void);
--void cleanUnbindInfor(void);//å\92\8cæ\97§æ\89\8bæ\9cºè§£ç»\91æ¸\85é\99¤é\85\8d对信æ\81¯
++void cleanUnbindInfor(uint8_t flag);//å\92\8cæ\97§æ\89\8bæ\9cºè§£ç»\91æ¸\85é\99¤é\85\8d对信æ\81¯ 0ä¸\8dæ¸\85é\99¤é\85\8d对信æ\81¯ 1æ¸\85é\99¤é\85\8d对信æ\81¯é\87\8då\90¯
  void comfirmPaire(uint8_t flag);//发送确认配对指令 1确认配对 0取消配对
  void cameraSend(void);
  void senfindphoneSend(uint8_t flag);
++void readDevDataBle(uint8_t *crcnum,uint16_t len,uint8_t crcvalue);
  #ifdef __cplusplus
  }
  #endif
@@@ -105,13 -105,13 +105,9 @@@ uint8_t data2ae5Cmd = 0
  #if 1//def SUPPORT_BLE_SERVICE\r
  static void set_phone_info(bd_addr_t *addr)//保存手机信息 包含手机mac地址\r
  {\r
--    printf("set_phone_info:addr.type %x-%x-%x-%x-%x-%x: new_addr.type->%d\r\n",addr->addr[5],addr->addr[4],\r
--    addr->addr[3],addr->addr[2],addr->addr[1],addr->addr[0],addr->type);\r
      memcpy(&phone_addr,addr,sizeof(bd_addr_t));\r
      memcpy(&disconect_addr,addr,sizeof(bd_addr_t));\r
--    // printf("phone_addr:%x-%x-%x-%x-%x-%x",phone_addr.addr[0],phone_addr.addr[1],phone_addr.addr[2],phone_addr.addr[3],phone_addr.addr[4],phone_addr.addr[5]);\r
  }\r
--\r
  enum{\r
      BLE_CHARACTERISTIC_RECV_ID_PROPERTIES = GATT_CHARACTER_PROPERTY_BIT_NOTIFY|GATT_CHARACTER_PROPERTY_BIT_WRITE_NO_RSP|GATT_CHARACTER_PROPERTY_BIT_WRITE|GATT_CHARACTER_PROPERTY_BIT_READ,\r
      BLE_CHARACTERISTIC_SNED_SHORT_ID_PROPERTIES =  GATT_CHARACTER_PROPERTY_BIT_WRITE|GATT_CHARACTER_PROPERTY_BIT_WRITE_NO_RSP,\r
@@@ -147,15 -147,15 +143,19 @@@ static void svr_ble_adv_data_set(int ad
      uint8_t adv_mac_head[BLE_ADV_MAC_LENTH] = {0x9, 0x16, 0xe0, 0x18};\r
      gap_ble_config_adv_data_t adv_data_info;\r
      memset_s(&adv_data_info, sizeof(gap_ble_config_adv_data_t), 0, sizeof(gap_ble_config_adv_data_t));\r
- \r
- #if 0\r
-     unsigned char set_mac[6] = {0x61,0x22,0x33,0x44,0x09,0x26};\r
-     bluetooth_set_local_addr(set_mac,6);\r
-     bd_addr_t addr_info;\r
-     int32_t ret= 0;\r
-     unsigned int len = BLE_MAC_MAX_LEN;\r
--\r
 +    unsigned char addr[BLE_MAC_MAX_LEN] = {0};\r
++    unsigned int len = BLE_MAC_MAX_LEN;\r
++    errcode_t ret = 0;\r
+ #if 1\r
 -    unsigned char set_mac[6] = {0x61,0x22,0x33,0x44,0x09,0x26};\r
 -    bluetooth_set_local_addr(set_mac,6);\r
++    memset(addr,0,6);\r
++    bluetooth_get_local_addr(&addr[0],len);\r
++    if(addr[0] == 0 && addr[1] == 0 && addr[2] == 0 && addr[3] == 0 && addr[4] == 0 && addr[5] == 0)\r
++    {\r
++        unsigned char set_mac[6] = {0x61,0x22,0x33,0x44,0x09,0x26};\r
++        bluetooth_set_local_addr(set_mac,6);\r
++    }\r
+     bd_addr_t addr_info;\r
 -    int32_t ret= 0;\r
 -    unsigned int len = BLE_MAC_MAX_LEN;\r
 -\r
 -    unsigned char addr[BLE_MAC_MAX_LEN] = {0};\r
++    memset(addr,0,6);\r
      bluetooth_get_local_addr(&addr[0],len);\r
      char watchName[32];\r
      memset_s(watchName, sizeof(watchName), 0, sizeof(watchName));\r
          WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bt SetLocalName ret = 0x%x", ret);\r
      }\r
  #else\r
--    int32_t ret= 0;\r
--    unsigned int len = BLE_MAC_MAX_LEN;\r
--    unsigned char addr[BLE_MAC_MAX_LEN] = {0};\r
      bluetooth_get_local_addr(&addr[0],len);\r
  #endif\r
--\r
++   \r
      ret = bluetooth_get_local_name(ble_name, &ble_name_len);\r
      if (ret != 0) {\r
          WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gap_ble_get_local_name fail, name:%s,len:%u,ret:%u.", ble_name, ble_name_len, ret);\r
@@@ -2,7 -2,7 +2,7 @@@
   * @Author: luozheng 1732036298@qq.com
   * @Date: 2024-03-22 10:04:36
   * @LastEditors: luozheng 1732036298@qq.com
-  * @LastEditTime: 2024-04-12 11:37:28
 - * @LastEditTime: 2024-04-13 11:32:36
++ * @LastEditTime: 2024-03-30 09:28:18
   * @FilePath: /FD230/code/sdk/application/wearable/service/msg_center/src/notify/pairing_notification.cpp
   */
  #include "notification_manager.h"
@@@ -110,7 -110,7 +110,9 @@@ namespace OHO
          {
              WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PairingViewEventListener:: DeviceUnBindingButtonCancel  OnClick");
              // 不想执行解绑动作,并关闭解绑的通知界面。
--           
++            #ifdef SUPPORT_BLE_SERVICE
++                cleanUnbindInfor(0);
++            #endif
              NotificationManager::GetInstance()->StopNotify();
          }
          else if (&view == DeviceUnBindingButtonOK) // 设备解绑确认按钮
  
              // 关闭通知界面
              #ifdef SUPPORT_BLE_SERVICE
--            cleanUnbindInfor();
++                cleanUnbindInfor(1);
              #endif
              NotificationManager::GetInstance()->StopNotify();
          }
              DeviceUnBindingView->Add(DeviceUnBindingViewLabel);
              DeviceUnBindingView->Add(DeviceUnBindingButtonCancel);
              DeviceUnBindingView->Add(DeviceUnBindingButtonOK);
++
          }
          return DeviceUnBindingView;
      }