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