2012-04-07 32 views
1

3G數據會話和WIFI Direct可以同時工作嗎?如果是這樣,那麼兩個IP地址存在,會造成混亂嗎?舉個例子:WIFI Direct和3G數據會話可以同時工作嗎?

用3G下載一個視頻文件,現在進度是50%。現在選擇一張圖片,並且要使用WIFIDirect共享給B,這會不會中斷視頻文件的下載?說WIFI連接是好的,那麼A有2個IP地址,在圖片共享中,將使用哪個IP地址?

回答

0

3G數據會話和WIFI Direct可以同時工作嗎? 是...可以工作

這樣就不會中斷視頻文件的下載嗎? 是的..

在圖片共享中,將使用哪個IP地址? 本地IP我猜。沒有檢查雖然

+0

對於圖片共享應用程序,當它使用套接字時,可以使用2個IP地址,並且說它沒有明確地綁定任何IP地址,那麼使用哪個IP地址會感到困惑! – nicefuture 2012-04-07 11:46:09

1

我不認爲兩個同時連接是可能的,因爲當你打開WiFi時,它會自動關閉3G並使用WiFi作爲默認連接。反之亦然。

至少這是我注意到我所有的Android手機的行爲。

+0

我還沒有使用Wifi-Direct的經驗,但合乎邏輯的想法是,wifi直接路由表與WLAN工作完全不同。我們的想法是,您可以同時準備好兩個連接,而不連接到WLAN,因此當您連接它時,3G被禁用,因爲WIFI是最優先的接口。然而,wifidirect不是用於連接到網絡,而是連接兩個不同的設備並共享思考。這應該只在路由表中的條目通過WIFI-DIRECT發送數據包到該IP地址,因此網絡連接將可用 – Kasas 2013-07-31 09:48:44

0

U可以使用路由API requestRouteToHost ..
即視頻下載可以如下發生如果u知道視頻存儲..`

ConnectivityManager connManager = null; 

    if(mContext != null) { 
     connManager = (ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE); 

     NetworkInfo[] netInfos = connManager.getAllNetworkInfo(); 
     for(int loop_index=0;loop_index<netInfos.length;loop_index++){   
      switch(netInfos[loop_index].getType()) 
      { 
      case ConnectivityManager.TYPE_MOBILE_HIPRI: 
       if(netInfos[loop_index].getState()== NetworkInfo.State.CONNECTED){ 
        connectionSet = connManager.requestRouteToHost(ConnectivityManager.TYPE_MOBILE_HIPRI, lookupHost("Video Stored Address")); 
       } 
       break; 

      case ConnectivityManager.TYPE_WIFI: 
       if(netInfos[loop_index].getState()== NetworkInfo.State.CONNECTED) 

       break; 

      default: 
       if(netInfos[loop_index].getState()== NetworkInfo.State.CONNECTED) 

       break; 
      } 
     } 
    } 

private static int lookupHost(String hostname) { 
    InetAddress inetAddress; 
    try { 
     inetAddress = InetAddress.getByName(hostname); 
    } catch (UnknownHostException e) { 
     return -1; 
    } 
    byte[] addrBytes; 
    int addr; 
    addrBytes = inetAddress.getAddress(); 
    addr = ((addrBytes[3] & 0xff) << 24) 
      | ((addrBytes[2] & 0xff) << 16) 
      | ((addrBytes[1] & 0xff) << 8) 
      | (addrBytes[0] & 0xff); 
    return addr; 
} 

希望這helps..`主機地址

2

我在Galaxy Nexus上運行自己的WiFi Direct應用程序,同時我的3G已啓動,迄今爲止我還沒有遇到任何問題。這當然是因爲WiFi Direct應用程序使用android.net.wifi.p2p軟件包。當你通過3G獲得你的IP時,使用android.net.wifi包。因此,您的設備可以有兩種不同的IP地址。而對於圖片共享,將使用本地IP。

0

雖然Android手機不允許同時使用兩個接口,但可以通過應用程序開發完成。我開發了Windows下載加速器,可同時爲TCP連接同時使用WIFI和以太網接口。

這兩個接口只能用於TCP連接,有兩個不同的IP地址。您可以開發一款Android手機應用程序,首先以字節爲單位確定文件大小,並在每個界面上發送字節請求。請記住,併發接口中的UDP連接是不可能的。

+0

一些編碼樣本將是適當的。 – Mark 2014-07-05 23:31:08

相關問題