• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 联系人数据库子系统
2# applications_contactsdata
3
4-   [简介](#section1166054159366)
5-   [架构图](#section1619419895966)
6-   [目录](#section161941989596)
7-   [相关仓](#section1371113476307)
8
9## 简介<a name="section1166054159366"></a>
10
11联系人数据库应用是每一个用户管理联系人数据库的不可缺少的一个信息管理应用,
12它的内容对于用户管理者来说是至关重要的,所以联系人数据库应该能够为每一个
13用户的管理提供充足的信息和快捷查询手段,大大方便用户合理的管理联系人数据库信息。
14
15## 架构图<a name="section1619419895966"></a>
16
17![](figures/Image_architecture_zh.png)
18
19## 目录<a name="section161941989596"></a>
20
21```
22/foundation/contactsdataability/
23├── ability
24│   ├── account                        #账户管理
25│   ├── common                         #公共方法:log,utils等
26│   ├── datadisasterrecovery           #数据损坏恢复
27│   ├── merge                          #联系人合并
28│   └── sinicization                   #汉字转拼音相关
29├── contacts                            #NAPI
30├── dataBusiness
31│   ├── calllog                        #通话记录
32│   ├── contacts                       #联系人
33│   ├── quicksearch                    #快速检索
34│   └── voicemail                      #语音信箱
35├── test                               #测试目录
36├── BUILD.gn
37└── ohos.build
38```
39## 使用说明
40
41### 概述
42
43提供联系人数据和通话记录以及语音信箱增、删、改、查、等接口。
44接口参数主要有string类型的uri和对象类型的value、DataSharePredicates
45
46使用功能接口前,需要导入相关模块。
47
48```js
49import dataShare from '@ohos.data.dataShare';
50```
51### 通话记录
52
53#### dataShareHelper.insert(uri: string, value: ValuesBucket)
54
55- 接口说明
56
57  通话记录插入
58
59- insert参数描述
60
61  | 名称     | 读写属性 | 类型                   | 必填 | 描述                           |
62  | -------- | -------- | ---------------------- | ---- | ------------------------------ |
63  | uri      | 只读     | string                 | 是   | 具体操作的uri     |
64  | value    | 只读     | ValuesBucket           | 是   | 数据库字段key-value对象 |
65
66返回值为 通话记录id
67
68更新示例
69```js
70import dataShare from '@ohos.data.dataShare';
71var calllogData = "datashare:///com.ohos.calllogability";
72var calllogUri = "datashare:///com.ohos.calllogability/calls/calllog";
73var value = {"phone_number" : "xxxxx","display_name" : "xxx"};
74// 获取dataShareHelper
75let dataShareHelper = dataShare.createDataShareHelper(calllogData);
76// 调用insert方法
77dataShareHelper.insert(calllogUri, value).then((data) => {
78	console.info("calllogId = " + data);
79});
80```
81#### dataShareHelper.update(uri: string, condition: DataSharePredicates, value: ValuesBucket)
82
83- 接口说明
84
85  通话记录修改
86
87- update参数描述
88
89  | 名称         | 读写属性 | 类型                    | 必填 | 描述                           |
90  | --------     | -------- | ---------------------- | ---- | ------------------------------ |
91  | uri          | 只读     | string                 | 是   | 具体操作的uri          |
92  | condition    | 只读     | DataSharePredicates    | 是   | 更新条件               |
93  | value        | 只读     | ValuesBucket           | 是   | 数据库字段key-value对象 |
94
95返回值为 成功为0否则为-1
96
97修改示例
98```js
99import dataShare from '@ohos.data.dataShare';
100var calllogData = "datashare:///com.ohos.calllogability";
101var calllogUri = "datashare:///com.ohos.calllogability/calls/calllog";
102var value = {"phone_number" : "xxxxx","display_name" : "xxx"};
103// 获取dataShareHelper
104let dataShareHelper = dataShare.createDataShareHelper(calllogData);
105// 条件参数
106let condition = new dataShare.DataSharePredicates();
107condition.equalTo("id", "xxx");
108// 调用update方法
109dataShareHelper.update(calllogUri, value, condition).then((data) => {
110	console.info("resultCode = " + data);
111});
112```
113
114#### dataShareHelper.delete(uri: string, condition: DataSharePredicates)
115
116- 接口说明
117
118  通话记录删除
119
120- delete参数描述
121
122  | 名称         | 读写属性 | 类型                    | 必填 | 描述                           |
123  | --------     | -------- | ---------------------- | ---- | ------------------------------ |
124  | uri          | 只读     | string                 | 是   | 具体操作的uri          |
125  | condition    | 只读     | DataSharePredicates    | 是   | 删除条件              |
126
127返回值为 成功为0否则为-1
128
129删除示例
130```js
131import dataShare from '@ohos.data.dataShare';
132var calllogData = "datashare:///com.ohos.calllogability";
133var calllogUri = "datashare:///com.ohos.calllogability/calls/calllog";
134// 获取dataShareHelper
135let dataShareHelper = dataShare.createDataShareHelper(calllogData);
136// 条件参数
137let condition = new dataShare.DataSharePredicates();
138condition.equalTo("id", "xxx");
139// 调用delete方法
140dataShareHelper.delete(calllogUri, condition).then((data) => {
141	console.info("deleteCode = " + data);
142});
143```
144
145#### dataShareHelper.query(uri: string, condition: DataSharePredicates, resultColumns: array)
146
147- 接口说明
148
149  通话记录查询
150
151- 查询参数描述
152
153  | 名称             | 读写属性 | 类型                    | 必填  | 描述                           |
154  | --------         | -------- | ---------------------- | ----  | ------------------------------ |
155  | uri              | 只读     | string                 | 是    | 具体操作的uri        |
156  | condition        | 只读     | DataSharePredicates   | 是    | 查询条件             |
157  | resultColumns    | 只读     | array                 | 是    | 需要查询的列字段名称   |
158
159返回值为 ResultSet 查询结果集
160
161查询示例
162```js
163import dataShare from '@ohos.data.dataShare';
164var calllogData = "datashare:///com.ohos.calllogability";
165var calllogUri = "datashare:///com.ohos.calllogability/calls/calllog";
166// 获取dataShareHelper
167let dataShareHelper = dataShare.createDataShareHelper(calllogData);
168// 条件参数
169let condition = new dataShare.DataSharePredicates();
170condition.equalTo("id", "xxx");
171var resultColumns = [ "id", "display_name", "phone_number"];
172// 调用query方法
173dataShareHelper.query(calllogUri, resultColumns, condition).then((resultSet) => {
174    if (resultSet.goToFirstRow()) {
175        do {
176            var displayName = resultSet.getString(resultSet.getColumnIndex("display_name"));
177            var id = resultSet.getLong(resultSet.getColumnIndex("id"));
178            var phoneNumber = resultSet.getString(resultSet.getColumnIndex("phone_number"));
179        } while (resultSet.goToNextRow());
180    }
181    resultSet.close();
182});
183```
184返回值为 ResultSet 查询结果集
185
186### 语音信箱
187
188#### dataShareHelper.insert(uri: string, value: ValuesBucket)
189
190- 接口说明
191
192  语音信箱插入
193
194- insert参数描述
195
196  | 名称     | 读写属性 | 类型                   | 必填 | 描述                           |
197  | -------- | -------- | ---------------------- | ---- | ------------------------------ |
198  | uri      | 只读     | string                 | 是   | 具体操作的uri     |
199  | value    | 只读     | ValuesBucket           | 是   | 数据库字段key-value对象 |
200
201返回值为 语音信箱表id
202
203更新示例
204```js
205import dataShare from '@ohos.data.dataShare';
206var voicemailData = "datashare:///com.ohos.voicemailability";
207var voicemailUri = "datashare:///com.ohos.voicemailability/calls/voicemail";
208var value = {"phone_number" : "xxxxx","display_name" : "xxx"};
209// 获取dataShareHelper
210let dataShareHelper = dataShare.createDataShareHelper(voicemailData);
211// 调用insert方法
212dataShareHelper.insert(voicemailUri, value).then((data) => {
213	console.info("calllogId = " + data);
214});
215```
216#### dataShareHelper.update(uri: string, condition:DataSharePredicates, value: ValuesBucket)
217
218- 接口说明
219
220  语音信箱修改
221
222- update参数描述
223
224  | 名称         | 读写属性 | 类型                    | 必填 | 描述                           |
225  | --------     | -------- | ---------------------- | ---- | ------------------------------ |
226  | uri          | 只读     | string                 | 是   | 具体操作的uri          |
227  | condition    | 只读     | DataSharePredicates    | 是   | 更新条件               |
228  | value        | 只读     | ValuesBucket           | 是   | 数据库字段key-value对象 |
229
230返回值为 成功为0否则为-1
231
232修改示例
233```js
234import dataShare from '@ohos.data.dataShare';
235var voicemailData = "datashare:///com.ohos.voicemailability";
236var voicemailUri = "datashare:///com.ohos.voicemailability/calls/voicemail";
237var value = {"phone_number" : "xxxxx","display_name" : "xxx"};
238// 获取dataShareHelper
239let dataShareHelper = dataShare.createDataShareHelper(voicemailData);
240// 条件参数
241let condition = new dataShare.DataSharePredicates();
242condition.equalTo("id", "xxx");
243// 调用update方法
244dataShareHelper.update(voicemailUri, value, condition).then((data) => {
245	console.info("resultCode = " + data);
246});
247```
248
249#### dataShareHelper.delete(uri: string, condition: DataSharePredicates)
250
251- 接口说明
252
253  语音信箱删除
254
255- delete参数描述
256
257  | 名称         | 读写属性 | 类型                    | 必填 | 描述                           |
258  | --------     | -------- | ---------------------- | ---- | ------------------------------ |
259  | uri          | 只读     | string                 | 是   | 具体操作的uri          |
260  | condition    | 只读     | DataSharePredicates    | 是   | 删除条件              |
261
262返回值为 成功为0否则为-1
263
264删除示例
265```js
266import dataShare from '@ohos.data.dataShare';
267var voicemailData = "datashare:///com.ohos.voicemailability";
268var voicemailUri = "datashare:///com.ohos.voicemailability/calls/voicemail";
269// 获取dataShareHelper
270let dataShareHelper = dataShare.createDataShareHelper(voicemailData);
271// 条件参数
272let condition = new dataShare.DataSharePredicates();
273condition.equalTo("id", "xxx");
274// 调用delete方法
275dataShareHelper.delete(voicemailUri, condition).then((data) => {
276	console.info("deleteCode = " + data);
277});
278```
279
280#### dataShareHelper.query(uri: string, condition: DataSharePredicates, resultColumns:array)
281
282- 接口说明
283
284  语音信箱查询
285
286- 查询参数描述
287
288  | 名称             | 读写属性 | 类型                    | 必填  | 描述                           |
289  | --------         | -------- | ---------------------- | ----  | ------------------------------ |
290  | uri              | 只读     | string                 | 是    | 具体操作的uri        |
291  | condition        | 只读     | DataSharePredicates    | 是    | 查询条件            |
292  | resultColumns    | 只读     | array                  | 是    | 需要查询的列字段名称  |
293
294返回值为 ResultSet 查询结果集
295
296查询示例
297```js
298import dataShare from '@ohos.data.dataShare';
299var voicemailData = "datashare:///com.ohos.voicemailability";
300var voicemailUri = "datashare:///com.ohos.voicemailability/calls/voicemail";
301// 获取dataShareHelper
302let dataShareHelper = dataShare.createDataShareHelper(voicemailData);
303// 条件参数
304let condition = new dataShare.DataSharePredicates();
305condition.equalTo("id", "xxx");
306var resultColumns = [ "id", "display_name", "phone_number"];
307// 调用query方法
308dataShareHelper.query(voicemailUri, resultColumns, condition).then((resultSet) => {
309    if (resultSet.goToFirstRow()) {
310        do {
311            var displayName = resultSet.getString(resultSet.getColumnIndex("display_name"));
312            var id = resultSet.getLong(resultSet.getColumnIndex("id"));
313            var phoneNumber = resultSet.getString(resultSet.getColumnIndex("phone_number"));
314        } while (resultSet.goToNextRow());
315    }
316    resultSet.close();
317});
318```
319
320### 联系人
321
322#### dataShareHelper.insert(uri: string, value: ValuesBucket)
323
324- 接口说明
325
326  联系人插入
327
328- insert参数描述
329
330  | 名称     | 读写属性 | 类型                   | 必填 | 描述                           |
331  | -------- | -------- | ---------------------- | ---- | ------------------------------ |
332  | uri      | 只读     | string                 | 是   | 具体操作的uri     |
333  | value    | 只读     | ValuesBucket           | 是   | 数据库字段key-value对象 |
334
335返回值为 联系人数据表id
336
337更新示例
338```js
339import dataShare from '@ohos.data.dataShare';
340var contactsData = "datashare:///com.ohos.contactsdataability";
341var rawContactUri = "datashare:///com.ohos.contactsdataability/contacts/raw_contact";
342var contactDataUri = "datashare:///com.ohos.contactsdataability/contacts/contact_data";
343var value = {"display_name" : "xxx"};
344// 获取dataShareHelper
345let dataShareHelper = dataShare.createDataShareHelper(contactsData);
346// 调用insert方法
347dataShareHelper.insert(rawContactUri, value).then((rawContactId) => {
348	console.info("rawContactId = " + rawContactId);
349    // 联系人详细信息插入
350    var contactDataValues = {
351        "raw_contact_id" : rawContactId,
352        "content_type" : "name",
353        "detail_info" : "xxxxxxx"
354    };
355   dataShareHelper.insert(contactDataUri, contactDataValues).then((contactDataId) => {
356      console.info("rawContactId = " + contactDataId);
357   };
358});
359```
360#### dataShareHelper.update(uri: string, condition: DataSharePredicates, value: ValuesBucket)
361
362- 接口说明
363
364  联系人修改
365
366- update参数描述
367
368  | 名称         | 读写属性 | 类型                    | 必填 | 描述                           |
369  | --------     | -------- | ---------------------- | ---- | ------------------------------ |
370  | uri          | 只读     | string                 | 是   | 具体操作的uri          |
371  | condition    | 只读     | DataSharePredicates    | 是   | 更新条件              |
372  | value        | 只读     | ValuesBucket           | 是   | 数据库字段key-value对象 |
373
374返回值为 成功为0否则为-1
375
376修改示例
377```js
378import dataShare from '@ohos.data.dataShare';
379var contactsData = "datashare:///com.ohos.contactsdataability";
380var rawContactUri = "datashare:///com.ohos.contactsdataability/contacts/raw_contact";
381var contactDataUri = "datashare:///com.ohos.contactsdataability/contacts/contact_data";
382var value = {"display_name" : "xxx"};
383// 获取dataShareHelper
384let dataShareHelper = dataShare.createDataShareHelper(contactsData);
385// 条件参数
386let condition = new dataShare.DataSharePredicates();
387condition.equalTo("id", "xxx");
388// 调用update方法
389dataShareHelper.update(rawContactUri, value, condition).then((data) => {
390	console.info("resultCode = " + data);
391});
392```
393
394#### dataShareHelper.delete(uri: string, condition: DataSharePredicates)
395
396- 接口说明
397
398  联系人删除
399
400- delete参数描述
401
402  | 名称         | 读写属性 | 类型                    | 必填 | 描述                           |
403  | --------     | -------- | ---------------------- | ---- | ------------------------------ |
404  | uri          | 只读     | string                 | 是   | 具体操作的uri          |
405  | condition    | 只读     | DataSharePredicates    | 是   | 删除条件              |
406
407返回值为 成功为0否则为-1
408
409删除示例
410```js
411import dataShare from '@ohos.data.dataShare';
412var contactsData = "datashare:///com.ohos.contactsdataability";
413var rawContactUri = "datashare:///com.ohos.contactsdataability/contacts/raw_contact";
414var contactDataUri = "datashare:///com.ohos.contactsdataability/contacts/contact_data";
415// 获取dataShareHelper
416let dataShareHelper = dataShare.createDataShareHelper(contactsData);
417// 条件参数
418let condition = new dataShare.DataSharePredicates();
419condition.equalTo("id", "xxx");
420// 调用delete方法
421dataShareHelper.delete(contactDataUri, condition).then((data) => {
422	console.info("deleteCode = " + data);
423});
424```
425#### dataShareHelper.query(uri: string, condition: DataSharePredicates, resultColumns: array)
426
427- 接口说明
428
429  联系人查询
430
431- 查询参数描述
432
433  | 名称             | 读写属性 | 类型                    | 必填  | 描述                           |
434  | --------         | -------- | ---------------------- | ----  | ------------------------------ |
435  | uri              | 只读     | string                 | 是    | 具体操作的uri        |
436  | condition        | 只读     | DataSharePredicates    | 是    | 查询条件            |
437  | resultColumns    | 只读     | array                  | 是   | 需要查询的列字段名称   |
438
439返回值为 ResultSet 查询结果集
440
441查询示例
442```js
443import dataShare from '@ohos.data.dataShare';
444var contactsData = "datashare:///com.ohos.contactsdataability";
445var rawContactUri = "datashare:///com.ohos.contactsdataability/contacts/raw_contact";
446// 获取dataShareHelper
447let dataShareHelper = dataShare.createDataShareHelper(contactsData);
448// 条件参数
449let condition = new dataShare.DataSharePredicates();
450condition.equalTo("id", "xxx");
451var resultColumns = [ "id", "display_name"];
452// 调用query方法
453dataShareHelper.query(rawContactUri, resultColumns, condition).then((resultSet) => {
454    if (resultSet.goToFirstRow()) {
455        do {
456            var displayName = resultSet.getString(resultSet.getColumnIndex("display_name"));
457        } while (resultSet.goToNextRow());
458    }
459    resultSet.close();
460});
461```
462| 系统公共uri                                                                       |
463| ---------------------------------------------------------                        |
464| datashare:///com.ohos.contactsdataability                                      |
465| datashare:///com.ohos.contactsdataability/contacts/contact                     |
466| datashare:///com.ohos.contactsdataability/contacts/raw_contact                 |
467| datashare:///com.ohos.contactsdataability/contacts/contact_data                |
468| datashare:///com.ohos.contactsdataability/contacts/raw_contact/query_merge_list|
469| datashare:///com.ohos.contactsdataability/contacts/raw_contact/split_contact   |
470| datashare:///com.ohos.contactsdataability/contacts/raw_contact/manual_merge    |
471| datashare:///com.ohos.contactsdataability/contacts/raw_contact/auto_merge      |
472| datashare:///com.ohos.contactsdataability/contacts/contact_type                |
473| datashare:///com.ohos.contactsdataability/contacts/groups                      |
474| datashare:///com.ohos.contactsdataability/contacts/photo_files                 |
475| datashare:///com.ohos.contactsdataability/contacts/contact_blocklist           |
476| datashare:///com.ohos.contactsdataability/contacts/deleted_raw_contact         |
477| datashare:///com.ohos.contactsdataability/contacts/search_contact              |
478| datashare:///com.ohos.contactsdataability/contacts/deleted_raw_contact         |
479| datashare:///com.ohos.contactsdataability/contacts/deleted_raw_contact_record  |
480| datashare:///com.ohos.contactsdataability/contacts/backup                      |
481| datashare:///com.ohos.contactsdataability/contacts/recover                     |
482| datashare:///com.ohos.contactsdataability/profile/contact                      |
483| datashare:///com.ohos.contactsdataability/profile/raw_contact                  |
484| datashare:///com.ohos.contactsdataability/profile/contact_data                 |
485| datashare:///com.ohos.contactsdataability/profile/raw_contact/query_merge_list |
486| datashare:///com.ohos.contactsdataability/profile/raw_contact/split_contact    |
487| datashare:///com.ohos.contactsdataability/profile/raw_contact/manual_merge     |
488| datashare:///com.ohos.contactsdataability/profile/raw_contact/auto_merge       |
489| datashare:///com.ohos.contactsdataability/profile/contact_type                 |
490| datashare:///com.ohos.contactsdataability/profile/groups                       |
491| datashare:///com.ohos.contactsdataability/profile/photo_files                  |
492| datashare:///com.ohos.contactsdataability/profile/contact_blocklist            |
493| datashare:///com.ohos.contactsdataability/profile/deleted_raw_contact          |
494| datashare:///com.ohos.contactsdataability/profile/search_contact               |
495| datashare:///com.ohos.contactsdataability/profile/deleted_raw_contact          |
496| datashare:///com.ohos.contactsdataability/profile/deleted_raw_contact_record   |
497| datashare:///com.ohos.contactsdataability/profile/backup                       |
498| datashare:///com.ohos.contactsdataability/profile/recover                      |
499| datashare:///com.ohos.calllogability                                           |
500| datashare:///com.ohos.calllogability/calls/calllog                             |
501| datashare:///com.ohos.voicemailability                                         |
502| datashare:///com.ohos.voicemailability/calls/voicemail                         |
503## 相关仓<a name="section1371113476307"></a>
504
505系统应用
506
507applications_contactsdata