• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2022 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
16import Logger from './Logger'
17import data from '@ohos.telephony.data'
18
19const TAG: string = '[NetworkMobile]'
20
21export class NetworkMobile {
22  async getDefaultCellularDataSlotId() {
23    let slotId: number = -1
24    try {
25      slotId = await data.getDefaultCellularDataSlotId()
26      Logger.info(TAG, `getDefaultCellularDataSlotId slotId = ${slotId}`)
27    } catch (err) {
28      Logger.info(TAG, `getDefaultCellularDataSlotId failed err is ${JSON.stringify(err)}`)
29    }
30    return slotId
31  }
32
33  async isCellularDataEnabled() {
34    let dataEnabled: boolean = false
35    try {
36      dataEnabled = await data.isCellularDataEnabled()
37      Logger.info(TAG, `isCellularDataEnabled dataEnabled = ${dataEnabled}`)
38    } catch (err) {
39      Logger.info(TAG, `isCellularDataEnabled failed err is ${JSON.stringify(err)}`)
40    }
41    return dataEnabled
42  }
43
44  async isCellularDataRoamingEnabled(slotId: number) {
45    let dataRoamingEnabled: boolean = false
46    try {
47      dataRoamingEnabled = await data.isCellularDataRoamingEnabled(slotId)
48      Logger.info(TAG, `isCellularDataRoamingEnabled dataRoamingEnabled = ${dataRoamingEnabled}`)
49    } catch (err) {
50      Logger.info(TAG, `isCellularDataRoamingEnabled failed err is ${JSON.stringify(err)}`)
51    }
52    return dataRoamingEnabled
53  }
54
55  async getCellularDataFlowType() {
56    let dataFlow: data.DataFlowType = data.DataFlowType.DATA_FLOW_TYPE_NONE
57    let result: Resource = $r('app.string.none')
58    try {
59      dataFlow = await data.getCellularDataFlowType()
60      Logger.info(TAG, `getCellularDataFlowType dataFlow = ${JSON.stringify(dataFlow)}`)
61    } catch (err) {
62      Logger.info(TAG, `getCellularDataFlowType failed err is ${JSON.stringify(err)}`)
63    }
64    switch (dataFlow) {
65      case data.DataFlowType.DATA_FLOW_TYPE_NONE:
66        result = $r('app.string.none')
67        break
68      case data.DataFlowType.DATA_FLOW_TYPE_DOWN:
69        result = $r('app.string.down')
70        break
71      case data.DataFlowType.DATA_FLOW_TYPE_UP:
72        result = $r('app.string.up')
73        break
74      case data.DataFlowType.DATA_FLOW_TYPE_UP_DOWN:
75        result = $r('app.string.upDown')
76        break
77      case data.DataFlowType.DATA_FLOW_TYPE_DORMANT:
78        result = $r('app.string.dormant')
79        break
80      default:
81        result = $r('app.string.none')
82        break
83    }
84    return result
85  }
86
87  async getCellularDataState() {
88    let dataConnectState: data.DataConnectState = data.DataConnectState.DATA_STATE_UNKNOWN
89    let result: Resource = $r('app.string.unknown')
90    try {
91      dataConnectState = await data.getCellularDataState()
92      Logger.info(TAG, `getCellularDataState dataConnectState = ${JSON.stringify(dataConnectState)}`)
93    } catch (err) {
94      Logger.info(TAG, `getCellularDataState failed err is ${JSON.stringify(err)}`)
95    }
96    switch (dataConnectState) {
97      case data.DataConnectState.DATA_STATE_UNKNOWN:
98        result = $r('app.string.unknown')
99        break
100      case data.DataConnectState.DATA_STATE_DISCONNECTED:
101        result = $r('app.string.disconnect')
102        break
103      case data.DataConnectState.DATA_STATE_CONNECTING:
104        result = $r('app.string.connecting')
105        break
106      case data.DataConnectState.DATA_STATE_CONNECTED:
107        result = $r('app.string.connect')
108        break
109      case data.DataConnectState.DATA_STATE_SUSPENDED:
110        result = $r('app.string.suspended')
111        break
112      default:
113        result = $r('app.string.unknown')
114        break
115    }
116    return result
117  }
118}