• Home
Name Date Size #Lines LOC

..--

common/12-May-2024-1,055768

config/12-May-2024-6766

figures/12-May-2024-

pdp_profile/12-May-2024-740523

signature/12-May-2024-

sim/12-May-2024-754520

sms_mms/12-May-2024-911660

test/12-May-2024-1,187928

BUILD.gnD12-May-20242.6 KiB7466

LICENSED12-May-20249.9 KiB177150

README_zh.mdD12-May-20249 KiB238184

bundle.jsonD12-May-20241.6 KiB5958

README_zh.md

1# 数据库及持久化<a name="ZH-CN_TOPIC_0000001152064139"></a>
2
3-   [简介](#section117mcpsimp)
4-   [目录](#section124mcpsimp)
5-   [约束](#section128mcpsimp)
6-   [说明](#section134mcpsimp)
7    -   [接口说明](#section136mcpsimp)
8    -   [权限说明](#section137mcpsimp)
9
10-   [使用说明](#section163mcpsimp)
11    -   [插入接口参数说明](#section1099113151207)
12    -   [删除接口参数说明](#section1098113151208)
13    -   [更新接口参数说明](#section1099113151207)
14    -   [查询接口参数说明](#section1096113151208)
15    -   [接口调用代码示例](#section1558565082915)
16
17-   [相关仓](#section206mcpsimp)
18
19## 简介<a name="section117mcpsimp"></a>
20
21数据库及持久化模块负责电话服务子系统中的SIM卡/短彩信等模块持久化数据存储,提供DataAbility访问接口。
22
23**图 1**  数据库及持久化架构图<a name="fig13267152558"></a>
24
25![](figures/zh-cn_architecture-of-the-data-storage-module.png)
26
27## 目录<a name="section124mcpsimp"></a>
28
29```
30/base/telephony/data_storage     # 数据库及持久化
31├─ BUILD.gn                         # 编译gn脚本
32├─ README.md                        # Readme文档
33├─ common                           # 公共、通用文件
34│  ├─ include
35│  └─ src
36├─ pdp_profile                      # 网络运营商
37│  ├─ include
38│  └─ src
39├─ sim                              # sim卡
40│  ├─ include
41│  └─ src
42├─ sms_mms                          # 短彩信
43│  ├─ include
44│  └─ src
45├─ ohos.build                       # 编译build
46└─ test                             # 测试相关
47```
48
49## 约束<a name="section128mcpsimp"></a>
50
51- 开发语言:C++
52
53- 软件约束:需要与以下服务配合使用:公共基础子库系统,应用框架子系统。
54
55- 硬件约束:无
56
57- 使用场景:当用户需要获取电话服务子系统中的SIM卡/短彩信等模块持久化数据时,可通过DataAbilityHelper提供的增/删/改/查接口来获取数据。
58
59  访问时需要提供对应的权限和URI。
60
61## 说明<a name="section134mcpsimp"></a>
62
63### 接口说明<a name="section136mcpsimp"></a>
64
65**表 1**  增/删/改/查接口
66
67<a name="table165976561598"></a>
68
69| 接口定义                                                     | **接口描述** |
70| ------------------------------------------------------------ | ------------ |
71| int Insert(const Uri &uri, const NativeRdb::ValuesBucket &value) | 插入数据     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|
72| int Delete(const Uri &uri, const NativeRdb::DataAbilityPredicates &predicates) | 删除数据     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|
73| int Update( const Uri &uri, const NativeRdb::ValuesBucket &value, const NativeRdb::DataAbilityPredicates &predicates) | 更新数据     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|
74| std::shared_ptr\<NativeRdb::AbsSharedResultSet\> Query( const Uri &uri, const std::vector\<std::string\> &columns, const NativeRdb::DataAbilityPredicates &predicates) | 查询数据     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|
75
76**表 2**  权限说明
77
78<a name="table165976561598"></a>
79
80| 模块           | **所需权限**                                                 |
81| -------------- | ------------------------------------------------------------ |
82| 短彩信模块     | com.ohos.smsmmsability.DataAbilityShellProvider.PROVIDER     |
83| SIM卡模块      | com.ohos.simability.DataAbilityShellProvider.PROVIDER        |
84| 网络运营商模块 | com.ohos.pdpprofileability.DataAbilityShellProvider.PROVIDER |
85
86## 使用说明<a name="section163mcpsimp"></a>
87
88### 插入接口参数说明<a name="section1099113151207"></a>
89
90**表 3**  Insert接口参数说明
91
92<a name="table1234838197"></a>
93
94| 参数  | **说明**                              |
95| ----- | ------------------------------------- |
96| uri   | 资源路径                              |
97| value | 数据集合,字段对应当前操作的表结构字段 |
98
99### 删除接口参数说明<a name="section1098113151208"></a>
100
101**表 4**  Delete接口参数说明
102
103<a name="table1234838197"></a>
104
105| 参数       | 说明                                  |
106| ---------- | ------------------------------------- |
107| uri        | 资源路径                              |
108| value      | 数据集合,字段对应当前操作的表结构字段 |
109| predicates | 删除条件                              |
110
111### 更新接口参数说明<a name="section1097113151210"></a>
112
113**表 5**  Update接口参数说明
114
115<a name="table1234838197"></a>
116
117| 参数       | 说明     |
118| ---------- | -------- |
119| uri        | 资源路径 |
120| predicates | 更新条件 |
121
122### 查询接口参数说明<a name="section1096113151208"></a>
123
124**表 6**  Query接口参数说明
125
126<a name="table1234838197"></a>
127
128| 参数       | 说明           |
129| ---------- | -------------- |
130| uri        | 资源路径       |
131| columns    | 查询返回的字段 |
132| predicates | 查询条件       |
133
134### 接口调用代码示例<a name="section1558565082915"></a>
135
136以查询/插入/删除/更新短彩信数据为例,主要步骤和代码如下:
137
1381. 使用SystemAbilityManagerClient获得SystemAbilityManager对象。
1392. 使用saManager获得指定服务Id的IRemoteObject对象。
1403. 使用IRemoteObject创建DataAbilityHelper对象。
1414. 调用DataAbilityHelper::Query接口访问,并接收处理返回的数据。
142
143   创建DataAbilityHelper:
144   ```
145   std::shared_ptr<AppExecFwk::DataAbilityHelper> CreateDataAHelper(int32_t systemAbilityId)
146   {
147       //通过SystemAbilityManagerClient获得SystemAbilityManager
148       auto saManager = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
149       if (saManager == nullptr) {
150           DATA_STORAGE_LOGE("DataSimRdbHelper Get system ability mgr failed.");
151           return nullptr;
152       }
153       // 获得IRemoteObject
154       auto remoteObj = saManager->GetSystemAbility(systemAbilityId);
155       while (remoteObj == nullptr) {
156           DATA_STORAGE_LOGE("DataSimRdbHelper GetSystemAbility Service Failed.");
157           return nullptr;
158       }
159       // 创建DataAbilityHelper
160       return AppExecFwk::DataAbilityHelper::Creator(remoteObj);
161   }
162   ```
163   查询短彩信信息:
164   ```
165   std::shared_ptr<NativeRdb::AbsSharedResultSet> SmsSelect(std::shared_ptr<AppExecFwk::DataAbilityHelper> helper)
166   {
167       // 资源路径
168       Uri uri("dataability:///com.ohos.smsmmsability/sms_mms/sms_mms_info");
169       //查询返回的字段
170       std::vector<std::string> colume;
171       // 发送者号码
172       colume.push_back("sender_number");
173       // 消息标题
174       colume.push_back("msg_title");
175       // 消息内容
176       colume.push_back("msg_content");
177       // 查询谓词
178       NativeRdb::DataAbilityPredicates predicates;
179       // 调用DataAbilityHelper::Query接口查询
180       return helper->Query(uri, colume, predicates);
181   }
182   ```
183   插入短彩信信息:
184   ```
185   int SmsInsert(std::shared_ptr<AppExecFwk::DataAbilityHelper> helper)
186   {
187       Uri uri("dataability:///com.ohos.smsmmsability/sms_mms/sms_mms_info");
188       NativeRdb::ValuesBucket value;
189       // 接收者号码
190       value.PutString(SmsMmsInfo::RECEIVER_NUMBER, "138XXXXXXXX");
191       // 消息内容
192       value.PutString(SmsMmsInfo::MSG_CONTENT, "ceshi");
193       value.PutInt(SmsMmsInfo::GROUP_ID, 1);
194       return helper->Insert(uri, value);
195   }
196   ```
197   删除短彩信信息:
198   ```
199    int SmsDelete(std::shared_ptr<AppExecFwk::DataAbilityHelper> helper)
200    {
201        Uri uri("dataability:///com.ohos.smsmmsability/sms_mms/sms_mms_info");
202        NativeRdb::DataAbilityPredicates predicates;
203        // 删除MSG_ID为1的信息
204        predicates.EqualTo(SmsMmsInfo::MSG_ID, "1");
205        return helper->Delete(uri, predicates);
206    }
207   ```
208   更新短彩信信息:
209   ```
210   int SmsUpdate(std::shared_ptr<AppExecFwk::DataAbilityHelper> helper)
211   {
212       Uri uri("dataability:///com.ohos.smsmmsability/sms_mms/sms_mms_info");
213       NativeRdb::ValuesBucket values;
214       // 信息内容
215       values.PutString(SmsMmsInfo::MSG_CONTENT, "hi ohos");
216       NativeRdb::DataAbilityPredicates predicates;
217       // 信息Id
218       predicates.EqualTo(SmsMmsInfo::MSG_ID, "1");
219       return helper->Update(uri, values, predicates);
220   }
221   ```
222
223
224## 相关仓<a name="section206mcpsimp"></a>
225
226[电话服务子系统](https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E7%94%B5%E8%AF%9D%E6%9C%8D%E5%8A%A1%E5%AD%90%E7%B3%BB%E7%BB%9F.md)
227
228**telephony_data_storage**
229
230[telephony_core_service](https://gitee.com/openharmony/telephony_core_service/blob/master/README_zh.md)
231
232[telephony_sms_mms](https://gitee.com/openharmony/telephony_sms_mms/blob/master/README_zh.md)
233
234[telephony_cellular_call](https://gitee.com/openharmony/telephony_cellular_call/blob/master/README_zh.md)
235
236[telephony_call_manager](https://gitee.com/openharmony/telephony_call_manager/blob/master/README_zh.md)
237
238