1 /*
2 * Copyright (C) 2021 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "cellular_data_client.h"
17
18 #include "__mutex_base"
19 #include "apn_activate_report_info.h"
20 #include "cellular_data_manager_proxy.h"
21 #include "cellular_data_types.h"
22 #include "icellular_data_manager.h"
23 #include "if_system_ability_manager.h"
24 #include "iremote_broker.h"
25 #include "iremote_object.h"
26 #include "iservice_registry.h"
27 #include "memory"
28 #include "refbase.h"
29 #include "system_ability_definition.h"
30 #include "telephony_errors.h"
31 #include "telephony_log_wrapper.h"
32 #include "telephony_types.h"
33
34 namespace OHOS {
35 namespace Telephony {
36 int32_t CellularDataClient::defaultCellularDataSlotId_ = INVALID_MAIN_CARD_SLOTID;
37 int32_t CellularDataClient::defaultCellularDataSimId_ = 0;
CellularDataClient()38 CellularDataClient::CellularDataClient()
39 {
40 if (callback_ == nullptr) {
41 callback_ = new DataSimAccountCallback();
42 }
43 }
44
~CellularDataClient()45 CellularDataClient::~CellularDataClient()
46 {
47 UnregisterSimAccountCallback();
48 RemoveDeathRecipient();
49 }
50
RemoveDeathRecipient()51 void CellularDataClient::RemoveDeathRecipient()
52 {
53 sptr<ICellularDataManager> proxy = GetProxy();
54 if (proxy == nullptr) {
55 return;
56 }
57 sptr<IRemoteObject> serviceRemote = proxy_->AsObject();
58 if (serviceRemote != nullptr && deathRecipient_) {
59 serviceRemote->RemoveDeathRecipient(deathRecipient_);
60 }
61 }
62
IsValidSlotId(int32_t slotId)63 bool CellularDataClient::IsValidSlotId(int32_t slotId)
64 {
65 return ((slotId >= DEFAULT_SIM_SLOT_ID) && (slotId < SIM_SLOT_COUNT));
66 }
67
GetProxy()68 sptr<ICellularDataManager> CellularDataClient::GetProxy()
69 {
70 std::lock_guard<std::mutex> lock(mutexProxy_);
71 if (proxy_ != nullptr) {
72 return proxy_;
73 }
74
75 sptr<IRemoteObject> obj;
76 if (!IsCellularDataSysAbilityExist(obj)) {
77 TELEPHONY_LOGE("Failed to get cellular data service");
78 return nullptr;
79 }
80 std::unique_ptr<CellularDataDeathRecipient> recipient = std::make_unique<CellularDataDeathRecipient>(*this);
81 if (recipient == nullptr) {
82 TELEPHONY_LOGE("recipient is null");
83 return nullptr;
84 }
85 sptr<IRemoteObject::DeathRecipient> dr(recipient.release());
86 if ((obj->IsProxyObject()) && (!obj->AddDeathRecipient(dr))) {
87 TELEPHONY_LOGE("Failed to add death recipient");
88 return nullptr;
89 }
90 proxy_ = iface_cast<ICellularDataManager>(obj);
91 deathRecipient_ = dr;
92 TELEPHONY_LOGD("Succeed to connect cellular data service %{public}d", proxy_ == nullptr);
93 return proxy_;
94 }
95
OnRemoteDied(const wptr<IRemoteObject> & remote)96 void CellularDataClient::OnRemoteDied(const wptr<IRemoteObject> &remote)
97 {
98 if (remote == nullptr) {
99 TELEPHONY_LOGE("remote is nullptr");
100 return;
101 }
102 std::lock_guard<std::mutex> lock(mutexProxy_);
103 if (proxy_ == nullptr) {
104 TELEPHONY_LOGE("proxy_ is nullptr");
105 return;
106 }
107 sptr<IRemoteObject> serviceRemote = proxy_->AsObject();
108 if ((serviceRemote != nullptr) && (serviceRemote == remote.promote())) {
109 serviceRemote->RemoveDeathRecipient(deathRecipient_);
110 proxy_ = nullptr;
111 defaultCellularDataSlotId_ = INVALID_MAIN_CARD_SLOTID;
112 defaultCellularDataSimId_ = 0;
113 registerStatus_ = false;
114 TELEPHONY_LOGE("on remote died");
115 }
116 }
117
IsConnect()118 bool CellularDataClient::IsConnect()
119 {
120 sptr<ICellularDataManager> proxy = GetProxy();
121 return (proxy != nullptr);
122 }
123
RegisterSimAccountCallback()124 void CellularDataClient::RegisterSimAccountCallback()
125 {
126 if (callback_ == nullptr) {
127 TELEPHONY_LOGE("callback_ is nullptr");
128 return;
129 }
130 if (registerStatus_) {
131 return;
132 }
133 sptr<ICellularDataManager> proxy = GetProxy();
134 if (proxy == nullptr) {
135 TELEPHONY_LOGE("proxy is null");
136 return;
137 }
138 int32_t ret = proxy->RegisterSimAccountCallback(callback_);
139 TELEPHONY_LOGD("ret:%{public}d", ret);
140 if (ret == TELEPHONY_ERR_SUCCESS) {
141 registerStatus_ = true;
142 }
143 }
144
UnregisterSimAccountCallback()145 void CellularDataClient::UnregisterSimAccountCallback()
146 {
147 sptr<ICellularDataManager> proxy = GetProxy();
148 if (proxy == nullptr) {
149 TELEPHONY_LOGE("proxy is null");
150 return;
151 }
152 int32_t ret = proxy->UnregisterSimAccountCallback(callback_);
153 TELEPHONY_LOGD("ret:%{public}d", ret);
154 }
155
GetDefaultCellularDataSlotId()156 int32_t CellularDataClient::GetDefaultCellularDataSlotId()
157 {
158 RegisterSimAccountCallback();
159 if (IsValidSlotId(defaultCellularDataSlotId_) && registerStatus_) {
160 return defaultCellularDataSlotId_;
161 }
162 sptr<ICellularDataManager> proxy = GetProxy();
163 if (proxy == nullptr) {
164 TELEPHONY_LOGE("proxy is null");
165 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
166 }
167 int32_t slotId;
168 int32_t ret = proxy->GetDefaultCellularDataSlotId(slotId);
169 if (ret != TELEPHONY_ERR_SUCCESS) {
170 TELEPHONY_LOGE("GetDefaultCellularDataSlotId IPC error, %{public}d", ret);
171 return ret;
172 }
173 defaultCellularDataSlotId_ = slotId;
174 return defaultCellularDataSlotId_;
175 }
176
GetDefaultCellularDataSimId(int32_t & simId)177 int32_t CellularDataClient::GetDefaultCellularDataSimId(int32_t &simId)
178 {
179 RegisterSimAccountCallback();
180 if (defaultCellularDataSimId_ > 0) {
181 simId = defaultCellularDataSimId_;
182 return TELEPHONY_ERR_SUCCESS;
183 }
184 sptr<ICellularDataManager> proxy = GetProxy();
185 if (proxy == nullptr) {
186 TELEPHONY_LOGE("proxy is null");
187 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
188 }
189 int32_t result = proxy->GetDefaultCellularDataSimId(simId);
190 if (result == TELEPHONY_ERR_SUCCESS) {
191 defaultCellularDataSimId_ = simId;
192 }
193 return result;
194 }
195
SetDefaultCellularDataSlotId(int32_t slotId)196 int32_t CellularDataClient::SetDefaultCellularDataSlotId(int32_t slotId)
197 {
198 RegisterSimAccountCallback();
199 sptr<ICellularDataManager> proxy = GetProxy();
200 if (proxy == nullptr) {
201 TELEPHONY_LOGE("proxy is null");
202 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
203 }
204 int32_t result = proxy->SetDefaultCellularDataSlotId(slotId);
205 if (result == TELEPHONY_ERR_SUCCESS) {
206 defaultCellularDataSlotId_ = slotId;
207 int32_t simId = 0;
208 int32_t ret = proxy->GetDefaultCellularDataSimId(simId);
209 if (ret == TELEPHONY_ERR_SUCCESS) {
210 defaultCellularDataSimId_ = simId;
211 }
212 }
213 return result;
214 }
215
UpdateDefaultCellularDataSlotId()216 int32_t CellularDataClient::UpdateDefaultCellularDataSlotId()
217 {
218 defaultCellularDataSlotId_ = INVALID_MAIN_CARD_SLOTID;
219 defaultCellularDataSimId_ = 0;
220 sptr<ICellularDataManager> proxy = GetProxy();
221 if (proxy == nullptr) {
222 TELEPHONY_LOGE("proxy is null");
223 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
224 }
225 proxy->GetDefaultCellularDataSlotId(defaultCellularDataSlotId_);
226 proxy->GetDefaultCellularDataSimId(defaultCellularDataSimId_);
227 return defaultCellularDataSlotId_;
228 }
229
EnableCellularData(bool enable)230 int32_t CellularDataClient::EnableCellularData(bool enable)
231 {
232 sptr<ICellularDataManager> proxy = GetProxy();
233 if (proxy == nullptr) {
234 TELEPHONY_LOGE("proxy is null");
235 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
236 }
237 return proxy->EnableCellularData(enable);
238 }
239
EnableIntelligenceSwitch(bool enable)240 int32_t CellularDataClient::EnableIntelligenceSwitch(bool enable)
241 {
242 sptr<ICellularDataManager> proxy = GetProxy();
243 if (proxy == nullptr) {
244 TELEPHONY_LOGE("proxy is null");
245 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
246 }
247 return proxy->EnableIntelligenceSwitch(enable);
248 }
249
IsCellularDataEnabled(bool & dataEnabled)250 int32_t CellularDataClient::IsCellularDataEnabled(bool &dataEnabled)
251 {
252 sptr<ICellularDataManager> proxy = GetProxy();
253 if (proxy == nullptr) {
254 TELEPHONY_LOGE("proxy is null");
255 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
256 }
257 return proxy->IsCellularDataEnabled(dataEnabled);
258 }
259
GetCellularDataState()260 int32_t CellularDataClient::GetCellularDataState()
261 {
262 sptr<ICellularDataManager> proxy = GetProxy();
263 if (proxy == nullptr) {
264 TELEPHONY_LOGE("proxy is null");
265 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
266 }
267 int32_t state;
268 int32_t ret = proxy->GetCellularDataState(state);
269 if (ret != TELEPHONY_ERR_SUCCESS) {
270 return ret;
271 }
272 return state;
273 }
274
GetApnState(int32_t slotId,const std::string & apnType)275 int32_t CellularDataClient::GetApnState(int32_t slotId, const std::string &apnType)
276 {
277 sptr<ICellularDataManager> proxy = GetProxy();
278 if (proxy == nullptr) {
279 TELEPHONY_LOGE("proxy is null");
280 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
281 }
282 int32_t state;
283 int32_t ret = proxy->GetApnState(slotId, apnType, state);
284 if (ret != TELEPHONY_ERR_SUCCESS) {
285 return ret;
286 }
287 return state;
288 }
289
GetDataRecoveryState()290 int32_t CellularDataClient::GetDataRecoveryState()
291 {
292 sptr<ICellularDataManager> proxy = GetProxy();
293 if (proxy == nullptr) {
294 TELEPHONY_LOGE("proxy is null");
295 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
296 }
297 int32_t state;
298 int32_t ret = proxy->GetDataRecoveryState(state);
299 if (ret != TELEPHONY_ERR_SUCCESS) {
300 return ret;
301 }
302 return state;
303 }
304
IsCellularDataRoamingEnabled(int32_t slotId,bool & dataRoamingEnabled)305 int32_t CellularDataClient::IsCellularDataRoamingEnabled(int32_t slotId, bool &dataRoamingEnabled)
306 {
307 sptr<ICellularDataManager> proxy = GetProxy();
308 if (proxy == nullptr) {
309 TELEPHONY_LOGE("proxy is null");
310 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
311 }
312 return proxy->IsCellularDataRoamingEnabled(slotId, dataRoamingEnabled);
313 }
314
EnableCellularDataRoaming(int32_t slotId,bool enable)315 int32_t CellularDataClient::EnableCellularDataRoaming(int32_t slotId, bool enable)
316 {
317 sptr<ICellularDataManager> proxy = GetProxy();
318 if (proxy == nullptr) {
319 TELEPHONY_LOGE("proxy is null");
320 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
321 }
322 return proxy->EnableCellularDataRoaming(slotId, enable);
323 }
324
GetCellularDataFlowType()325 int32_t CellularDataClient::GetCellularDataFlowType()
326 {
327 sptr<ICellularDataManager> proxy = GetProxy();
328 if (proxy == nullptr) {
329 TELEPHONY_LOGE("proxy is null");
330 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
331 }
332 int32_t type;
333 int32_t ret = proxy->GetCellularDataFlowType(type);
334 if (ret != TELEPHONY_ERR_SUCCESS) {
335 return ret;
336 }
337 return type;
338 }
339
HasInternetCapability(int32_t slotId,int32_t cid)340 int32_t CellularDataClient::HasInternetCapability(int32_t slotId, int32_t cid)
341 {
342 sptr<ICellularDataManager> proxy = GetProxy();
343 if (proxy == nullptr) {
344 TELEPHONY_LOGE("proxy is null");
345 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
346 }
347 int32_t capability;
348 int32_t ret = proxy->HasInternetCapability(slotId, cid, capability);
349 if (ret != TELEPHONY_ERR_SUCCESS) {
350 return ret;
351 }
352 return capability;
353 }
354
ClearCellularDataConnections(int32_t slotId)355 int32_t CellularDataClient::ClearCellularDataConnections(int32_t slotId)
356 {
357 sptr<ICellularDataManager> proxy = GetProxy();
358 if (proxy == nullptr) {
359 TELEPHONY_LOGE("proxy is null");
360 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
361 }
362 return proxy->ClearCellularDataConnections(slotId);
363 }
364
GetDataConnApnAttr(int32_t slotId,ApnItem::Attribute & apnAttr)365 int32_t CellularDataClient::GetDataConnApnAttr(int32_t slotId, ApnItem::Attribute &apnAttr)
366 {
367 sptr<ICellularDataManager> proxy = GetProxy();
368 if (proxy == nullptr) {
369 TELEPHONY_LOGE("proxy is null");
370 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
371 }
372 ApnAttribute apnAfterTrans;
373 ApnAttribute::TransferApnAttributeBeforeIpc(apnAttr, apnAfterTrans);
374 int32_t ret = proxy->GetDataConnApnAttr(slotId, apnAfterTrans);
375 ApnAttribute::TransferApnAttributeAfterIpc(apnAttr, apnAfterTrans);
376 return ret;
377 }
378
GetDataConnIpType(int32_t slotId,std::string & ipType)379 int32_t CellularDataClient::GetDataConnIpType(int32_t slotId, std::string &ipType)
380 {
381 sptr<ICellularDataManager> proxy = GetProxy();
382 if (proxy == nullptr) {
383 TELEPHONY_LOGE("proxy is null");
384 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
385 }
386 return proxy->GetDataConnIpType(slotId, ipType);
387 }
388
ClearAllConnections(int32_t slotId,DisConnectionReason reason)389 int32_t CellularDataClient::ClearAllConnections(int32_t slotId, DisConnectionReason reason)
390 {
391 sptr<ICellularDataManager> proxy = GetProxy();
392 if (proxy == nullptr) {
393 TELEPHONY_LOGE("proxy is null");
394 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
395 }
396 int32_t reasonIpc = static_cast<int32_t> (reason);
397 return proxy->ClearAllConnections(slotId, reasonIpc);
398 }
399
HandleApnChanged(int32_t slotId)400 int32_t CellularDataClient::HandleApnChanged(int32_t slotId)
401 {
402 sptr<ICellularDataManager> proxy = GetProxy();
403 if (proxy == nullptr) {
404 TELEPHONY_LOGE("proxy is null");
405 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
406 }
407 return proxy->HandleApnChanged(slotId);
408 }
409
IsNeedDoRecovery(int32_t slotId,bool needDoRecovery)410 int32_t CellularDataClient::IsNeedDoRecovery(int32_t slotId, bool needDoRecovery)
411 {
412 sptr<ICellularDataManager> proxy = GetProxy();
413 if (proxy == nullptr) {
414 TELEPHONY_LOGE("proxy is null");
415 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
416 }
417 return proxy->IsNeedDoRecovery(slotId, needDoRecovery);
418 }
419
InitCellularDataController(int32_t slotId)420 int32_t CellularDataClient::InitCellularDataController(int32_t slotId)
421 {
422 sptr<ICellularDataManager> proxy = GetProxy();
423 if (proxy == nullptr) {
424 TELEPHONY_LOGE("proxy is null");
425 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
426 }
427 return proxy->InitCellularDataController(slotId);
428 }
429
GetIntelligenceSwitchState(bool & switchState)430 int32_t CellularDataClient::GetIntelligenceSwitchState(bool &switchState)
431 {
432 sptr<ICellularDataManager> proxy = GetProxy();
433 if (proxy == nullptr) {
434 TELEPHONY_LOGE("proxy is null");
435 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
436 }
437 return proxy->GetIntelligenceSwitchState(switchState);
438 }
439
IsCellularDataSysAbilityExist(sptr<IRemoteObject> & object)440 bool CellularDataClient::IsCellularDataSysAbilityExist(sptr<IRemoteObject> &object) __attribute__((no_sanitize("cfi")))
441 {
442 sptr<ISystemAbilityManager> sm = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
443 if (sm == nullptr) {
444 TELEPHONY_LOGE("IsCellularDataSysAbilityExist Get ISystemAbilityManager failed, no SystemAbilityManager");
445 return false;
446 }
447 object = sm->CheckSystemAbility(TELEPHONY_CELLULAR_DATA_SYS_ABILITY_ID);
448 if (object == nullptr) {
449 TELEPHONY_LOGE("No CesServiceAbility");
450 return false;
451 }
452 return true;
453 }
454
EstablishAllApnsIfConnectable(int32_t slotId)455 int32_t CellularDataClient::EstablishAllApnsIfConnectable(int32_t slotId)
456 {
457 sptr<ICellularDataManager> proxy = GetProxy();
458 if (proxy == nullptr) {
459 TELEPHONY_LOGE("proxy is null");
460 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
461 }
462 return proxy->EstablishAllApnsIfConnectable(slotId);
463 }
464
ReleaseCellularDataConnection(int32_t slotId)465 int32_t CellularDataClient::ReleaseCellularDataConnection(int32_t slotId)
466 {
467 sptr<ICellularDataManager> proxy = GetProxy();
468 if (proxy == nullptr) {
469 TELEPHONY_LOGE("proxy is null");
470 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
471 }
472 return proxy->ReleaseCellularDataConnection(slotId);
473 }
474
GetCellularDataSupplierId(int32_t slotId,uint64_t capability,uint32_t & supplierId)475 int32_t CellularDataClient::GetCellularDataSupplierId(int32_t slotId, uint64_t capability, uint32_t &supplierId)
476 {
477 sptr<ICellularDataManager> proxy = GetProxy();
478 if (proxy == nullptr) {
479 TELEPHONY_LOGE("proxy is null");
480 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
481 }
482 return proxy->GetCellularDataSupplierId(slotId, capability, supplierId);
483 }
484
CorrectNetSupplierNoAvailable(int32_t slotId)485 int32_t CellularDataClient::CorrectNetSupplierNoAvailable(int32_t slotId)
486 {
487 sptr<ICellularDataManager> proxy = GetProxy();
488 if (proxy == nullptr) {
489 TELEPHONY_LOGE("proxy is null");
490 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
491 }
492 return proxy->CorrectNetSupplierNoAvailable(slotId);
493 }
494
GetSupplierRegisterState(uint32_t supplierId,int32_t & regState)495 int32_t CellularDataClient::GetSupplierRegisterState(uint32_t supplierId, int32_t ®State)
496 {
497 sptr<ICellularDataManager> proxy = GetProxy();
498 if (proxy == nullptr) {
499 TELEPHONY_LOGE("proxy is null");
500 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
501 }
502 return proxy->GetSupplierRegisterState(supplierId, regState);
503 }
504
GetIfSupportDunApn(bool & isSupportDun)505 int32_t CellularDataClient::GetIfSupportDunApn(bool &isSupportDun)
506 {
507 sptr<ICellularDataManager> proxy = GetProxy();
508 if (proxy == nullptr) {
509 TELEPHONY_LOGE("proxy is null");
510 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
511 }
512 return proxy->GetIfSupportDunApn(isSupportDun);
513 }
514
GetDefaultActReportInfo(int32_t slotId,ApnActivateReportInfo & info)515 int32_t CellularDataClient::GetDefaultActReportInfo(int32_t slotId, ApnActivateReportInfo &info)
516 {
517 sptr<ICellularDataManager> proxy = GetProxy();
518 if (proxy == nullptr) {
519 TELEPHONY_LOGE("proxy is null");
520 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
521 }
522 ApnActivateReportInfoIpc infoIpc = info;
523 int32_t ret = proxy->GetDefaultActReportInfo(slotId, infoIpc);
524 ApnActivateReportInfoIpc::transferToReportInfo(infoIpc, info);
525 return ret;
526 }
527
GetInternalActReportInfo(int32_t slotId,ApnActivateReportInfo & info)528 int32_t CellularDataClient::GetInternalActReportInfo(int32_t slotId, ApnActivateReportInfo &info)
529 {
530 sptr<ICellularDataManager> proxy = GetProxy();
531 if (proxy == nullptr) {
532 TELEPHONY_LOGE("proxy is null");
533 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
534 }
535 ApnActivateReportInfoIpc infoIpc = info;
536 int32_t ret = proxy->GetInternalActReportInfo(slotId, infoIpc);
537 ApnActivateReportInfoIpc::transferToReportInfo(infoIpc, info);
538 return ret;
539 }
540
QueryApnIds(ApnInfo apnInfo,std::vector<uint32_t> & apnIdList)541 int32_t CellularDataClient::QueryApnIds(ApnInfo apnInfo, std::vector<uint32_t> &apnIdList)
542 {
543 sptr<ICellularDataManager> proxy = GetProxy();
544 if (proxy == nullptr) {
545 TELEPHONY_LOGE("proxy is null");
546 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
547 }
548 TELEPHONY_LOGI("QueryApnIds apnInfo");
549 return proxy->QueryApnIds(apnInfo, apnIdList);
550 }
551
SetPreferApn(int32_t apnId)552 int32_t CellularDataClient::SetPreferApn(int32_t apnId)
553 {
554 sptr<ICellularDataManager> proxy = GetProxy();
555 if (proxy == nullptr) {
556 TELEPHONY_LOGE("proxy is null");
557 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
558 }
559 TELEPHONY_LOGI("SetPreferApn");
560 return proxy->SetPreferApn(apnId);
561 }
562
QueryAllApnInfo(std::vector<ApnInfo> & apnInfoList)563 int32_t CellularDataClient::QueryAllApnInfo(std::vector<ApnInfo> &apnInfoList)
564 {
565 sptr<ICellularDataManager> proxy = GetProxy();
566 if (proxy == nullptr) {
567 TELEPHONY_LOGE("proxy is null");
568 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
569 }
570 TELEPHONY_LOGI("QueryAllApnInfo");
571 return proxy->QueryAllApnInfo(apnInfoList);
572 }
573
SendUrspDecodeResult(int32_t slotId,std::vector<uint8_t> buffer)574 int32_t CellularDataClient::SendUrspDecodeResult(int32_t slotId, std::vector<uint8_t> buffer)
575 {
576 sptr<ICellularDataManager> proxy = GetProxy();
577 if (proxy == nullptr) {
578 TELEPHONY_LOGE("proxy is null");
579 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
580 }
581 int32_t result = proxy->SendUrspDecodeResult(slotId, buffer);
582 return result;
583 }
584
SendUePolicySectionIdentifier(int32_t slotId,std::vector<uint8_t> buffer)585 int32_t CellularDataClient::SendUePolicySectionIdentifier(int32_t slotId, std::vector<uint8_t> buffer)
586 {
587 sptr<ICellularDataManager> proxy = GetProxy();
588 if (proxy == nullptr) {
589 TELEPHONY_LOGE("proxy is null");
590 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
591 }
592 int32_t result = proxy->SendUePolicySectionIdentifier(slotId, buffer);
593 return result;
594 }
595
SendImsRsdList(int32_t slotId,std::vector<uint8_t> buffer)596 int32_t CellularDataClient::SendImsRsdList(int32_t slotId, std::vector<uint8_t> buffer)
597 {
598 sptr<ICellularDataManager> proxy = GetProxy();
599 if (proxy == nullptr) {
600 TELEPHONY_LOGE("proxy is null");
601 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
602 }
603 int32_t result = proxy->SendImsRsdList(slotId, buffer);
604 return result;
605 }
606
GetNetworkSliceAllowedNssai(int32_t slotId,std::vector<uint8_t> buffer)607 int32_t CellularDataClient::GetNetworkSliceAllowedNssai(int32_t slotId, std::vector<uint8_t> buffer)
608 {
609 sptr<ICellularDataManager> proxy = GetProxy();
610 if (proxy == nullptr) {
611 TELEPHONY_LOGE("proxy is null");
612 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
613 }
614 int32_t result = proxy->GetNetworkSliceAllowedNssai(slotId, buffer);
615 return result;
616 }
617
GetNetworkSliceEhplmn(int32_t slotId)618 int32_t CellularDataClient::GetNetworkSliceEhplmn(int32_t slotId)
619 {
620 sptr<ICellularDataManager> proxy = GetProxy();
621 if (proxy == nullptr) {
622 TELEPHONY_LOGE("proxy is null");
623 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
624 }
625 int32_t result = proxy->GetNetworkSliceEhplmn(slotId);
626 return result;
627 }
628
GetActiveApnName(std::string & apnName)629 int32_t CellularDataClient::GetActiveApnName(std::string &apnName)
630 {
631 sptr<ICellularDataManager> proxy = GetProxy();
632 if (proxy == nullptr) {
633 TELEPHONY_LOGE("proxy is null");
634 return TELEPHONY_ERR_IPC_CONNECT_STUB_FAIL;
635 }
636 return proxy->GetActiveApnName(apnName);
637 }
638 } // namespace Telephony
639 } // namespace OHOS
640