• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 获取当前蜂窝网络信号信息
2
3
4## 场景介绍
5
6应用通常需要获取用户所在蜂窝网络下信号信息,以便获取当前驻网质量。开发者可以通过本业务,获取到用户指定SIM卡当前所在网络下的信号信息。
7
8
9## 接口说明
10
11radio模块提供了获取当前网络信号信息的方法。observer模块为开发者提供蜂窝网络状态订阅和取消订阅功能。具体接口说明如下表。
12
13| 功能分类 | 接口名 | 描述 | 所需权限 |
14| -------- | -------- | -------- | -------- |
15| 信号强度信息 | radio.getSignalInformation​​() | 获取当前注册蜂窝网络信号强度信息 | 无 |
16| 订阅蜂窝网络信号变化 | observer.on('signalInfoChange') | 订阅蜂窝网络信号变化 | 无 |
17| 取消订阅蜂窝网络信号变化 | observer.off('signalInfoChange') | 取消订阅蜂窝网络信号变化 | 无 |
18
19
20## 开发步骤
21
221. import需要的模块。
23
242. 调用getSignalInformation()方法,返回所有SignalInformation列表。
25
263. 遍历SignalInformation数组,并分别根据不同的signalType得到不同制式的信号强度。
27
284. 订阅蜂窝网络信号变化(可选)。
29
30   ```js
31   import radio from '@ohos.telephony.radio'
32   import observer from '@ohos.telephony.observer';
33
34   // 以获取卡1的信号强度为例
35   let slotId = 0;
36   radio.getSignalInformation(slotId, (err, data) => {
37       if (!err) {
38           console.log("get signal information success.");
39           // 遍历数组,输出不同网络制式下的信号强度
40           for (let j = 0; j < data.length; j++) {
41               console.log("type:" + data[j].signalType + ", level:" + data[j].signalLevel);
42           }
43       } else {
44           console.log("get signal information fail, err is:" + JSON.stringify(err));
45       }
46   });
47   // 订阅蜂窝网络信号变化(可选)
48   observer.on("signalInfoChange", (data) => {
49       console.log("signal info change, data is:" + JSON.stringify(data));
50   });
51   ```
52
53## 相关实例
54
55针对蜂窝网络数据开发,有以下相关实例可供参考:
56- [`MobileNetwork`:蜂窝数据(ArkTS)(API9)](https://gitee.com/openharmony/applications_app_samples/tree/OpenHarmony-3.2-Release/code/BasicFeature/Telephony/MobileNetwork)