HarmonyOS开发—观察蜂窝网络状态变化开发体验

描述

应用可以通过观察蜂窝网络状态变化,来接收最新蜂窝网络服务状态信息、信号信息等。在harmonyOS中,RadioStateObserver类中提供了观察蜂窝网络状态变化的方法。
代码如下所示:

public class MainAbility extends AceAbility {
    private static final HiLogLabel TAG = new HiLogLabel(HiLog.LOG_APP,0x0,"网络");
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        // 获取RadioInfoManager对象。
        RadioInfoManager radioInfoManager = RadioInfoManager.getInstance(getContext());
        // 执行回调的runner。
        EventRunner runner = EventRunner.create();
// 创建MyRadioStateObserver的对象。
        MyRadioStateObserver observer = new MyRadioStateObserver(1, runner);
// 添加回调,以NETWORK_STATE和SIGNAL_INFO为例。
        radioInfoManager.addObserver(observer, RadioStateObserver.OBSERVE_MASK_NETWORK_STATE | RadioStateObserver.OBSERVE_MASK_SIGNAL_INFO);
    }
    // 创建继承RadioStateObserver的类MyRadioStateObserver
    class MyRadioStateObserver extends RadioStateObserver {
        // 构造方法,在当前线程的runner中执行回调,slotId需要传入要观察的卡槽ID(0或1)。
        MyRadioStateObserver(int slotId) {
            super(slotId);
        }
        // 构造方法,在执行runner中执行回调。
        MyRadioStateObserver(int slotId, EventRunner runner) {
            super(slotId, runner);
        }
        // 网络注册状态变化的回调方法。
        @Override
        public void onNetworkStateUpdated(NetworkState state) {
            HiLog.info(TAG,"网络注册状态变化:"+state.toString());
        }
        // 信号信息变化的回调方法。
        @Override
        public void onSignalInfoUpdated(List signalInfos) {
            HiLog.info(TAG,"信号信息变化:"+signalInfos.toString());
        }
    }
    @Override
    public void onStop() {
        super.onStop();
    }
}

审核编辑:符乾江
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分