[文章]HarmonyOS开发-观察蜂窝网络状态变化开发体验

阅读量0
0
4
应用可以通过观察蜂窝网络状态变化,来接收最新蜂窝网络服务状态信息、信号信息等。harmonyOS中,RadioStateObserver类中提供了观察蜂窝网络状态变化的方法
代码如下所示:
  1. public class MainAbility extends AceAbility {
  2.     private static final HiLogLabel TAG = new HiLogLabel(HiLog.LOG_APP,0x0,"网络");
  3.     @Override
  4.     public void onStart(Intent intent) {
  5.         super.onStart(intent);
  6.         // 获取RadioInfoManager对象。
  7.         RadioInfoManager radioInfoManager = RadioInfoManager.getInstance(getContext());
  8.         // 执行回调的runner。
  9.         EventRunner runner = EventRunner.create();
  10. // 创建***StateObserver的对象。
  11.         ***StateObserver observer = new ***StateObserver(1, runner);
  12. // 添加回调,以NETWORK_STATE和SIGNAL_INFO为例。
  13.         radioInfoManager.addObserver(observer, RadioStateObserver.OBSERVE_MASK_NETWORK_STATE | RadioStateObserver.OBSERVE_MASK_SIGNAL_INFO);
  14.     }
  15.     // 创建继承RadioStateObserver的类***StateObserver
  16.     class ***StateObserver extends RadioStateObserver {
  17.         // 构造方法,在当前线程的runner中执行回调,slotId需要传入要观察的卡槽ID(0或1)。
  18.         ***StateObserver(int slotId) {
  19.             super(slotId);
  20.         }
  21.         // 构造方法,在执行runner中执行回调。
  22.         ***StateObserver(int slotId, EventRunner runner) {
  23.             super(slotId, runner);
  24.         }
  25.         // 网络注册状态变化的回调方法。
  26.         @Override
  27.         public void onNetworkStateUpdated(NetworkState state) {
  28.             HiLog.info(TAG,"网络注册状态变化:"+state.toString());
  29.         }
  30.         // 信号信息变化的回调方法。
  31.         @Override
  32.         public void onSignalInfoUpdated(List<SignalInformation> signalInfos) {
  33.             HiLog.info(TAG,"信号信息变化:"+signalInfos.toString());
  34.         }
  35.     }
  36.     @Override
  37.     public void onStop() {
  38.         super.onStop();
  39.     }
  40. }
复制代码
代码:

回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友