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