1/* 2 * Copyright (c) 2023 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 */ 15import telephonyData from '@ohos.telephony.data'; 16import radio from '@ohos.telephony.radio'; 17import LogUtils from '../common/utils/LogUtils'; 18import call from '@ohos.telephony.call'; 19 20const TAG = "mobileDataStatus" 21 22/** 23 * Get cellular data status 24 * 25 * @return {Promise} promise object 26 */ 27export function isCellularDataEnabled() { 28 if (telephonyData.isCellularDataEnabled()) { 29 return telephonyData.isCellularDataEnabled(); 30 } 31} 32 33export function getOperatorName(slotId = 0) { 34 return new Promise((resolve, reject) => { 35 try { 36 radio.getOperatorName(slotId, (error, value) => { 37 if (error) { 38 LogUtils.i(TAG, "getOperatorName error:" + JSON.stringify(error)) 39 reject(error); 40 } else { 41 LogUtils.i(TAG, "getOperatorName value:" + JSON.stringify(value)) 42 resolve(value); 43 } 44 }); 45 } catch (error) { 46 LogUtils.i(TAG, "getOperatorName catch:" + JSON.stringify(error)) 47 reject(error); 48 } 49 }); 50}; 51 52/** 53 * Enable mobile data 54 * 55 * @return {Promise} promise object 56 */ 57export function enableCellularData() { 58 if (telephonyData.enableCellularData) { 59 return telephonyData.enableCellularData(); 60 } 61} 62 63/** 64 * disableCellularData mobile data 65 * 66 * @return {Promise} promise object 67 */ 68export function disableCellularData() { 69 if (telephonyData.disableCellularData) { 70 return telephonyData.disableCellularData(); 71 } 72} 73 74/** 75 * Whether to enable cellular data roaming 76 * 77 * @return {Promise} 78 */ 79export function getCellularDataRoaming(slotId = 0) { 80 return telephonyData.isCellularDataRoamingEnabled(slotId); 81} 82 83/** 84 * Enabling Data Roaming 85 * 86 * @return {Promise} 87 */ 88export function enableCellularDataRoamingCardOne(slotId = 0) { 89 return new Promise((resolve, reject) => { 90 try { 91 telephonyData.enableCellularDataRoaming(slotId, (error, value) => { 92 if (error) { 93 LogUtils.i(TAG, "enableCellularDataRoaming card one error :" + JSON.stringify(error)); 94 reject(error); 95 } else { 96 LogUtils.i(TAG, "enableCellularDataRoaming card one success : then" + JSON.stringify(value)); 97 resolve(value); 98 } 99 }); 100 } catch (error) { 101 LogUtils.i(TAG, "enableCellularDataRoaming card one catch: " + JSON.stringify(error)); 102 reject(error); 103 } 104 }); 105} 106 107export function enableCellularDataRoamingCardTwo(slotId = 1) { 108 return new Promise((resolve, reject) => { 109 try { 110 telephonyData.enableCellularDataRoaming(slotId, (error, value) => { 111 if (error) { 112 LogUtils.i(TAG, "enableCellularDataRoaming card two error :" + JSON.stringify(error)); 113 reject(error); 114 } else { 115 LogUtils.i(TAG, "enableCellularDataRoaming card two success :then" + JSON.stringify(value)); 116 resolve(value); 117 } 118 }); 119 } catch (error) { 120 LogUtils.i(TAG, "enableCellularDataRoaming card two catch: " + JSON.stringify(error)); 121 reject(error); 122 } 123 }); 124} 125 126/** 127 * Enabling Data Roaming 128 * 129 * @return {Promise} 130 */ 131export function disableCellularDataRoamingCardOne(slotId = 0) { 132 return new Promise((resolve, reject) => { 133 try { 134 telephonyData.disableCellularDataRoaming(slotId, (error, value) => { 135 if (error) { 136 LogUtils.i(TAG, "disableCellularDataRoaming card one error : " + JSON.stringify(error)); 137 reject(error); 138 } else { 139 LogUtils.i(TAG, "disableCellularDataRoaming card one success : then" + JSON.stringify(value)); 140 resolve(value); 141 } 142 }); 143 } catch (error) { 144 LogUtils.i(TAG, "disableCellularDataRoaming card one catch:" + JSON.stringify(error)); 145 reject(error); 146 } 147 }); 148} 149 150export function disableCellularDataRoamingCardTwo(slotId = 1) { 151 return new Promise((resolve, reject) => { 152 try { 153 telephonyData.disableCellularDataRoaming(slotId, (error, value) => { 154 if (error) { 155 LogUtils.i(TAG, "disableCellularDataRoaming card two error :" + JSON.stringify(error)); 156 reject(error); 157 } else { 158 LogUtils.i(TAG, "disableCellularDataRoaming card two success :then" + JSON.stringify(value)); 159 resolve(value); 160 } 161 }); 162 } catch (error) { 163 LogUtils.i(TAG, "disableCellularDataRoaming card two catch:" + JSON.stringify(error)); 164 reject(error); 165 } 166 }); 167} 168 169export function enableImsSwitchCardOne() { 170 call.enableImsSwitch(0).then((data) => { 171 AppStorage.SetOrCreate("imsOne", true); 172 LogUtils.i(TAG, "enableImsSwitch card one : success then " + JSON.stringify(data)); 173 }).catch((error) => { 174 LogUtils.i(TAG, "enableImsSwitch card one : catch" + JSON.stringify(error)); 175 }); 176} 177 178export function enableImsSwitchCardTwo() { 179 call.enableImsSwitch(1).then((data) => { 180 LogUtils.i(TAG, "enableImsSwitch card two : success then " + JSON.stringify(data)); 181 }).catch((error) => { 182 LogUtils.i(TAG, "enableImsSwitch card two : catch" + JSON.stringify(error)); 183 }); 184} 185 186export function disableImsSwitchCardOne() { 187 call.disableImsSwitch(0).then((data) => { 188 AppStorage.SetOrCreate("imsOne", false); 189 LogUtils.i(TAG, "disableImsSwitch card one : success then " + JSON.stringify(data)); 190 }).catch((error) => { 191 LogUtils.i(TAG, "disableImsSwitch card one : catch" + JSON.stringify(error)); 192 }); 193} 194 195export function disableImsSwitchCardTwo() { 196 call.disableImsSwitch(1).then((data) => { 197 LogUtils.i(TAG, "disableImsSwitch card two : success then " + JSON.stringify(data)); 198 }).catch((error) => { 199 LogUtils.i(TAG, "disableImsSwitch card two : catch" + JSON.stringify(error)); 200 }); 201} 202