如何知道Android是否连接到WiFi或以太网?

Mus*_*laa 5 android ethernet wifi

如何知道我是否已连接到 Android 中的 WiFi 或以太网?在 Android 操作系统中,这会收到有关图标的通知 在此处输入图片说明

是否存在以编程方式了解它的方法?

小智 9

http://developer.android.com/training/basics/network-ops/managing.html

ConnectivityManager cm = (ConnectivityManager) getActivity().
            getSystemService(context.CONNECTIVITY_SERVICE);
Run Code Online (Sandbox Code Playgroud)

然后你使用:

cm.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_ETHERNET
Run Code Online (Sandbox Code Playgroud)

或者:

cm.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI
Run Code Online (Sandbox Code Playgroud)

检查它是否在 Wifi 或以太网上。

希望有所帮助。


Kuf*_*ffs 5

这够了吗?

ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo Wifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (Wifi.isConnected()) { return true; }
Run Code Online (Sandbox Code Playgroud)

此外,要获取 wifi 详细信息:

WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
return wifiInfo.getSSID()
Run Code Online (Sandbox Code Playgroud)


Mus*_*laa 2

谢谢大家

只是为了避免异常(无网络情况)。我分享我测试过的代码。

private Boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager 
          = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting();
}

public Boolean isWifiConnected(){
    if(isNetworkAvailable()){
        ConnectivityManager cm 
        = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        return (cm.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI);
    }
    return false;
}

public Boolean isEthernetConnected(){
    if(isNetworkAvailable()){
        ConnectivityManager cm 
        = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        return (cm.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_ETHERNET);
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)