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