• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 &regState)
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