• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 联系人
2
3>**说明:**
4>
5>本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
6
7
8## 导入模块
9
10```
11import contact from '@ohos.contact';
12```
13
14## contact.addContact
15
16addContact(contact:Contact, callback:AsyncCallback<number>): void
17
18添加联系人,使用callback方式作为异步方法。
19
20**需要权限**:ohos.permission.WRITE_CONTACTS
21
22**系统能力**:SystemCapability.Applications.ContactsData
23
24**参数:**
25| 参数名   | 类型                        | 必填 | 说明                           |
26| -------- | --------------------------- | ---- | ------------------------------ |
27| contact  | [Contact](#contact)         | 是   | 联系人信息。                   |
28| callback | AsyncCallback<number> | 是   | 回调函数,返回添加的联系人id。 |
29
30**示例:**
31
32  ```
33  contact.addContact({
34      fullName: {fullName: 'xxx'},
35      phoneNumbers: [{phoneNumber: '138xxxxxxxx'}]
36  }, (err, data) => {
37      if (err) {
38          console.log(`addContact callback: err->${JSON.stringify(err)}`);
39          return;
40      }
41      console.log(`addContact callback: success data->${JSON.stringify(data)}`);
42  });
43  ```
44
45
46## contact.addContact
47
48addContact(contact: Contact): Promise<number>
49
50添加联系人,使用Promise方式作为异步方法。
51
52**需要权限**:ohos.permission.WRITE_CONTACTS
53
54**系统能力**:SystemCapability.Applications.ContactsData
55
56**参数:**
57| 参数名  | 类型                | 必填 | 说明         |
58| ------- | ------------------- | ---- | ------------ |
59| contact | [Contact](#contact) | 是   | 联系人信息。 |
60
61**返回值:**
62| 类型                  | 说明                                        |
63| --------------------- | ------------------------------------------- |
64| Promise<number> | 以Promise形式返回结果,返回添加的联系人id。 |
65
66**示例:**
67
68  ```
69  let promise = contact.addContact({
70      name: {fullName: 'xxx'},
71      phoneNumbers: [{phoneNumber: '138xxxxxxxx'}]
72  });
73  promise.then((data) => {
74      console.log(`addContact success: data->${JSON.stringify(data)}`);
75  }).catch((err) => {
76      console.error(`addContact fail: err->${JSON.stringify(err)}`);
77  });
78  ```
79
80
81## contact.deleteContact
82
83deleteContact(key: string, callback: AsyncCallback<void>): void
84
85删除联系人,使用callback方式作为异步方法。
86
87**需要权限**:ohos.permission.WRITE_CONTACTS
88
89**系统能力**:SystemCapability.Applications.ContactsData
90
91**参数:**
92| 参数名   | 类型                      | 必填 | 说明                                 |
93| -------- | ------------------------- | ---- | ------------------------------------ |
94| key      | string                    | 是   | 联系人key值,一个联系人对应一个key。 |
95| callback | AsyncCallback<void> | 是   | 回调函数,返回删除联系人的结果。     |
96
97**示例:**
98
99  ```
100  contact.deleteContact('xxx', (err) => {
101      if (err) {
102          console.log(`deleteContact callback: err->${JSON.stringify(err)}`);
103          return;
104      }
105      console.log('deleteContact success');
106  });
107  ```
108
109
110## contact.deleteContact
111
112deleteContact(key: string): Promise<void>
113
114删除联系人,使用Promise方式作为异步方法。
115
116**需要权限**:ohos.permission.WRITE_CONTACTS
117
118**系统能力**:SystemCapability.Applications.ContactsData
119
120**参数:**
121| 参数名 | 类型   | 必填 | 说明                                   |
122| ------ | ------ | ---- | -------------------------------------- |
123| key    | string | 是   | 联系人的key值,一个联系人对应一个key。 |
124
125**返回值:**
126| 类型                | 说明                                          |
127| ------------------- | --------------------------------------------- |
128| Promise<void> | 以Promise形式返回结果,返回删除联系人的结果。 |
129
130**示例:**
131
132  ```
133  let promise = contact.deleteContact('xxx');
134  promise.then(() => {
135      console.log(`deleteContact success`);
136  }).catch((err) => {
137      console.error(`deleteContact fail: err->${JSON.stringify(err)}`);
138  });
139  ```
140
141
142## contact.updateContact
143
144updateContact(contact: Contact, callback: AsyncCallback<void>): void
145
146更新联系人,使用callback方式作为异步方法。
147
148**需要权限**:ohos.permission.WRITE_CONTACTS
149
150**系统能力**:SystemCapability.Applications.ContactsData
151
152**参数:**
153| 参数名   | 类型                      | 必填 | 说明                                 |
154| -------- | ------------------------- | ---- | ------------------------------------ |
155| contact  | [Contact](#contact)       | 是   | 联系人信息。                         |
156| callback | AsyncCallback<void> | 是   | 回调函数,返回更新联系人的更新结果。 |
157
158**示例:**
159
160  ```
161  contact.updateContact({
162      name: {fullName: 'xxx'},
163      phoneNumbers: [{phoneNumber: '138xxxxxxxx'}]
164  }, (err) => {
165      if (err) {
166          console.log('updateContact callback: err->${JSON.stringify(err)}');
167          return;
168      }
169      console.log('updateContact success');
170  });
171  ```
172
173
174## contact.updateContact
175
176updateContact(contact: Contact, attrs: ContactAttributes, callback: AsyncCallback<void>): void
177
178更新联系人,使用callback方式作为异步方法。
179
180**需要权限**:ohos.permission.WRITE_CONTACTS
181
182**系统能力**:SystemCapability.Applications.ContactsData
183
184**参数:**
185| 参数名   | 类型                                    | 必填 | 说明                                 |
186| -------- | --------------------------------------- | ---- | ------------------------------------ |
187| contact  | [Contact](#contact)                     | 是   | 联系人信息。                         |
188| attrs    | [ContactAttributes](#contactattributes) | 是   | 联系人的属性列表。                   |
189| callback | AsyncCallback<void>               | 是   | 回调函数,返回更新联系人的更新结果。 |
190
191**示例:**
192
193  ```
194  contact.updateContact({
195      fullName: {fullName: 'xxx'},
196      phoneNumbers: [{phoneNumber: '138xxxxxxxx'}]
197  },{
198      attributes:['ATTR_EMAIL', 'ATTR_NAME']
199  }, (err) => {
200      if (err) {
201          console.log('updateContact callback: err->${JSON.stringify(err)}');
202          return;
203      }
204      console.log('updateContact success');
205  });
206  ```
207
208
209## contact.updateContact
210
211updateContact(contact: Contact, attrs?: ContactAttributes): Promise<void>
212
213更新联系人,使用Promise方式作为异步方法。
214
215**需要权限**:ohos.permission.WRITE_CONTACTS
216
217**系统能力**:SystemCapability.Applications.ContactsData
218
219**参数:**
220| 参数名  | 类型                                    | 必填 | 说明               |
221| ------- | --------------------------------------- | ---- | ------------------ |
222| contact | [Contact](#contact)                     | 是   | 联系人信息。       |
223| attrs   | [ContactAttributes](#contactattributes) | 否   | 联系人的属性列表。 |
224
225**返回值:**
226| 类型                | 说明                                              |
227| ------------------- | ------------------------------------------------- |
228| Promise<void> | 以Promise形式返回结果,返回更新联系人的更新结果。 |
229
230**示例:**
231
232  ```
233  let promise = contact.updateContact({
234      fullName: {fullName: 'xxx'},
235      phoneNumbers: [{phoneNumber: '138xxxxxxxx'}]
236  }, {
237      attributes: ["ATTR_EMAIL", "ATTR_NAME"]
238  });
239  promise.then(() => {
240      console.log('updateContact success');
241  }).catch((err) => {
242      console.error(`updateContact fail: err->${JSON.stringify(err)}`);
243  });
244  ```
245
246
247## contact.isLocalContact
248
249isLocalContact(id: number, callback: AsyncCallback<boolean>): void
250
251判断当前联系人id是否在电话簿中,使用callback方式作为异步方法。
252
253**需要权限**:ohos.permission.READ_CONTACTS
254
255**系统能力**:SystemCapability.Applications.ContactsData
256
257**参数:**
258| 参数名   | 类型                         | 必填 | 说明                                                         |
259| -------- | ---------------------------- | ---- | ------------------------------------------------------------ |
260| id       | number                       | 是   | 联系人对象的id属性,一个联系人对应一个id。                   |
261| callback | AsyncCallback<boolean> | 是   | 回调函数,返回布尔值。true代表联系人id在本地电话簿中,false则代表联系人id不在本地电话簿中。 |
262
263**示例:**
264
265  ```
266  contact.isLocalContact(/*id*/1, (err, data) => {
267      if (err) {
268          console.log(`isLocalContact callback: err->${JSON.stringify(err)}`);
269          return;
270      }
271      console.log(`isLocalContact callback: success data->${JSON.stringify(data)}`);
272  });
273  ```
274
275
276## contact.isLocalContact
277
278isLocalContact(id: number): Promise<boolean>
279
280判断当前联系人id是否在电话簿中,使用Promise方式作为异步方法。
281
282**需要权限**:ohos.permission.READ_CONTACTS
283
284**系统能力**:SystemCapability.Applications.ContactsData
285
286**参数:**
287| 参数名 | 类型   | 必填 | 说明                                       |
288| ------ | ------ | ---- | ------------------------------------------ |
289| id     | number | 是   | 联系人对象的id属性,一个联系人对应一个id。 |
290
291**返回值:**
292| 类型                   | 说明                                                         |
293| ---------------------- | ------------------------------------------------------------ |
294| Promise<boolean> | 以Promise形式返回结果,返回布尔值。true代表联系人id在本地电话簿中,false则代表联系人id不在本地电话簿中。 |
295
296**示例:**
297
298  ```
299  let promise = contact.isLocalContact(/*id*/1);
300  promise.then((data) => {
301      console.log(`isLocalContact success: data->${JSON.stringify(data)}`);
302  }).catch((err) => {
303      console.error(`isLocalContact fail: err->${JSON.stringify(err)}`);
304  });
305  ```
306
307
308## contact.isMyCard
309
310isMyCard(id: number, callback: AsyncCallback<boolean>): void
311
312判断是否为“我的名片”,使用callback方式作为异步方法。
313
314**需要权限**:ohos.permission.READ_CONTACTS
315
316**系统能力**:SystemCapability.Applications.ContactsData
317
318**参数:**
319| 参数名   | 类型                         | 必填 | 说明                                                         |
320| -------- | ---------------------------- | ---- | ------------------------------------------------------------ |
321| id       | number                       | 是   | 联系人对象的id属性。                                         |
322| callback | AsyncCallback<boolean> | 是   | 回调函数,返回是否为“我的名片”的布尔值。true代表此联系人是“我的名片”,false则代表不是。 |
323
324**示例:**
325
326  ```
327  contact.isMyCard(/*id*/1, (err, data) => {
328      if (err) {
329          console.log(`isMyCard callback: err->${JSON.stringify(err)}`);
330          return;
331      }
332      console.log(`isMyCard callback: success data->${JSON.stringify(data)}`);
333  });
334  ```
335
336
337## contact.isMyCard
338
339isMyCard(id: number): Promise<boolean>
340
341判断是否为“我的名片”,使用Promise方式作为异步方法。
342
343**需要权限**:ohos.permission.READ_CONTACTS
344
345**系统能力**:SystemCapability.Applications.ContactsData
346
347**参数:**
348| 参数名 | 类型   | 必填 | 说明                 |
349| ------ | ------ | ---- | -------------------- |
350| id     | number | 是   | 联系人对象的id属性。 |
351
352**返回值:**
353| 类型                   | 说明                                                         |
354| ---------------------- | ------------------------------------------------------------ |
355| Promise<boolean> | 以Promise形式返回结果,返回是否为“我的名片”的布尔值。true代表此联系人是“我的名片”,false则代表不是。 |
356
357**示例:**
358
359  ```
360  let promise = contact.isMyCard(/*id*/1);
361  promise.then((data) => {
362      console.log(`isMyCard success: data->${JSON.stringify(data)}`);
363  }).catch((err) => {
364      console.error(`isMyCard fail: err->${JSON.stringify(err)}`);
365  });
366  ```
367
368
369## contact.queryMyCard
370
371queryMyCard(callback: AsyncCallback<Contact>): void
372
373查询“我的名片”,使用callback方式作为异步方法。
374
375**需要权限**:ohos.permission.READ_CONTACTS
376
377**系统能力**:SystemCapability.Applications.ContactsData
378
379**参数:**
380| 参数名   | 类型                                     | 必填 | 说明                           |
381| -------- | ---------------------------------------- | ---- | ------------------------------ |
382| callback | AsyncCallback<[Contact](#contact)> | 是   | 回调函数,返回“我的名片”信息。 |
383
384**示例:**
385
386  ```
387  contact.queryMyCard((err, data) => {
388      if (err) {
389          console.log(`queryMyCard callback: err->${JSON.stringify(err)}`);
390          return;
391      }
392      console.log(`queryMyCard callback: success data->${JSON.stringify(data)}`);
393  });
394  ```
395
396
397## contact.queryMyCard
398
399queryMyCard(attrs: ContactAttributes, callback: AsyncCallback<Contact>): void
400
401查询“我的名片”,使用callback方式作为异步方法。
402
403**需要权限**:ohos.permission.READ_CONTACTS
404
405**系统能力**:SystemCapability.Applications.ContactsData
406
407**参数:**
408| 参数名   | 类型                                     | 必填 | 说明                           |
409| -------- | ---------------------------------------- | ---- | ------------------------------ |
410| attrs    | [ContactAttributes](#contactattributes)  | 是   | 联系人的属性列表。             |
411| callback | AsyncCallback<[Contact](#contact)> | 是   | 回调函数,返回“我的名片”信息。 |
412
413**示例:**
414
415  ```
416  contact.queryMyCard({
417      attributes:['ATTR_EMAIL', 'ATTR_NAME']
418  }, (err, data) => {
419      if (err) {
420          console.log(`queryMyCard callback: err->${JSON.stringify(err)}`);
421          return;
422      }
423      console.log(`queryMyCard callback: success data->${JSON.stringify(data)}`);
424  });
425  ```
426
427
428## contact.queryMyCard
429
430queryMyCard(attrs?: ContactAttributes): Promise<Contact>
431
432查询“我的名片”,使用Promise方式作为异步方法。
433
434**需要权限**:ohos.permission.READ_CONTACTS
435
436**系统能力**:SystemCapability.Applications.ContactsData
437
438**参数:**
439| 参数名 | 类型                                    | 必填 | 说明               |
440| ------ | --------------------------------------- | ---- | ------------------ |
441| attrs  | [ContactAttributes](#contactattributes) | 否   | 联系人的属性列表。 |
442
443**返回值:**
444| 类型                               | 说明                                        |
445| ---------------------------------- | ------------------------------------------- |
446| Promise<[Contact](#contact)> | 以Promise形式返回结果,返回“我的名片”信息。 |
447
448**示例:**
449
450  ```
451  let promise = contact.queryMyCard({
452      attributes:['ATTR_EMAIL', 'ATTR_NAME']
453  });
454  promise.then((data) => {
455      console.log(`queryMyCard success: data->${JSON.stringify(data)}`);
456  }).catch((err) => {
457      console.error(`queryMyCard fail: err->${JSON.stringify(err)}`);
458  });
459  ```
460
461
462## contact.selectContact
463
464selectContact(callback: AsyncCallback<Array<Contact>>): void
465
466选择联系人,使用callback方式作为异步方法。
467
468**需要权限**:ohos.permission.READ_CONTACTS
469
470**系统能力**:SystemCapability.Applications.ContactsSystemCapability.Applications.ContactsData
471
472**参数:**
473| 参数名   | 类型                                                  | 必填 | 说明                                 |
474| -------- | ----------------------------------------------------- | ---- | ------------------------------------ |
475| callback | AsyncCallback<Array<[Contact](#contact)>> | 是   | 回调函数,返回选择的联系人对象数组。 |
476
477**示例:**
478
479  ```
480  contact.selectContact((err, data) => {
481      if (err) {
482          console.log(`selectContact callback: err->${JSON.stringify(err)}`);
483          return;
484      }
485      console.log(`selectContact callback: success data->${JSON.stringify(data)}`);
486  });
487  ```
488
489
490## contact.selectContact
491
492selectContact(): Promise<Array<Contact>>
493
494选择联系人,使用Promise方式作为异步方法。
495
496**需要权限**:ohos.permission.READ_CONTACTS
497
498**系统能力**:SystemCapability.Applications.ContactsSystemCapability.Applications.ContactsData
499
500**返回值:**
501| 类型                                            | 说明                                              |
502| ----------------------------------------------- | ------------------------------------------------- |
503| Promise<Array<[Contact](#contact)>> | 以Promise形式返回结果,返回选择的联系人对象数组。 |
504
505**示例:**
506
507  ```
508  let promise = contact.selectContact();
509  promise.then((data) => {
510      console.log(`selectContact success: data->${JSON.stringify(data)}`);
511  }).catch((err) => {
512      console.error(`selectContact fail: err->${JSON.stringify(err)}`);
513  });
514  ```
515
516
517## contact.queryContact
518
519queryContact(key: string,  callback: AsyncCallback<Contact>): void
520
521根据key查询联系人,使用callback方式作为异步方法。
522
523**需要权限**:ohos.permission.READ_CONTACTS
524
525**系统能力**:SystemCapability.Applications.ContactsData
526
527**参数:**
528| 参数名   | 类型                                     | 必填 | 说明                                   |
529| -------- | ---------------------------------------- | ---- | -------------------------------------- |
530| key      | string                                   | 是   | 联系人的key值,一个联系人对应一个key。 |
531| callback | AsyncCallback<[Contact](#contact)> | 是   | 回调函数,返回查询的联系人对象。       |
532
533**示例:**
534
535  ```
536  contact.queryContact('xxx', (err, data) => {
537      if (err) {
538          console.log(`queryContact callback: err->${JSON.stringify(err)}`);
539          return;
540      }
541      console.log(`queryContact callback: success data->${JSON.stringify(data)}`);
542  });
543  ```
544
545
546## contact.queryContact
547
548queryContact(key: string, holder: Holder, callback: AsyncCallback<Contact>): void
549
550根据key查询联系人,使用callback方式作为异步方法。
551
552**需要权限**:ohos.permission.READ_CONTACTS
553
554**系统能力**:SystemCapability.Applications.ContactsData
555
556**参数:**
557| 参数名   | 类型                                     | 必填 | 说明                                   |
558| -------- | ---------------------------------------- | ---- | -------------------------------------- |
559| key      | string                                   | 是   | 联系人的key值,一个联系人对应一个key。 |
560| holder   | [Holder](#holder)                        | 是   | 创建联系人的应用信息。                 |
561| callback | AsyncCallback<[Contact](#contact)> | 是   | 回调函数,返回查询的联系人对象。       |
562
563**示例:**
564
565  ```
566  contact.queryContact('xxx', {
567      holderId: 0
568  }, (err, data) => {
569      if (err) {
570          console.log(`queryContact callback: err->${JSON.stringify(err)}`);
571          return;
572      }
573      console.log(`queryContact callback: success data->${JSON.stringify(data)}`);
574  });
575  ```
576
577
578## contact.queryContact
579
580queryContact(key: string,  attrs: ContactAttributes, callback: AsyncCallback<Contact>): void
581
582根据key查询联系人,使用callback方式作为异步方法。
583
584**需要权限**:ohos.permission.READ_CONTACTS
585
586**系统能力**:SystemCapability.Applications.ContactsData
587
588**参数:**
589| 参数名   | 类型                                     | 必填 | 说明                                   |
590| -------- | ---------------------------------------- | ---- | -------------------------------------- |
591| key      | string                                   | 是   | 联系人的key值,一个联系人对应一个key。 |
592| attrs    | [ContactAttributes](#contactattributes)  | 是   | 联系人的属性列表。                     |
593| callback | AsyncCallback<[Contact](#contact)> | 是   | 回调函数,返回查询的联系人对象。       |
594
595**示例:**
596
597  ```
598  contact.queryContact('xxx', {
599      attributes: ["ATTR_EMAIL", "ATTR_NAME"]
600  }, (err, data) => {
601      if (err) {
602          console.log(`queryContact callback: err->${JSON.stringify(err)}`);
603          return;
604      }
605      console.log(`queryContact callback: success data->${JSON.stringify(data)}`);
606  });
607  ```
608
609
610## contact.queryContact
611
612queryContact(key: string, holder: Holder, attrs: ContactAttributes, callback: AsyncCallback<Contact>): void
613
614根据key查询联系人,使用callback方式作为异步方法。
615
616**需要权限**:ohos.permission.READ_CONTACTS
617
618**系统能力**:SystemCapability.Applications.ContactsData
619
620**参数:**
621| 参数名   | 类型                                     | 必填 | 说明                                   |
622| -------- | ---------------------------------------- | ---- | -------------------------------------- |
623| key      | string                                   | 是   | 联系人的key值,一个联系人对应一个key。 |
624| holder   | [Holder](#holder)                        | 是   | 创建联系人的应用信息。                 |
625| attrs    | [ContactAttributes](#contactattributes)  | 是   | 联系人的属性列表。                     |
626| callback | AsyncCallback<[Contact](#contact)> | 是   | 回调函数,返回查询的联系人对象。       |
627
628**示例:**
629
630  ```
631  contact.queryContact('xxx', {
632      holderId: 0
633  }, {
634      attributes: ["ATTR_EMAIL", "ATTR_NAME"]
635  }, (err, data) => {
636      if (err) {
637          console.log(`queryContact callback: err->${JSON.stringify(err)}`);
638          return;
639      }
640      console.log(`queryContact callback: success data->${JSON.stringify(data)}`);
641  });
642  ```
643
644
645## contact.queryContact
646
647queryContact(key: string, holder?: Holder, attrs?: ContactAttributes): Promise<Contact>
648
649根据key查询联系人,使用Promise方式作为异步方法。
650
651**需要权限**:ohos.permission.READ_CONTACTS
652
653**系统能力**:SystemCapability.Applications.ContactsData
654
655**参数:**
656| 参数名 | 类型                                    | 必填 | 说明                                   |
657| ------ | --------------------------------------- | ---- | -------------------------------------- |
658| key    | string                                  | 是   | 联系人的key值,一个联系人对应一个key。 |
659| holder | [Holder](#holder)                       | 否   | 创建联系人的应用信息。                 |
660| attrs  | [ContactAttributes](#contactattributes) | 否   | 联系人的属性列表。                     |
661
662**返回值:**
663| 类型                               | 说明                                            |
664| ---------------------------------- | ----------------------------------------------- |
665| Promise<[Contact](#contact)> | 以Promise形式返回结果,返回查询到的联系人对象。 |
666
667**示例:**
668
669  ```
670  let promise = contact.queryContact('xxx', {
671      holderId: 0
672  }, {
673      attributes: ["ATTR_EMAIL", "ATTR_NAME"]
674  });
675  promise.then((data) => {
676      console.log(`queryContact success: data->${JSON.stringify(data)}`);
677  }).catch((err) => {
678      console.error(`queryContact fail: err->${JSON.stringify(err)}`);
679  });
680  ```
681
682
683## contact.queryContacts
684
685queryContacts(callback: AsyncCallback<Array<Contact>>): void
686
687查询所有联系人,使用callback方式作为异步方法。
688
689**需要权限**:ohos.permission.READ_CONTACTS
690
691**系统能力**:SystemCapability.Applications.ContactsData
692
693**参数:**
694| 参数名   | 类型                                                  | 必填 | 说明                                   |
695| -------- | ----------------------------------------------------- | ---- | -------------------------------------- |
696| callback | AsyncCallback<Array<[Contact](#contact)>> | 是   | 回调函数,返回查询到的联系人对象数组。 |
697
698**示例:**
699
700  ```
701  contact.queryContacts((err, data) => {
702      if (err) {
703          console.log(`queryContacts callback: err->${JSON.stringify(err)}`);
704          return;
705      }
706      console.log(`queryContacts callback: success data->${JSON.stringify(data)}`);
707  });
708  ```
709
710
711## contact.queryContacts
712
713queryContacts(holder: Holder, callback: AsyncCallback<Array<Contact>>): void
714
715查询所有联系人,使用callback方式作为异步方法。
716
717**需要权限**:ohos.permission.READ_CONTACTS
718
719**系统能力**:SystemCapability.Applications.ContactsData
720
721**参数:**
722| 参数名   | 类型                                                  | 必填 | 说明                                   |
723| -------- | ----------------------------------------------------- | ---- | -------------------------------------- |
724| holder   | [Holder](#holder)                                     | 是   | 创建联系人的应用信息。                 |
725| callback | AsyncCallback<Array<[Contact](#contact)>> | 是   | 回调函数,返回查询到的联系人对象数组。 |
726
727**示例:**
728
729  ```
730  contact.queryContacts({
731      holderId: 0
732  }, (err, data) => {
733      if (err) {
734          console.log(`queryContacts callback: err->${JSON.stringify(err)}`);
735          return;
736      }
737      console.log(`queryContacts callback: success data->${JSON.stringify(data)}`);
738  });
739  ```
740
741
742## contact.queryContacts
743
744queryContacts(attrs: ContactAttributes, callback: AsyncCallback<Array<Contact>>): void
745
746查询所有联系人,使用callback方式作为异步方法。
747
748**需要权限**:ohos.permission.READ_CONTACTS
749
750**系统能力**:SystemCapability.Applications.ContactsData
751
752**参数:**
753| 参数名   | 类型                                                  | 必填 | 说明                                   |
754| -------- | ----------------------------------------------------- | ---- | -------------------------------------- |
755| attrs    | [ContactAttributes](#contactattributes)               | 是   | 联系人的属性列表。                     |
756| callback | AsyncCallback<Array<[Contact](#contact)>> | 是   | 回调函数,返回查询到的联系人对象数组。 |
757
758**示例:**
759
760  ```
761  contact.queryContacts({
762      attributes: ["ATTR_EMAIL", "ATTR_NAME"]
763  }, (err, data) => {
764      if (err) {
765          console.log(`queryContacts callback: err->${JSON.stringify(err)}`);
766          return;
767      }
768      console.log(`queryContacts callback: success data->${JSON.stringify(data)}`);
769  });
770  ```
771
772
773## contact.queryContacts
774
775queryContacts(holder: Holder, attrs: ContactAttributes, callback: AsyncCallback<Array<Contact>>): void
776
777查询所有联系人,使用callback方式作为异步方法。
778
779**需要权限**:ohos.permission.READ_CONTACTS
780
781**系统能力**:SystemCapability.Applications.ContactsData
782
783**参数:**
784| 参数名   | 类型                                                  | 必填 | 说明                                   |
785| -------- | ----------------------------------------------------- | ---- | -------------------------------------- |
786| holder   | [Holder](#holder)                                     | 是   | 创建联系人的应用信息。                 |
787| attrs    | [ContactAttributes](#contactattributes)               | 是   | 联系人的属性列表。                     |
788| callback | AsyncCallback<Array<[Contact](#contact)>> | 是   | 回调函数,返回查询到的联系人对象数组。 |
789
790**示例:**
791
792  ```
793  contact.queryContacts({
794      holderId: 0
795  }, {
796      attributes: ["ATTR_EMAIL", "ATTR_NAME"]
797  }, (err, data) => {
798      if (err) {
799          console.log(`queryContacts callback: err->${JSON.stringify(err)}`);
800          return;
801      }
802      console.log(`queryContacts callback: success data->${JSON.stringify(data)}`);
803  });
804  ```
805
806
807## contact.queryContacts
808
809queryContacts(holder?: Holder, attrs?: ContactAttributes): Promise<Array<Contact>>
810
811查询所有联系人,使用Promise方式作为异步方法。
812
813**需要权限**:ohos.permission.READ_CONTACTS
814
815**系统能力**:SystemCapability.Applications.ContactsData
816
817**参数:**
818| 参数名 | 类型                                    | 必填 | 说明                   |
819| ------ | --------------------------------------- | ---- | ---------------------- |
820| holder | [Holder](#holder)                       | 否   | 创建联系人的应用信息。 |
821| attrs  | [ContactAttributes](#contactattributes) | 否   | 联系人的属性列表。     |
822
823**返回值:**
824| 类型                                            | 说明                                                |
825| ----------------------------------------------- | --------------------------------------------------- |
826| Promise<Array<[Contact](#contact)>> | 以Promise形式返回结果,返回查询到的联系人对象数组。 |
827
828**示例:**
829
830  ```
831  let promise = contact.queryContacts({
832      holderId: 0
833  }, {
834      attributes: ["ATTR_EMAIL", "ATTR_NAME"]
835  });
836  promise.then((data) => {
837      console.log(`queryContacts success: data->${JSON.stringify(data)}`);
838  }).catch((err) => {
839      console.error(`queryContacts fail: err->${JSON.stringify(err)}`);
840  });
841  ```
842
843
844## contact.queryContactsByPhoneNumber
845
846queryContactsByPhoneNumber(phoneNumber: string, callback: AsyncCallback<Array<Contact>>): void
847
848根据电话号码查询联系人,使用callback方式作为异步方法。
849
850**需要权限**:ohos.permission.READ_CONTACTS
851
852**系统能力**:SystemCapability.Applications.ContactsData
853
854**参数:**
855| 参数名      | 类型                                                  | 必填 | 说明                                   |
856| ----------- | ----------------------------------------------------- | ---- | -------------------------------------- |
857| phoneNumber | string                                                | 是   | 联系人的电话号码。                     |
858| callback    | AsyncCallback<Array<[Contact](#contact)>> | 是   | 回调函数,返回查询到的联系人对象数组。 |
859
860**示例:**
861
862  ```
863  contact.queryContactsByPhoneNumber('138xxxxxxxx', (err, data) => {
864      if (err) {
865          console.log(`queryContactsByPhoneNumber callback: err->${JSON.stringify(err)}`);
866          return;
867      }
868      console.log(`queryContactsByPhoneNumber callback: success data->${JSON.stringify(data)}`);
869  });
870  ```
871
872
873## contact.queryContactsByPhoneNumber
874
875queryContactsByPhoneNumber(phoneNumber: string, holder: Holder, callback: AsyncCallback<Array<Contact>>): void
876
877根据电话号码查询联系人,使用callback方式作为异步方法。
878
879**需要权限**:ohos.permission.READ_CONTACTS
880
881**系统能力**:SystemCapability.Applications.ContactsData
882
883**参数:**
884| 参数名      | 类型                                                  | 必填 | 说明                                   |
885| ----------- | ----------------------------------------------------- | ---- | -------------------------------------- |
886| phoneNumber | string                                                | 是   | 联系人的电话号码。                     |
887| holder      | [Holder](#holder)                                     | 是   | 创建联系人的应用信息。                 |
888| callback    | AsyncCallback<Array<[Contact](#contact)>> | 是   | 回调函数,返回查询到的联系人对象数组。 |
889
890**示例:**
891
892  ```
893  contact.queryContactsByPhoneNumber('138xxxxxxxx', {
894      holderId: 0
895  }, (err, data) => {
896      if (err) {
897          console.log(`queryContactsByPhoneNumber callback: err->${JSON.stringify(err)}`);
898          return;
899      }
900      console.log(`queryContactsByPhoneNumber callback: success data->${JSON.stringify(data)}`);
901  });
902  ```
903
904
905## contact.queryContactsByPhoneNumber
906
907queryContactsByPhoneNumber(phoneNumber: string, attrs: ContactAttributes, callback: AsyncCallback<Array<Contact>>): void
908
909根据电话号码查询联系人,使用callback方式作为异步方法。
910
911**需要权限**:ohos.permission.READ_CONTACTS
912
913**系统能力**:SystemCapability.Applications.ContactsData
914
915**参数:**
916| 参数名      | 类型                                                  | 必填 | 说明                                   |
917| ----------- | ----------------------------------------------------- | ---- | -------------------------------------- |
918| phoneNumber | string                                                | 是   | 联系人的电话号码。                     |
919| attrs       | [ContactAttributes](#contactattributes)               | 是   | 联系人的属性列表。                     |
920| callback    | AsyncCallback<Array<[Contact](#contact)>> | 是   | 回调函数,返回查询到的联系人对象数组。 |
921
922**示例:**
923
924  ```
925  contact.queryContactsByPhoneNumber('138xxxxxxxx', {
926      attributes: ["ATTR_EMAIL", "ATTR_NAME"]
927  }, (err, data) => {
928      if (err) {
929          console.log(`queryContactsByPhoneNumber callback: err->${JSON.stringify(err)}`);
930          return;
931      }
932      console.log(`queryContactsByPhoneNumber callback: success data->${JSON.stringify(data)}`);
933  });
934  ```
935
936
937## contact.queryContactsByPhoneNumber
938
939queryContactsByPhoneNumber(phoneNumber: string, holder: Holder, attrs: ContactAttributes, callback: AsyncCallback<Array<Contact>>): void
940
941根据电话号码查询联系人,使用callback方式作为异步方法。
942
943**需要权限**:ohos.permission.READ_CONTACTS
944
945**系统能力**:SystemCapability.Applications.ContactsData
946
947**参数:**
948| 参数名      | 类型                                                  | 必填 | 说明                                   |
949| ----------- | ----------------------------------------------------- | ---- | -------------------------------------- |
950| phoneNumber | string                                                | 是   | 联系人的电话号码。                     |
951| holder      | [Holder](#holder)                                     | 是   | 创建联系人的应用信息。                 |
952| attrs       | [ContactAttributes](#contactattributes)               | 是   | 联系人的属性列表。                     |
953| callback    | AsyncCallback<Array<[Contact](#contact)>> | 是   | 回调函数,返回查询到的联系人对象数组。 |
954
955**示例:**
956
957  ```
958  contact.queryContactsByPhoneNumber('138xxxxxxxx', {
959      holderId: 0
960  }, {
961      attributes: ["ATTR_EMAIL", "ATTR_NAME"]
962  }, (err, data) => {
963      if (err) {
964          console.log(`queryContactsByPhoneNumber callback: err->${JSON.stringify(err)}`);
965          return;
966      }
967      console.log(`queryContactsByPhoneNumber callback: success data->${JSON.stringify(data)}`);
968  });
969  ```
970
971
972## contact.queryContactsByPhoneNumber
973
974queryContactsByPhoneNumber(phoneNumber: string, holder?: Holder, attrs?: ContactAttributes): Promise<Array<Contact>>
975
976根据电话号码查询联系人,使用Promise方式作为异步方法。
977
978**需要权限**:ohos.permission.READ_CONTACTS
979
980**系统能力**:SystemCapability.Applications.ContactsData
981
982**参数:**
983| 参数名      | 类型                                    | 必填 | 说明                   |
984| ----------- | --------------------------------------- | ---- | ---------------------- |
985| phoneNumber | string                                  | 是   | 联系人的电话号码。     |
986| holder      | [Holder](#holder)                       | 否   | 创建联系人的应用信息。 |
987| attrs       | [ContactAttributes](#contactattributes) | 否   | 联系人的属性列表。     |
988
989**返回值:**
990| 类型                                            | 说明                                                |
991| ----------------------------------------------- | --------------------------------------------------- |
992| Promise<Array<[Contact](#contact)>> | 以Promise形式返回结果,返回查询到的联系人对象数组。 |
993
994**示例:**
995
996  ```
997  let promise = contact.queryContactsByPhoneNumber('138xxxxxxxx', {
998      holderId: 0
999  }, {
1000      attributes: ["ATTR_EMAIL", "ATTR_NAME"]
1001  });
1002  promise.then((data) => {
1003      console.log(`queryContactsByPhoneNumber success: data->${JSON.stringify(data)}`);
1004  }).catch((err) => {
1005      console.error(`queryContactsByPhoneNumber fail: err->${JSON.stringify(err)}`);
1006  });
1007  ```
1008
1009
1010## contact.queryContactsByEmail
1011
1012queryContactsByEmail(email: string, callback: AsyncCallback<Array<Contact>>): void
1013
1014根据email查询联系人,使用callback方式作为异步方法。
1015
1016**需要权限**:ohos.permission.READ_CONTACTS
1017
1018**系统能力**:SystemCapability.Applications.ContactsData
1019
1020**参数:**
1021| 参数名   | 类型                                                  | 必填 | 说明                                   |
1022| -------- | ----------------------------------------------------- | ---- | -------------------------------------- |
1023| email    | string                                                | 是   | 联系人的邮箱地址。                     |
1024| callback | AsyncCallback<Array<[Contact](#contact)>> | 是   | 回调函数,返回查询到的联系人对象数组。 |
1025
1026**示例:**
1027
1028  ```
1029  contact.queryContactsByEmail('xxx@email.com', (err, data) => {
1030      if (err) {
1031          console.log(`queryContactsByEmail callback: err->${JSON.stringify(err)}`);
1032          return;
1033      }
1034      console.log(`queryContactsByEmail callback: success data->${JSON.stringify(data)}`);
1035  });
1036  ```
1037
1038
1039## contact.queryContactsByEmail
1040
1041queryContactsByEmail(email: string, holder: Holder, callback: AsyncCallback<Array<Contact>>): void
1042
1043根据email查询联系人,使用callback方式作为异步方法。
1044
1045**需要权限**:ohos.permission.READ_CONTACTS
1046
1047**系统能力**:SystemCapability.Applications.ContactsData
1048
1049**参数:**
1050| 参数名   | 类型                                                  | 必填 | 说明                                   |
1051| -------- | ----------------------------------------------------- | ---- | -------------------------------------- |
1052| email    | string                                                | 是   | 联系人的邮箱地址。                     |
1053| holder   | [Holder](#holder)                                     | 是   | 创建联系人的应用信息。                 |
1054| callback | AsyncCallback<Array<[Contact](#contact)>> | 是   | 回调函数,返回查询到的联系人对象数组。 |
1055
1056**示例:**
1057
1058  ```
1059  contact.queryContactsByEmail('xxx@email.com', {
1060      holderId: 0
1061  }, (err, data) => {
1062      if (err) {
1063          console.log(`queryContactsByEmail callback: err->${JSON.stringify(err)}`);
1064          return;
1065      }
1066      console.log(`queryContactsByEmail callback: success data->${JSON.stringify(data)}`);
1067  });
1068  ```
1069
1070
1071## contact.queryContactsByEmail
1072
1073queryContactsByEmail(email: string, attrs: ContactAttributes, callback: AsyncCallback<Array<Contact>>): void
1074
1075根据email查询联系人,使用callback方式作为异步方法。
1076
1077**需要权限**:ohos.permission.READ_CONTACTS
1078
1079**系统能力**:SystemCapability.Applications.ContactsData
1080
1081**参数:**
1082| 参数名   | 类型                                                  | 必填 | 说明                                 |
1083| -------- | ----------------------------------------------------- | ---- | ------------------------------------ |
1084| email    | string                                                | 是   | 联系人的邮箱地址。                   |
1085| attrs    | [ContactAttributes](#contactattributes)               | 是   | 联系人的属性列表。                   |
1086| callback | AsyncCallback<Array<[Contact](#contact)>> | 是   | 回调函数,返回查询到联系人对象数组。 |
1087
1088**示例:**
1089
1090  ```
1091  contact.queryContactsByEmail('xxx@email.com', {
1092      attributes: ["ATTR_EMAIL", "ATTR_NAME"]
1093  }, (err, data) => {
1094      if (err) {
1095          console.log(`queryContactsByEmail callback: err->${JSON.stringify(err)}`);
1096          return;
1097      }
1098      console.log(`queryContactsByEmail callback: success data->${JSON.stringify(data)}`);
1099  });
1100  ```
1101
1102
1103## contact.queryContactsByEmail
1104
1105queryContactsByEmail(email: string, holder: Holder, attrs: ContactAttributes, callback: AsyncCallback<Array<Contact>>): void
1106
1107根据email查询联系人,使用callback方式作为异步方法。
1108
1109**需要权限**:ohos.permission.READ_CONTACTS
1110
1111**系统能力**:SystemCapability.Applications.ContactsData
1112
1113**参数:**
1114| 参数名   | 类型                                                  | 必填 | 说明                                 |
1115| -------- | ----------------------------------------------------- | ---- | ------------------------------------ |
1116| email    | string                                                | 是   | 联系人的邮箱地址。                   |
1117| holder   | [Holder](#holder)                                     | 是   | 创建联系人的应用信息。               |
1118| attrs    | [ContactAttributes](#contactattributes)               | 是   | 联系人的属性列表。                   |
1119| callback | AsyncCallback<Array<[Contact](#contact)>> | 是   | 回调函数,返回查询到联系人对象数组。 |
1120
1121**示例:**
1122
1123  ```
1124  contact.queryContactsByEmail('xxx@email.com', {
1125      holderId: 0
1126  }, {
1127      attributes: ["ATTR_EMAIL", "ATTR_NAME"]
1128  }, (err, data) => {
1129      if (err) {
1130          console.log(`queryContactsByEmail callback: err->${JSON.stringify(err)}`);
1131          return;
1132      }
1133      console.log(`queryContactsByEmail callback: success data->${JSON.stringify(data)}`);
1134  });
1135  ```
1136
1137
1138## contact.queryContactsByEmail
1139
1140queryContactsByEmail(email: string, holder?: Holder, attrs?: ContactAttributes): Promise<Array<Contact>>
1141
1142根据email查询联系人,使用Promise方式作为异步方法。
1143
1144**需要权限**:ohos.permission.READ_CONTACTS
1145
1146**系统能力**:SystemCapability.Applications.ContactsData
1147
1148**参数:**
1149| 参数名 | 类型                                    | 必填 | 说明                   |
1150| ------ | --------------------------------------- | ---- | ---------------------- |
1151| email  | string                                  | 是   | 联系人的邮箱地址。     |
1152| holder | [Holder](#holder)                       | 否   | 创建联系人的应用信息。 |
1153| attrs  | [ContactAttributes](#contactattributes) | 否   | 联系人的属性列表。     |
1154
1155**返回值:**
1156| 类型                                            | 说明                                                |
1157| ----------------------------------------------- | --------------------------------------------------- |
1158| Promise<Array<[Contact](#contact)>> | 以Promise形式返回结果,返回查询到的联系人对象数组。 |
1159
1160**示例:**
1161
1162  ```
1163  let promise = contact.queryContactsByEmail('xxx@email.com', {
1164      holderId: 0
1165  }, {
1166      attributes: ["ATTR_EMAIL", "ATTR_NAME"]
1167  });
1168  promise.then((data) => {
1169      console.log(`queryContactsByEmail success: data->${JSON.stringify(data)}`);
1170  }).catch((err) => {
1171      console.error(`queryContactsByEmail fail: err->${JSON.stringify(err)}`);
1172  });
1173  ```
1174
1175
1176## contact.queryGroups
1177
1178queryGroups(callback: AsyncCallback<Array<Group>>): void
1179
1180查询联系人的所有群组,使用callback方式作为异步方法。
1181
1182**需要权限**:ohos.permission.READ_CONTACTS
1183
1184**系统能力**:SystemCapability.Applications.ContactsData
1185
1186**参数:**
1187| 参数名   | 类型                                              | 必填 | 说明                                 |
1188| -------- | ------------------------------------------------- | ---- | ------------------------------------ |
1189| callback | AsyncCallback<Array<[Group](#group)>> | 是   | 回调函数,返回查询到的群组对象数组。 |
1190
1191**示例:**
1192
1193  ```
1194  contact.queryGroups((err, data) => {
1195      if (err) {
1196          console.log(`queryGroups callback: err->${JSON.stringify(err)}`);
1197          return;
1198      }
1199      console.log(`queryGroups callback: success data->${JSON.stringify(data)}`);
1200  });
1201  ```
1202
1203
1204## contact.queryGroups
1205
1206queryGroups(holder: Holder, callback: AsyncCallback<Array<Group>>): void
1207
1208查询联系人的所有群组,使用callback方式作为异步方法。
1209
1210**需要权限**:ohos.permission.READ_CONTACTS
1211
1212**系统能力**:SystemCapability.Applications.ContactsData
1213
1214**参数:**
1215| 参数名   | 类型                                              | 必填 | 说明                                 |
1216| -------- | ------------------------------------------------- | ---- | ------------------------------------ |
1217| holder   | Holder                                            | 是   | 创建联系人的应用信息。               |
1218| callback | AsyncCallback<Array<[Group](#group)>> | 是   | 回调函数,返回查询到的群组对象数组。 |
1219
1220**示例:**
1221
1222  ```
1223  contact.queryGroups({
1224      holderId: 0
1225  }, (err, data) => {
1226      if (err) {
1227          console.log(`queryGroups callback: err->${JSON.stringify(err)}`);
1228          return;
1229      }
1230      console.log(`queryGroups callback: success data->${JSON.stringify(data)}`);
1231  });
1232  ```
1233
1234
1235## contact.queryGroups
1236
1237queryGroups(holder?: Holder): Promise<Array<Group>>
1238
1239查询联系人的所有群组,使用Promise方式作为异步方法。
1240
1241**需要权限**:ohos.permission.READ_CONTACTS
1242
1243**系统能力**:SystemCapability.Applications.ContactsData
1244
1245**参数:**
1246| 参数名 | 类型              | 必填 | 说明                   |
1247| ------ | ----------------- | ---- | ---------------------- |
1248| holder | [Holder](#holder) | 否   | 创建联系人的应用信息。 |
1249
1250**返回值:**
1251| 类型                                        | 说明                                              |
1252| ------------------------------------------- | ------------------------------------------------- |
1253| Promise<Array<[Group](#group)>> | 以Promise形式返回结果,返回查询到的群组对象数组。 |
1254
1255**示例:**
1256
1257  ```
1258  let promise = contact.queryGroups({
1259      holderId: 0
1260  });
1261  promise.then((data) => {
1262      console.log(`queryGroups success: data->${JSON.stringify(data)}`);
1263  }).catch((err) => {
1264      console.error(`queryGroups fail: err->${JSON.stringify(err)}`);
1265  });
1266  ```
1267
1268
1269## contact.queryHolders
1270
1271queryHolders(callback: AsyncCallback<Array<Holder>>): void
1272
1273查询所有创建联系人的应用信息,使用callback方式作为异步方法。
1274
1275**需要权限**:ohos.permission.READ_CONTACTS
1276
1277**系统能力**:SystemCapability.Applications.ContactsData
1278
1279**参数:**
1280| 参数名   | 类型                                                | 必填 | 说明                                                 |
1281| -------- | --------------------------------------------------- | ---- | ---------------------------------------------------- |
1282| callback | AsyncCallback<Array<[Holder](#holder)>> | 是   | 回调函数,返回查询到的创建联系人应用信息的对象数组。 |
1283
1284**示例:**
1285
1286  ```
1287  contact.queryHolders((err, data) => {
1288      if (err) {
1289          console.log(`queryHolders callback: err->${JSON.stringify(err)}`);
1290          return;
1291      }
1292      console.log(`queryHolders callback: success data->${JSON.stringify(data)}`);
1293  });
1294  ```
1295
1296
1297## contact.queryHolders
1298
1299queryHolders(): Promise<Array<Holder>>
1300
1301查询所有创建联系人的应用信息,使用Promise方式作为异步方法。
1302
1303**需要权限**:ohos.permission.READ_CONTACTS
1304
1305**系统能力**:SystemCapability.Applications.ContactsData
1306
1307**返回值:**
1308| 类型                                          | 说明                                                         |
1309| --------------------------------------------- | ------------------------------------------------------------ |
1310| Promise<Array<[Holder](#holder)>> | 以Promise形式返回结果,返回查询到的创建联系人应用信息的对象数组。 |
1311
1312**示例:**
1313
1314  ```
1315  let promise = contact.queryHolders();
1316  promise.then((data) => {
1317      console.log(`queryHolders success: data->${JSON.stringify(data)}`);
1318  }).catch((err) => {
1319      console.error(`queryHolders fail: err->${JSON.stringify(err)}`);
1320  });
1321  ```
1322
1323
1324## contact.queryKey
1325
1326queryKey(id: number, callback: AsyncCallback<string>): void
1327
1328根据联系人的id查询联系人的key,使用callback方式作为异步方法。
1329
1330**需要权限**:ohos.permission.READ_CONTACTS
1331
1332**系统能力**:SystemCapability.Applications.ContactsData
1333
1334**参数:**
1335| 参数名   | 类型                        | 必填 | 说明                                    |
1336| -------- | --------------------------- | ---- | --------------------------------------- |
1337| id       | number                      | 是   | 联系人对象的id属性。                    |
1338| callback | AsyncCallback<string> | 是   | 回调函数,返回查询到的联系人对应的key。 |
1339
1340**示例:**
1341
1342  ```
1343  contact.queryKey(/*id*/1, (err, data) => {
1344      if (err) {
1345          console.log(`queryKey callback: err->${JSON.stringify(err)}`);
1346          return;
1347      }
1348      console.log(`queryKey callback: success data->${JSON.stringify(data)}`);
1349  });
1350  ```
1351
1352
1353## contact.queryKey
1354
1355queryKey(id: number, holder: Holder, callback: AsyncCallback<string>): void
1356
1357根据联系人的id查询联系人的key,使用callback方式作为异步方法。
1358
1359**需要权限**:ohos.permission.READ_CONTACTS
1360
1361**系统能力**:SystemCapability.Applications.ContactsData
1362
1363**参数:**
1364| 参数名   | 类型                        | 必填 | 说明                                    |
1365| -------- | --------------------------- | ---- | --------------------------------------- |
1366| id       | number                      | 是   | 联系人对象的id属性。                    |
1367| holder   | [Holder](#holder)           | 是   | 创建联系人的应用信息。                  |
1368| callback | AsyncCallback<string> | 是   | 回调函数,返回查询到的联系人对应的key。 |
1369
1370**示例:**
1371
1372  ```
1373  contact.queryKey(id, {
1374      holderId:1
1375  }, (err, data) => {
1376      if (err) {
1377          console.log(`queryKey callback: err->${JSON.stringify(err)}`);
1378          return;
1379      }
1380      console.log(`queryKey callback: success data->${JSON.stringify(data)}`);
1381  });
1382  ```
1383
1384
1385## contact.queryKey
1386
1387queryKey(id: number, holder?: Holder): Promise<string>
1388
1389根据联系人的id查询联系人的key,使用Promise方式作为异步方法。
1390
1391**需要权限**:ohos.permission.READ_CONTACTS
1392
1393**系统能力**:SystemCapability.Applications.ContactsData
1394
1395**参数:**
1396| 参数名 | 类型              | 必填 | 说明                   |
1397| ------ | ----------------- | ---- | ---------------------- |
1398| id     | number            | 是   | 联系人对象的id属性。   |
1399| holder | [Holder](#holder) | 否   | 创建联系人的应用信息。 |
1400
1401**返回值:**
1402| 类型                  | 说明                                                 |
1403| --------------------- | ---------------------------------------------------- |
1404| Promise<string> | 以Promise形式返回结果,返回查询到的联系人对应的key。 |
1405
1406**示例:**
1407
1408  ```
1409  let promise = contact.queryKey(id, {
1410      holderId: 0
1411  });
1412  promise.then((data) => {
1413      console.log(`queryKey success: data->${JSON.stringify(data)}`);
1414  }).catch((err) => {
1415      console.error(`queryKey fail: err->${JSON.stringify(err)}`);
1416  });
1417  ```
1418
1419
1420## Contact
1421
1422联系人对象类。
1423
1424**系统能力**:以下各项对应的系统能力均为SystemCapability.Applications.ContactsData1425
1426### 常量
1427
1428| 名称               | 值   | 说明             |
1429| ------------------ | ---- | ---------------- |
1430| INVALID_CONTACT_ID | -1   | 默认联系人的id。 |
1431
1432
1433### 属性
1434
1435| 名称              | 参数类型                                | 可读 | 可写 | 说明                                   |
1436| ----------------- | --------------------------------------- | ---- | ---- | -------------------------------------- |
1437| id                | number                                  | 是   | 否   | 联系人的id。                           |
1438| key               | string                                  | 是   | 否   | 联系人的key。                          |
1439| contactAttributes | [ContactAttributes](#contactattributes) | 是   | 是   | 联系人的属性列表。                     |
1440| emails            | [Email](#email)[]                       | 是   | 是   | 联系人的邮箱地址列表。                 |
1441| events            | [Event](#event)[]                       | 是   | 是   | 联系人的生日、周年纪念等重要日期列表。 |
1442| groups            | [Group](#group)[]                       | 是   | 是   | 联系人的群组列表。                     |
1443| imAddresses       | [ImAddress](#imaddress)[]               | 是   | 是   | 联系人的即时消息地址列表。             |
1444| phoneNumbers      | [PhoneNumber](#phonenumber)[]           | 是   | 是   | 联系人的电话号码列表。                 |
1445| portrait          | [Portrait](#portrait)                   | 是   | 是   | 联系人的头像。                         |
1446| postalAddresses   | [PostalAddress](#postaladdress)[]       | 是   | 是   | 联系人的邮政地址列表。                 |
1447| relations         | [Relation](#relation)[]                 | 是   | 是   | 联系人的关系列表。                     |
1448| sipAddresses      | [SipAddress](#sipaddress)[]             | 是   | 是   | 联系人的会话发起协议(SIP)地址列表。  |
1449| websites          | [Website](#website)[]                   | 是   | 是   | 联系人的网站列表。                     |
1450| name              | [Name](#name)                           | 是   | 是   | 联系人的姓名。                         |
1451| nickName          | [NickName](#nickname)                   | 是   | 是   | 联系人的昵称。                         |
1452| note              | [Note](#note)                           | 是   | 是   | 联系人的备注。                         |
1453| organization      | [Organization](#organization)           | 是   | 是   | 联系人的组织信息。                     |
1454
1455
1456**对象创建示例:**
1457
1458使用JSON格式创建联系人数据:
1459
1460
1461```
1462let myContact = {
1463    phoneNumbers: [{
1464        phoneNumber: "138xxxxxxxx"
1465    }],
1466    name: {
1467        fullName: "fullName",
1468        namePrefix: "namePrefix"
1469    },
1470    nickName: {
1471        nickName: "nickName"
1472    }
1473};
1474```
1475
1476
1477  或使用new一个Contact对象的方式创建数据:
1478
1479```
1480let myContact = new contact.Contact();
1481let name = new contact.Name();
1482name.fullName = "fullName";
1483let phoneNumber = new contact.PhoneNumber();
1484phoneNumber.phoneNumber = "138xxxxxxxx";
1485myContact.name = name;
1486myContact.phoneNumbers = [phoneNumber];
1487```
1488
1489
1490## ContactAttributes
1491
1492联系人属性列表,一般作为入参用来标识希望查询的联系人属性。
1493当传入为null时,默认查询全部属性。
1494
1495**系统能力**:以下各项对应的系统能力均为SystemCapability.Applications.ContactsData1496
1497| 名称       | 参数类型                  | 可读 | 可写 | 说明             |
1498| ---------- | ------------------------- | ---- | ---- | ---------------- |
1499| attributes | [Attribute](#attribute)[] | 是   | 是   | 联系人属性列表。 |
1500
1501
1502**对象创建示例:**
1503
1504使用JSON格式创建数据:
1505
1506
1507```
1508let contactAttributes = {
1509    attributes: [
1510        contact.Attribute.ATTR_EMAIL,
1511        contact.Attribute.ATTR_NAME,
1512        contact.Attribute.ATTR_PHONE
1513    ]
1514};
1515```
1516
1517或使用new一个ContactAttributes对象的方式创建数据:
1518
1519
1520```
1521let contactAttributes = new contact.ContactAttributes();
1522contactAttributes.attributes = ["ATTR_EMAIL"];
1523```
1524
1525
1526## Attribute
1527
1528枚举,联系人属性列表。
1529
1530**系统能力**:以下各项对应的系统能力均为SystemCapability.Applications.ContactsData1531
1532| 名称                  | 说明                               |
1533| --------------------- | ---------------------------------- |
1534| ATTR_CONTACT_EVENT    | 联系人的生日、周年纪念等重要日期。 |
1535| ATTR_EMAIL            | 联系人的邮箱地址。                 |
1536| ATTR_GROUP_MEMBERSHIP | 联系人的群组。                     |
1537| ATTR_IM               | 联系人的即时消息地址。             |
1538| ATTR_NAME             | 联系人的姓名。                     |
1539| ATTR_NICKNAME         | 联系人的昵称。                     |
1540| ATTR_NOTE             | 联系人的备注。                     |
1541| ATTR_ORGANIZATION     | 联系人的组织信息。                 |
1542| ATTR_PHONE            | 联系人的电话号码。                 |
1543| ATTR_PORTRAIT         | 联系人的头像。                     |
1544| ATTR_POSTAL_ADDRESS   | 联系人的邮政地址。                 |
1545| ATTR_RELATION         | 联系人的关系。                     |
1546| ATTR_SIP_ADDRESS      | 联系人的会话发起协议(SIP)地址。  |
1547| ATTR_WEBSITE          | 联系人的网站。                     |
1548
1549
1550**对象创建示例:**
1551
1552使用JSON格式创建数据:
1553
1554```
1555let attributes = [contact.Attribute.ATTR_EMAIL, contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE];
1556```
1557
1558
1559## Email
1560
1561联系人的邮箱。
1562
1563**系统能力**:以下各项对应的系统能力均为SystemCapability.Applications.ContactsData1564
1565### 常量
1566
1567| 名称             | 值   | 说明             |
1568| ---------------- | ---- | ---------------- |
1569| CUSTOM_LABEL     | 0    | 自定义邮箱类型。 |
1570| EMAIL_HOME       | 1    | 家庭邮箱类型。   |
1571| EMAIL_WORK       | 2    | 工作邮箱类型。   |
1572| EMAIL_OTHER      | 3    | 其它邮箱类型。   |
1573| INVALID_LABEL_ID | -1   | 无效邮箱类型。   |
1574
1575
1576### 属性
1577
1578| 名称        | 参数类型 | 可读 | 可写 | 说明             |
1579| ----------- | -------- | ---- | ---- | ---------------- |
1580| email       | string   | 是   | 是   | 邮箱地址。       |
1581| labelName   | string   | 是   | 是   | 邮箱的类型名称。 |
1582| displayName | string   | 是   | 是   | 邮箱的显示名称。 |
1583| labelId     | number   | 是   | 是   | 邮箱的类型。     |
1584
1585
1586**对象创建示例:**
1587
1588  使用JSON格式创建数据:
1589
1590```
1591let email = {
1592    email: "xxx@email.com",
1593    displayName: "displayName"
1594}
1595```
1596
1597
1598  或使用new一个Email对象的方式创建数据:
1599
1600```
1601let email = new contact.Email();
1602email.email = "xxx@email.com";
1603```
1604
1605
1606## Holder
1607
1608创建联系人的应用信息类。
1609
1610**系统能力**:以下各项对应的系统能力均为SystemCapability.Applications.ContactsData1611
1612| 名称        | 参数类型 | 可读 | 可写 | 说明       |
1613| ----------- | -------- | ---- | ---- | ---------- |
1614| bundleName  | string   | 是   | 否   | 包名。     |
1615| displayName | string   | 是   | 否   | 应用名称。 |
1616| holderId    | number   | 是   | 是   | 应用id。   |
1617
1618
1619**对象创建示例:**
1620
1621  使用JSON格式创建数据:
1622
1623```
1624let holder = {
1625  holderId: 0
1626};
1627```
1628
1629  或使用new一个Holder对象的方式创建数据:
1630
1631```
1632let holder = new contact.Holder();
1633holder.holderId = 0;
1634```
1635
1636
1637## Event
1638
1639联系人事件类。
1640
1641**系统能力**:以下各项对应的系统能力均为SystemCapability.Applications.ContactsData1642
1643### 常量
1644
1645| 名称              | 值   | 说明               |
1646| ----------------- | ---- | ------------------ |
1647| CUSTOM_LABEL      | 0    | 自定义事件类型。   |
1648| EVENT_ANNIVERSARY | 1    | 周年纪念事件类型。 |
1649| EVENT_OTHER       | 2    | 其它事件类型。     |
1650| EVENT_BIRTHDAY    | 3    | 生日事件类型。     |
1651| INVALID_LABEL_ID  | -1   | 无效事件类型。     |
1652
1653
1654### 属性
1655
1656| 名称      | 参数类型 | 可读 | 可写 | 说明           |
1657| --------- | -------- | ---- | ---- | -------------- |
1658| eventDate | string   | 是   | 是   | 事件的日期。   |
1659| labelName | string   | 是   | 是   | 事件类型名称。 |
1660| labelId   | number   | 是   | 是   | 事件类型。     |
1661
1662
1663**对象创建示例:**
1664
1665  使用JSON格式创建数据:
1666
1667```
1668let event = {
1669    eventDate: "xxxxxx"
1670};
1671```
1672
1673  或使用new一个Event对象的方式创建数据:
1674
1675```
1676let event = new contact.Event();
1677event.eventDate = "xxxxxx";
1678```
1679
1680
1681## Group
1682
1683联系人的群组类。
1684
1685**系统能力**:以下各项对应的系统能力均为SystemCapability.Applications.ContactsData1686
1687| 名称    | 参数类型 | 可读 | 可写 | 说明               |
1688| ------- | -------- | ---- | ---- | ------------------ |
1689| groupId | number   | 是   | 是   | 联系人群组的id。   |
1690| title   | string   | 是   | 是   | 联系人群组的名称。 |
1691
1692
1693**对象创建示例:**
1694
1695  使用JSON格式创建数据:
1696
1697```
1698let group = {
1699    groupId: 1,
1700    title: "title"
1701};
1702```
1703
1704  或使用new一个Group对象的方式创建数据:
1705
1706```
1707let group = new contact.Group();
1708group.title = "title";
1709```
1710
1711
1712## ImAddress
1713
1714联系人的即时消息地址。
1715
1716**系统能力**:以下各项对应的系统能力均为SystemCapability.Applications.ContactsData1717
1718### 常量
1719
1720| 名称             | 值   | 说明                 |
1721| ---------------- | ---- | -------------------- |
1722| CUSTOM_LABEL     | -1   | 自定义即时消息类型。 |
1723| IM_AIM           | 0    | AIM即时消息类型。    |
1724| IM_MSN           | 1    | MSN即时消息类型。    |
1725| IM_YAHOO         | 2    | YAHOO即时消息类型。  |
1726| IM_SKYPE         | 3    | SKYPE即时消息类型。  |
1727| IM_QQ            | 4    | QQ即时消息类型。     |
1728| IM_ICQ           | 6    | ICQ即时消息类型。    |
1729| IM_JABBER        | 7    | JABBER即时消息类型。 |
1730| INVALID_LABEL_ID | -2   | 无效的即时消息类型。 |
1731
1732
1733### 属性
1734
1735| 名称      | 参数类型 | 可读 | 可写 | 说明               |
1736| --------- | -------- | ---- | ---- | ------------------ |
1737| imAddress | string   | 是   | 是   | 即时消息地址。     |
1738| labelName | string   | 是   | 是   | 即时消息类型名称。 |
1739| labelId   | number   | 是   | 是   | 即时消息类型。     |
1740
1741
1742**对象创建示例:**
1743
1744  使用JSON格式创建数据:
1745
1746```
1747let imAddress = {
1748    imAddress: "imAddress",
1749    labelName: "labelName"
1750};
1751```
1752
1753
1754  或使用new一个ImAddress对象的方式创建数据:
1755
1756```
1757let imAddress = new contact.ImAddress();
1758imAddress.imAddress = "imAddress";
1759```
1760
1761
1762## Name
1763
1764联系人的名字类。
1765
1766**系统能力**:以下各项对应的系统能力均为SystemCapability.Applications.ContactsData1767
1768| 名称               | 参数类型 | 可读 | 可写 | 说明                        |
1769| ------------------ | -------- | ---- | ---- | --------------------------- |
1770| familyName         | string   | 是   | 是   | 联系人的家庭姓名。          |
1771| familyNamePhonetic | string   | 是   | 是   | 联系人的家庭姓名拼音。      |
1772| fullName           | string   | 是   | 是   | 联系人的全名。              |
1773| givenName          | string   | 是   | 是   | 联系人的名称(firstName)。 |
1774| givenNamePhonetic  | string   | 是   | 是   | 联系人的名称拼音。          |
1775| middleName         | string   | 是   | 是   | 联系人的中间名。            |
1776| middleNamePhonetic | string   | 是   | 是   | 联系人的中间名拼音。        |
1777| namePrefix         | string   | 是   | 是   | 联系人的姓名前缀。          |
1778| nameSuffix         | string   | 是   | 是   | 联系人的姓名后缀。          |
1779
1780
1781**对象创建示例:**
1782
1783  使用JSON格式创建数据:
1784
1785```
1786let name = {
1787    familyName: "familyName",
1788    fullName: "fullName"
1789};
1790```
1791
1792  或使用new一个name对象的方式创建数据:
1793
1794```
1795let name = new contact.Name();
1796name.familyName = "familyName";
1797name.fullName = "fullName";
1798```
1799
1800
1801## NickName
1802
1803联系人的昵称类。
1804
1805**系统能力**:以下各项对应的系统能力均为SystemCapability.Applications.ContactsData1806
1807| 名称     | 参数类型 | 可读 | 可写 | 说明           |
1808| -------- | -------- | ---- | ---- | -------------- |
1809| nickName | string   | 是   | 是   | 联系人的昵称。 |
1810
1811
1812**对象创建示例:**
1813
1814  使用JSON格式创建数据:
1815
1816```
1817let nickName = {
1818    nickName: "nickName"
1819};
1820```
1821
1822  或使用new一个NickName对象的方式创建数据:
1823
1824```
1825let nickName = new contact.NickName();
1826nickName.nickName = "nickName";
1827```
1828
1829
1830## Note
1831
1832联系人的备注类。
1833
1834**系统能力**:以下各项对应的系统能力均为SystemCapability.Applications.ContactsData1835
1836| 名称        | 参数类型 | 可读 | 可写 | 说明               |
1837| ----------- | -------- | ---- | ---- | ------------------ |
1838| noteContent | string   | 是   | 是   | 联系人的备注内容。 |
1839
1840
1841**对象创建示例:**
1842
1843  使用JSON格式创建数据:
1844
1845```
1846let note = {
1847    noteContent: "noteContent"
1848};
1849```
1850
1851  或使用new一个Note对象的方式创建数据:
1852
1853```
1854let note = new contact.Note();
1855note.noteContent = "noteContent";
1856```
1857
1858
1859## Organization
1860
1861联系人的组织类。
1862
1863**系统能力**:以下各项对应的系统能力均为SystemCapability.Applications.ContactsData1864
1865| 名称  | 参数类型 | 可读 | 可写 | 说明       |
1866| ----- | -------- | ---- | ---- | ---------- |
1867| name  | string   | 是   | 是   | 组织名称。 |
1868| title | string   | 是   | 是   | 组织标题。 |
1869
1870
1871**对象创建示例:**
1872
1873  使用JSON格式创建数据:
1874
1875```
1876let organization = {
1877    name: "name",
1878    title: "title"
1879};
1880```
1881
1882  或使用new一个Organization对象的方式创建数据:
1883
1884```
1885let organization = new contact.Organization();
1886organization.name = "name";
1887organization.title = "title";
1888```
1889
1890
1891## PhoneNumber
1892
1893联系人电话号码类。
1894
1895**系统能力**:以下各项对应的系统能力均为SystemCapability.Applications.ContactsData1896
1897### 常量
1898
1899| 名称             | 值   | 说明                                             |
1900| ---------------- | ---- | ------------------------------------------------ |
1901| CUSTOM_LABEL     | 0    | 自定义电话类型。                                 |
1902| NUM_HOME         | 1    | 家庭电话类型。                                   |
1903| NUM_MOBILE       | 2    | 移动电话类型。                                   |
1904| NUM_WORK         | 3    | 工作电话类型。                                   |
1905| NUM_FAX_WORK     | 4    | 工作传真电话类型。                               |
1906| NUM_FAX_HOME     | 5    | 家庭传真电话类型。                               |
1907| NUM_PAGER        | 6    | 寻呼机电话类型。                                 |
1908| NUM_OTHER        | 7    | 其它电话类型。                                   |
1909| NUM_CALLBACK     | 8    | 回呼电话类型。                                   |
1910| NUM_CAR          | 9    | 车机电话类型。                                   |
1911| NUM_COMPANY_MAIN | 10   | 公司电话类型。                                   |
1912| NUM_ISDN         | 11   | 综合业务数字网(ISDN)电话类型。                 |
1913| NUM_MAIN         | 12   | 主电话类型。                                     |
1914| NUM_OTHER_FAX    | 13   | 其它传真类型。                                   |
1915| NUM_RADIO        | 14   | 无线电话类型。                                   |
1916| NUM_TELEX        | 15   | 电传电话类型。                                   |
1917| NUM_TTY_TDD      | 16   | 电传打字机(TTY)或测试驱动开发(TDD)电话类型。 |
1918| NUM_WORK_MOBILE  | 17   | 工作移动电话类型。                               |
1919| NUM_WORK_PAGER   | 18   | 工作寻呼机电话类型。                             |
1920| NUM_ASSISTANT    | 19   | 助理电话类型。                                   |
1921| NUM_MMS          | 20   | 彩信电话类型。                                   |
1922| INVALID_LABEL_ID | -1   | 无效电话类型。                                   |
1923
1924
1925### 属性
1926
1927| 名称        | 参数类型 | 可读 | 可写 | 说明               |
1928| ----------- | -------- | ---- | ---- | ------------------ |
1929| labelName   | string   | 是   | 是   | 电话号码类型名称。 |
1930| phoneNumber | string   | 是   | 是   | 电话号码。         |
1931| labelId     | number   | 是   | 是   | 电话号码类型。     |
1932
1933
1934**对象创建示例:**
1935
1936  使用JSON格式创建数据:
1937
1938```
1939let phoneNumber = {
1940    phoneNumber: "138xxxxxxxx",
1941    labelId: contact.PhoneNumber.NUM_HOME
1942};
1943```
1944
1945  或使用new一个PhoneNumber对象的方式创建数据:
1946
1947```
1948let phoneNumber = new contact.PhoneNumber();
1949phoneNumber.phoneNumber = "138xxxxxxxx";
1950```
1951
1952
1953## Portrait
1954
1955联系人的头像类。
1956
1957**系统能力**:以下各项对应的系统能力均为SystemCapability.Applications.ContactsData1958
1959| 名称 | 参数类型 | 可读 | 可写 | 说明           |
1960| ---- | -------- | ---- | ---- | -------------- |
1961| uri  | string   | 是   | 是   | 联系人的头像。 |
1962
1963
1964**对象创建示例:**
1965
1966  使用JSON格式创建数据:
1967
1968```
1969let portrait = {
1970    uri: "uri"
1971};
1972```
1973
1974  或使用new一个Portrait对象的方式创建数据:
1975
1976```
1977let portrait = new contact.Portrait();
1978portrait.uri = "uri";
1979```
1980
1981
1982## PostalAddress
1983
1984联系人的邮政地址类。
1985
1986**系统能力**:以下各项对应的系统能力均为SystemCapability.Applications.ContactsData1987
1988### 常量
1989
1990| 名称             | 值   | 说明                 |
1991| ---------------- | ---- | -------------------- |
1992| CUSTOM_LABEL     | 0    | 自定义邮政地址类型。 |
1993| ADDR_HOME        | 1    | 家庭地址类型。       |
1994| ADDR_WORK        | 2    | 工作地址类型。       |
1995| ADDR_OTHER       | 3    | 其它地址类型。       |
1996| INVALID_LABEL_ID | -1   | 无效地址类型。       |
1997
1998
1999### 属性
2000
2001| 名称          | 参数类型 | 可读 | 可写 | 说明                       |
2002| ------------- | -------- | ---- | ---- | -------------------------- |
2003| city          | string   | 是   | 是   | 联系人所在的城市。         |
2004| country       | string   | 是   | 是   | 联系人所在的国家。         |
2005| labelName     | string   | 是   | 是   | 邮政地址类型名称。         |
2006| neighborhood  | string   | 是   | 是   | 联系人的邻居。             |
2007| pobox         | string   | 是   | 是   | 联系人的邮箱。             |
2008| postalAddress | string   | 是   | 是   | 联系人的邮政地址。         |
2009| postcode      | string   | 是   | 是   | 联系人所在区域的邮政编码。 |
2010| region        | string   | 是   | 是   | 联系人所在的区域。         |
2011| street        | string   | 是   | 是   | 联系人所在的街道。         |
2012| labelId       | number   | 是   | 是   | 邮政地址名称。             |
2013
2014
2015**对象创建示例:**
2016
2017  使用JSON格式创建数据:
2018
2019```
2020let postalAddress = {
2021    city: "city"
2022};
2023```
2024
2025  或使用new一个PostalAddress对象的方式创建数据:
2026
2027```
2028let postalAddress = new contact.PostalAddress();
2029postalAddress.city = "city";
2030```
2031
2032
2033## Relation
2034
2035联系人的关系类。
2036
2037**系统能力**:以下各项对应的系统能力均为SystemCapability.Applications.ContactsData2038
2039### 常量
2040
2041| 名称                      | 值   | 说明               |
2042| ------------------------- | ---- | ------------------ |
2043| CUSTOM_LABEL              | 0    | 自定义关系类型。   |
2044| RELATION_ASSISTANT        | 1    | 助手关系类型。     |
2045| RELATION_BROTHER          | 2    | 兄弟关系类型。     |
2046| RELATION_CHILD            | 3    | 子女关系类型。     |
2047| RELATION_DOMESTIC_PARTNER | 4    | 同居同伴关系类型。 |
2048| RELATION_FATHER           | 5    | 父亲关系类型。     |
2049| RELATION_FRIEND           | 6    | 朋友关系类型。     |
2050| RELATION_MANAGER          | 7    | 管理者关系类型。   |
2051| RELATION_MOTHER           | 8    | 母亲关系类型。     |
2052| RELATION_PARENT           | 9    | 父母关系类型。     |
2053| RELATION_PARTNER          | 10   | 合作伙伴关系类型。 |
2054| RELATION_REFERRED_BY      | 11   | 推荐人关系类型。   |
2055| RELATION_RELATIVE         | 12   | 亲属关系类型。     |
2056| RELATION_SISTER           | 13   | 姐妹关系类型。     |
2057| RELATION_SPOUSE           | 14   | 配偶关系类型。     |
2058| INVALID_LABEL_ID          | -1   | 无效的关系类型。   |
2059
2060
2061### 属性
2062
2063| 名称         | 参数类型 | 可读 | 可写 | 说明           |
2064| ------------ | -------- | ---- | ---- | -------------- |
2065| labelName    | string   | 是   | 是   | 关系类型名称。 |
2066| relationName | string   | 是   | 是   | 关系名称。     |
2067| labelId      | number   | 是   | 是   | 关系类型。     |
2068
2069
2070**对象创建示例:**
2071
2072  使用JSON格式创建数据:
2073
2074```
2075let relation = {
2076    relationName: "relationName",
2077    labelId: contact.Relation.RELATION_ASSISTANT
2078};
2079```
2080
2081  或使用new一个Relation对象的方式创建数据:
2082
2083```
2084let relation = new contact.Relation();
2085relation.relationName = "relationName";
2086relation.labelId = contact.Relation.RELATION_ASSISTANT;
2087```
2088
2089
2090## SipAddress
2091
2092联系人的会话发起协议(SIP)地址类。
2093
2094**系统能力**:以下各项对应的系统能力均为SystemCapability.Applications.ContactsData2095
2096### 常量
2097
2098| 名称             | 值   | 说明                                |
2099| ---------------- | ---- | ----------------------------------- |
2100| CUSTOM_LABEL     | 0    | 自定义会话发起协议(SIP)地址类型。 |
2101| SIP_HOME         | 1    | 家庭会话发起协议(SIP)地址类型。   |
2102| SIP_WORK         | 2    | 工作会话发起协议(SIP)地址类型。   |
2103| SIP_OTHER        | 3    | 其它会话发起协议(SIP)地址类型。   |
2104| INVALID_LABEL_ID | -1   | 无效会话发起协议(SIP)地址类型。   |
2105
2106
2107### 属性
2108
2109| 名称       | 参数类型 | 可读 | 可写 | 说明                              |
2110| ---------- | -------- | ---- | ---- | --------------------------------- |
2111| labelName  | string   | 是   | 是   | 会话发起协议(SIP)地址类型名称。 |
2112| sipAddress | string   | 是   | 是   | 会话发起协议(SIP)地址。         |
2113| labelId    | number   | 是   | 是   | 会话发起协议(SIP)地址类型。     |
2114
2115**对象创建示例:**
2116
2117  使用JSON格式创建数据:
2118
2119```
2120var sipAddress = {
2121    sipAddress: "sipAddress"
2122};
2123```
2124
2125  或使用new一个SipAddress对象的方式创建数据:
2126
2127```
2128let sipAddress = new contact.SipAddress();
2129sipAddress.sipAddress = "sipAddress";
2130```
2131
2132
2133## Website
2134
2135联系人的网站信息类。
2136
2137**系统能力**:以下各项对应的系统能力均为SystemCapability.Applications.ContactsData2138
2139| 名称    | 参数类型 | 可读 | 可写 | 说明               |
2140| ------- | -------- | ---- | ---- | ------------------ |
2141| website | string   | 是   | 是   | 联系人的网站信息。 |
2142
2143
2144**对象创建示例:**
2145
2146  使用JSON格式创建数据:
2147
2148```
2149let website = {
2150    website: "website"
2151};
2152```
2153
2154  或使用new一个Website对象的方式创建数据:
2155
2156```
2157let website = new contact.Website();
2158website.website = "website";
2159```