2012-08-17 13 views
6

मैंने Google में खोज की है। मैंने बहुत कोशिश की। एंड्रॉइड 2.2 और एसडीके 8 में मैं एंड्रॉइड की सूची में एसएसआईडी का उपयोग कैसे कर सकता हूं? एसएसआईडी का उपयोग करके प्रोग्रामेटिक रूप से विशिष्ट वाईफाई सक्षम डिवाइस गुण प्राप्त करना चाहिए। उस सहायता के साथ, एंड्रॉइड में दो वाईफाई सक्षम डिवाइसों के बीच डेटा को स्थानांतरित करना चाहिए। क्या कोई इस plz में मेरी मदद कर सकता है?दो वाईफ़ाई डिवाइसों के बीच डेटा स्थानांतरण

उत्तर

17

दो एंड्रॉइड डिवाइसों के बीच सार्थक ढंग से डेटा भेजने के लिए आप एक टीसीपी कनेक्शन का उपयोग करेंगे। ऐसा करने के लिए आपको आईपी पता और बंदरगाह की आवश्यकता है जिस पर अन्य डिवाइस सुन रहा है।

उदाहरण 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 पता या होस्टनाम के साथ "स्थानीय होस्ट" की जगह:

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. 

कोड के लिए सत्यापन इस 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 

गूगल डेवलपर्स में इस लिंक को देख wifip2p और P2P Connection with Wi-Fi

गिथब WifiDirectFileTransfer

में नमूना पकड़ें
संबंधित मुद्दे