2012-08-17 10 views
6

Googleで検索しました。私はたくさん試しました。 Android 2.2とsdk 8では、どのようにSSIDをAndroidのListで使用できますか? SSIDを使用することにより、特定のWi-Fi対応デバイスプロパティをプログラムで取得する必要があります。その助けを借りて、アンドロイドの2つのWifi対応デバイス間でデータを転送する必要があります。誰もこのPLZで私を助けることができますか?2台のWi-Fiデバイス間のデータ転送

答えて

17

2つのAndroidデバイス間で意味のある方法でデータを送信するには、TCP接続を使用します。これを行うには、他のデバイスが受信しているIPアドレスとポートが必要です。

例は、hereから取られます。サーバ側の場合

(側を聞いて)あなたはサーバソケットを必要とします。クライアント側の場合

try { 
     Boolean end = false; 
     ServerSocket ss = new ServerSocket(12345); 
     while(!end){ 
       //Server is waiting for client here, if needed 
       Socket s = ss.accept(); 
       BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream())); 
       PrintWriter output = new PrintWriter(s.getOutputStream(),true); //Autoflush 
       String st = input.readLine(); 
       Log.d("Tcp Example", "From client: "+st); 
       output.println("Good bye and thanks for all the fish :)"); 
       s.close(); 
       if (STOPPING conditions){ end = true; } 
     } 
ss.close(); 


} catch (UnknownHostException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
} catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
} 

サーバーソケットに接続したソケットを必要としています。リモートのAndroidデバイスのIPアドレスまたはホスト名では "localhost" を交換してください:コードの場合

try { 
     Socket s = new Socket("localhost",12345); 

     //outgoing stream redirect to socket 
     OutputStream out = s.getOutputStream(); 

     PrintWriter output = new PrintWriter(out); 
     output.println("Hello Android!"); 
     BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream())); 

     //read line(s) 
     String st = input.readLine(); 
     //. . . 
     //Close connection 
     s.close(); 


} catch (UnknownHostException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
} catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
} 
2
For data Transfer between 2 devices over the wifi can be done by using "TCP" protocol. Connection between Client and Server requires 3 things 

1) Using NSD Manager, Client device should get server/host IP Address. 
2) Send data to server using Socket. 
3) Client should send its IP Address to server/host for bi-directional communication. 

は、Googleの開発者で、このlink

For faster transmission of data over wifi can be done by using "WifiDirect" 
which is a "p2p" connection. so that this will transfer the data from 
one to other device without an Intermediate(Socket). For Example catch 

このリンクを参照してくださいverfication wifip2pP2P Connection with Wi-Fi

GithubでサンプルをキャッチWifiDirectFileTransfer

関連する問題