• 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 '@kit.ContactsKit';
14```
15
16## contact.addContact<sup>10+</sup>
17
18addContact(context: Context, contact: Contact, callback: AsyncCallback&lt;number&gt;): void
19
20添加联系人,使用callback方式作为异步方法。
21
22**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。
23
24**需要权限**:ohos.permission.WRITE_CONTACTS
25
26**系统能力**:SystemCapability.Applications.ContactsData
27
28**参数:**
29
30| 参数名   | 类型                        | 必填 | 说明                                                         |
31| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
32| context  | Context                     | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
33| contact  | [Contact](#contact)         | 是   | 联系人信息。                                                 |
34| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数。成功返回添加的联系人id;失败返回失败的错误码。     |
35
36**错误码:**
37
38以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
39
40| 错误码ID | 错误信息           |
41| -------- | ------------------ |
42| 201      | Permission denied. |
43| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
44
45**示例:**
46
47```js
48  import { BusinessError } from '@kit.BasicServicesKit';
49  // 获取context。
50  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
51  contact.addContact(
52    context,
53    {
54	  name: {
55	    fullName: 'xxx'
56	  },
57      phoneNumbers: [{
58	    phoneNumber: '138xxxxxxxx'
59	  }]
60    }, (err: BusinessError, data) => {
61      if (err) {
62        console.error(`Failed to add Contact. Code:${err.code}, message: ${err.message}`);
63        return;
64      }
65      console.info(`Succeeded in adding Contact. data: ${JSON.stringify(data)}`);
66  });
67```
68
69## contact.addContact<sup>(deprecated)7+</sup>
70
71addContact(contact: Contact, callback: AsyncCallback&lt;number&gt;): void
72
73添加联系人,使用callback方式作为异步方法。
74
75> **说明**
76>
77> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[addContact](#contactaddcontact10)替代。
78
79**需要权限**:ohos.permission.WRITE_CONTACTS
80
81**系统能力**:SystemCapability.Applications.ContactsData
82
83**参数:**
84
85| 参数名   | 类型                        | 必填 | 说明                                                     |
86| -------- | --------------------------- | ---- | -------------------------------------------------------- |
87| contact  | [Contact](#contact)         | 是   | 联系人信息。                                             |
88| callback | AsyncCallback&lt;number&gt; | 是   | 回调函数。成功返回添加的联系人id;失败返回失败的错误码。 |
89
90**示例:**
91
92  ```js
93  import { BusinessError } from '@kit.BasicServicesKit';
94  contact.addContact({
95      name: {
96	    fullName: 'xxx'
97	  },
98      phoneNumbers: [{
99	    phoneNumber: '138xxxxxxxx'
100	  }]
101  }, (err: BusinessError, data) => {
102      if (err) {
103          console.error(`Failed to add Contact. Code: ${err.code}, message: ${err.message}`);
104          return;
105      }
106      console.info(`Succeeded in adding Contact. data: ${JSON.stringify(data)}`);
107  });
108  ```
109
110## contact.addContact<sup>10+</sup>
111
112addContact(context: Context, contact: Contact): Promise<number&gt;
113
114添加联系人,使用Promise方式作为异步方法。
115
116**原子化服务API**:从API version 12 开始,该接口支持在原子化服务中使用。
117
118**需要权限**:ohos.permission.WRITE_CONTACTS
119
120**系统能力**:SystemCapability.Applications.ContactsData
121
122**参数:**
123
124| 参数名  | 类型                | 必填 | 说明                                                         |
125| ------- | ------------------- | ---- | ------------------------------------------------------------ |
126| context | Context             | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
127| contact | [Contact](#contact) | 是   | 联系人信息。                                                 |
128
129**返回值:**
130
131| 类型                  | 说明                              |
132| --------------------- | --------------------------------- |
133| Promise&lt;number&gt; | Promise对象,返回添加的联系人id。 |
134
135**错误码:**
136
137以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
138
139| 错误码ID | 错误信息           |
140| -------- | ------------------ |
141| 201      | Permission denied. |
142| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified. |
143
144**示例:**
145
146```js
147  import { BusinessError } from '@kit.BasicServicesKit';
148  // 获取context。
149  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
150  let promise = contact.addContact(
151    context,
152    {
153	  name: {
154	    fullName: 'xxx'
155	  },
156      phoneNumbers: [{
157	    phoneNumber: '138xxxxxxxx'
158	  }]
159  });
160  promise.then((data) => {
161    console.info(`Succeeded in adding Contact. data: ${JSON.stringify(data)}`);
162  }).catch((err: BusinessError) => {
163    console.error(`Failed to add Contact. Code: ${err.code}, message: ${err.message}`);
164  });
165```
166
167## contact.addContact<sup>(deprecated)7+</sup>
168
169addContact(contact: Contact): Promise&lt;number&gt;
170
171添加联系人,使用Promise方式作为异步方法。
172
173> **说明**
174>
175> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[addContact](#contactaddcontact10-1)替代。
176
177**需要权限**:ohos.permission.WRITE_CONTACTS
178
179**系统能力**:SystemCapability.Applications.ContactsData
180
181**参数:**
182
183| 参数名  | 类型                | 必填 | 说明         |
184| ------- | ------------------- | ---- | ------------ |
185| contact | [Contact](#contact) | 是   | 联系人信息。 |
186
187**返回值:**
188
189| 类型                  | 说明                              |
190| --------------------- | --------------------------------- |
191| Promise&lt;number&gt; | Promise对象,返回添加的联系人id。 |
192
193**示例:**
194
195  ```js
196  import { BusinessError } from '@kit.BasicServicesKit';
197  let promise = contact.addContact({
198      name: {
199	    fullName: 'xxx'
200	  },
201      phoneNumbers: [{
202	    phoneNumber: '138xxxxxxxx'
203	  }]
204  });
205  promise.then((data) => {
206      console.info(`Succeeded in adding Contact. data: ${JSON.stringify(data)}`);
207  }).catch((err: BusinessError) => {
208      console.error(`Failed to add Contact. Code: ${err.code}, message: ${err.message}`);
209  });
210  ```
211
212## contact.deleteContact<sup>10+</sup>
213
214deleteContact(context: Context, key: string, callback: AsyncCallback&lt;void&gt;): void
215
216删除联系人,使用callback方式作为异步方法。
217
218**需要权限**:ohos.permission.WRITE_CONTACTS
219
220**系统能力**:SystemCapability.Applications.ContactsData
221
222**参数:**
223
224| 参数名   | 类型                      | 必填 | 说明                                                         |
225| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
226| context  | Context                   | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
227| key      | string                    | 是   | 联系人的唯一查询键key值,一个联系人对应一个key。             |
228| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。成功返回删除的联系人id;失败返回失败的错误码。     |
229
230**错误码:**
231
232| 错误码ID | 错误信息           |
233| -------- | ------------------ |
234| 201      | Permission denied. |
235| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified. |
236
237**示例:**
238
239```js
240  import { BusinessError } from '@kit.BasicServicesKit';
241  // 获取context。
242  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
243  contact.deleteContact(context, 'xxx', (err: BusinessError) => {
244      if (err) {
245          console.error(`Failed to delete Contact. Code: ${err.code}, message: ${err.message}`);
246          return;
247      }
248      console.info('Succeeded in deleting Contact.');
249  });
250```
251
252## contact.deleteContact<sup>(deprecated)7+</sup>
253
254deleteContact(key: string, callback: AsyncCallback&lt;void&gt;): void
255
256删除联系人,使用callback方式作为异步方法。
257
258> **说明**
259>
260> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[deleteContact](#contactdeletecontact10)替代。
261
262**需要权限**:ohos.permission.WRITE_CONTACTS
263
264**系统能力**:SystemCapability.Applications.ContactsData
265
266**参数:**
267
268| 参数名   | 类型                      | 必填 | 说明                                 |
269| -------- | ------------------------- | ---- | ------------------------------------ |
270| key      | string                    | 是   | 联系人的唯一查询键key值,一个联系人对应一个key。 |
271| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。成功返回删除的联系人id;失败返回失败的错误码。 |
272
273**示例:**
274
275  ```js
276  import { BusinessError } from '@kit.BasicServicesKit';
277  contact.deleteContact('xxx', (err: BusinessError) => {
278      if (err) {
279          console.error(`Failed to delete Contact. Code: ${err.code}, message: ${err.message}`);
280          return;
281      }
282      console.info('Succeeded in deleting Contact.');
283  });
284  ```
285
286## contact.deleteContact<sup>10+</sup>
287
288deleteContact(context: Context,  key: string): Promise&lt;void&gt;
289
290删除联系人,使用Promise方式作为异步方法。
291
292**需要权限**:ohos.permission.WRITE_CONTACTS
293
294**系统能力**:SystemCapability.Applications.ContactsData
295
296**参数:**
297
298| 参数名  | 类型    | 必填 | 说明                                                         |
299| ------- | ------- | ---- | ------------------------------------------------------------ |
300| context | Context | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
301| key     | string  | 是   | 联系人的唯一查询键key值,一个联系人对应一个key。                       |
302
303**返回值:**
304
305| 类型                | 说明                                   |
306| ------------------- | -------------------------------------- |
307| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
308
309**错误码:**
310
311| 错误码ID | 错误信息           |
312| -------- | ------------------ |
313| 201      | Permission denied. |
314| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified. |
315
316**示例:**
317
318  ```js
319  import { BusinessError } from '@kit.BasicServicesKit';
320  // 获取context。
321  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
322  let promise = contact.deleteContact(context, 'xxx');
323  promise.then(() => {
324      console.info(`Succeeded in deleting Contact.`);
325  }).catch((err: BusinessError) => {
326      console.error(`Failed to delete Contact. Code: ${err.code}, message: ${err.message}`);
327  });
328  ```
329
330## contact.deleteContact<sup>(deprecated)7+</sup>
331
332deleteContact(key: string): Promise&lt;void&gt;
333
334删除联系人,使用Promise方式作为异步方法。
335
336> **说明**
337>
338> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[deleteContact](#contactdeletecontact10-1)替代。
339
340**需要权限**:ohos.permission.WRITE_CONTACTS
341
342**系统能力**:SystemCapability.Applications.ContactsData
343
344**参数:**
345
346| 参数名 | 类型   | 必填 | 说明                                   |
347| ------ | ------ | ---- | -------------------------------------- |
348| key    | string | 是   | 联系人的唯一查询键key值,一个联系人对应一个key。 |
349
350**返回值:**
351
352| 类型                | 说明                                   |
353| ------------------- | -------------------------------------- |
354| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
355
356**示例:**
357
358  ```js
359  import { BusinessError } from '@kit.BasicServicesKit';
360  let promise = contact.deleteContact('xxx');
361  promise.then(() => {
362      console.info(`Succeeded in deleting Contact.`);
363  }).catch((err: BusinessError) => {
364      console.error(`Failed to delete Contact. Code: ${err.code}, message: ${err.message}`);
365  });
366  ```
367
368## contact.updateContact<sup>10+</sup>
369
370updateContact(context: Context, contact: Contact, callback: AsyncCallback&lt;void&gt;): void
371
372更新联系人,使用callback方式作为异步方法。
373
374**需要权限**:ohos.permission.WRITE_CONTACTSohos.permission.READ_CONTACTS
375
376**系统能力**:SystemCapability.Applications.ContactsData
377
378**参数:**
379
380| 参数名   | 类型                      | 必填 | 说明                                                         |
381| -------- | ------------------------- | ---- | ------------------------------------------------------------ |
382| context  | Context                   | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
383| contact  | [Contact](#contact)       | 是   | 联系人信息。id必填。                                         |
384| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。成功返回更新的联系人id;失败返回失败的错误码。     |
385
386**错误码:**
387
388| 错误码ID | 错误信息           |
389| -------- | ------------------ |
390| 201      | Permission denied. |
391| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
392
393**示例:**
394
395  ```js
396  import { BusinessError } from '@kit.BasicServicesKit';
397  // 获取context。
398  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
399  contact.updateContact(context, {
400      id: 1,
401      name: {
402	    fullName: 'xxx'
403	  },
404      phoneNumbers: [{
405	    phoneNumber: '138xxxxxxxx'
406	  }]
407  }, (err: BusinessError) => {
408      if (err) {
409          console.error(`Failed to update Contact. Code: ${err.code}, message: ${err.message}`);
410          return;
411      }
412      console.info('Succeeded in updating Contact.');
413  });
414  ```
415
416## contact.updateContact<sup>(deprecated)7+</sup>
417
418updateContact(contact: Contact, callback: AsyncCallback&lt;void&gt;): void
419
420更新联系人,使用callback方式作为异步方法。
421
422> **说明**
423>
424> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[updateContact](#contactupdatecontact10)替代。
425
426**需要权限**:ohos.permission.WRITE_CONTACTSohos.permission.READ_CONTACTS
427
428**系统能力**:SystemCapability.Applications.ContactsData
429
430**参数:**
431
432| 参数名   | 类型                      | 必填 | 说明                                 |
433| -------- | ------------------------- | ---- | ------------------------------------ |
434| contact  | [Contact](#contact)       | 是   | 联系人信息。id必填。                         |
435| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。成功返回更新的联系人id;失败返回失败的错误码。 |
436
437**示例:**
438
439  ```js
440  import { BusinessError } from '@kit.BasicServicesKit';
441  contact.updateContact({
442      id: 1,
443      name: {
444	    fullName: 'xxx'
445	  },
446      phoneNumbers: [{
447	    phoneNumber: '138xxxxxxxx'
448	  }]
449  }, (err: BusinessError) => {
450      if (err) {
451          console.error(`Failed to update Contact. Code: ${err.code}, message: ${err.message}`);
452          return;
453      }
454      console.info('Succeeded in updating Contact.');
455  });
456  ```
457
458## contact.updateContact<sup>10+</sup>
459
460updateContact(context: Context,  contact: Contact, attrs: ContactAttributes, callback: AsyncCallback&lt;void&gt;): void
461
462更新联系人,使用callback方式作为异步方法。
463
464**需要权限**:ohos.permission.WRITE_CONTACTSohos.permission.READ_CONTACTS
465
466**系统能力**:SystemCapability.Applications.ContactsData
467
468**参数:**
469
470| 参数名   | 类型                                    | 必填 | 说明                                                         |
471| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
472| context  | Context                                 | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
473| contact  | [Contact](#contact)                     | 是   | 联系人信息。id必填。                                         |
474| attrs    | [ContactAttributes](#contactattributes) | 是   | 联系人的属性列表。                                           |
475| callback | AsyncCallback&lt;void&gt;               | 是   | 回调函数。成功返回更新的联系人id;失败返回失败的错误码。     |
476
477**错误码:**
478
479| 错误码ID | 错误信息           |
480| -------- | ------------------ |
481| 201      | Permission denied. |
482| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified. |
483
484**示例:**
485
486  ```js
487  import { BusinessError } from '@kit.BasicServicesKit';
488  // 获取context。
489  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
490  contact.updateContact(context, {
491      id: 1,
492      name: {
493	    fullName: 'xxx'
494	  },
495      phoneNumbers: [{
496	    phoneNumber: '138xxxxxxxx'
497	  }]
498  }, {
499      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
500  }, (err: BusinessError) => {
501      if (err) {
502          console.error(`Failed to update Contact. Code: ${err.code}, message: ${err.message}`);
503          return;
504      }
505      console.info('Succeeded in updating Contact.');
506  });
507  ```
508
509## contact.updateContact<sup>(deprecated)7+</sup>
510
511updateContact(contact: Contact, attrs: ContactAttributes, callback: AsyncCallback&lt;void&gt;): void
512
513更新联系人,使用callback方式作为异步方法。
514
515> **说明**
516>
517> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[updateContact](#contactupdatecontact10-1)替代。
518
519**需要权限**:ohos.permission.WRITE_CONTACTSohos.permission.READ_CONTACTS
520
521**系统能力**:SystemCapability.Applications.ContactsData
522
523**参数:**
524
525| 参数名   | 类型                                    | 必填 | 说明                                 |
526| -------- | --------------------------------------- | ---- | ------------------------------------ |
527| contact  | [Contact](#contact)                     | 是   | 联系人信息。id必填。                         |
528| attrs    | [ContactAttributes](#contactattributes) | 是   | 联系人的属性列表。                   |
529| callback | AsyncCallback&lt;void&gt;               | 是   | 回调函数。成功返回更新的联系人id;失败返回失败的错误码。 |
530
531**示例:**
532
533  ```js
534  import { BusinessError } from '@kit.BasicServicesKit';
535  contact.updateContact({
536      id: 1,
537      name: {
538	    fullName: 'xxx'
539	  },
540      phoneNumbers: [{
541	    phoneNumber: '138xxxxxxxx'
542	  }]
543  }, {
544      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
545  }, (err: BusinessError) => {
546      if (err) {
547          console.error(`Failed to update Contact. Code: ${err.code}, message: ${err.message}`);
548          return;
549      }
550      console.info('Succeeded in updating Contact.');
551  });
552  ```
553
554## contact.updateContact<sup>10+</sup>
555
556updateContact(context: Context,  contact: Contact, attrs?: ContactAttributes): Promise&lt;void&gt;
557
558更新联系人,使用Promise方式作为异步方法。
559
560**需要权限**:ohos.permission.WRITE_CONTACTSohos.permission.READ_CONTACTS
561
562**系统能力**:SystemCapability.Applications.ContactsData
563
564**参数:**
565
566| 参数名  | 类型                                    | 必填 | 说明                                                         |
567| ------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
568| context | Context                                 | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
569| contact | [Contact](#contact)                     | 是   | 联系人信息。id必填。                                                 |
570| attrs   | [ContactAttributes](#contactattributes) | 否   | 联系人的属性列表。                                           |
571
572**返回值:**
573
574| 类型                | 说明                                   |
575| ------------------- | -------------------------------------- |
576| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
577
578**错误码:**
579
580| 错误码ID | 错误信息           |
581| -------- | ------------------ |
582| 201      | Permission denied. |
583| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified. |
584
585**示例:**
586
587```js
588  import { BusinessError } from '@kit.BasicServicesKit';
589  // 获取context。
590  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
591  let promise = contact.updateContact(context, {
592      id: 1,
593      name: {
594	    fullName: 'xxx'
595	  },
596      phoneNumbers: [{
597	    phoneNumber: '138xxxxxxxx'
598	  }]
599  }, {
600      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
601  });
602  promise.then(() => {
603      console.info('Succeeded in updating Contact.');
604  }).catch((err: BusinessError) => {
605      console.error(`Failed to update Contact. Code: ${err.code}, message: ${err.message}`);
606  });
607```
608
609## contact.updateContact<sup>(deprecated)7+</sup>
610
611updateContact(contact: Contact, attrs?: ContactAttributes): Promise&lt;void&gt;
612
613更新联系人,使用Promise方式作为异步方法。
614
615> **说明**
616>
617> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[updateContact](#contactupdatecontact10-2)替代。
618
619**需要权限**:ohos.permission.WRITE_CONTACTSohos.permission.READ_CONTACTS
620
621**系统能力**:SystemCapability.Applications.ContactsData
622
623**参数:**
624
625| 参数名  | 类型                                    | 必填 | 说明               |
626| ------- | --------------------------------------- | ---- | ------------------ |
627| contact | [Contact](#contact)                     | 是   | 联系人信息。id必填。       |
628| attrs   | [ContactAttributes](#contactattributes) | 否   | 联系人的属性列表。 |
629
630**返回值:**
631
632| 类型                | 说明                                   |
633| ------------------- | -------------------------------------- |
634| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
635
636**示例:**
637
638  ```js
639  import { BusinessError } from '@kit.BasicServicesKit';
640  let promise = contact.updateContact({
641      id: 1,
642      name: {
643	    fullName: 'xxx'
644	  },
645      phoneNumbers: [{
646	    phoneNumber: '138xxxxxxxx'
647	  }]
648  }, {
649      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
650  });
651  promise.then(() => {
652      console.info('Succeeded in updating Contact.');
653  }).catch((err: BusinessError) => {
654      console.error(`Failed to update Contact. Code: ${err.code}, message: ${err.message}`);
655  });
656  ```
657
658## contact.isLocalContact<sup>10+</sup>
659
660isLocalContact(context: Context,  id: number, callback: AsyncCallback&lt;boolean&gt;): void
661
662判断当前联系人id是否在电话簿中,使用callback方式作为异步方法。
663
664**需要权限**:ohos.permission.READ_CONTACTS
665
666**系统能力**:SystemCapability.Applications.ContactsData
667
668**参数:**
669
670| 参数名   | 类型                         | 必填 | 说明                                                         |
671| -------- | ---------------------------- | ---- | ------------------------------------------------------------ |
672| context  | Context                      | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
673| id       | number                       | 是   | 联系人对象的id属性,一个联系人对应一个id。                   |
674| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。成功返回布尔值,true代表联系人id在本地电话簿中,false则代表联系人id不在本地电话簿中;失败返回失败的错误码。 |
675
676**错误码:**
677
678以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
679
680| 错误码ID | 错误信息           |
681| -------- | ------------------ |
682| 201      | Permission denied. |
683| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Parameter verification failed. |
684
685**示例:**
686
687  ```js
688  import { BusinessError } from '@kit.BasicServicesKit';
689  // 获取context。
690  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
691  contact.isLocalContact(context, /*id*/1, (err: BusinessError, data) => {
692      if (err) {
693          console.error(`Failed to isLocalContact. Code: ${err.code}, message: ${err.message}`);
694          return;
695      }
696      console.info(`Succeeded in isLocalContact.`);
697  });
698  ```
699
700## contact.isLocalContact<sup>(deprecated)7+</sup>
701
702isLocalContact(id: number, callback: AsyncCallback&lt;boolean&gt;): void
703
704判断当前联系人id是否在电话簿中,使用callback方式作为异步方法。
705
706> **说明**
707>
708> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[isLocalContact](#contactislocalcontact10)替代。
709
710**需要权限**:ohos.permission.READ_CONTACTS
711
712**系统能力**:SystemCapability.Applications.ContactsData
713
714**参数:**
715
716| 参数名   | 类型                         | 必填 | 说明                                                         |
717| -------- | ---------------------------- | ---- | ------------------------------------------------------------ |
718| id       | number                       | 是   | 联系人对象的id属性,一个联系人对应一个id。                   |
719| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。成功返回布尔值,true代表联系人id在本地电话簿中,false则代表联系人id不在本地电话簿中;失败返回失败的错误码。 |
720
721**示例:**
722
723  ```js
724  import { BusinessError } from '@kit.BasicServicesKit';
725  contact.isLocalContact(/*id*/1, (err: BusinessError, data) => {
726      if (err) {
727          console.error(`Failed to isLocalContact. Code: ${err.code}, message: ${err.message}`);
728          return;
729      }
730      console.info(`Succeeded in isLocalContact.`);
731  });
732  ```
733
734## contact.isLocalContact<sup>10+</sup>
735
736isLocalContact(context: Context,  id: number): Promise&lt;boolean&gt;
737
738判断当前联系人id是否在电话簿中,使用Promise方式作为异步方法。
739
740**需要权限**:ohos.permission.READ_CONTACTS
741
742**系统能力**:SystemCapability.Applications.ContactsData
743
744**参数:**
745
746| 参数名  | 类型    | 必填 | 说明                                                         |
747| ------- | ------- | ---- | ------------------------------------------------------------ |
748| context | Context | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
749| id      | number  | 是   | 联系人对象的id属性,一个联系人对应一个id。                   |
750
751**返回值:**
752
753| 类型                   | 说明                                                         |
754| ---------------------- | ------------------------------------------------------------ |
755| Promise&lt;boolean&gt; | Promise对象。返回true表示联系人id在本地电话簿中,返回false表示联系人id不在本地电话簿中。 |
756
757**错误码:**
758
759以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
760
761| 错误码ID | 错误信息           |
762| -------- | ------------------ |
763| 201      | Permission denied. |
764| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Parameter verification failed.  |
765
766**示例:**
767
768```js
769  import { BusinessError } from '@kit.BasicServicesKit';
770  // 获取context。
771  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
772  let promise = contact.isLocalContact(context, /*id*/1);
773  promise.then((data) => {
774      console.info(`Succeeded in isLocalContact. data->${JSON.stringify(data)}`);
775  }).catch((err: BusinessError) => {
776      console.error(`Failed to isLocalContact. Code: ${err.code}, message: ${err.message}`);
777  });
778```
779
780## contact.isLocalContact<sup>(deprecated)7+</sup>
781
782isLocalContact(id: number): Promise&lt;boolean&gt;
783
784判断当前联系人id是否在电话簿中,使用Promise方式作为异步方法。
785
786> **说明**
787>
788> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[isLocalContact](#contactislocalcontact10-1)替代。
789
790**需要权限**:ohos.permission.READ_CONTACTS
791
792**系统能力**:SystemCapability.Applications.ContactsData
793
794**参数:**
795
796| 参数名 | 类型   | 必填 | 说明                                       |
797| ------ | ------ | ---- | ------------------------------------------ |
798| id     | number | 是   | 联系人对象的id属性,一个联系人对应一个id。 |
799
800**返回值:**
801
802| 类型                   | 说明                                                         |
803| ---------------------- | ------------------------------------------------------------ |
804| Promise&lt;boolean&gt; | Promise对象。返回true表示联系人id在本地电话簿中,返回false表示联系人id不在本地电话簿中。 |
805
806**示例:**
807
808  ```js
809  import { BusinessError } from '@kit.BasicServicesKit';
810  let promise = contact.isLocalContact(/*id*/1);
811  promise.then((data) => {
812      console.info(`Succeeded in isLocalContact. data->${JSON.stringify(data)}`);
813  }).catch((err: BusinessError) => {
814      console.error(`Failed to isLocalContact. Code: ${err.code}, message: ${err.message}`);
815  });
816  ```
817
818## contact.isMyCard<sup>10+</sup>
819
820isMyCard(context: Context,  id: number, callback: AsyncCallback&lt;boolean&gt;): void
821
822判断是否为“我的名片”,使用callback方式作为异步方法。
823
824**需要权限**:ohos.permission.READ_CONTACTS
825
826**系统能力**:SystemCapability.Applications.ContactsData
827
828**参数:**
829
830| 参数名   | 类型                         | 必填 | 说明                                                         |
831| -------- | ---------------------------- | ---- | ------------------------------------------------------------ |
832| context  | Context                      | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
833| id       | number                       | 是   | 名片对象的id属性。                                           |
834| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。成功返回是否为“我的名片”的布尔值。true代表的是“我的名片”,false则代表不是;失败返回失败的错误码。 |
835
836**错误码:**
837
838以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
839
840| 错误码ID | 错误信息           |
841| -------- | ------------------ |
842| 201      | Permission denied. |
843| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Parameter verification failed.  |
844
845**示例:**
846
847```js
848  import { BusinessError } from '@kit.BasicServicesKit';
849  // 获取context。
850  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
851  contact.isMyCard(context, /*id*/1, (err: BusinessError, data) => {
852      if (err) {
853          console.error(`Failed to isMyCard. Code: ${err.code}, message: ${err.message}`);
854          return;
855      }
856      console.info(`Succeeded in isMyCard. data->${JSON.stringify(data)}`);
857  });
858```
859
860## contact.isMyCard<sup>(deprecated)7+</sup>
861
862isMyCard(id: number, callback: AsyncCallback&lt;boolean&gt;): void
863
864判断是否为“我的名片”,使用callback方式作为异步方法。
865
866> **说明**
867>
868> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[isMyCard](#contactismycard10)替代。
869
870**需要权限**:ohos.permission.READ_CONTACTS
871
872**系统能力**:SystemCapability.Applications.ContactsData
873
874**参数:**
875
876| 参数名   | 类型                         | 必填 | 说明                                                         |
877| -------- | ---------------------------- | ---- | ------------------------------------------------------------ |
878| id       | number                       | 是   | 名片对象的id属性。                                           |
879| callback | AsyncCallback&lt;boolean&gt; | 是   | 回调函数。成功返回是否为“我的名片”的布尔值。true代表的是“我的名片”,false则代表不是;失败返回失败的错误码。 |
880
881**示例:**
882
883  ```js
884  import { BusinessError } from '@kit.BasicServicesKit';
885  contact.isMyCard(/*id*/1, (err: BusinessError, data) => {
886      if (err) {
887          console.error(`Failed to isMyCard. Code: ${err.code}, message: ${err.message}`);
888          return;
889      }
890      console.info(`Succeeded in isMyCard. data->${JSON.stringify(data)}`);
891  });
892  ```
893
894## contact.isMyCard<sup>10+</sup>
895
896isMyCard(context: Context,  id: number): Promise&lt;boolean&gt;
897
898判断是否为“我的名片”,使用Promise方式作为异步方法。
899
900**需要权限**:ohos.permission.READ_CONTACTS
901
902**系统能力**:SystemCapability.Applications.ContactsData
903
904**参数:**
905
906| 参数名  | 类型    | 必填 | 说明                                                         |
907| ------- | ------- | ---- | ------------------------------------------------------------ |
908| context | Context | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
909| id      | number  | 是   | 名片对象的id属性。                                         |
910
911**返回值:**
912
913| 类型                   | 说明                                                       |
914| ---------------------- | ---------------------------------------------------------- |
915| Promise&lt;boolean&gt; | Promise对象。返回true表示是“我的名片”,返回false表示不是。 |
916
917**错误码:**
918
919以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
920
921| 错误码ID | 错误信息           |
922| -------- | ------------------ |
923| 201      | Permission denied. |
924| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Parameter verification failed.  |
925
926**示例:**
927
928```js
929  import { BusinessError } from '@kit.BasicServicesKit';
930  // 获取context。
931  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
932  let promise = contact.isMyCard(context, /*id*/1);
933  promise.then((data) => {
934      console.info(`Succeeded in isMyCard. data->${JSON.stringify(data)}`);
935  }).catch((err: BusinessError) => {
936      console.error(`Failed to isMyCard. Code: ${err.code}, message: ${err.message}`);
937  });
938```
939
940## contact.isMyCard<sup>(deprecated)7+</sup>
941
942isMyCard(id: number): Promise&lt;boolean&gt;
943
944判断是否为“我的名片”,使用Promise方式作为异步方法。
945
946> **说明**
947>
948> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[isMyCard](#contactismycard10-1)替代。
949
950**需要权限**:ohos.permission.READ_CONTACTS
951
952**系统能力**:SystemCapability.Applications.ContactsData
953
954**参数:**
955
956| 参数名 | 类型   | 必填 | 说明                 |
957| ------ | ------ | ---- | -------------------- |
958| id     | number | 是   | 名片对象的id属性。 |
959
960**返回值:**
961
962| 类型                   | 说明                                                       |
963| ---------------------- | ---------------------------------------------------------- |
964| Promise&lt;boolean&gt; | Promise对象。返回true表示是“我的名片”,返回false表示不是。 |
965
966**示例:**
967
968  ```js
969  import { BusinessError } from '@kit.BasicServicesKit';
970  let promise = contact.isMyCard(/*id*/1);
971  promise.then((data) => {
972      console.info(`Succeeded in isMyCard. data->${JSON.stringify(data)}`);
973  }).catch((err: BusinessError) => {
974      console.error(`Failed to isMyCard. Code: ${err.code}, message: ${err.message}`);
975  });
976  ```
977
978## contact.queryMyCard<sup>10+</sup>
979
980queryMyCard(context: Context,  callback: AsyncCallback&lt;Contact&gt;): void
981
982查询“我的名片”,使用callback方式作为异步方法。
983
984**需要权限**:ohos.permission.READ_CONTACTS
985
986**系统能力**:SystemCapability.Applications.ContactsData
987
988**参数:**
989
990| 参数名   | 类型                                     | 必填 | 说明                                                         |
991| -------- | ---------------------------------------- | ---- | ------------------------------------------------------------ |
992| context  | Context                                  | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
993| callback | AsyncCallback&lt;[Contact](#contact)&gt; | 是   | 回调函数。成功返回“我的名片”信息;失败返回失败的错误码。     |
994
995**错误码:**
996
997以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
998
999| 错误码ID | 错误信息           |
1000| -------- | ------------------ |
1001| 201      | Permission denied. |
1002| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified. |
1003
1004**示例:**
1005
1006```js
1007  import { BusinessError } from '@kit.BasicServicesKit';
1008  // 获取context。
1009  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
1010  contact.queryMyCard(context, (err: BusinessError, data) => {
1011      if (err) {
1012          console.error(`Failed to query My Card. Code: ${err.code}, message: ${err.message}`);
1013          return;
1014      }
1015      console.info(`Succeeded in querying My Card. data->${JSON.stringify(data)}`);
1016  });
1017```
1018
1019## contact.queryMyCard<sup>(deprecated)7+</sup>
1020
1021queryMyCard(callback: AsyncCallback&lt;Contact&gt;): void
1022
1023查询“我的名片”,使用callback方式作为异步方法。
1024
1025> **说明**
1026>
1027> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryMyCard](#contactquerymycard10)替代。
1028
1029**需要权限**:ohos.permission.READ_CONTACTS
1030
1031**系统能力**:SystemCapability.Applications.ContactsData
1032
1033**参数:**
1034
1035| 参数名   | 类型                                     | 必填 | 说明                                                     |
1036| -------- | ---------------------------------------- | ---- | -------------------------------------------------------- |
1037| callback | AsyncCallback&lt;[Contact](#contact)&gt; | 是   | 回调函数。成功返回“我的名片”信息;失败返回失败的错误码。 |
1038
1039**示例:**
1040
1041  ```js
1042  import { BusinessError } from '@kit.BasicServicesKit';
1043  contact.queryMyCard((err: BusinessError, data) => {
1044      if (err) {
1045          console.error(`Failed to query My Card. Code: ${err.code}, message: ${err.message}`);
1046          return;
1047      }
1048      console.info(`Succeeded in querying My Card. data->${JSON.stringify(data)}`);
1049  });
1050  ```
1051
1052## contact.queryMyCard<sup>10+</sup>
1053
1054queryMyCard(context: Context,  attrs: ContactAttributes, callback: AsyncCallback&lt;Contact&gt;): void
1055
1056查询“我的名片”,使用callback方式作为异步方法。
1057
1058**需要权限**:ohos.permission.READ_CONTACTS
1059
1060**系统能力**:SystemCapability.Applications.ContactsData
1061
1062**参数:**
1063
1064| 参数名   | 类型                                     | 必填 | 说明                                                         |
1065| -------- | ---------------------------------------- | ---- | ------------------------------------------------------------ |
1066| context  | Context                                  | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
1067| attrs    | [ContactAttributes](#contactattributes)  | 是   | 联系人的属性列表。                                           |
1068| callback | AsyncCallback&lt;[Contact](#contact)&gt; | 是   | 回调函数。成功返回“我的名片”信息;失败返回失败的错误码。     |
1069
1070**错误码:**
1071
1072以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
1073
1074| 错误码ID | 错误信息           |
1075| -------- | ------------------ |
1076| 201      | Permission denied. |
1077| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
1078
1079**示例:**
1080
1081```js
1082  import { BusinessError } from '@kit.BasicServicesKit';
1083  // 获取context。
1084  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
1085  contact.queryMyCard(context, {
1086      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
1087  }, (err: BusinessError, data) => {
1088      if (err) {
1089          console.error(`Failed to query My Card. Code: ${err.code}, message: ${err.message}`);
1090          return;
1091      }
1092      console.info(`Succeeded in querying My Card. data->${JSON.stringify(data)}`);
1093  });
1094```
1095
1096## contact.queryMyCard<sup>(deprecated)7+</sup>
1097
1098queryMyCard(attrs: ContactAttributes, callback: AsyncCallback&lt;Contact&gt;): void
1099
1100查询“我的名片”,使用callback方式作为异步方法。
1101
1102> **说明**
1103>
1104> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryMyCard](#contactquerymycard10-1)替代。
1105
1106**需要权限**:ohos.permission.READ_CONTACTS
1107
1108**系统能力**:SystemCapability.Applications.ContactsData
1109
1110**参数:**
1111
1112| 参数名   | 类型                                     | 必填 | 说明                                                     |
1113| -------- | ---------------------------------------- | ---- | -------------------------------------------------------- |
1114| attrs    | [ContactAttributes](#contactattributes)  | 是   | 联系人的属性列表。                                       |
1115| callback | AsyncCallback&lt;[Contact](#contact)&gt; | 是   | 回调函数。成功返回“我的名片”信息;失败返回失败的错误码。 |
1116
1117**示例:**
1118
1119  ```js
1120  import { BusinessError } from '@kit.BasicServicesKit';
1121  contact.queryMyCard({
1122      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
1123  }, (err: BusinessError, data) => {
1124      if (err) {
1125          console.error(`Failed to query My Card. Code: ${err.code}, message: ${err.message}`);
1126          return;
1127      }
1128      console.info(`Succeeded in querying My Card. data->${JSON.stringify(data)}`);
1129  });
1130  ```
1131
1132## contact.queryMyCard<sup>10+</sup>
1133
1134queryMyCard(context: Context,  attrs?: ContactAttributes): Promise&lt;Contact&gt;
1135
1136查询“我的名片”,使用Promise方式作为异步方法。
1137
1138**需要权限**:ohos.permission.READ_CONTACTS
1139
1140**系统能力**:SystemCapability.Applications.ContactsData
1141
1142**参数:**
1143
1144| 参数名  | 类型                                    | 必填 | 说明                                                         |
1145| ------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
1146| context | Context                                 | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
1147| attrs   | [ContactAttributes](#contactattributes) | 否   | 联系人的属性列表。                                           |
1148
1149**返回值:**
1150
1151| 类型                               | 说明                                    |
1152| ---------------------------------- | --------------------------------------- |
1153| Promise&lt;[Contact](#contact)&gt; | Promise对象。返回“我的名片”联系人对象。 |
1154
1155**错误码:**
1156
1157以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
1158
1159| 错误码ID | 错误信息           |
1160| -------- | ------------------ |
1161| 201      | Permission denied. |
1162| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
1163
1164**示例:**
1165
1166```js
1167  import { BusinessError } from '@kit.BasicServicesKit';
1168  // 获取context。
1169  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
1170  let promise = contact.queryMyCard(context, {
1171      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
1172  });
1173  promise.then((data) => {
1174      console.info(`Succeeded in querying My Card. data->${JSON.stringify(data)}`);
1175  }).catch((err: BusinessError) => {
1176      console.error(`Failed to query My Card. Code: ${err.code}, message: ${err.message}`);
1177  });
1178```
1179
1180## contact.queryMyCard<sup>(deprecated)7+</sup>
1181
1182queryMyCard(attrs?: ContactAttributes): Promise&lt;Contact&gt;
1183
1184查询“我的名片”,使用Promise方式作为异步方法。
1185
1186> **说明**
1187>
1188> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryMyCard](#contactquerymycard10-2)替代。
1189
1190**需要权限**:ohos.permission.READ_CONTACTS
1191
1192**系统能力**:SystemCapability.Applications.ContactsData
1193
1194**参数:**
1195
1196| 参数名 | 类型                                    | 必填 | 说明               |
1197| ------ | --------------------------------------- | ---- | ------------------ |
1198| attrs  | [ContactAttributes](#contactattributes) | 否   | 联系人的属性列表。 |
1199
1200**返回值:**
1201
1202| 类型                               | 说明                                    |
1203| ---------------------------------- | --------------------------------------- |
1204| Promise&lt;[Contact](#contact)&gt; | Promise对象。返回“我的名片”联系人对象。 |
1205
1206**示例:**
1207
1208  ```js
1209  import { BusinessError } from '@kit.BasicServicesKit';
1210  let promise = contact.queryMyCard({
1211      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
1212  });
1213  promise.then((data) => {
1214      console.info(`Succeeded in querying My Card. data->${JSON.stringify(data)}`);
1215  }).catch((err: BusinessError) => {
1216      console.error(`Failed to query My Card. Code: ${err.code}, message: ${err.message}`);
1217  });
1218  ```
1219
1220## contact.selectContact<sup>(deprecated)7+</sup>
1221
1222selectContact(callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
1223
1224调用选择联系人接口,打开选择联系人UI界面,选定的联系人使用callback方式作为异步方法。
1225
1226> **说明**
1227>
1228> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[selectContacts](#contactselectcontacts10)替代。
1229
1230**系统能力**:SystemCapability.Applications.Contacts
1231
1232**参数:**
1233
1234| 参数名   | 类型                                                  | 必填 | 说明                                                         |
1235| -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
1236| callback | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回选择的联系人对象数组;失败返回失败的错误码。 |
1237
1238**示例:**
1239
1240  ```js
1241  import { BusinessError } from '@kit.BasicServicesKit';
1242  contact.selectContact((err: BusinessError, data) => {
1243      if (err) {
1244          console.error(`Failed to select Contact. Code: ${err.code}, message: ${err.message}`);
1245          return;
1246      }
1247      console.info(`Succeeded in selecting Contact. data->${JSON.stringify(data)}`);
1248  });
1249  ```
1250
1251## contact.selectContact<sup>(deprecated)7+</sup>
1252
1253selectContact(): Promise&lt;Array&lt;Contact&gt;&gt;
1254
1255调用选择联系人接口,打开选择联系人UI界面,选定的联系人使用Promise方式作为异步方法。
1256
1257> **说明**
1258>
1259> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[selectContacts](#contactselectcontacts10-1)替代。
1260
1261**系统能力**:SystemCapability.Applications.Contacts
1262
1263**返回值:**
1264
1265| 类型                                            | 说明                                    |
1266| ----------------------------------------------- | --------------------------------------- |
1267| Promise&lt;Array&lt;[Contact](#contact)&gt;&gt; | Promise对象。返回选择的联系人数组对象。 |
1268
1269**示例:**
1270
1271  ```js
1272  import { BusinessError } from '@kit.BasicServicesKit';
1273  let promise = contact.selectContact();
1274  promise.then((data) => {
1275      console.info(`Succeeded in selecting Contact. data->${JSON.stringify(data)}`);
1276  }).catch((err: BusinessError) => {
1277      console.error(`Failed to select Contact. Code: ${err.code}, message: ${err.message}`);
1278  });
1279  ```
1280
1281## contact.selectContacts<sup>10+</sup>
1282
1283selectContacts(callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
1284
1285调用选择联系人接口,打开选择联系人UI界面,选定的联系人使用callback方式作为异步方法。
1286
1287**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
1288
1289**系统能力**:SystemCapability.Applications.Contacts
1290
1291**参数:**
1292
1293| 参数名   | 类型                                                  | 必填 | 说明                                                         |
1294| -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
1295| callback | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回选择的联系人对象数组;失败返回失败的错误码。 |
1296
1297**错误码:**
1298
1299以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
1300
1301| 错误码ID | 错误信息           |
1302| -------- | ------------------ |
1303| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified. |
1304
1305**示例:**
1306
1307  ```js
1308  import { BusinessError } from '@kit.BasicServicesKit';
1309  contact.selectContacts((err: BusinessError, data) => {
1310      if (err) {
1311          console.error(`Failed to select Contacts. Code: ${err.code}, message: ${err.message}`);
1312          return;
1313      }
1314      console.info(`Succeeded in selecting Contacts. data->${JSON.stringify(data)}`);
1315  });
1316  ```
1317
1318## contact.selectContacts<sup>10+</sup>
1319
1320selectContacts(): Promise&lt;Array&lt;Contact&gt;&gt;
1321
1322调用选择联系人接口,打开选择联系人UI界面,选定的联系人使用Promise方式作为异步方法。
1323
1324**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
1325
1326**系统能力**:SystemCapability.Applications.Contacts
1327
1328**返回值:**
1329
1330| 类型                                            | 说明                                    |
1331| ----------------------------------------------- | --------------------------------------- |
1332| Promise&lt;Array&lt;[Contact](#contact)&gt;&gt; | Promise对象。返回选择的联系人数组对象。 |
1333
1334
1335**示例:**
1336
1337  ```js
1338  import { BusinessError } from '@kit.BasicServicesKit';
1339  let promise = contact.selectContacts();
1340  promise.then((data) => {
1341      console.info(`Succeeded in selecting Contacts. data->${JSON.stringify(data)}`);
1342  }).catch((err: BusinessError) => {
1343      console.error(`Failed to select Contacts. Code: ${err.code}, message: ${err.message}`);
1344  });
1345  ```
1346
1347## contact.selectContacts<sup>10+</sup>
1348
1349selectContacts(options: ContactSelectionOptions, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
1350
1351调用选择联系人接口,打开选择联系人UI界面,选定的联系人使用callback方式作为异步方法。
1352
1353**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
1354
1355**系统能力**:SystemCapability.Applications.Contacts
1356
1357**参数:**
1358
1359| 参数名   | 类型                                                  | 必填 | 说明                                 |
1360| -------- | ----------------------------------------------------- | ---- | ------------------------------------ |
1361| options | [ContactSelectionOptions](#contactselectionoptions10) | 是   | 选择联系人时的筛选条件。 |
1362| callback | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回选择的联系人对象数组;失败返回失败的错误码。 |
1363
1364**错误码:**
1365
1366以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
1367
1368| 错误码ID | 错误信息           |
1369| -------- | ------------------ |
1370| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
1371
1372**示例:**
1373
1374  ```js
1375  import { BusinessError } from '@kit.BasicServicesKit';
1376  contact.selectContacts({
1377    isMultiSelect:false
1378  }, (err: BusinessError, data) => {
1379      if (err) {
1380          console.error(`Failed to select Contacts. Code: ${err.code}, message: ${err.message}`);
1381          return;
1382      }
1383      console.info(`Succeeded in selecting Contacts. data->${JSON.stringify(data)}`);
1384  });
1385  ```
1386
1387## contact.selectContacts<sup>10+</sup>
1388
1389selectContacts(options: ContactSelectionOptions): Promise&lt;Array&lt;Contact&gt;&gt;
1390
1391调用选择联系人接口,打开选择联系人UI界面,选定的联系人使用Promise方式作为异步方法。
1392
1393**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
1394
1395**系统能力**:SystemCapability.Applications.Contacts
1396
1397**参数:**
1398
1399| 参数名   | 类型                                                  | 必填 | 说明                                 |
1400| -------- | ----------------------------------------------------- | ---- | ------------------------------------ |
1401| options | [ContactSelectionOptions](#contactselectionoptions10) | 是   | 选择联系人时的筛选条件。 |
1402
1403**返回值:**
1404
1405| 类型                                            | 说明                                    |
1406| ----------------------------------------------- | --------------------------------------- |
1407| Promise&lt;Array&lt;[Contact](#contact)&gt;&gt; | Promise对象。返回选择的联系人数组对象。 |
1408
1409**错误码:**
1410
1411以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
1412
1413| 错误码ID | 错误信息           |
1414| -------- | ------------------ |
1415| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
1416
1417**示例:**
1418
1419  ```js
1420  import { BusinessError } from '@kit.BasicServicesKit';
1421  let promise = contact.selectContacts({isMultiSelect:false});
1422  promise.then((data) => {
1423      console.info(`Succeeded in selecting Contacts. data->${JSON.stringify(data)}`);
1424  }).catch((err: BusinessError) => {
1425      console.error(`Failed to select Contacts. Code: ${err.code}, message: ${err.message}`);
1426  });
1427  ```
1428
1429## contact.queryContact<sup>10+</sup>
1430
1431queryContact(context: Context,  key: string,  callback: AsyncCallback&lt;Contact&gt;): void
1432
1433根据key查询联系人,使用callback方式作为异步方法。
1434
1435**需要权限**:ohos.permission.READ_CONTACTS
1436
1437**系统能力**:SystemCapability.Applications.ContactsData
1438
1439**参数:**
1440
1441| 参数名   | 类型                                     | 必填 | 说明                                                         |
1442| -------- | ---------------------------------------- | ---- | ------------------------------------------------------------ |
1443| context  | Context                                  | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
1444| key      | string                                   | 是   | 联系人的key值,一个联系人对应一个key。                       |
1445| callback | AsyncCallback&lt;[Contact](#contact)&gt; | 是   | 回调函数。成功返回查询的联系人对象;失败返回失败的错误码。   |
1446
1447**错误码:**
1448
1449以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
1450
1451| 错误码ID | 错误信息           |
1452| -------- | ------------------ |
1453| 201      | Permission denied. |
1454| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
1455
1456**示例:**
1457
1458  ```js
1459  import { BusinessError } from '@kit.BasicServicesKit';
1460  // 获取context。
1461  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
1462  contact.queryContact(context, 'xxx', (err: BusinessError, data) => {
1463      if (err) {
1464          console.error(`Failed to query Contact. Code: ${err.code}, message: ${err.message}`);
1465          return;
1466      }
1467      console.info(`Succeeded in querying Contact. data->${JSON.stringify(data)}`);
1468  });
1469  ```
1470
1471## contact.queryContact<sup>(deprecated)7+</sup>
1472
1473queryContact(key: string,  callback: AsyncCallback&lt;Contact&gt;): void
1474
1475根据key查询联系人,使用callback方式作为异步方法。
1476
1477> **说明**
1478>
1479> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryContact](#contactquerycontact10)替代。
1480
1481**需要权限**:ohos.permission.READ_CONTACTS
1482
1483**系统能力**:SystemCapability.Applications.ContactsData
1484
1485**参数:**
1486
1487| 参数名   | 类型                                     | 必填 | 说明                                                       |
1488| -------- | ---------------------------------------- | ---- | ---------------------------------------------------------- |
1489| key      | string                                   | 是   | 联系人的key值,一个联系人对应一个key。                     |
1490| callback | AsyncCallback&lt;[Contact](#contact)&gt; | 是   | 回调函数。成功返回查询的联系人对象;失败返回失败的错误码。 |
1491
1492**示例:**
1493
1494  ```js
1495  import { BusinessError } from '@kit.BasicServicesKit';
1496  contact.queryContact('xxx', (err: BusinessError, data) => {
1497      if (err) {
1498          console.error(`Failed to query Contact. Code: ${err.code}, message: ${err.message}`);
1499          return;
1500      }
1501      console.info(`Succeeded in querying Contact. data->${JSON.stringify(data)}`);
1502  });
1503  ```
1504
1505## contact.queryContact<sup>10+</sup>
1506
1507queryContact(context: Context,  key: string, holder: Holder, callback: AsyncCallback&lt;Contact&gt;): void
1508
1509根据key和holder查询联系人,使用callback方式作为异步方法。
1510
1511**需要权限**:ohos.permission.READ_CONTACTS
1512
1513**系统能力**:SystemCapability.Applications.ContactsData
1514
1515**参数:**
1516
1517| 参数名   | 类型                                     | 必填 | 说明                                                         |
1518| -------- | ---------------------------------------- | ---- | ------------------------------------------------------------ |
1519| context  | Context                                  | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
1520| key      | string                                   | 是   | 联系人的key值,一个联系人对应一个key。                       |
1521| holder   | [Holder](#holder)                        | 是   | 创建联系人的应用信息。                                       |
1522| callback | AsyncCallback&lt;[Contact](#contact)&gt; | 是   | 回调函数。成功返回查询的联系人对象;失败返回失败的错误码。   |
1523
1524**错误码:**
1525
1526以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
1527
1528| 错误码ID | 错误信息           |
1529| -------- | ------------------ |
1530| 201      | Permission denied. |
1531| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
1532
1533**示例:**
1534
1535  ```js
1536  import { BusinessError } from '@kit.BasicServicesKit';
1537  // 获取context。
1538  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
1539  contact.queryContact(context, 'xxx', {
1540      holderId: 1,
1541      bundleName: "",
1542      displayName: ""
1543  }, (err: BusinessError, data) => {
1544      if (err) {
1545          console.error(`Failed to query Contact. Code: ${err.code}, message: ${err.message}`);
1546          return;
1547      }
1548      console.info(`Succeeded in querying Contact. data->${JSON.stringify(data)}`);
1549  });
1550  ```
1551
1552## contact.queryContact<sup>(deprecated)7+</sup>
1553
1554queryContact(key: string, holder: Holder, callback: AsyncCallback&lt;Contact&gt;): void
1555
1556根据key和holder查询联系人,使用callback方式作为异步方法。
1557
1558> **说明**
1559>
1560> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryContact](#contactquerycontact10-1)替代。
1561
1562**需要权限**:ohos.permission.READ_CONTACTS
1563
1564**系统能力**:SystemCapability.Applications.ContactsData
1565
1566**参数:**
1567
1568| 参数名   | 类型                                     | 必填 | 说明                                                       |
1569| -------- | ---------------------------------------- | ---- | ---------------------------------------------------------- |
1570| key      | string                                   | 是   | 联系人的key值,一个联系人对应一个key。                     |
1571| holder   | [Holder](#holder)                        | 是   | 创建联系人的应用信息。                                     |
1572| callback | AsyncCallback&lt;[Contact](#contact)&gt; | 是   | 回调函数。成功返回查询的联系人对象;失败返回失败的错误码。 |
1573
1574**示例:**
1575
1576  ```js
1577  import { BusinessError } from '@kit.BasicServicesKit';
1578  contact.queryContact('xxx', {
1579      holderId: 1,
1580      bundleName: "",
1581      displayName: ""
1582  }, (err: BusinessError, data) => {
1583      if (err) {
1584          console.error(`Failed to query Contact. Code: ${err.code}, message: ${err.message}`);
1585          return;
1586      }
1587      console.info(`Succeeded in querying Contact. data->${JSON.stringify(data)}`);
1588  });
1589  ```
1590
1591## contact.queryContact<sup>10+</sup>
1592
1593queryContact(context: Context,  key: string,  attrs: ContactAttributes, callback: AsyncCallback&lt;Contact&gt;): void
1594
1595根据key和attrs查询联系人,使用callback方式作为异步方法。
1596
1597**需要权限**:ohos.permission.READ_CONTACTS
1598
1599**系统能力**:SystemCapability.Applications.ContactsData
1600
1601**参数:**
1602
1603| 参数名   | 类型                                     | 必填 | 说明                                                         |
1604| -------- | ---------------------------------------- | ---- | ------------------------------------------------------------ |
1605| context  | Context                                  | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
1606| key      | string                                   | 是   | 联系人的key值,一个联系人对应一个key。                       |
1607| attrs    | [ContactAttributes](#contactattributes)  | 是   | 联系人的属性列表。                                           |
1608| callback | AsyncCallback&lt;[Contact](#contact)&gt; | 是   | 回调函数。成功返回查询的联系人对象;失败返回失败的错误码。   |
1609
1610**错误码:**
1611
1612以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
1613
1614| 错误码ID | 错误信息           |
1615| -------- | ------------------ |
1616| 201      | Permission denied. |
1617| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
1618
1619**示例:**
1620
1621  ```js
1622  import { BusinessError } from '@kit.BasicServicesKit';
1623  // 获取context。
1624  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
1625  contact.queryContact(context, 'xxx', {
1626      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
1627  }, (err: BusinessError, data) => {
1628      if (err) {
1629          console.error(`Failed to query Contact. Code: ${err.code}, message: ${err.message}`);
1630          return;
1631      }
1632      console.info(`Succeeded in querying Contact. data->${JSON.stringify(data)}`);
1633  });
1634  ```
1635
1636## contact.queryContact<sup>(deprecated)7+</sup>
1637
1638queryContact(key: string,  attrs: ContactAttributes, callback: AsyncCallback&lt;Contact&gt;): void
1639
1640根据key和attrs查询联系人,使用callback方式作为异步方法。
1641
1642> **说明**
1643>
1644> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryContact](#contactquerycontact10-2)替代。
1645
1646**需要权限**:ohos.permission.READ_CONTACTS
1647
1648**系统能力**:SystemCapability.Applications.ContactsData
1649
1650**参数:**
1651
1652| 参数名   | 类型                                     | 必填 | 说明                                                       |
1653| -------- | ---------------------------------------- | ---- | ---------------------------------------------------------- |
1654| key      | string                                   | 是   | 联系人的key值,一个联系人对应一个key。                     |
1655| attrs    | [ContactAttributes](#contactattributes)  | 是   | 联系人的属性列表。                                         |
1656| callback | AsyncCallback&lt;[Contact](#contact)&gt; | 是   | 回调函数。成功返回查询的联系人对象;失败返回失败的错误码。 |
1657
1658**示例:**
1659
1660  ```js
1661  import { BusinessError } from '@kit.BasicServicesKit';
1662  contact.queryContact('xxx', {
1663      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
1664  }, (err: BusinessError, data) => {
1665      if (err) {
1666          console.error(`Failed to query Contact. Code: ${err.code}, message: ${err.message}`);
1667          return;
1668      }
1669      console.info(`Succeeded in querying Contact. data->${JSON.stringify(data)}`);
1670  });
1671  ```
1672
1673## contact.queryContact<sup>10+</sup>
1674
1675queryContact(context: Context,  key: string, holder: Holder, attrs: ContactAttributes, callback: AsyncCallback&lt;Contact&gt;): void
1676
1677根据key、holder和attrs查询联系人,使用callback方式作为异步方法。
1678
1679**需要权限**:ohos.permission.READ_CONTACTS
1680
1681**系统能力**:SystemCapability.Applications.ContactsData
1682
1683**参数:**
1684
1685| 参数名   | 类型                                     | 必填 | 说明                                                         |
1686| -------- | ---------------------------------------- | ---- | ------------------------------------------------------------ |
1687| context  | Context                                  | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
1688| key      | string                                   | 是   | 联系人的key值,一个联系人对应一个key。                       |
1689| holder   | [Holder](#holder)                        | 是   | 创建联系人的应用信息。                                       |
1690| attrs    | [ContactAttributes](#contactattributes)  | 是   | 联系人的属性列表。                                           |
1691| callback | AsyncCallback&lt;[Contact](#contact)&gt; | 是   | 回调函数。成功返回查询的联系人对象;失败返回失败的错误码。   |
1692
1693**错误码:**
1694
1695以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
1696
1697| 错误码ID | 错误信息           |
1698| -------- | ------------------ |
1699| 201      | Permission denied. |
1700| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
1701
1702**示例:**
1703
1704```js
1705  import { BusinessError } from '@kit.BasicServicesKit';
1706  // 获取context。
1707  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
1708  contact.queryContact(context, 'xxx', {
1709      holderId: 1,
1710      bundleName: "",
1711      displayName: ""
1712  }, {
1713      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
1714  }, (err: BusinessError, data) => {
1715      if (err) {
1716          console.error(`Failed to query Contact. Code: ${err.code}, message: ${err.message}`);
1717          return;
1718      }
1719      console.info(`Succeeded in querying Contact. data->${JSON.stringify(data)}`);
1720  });
1721```
1722
1723## contact.queryContact<sup>(deprecated)7+</sup>
1724
1725queryContact(key: string, holder: Holder, attrs: ContactAttributes, callback: AsyncCallback&lt;Contact&gt;): void
1726
1727根据key、holder和attrs查询联系人,使用callback方式作为异步方法。
1728
1729> **说明**
1730>
1731> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryContact](#contactquerycontact10-3)替代。
1732
1733**需要权限**:ohos.permission.READ_CONTACTS
1734
1735**系统能力**:SystemCapability.Applications.ContactsData
1736
1737**参数:**
1738
1739| 参数名   | 类型                                     | 必填 | 说明                                                       |
1740| -------- | ---------------------------------------- | ---- | ---------------------------------------------------------- |
1741| key      | string                                   | 是   | 联系人的key值,一个联系人对应一个key。                     |
1742| holder   | [Holder](#holder)                        | 是   | 创建联系人的应用信息。                                     |
1743| attrs    | [ContactAttributes](#contactattributes)  | 是   | 联系人的属性列表。                                         |
1744| callback | AsyncCallback&lt;[Contact](#contact)&gt; | 是   | 回调函数。成功返回查询的联系人对象;失败返回失败的错误码。 |
1745
1746**示例:**
1747
1748  ```js
1749  import { BusinessError } from '@kit.BasicServicesKit';
1750  contact.queryContact('xxx', {
1751      holderId: 1,
1752      bundleName: "",
1753      displayName: ""
1754  }, {
1755      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
1756  }, (err: BusinessError, data) => {
1757      if (err) {
1758          console.error(`Failed to query Contact. Code: ${err.code}, message: ${err.message}`);
1759          return;
1760      }
1761      console.info(`Succeeded in querying Contact. data->${JSON.stringify(data)}`);
1762  });
1763  ```
1764
1765## contact.queryContact<sup>10+</sup>
1766
1767queryContact(context: Context,  key: string, holder?: Holder, attrs?: ContactAttributes): Promise&lt;Contact&gt;
1768
1769根据key、holder和attrs查询联系人,使用Promise方式作为异步方法。
1770
1771**需要权限**:ohos.permission.READ_CONTACTS
1772
1773**系统能力**:SystemCapability.Applications.ContactsData
1774
1775**参数:**
1776
1777| 参数名  | 类型                                    | 必填 | 说明                                                         |
1778| ------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
1779| context | Context                                 | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
1780| key     | string                                  | 是   | 联系人的key值,一个联系人对应一个key。                       |
1781| holder  | [Holder](#holder)                       | 否   | 创建联系人的应用信息,不传默认不使用该条件过滤联系人。       |
1782| attrs   | [ContactAttributes](#contactattributes) | 否   | 联系人的属性列表,不传默认查询所有联系人属性。           |
1783
1784**返回值:**
1785
1786| 类型                               | 说明                                  |
1787| ---------------------------------- | ------------------------------------- |
1788| Promise&lt;[Contact](#contact)&gt; | Promise对象。返回查询到的联系人对象。 |
1789
1790**错误码:**
1791
1792以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
1793
1794| 错误码ID | 错误信息           |
1795| -------- | ------------------ |
1796| 201      | Permission denied. |
1797| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
1798
1799**示例:**
1800
1801  ```js
1802  import { BusinessError } from '@kit.BasicServicesKit';
1803  // 获取context。
1804  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
1805  let promise = contact.queryContact(context, 'xxx', {
1806      holderId: 1,
1807      bundleName: "",
1808      displayName: ""
1809  }, {
1810      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
1811  });
1812  promise.then((data) => {
1813      console.info(`Succeeded in querying Contact. data->${JSON.stringify(data)}`);
1814  }).catch((err: BusinessError) => {
1815      console.error(`Failed to query Contact. Code: ${err.code}, message: ${err.message}`);
1816  });
1817  ```
1818
1819## contact.queryContact<sup>(deprecated)7+</sup>
1820
1821queryContact(key: string, holder?: Holder, attrs?: ContactAttributes): Promise&lt;Contact&gt;
1822
1823根据key、holder和attrs查询联系人,使用Promise方式作为异步方法。
1824
1825> **说明**
1826>
1827> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryContact](#contactquerycontact10-4)替代。
1828
1829**需要权限**:ohos.permission.READ_CONTACTS
1830
1831**系统能力**:SystemCapability.Applications.ContactsData
1832
1833**参数:**
1834
1835| 参数名 | 类型                                    | 必填 | 说明                                   |
1836| ------ | --------------------------------------- | ---- | -------------------------------------- |
1837| key    | string                                  | 是   | 联系人的key值,一个联系人对应一个key。 |
1838| holder | [Holder](#holder)                       | 否   | 创建联系人的应用信息,不传默认不使用该条件过滤联系人。                |
1839| attrs  | [ContactAttributes](#contactattributes) | 否   | 联系人的属性列表,不传默认查询所有联系人属性。                    |
1840
1841**返回值:**
1842
1843| 类型                               | 说明                                  |
1844| ---------------------------------- | ------------------------------------- |
1845| Promise&lt;[Contact](#contact)&gt; | Promise对象。返回查询到的联系人对象。 |
1846
1847**示例:**
1848
1849  ```js
1850  import { BusinessError } from '@kit.BasicServicesKit';
1851  let promise = contact.queryContact('xxx', {
1852      holderId: 1,
1853      bundleName: "",
1854      displayName: ""
1855  }, {
1856      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
1857  });
1858  promise.then((data) => {
1859      console.info(`Succeeded in querying Contact. data->${JSON.stringify(data)}`);
1860  }).catch((err: BusinessError) => {
1861      console.error(`Failed to query Contact. Code: ${err.code}, message: ${err.message}`);
1862  });
1863  ```
1864
1865## contact.queryContacts<sup>10+</sup>
1866
1867queryContacts(context: Context,  callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
1868
1869查询所有联系人,使用callback方式作为异步方法。
1870
1871**需要权限**:ohos.permission.READ_CONTACTS
1872
1873**系统能力**:SystemCapability.Applications.ContactsData
1874
1875**参数:**
1876
1877| 参数名   | 类型                                                  | 必填 | 说明                                                         |
1878| -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
1879| context  | Context                                               | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
1880| callback | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
1881
1882**错误码:**
1883
1884以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
1885
1886| 错误码ID | 错误信息           |
1887| -------- | ------------------ |
1888| 201      | Permission denied. |
1889| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
1890
1891**示例:**
1892
1893  ```js
1894  import { BusinessError } from '@kit.BasicServicesKit';
1895  // 获取context。
1896  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
1897  contact.queryContacts(context, (err: BusinessError, data) => {
1898      if (err) {
1899          console.error(`Failed to query Contacts. Code: ${err.code}, message: ${err.message}`);
1900          return;
1901      }
1902      console.info(`Succeeded in querying Contacts. data->${JSON.stringify(data)}`);
1903  });
1904  ```
1905
1906## contact.queryContacts<sup>(deprecated)7+</sup>
1907
1908queryContacts(callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
1909
1910查询所有联系人,使用callback方式作为异步方法。
1911
1912> **说明**
1913>
1914> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryContacts](#contactquerycontacts10)替代。
1915
1916**需要权限**:ohos.permission.READ_CONTACTS
1917
1918**系统能力**:SystemCapability.Applications.ContactsData
1919
1920**参数:**
1921
1922| 参数名   | 类型                                                  | 必填 | 说明                                                         |
1923| -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
1924| callback | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
1925
1926**示例:**
1927
1928  ```js
1929  import { BusinessError } from '@kit.BasicServicesKit';
1930  contact.queryContacts((err: BusinessError, data) => {
1931      if (err) {
1932          console.error(`Failed to query Contacts. Code: ${err.code}, message: ${err.message}`);
1933          return;
1934      }
1935      console.info(`Succeeded in querying Contacts. data->${JSON.stringify(data)}`);
1936  });
1937  ```
1938
1939## contact.queryContacts<sup>10+</sup>
1940
1941queryContacts(context: Context,  holder: Holder, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
1942
1943根据holder查询所有联系人,使用callback方式作为异步方法。
1944
1945**需要权限**:ohos.permission.READ_CONTACTS
1946
1947**系统能力**:SystemCapability.Applications.ContactsData
1948
1949**参数:**
1950
1951| 参数名   | 类型                                                  | 必填 | 说明                                                         |
1952| -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
1953| context  | Context                                               | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
1954| holder   | [Holder](#holder)                                     | 是   | 创建联系人的应用信息。                                       |
1955| callback | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
1956
1957**错误码:**
1958
1959以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
1960
1961| 错误码ID | 错误信息           |
1962| -------- | ------------------ |
1963| 201      | Permission denied. |
1964| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
1965
1966**示例:**
1967
1968  ```js
1969  import { BusinessError } from '@kit.BasicServicesKit';
1970  // 获取context。
1971  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
1972  contact.queryContacts(context, {
1973      holderId: 1,
1974      bundleName: "",
1975      displayName: ""
1976  }, (err: BusinessError, data) => {
1977      if (err) {
1978          console.error(`Failed to query Contacts. Code: ${err.code}, message: ${err.message}`);
1979          return;
1980      }
1981      console.info(`Succeeded in querying Contacts. data->${JSON.stringify(data)}`);
1982  });
1983  ```
1984
1985## contact.queryContacts<sup>(deprecated)7+</sup>
1986
1987queryContacts(holder: Holder, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
1988
1989根据holder查询所有联系人,使用callback方式作为异步方法。
1990
1991> **说明**
1992>
1993> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryContacts](#contactquerycontacts10-1)替代。
1994
1995**需要权限**:ohos.permission.READ_CONTACTS
1996
1997**系统能力**:SystemCapability.Applications.ContactsData
1998
1999**参数:**
2000
2001| 参数名   | 类型                                                  | 必填 | 说明                                                         |
2002| -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
2003| holder   | [Holder](#holder)                                     | 是   | 创建联系人的应用信息。                                       |
2004| callback | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
2005
2006**示例:**
2007
2008  ```js
2009  import { BusinessError } from '@kit.BasicServicesKit';
2010  contact.queryContacts({
2011      holderId: 1,
2012      bundleName: "",
2013      displayName: ""
2014  }, (err: BusinessError, data) => {
2015      if (err) {
2016          console.error(`Failed to query Contacts. Code: ${err.code}, message: ${err.message}`);
2017          return;
2018      }
2019      console.info(`Succeeded in querying Contacts. data->${JSON.stringify(data)}`);
2020  });
2021  ```
2022
2023## contact.queryContacts<sup>10+</sup>
2024
2025queryContacts(context: Context,  attrs: ContactAttributes, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
2026
2027根据attrs查询所有联系人,使用callback方式作为异步方法。
2028
2029**需要权限**:ohos.permission.READ_CONTACTS
2030
2031**系统能力**:SystemCapability.Applications.ContactsData
2032
2033**参数:**
2034
2035| 参数名   | 类型                                                  | 必填 | 说明                                                         |
2036| -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
2037| context  | Context                                               | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
2038| attrs    | [ContactAttributes](#contactattributes)               | 是   | 联系人的属性列表。                                           |
2039| callback | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
2040
2041**错误码:**
2042
2043以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
2044
2045| 错误码ID | 错误信息           |
2046| -------- | ------------------ |
2047| 201      | Permission denied. |
2048| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
2049
2050**示例:**
2051
2052  ```js
2053  import { BusinessError } from '@kit.BasicServicesKit';
2054  // 获取context。
2055  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
2056  contact.queryContacts(context, {
2057      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
2058  }, (err: BusinessError, data) => {
2059      if (err) {
2060          console.error(`Failed to query Contacts. Code: ${err.code}, message: ${err.message}`);
2061          return;
2062      }
2063      console.info(`Succeeded in querying Contacts. data->${JSON.stringify(data)}`);
2064  });
2065  ```
2066
2067## contact.queryContacts<sup>(deprecated)7+</sup>
2068
2069queryContacts(attrs: ContactAttributes, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
2070
2071根据attrs查询所有联系人,使用callback方式作为异步方法。
2072
2073> **说明**
2074>
2075> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryContacts](#contactquerycontacts10-2)替代。
2076
2077**需要权限**:ohos.permission.READ_CONTACTS
2078
2079**系统能力**:SystemCapability.Applications.ContactsData
2080
2081**参数:**
2082
2083| 参数名   | 类型                                                  | 必填 | 说明                                                         |
2084| -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
2085| attrs    | [ContactAttributes](#contactattributes)               | 是   | 联系人的属性列表。                                           |
2086| callback | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
2087
2088**示例:**
2089
2090  ```js
2091  import { BusinessError } from '@kit.BasicServicesKit';
2092  contact.queryContacts({
2093      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
2094  }, (err: BusinessError, data) => {
2095      if (err) {
2096          console.error(`Failed to query Contacts. Code: ${err.code}, message: ${err.message}`);
2097          return;
2098      }
2099      console.info(`Succeeded in querying Contacts. data->${JSON.stringify(data)}`);
2100  });
2101  ```
2102
2103## contact.queryContacts<sup>10+</sup>
2104
2105queryContacts(context: Context,  holder: Holder, attrs: ContactAttributes, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
2106
2107根据holder和attrs查询所有联系人,使用callback方式作为异步方法。
2108
2109**需要权限**:ohos.permission.READ_CONTACTS
2110
2111**系统能力**:SystemCapability.Applications.ContactsData
2112
2113**参数:**
2114
2115| 参数名   | 类型                                                  | 必填 | 说明                                                         |
2116| -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
2117| context  | Context                                               | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
2118| holder   | [Holder](#holder)                                     | 是   | 创建联系人的应用信息。                                       |
2119| attrs    | [ContactAttributes](#contactattributes)               | 是   | 联系人的属性列表。                                           |
2120| callback | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
2121
2122**错误码:**
2123
2124以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
2125
2126| 错误码ID | 错误信息           |
2127| -------- | ------------------ |
2128| 201      | Permission denied. |
2129| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
2130
2131**示例:**
2132
2133  ```js
2134  import { BusinessError } from '@kit.BasicServicesKit';
2135  // 获取context。
2136  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
2137  contact.queryContacts(context, {
2138      holderId: 1,
2139      bundleName: "",
2140      displayName: ""
2141  }, {
2142      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
2143  }, (err: BusinessError, data) => {
2144      if (err) {
2145          console.error(`Failed to query Contacts. Code: ${err.code}, message: ${err.message}`);
2146          return;
2147      }
2148      console.info(`Succeeded in querying Contacts. data->${JSON.stringify(data)}`);
2149  });
2150  ```
2151
2152## contact.queryContacts<sup>(deprecated)7+</sup>
2153
2154queryContacts(holder: Holder, attrs: ContactAttributes, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
2155
2156根据holder和attrs查询所有联系人,使用callback方式作为异步方法。
2157
2158> **说明**
2159>
2160> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryContacts](#contactquerycontacts10-3)替代。
2161
2162**需要权限**:ohos.permission.READ_CONTACTS
2163
2164**系统能力**:SystemCapability.Applications.ContactsData
2165
2166**参数:**
2167
2168| 参数名   | 类型                                                  | 必填 | 说明                                                         |
2169| -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
2170| holder   | [Holder](#holder)                                     | 是   | 创建联系人的应用信息。                                       |
2171| attrs    | [ContactAttributes](#contactattributes)               | 是   | 联系人的属性列表。                                           |
2172| callback | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
2173
2174**示例:**
2175
2176  ```js
2177  import { BusinessError } from '@kit.BasicServicesKit';
2178  contact.queryContacts({
2179      holderId: 1,
2180      bundleName: "",
2181      displayName: ""
2182  }, {
2183      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
2184  }, (err: BusinessError, data) => {
2185      if (err) {
2186          console.error(`Failed to query Contacts. Code: ${err.code}, message: ${err.message}`);
2187          return;
2188      }
2189      console.info(`Succeeded in querying Contacts. data->${JSON.stringify(data)}`);
2190  });
2191  ```
2192
2193## contact.queryContacts<sup>10+</sup>
2194
2195queryContacts(context: Context,  holder?: Holder, attrs?: ContactAttributes): Promise&lt;Array&lt;Contact&gt;&gt;
2196
2197根据holder和attrs查询所有联系人,使用Promise方式作为异步方法。
2198
2199**需要权限**:ohos.permission.READ_CONTACTS
2200
2201**系统能力**:SystemCapability.Applications.ContactsData
2202
2203**参数:**
2204
2205| 参数名  | 类型                                    | 必填 | 说明                                                         |
2206| ------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
2207| context | Context                                 | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
2208| holder  | [Holder](#holder)                       | 否   | 创建联系人的应用信息,不传默认不使用该条件过滤联系人。       |
2209| attrs   | [ContactAttributes](#contactattributes) | 否   | 联系人的属性列表,不传默认查询所有联系人属性。               |
2210
2211**返回值:**
2212
2213| 类型                                            | 说明                                      |
2214| ----------------------------------------------- | ----------------------------------------- |
2215| Promise&lt;Array&lt;[Contact](#contact)&gt;&gt; | Promise对象。返回查询到的联系人数组对象。 |
2216
2217**错误码:**
2218
2219以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
2220
2221| 错误码ID | 错误信息           |
2222| -------- | ------------------ |
2223| 201      | Permission denied. |
2224| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
2225
2226**示例:**
2227
2228  ```js
2229  import { BusinessError } from '@kit.BasicServicesKit';
2230  // 获取context。
2231  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
2232  let promise = contact.queryContacts(context, {
2233      holderId: 1,
2234      bundleName: "",
2235      displayName: ""
2236  }, {
2237      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
2238  });
2239  promise.then((data) => {
2240      console.info(`Succeeded in querying Contacts. data: ${JSON.stringify(data)}`);
2241  }).catch((err: BusinessError) => {
2242      console.error(`Failed to query Contacts. Code: ${err.code}, message: ${err.message}`);
2243  });
2244  ```
2245
2246## contact.queryContacts<sup>(deprecated)7+</sup>
2247
2248queryContacts(holder?: Holder, attrs?: ContactAttributes): Promise&lt;Array&lt;Contact&gt;&gt;
2249
2250根据holder和attrs查询所有联系人,使用Promise方式作为异步方法。
2251
2252> **说明**
2253>
2254> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryContacts](#contactquerycontacts10-4)替代。
2255
2256**需要权限**:ohos.permission.READ_CONTACTS
2257
2258**系统能力**:SystemCapability.Applications.ContactsData
2259
2260**参数:**
2261
2262| 参数名 | 类型                                    | 必填 | 说明                   |
2263| ------ | --------------------------------------- | ---- | ---------------------- |
2264| holder | [Holder](#holder)                       | 否   | 创建联系人的应用信息,不传默认不使用该条件过滤联系人。 |
2265| attrs  | [ContactAttributes](#contactattributes) | 否   | 联系人的属性列表,不传默认查询所有联系人属性。     |
2266
2267**返回值:**
2268
2269| 类型                                            | 说明                                      |
2270| ----------------------------------------------- | ----------------------------------------- |
2271| Promise&lt;Array&lt;[Contact](#contact)&gt;&gt; | Promise对象。返回查询到的联系人数组对象。 |
2272
2273**示例:**
2274
2275```js
2276  import { BusinessError } from '@kit.BasicServicesKit';
2277  let promise = contact.queryContacts({
2278      holderId: 1,
2279      bundleName: "",
2280      displayName: ""
2281  }, {
2282      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
2283  });
2284  promise.then((data) => {
2285      console.info(`Succeeded in querying Contacts. data->${JSON.stringify(data)}`);
2286  }).catch((err: BusinessError) => {
2287      console.error(`Failed to query Contacts. Code: ${err.code}, message: ${err.message}`);
2288  });
2289```
2290
2291## contact.queryContactsByPhoneNumber<sup>10+</sup>
2292
2293queryContactsByPhoneNumber(context: Context,  phoneNumber: string, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
2294
2295根据电话号码查询联系人,使用callback方式作为异步方法。
2296
2297**需要权限**:ohos.permission.READ_CONTACTS
2298
2299**系统能力**:SystemCapability.Applications.ContactsData
2300
2301**参数:**
2302
2303| 参数名      | 类型                                                  | 必填 | 说明                                                         |
2304| ----------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
2305| context     | Context                                               | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
2306| phoneNumber | string                                                | 是   | 联系人的电话号码。                                           |
2307| callback    | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
2308
2309**错误码:**
2310
2311以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
2312
2313| 错误码ID | 错误信息           |
2314| -------- | ------------------ |
2315| 201      | Permission denied. |
2316| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
2317
2318**示例:**
2319
2320  ```js
2321  import { BusinessError } from '@kit.BasicServicesKit';
2322  // 获取context。
2323  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
2324  contact.queryContactsByPhoneNumber(context, '138xxxxxxxx', (err: BusinessError, data) => {
2325      if (err) {
2326          console.error(`Failed to query Contacts By PhoneNumber. Code: ${err.code}, message: ${err.message}`);
2327          return;
2328      }
2329      console.info(`Succeeded in querying Contacts By PhoneNumber. data->${JSON.stringify(data)}`);
2330  });
2331  ```
2332
2333## contact.queryContactsByPhoneNumber<sup>(deprecated)7+</sup>
2334
2335queryContactsByPhoneNumber(phoneNumber: string, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
2336
2337根据电话号码查询联系人,使用callback方式作为异步方法。
2338
2339> **说明**
2340>
2341> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryContactsByPhoneNumber](#contactquerycontactsbyphonenumber10)替代。
2342
2343**需要权限**:ohos.permission.READ_CONTACTS
2344
2345**系统能力**:SystemCapability.Applications.ContactsData
2346
2347**参数:**
2348
2349| 参数名      | 类型                                                  | 必填 | 说明                                                         |
2350| ----------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
2351| phoneNumber | string                                                | 是   | 联系人的电话号码。                                           |
2352| callback    | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
2353
2354**示例:**
2355
2356  ```js
2357  import { BusinessError } from '@kit.BasicServicesKit';
2358  contact.queryContactsByPhoneNumber('138xxxxxxxx', (err: BusinessError, data) => {
2359      if (err) {
2360          console.error(`Failed to query Contacts By PhoneNumber. Code: ${err.code}, message: ${err.message}`);
2361          return;
2362      }
2363      console.info(`Succeeded in querying Contacts By PhoneNumber. data->${JSON.stringify(data)}`);
2364  });
2365  ```
2366
2367## contact.queryContactsByPhoneNumber<sup>10+</sup>
2368
2369queryContactsByPhoneNumber(context: Context,  phoneNumber: string, holder: Holder, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
2370
2371根据电话号码和holder查询联系人,使用callback方式作为异步方法。
2372
2373**需要权限**:ohos.permission.READ_CONTACTS
2374
2375**系统能力**:SystemCapability.Applications.ContactsData
2376
2377**参数:**
2378
2379| 参数名      | 类型                                                  | 必填 | 说明                                                         |
2380| ----------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
2381| context     | Context                                               | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
2382| phoneNumber | string                                                | 是   | 联系人的电话号码。                                           |
2383| holder      | [Holder](#holder)                                     | 是   | 创建联系人的应用信息。                                       |
2384| callback    | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
2385
2386**错误码:**
2387
2388以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
2389
2390| 错误码ID | 错误信息           |
2391| -------- | ------------------ |
2392| 201      | Permission denied. |
2393| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
2394
2395**示例:**
2396
2397  ```js
2398  import { BusinessError } from '@kit.BasicServicesKit';
2399  // 获取context。
2400  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
2401  contact.queryContactsByPhoneNumber(context, '138xxxxxxxx', {
2402      holderId: 1,
2403      bundleName: "",
2404      displayName: ""
2405  }, (err: BusinessError, data) => {
2406      if (err) {
2407          console.error(`Failed to query Contacts By PhoneNumber. Code: ${err.code}, message: ${err.message}`);
2408          return;
2409      }
2410      console.info(`Succeeded in querying Contacts By PhoneNumber. data->${JSON.stringify(data)}`);
2411  });
2412  ```
2413
2414## contact.queryContactsByPhoneNumber<sup>(deprecated)7+</sup>
2415
2416queryContactsByPhoneNumber(phoneNumber: string, holder: Holder, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
2417
2418根据电话号码和holder查询联系人,使用callback方式作为异步方法。
2419
2420> **说明**
2421>
2422> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryContactsByPhoneNumber](#contactquerycontactsbyphonenumber10-1)替代。
2423
2424**需要权限**:ohos.permission.READ_CONTACTS
2425
2426**系统能力**:SystemCapability.Applications.ContactsData
2427
2428**参数:**
2429
2430| 参数名      | 类型                                                  | 必填 | 说明                                                         |
2431| ----------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
2432| phoneNumber | string                                                | 是   | 联系人的电话号码。                                           |
2433| holder      | [Holder](#holder)                                     | 是   | 创建联系人的应用信息。                                       |
2434| callback    | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
2435
2436**示例:**
2437
2438  ```js
2439  import { BusinessError } from '@kit.BasicServicesKit';
2440  contact.queryContactsByPhoneNumber('138xxxxxxxx', {
2441      holderId: 1,
2442      bundleName: "",
2443      displayName: ""
2444  }, (err: BusinessError, data) => {
2445      if (err) {
2446          console.error(`Failed to query Contacts By PhoneNumber. Code: ${err.code}, message: ${err.message}`);
2447          return;
2448      }
2449      console.info(`Succeeded in querying Contacts By PhoneNumber. data->${JSON.stringify(data)}`);
2450  });
2451  ```
2452
2453## contact.queryContactsByPhoneNumber<sup>10+</sup>
2454
2455queryContactsByPhoneNumber(context: Context,  phoneNumber: string, attrs: ContactAttributes, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
2456
2457根据电话号码和attrs查询联系人,使用callback方式作为异步方法。
2458
2459**需要权限**:ohos.permission.READ_CONTACTS
2460
2461**系统能力**:SystemCapability.Applications.ContactsData
2462
2463**参数:**
2464
2465| 参数名      | 类型                                                  | 必填 | 说明                                                         |
2466| ----------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
2467| context     | Context                                               | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
2468| phoneNumber | string                                                | 是   | 联系人的电话号码。                                           |
2469| attrs       | [ContactAttributes](#contactattributes)               | 是   | 联系人的属性列表。                                           |
2470| callback    | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
2471
2472**错误码:**
2473
2474以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
2475
2476| 错误码ID | 错误信息           |
2477| -------- | ------------------ |
2478| 201      | Permission denied. |
2479| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
2480
2481**示例:**
2482
2483  ```js
2484  import { BusinessError } from '@kit.BasicServicesKit';
2485  // 获取context。
2486  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
2487  contact.queryContactsByPhoneNumber(context, '138xxxxxxxx', {
2488      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
2489  }, (err: BusinessError, data) => {
2490      if (err) {
2491          console.error(`Failed to query Contacts By PhoneNumber. Code: ${err.code}, message: ${err.message}`);
2492          return;
2493      }
2494      console.info(`Succeeded in querying Contacts By PhoneNumber. data->${JSON.stringify(data)}`);
2495  });
2496  ```
2497
2498## contact.queryContactsByPhoneNumber<sup>(deprecated)7+</sup>
2499
2500queryContactsByPhoneNumber(phoneNumber: string, attrs: ContactAttributes, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
2501
2502根据电话号码和attrs查询联系人,使用callback方式作为异步方法。
2503
2504> **说明**
2505>
2506> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryContactsByPhoneNumber](#contactquerycontactsbyphonenumber10-2)替代。
2507
2508**需要权限**:ohos.permission.READ_CONTACTS
2509
2510**系统能力**:SystemCapability.Applications.ContactsData
2511
2512**参数:**
2513
2514| 参数名      | 类型                                                  | 必填 | 说明                                                         |
2515| ----------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
2516| phoneNumber | string                                                | 是   | 联系人的电话号码。                                           |
2517| attrs       | [ContactAttributes](#contactattributes)               | 是   | 联系人的属性列表。                                           |
2518| callback    | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
2519
2520**示例:**
2521
2522  ```js
2523  import { BusinessError } from '@kit.BasicServicesKit';
2524  contact.queryContactsByPhoneNumber('138xxxxxxxx', {
2525      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
2526  }, (err: BusinessError, data) => {
2527      if (err) {
2528          console.error(`Failed to query Contacts By PhoneNumber. Code: ${err.code}, message: ${err.message}`);
2529          return;
2530      }
2531      console.info(`Succeeded in querying Contacts By PhoneNumber. data->${JSON.stringify(data)}`);
2532  });
2533  ```
2534
2535## contact.queryContactsByPhoneNumber<sup>10+</sup>
2536
2537queryContactsByPhoneNumber(context: Context,  phoneNumber: string, holder: Holder, attrs: ContactAttributes, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
2538
2539根据电话号码、holder和attrs查询联系人,使用callback方式作为异步方法。
2540
2541**需要权限**:ohos.permission.READ_CONTACTS
2542
2543**系统能力**:SystemCapability.Applications.ContactsData
2544
2545**参数:**
2546
2547| 参数名      | 类型                                                  | 必填 | 说明                                                         |
2548| ----------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
2549| context     | Context                                               | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
2550| phoneNumber | string                                                | 是   | 联系人的电话号码。                                           |
2551| holder      | [Holder](#holder)                                     | 是   | 创建联系人的应用信息。                                       |
2552| attrs       | [ContactAttributes](#contactattributes)               | 是   | 联系人的属性列表。                                           |
2553| callback    | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
2554
2555**错误码:**
2556
2557以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
2558
2559| 错误码ID | 错误信息           |
2560| -------- | ------------------ |
2561| 201      | Permission denied. |
2562| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
2563
2564**示例:**
2565
2566  ```js
2567  import { BusinessError } from '@kit.BasicServicesKit';
2568  // 获取context。
2569  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
2570  contact.queryContactsByPhoneNumber(context, '138xxxxxxxx', {
2571      holderId: 1,
2572      bundleName: "",
2573      displayName: ""
2574  }, {
2575      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
2576  }, (err: BusinessError, data) => {
2577      if (err) {
2578          console.error(`Failed to query Contacts By PhoneNumber. Code: ${err.code}, message: ${err.message}`);
2579          return;
2580      }
2581      console.info(`Succeeded in querying Contacts By PhoneNumber. data->${JSON.stringify(data)}`);
2582  });
2583  ```
2584
2585## contact.queryContactsByPhoneNumber<sup>(deprecated)7+</sup>
2586
2587queryContactsByPhoneNumber(phoneNumber: string, holder: Holder, attrs: ContactAttributes, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
2588
2589根据电话号码、holder和attrs查询联系人,使用callback方式作为异步方法。
2590
2591> **说明**
2592>
2593> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryContactsByPhoneNumber](#contactquerycontactsbyphonenumber10-3)替代。
2594
2595**需要权限**:ohos.permission.READ_CONTACTS
2596
2597**系统能力**:SystemCapability.Applications.ContactsData
2598
2599**参数:**
2600
2601| 参数名      | 类型                                                  | 必填 | 说明                                                         |
2602| ----------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
2603| phoneNumber | string                                                | 是   | 联系人的电话号码。                                           |
2604| holder      | [Holder](#holder)                                     | 是   | 创建联系人的应用信息。                                       |
2605| attrs       | [ContactAttributes](#contactattributes)               | 是   | 联系人的属性列表。                                           |
2606| callback    | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
2607
2608**示例:**
2609
2610  ```js
2611  import { BusinessError } from '@kit.BasicServicesKit';
2612  contact.queryContactsByPhoneNumber('138xxxxxxxx', {
2613      holderId: 1,
2614      bundleName: "",
2615      displayName: ""
2616  }, {
2617      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
2618  }, (err: BusinessError, data) => {
2619      if (err) {
2620          console.error(`Failed to query Contacts By PhoneNumber. Code: ${err.code}, message: ${err.message}`);
2621          return;
2622      }
2623      console.info(`Succeeded in querying Contacts By PhoneNumber. data->${JSON.stringify(data)}`);
2624  });
2625  ```
2626
2627## contact.queryContactsByPhoneNumber<sup>10+</sup>
2628
2629queryContactsByPhoneNumber(context: Context,  phoneNumber: string, holder?: Holder, attrs?: ContactAttributes): Promise&lt;Array&lt;Contact&gt;&gt;
2630
2631根据电话号码、holder和attrs查询联系人,使用Promise方式作为异步方法。
2632
2633**需要权限**:ohos.permission.READ_CONTACTS
2634
2635**系统能力**:SystemCapability.Applications.ContactsData
2636
2637**参数:**
2638
2639| 参数名      | 类型                                    | 必填 | 说明                                                         |
2640| ----------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
2641| context     | Context                                 | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
2642| phoneNumber | string                                  | 是   | 联系人的电话号码。                                           |
2643| holder      | [Holder](#holder)                       | 否   | 创建联系人的应用信息,不传默认不使用该条件过滤联系人。       |
2644| attrs       | [ContactAttributes](#contactattributes) | 否   | 联系人的属性列表,不传默认查询所有联系人属性。               |
2645
2646**返回值:**
2647
2648| 类型                                            | 说明                                      |
2649| ----------------------------------------------- | ----------------------------------------- |
2650| Promise&lt;Array&lt;[Contact](#contact)&gt;&gt; | Promise对象。返回查询到的联系人数组对象。 |
2651
2652**错误码:**
2653
2654以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
2655
2656| 错误码ID | 错误信息           |
2657| -------- | ------------------ |
2658| 201      | Permission denied. |
2659| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
2660
2661**示例:**
2662
2663  ```js
2664  import { BusinessError } from '@kit.BasicServicesKit';
2665  // 获取context。
2666  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
2667  let promise = contact.queryContactsByPhoneNumber(context, '138xxxxxxxx', {
2668      holderId: 1,
2669      bundleName: "",
2670      displayName: ""
2671  }, {
2672      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
2673  });
2674  promise.then((data) => {
2675      console.info(`Succeeded in querying Contacts By PhoneNumber. data->${JSON.stringify(data)}`);
2676  }).catch((err: BusinessError) => {
2677      console.error(`Failed to query Contacts By PhoneNumber. Code: ${err.code}, message: ${err.message}`);
2678  });
2679  ```
2680
2681## contact.queryContactsByPhoneNumber<sup>(deprecated)7+</sup>
2682
2683queryContactsByPhoneNumber(phoneNumber: string, holder?: Holder, attrs?: ContactAttributes): Promise&lt;Array&lt;Contact&gt;&gt;
2684
2685根据电话号码、holder和attrs查询联系人,使用Promise方式作为异步方法。
2686
2687> **说明**
2688>
2689> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryContactsByPhoneNumber](#contactquerycontactsbyphonenumber10-4)替代。
2690
2691**需要权限**:ohos.permission.READ_CONTACTS
2692
2693**系统能力**:SystemCapability.Applications.ContactsData
2694
2695**参数:**
2696
2697| 参数名      | 类型                                    | 必填 | 说明                   |
2698| ----------- | --------------------------------------- | ---- | ---------------------- |
2699| phoneNumber | string                                  | 是   | 联系人的电话号码。     |
2700| holder      | [Holder](#holder)                       | 否   | 创建联系人的应用信息,不传默认不使用该条件过滤联系人。 |
2701| attrs       | [ContactAttributes](#contactattributes) | 否   | 联系人的属性列表,不传默认查询所有联系人属性。     |
2702
2703**返回值:**
2704
2705| 类型                                            | 说明                                      |
2706| ----------------------------------------------- | ----------------------------------------- |
2707| Promise&lt;Array&lt;[Contact](#contact)&gt;&gt; | Promise对象。返回查询到的联系人数组对象。 |
2708
2709**示例:**
2710
2711  ```js
2712  import { BusinessError } from '@kit.BasicServicesKit';
2713  let promise = contact.queryContactsByPhoneNumber('138xxxxxxxx', {
2714      holderId: 1,
2715      bundleName: "",
2716      displayName: ""
2717  }, {
2718      attributes: [contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE]
2719  });
2720  promise.then((data) => {
2721      console.info(`Succeeded in querying Contacts By PhoneNumber. data->${JSON.stringify(data)}`);
2722  }).catch((err: BusinessError) => {
2723      console.error(`Failed to query Contacts By PhoneNumber. Code: ${err.code}, message: ${err.message}`);
2724  });
2725  ```
2726
2727## contact.queryContactsByEmail<sup>10+</sup>
2728
2729queryContactsByEmail(context: Context,  email: string, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
2730
2731根据email查询联系人,使用callback方式作为异步方法。
2732
2733**需要权限**:ohos.permission.READ_CONTACTS
2734
2735**系统能力**:SystemCapability.Applications.ContactsData
2736
2737**参数:**
2738
2739| 参数名   | 类型                                                  | 必填 | 说明                                                         |
2740| -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
2741| context  | Context                                               | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
2742| email    | string                                                | 是   | 联系人的邮箱地址。                                           |
2743| callback | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
2744
2745**错误码:**
2746
2747以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
2748
2749| 错误码ID | 错误信息           |
2750| -------- | ------------------ |
2751| 201      | Permission denied. |
2752| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
2753
2754**示例:**
2755
2756  ```js
2757  import { BusinessError } from '@kit.BasicServicesKit';
2758  // 获取context。
2759  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
2760  contact.queryContactsByEmail(context, 'xxx@email.com', (err: BusinessError, data) => {
2761      if (err) {
2762          console.error(`Failed to query Contacts By Email. Code: ${err.code}, message: ${err.message}`);
2763          return;
2764      }
2765      console.info(`Succeeded in querying Contacts By Email. data->${JSON.stringify(data)}`);
2766  });
2767  ```
2768
2769## contact.queryContactsByEmail<sup>(deprecated)7+</sup>
2770
2771queryContactsByEmail(email: string, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
2772
2773根据email查询联系人,使用callback方式作为异步方法。
2774
2775> **说明**
2776>
2777> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryContactsByEmail](#contactquerycontactsbyemail10)替代。
2778
2779**需要权限**:ohos.permission.READ_CONTACTS
2780
2781**系统能力**:SystemCapability.Applications.ContactsData
2782
2783**参数:**
2784
2785| 参数名   | 类型                                                  | 必填 | 说明                                                         |
2786| -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
2787| email    | string                                                | 是   | 联系人的邮箱地址。                                           |
2788| callback | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
2789
2790**示例:**
2791
2792  ```js
2793  import { BusinessError } from '@kit.BasicServicesKit';
2794  contact.queryContactsByEmail('xxx@email.com', (err: BusinessError, data) => {
2795      if (err) {
2796          console.error(`Failed to query Contacts By Email. Code: ${err.code}, message: ${err.message}`);
2797          return;
2798      }
2799      console.info(`Succeeded in querying Contacts By Email. data->${JSON.stringify(data)}`);
2800  });
2801  ```
2802
2803## contact.queryContactsByEmail<sup>10+</sup>
2804
2805queryContactsByEmail(context: Context,  email: string, holder: Holder, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
2806
2807根据email和holder查询联系人,使用callback方式作为异步方法。
2808
2809**需要权限**:ohos.permission.READ_CONTACTS
2810
2811**系统能力**:SystemCapability.Applications.ContactsData
2812
2813**参数:**
2814
2815| 参数名   | 类型                                                  | 必填 | 说明                                                         |
2816| -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
2817| context  | Context                                               | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
2818| email    | string                                                | 是   | 联系人的邮箱地址。                                           |
2819| holder   | [Holder](#holder)                                     | 是   | 创建联系人的应用信息。                                       |
2820| callback | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
2821
2822**错误码:**
2823
2824以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
2825
2826| 错误码ID | 错误信息           |
2827| -------- | ------------------ |
2828| 201      | Permission denied. |
2829| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
2830
2831**示例:**
2832
2833  ```js
2834  import { BusinessError } from '@kit.BasicServicesKit';
2835  // 获取context。
2836  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
2837  contact.queryContactsByEmail(context, 'xxx@email.com', {
2838      holderId: 1,
2839      bundleName: "",
2840      displayName: ""
2841  }, (err: BusinessError, data) => {
2842      if (err) {
2843          console.error(`Failed to query Contacts By Email. Code: ${err.code}, message: ${err.message}`);
2844          return;
2845      }
2846      console.info(`Succeeded in querying Contacts By Email. data->${JSON.stringify(data)}`);
2847  });
2848  ```
2849
2850## contact.queryContactsByEmail<sup>(deprecated)7+</sup>
2851
2852queryContactsByEmail(email: string, holder: Holder, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
2853
2854根据email和holder查询联系人,使用callback方式作为异步方法。
2855
2856> **说明**
2857>
2858> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryContactsByEmail](#contactquerycontactsbyemail10-1)替代。
2859
2860**需要权限**:ohos.permission.READ_CONTACTS
2861
2862**系统能力**:SystemCapability.Applications.ContactsData
2863
2864**参数:**
2865
2866| 参数名   | 类型                                                  | 必填 | 说明                                                         |
2867| -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
2868| email    | string                                                | 是   | 联系人的邮箱地址。                                           |
2869| holder   | [Holder](#holder)                                     | 是   | 创建联系人的应用信息。                                       |
2870| callback | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
2871
2872**示例:**
2873
2874  ```js
2875  import { BusinessError } from '@kit.BasicServicesKit';
2876  contact.queryContactsByEmail('xxx@email.com', {
2877      holderId: 1,
2878      bundleName: "",
2879      displayName: ""
2880  }, (err: BusinessError, data) => {
2881      if (err) {
2882          console.error(`Failed to query Contacts By Email. Code: ${err.code}, message: ${err.message}`);
2883          return;
2884      }
2885      console.info(`Succeeded in querying Contacts By Email. data->${JSON.stringify(data)}`);
2886  });
2887  ```
2888
2889## contact.queryContactsByEmail<sup>10+</sup>
2890
2891queryContactsByEmail(context: Context,  email: string, attrs: ContactAttributes, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
2892
2893根据email和attrs查询联系人,使用callback方式作为异步方法。
2894
2895**需要权限**:ohos.permission.READ_CONTACTS
2896
2897**系统能力**:SystemCapability.Applications.ContactsData
2898
2899**参数:**
2900
2901| 参数名   | 类型                                                  | 必填 | 说明                                                         |
2902| -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
2903| context  | Context                                               | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
2904| email    | string                                                | 是   | 联系人的邮箱地址。                                           |
2905| attrs    | [ContactAttributes](#contactattributes)               | 是   | 联系人的属性列表。                                           |
2906| callback | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
2907
2908**错误码:**
2909
2910以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
2911
2912| 错误码ID | 错误信息           |
2913| -------- | ------------------ |
2914| 201      | Permission denied. |
2915| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
2916
2917**示例:**
2918
2919  ```js
2920  import { BusinessError } from '@kit.BasicServicesKit';
2921  // 获取context。
2922  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
2923  contact.queryContactsByEmail(context, 'xxx@email.com', {
2924      attributes: [contact.Attribute.ATTR_EMAIL, contact.Attribute.ATTR_NAME]
2925  }, (err: BusinessError, data) => {
2926      if (err) {
2927          console.error(`Failed to query Contacts By Email. Code: ${err.code}, message: ${err.message}`);
2928          return;
2929      }
2930      console.info(`Succeeded in querying Contacts By Email. data->${JSON.stringify(data)}`);
2931  });
2932  ```
2933
2934## contact.queryContactsByEmail<sup>(deprecated)7+</sup>
2935
2936queryContactsByEmail(email: string, attrs: ContactAttributes, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
2937
2938根据email和attrs查询联系人,使用callback方式作为异步方法。
2939
2940> **说明**
2941>
2942> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryContactsByEmail](#contactquerycontactsbyemail10-2)替代。
2943
2944**需要权限**:ohos.permission.READ_CONTACTS
2945
2946**系统能力**:SystemCapability.Applications.ContactsData
2947
2948**参数:**
2949
2950| 参数名   | 类型                                                  | 必填 | 说明                                                         |
2951| -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
2952| email    | string                                                | 是   | 联系人的邮箱地址。                                           |
2953| attrs    | [ContactAttributes](#contactattributes)               | 是   | 联系人的属性列表。                                           |
2954| callback | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
2955
2956**示例:**
2957
2958  ```js
2959  import { BusinessError } from '@kit.BasicServicesKit';
2960  contact.queryContactsByEmail('xxx@email.com', {
2961      attributes: [contact.Attribute.ATTR_EMAIL, contact.Attribute.ATTR_NAME]
2962  }, (err: BusinessError, data) => {
2963      if (err) {
2964          console.error(`Failed to query Contacts By Email. Code: ${err.code}, message: ${err.message}`);
2965          return;
2966      }
2967      console.info(`Succeeded in querying Contacts By Email. data->${JSON.stringify(data)}`);
2968  });
2969  ```
2970
2971## contact.queryContactsByEmail<sup>10+</sup>
2972
2973queryContactsByEmail(context: Context,  email: string, holder: Holder, attrs: ContactAttributes, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
2974
2975根据email、holder和attrs查询联系人,使用callback方式作为异步方法。
2976
2977**需要权限**:ohos.permission.READ_CONTACTS
2978
2979**系统能力**:SystemCapability.Applications.ContactsData
2980
2981**参数:**
2982
2983| 参数名   | 类型                                                  | 必填 | 说明                                                         |
2984| -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
2985| context  | Context                                               | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
2986| email    | string                                                | 是   | 联系人的邮箱地址。                                           |
2987| holder   | [Holder](#holder)                                     | 是   | 创建联系人的应用信息。                                       |
2988| attrs    | [ContactAttributes](#contactattributes)               | 是   | 联系人的属性列表。                                           |
2989| callback | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
2990
2991**错误码:**
2992
2993以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
2994
2995| 错误码ID | 错误信息           |
2996| -------- | ------------------ |
2997| 201      | Permission denied. |
2998| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
2999
3000**示例:**
3001
3002  ```js
3003  import { BusinessError } from '@kit.BasicServicesKit';
3004  // 获取context。
3005  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
3006  contact.queryContactsByEmail(context, 'xxx@email.com', {
3007      holderId: 1,
3008      bundleName: "",
3009      displayName: ""
3010  }, {
3011      attributes: [contact.Attribute.ATTR_EMAIL, contact.Attribute.ATTR_NAME]
3012  }, (err: BusinessError, data) => {
3013      if (err) {
3014          console.error(`Failed to query Contacts By Email. Code: ${err.code}, message: ${err.message}`);
3015          return;
3016      }
3017      console.info(`Succeeded in querying Contacts By Email. data->${JSON.stringify(data)}`);
3018  });
3019  ```
3020
3021## contact.queryContactsByEmail<sup>(deprecated)7+</sup>
3022
3023queryContactsByEmail(email: string, holder: Holder, attrs: ContactAttributes, callback: AsyncCallback&lt;Array&lt;Contact&gt;&gt;): void
3024
3025根据email、holder和attrs查询联系人,使用callback方式作为异步方法。
3026
3027> **说明**
3028>
3029> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryContactsByEmail](#contactquerycontactsbyemail10-3)替代。
3030
3031**需要权限**:ohos.permission.READ_CONTACTS
3032
3033**系统能力**:SystemCapability.Applications.ContactsData
3034
3035**参数:**
3036
3037| 参数名   | 类型                                                  | 必填 | 说明                                                         |
3038| -------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
3039| email    | string                                                | 是   | 联系人的邮箱地址。                                           |
3040| holder   | [Holder](#holder)                                     | 是   | 创建联系人的应用信息。                                       |
3041| attrs    | [ContactAttributes](#contactattributes)               | 是   | 联系人的属性列表。                                           |
3042| callback | AsyncCallback&lt;Array&lt;[Contact](#contact)&gt;&gt; | 是   | 回调函数。成功返回查询到的联系人对象数组;失败返回失败的错误码。 |
3043
3044**示例:**
3045
3046  ```js
3047  import { BusinessError } from '@kit.BasicServicesKit';
3048  contact.queryContactsByEmail('xxx@email.com', {
3049      holderId: 1,
3050      bundleName: "",
3051      displayName: ""
3052  }, {
3053      attributes: [contact.Attribute.ATTR_EMAIL, contact.Attribute.ATTR_NAME]
3054  }, (err: BusinessError, data) => {
3055      if (err) {
3056          console.error(`Failed to query Contacts By Email. Code: ${err.code}, message: ${err.message}`);
3057          return;
3058      }
3059      console.info(`Succeeded in querying Contacts By Email. data->${JSON.stringify(data)}`);
3060  });
3061  ```
3062
3063## contact.queryContactsByEmail<sup>10+</sup>
3064
3065queryContactsByEmail(context: Context,  email: string, holder?: Holder, attrs?: ContactAttributes): Promise&lt;Array&lt;Contact&gt;&gt;
3066
3067根据email、holder和attrs查询联系人,使用Promise方式作为异步方法。
3068
3069**需要权限**:ohos.permission.READ_CONTACTS
3070
3071**系统能力**:SystemCapability.Applications.ContactsData
3072
3073**参数:**
3074
3075| 参数名  | 类型                                    | 必填 | 说明                                                         |
3076| ------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
3077| context | Context                                 | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
3078| email   | string                                  | 是   | 联系人的邮箱地址。                                           |
3079| holder  | [Holder](#holder)                       | 否   | 创建联系人的应用信息,不传默认不使用该条件过滤联系人。                                       |
3080| attrs   | [ContactAttributes](#contactattributes) | 否   | 联系人的属性列表,不传默认查询所有联系人属性。                                           |
3081
3082**返回值:**
3083
3084| 类型                                            | 说明                                      |
3085| ----------------------------------------------- | ----------------------------------------- |
3086| Promise&lt;Array&lt;[Contact](#contact)&gt;&gt; | Promise对象。返回查询到的联系人数组对象。 |
3087
3088**错误码:**
3089
3090以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
3091
3092| 错误码ID | 错误信息           |
3093| -------- | ------------------ |
3094| 201      | Permission denied. |
3095| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
3096
3097**示例:**
3098
3099  ```js
3100  import { BusinessError } from '@kit.BasicServicesKit';
3101  // 获取context。
3102  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
3103  let promise = contact.queryContactsByEmail(context, 'xxx@email.com', {
3104      holderId: 1,
3105      bundleName: "",
3106      displayName: ""
3107  }, {
3108      attributes: [contact.Attribute.ATTR_EMAIL, contact.Attribute.ATTR_NAME]
3109  });
3110  promise.then((data) => {
3111      console.info(`Succeeded in querying Contacts By Email. data->${JSON.stringify(data)}`);
3112  }).catch((err: BusinessError) => {
3113      console.error(`Failed to query Contacts By Email. Code: ${err.code}, message: ${err.message}`);
3114  });
3115  ```
3116
3117## contact.queryContactsByEmail<sup>(deprecated)7+</sup>
3118
3119queryContactsByEmail(email: string, holder?: Holder, attrs?: ContactAttributes): Promise&lt;Array&lt;Contact&gt;&gt;
3120
3121根据email、holder和attrs查询联系人,使用Promise方式作为异步方法。
3122
3123> **说明**
3124>
3125> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryContactsByEmail](#contactquerycontactsbyemail10-4)替代。
3126
3127**需要权限**:ohos.permission.READ_CONTACTS
3128
3129**系统能力**:SystemCapability.Applications.ContactsData
3130
3131**参数:**
3132
3133| 参数名 | 类型                                    | 必填 | 说明                   |
3134| ------ | --------------------------------------- | ---- | ---------------------- |
3135| email  | string                                  | 是   | 联系人的邮箱地址。     |
3136| holder | [Holder](#holder)                       | 否   | 创建联系人的应用信息,不传默认不使用该条件过滤联系人。 |
3137| attrs  | [ContactAttributes](#contactattributes) | 否   | 联系人的属性列表,不传默认查询所有联系人属性。     |
3138
3139**返回值:**
3140
3141| 类型                                            | 说明                                      |
3142| ----------------------------------------------- | ----------------------------------------- |
3143| Promise&lt;Array&lt;[Contact](#contact)&gt;&gt; | Promise对象。返回查询到的联系人数组对象。 |
3144
3145**示例:**
3146
3147  ```js
3148  import { BusinessError } from '@kit.BasicServicesKit';
3149  let promise = contact.queryContactsByEmail('xxx@email.com', {
3150      holderId: 1,
3151      bundleName: "",
3152      displayName: ""
3153  }, {
3154      attributes: [contact.Attribute.ATTR_EMAIL, contact.Attribute.ATTR_NAME]
3155  });
3156  promise.then((data) => {
3157      console.info(`Succeeded in querying Contacts By Email. data->${JSON.stringify(data)}`);
3158  }).catch((err: BusinessError) => {
3159      console.error(`Failed to query Contacts By Email. Code: ${err.code}, message: ${err.message}`);
3160  });
3161  ```
3162
3163## contact.queryGroups<sup>10+</sup>
3164
3165queryGroups(context: Context,  callback: AsyncCallback&lt;Array&lt;Group&gt;&gt;): void
3166
3167查询联系人的所有群组,使用callback方式作为异步方法。
3168
3169**需要权限**:ohos.permission.READ_CONTACTS
3170
3171**系统能力**:SystemCapability.Applications.ContactsData
3172
3173**参数:**
3174
3175| 参数名   | 类型                                              | 必填 | 说明                                                         |
3176| -------- | ------------------------------------------------- | ---- | ------------------------------------------------------------ |
3177| context  | Context                                           | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
3178| callback | AsyncCallback&lt;Array&lt;[Group](#group)&gt;&gt; | 是   | 回调函数。成功返回查询到的群组对象数组;失败返回失败的错误码。 |
3179
3180**错误码:**
3181
3182| 错误码ID | 错误信息           |
3183| -------- | ------------------ |
3184| 201      | Permission denied. |
3185| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
3186
3187**示例:**
3188
3189  ```js
3190  import { BusinessError } from '@kit.BasicServicesKit';
3191  // 获取context。
3192  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
3193  contact.queryGroups(context, (err: BusinessError, data) => {
3194      if (err) {
3195          console.error(`Failed to query Groups. Code: ${err.code}, message: ${err.message}`);
3196          return;
3197      }
3198      console.info(`Succeeded in querying Groups. data->${JSON.stringify(data)}`);
3199  });
3200  ```
3201
3202## contact.queryGroups<sup>(deprecated)7+</sup>
3203
3204queryGroups(callback: AsyncCallback&lt;Array&lt;Group&gt;&gt;): void
3205
3206查询联系人的所有群组,使用callback方式作为异步方法。
3207
3208> **说明**
3209>
3210> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryGroups](#contactquerygroups10)替代。
3211
3212**需要权限**:ohos.permission.READ_CONTACTS
3213
3214**系统能力**:SystemCapability.Applications.ContactsData
3215
3216**参数:**
3217
3218| 参数名   | 类型                                              | 必填 | 说明                                                         |
3219| -------- | ------------------------------------------------- | ---- | ------------------------------------------------------------ |
3220| callback | AsyncCallback&lt;Array&lt;[Group](#group)&gt;&gt; | 是   | 回调函数。成功返回查询到的群组对象数组;失败返回失败的错误码。 |
3221
3222**示例:**
3223
3224  ```js
3225  import { BusinessError } from '@kit.BasicServicesKit';
3226  contact.queryGroups((err: BusinessError, data) => {
3227      if (err) {
3228          console.error(`Failed to query Groups. Code: ${err.code}, message: ${err.message}`);
3229          return;
3230      }
3231      console.info(`Succeeded in querying Groups.. data->${JSON.stringify(data)}`);
3232  });
3233  ```
3234
3235## contact.queryGroups<sup>10+</sup>
3236
3237queryGroups(context: Context,  holder: Holder, callback: AsyncCallback&lt;Array&lt;Group&gt;&gt;): void
3238
3239根据holder查询联系人的所有群组,使用callback方式作为异步方法。
3240
3241**需要权限**:ohos.permission.READ_CONTACTS
3242
3243**系统能力**:SystemCapability.Applications.ContactsData
3244
3245**参数:**
3246
3247| 参数名   | 类型                                              | 必填 | 说明                                                         |
3248| -------- | ------------------------------------------------- | ---- | ------------------------------------------------------------ |
3249| context  | Context                                           | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
3250| holder   | [Holder](#holder)                                 | 是   | 创建联系人的应用信息。                                       |
3251| callback | AsyncCallback&lt;Array&lt;[Group](#group)&gt;&gt; | 是   | 回调函数。成功返回查询到的群组对象数组;失败返回失败的错误码。 |
3252
3253**错误码:**
3254
3255以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
3256
3257| 错误码ID | 错误信息           |
3258| -------- | ------------------ |
3259| 201      | Permission denied. |
3260| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
3261
3262**示例:**
3263
3264  ```js
3265  import { BusinessError } from '@kit.BasicServicesKit';
3266  // 获取context。
3267  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
3268  contact.queryGroups(context, {
3269      holderId: 1,
3270      bundleName: "",
3271      displayName: ""
3272  }, (err: BusinessError, data) => {
3273      if (err) {
3274          console.error(`Failed to query Groups. Code: ${err.code}, message: ${err.message}`);
3275          return;
3276      }
3277      console.info(`Succeeded in querying Groups. data->${JSON.stringify(data)}`);
3278  });
3279  ```
3280
3281## contact.queryGroups<sup>(deprecated)7+</sup>
3282
3283queryGroups(holder: Holder, callback: AsyncCallback&lt;Array&lt;Group&gt;&gt;): void
3284
3285根据holder查询联系人的所有群组,使用callback方式作为异步方法。
3286
3287> **说明**
3288>
3289> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryGroups](#contactquerygroups10-1)替代。
3290
3291**需要权限**:ohos.permission.READ_CONTACTS
3292
3293**系统能力**:SystemCapability.Applications.ContactsData
3294
3295**参数:**
3296
3297| 参数名   | 类型                                              | 必填 | 说明                                                         |
3298| -------- | ------------------------------------------------- | ---- | ------------------------------------------------------------ |
3299| holder   | [Holder](#holder)                                 | 是   | 创建联系人的应用信息。                                       |
3300| callback | AsyncCallback&lt;Array&lt;[Group](#group)&gt;&gt; | 是   | 回调函数。成功返回查询到的群组对象数组;失败返回失败的错误码。 |
3301
3302**示例:**
3303
3304  ```js
3305  import { BusinessError } from '@kit.BasicServicesKit';
3306  contact.queryGroups({
3307      holderId: 1,
3308      bundleName: "",
3309      displayName: ""
3310  }, (err: BusinessError, data) => {
3311      if (err) {
3312          console.error(`Failed to query Groups. Code: ${err.code}, message: ${err.message}`);
3313          return;
3314      }
3315      console.info(`Succeeded in querying Groups. data->${JSON.stringify(data)}`);
3316  });
3317  ```
3318
3319## contact.queryGroups<sup>10+</sup>
3320
3321queryGroups(context: Context,  holder?: Holder): Promise&lt;Array&lt;Group&gt;&gt;
3322
3323根据holder查询联系人的所有群组,使用Promise方式作为异步方法。
3324
3325**需要权限**:ohos.permission.READ_CONTACTS
3326
3327**系统能力**:SystemCapability.Applications.ContactsData
3328
3329**参数:**
3330
3331| 参数名  | 类型              | 必填 | 说明                                                         |
3332| ------- | ----------------- | ---- | ------------------------------------------------------------ |
3333| context | Context           | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
3334| holder  | [Holder](#holder) | 否   | 创建联系人的应用信息,不传默认不使用该条件过滤联系人群组。                                       |
3335
3336**返回值:**
3337
3338| 类型                                        | 说明                                    |
3339| ------------------------------------------- | --------------------------------------- |
3340| Promise&lt;Array&lt;[Group](#group)&gt;&gt; | Promise对象。返回查询到的群组对象数组。 |
3341
3342**错误码:**
3343
3344以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
3345
3346| 错误码ID | 错误信息           |
3347| -------- | ------------------ |
3348| 201      | Permission denied. |
3349| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
3350
3351**示例:**
3352
3353  ```js
3354  import { BusinessError } from '@kit.BasicServicesKit';
3355  // 获取context。
3356  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
3357  let promise = contact.queryGroups(context, {
3358      holderId: 1,
3359      bundleName: "",
3360      displayName: ""
3361  });
3362  promise.then((data) => {
3363      console.info(`Succeeded in querying Groups. data->${JSON.stringify(data)}`);
3364  }).catch((err: BusinessError) => {
3365      console.error(`Failed to query Groups. Code: ${err.code}, message: ${err.message}`);
3366  });
3367  ```
3368
3369## contact.queryGroups<sup>(deprecated)7+</sup>
3370
3371queryGroups(holder?: Holder): Promise&lt;Array&lt;Group&gt;&gt;
3372
3373根据holder查询联系人的所有群组,使用Promise方式作为异步方法。
3374
3375> **说明**
3376>
3377> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryGroups](#contactquerygroups10-2)替代。
3378
3379**需要权限**:ohos.permission.READ_CONTACTS
3380
3381**系统能力**:SystemCapability.Applications.ContactsData
3382
3383**参数:**
3384
3385| 参数名 | 类型              | 必填 | 说明                   |
3386| ------ | ----------------- | ---- | ---------------------- |
3387| holder | [Holder](#holder) | 否   | 创建联系人的应用信息,不传默认不使用该条件过滤联系人群组。 |
3388
3389**返回值:**
3390
3391| 类型                                        | 说明                                    |
3392| ------------------------------------------- | --------------------------------------- |
3393| Promise&lt;Array&lt;[Group](#group)&gt;&gt; | Promise对象。返回查询到的群组对象数组。 |
3394
3395**示例:**
3396
3397  ```js
3398  import { BusinessError } from '@kit.BasicServicesKit';
3399  let promise = contact.queryGroups({
3400      holderId: 1,
3401      bundleName: "",
3402      displayName: ""
3403  });
3404  promise.then((data) => {
3405      console.info(`Succeeded in querying Groups. data->${JSON.stringify(data)}`);
3406  }).catch((err: BusinessError) => {
3407      console.error(`Failed to query Groups. Code: ${err.code}, message: ${err.message}`);
3408  });
3409  ```
3410
3411## contact.queryHolders<sup>10+</sup>
3412
3413queryHolders(context: Context, callback: AsyncCallback&lt;Array&lt;Holder&gt;&gt;): void
3414
3415查询所有创建联系人的应用信息,使用callback方式作为异步方法。
3416
3417**需要权限**:ohos.permission.READ_CONTACTS
3418
3419**系统能力**:SystemCapability.Applications.ContactsData
3420
3421**参数:**
3422
3423| 参数名   | 类型                                                | 必填 | 说明                                                         |
3424| -------- | --------------------------------------------------- | ---- | ------------------------------------------------------------ |
3425| context  | Context                                             | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
3426| callback | AsyncCallback&lt;Array&lt;[Holder](#holder)&gt;&gt; | 是   | 回调函数。成功返回查询到的创建联系人应用信息的对象数组;失败返回失败的错误码。 |
3427
3428**错误码:**
3429
3430以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
3431
3432| 错误码ID | 错误信息           |
3433| -------- | ------------------ |
3434| 201      | Permission denied. |
3435| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
3436
3437**示例:**
3438
3439  ```js
3440  import { BusinessError } from '@kit.BasicServicesKit';
3441  // 获取context。
3442  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
3443  contact.queryHolders(context, (err: BusinessError, data) => {
3444      if (err) {
3445          console.error(`Failed to query Holders. Code: ${err.code}, message: ${err.message}`);
3446          return;
3447      }
3448      console.info(`Succeeded in querying Holders. data->${JSON.stringify(data)}`);
3449  });
3450  ```
3451
3452## contact.queryHolders<sup>(deprecated)7+</sup>
3453
3454queryHolders(callback: AsyncCallback&lt;Array&lt;Holder&gt;&gt;): void
3455
3456查询所有创建联系人的应用信息,使用callback方式作为异步方法。
3457
3458> **说明**
3459>
3460> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryHolders](#contactqueryholders10)替代。
3461
3462**需要权限**:ohos.permission.READ_CONTACTS
3463
3464**系统能力**:SystemCapability.Applications.ContactsData
3465
3466**参数:**
3467
3468| 参数名   | 类型                                                | 必填 | 说明                                                         |
3469| -------- | --------------------------------------------------- | ---- | ------------------------------------------------------------ |
3470| callback | AsyncCallback&lt;Array&lt;[Holder](#holder)&gt;&gt; | 是   | 回调函数。成功返回查询到的创建联系人应用信息的对象数组;失败返回失败的错误码。 |
3471
3472**示例:**
3473
3474  ```js
3475  import { BusinessError } from '@kit.BasicServicesKit';
3476  contact.queryHolders((err: BusinessError, data) => {
3477      if (err) {
3478          console.error(`Failed to query Holders. Code: ${err.code}, message: ${err.message}`);
3479          return;
3480      }
3481      console.info(`Succeeded in querying Holders. data->${JSON.stringify(data)}`);
3482  });
3483  ```
3484
3485## contact.queryHolders<sup>10+</sup>
3486
3487queryHolders(context: Context): Promise&lt;Array&lt;Holder&gt;&gt;
3488
3489查询所有创建联系人的应用信息,使用Promise方式作为异步方法。
3490
3491**需要权限**:ohos.permission.READ_CONTACTS
3492
3493**系统能力**:SystemCapability.Applications.ContactsData
3494
3495**参数:**
3496
3497| 参数名  | 类型    | 必填 | 说明                                                         |
3498| ------- | ------- | ---- | ------------------------------------------------------------ |
3499| context | Context | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
3500
3501**返回值:**
3502
3503| 类型                                          | 说明                                                    |
3504| --------------------------------------------- | ------------------------------------------------------- |
3505| Promise&lt;Array&lt;[Holder](#holder)&gt;&gt; | Promise对象。返回查询到的创建联系人应用信息的对象数组。 |
3506
3507**错误码:**
3508
3509以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
3510
3511| 错误码ID | 错误信息           |
3512| -------- | ------------------ |
3513| 201      | Permission denied. |
3514| 401      | Parameter error. Possible causes: Mandatory parameters are left unspecified.  |
3515
3516**示例:**
3517
3518  ```js
3519  import { BusinessError } from '@kit.BasicServicesKit';
3520  // 获取context。
3521  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
3522  let promise = contact.queryHolders(context);
3523  promise.then((data) => {
3524      console.info(`Succeeded in querying Holders. data->${JSON.stringify(data)}`);
3525  }).catch((err: BusinessError) => {
3526      console.error(`Failed to query Holders. Code: ${err.code}, message: ${err.message}`);
3527  });
3528  ```
3529
3530## contact.queryHolders<sup>(deprecated)7+</sup>
3531
3532queryHolders(): Promise&lt;Array&lt;Holder&gt;&gt;
3533
3534查询所有创建联系人的应用信息,使用Promise方式作为异步方法。
3535
3536> **说明**
3537>
3538> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryHolders](#contactqueryholders10-1)替代。
3539
3540**需要权限**:ohos.permission.READ_CONTACTS
3541
3542**系统能力**:SystemCapability.Applications.ContactsData
3543
3544**返回值:**
3545
3546| 类型                                          | 说明                                                    |
3547| --------------------------------------------- | ------------------------------------------------------- |
3548| Promise&lt;Array&lt;[Holder](#holder)&gt;&gt; | Promise对象。返回查询到的创建联系人应用信息的对象数组。 |
3549
3550**示例:**
3551
3552  ```js
3553  import { BusinessError } from '@kit.BasicServicesKit';
3554  let promise = contact.queryHolders();
3555  promise.then((data) => {
3556      console.info(`Succeeded in querying Holders. data->${JSON.stringify(data)}`);
3557  }).catch((err: BusinessError) => {
3558      console.error(`Failed to query Holders. Code: ${err.code}, message: ${err.message}`);
3559  });
3560  ```
3561
3562## contact.queryKey<sup>10+</sup>
3563
3564queryKey(context: Context,  id: number, callback: AsyncCallback&lt;string&gt;): void
3565
3566根据联系人的id查询联系人的key,使用callback方式作为异步方法。
3567
3568**需要权限**:ohos.permission.READ_CONTACTS
3569
3570**系统能力**:SystemCapability.Applications.ContactsData
3571
3572**参数:**
3573
3574| 参数名   | 类型                        | 必填 | 说明                                                         |
3575| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
3576| context  | Context                     | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
3577| id       | number                      | 是   | 联系人对象的id属性。                                         |
3578| callback | AsyncCallback&lt;string&gt; | 是   | 回调函数。成功返回查询到的联系人对应的key;失败返回失败的错误码。 |
3579
3580**错误码:**
3581
3582以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
3583
3584| 错误码ID | 错误信息           |
3585| -------- | ------------------ |
3586| 201      | Permission denied. |
3587| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Parameter verification failed.  |
3588
3589**示例:**
3590
3591  ```js
3592  import { BusinessError } from '@kit.BasicServicesKit';
3593  // 获取context。
3594  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
3595  contact.queryKey(context, /*id*/1, (err: BusinessError, data) => {
3596      if (err) {
3597          console.error(`Failed to query Key. Code: ${err.code}, message: ${err.message}`);
3598          return;
3599      }
3600      console.info(`Succeeded in querying Key. data->${JSON.stringify(data)}`);
3601  });
3602  ```
3603
3604## contact.queryKey<sup>(deprecated)7+</sup>
3605
3606queryKey(id: number, callback: AsyncCallback&lt;string&gt;): void
3607
3608根据联系人的id查询联系人的key,使用callback方式作为异步方法。
3609
3610> **说明**
3611>
3612> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryKey](#contactquerykey10)替代。
3613
3614**需要权限**:ohos.permission.READ_CONTACTS
3615
3616**系统能力**:SystemCapability.Applications.ContactsData
3617
3618**参数:**
3619
3620| 参数名   | 类型                        | 必填 | 说明                                                         |
3621| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
3622| id       | number                      | 是   | 联系人对象的id属性。                                         |
3623| callback | AsyncCallback&lt;string&gt; | 是   | 回调函数。成功返回查询到的联系人对应的key;失败返回失败的错误码。 |
3624
3625**示例:**
3626
3627  ```js
3628  import { BusinessError } from '@kit.BasicServicesKit';
3629  contact.queryKey(/*id*/1, (err: BusinessError, data) => {
3630      if (err) {
3631          console.error(`Failed to query Key. Code: ${err.code}, message: ${err.message}`);
3632          return;
3633      }
3634      console.info(`Succeeded in querying Key. data->${JSON.stringify(data)}`);
3635  });
3636  ```
3637
3638## contact.queryKey<sup>10+</sup>
3639
3640queryKey(context: Context,  id: number, holder: Holder, callback: AsyncCallback&lt;string&gt;): void
3641
3642根据联系人的id和holder查询联系人的key,使用callback方式作为异步方法。
3643
3644**需要权限**:ohos.permission.READ_CONTACTS
3645
3646**系统能力**:SystemCapability.Applications.ContactsData
3647
3648**参数:**
3649
3650| 参数名   | 类型                        | 必填 | 说明                                                         |
3651| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
3652| context  | Context                     | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
3653| id       | number                      | 是   | 联系人对象的id属性。                                         |
3654| holder   | [Holder](#holder)           | 是   | 创建联系人的应用信息。                                       |
3655| callback | AsyncCallback&lt;string&gt; | 是   | 回调函数。成功返回查询到的联系人对应的key;失败返回失败的错误码。 |
3656
3657**错误码:**
3658
3659以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
3660
3661| 错误码ID | 错误信息           |
3662| -------- | ------------------ |
3663| 201      | Permission denied. |
3664| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Parameter verification failed.  |
3665
3666**示例:**
3667
3668  ```js
3669  import { BusinessError } from '@kit.BasicServicesKit';
3670  // 获取context。
3671  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
3672  contact.queryKey(context, /*id*/1, {
3673      holderId: 1,
3674      bundleName: "",
3675      displayName: ""
3676  }, (err: BusinessError, data) => {
3677      if (err) {
3678          console.error(`Failed to query Key. Code: ${err.code}, message: ${err.message}`);
3679          return;
3680      }
3681      console.info(`Succeeded in querying Key. data->${JSON.stringify(data)}`);
3682  });
3683  ```
3684
3685## contact.queryKey<sup>(deprecated)7+</sup>
3686
3687queryKey(id: number, holder: Holder, callback: AsyncCallback&lt;string&gt;): void
3688
3689根据联系人的id和holder查询联系人的key,使用callback方式作为异步方法。
3690
3691> **说明**
3692>
3693> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryKey](#contactquerykey10-1)替代。
3694
3695**需要权限**:ohos.permission.READ_CONTACTS
3696
3697**系统能力**:SystemCapability.Applications.ContactsData
3698
3699**参数:**
3700
3701| 参数名   | 类型                        | 必填 | 说明                                                         |
3702| -------- | --------------------------- | ---- | ------------------------------------------------------------ |
3703| id       | number                      | 是   | 联系人对象的id属性。                                         |
3704| holder   | [Holder](#holder)           | 是   | 创建联系人的应用信息。                                       |
3705| callback | AsyncCallback&lt;string&gt; | 是   | 回调函数。成功返回查询到的联系人对应的key;失败返回失败的错误码。 |
3706
3707**示例:**
3708
3709  ```js
3710  import { BusinessError } from '@kit.BasicServicesKit';
3711  contact.queryKey(/*id*/1, {
3712      holderId: 1,
3713      bundleName: "",
3714      displayName: ""
3715  }, (err: BusinessError, data) => {
3716      if (err) {
3717          console.error(`Failed to query Key. Code: ${err.code}, message: ${err.message}`);
3718          return;
3719      }
3720      console.info(`Succeeded in querying Key. data->${JSON.stringify(data)}`);
3721  });
3722  ```
3723
3724## contact.queryKey<sup>10+</sup>
3725
3726queryKey(context: Context,  id: number, holder?: Holder): Promise&lt;string&gt;
3727
3728根据联系人的id和holder查询联系人的key,使用Promise方式作为异步方法。
3729
3730**需要权限**:ohos.permission.READ_CONTACTS
3731
3732**系统能力**:SystemCapability.Applications.ContactsData
3733
3734**参数:**
3735
3736| 参数名  | 类型              | 必填 | 说明                                                         |
3737| ------- | ----------------- | ---- | ------------------------------------------------------------ |
3738| context | Context           | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。 |
3739| id      | number            | 是   | 联系人对象的id属性。                                         |
3740| holder  | [Holder](#holder) | 否   | 创建联系人的应用信息,不传默认不使用该条件过滤联系人。                                       |
3741
3742**返回值:**
3743
3744| 类型                  | 说明                                       |
3745| --------------------- | ------------------------------------------ |
3746| Promise&lt;string&gt; | Promise对象。返回查询到的联系人对应的key。 |
3747
3748**错误码:**
3749
3750以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)。
3751
3752| 错误码ID | 错误信息           |
3753| -------- | ------------------ |
3754| 201      | Permission denied. |
3755| 401      | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified. 2.Parameter verification failed.  |
3756
3757**示例:**
3758
3759  ```js
3760  import { BusinessError } from '@kit.BasicServicesKit';
3761  // 获取context。
3762  let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
3763  let promise = contact.queryKey(context, /*id*/1, {
3764      holderId: 1,
3765      bundleName: "",
3766      displayName: ""
3767  });
3768  promise.then((data) => {
3769      console.info(`Succeeded in querying Key. data->${JSON.stringify(data)}`);
3770  }).catch((err: BusinessError) => {
3771      console.error(`Failed to query Key. Code: ${err.code}, message: ${err.message}`);
3772  });
3773  ```
3774
3775## contact.queryKey<sup>(deprecated)7+</sup>
3776
3777queryKey(id: number, holder?: Holder): Promise&lt;string&gt;
3778
3779根据联系人的id和holder查询联系人的key,使用Promise方式作为异步方法。
3780
3781> **说明**
3782>
3783> 从API version 7 开始支持,从API version 10 开始废弃,建议使用[queryKey](#contactquerykey10-2)替代。
3784
3785**需要权限**:ohos.permission.READ_CONTACTS
3786
3787**系统能力**:SystemCapability.Applications.ContactsData
3788
3789**参数:**
3790
3791| 参数名 | 类型              | 必填 | 说明                   |
3792| ------ | ----------------- | ---- | ---------------------- |
3793| id     | number            | 是   | 联系人对象的id属性。   |
3794| holder | [Holder](#holder) | 否   | 创建联系人的应用信息,不传默认不使用该条件过滤联系人。 |
3795
3796**返回值:**
3797
3798| 类型                  | 说明                                       |
3799| --------------------- | ------------------------------------------ |
3800| Promise&lt;string&gt; | Promise对象。返回查询到的联系人对应的key。 |
3801
3802**示例:**
3803
3804  ```js
3805  import { BusinessError } from '@kit.BasicServicesKit';
3806  let promise = contact.queryKey(/*id*/1, {
3807      holderId: 1,
3808      bundleName: "",
3809      displayName: ""
3810  });
3811  promise.then((data) => {
3812      console.info(`Succeeded in querying Key. data->${JSON.stringify(data)}`);
3813  }).catch((err: BusinessError) => {
3814      console.error(`Failed to query Key. Code: ${err.code}, message: ${err.message}`);
3815  });
3816  ```
3817
3818## contact.addContactViaUI<sup>15+</sup>
3819
3820addContactViaUI(context: Context, contact: Contact): Promise&lt;number&gt;
3821
3822调用新建联系人接口,打开新建联系人UI界面,新建完成。使用Promise异步回调。
3823
3824**原子化服务API**: 从API version 15 开始,该接口支持在原子化服务中使用。
3825
3826**系统能力**:SystemCapability.Applications.Contacts
3827
3828**参数:**
3829
3830| 参数名 | 类型              | 必填 | 说明                   |
3831| ------ | ----------------- | ---- | ---------------------- |
3832| context | Context          | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。   |
3833| contact | [Contact](#contact) | 是   | 联系人信息。 |
3834
3835**返回值:**
3836
3837| 类型                  | 说明                                       |
3838| --------------------- | ------------------------------------------ |
3839| Promise&lt;number&gt; | Promise对象。返回添加的联系人id。 |
3840
3841**错误码:**
3842
3843以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Contacts错误码](../apis-contacts-kit/errorcode-contacts.md)。
3844
3845| 错误码ID                 | 错误信息                                       |
3846| --------------------- | ------------------------------------------ |
3847| 401       | Parameter error. Possible causes: Mandatory parameters are left unspecified. |
3848| 801       | The specified SystemCapability name was not found. |
3849| 16700001       | General error. |
3850| 16700102       | Failed to set value to contacts data. |
3851| 16700103       | User cancel. |
3852
3853**示例:**
3854
3855```js
3856import { BusinessError } from '@kit.BasicServicesKit';
3857// 获取context。
3858let contactInfo: contact.Contact = {
3859    name: {
3860        fullName: 'xxx'
3861    },
3862    phoneNumbers: [{
3863        phoneNumber: '138xxxxxx'
3864    }]
3865}
3866let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
3867let promise = contact.addContactViaUI(context, contactInfo);
3868```
3869
3870## contact.saveToExistingContactViaUI<sup>15+</sup>
3871
3872saveToExistingContactViaUI(context: Context, contact: Contact): Promise&lt;number&gt;
3873
3874调用保存至已有联系人接口,选择联系人UI界面并完成编辑。使用Promise异步回调。
3875
3876**原子化服务API**: 从API version 15 开始,该接口支持在原子化服务中使用。
3877
3878**系统能力**:SystemCapability.Applications.Contacts
3879
3880**参数:**
3881
3882| 参数名 | 类型              | 必填 | 说明                   |
3883| ------ | ----------------- | ---- | ---------------------- |
3884| context | Context          | 是   | 应用上下文Context,Stage模型的应用Context定义见[Context](../apis-ability-kit/js-apis-inner-application-context.md)。   |
3885| contact | [Contact](#contact) | 是   | 联系人信息。 |
3886
3887**返回值:**
3888
3889| 类型                  | 说明                                       |
3890| --------------------- | ------------------------------------------ |
3891| Promise&lt;number&gt; | Promise对象。返回添加的联系人id。 |
3892
3893**错误码:**
3894
3895以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[Contacts错误码](../apis-contacts-kit/errorcode-contacts.md)。
3896
3897| 错误码ID                 | 错误信息                                       |
3898| --------------------- | ------------------------------------------ |
3899| 401       | Parameter error. Possible causes: Mandatory parameters are left unspecified. |
3900| 801       | The specified SystemCapability name was not found. |
3901| 16700001       | General error. |
3902| 16700101       | Failed to get value to contacts data. |
3903| 16700102       | Failed to set value to contacts data. |
3904| 16700103       | User cancel. |
3905
3906**示例:**
3907
3908```js
3909import { BusinessError } from '@kit.BasicServicesKit';
3910// 获取context。
3911let contactInfo: contact.Contact = {
3912    id: 1,
3913    name: {
3914        fullName: 'xxx'
3915    },
3916    phoneNumbers: [{
3917        phoneNumber: '138xxxxxx'
3918    }]
3919}
3920let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
3921let promise = contact.saveToExistingContactViaUI(context, contactInfo);
3922```
3923
3924## ContactSelectionOptions<sup>10+</sup>
3925
3926选择联系人条件。
3927
3928**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
3929
3930**系统能力**:SystemCapability.Applications.Contacts
3931
3932|                名称               |                  类型                 | 只读  | 可选  |        说明      |
3933| --------------------------------- | ------------------------------------- | ---- | ---- | ---------------- |
3934| isMultiSelect<sup>10+</sup>         | boolean | 否   | 是   | 是否为多选。默认值为false。**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。     |
3935| maxSelectable<sup>15+</sup>         | number | 否   | 是   | 联系人选择数量上限。默认值为10000。**原子化服务API**:从API version 15 开始,该接口支持在原子化服务中使用。     |
3936| isDisplayedByName<sup>15+</sup>         | boolean | 否   | 是   | 是否按联系人姓名维度展示。默认值为false。**原子化服务API**:从API version 15 开始,该接口支持在原子化服务中使用。     |
3937| filter<sup>15+</sup>         | [ContactSelectionFilter](#contactselectionfilter15) | 否   | 是   | 联系人查询过滤器。**原子化服务API**:从API version 15 开始,该接口支持在原子化服务中使用。     |
3938
3939## ContactSelectionFilter<sup>15+</sup>
3940
3941联系人查询过滤器。
3942
3943**原子化服务API**:从API version 15 开始,该接口支持在原子化服务中使用。
3944
3945**系统能力**:SystemCapability.Applications.Contacts
3946
3947|                名称               |                  类型                 |  只读  | 可选    |        说明      |
3948| --------------------------------- | ------------------------------------- | ---- | ---- | ---------------- |
3949| filterClause        | [FilterClause](#filterclause15) |  否  |  否   |  过滤条件。     |
3950| filterType        | [FilterType](#filtertype15) |  否  |  否    | 过滤类型。     |
3951
3952## FilterType<sup>15+</sup>
3953
3954枚举,联系人过滤类型。
3955
3956**原子化服务API**:从API version 15 开始,该接口支持在原子化服务中使用。
3957
3958**系统能力**:SystemCapability.Applications.Contacts
3959
3960| 名称                  | 类型 | 值 | 说明                               |
3961| --------------------- | ---- | ---- | ---------------------------------- |
3962| SHOW_FILTER    | number  | 0 | 仅展示符合过滤条件的联系人。 |
3963| DEFAULT_SELECT            | number  | 1 | 默认勾选符合过滤条件的联系人。                 |
3964| SHOW_FILTER_AND_DEFAULT_SELECT | number  | 2 | 默认勾选仅展示符合过滤条件的联系人。                     |
3965
3966## FilterClause<sup>15+</sup>
3967
3968联系人过滤条件。
3969
3970**原子化服务API**:从API version 15 开始,该接口支持在原子化服务中使用。
3971
3972**系统能力**:SystemCapability.Applications.Contacts
3973
3974|                名称               |                  类型                 |   只读  | 可选     |        说明      |
3975| --------------------------------- | ------------------------------------- | ---- | ---- | ---------------- |
3976| id         | Array\<[FilterOptions](#filteroptions15)> | 否   | 是   | 联系人id。     |
3977| name         | Array\<[FilterOptions](#filteroptions15)>  | 否   | 是   | 联系人姓名。     |
3978| dataItem         | [DataFilter](#datafilter15) | 否   | 是   | 联系人数据过滤项。     |
3979| focusModeList        | Array\<[FilterOptions](#filteroptions15)>  | 否   | 是   | 专注模式。     |
3980
3981## FilterOptions<sup>15+</sup>
3982
3983联系人过滤参数。
3984
3985**原子化服务API**:从API version 15 开始,该接口支持在原子化服务中使用。
3986
3987**系统能力**:SystemCapability.Applications.Contacts
3988
3989|                名称               |                  类型                 |  只读  | 可选    |        说明      |
3990| --------------------------------- | ------------------------------------- | ---- | ---- | ---------------- |
3991| filterCondition         | [FilterCondition](#filtercondition15) | 否    |   否   | 过滤条件。     |
3992| value        | string \| ValueType[] |  否    |   是   | 过滤值,默认为undefined。     |
3993
3994## FilterCondition<sup>15+</sup>
3995
3996枚举,过滤条件。
3997
3998**原子化服务API**:从API version 15 开始,该接口支持在原子化服务中使用。
3999
4000**系统能力**:SystemCapability.Applications.Contacts
4001
4002| 名称                  | 类型 | 值 | 说明                               |
4003| --------------------- | ---- | ---- | ---------------------------------- |
4004| IS_NOT_NULL    | number  | 0 | 对应字段不为空。 |
4005| EQUAL_TO            | number  | 1 | 对应字段等于某值。                 |
4006| NOT_EQUAL_TO | number  | 2 | 对应字段不等于某值。                     |
4007| IN | number  | 3 | 对应字段值在某数组中。                     |
4008| NOT_IN | number  | 4 | 对应字段值不在某数组中。                     |
4009| CONTAINS | number  | 5 | 对应字段值包含某值。                     |
4010
4011## DataFilter<sup>15+</sup>
4012
4013联系人数据过滤项。
4014
4015**原子化服务API**:从API version 15 开始,该接口支持在原子化服务中使用。
4016
4017**系统能力**:SystemCapability.Applications.Contacts
4018
4019|                名称               |                  类型                 |  只读  | 可选   |        说明      |
4020| --------------------------------- | ------------------------------------- | ---- | ---- | ---------------- |
4021| field         | [DataField](#datafield15) | 否  | 否  | 联系人数据字段。     |
4022| options         | Array\<[FilterOptions](#filteroptions15)> | 否  | 否  | 过滤参数。     |
4023
4024## DataField<sup>15+</sup>
4025
4026枚举,联系人数据字段。
4027
4028**原子化服务API**:从API version 15 开始,该接口支持在原子化服务中使用。
4029
4030**系统能力**:SystemCapability.Applications.Contacts
4031
4032| 名称                  | 类型 | 值 | 说明                               |
4033| --------------------- | ---- | --- | ---------------------------------- |
4034| EMAIL    | number | 0 | 联系人邮箱。 |
4035| PHONE            | number | 1 | 联系人电话。                 |
4036| ORGANIZATION | number | 2 | 联系人单位。                     |
4037
4038## Contact
4039
4040联系人对象类。
4041
4042**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
4043
4044**系统能力**:SystemCapability.Applications.ContactsData
4045
4046### 常量
4047
4048| 名称               | 类型   | 值   | 说明             |
4049| ------------------ | ---- | ---- | ---------------- |
4050| INVALID_CONTACT_ID | number   | -1   | 默认联系人的id。 |
4051
4052### 属性
4053
4054|       名称        |                   类型                  | 只读 | 可选 | 说明                                   |
4055| ----------------- | --------------------------------------- | ---- | ---- | -------------------------------------- |
4056| id                | number                                  | 是   | 是   | 联系人的id。                           |
4057| key               | string                                  | 是   | 是   | 联系人的key。                          |
4058| contactAttributes | [ContactAttributes](#contactattributes) | 否   | 是   | 联系人的属性列表。                     |
4059| emails            | [Email](#email)[]                       | 否   | 是   | 联系人的邮箱地址列表。                 |
4060| events            | [Event](#event)[]                       | 否   | 是   | 联系人的生日、周年纪念等重要日期列表。 |
4061| groups            | [Group](#group)[]                       | 否   | 是   | 联系人的群组列表。                     |
4062| imAddresses       | [ImAddress](#imaddress)[]               | 否   | 是   | 联系人的即时消息地址列表。             |
4063| phoneNumbers      | [PhoneNumber](#phonenumber)[]           | 否   | 是   | 联系人的电话号码列表。                 |
4064| portrait          | [Portrait](#portrait)                   | 否   | 是   | 联系人的头像。                         |
4065| postalAddresses   | [PostalAddress](#postaladdress)[]       | 否   | 是   | 联系人的邮政地址列表。                 |
4066| relations         | [Relation](#relation)[]                 | 否   | 是   | 联系人的关系列表。                     |
4067| sipAddresses      | [SipAddress](#sipaddress)[]             | 否   | 是   | 联系人的会话发起协议(SIP)地址列表。  |
4068| websites          | [Website](#website)[]                   | 否   | 是   | 联系人的网站列表。                     |
4069| name              | [Name](#name)                           | 否   | 是   | 联系人的姓名。                         |
4070| nickName          | [NickName](#nickname)                   | 否   | 是   | 联系人的昵称。                         |
4071| note              | [Note](#note)                           | 否   | 是   | 联系人的备注。                         |
4072| organization      | [Organization](#organization)           | 否   | 是   | 联系人的组织信息。                     |
4073
4074**对象创建示例:**
4075
4076使用JSON格式创建联系人数据。
4077
4078```js
4079let myContact: contact.Contact = {
4080    phoneNumbers: [{
4081        phoneNumber: "138xxxxxxxx"
4082    }],
4083    name: {
4084        fullName: "fullName",
4085        namePrefix: "namePrefix"
4086    },
4087    nickName: {
4088        nickName: "nickName"
4089    }
4090};
4091```
4092
4093## ContactAttributes
4094
4095联系人属性列表,一般作为入参用来标识希望查询的联系人属性。
4096当传入为null时,默认查询全部属性。
4097
4098**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
4099
4100**系统能力**:SystemCapability.Applications.ContactsData
4101
4102| 名称       |            类型           | 只读 | 可选 | 说明             |
4103| ---------- | ------------------------- | ---- | ---- | ---------------- |
4104| attributes | [Attribute](#attribute)[] | 否   | 否   | 联系人属性列表。 |
4105
4106**对象创建示例:**
4107
4108使用JSON格式创建数据。
4109
4110```js
4111let contactAttributes: contact.ContactAttributes = {
4112    attributes: [
4113        contact.Attribute.ATTR_EMAIL,
4114        contact.Attribute.ATTR_NAME,
4115        contact.Attribute.ATTR_PHONE
4116    ]
4117};
4118```
4119
4120## Attribute
4121
4122枚举,联系人属性列表。
4123
4124**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
4125
4126**系统能力**:SystemCapability.Applications.ContactsData
4127
4128| 名称                  | 说明                               |
4129| --------------------- | ---------------------------------- |
4130| ATTR_CONTACT_EVENT    | 联系人的生日、周年纪念等重要日期。 |
4131| ATTR_EMAIL            | 联系人的邮箱地址。                 |
4132| ATTR_GROUP_MEMBERSHIP | 联系人的群组。                     |
4133| ATTR_IM               | 联系人的即时消息地址。             |
4134| ATTR_NAME             | 联系人的姓名。                     |
4135| ATTR_NICKNAME         | 联系人的昵称。                     |
4136| ATTR_NOTE             | 联系人的备注。                     |
4137| ATTR_ORGANIZATION     | 联系人的组织信息。                 |
4138| ATTR_PHONE            | 联系人的电话号码。                 |
4139| ATTR_PORTRAIT         | 联系人的头像。                     |
4140| ATTR_POSTAL_ADDRESS   | 联系人的邮政地址。                 |
4141| ATTR_RELATION         | 联系人的关系。                     |
4142| ATTR_SIP_ADDRESS      | 联系人的会话发起协议(SIP)地址。  |
4143| ATTR_WEBSITE          | 联系人的网站。                     |
4144
4145**对象创建示例:**
4146
4147使用JSON格式创建数据。
4148
4149```js
4150let attributes = [contact.Attribute.ATTR_EMAIL, contact.Attribute.ATTR_NAME, contact.Attribute.ATTR_PHONE];
4151```
4152
4153## Email
4154
4155联系人的邮箱。
4156
4157**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
4158
4159**系统能力**:SystemCapability.Applications.ContactsData
4160
4161### 常量
4162
4163| 名称             | 类型   | 值   | 说明             |
4164| ---------------- | ---- | ---- | ---------------- |
4165| CUSTOM_LABEL     | number    |  0    |自定义邮箱类型。 |
4166| EMAIL_HOME       | number    | 1    | 家庭邮箱类型。   |
4167| EMAIL_WORK       | number    | 2    | 工作邮箱类型。   |
4168| EMAIL_OTHER      | number    | 3    | 其它邮箱类型。   |
4169| INVALID_LABEL_ID | number    | -1   | 无效邮箱类型。   |
4170
4171### 属性
4172
4173| 名称        |   类型   | 只读 | 可选 | 说明             |
4174| ----------- | -------- | ---- | ---- | ---------------- |
4175| email       | string   | 否   | 否   | 邮箱地址。       |
4176| labelName   | string   | 否   | 是   | 邮箱的类型名称。 |
4177| displayName | string   | 否   | 是   | 邮箱的显示名称。 |
4178| labelId     | number   | 否   | 是   | 邮箱的类型。     |
4179
4180**对象创建示例:**
4181
4182  使用JSON格式创建数据。
4183
4184```js
4185let email: contact.Email = {
4186    email: "xxx@email.com",
4187    displayName: "displayName"
4188}
4189```
4190
4191
4192  或使用new一个Email对象的方式创建数据。
4193
4194```js
4195let email = new contact.Email();
4196email.email = "xxx@email.com";
4197```
4198
4199## Holder
4200
4201创建联系人的应用信息类。
4202
4203**系统能力**:SystemCapability.Applications.ContactsData
4204
4205| 名称        | 类型   | 只读 | 可选 | 说明         |
4206| ----------- | ------ | ---- | ---- | ------------ |
4207| bundleName  | string | 是   | 否   | Bundle名称,值为com.ohos.contacts。 |
4208| displayName | string | 是   | 是   | 应用名称。   |
4209| holderId    | number | 否   | 是   | 应用Id。     |
4210
4211**对象创建示例:**
4212
4213  使用JSON格式创建数据。
4214
4215```js
4216let holder: contact.Holder = {
4217  bundleName: "com.ohos.contacts",
4218  displayName: "displayName",
4219  holderId: 1
4220};
4221```
4222
4223## Event
4224
4225联系人事件类。
4226
4227**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
4228
4229**系统能力**:SystemCapability.Applications.ContactsData
4230
4231### 常量
4232
4233| 名称              |   类型   |  值   | 说明               |
4234| ----------------- | ---- | ---- | ------------------ |
4235| CUSTOM_LABEL      | number   | 0    | 自定义事件类型。   |
4236| EVENT_ANNIVERSARY | number   | 1    | 周年纪念事件类型。 |
4237| EVENT_OTHER       | number   | 2    | 其它事件类型。     |
4238| EVENT_BIRTHDAY    | number   | 3    | 生日事件类型。     |
4239| INVALID_LABEL_ID  | number   | -1   | 无效事件类型。     |
4240
4241### 属性
4242
4243|    名称   |   类型   | 只读 | 可选 | 说明           |
4244| --------- | -------- | ---- | ---- | -------------- |
4245| eventDate | string   | 否   | 否   | 事件的日期。   |
4246| labelName | string   | 否   | 是   | 事件类型名称。 |
4247| labelId   | number   | 否   | 是   | 事件类型。     |
4248
4249**对象创建示例:**
4250
4251  使用JSON格式创建数据。
4252
4253```js
4254let event: contact.Event = {
4255    eventDate: "xxxxxx"
4256};
4257```
4258
4259  或使用new一个Event对象的方式创建数据。
4260
4261```js
4262let event = new contact.Event();
4263event.eventDate = "xxxxxx";
4264```
4265
4266## Group
4267
4268联系人的群组类。
4269
4270**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
4271
4272**系统能力**:SystemCapability.Applications.ContactsData
4273
4274| 名称    |   类型   | 只读 | 可选 | 说明               |
4275| ------- | -------- | ---- | ---- | ------------------ |
4276| groupId | number   | 否   | 是   | 联系人群组的Id。   |
4277| title   | string   | 否   | 否   | 联系人群组的名称。 |
4278
4279**对象创建示例:**
4280
4281  使用JSON格式创建数据。
4282
4283```js
4284let group: contact.Group = {
4285    groupId: 1,
4286    title: "title"
4287};
4288```
4289
4290## ImAddress
4291
4292联系人的即时消息地址。
4293
4294**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
4295
4296**系统能力**:SystemCapability.Applications.ContactsData
4297
4298### 常量
4299
4300| 名称             |   类型   | 值   | 说明                 |
4301| ---------------- | ---- | ---- | -------------------- |
4302| CUSTOM_LABEL     | number   | -1   | 自定义即时消息类型。 |
4303| IM_AIM           | number   | 0    | AIM即时消息类型。    |
4304| IM_MSN           | number   | 1    | MSN即时消息类型。    |
4305| IM_YAHOO         | number   | 2    | YAHOO即时消息类型。  |
4306| IM_SKYPE         | number   | 3    | SKYPE即时消息类型。  |
4307| IM_QQ            | number   | 4    | QQ即时消息类型。     |
4308| IM_ICQ           | number   | 6    | ICQ即时消息类型。    |
4309| IM_JABBER        | number   | 7    | JABBER即时消息类型。 |
4310| INVALID_LABEL_ID | number   | -2   | 无效的即时消息类型。 |
4311
4312### 属性
4313
4314| 名称      |   类型   | 只读 | 可选 | 说明               |
4315| --------- | -------- | ---- | ---- | ------------------ |
4316| imAddress | string   | 否   | 否   | 即时消息地址。     |
4317| labelName | string   | 否   | 是   | 即时消息类型名称。 |
4318| labelId   | number   | 否   | 是   | 即时消息类型。     |
4319
4320**对象创建示例:**
4321
4322  使用JSON格式创建数据。
4323
4324```js
4325let imAddress: contact.ImAddress = {
4326    imAddress: "imAddress",
4327    labelName: "labelName"
4328};
4329```
4330
4331
4332  或使用new一个ImAddress对象的方式创建数据。
4333
4334```js
4335let imAddress = new contact.ImAddress();
4336imAddress.imAddress = "imAddress";
4337```
4338
4339## Name
4340
4341联系人的名字类。
4342
4343**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
4344
4345**系统能力**:SystemCapability.Applications.ContactsData
4346
4347| 名称               |   类型   | 只读 | 可选 | 说明                        |
4348| ------------------ | -------- | ---- | ---- | --------------------------- |
4349| familyName         | string   | 否   | 是   | 联系人的家庭姓名。          |
4350| familyNamePhonetic | string   | 否   | 是   | 联系人的家庭姓名拼音。      |
4351| fullName           | string   | 否   | 否   | 联系人的全名。              |
4352| givenName          | string   | 否   | 是   | 联系人的名称(firstName)。 |
4353| givenNamePhonetic  | string   | 否   | 是   | 联系人的名称拼音。          |
4354| middleName         | string   | 否   | 是   | 联系人的中间名。            |
4355| middleNamePhonetic | string   | 否   | 是   | 联系人的中间名拼音。        |
4356| namePrefix         | string   | 否   | 是   | 联系人的姓名前缀。          |
4357| nameSuffix         | string   | 否   | 是   | 联系人的姓名后缀。          |
4358
4359**对象创建示例:**
4360
4361  使用JSON格式创建数据。
4362
4363```js
4364let name: contact.Name = {
4365    familyName: "familyName",
4366    fullName: "fullName"
4367};
4368```
4369
4370## NickName
4371
4372联系人的昵称类。
4373
4374**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
4375
4376**系统能力**:SystemCapability.Applications.ContactsData
4377
4378| 名称     |   类型   | 只读 | 可选 | 说明           |
4379| -------- | -------- | ---- | ---- | -------------- |
4380| nickName | string   | 否   | 是   | 联系人的昵称。 |
4381
4382**对象创建示例:**
4383
4384  使用JSON格式创建数据。
4385
4386```js
4387let nickName: contact.NickName = {
4388    nickName: "nickName"
4389};
4390```
4391
4392## Note
4393
4394联系人的备注类。
4395
4396**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
4397
4398**系统能力**:SystemCapability.Applications.ContactsData
4399
4400| 名称        |   类型   | 只读 | 可选 | 说明               |
4401| ----------- | -------- | ---- | ---- | ------------------ |
4402| noteContent | string   | 否   | 否   | 联系人的备注内容。 |
4403
4404**对象创建示例:**
4405
4406  使用JSON格式创建数据。
4407
4408```js
4409let note: contact.Note = {
4410    noteContent: "noteContent"
4411};
4412```
4413
4414## Organization
4415
4416联系人的组织类。
4417
4418**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
4419
4420**系统能力**:SystemCapability.Applications.ContactsData
4421
4422| 名称  |   类型   | 只读 | 可选 | 说明       |
4423| ----- | -------- | ---- | ---- | ---------- |
4424| name  | string   | 否   | 否   | 单位名称。 |
4425| title | string   | 否   | 是   | 职位名称。 |
4426
4427**对象创建示例:**
4428
4429  使用JSON格式创建数据。
4430
4431```js
4432let organization: contact.Organization = {
4433    name: "name",
4434    title: "title"
4435};
4436```
4437
4438## PhoneNumber
4439
4440联系人电话号码类。
4441
4442**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
4443
4444**系统能力**:SystemCapability.Applications.ContactsData
4445
4446### 常量
4447
4448| 名称             |  类型  | 值   | 说明                                             |
4449| ---------------- | ---- | ---- | ------------------------------------------------ |
4450| CUSTOM_LABEL     |  number  | 0    | 自定义电话类型。                                 |
4451| NUM_HOME         |  number  | 1    | 家庭电话类型。                                   |
4452| NUM_MOBILE       |  number  | 2    | 移动电话类型。                                   |
4453| NUM_WORK         |  number  | 3    | 工作电话类型。                                   |
4454| NUM_FAX_WORK     |  number  | 4    | 工作传真电话类型。                               |
4455| NUM_FAX_HOME     |  number  | 5    | 家庭传真电话类型。                               |
4456| NUM_PAGER        |  number  | 6    | 寻呼机电话类型。                                 |
4457| NUM_OTHER        |  number  | 7    | 其它电话类型。                                   |
4458| NUM_CALLBACK     |  number  | 8    | 回呼电话类型。                                   |
4459| NUM_CAR          |  number  | 9    | 车机电话类型。                                   |
4460| NUM_COMPANY_MAIN |  number  | 10   | 公司电话类型。                                   |
4461| NUM_ISDN         |  number  | 11   | 综合业务数字网(ISDN)电话类型。                 |
4462| NUM_MAIN         |  number  | 12   | 主电话类型。                                     |
4463| NUM_OTHER_FAX    |  number  | 13   | 其它传真类型。                                   |
4464| NUM_RADIO        |  number  | 14   | 无线电话类型。                                   |
4465| NUM_TELEX        |  number  | 15   | 电传电话类型。                                   |
4466| NUM_TTY_TDD      |  number  | 16   | 电传打字机(TTY)或测试驱动开发(TDD)电话类型。 |
4467| NUM_WORK_MOBILE  |  number  | 17   | 工作移动电话类型。                               |
4468| NUM_WORK_PAGER   |  number  | 18   | 工作寻呼机电话类型。                             |
4469| NUM_ASSISTANT    |  number  | 19   | 助理电话类型。                                   |
4470| NUM_MMS          |  number  | 20   | 彩信电话类型。                                   |
4471| INVALID_LABEL_ID |  number  | -1   | 无效电话类型。                                   |
4472
4473### 属性
4474
4475| 名称        |   类型   | 只读 | 可选 | 说明               |
4476| ----------- | -------- | ---- | ---- | ------------------ |
4477| labelName   | string   | 否   | 是   | 电话号码类型名称。 |
4478| phoneNumber | string   | 否   | 否   | 电话号码。         |
4479| labelId     | number   | 否   | 是   | 电话号码类型。     |
4480
4481**对象创建示例:**
4482
4483  使用JSON格式创建数据。
4484
4485```js
4486let phoneNumber: contact.PhoneNumber = {
4487    phoneNumber: "138xxxxxxxx",
4488    labelId: contact.PhoneNumber.NUM_HOME
4489};
4490```
4491
4492  或使用new一个PhoneNumber对象的方式创建数据。
4493
4494```js
4495let phoneNumber = new contact.PhoneNumber();
4496phoneNumber.phoneNumber = "138xxxxxxxx";
4497```
4498
4499## Portrait
4500
4501联系人的头像类。
4502
4503**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
4504
4505**系统能力**:SystemCapability.Applications.ContactsData
4506
4507| 名称 |   类型   | 只读 | 可选 | 说明           |
4508| ---- | -------- | ---- | ---- | -------------- |
4509| uri  | string   | 否   | 否   | 联系人的头像。 |
4510
4511**对象创建示例:**
4512
4513  使用JSON格式创建数据。
4514
4515```js
4516let portrait: contact.Portrait = {
4517    uri: "uri"
4518};
4519```
4520
4521## PostalAddress
4522
4523联系人的邮政地址类。
4524
4525**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
4526
4527**系统能力**:SystemCapability.Applications.ContactsData
4528
4529### 常量
4530
4531| 名称             |   类型   | 值   | 说明                 |
4532| ---------------- | ---- | ---- | -------------------- |
4533| CUSTOM_LABEL     | number   | 0    | 自定义邮政地址类型。 |
4534| ADDR_HOME        | number   | 1    | 家庭地址类型。       |
4535| ADDR_WORK        | number   | 2    | 工作地址类型。       |
4536| ADDR_OTHER       | number   | 3    | 其它地址类型。       |
4537| INVALID_LABEL_ID | number   | -1   | 无效地址类型。       |
4538
4539### 属性
4540
4541| 名称          |   类型   | 只读 | 可选 | 说明                       |
4542| ------------- | -------- | ---- | ---- | -------------------------- |
4543| city          | string   | 否   | 是   | 联系人所在的城市。         |
4544| country       | string   | 否   | 是   | 联系人所在的国家。         |
4545| labelName     | string   | 否   | 是   | 邮政地址类型名称。         |
4546| neighborhood  | string   | 否   | 是   | 联系人的邻居。             |
4547| pobox         | string   | 否   | 是   | 联系人的邮箱。             |
4548| postalAddress | string   | 否   | 否   | 联系人的邮政地址。         |
4549| postcode      | string   | 否   | 是   | 联系人所在区域的邮政编码。 |
4550| region        | string   | 否   | 是   | 联系人所在的区域。         |
4551| street        | string   | 否   | 是   | 联系人所在的街道。         |
4552| labelId       | number   | 否   | 是   | 邮政地址类型。             |
4553
4554**对象创建示例:**
4555
4556  使用JSON格式创建数据。
4557
4558```js
4559let postalAddress: contact.PostalAddress = {
4560    city: "city",
4561    postalAddress: "postalAddress"
4562};
4563```
4564
4565  或使用new一个PostalAddress对象的方式创建数据。
4566
4567```js
4568let postalAddress = new contact.PostalAddress();
4569postalAddress.city = "city";
4570postalAddress.postalAddress = "postalAddress";
4571```
4572
4573## Relation
4574
4575联系人的关系类。
4576
4577**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
4578
4579**系统能力**:SystemCapability.Applications.ContactsData
4580
4581### 常量
4582
4583| 名称                      |  类型   | 值   | 说明               |
4584| ------------------------- | ---- | ---- | ------------------ |
4585| CUSTOM_LABEL              | number   | 0    | 自定义关系类型。   |
4586| RELATION_ASSISTANT        | number   | 1    | 助手关系类型。     |
4587| RELATION_BROTHER          | number   | 2    | 兄弟关系类型。     |
4588| RELATION_CHILD            | number   | 3    | 子女关系类型。     |
4589| RELATION_DOMESTIC_PARTNER | number   | 4    | 同居同伴关系类型。 |
4590| RELATION_FATHER           | number   | 5    | 父亲关系类型。     |
4591| RELATION_FRIEND           | number   | 6    | 朋友关系类型。     |
4592| RELATION_MANAGER          | number   | 7    | 管理者关系类型。   |
4593| RELATION_MOTHER           | number   | 8    | 母亲关系类型。     |
4594| RELATION_PARENT           | number   | 9    | 父母关系类型。     |
4595| RELATION_PARTNER          | number   | 10   | 合作伙伴关系类型。 |
4596| RELATION_REFERRED_BY      | number   | 11   | 推荐人关系类型。   |
4597| RELATION_RELATIVE         | number   | 12   | 亲属关系类型。     |
4598| RELATION_SISTER           | number   | 13   | 姐妹关系类型。     |
4599| RELATION_SPOUSE           | number   | 14   | 配偶关系类型。     |
4600| INVALID_LABEL_ID          | number   | -1   | 无效的关系类型。   |
4601
4602### 属性
4603
4604| 名称         |   类型   | 只读 | 可选 | 说明           |
4605| ------------ | -------- | ---- | ---- | -------------- |
4606| labelName    | string   | 否   | 是   | 关系类型名称。 |
4607| relationName | string   | 否   | 否   | 关系名称。     |
4608| labelId      | number   | 否   | 是   | 关系类型。     |
4609
4610**对象创建示例:**
4611
4612  使用JSON格式创建数据。
4613
4614```js
4615let relation: contact.Relation = {
4616    relationName: "relationName",
4617    labelId: contact.Relation.RELATION_ASSISTANT
4618};
4619```
4620
4621  或使用new一个Relation对象的方式创建数据。
4622
4623```js
4624let relation = new contact.Relation();
4625relation.relationName = "relationName";
4626relation.labelId = contact.Relation.RELATION_ASSISTANT;
4627```
4628
4629## SipAddress
4630
4631联系人的会话发起协议(SIP)地址类。
4632
4633**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
4634
4635**系统能力**:SystemCapability.Applications.ContactsData
4636
4637### 常量
4638
4639| 名称             |   类型   | 值   | 说明                                |
4640| ---------------- | ---- | ---- | ----------------------------------- |
4641| CUSTOM_LABEL     | number   | 0    | 自定义会话发起协议(SIP)地址类型。 |
4642| SIP_HOME         | number   | 1    | 家庭会话发起协议(SIP)地址类型。   |
4643| SIP_WORK         | number   | 2    | 工作会话发起协议(SIP)地址类型。   |
4644| SIP_OTHER        | number   | 3    | 其它会话发起协议(SIP)地址类型。   |
4645| INVALID_LABEL_ID | number   | -1   | 无效会话发起协议(SIP)地址类型。   |
4646
4647### 属性
4648
4649| 名称       |   类型   | 只读 | 可选 | 说明                              |
4650| ---------- | -------- | ---- | ---- | --------------------------------- |
4651| labelName  | string   | 否   | 是   | 会话发起协议(SIP)地址类型名称。 |
4652| sipAddress | string   | 否   | 否   | 会话发起协议(SIP)地址。         |
4653| labelId    | number   | 否   | 是   | 会话发起协议(SIP)地址类型。     |
4654
4655**对象创建示例:**
4656
4657  使用JSON格式创建数据。
4658
4659```js
4660let sipAddress: contact.SipAddress = {
4661    sipAddress: "sipAddress"
4662};
4663```
4664
4665  或使用new一个SipAddress对象的方式创建数据。
4666
4667```js
4668let sipAddress = new contact.SipAddress();
4669sipAddress.sipAddress = "sipAddress";
4670```
4671
4672## Website
4673
4674联系人的网站信息类。
4675
4676**原子化服务API**:从API version 11 开始,该接口支持在原子化服务中使用。
4677
4678**系统能力**:SystemCapability.Applications.ContactsData
4679
4680| 名称    |   类型   | 只读 | 可选 | 说明               |
4681| ------- | -------- | ---- | ---- | ------------------ |
4682| website | string   | 否   | 否   | 联系人的网站信息。 |
4683
4684**对象创建示例:**
4685
4686  使用JSON格式创建数据。
4687
4688```js
4689let website: contact.Website = {
4690    website: "website"
4691};
4692```
4693
4694