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

鸿蒙时代
发布于 2022-3-14 18:05
浏览
0收藏

应用可以通过观察蜂窝网络状态变化,来接收最新蜂窝网络服务状态信息、信号信息等。在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<SignalInformation> signalInfos) {
            HiLog.info(TAG,"信号信息变化:"+signalInfos.toString());
        }
    }
    @Override
    public void onStop() {
        super.onStop();
    }
}

分类
标签
HarmonyOS开发-观察蜂窝网络状态变化开发体.docx 19.58K 18次下载
RadioState-观察蜂窝网络状态变化.rar 3.13M 11次下载
2
收藏
回复
举报
回复
    相关推荐