• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1import NetworkStandItem from '../common/components/networkStandItem';
2import radio from '@ohos.telephony.radio';
3import HeadComponent from '../common/components/headComponent';
4import LogUtils from '../common/utils/LogUtils';
5import { BusinessError } from '@ohos.base';
6
7const TAG = 'NetworkStand';
8
9@Entry
10@Component
11struct NetworkStand {
12  @State @Watch('networkModeChanged') networkMode: number = 5
13  @State slotId: number = 0;
14
15  aboutToAppear(): void {
16    this.getPreferredNetwork(this.slotId);
17  }
18
19  /**
20   * Get network mode
21   *
22   * @param {Object} slotId - call slotId
23   */
24  async getPreferredNetwork(slotId:number) {
25
26    radio.getPreferredNetwork(slotId, (err, data: radio.PreferredNetworkMode) => {
27      if (err) {
28        LogUtils.e(TAG, 'getPreferredNetwork error, callback: data->' + JSON.stringify(err))
29        return;
30      }
31
32      this.networkMode = data
33      LogUtils.i(TAG, 'getPreferredNetwork success, callback: data-> ' + JSON.stringify(data))
34    });
35
36  }
37
38  networkModeChanged() {
39    LogUtils.i(TAG, 'networkMode Changed data-> ' + JSON.stringify(this.networkMode))
40    try {
41      radio.setPreferredNetwork(this.slotId, this.networkMode).then(() => {
42      }).catch((err:BusinessError) => {
43        LogUtils.i(TAG, 'set 0 Preferred Network-> ' + JSON.stringify(this.networkMode) + 'failed'  + JSON.stringify(err))
44      });
45    } catch (err) {
46      LogUtils.i(TAG, 'set 0 Preferred Network-> ' + JSON.stringify(this.networkMode) + 'failed tryCatch '  + JSON.stringify(err))
47    }
48  }
49
50  build() {
51
52    Column() {
53      HeadComponent({ title: $r('app.string.network_standard_select'), isTerminateSelf: false });
54      Column() {
55        NetworkStandItem({
56          networkMode: $networkMode,
57          title: $r('app.string.mobile_data_fiveAuto'),
58          thisNetworkMode: radio.PreferredNetworkMode.PREFERRED_NETWORK_MODE_NR_LTE_WCDMA_GSM//34
59        })
60        Divider()
61          .strokeWidth(0.5)
62          .color('#E3E3E3')
63          .lineCap(LineCapStyle.Round)
64          .margin({ left: '2%', right: '2%' })
65        NetworkStandItem({
66          networkMode: $networkMode,
67          title: $r('app.string.mobile_data_fourAuto'),
68          thisNetworkMode: radio.PreferredNetworkMode.PREFERRED_NETWORK_MODE_LTE_WCDMA_GSM //5
69        })
70        Divider()
71          .strokeWidth(0.5)
72          .color('#E3E3E3')
73          .lineCap(LineCapStyle.Round)
74          .margin({ left: '2%', right: '2%' })
75        NetworkStandItem({
76          networkMode: $networkMode,
77          title: $r('app.string.mobile_data_threeAuto'),
78          thisNetworkMode: radio.PreferredNetworkMode.PREFERRED_NETWORK_MODE_WCDMA_GSM//6
79        })
80        Divider()
81          .strokeWidth(0.5)
82          .color('#E3E3E3')
83          .lineCap(LineCapStyle.Round)
84          .margin({ left: '2%', right: '2%' })
85        NetworkStandItem({
86          networkMode: $networkMode,
87          title: $r('app.string.mobile_data_only_5g'),
88          thisNetworkMode: radio.PreferredNetworkMode.PREFERRED_NETWORK_MODE_NR//31
89        })
90        Divider()
91          .strokeWidth(0.5)
92          .color('#E3E3E3')
93          .lineCap(LineCapStyle.Round)
94          .margin({ left: '2%', right: '2%' })
95        NetworkStandItem({
96          networkMode: $networkMode,
97          title: $r('app.string.mobile_data_only_4g'),
98          thisNetworkMode: radio.PreferredNetworkMode.PREFERRED_NETWORK_MODE_LTE//3
99        })
100        Divider()
101          .strokeWidth(0.5)
102          .color('#E3E3E3')
103          .lineCap(LineCapStyle.Round)
104          .margin({ left: '2%', right: '2%' })
105        NetworkStandItem({
106          networkMode: $networkMode,
107          title: $r('app.string.mobile_data_only_3g'),
108          thisNetworkMode: radio.PreferredNetworkMode.PREFERRED_NETWORK_MODE_WCDMA//2
109        })
110        Divider()
111          .strokeWidth(0.5)
112          .color('#E3E3E3')
113          .lineCap(LineCapStyle.Round)
114          .margin({ left: '2%', right: '2%' })
115        NetworkStandItem({
116          networkMode: $networkMode,
117          title: $r('app.string.mobile_data_2g'),
118          thisNetworkMode: radio.PreferredNetworkMode.PREFERRED_NETWORK_MODE_GSM//1
119        })
120      }
121      .padding({
122        left: 4,
123        right: 4,
124        top: 4,
125        bottom: 4
126      })
127      .width('90%')
128      .borderRadius(16)
129      .backgroundColor(Color.White)
130    }.height('100%')
131    .width('100%')
132    .backgroundColor($r('sys.color.ohos_id_color_sub_background'))
133  }
134}