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

如何判断Android设备是否开启DHCP功能或使用静态IP?

Android设备判断DHCP/静态IP配置的方法

WiFi网络判断

通过系统WifiManager可获取当前WiFi连接的IP配置类型,核心是检查IpConfiguration中的ipAssignment字段:

  1. 权限声明
    在AndroidManifest.xml中添加必要权限:

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- Android 10+ 必需 -->
    
  2. 代码实现

    WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
    WifiInfo wifiInfo = wifiManager.getConnectionInfo();
    if (wifiInfo != null) {
        // 获取当前WiFi连接的IP配置
        IpConfiguration ipConfig = wifiManager.getConfiguredNetworks().stream()
                .filter(network -> network.networkId == wifiInfo.getNetworkId())
                .findFirst()
                .map(WifiConfiguration::getIpConfiguration)
                .orElse(null);
        
        if (ipConfig != null) {
            if (ipConfig.getIpAssignment() == IpConfiguration.IpAssignment.STATIC) {
                // 静态IP配置
                Log.d("IP_CONFIG", "WiFi使用静态IP");
            } else if (ipConfig.getIpAssignment() == IpConfiguration.IpAssignment.DHCP) {
                // DHCP配置
                Log.d("IP_CONFIG", "WiFi使用DHCP");
            }
        }
    }
    

以太网(网线)网络判断

对于以太网连接,需通过ConnectivityManager获取网络链接属性,判断是否存在静态IP配置:

  1. 权限声明
    在AndroidManifest.xml中添加:

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
  2. 代码实现

    ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    Network activeNetwork = connManager.getActiveNetwork();
    if (activeNetwork != null) {
        LinkProperties linkProperties = connManager.getLinkProperties(activeNetwork);
        if (linkProperties != null) {
            // 检查是否有静态IP配置
            StaticIpConfiguration staticIpConfig = linkProperties.getStaticIpConfiguration();
            if (staticIpConfig != null) {
                // 静态IP配置
                Log.d("IP_CONFIG", "以太网使用静态IP");
            } else {
                // DHCP配置(无静态IP则默认DHCP)
                Log.d("IP_CONFIG", "以太网使用DHCP");
            }
        }
    }
    

注意事项

  • Android版本差异:部分API在Android 8.0(API 26)及以上可用,需针对低版本做兼容处理。
  • 权限动态申请:Android 6.0+ 需动态申请ACCESS_FINE_LOCATION等危险权限,否则无法获取WiFi配置信息。
  • 以太网适配:部分设备的以太网配置可能依赖厂商自定义API,上述方法为通用系统API实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 20:15:38