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