为什么Android只能处理一个活动的Internet连接?

时间:2013-07-20 21:11:29

标签: android android-networking

我遇到了Android中的奇怪问题。我使用此代码获取有关所有Internet连接的信息:

    NetworkInfo[] info = connectivityManager.getAllNetworkInfo();
    for (NetworkInfo networkInfo : info)
    {
        Log.d("LOG","networkInfo = " + networkInfo);
    }

我在我的设备上测试了这个,我打开了WiFi连接并拥有一个活动的移动互联网(EDGE)。但是在展示中:type: mobile[EDGE], state: DISCONNECTED/DISCONNECTEDtype: WIFI[], state: CONNECTED/CONNECTED但是当我关闭WiFi时,会显示type: mobile[EDGE], state: CONNECTED/CONNECTED

有人可以解释一下这种奇怪的行为。看起来Android虽然有几个连接,但只能处理一个连接(而且它总是喜欢通过EDGE连接WiFi)。是否有一些解决方法?或者可能是一个错误?

1 个答案:

答案 0 :(得分:3)

  

有人能解释我这种奇怪的行为。

Android使用WiFi(如果可用)。否则,它使用移动数据。

  

似乎Android只能处理一个连接,尽管有几个连接活动。

Android通常一次只使用一个连接。在世界上大多数地方,移动数据是按计量的,因此如果WiFi可用,Android会使用它来降低用户的成本。

操作系统能够同时使用多个连接(请参阅WiFi热点设施),但对于正常操作,只需要一个连接。