You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在HarmonyOS中检测设备网络连接状态及网络连接类型

Android 设备联网状态与网络类型检测实现

功能说明

我们需要实现两个核心检测逻辑:

  • 判断设备当前是否已接入互联网
  • 区分当前使用的网络类型(移动数据/WiFi)

前置权限声明

使用该功能前需要先在AndroidManifest.xml中添加网络状态访问权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

实现代码

public boolean isConnectingToInternet(Activity act){
        boolean isthere = false;
        TelephonyManager tm = (TelephonyManager) act.getSystemService(Context.TELEPHONY_SERVICE); 
        if (tm.getSimState() != TelephonyManager.SIM_STATE_UNKNOWN){
            ConnectivityManager connectivityManager = (ConnectivityManager) act.getSystemService(Context.CONNECTIVITY_SERVICE);
            if ((connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED ||connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED))
                isthere = true;
        } else {
            ConnectivityManager connectivityManager = (ConnectivityManager) act.getSystemService(Context.CONNECTIVITY_SERVICE);
            if ((connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED))
                isthere = true;
        }
        return isthere;
    }

逻辑说明

  • 首先读取设备SIM卡状态,如果SIM卡可被正常识别,会同时检测移动数据网络和WiFi网络的连接状态,任意一种网络处于已连接状态就判定为已联网
  • 如果设备未识别到SIM卡,仅检测WiFi网络的连接状态,判定是否已联网

版本适配说明

注意:上述代码中使用的getNetworkInfo方法在Android 10(API 29)及以上系统版本已被官方废弃,更高版本系统推荐使用NetworkCapabilities类实现同类检测逻辑

内容的提问来源于stack exchange,提问作者Raj Bhagat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 19:54:02