3

我有一个检查网络连接的功能:

ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo[] networkInfos = cm.getAllNetworkInfo();

但是,一旦连接了 Wifi 网络,移动网络就会显示为 DISCONNECTED

我怎么知道两个网络是否已连接?

在此先感谢您的时间。

4

3 回答 3

4

尝试这个:

ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
NetworkInfo wifi = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mobileNet = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if(netInfo!=null){
  if(mobileNet.isConnected()){
    System.out.println("Mobile Network is connected");

  }
  if(wifi.isConnected()){
    System.out.println("Wi-fi Network is connected");
  }

}
于 2013-07-19T13:14:44.743 回答
1

我怎么知道两个网络是否已连接?

您可以创建肯定的方法来检查这两种类型 eq

if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
   // do your stuff
}
if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {
   // do your stuff
}

但在 Android 操作系统中,如果 Wifi 和移动网络可用(并且您可以连接到),操作系统将默认选择 Wifi,因此它将使用 Wifi 作为活动网络连接。

于 2013-07-19T13:27:46.403 回答
0

Android 设备只能有一个连接!(WiFi 或手机)

  1. 如果 WiFi 可用 - 系统将尝试连接到它
  2. 如果 WiFi 不可用且 Mobile 已打开 - 系统将尝试连接到 Mobile
  3. 当系统连接到 WiFi 时 - 在您尝试连接之前,您不能确定移动设备会正常工作。
  4. 移动也一样
于 2013-11-22T12:42:21.503 回答