2012-04-07 12 views
1

3GデータセッションとWIFI Directを同時に使用できますか?もしそうなら、2つのIPアドレスが存在します、それは混乱を引き起こすでしょうか? 1つの例:WIFIダイレクトセッションと3Gデータセッションを同時に使用できますか?

ビデオファイルをダウンロードする3Gを使用すると、現在進行状況は50%です。今すぐ画像を選択し、WIFIDirectを使用してBに共有したい場合は、これがビデオファイルのダウンロードを中断することなく成功しますか? WIFIの接続はOKですが、次にIPアドレスが使用される画像共有で2つのIPアドレスを持っていますか?

答えて

0

3GデータセッションとWIFI Directを同時に使用できますか? はい...できます

ビデオファイルのダウンロードを中断することなくこれが成功しますか? はい..

IPアドレスはどのIPアドレスが使用されますか? ローカルIPだと思います。 haventチェック済み

+0

画像共有アプリの場合、ソケットを使用すると2つのIPアドレスが使用でき、明示的に任意のIPアドレスをバインドしなかったとすると、使用されるIPアドレスは混乱します!! – nicefuture

1

WiFiをオンにすると自動的に3gがオフになり、デフォルトの接続としてWiFiが使用されるため、2つの同時接続はできません。そしてその逆も同様です。

少なくとも、これは私のすべてのAndroid搭載端末で気づいた動作です。

+0

私はまだWifi-Directを体験していませんが、論理的には、wifi directのルートテーブルはWLANを扱うときとはまったく異なっていると思います。 WLANに接続していない状態で、両方の接続を同時に準備できます。接続すると、WIFIが最も優先順位の高いインターフェイスなので、3Gが無効になります。しかし、wifidirectはネットワークに接続するためではなく、2つの異なるデバイスを接続して共有することができます。それはWIFI-DIRECTを介してパケットをそのIPアドレスだけに送るためにルートテーブルにエントリを作成する必要がありますので、ネットワーク接続を利用できるようにしてください。 – Kasas

0

Uがルートuはビデオがこのhelps..`

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; 
} 

希望..`保存されているホストアドレスを知っていれば...
すなわちビデオのダウンロードは以下のように起こってできrequestRouteToHostのAPIを使用してすることができます

2

私の3Gがオンになっている間に私のGalaxy Nexusで自分のWiFi Directアプリケーションを実行していますが、これまでに何の問題も経験していません。これは、WiFi Directアプリケーションがandroid.net.wifi.p2pパッケージを使用しているため、最も確かです。 3G経由でIPを取得すると、android.net.wifiパッケージが使用されます。したがって、お使いのデバイスには2つの異なるIPアドレスが使用できます。また、画像の共有には、ローカルIPが使用されます。

0

Androidの携帯電話では、同時に2つのインターフェイスを同時に使用することはできませんが、アプリケーション開発を通じて行うことができます。私は、Windows用のダウンロードアクセラレータを開発しました。このアクセラレータは、TCP接続にWIFIとイーサネットの両方のインターフェイスを同時に使用します。

2つのインターフェイスは、2つの異なるIPアドレスを持つTCP接続にのみ使用できます。最初にファイルのサイズをバイト単位で判断し、各インタフェースでバイト要求を送信するAndroid端末用のアプリケーションを開発することができます。同時接続インタフェースでは、UDP接続は不可能であることに注意してください。

+0

いくつかのコーディングサンプルが適切でしょう。 – Mark

関連する問題