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