修复通讯录运营商和地址的读写错误BUG
authorhcj <1224667075@qq.com>
Tue, 16 Jul 2024 12:14:12 +0000 (20:14 +0800)
committerhcj <1224667075@qq.com>
Tue, 16 Jul 2024 12:14:12 +0000 (20:14 +0800)
code/sdk/application/wearable/fd230app/nativeui/phone/src/phoneaddressmodel.cpp

index 09fff69..e2ae148 100644 (file)
@@ -25,6 +25,7 @@ namespace OHOS
     {
 
         int num=buf[0];//人数
+        printf("人数: %d\r\n",num);
         if(num>20)
         {
             num=0;
@@ -63,7 +64,8 @@ namespace OHOS
                 // addressbook_t.Contact_t[j].name=name;
             }
             offset=offset+name_len+1;
-            uint8_t phone_num=buf[offset]; 
+            uint8_t phone_num=buf[offset];
+            printf("号码个数%d\r\n",phone_num);
             offset=offset+1;
             addressbook_t.Contact_t[j].phone_num=phone_num;
             for(int i=0;i<phone_num;i++)
@@ -204,14 +206,13 @@ namespace OHOS
             for(int i=0;i<2;i++)
             { 
 
-                
                 memset(addressbook_t.Contact_t[j].phone_number_t[i].number,0,NUMBER_LEN);
                
                 memcpy(addressbook_t.Contact_t[j].phone_number_t[i].number,&buf[offset],NUMBER_LEN);
 
                 printf("号码: %s\r\n",addressbook_t.Contact_t[j].phone_number_t[i].number);
                 // addressbook_t.Contact_t[j].phone_number_t[i].number=phonen_name;
-                offset=offset+NUMBER_LEN+1;
+                offset=offset+NUMBER_LEN;
             }
             for(int i=0;i<2;i++)
             {
@@ -222,16 +223,16 @@ namespace OHOS
 
                 printf("归属地: %s\r\n",addressbook_t.Contact_t[j].phone_number_t[i].affiliating_area);
                 // addressbook_t.Contact_t[j].phone_number_t[i].affiliating_area=add_buf;
-                offset=offset+AREA_LEN+1;
+                offset=offset+AREA_LEN;
 
                 memset(addressbook_t.Contact_t[j].phone_number_t[i].operator_t,0,OPERATOR_LEN);
 
-                memcpy(addressbook_t.Contact_t[j].phone_number_t[i].operator_t,&buf[offset+1],OPERATOR_LEN);
+                memcpy(addressbook_t.Contact_t[j].phone_number_t[i].operator_t,&buf[offset],OPERATOR_LEN);
                
                 printf("运营商: %s\r\n",addressbook_t.Contact_t[j].phone_number_t[i].operator_t);
                 // addressbook_t.Contact_t[j].phone_number_t[i].operator_t=yun_buf;
 
-                offset=offset+OPERATOR_LEN+1;
+                offset=offset+OPERATOR_LEN;
             }
         }
         fclose(fp);
@@ -285,19 +286,19 @@ namespace OHOS
             {
                 memcpy(&buf[offset],addressbook_t.Contact_t[i].phone_number_t[j].number,NUMBER_LEN);
                 printf("写入号码: %s\r\n",&buf[offset]);
-                offset=offset+NUMBER_LEN+1;
+                offset=offset+NUMBER_LEN;
             }
             for(int j=0;j<2;j++)
             {
                 //buf[offset]=strlen(addressbook_t.Contact_t[i].phone_number_t[j].affiliating_area)+1;
                 memcpy(&buf[offset],addressbook_t.Contact_t[i].phone_number_t[j].affiliating_area,AREA_LEN);
                 printf("写入运营商: %s\r\n",&buf[offset]);
-                offset=offset+AREA_LEN+1;
+                offset=offset+AREA_LEN;
 
                 //buf[offset]=strlen(addressbook_t.Contact_t[i].phone_number_t[j].operator_t)+1;
                 memcpy(&buf[offset],addressbook_t.Contact_t[i].phone_number_t[j].operator_t,OPERATOR_LEN);
                 printf("写入所属地: %s\r\n",&buf[offset]);
-                offset=offset+OPERATOR_LEN+1;
+                offset=offset+OPERATOR_LEN;
             }
         }
         fwrite((void *)buf,1,offset,fp);