Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Android

Android में वाई-फाई जोड़ी कनेक्शन का उपयोग करके फ़ाइलें कैसे स्थानांतरित करें?

<घंटा/>

यह उदाहरण Android में वाई-फ़ाई जोड़ी कनेक्शन का उपयोग करके फ़ाइलें स्थानांतरित करने के तरीके के बारे में प्रदर्शित करता है

सर्वर और क्लाइंट प्रोजेक्ट चाहिए

सर्वर

चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।

चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।

   <टेक्स्ट व्यू एंड्रॉइड:आईडी ="@+ id/tvConnectionStatus" android:layout_width ="match_parent" android:layout_height ="wrap_content" android:layout_below ="@+id/tvPort" android:textAppearance ="@s tyle/Base.TextAppearance.AppCompat.Medium" />   

चरण 3 - निम्न कोड को src/MainActivity.java

में जोड़ें <पूर्व>पैकेज com.server.myapplication.server;import android.annotation.SuppressLint;import android.net.wifi.WifiInfo;import android.net.wifi.WifiManager;import android.os.Bundle;import android.support.v7 .app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import java.io.BufferedReader;import java.io.IOException;import java. io.InputStreamReader; आयात java.io.PrintWriter; आयात java.net.InetAddress; आयात java.net.ServerSocket; आयात java.net.Socket; आयात java.net.UnknownHostException; java.nio.ByteBuffer आयात करें; java.nio आयात करें .ByteOrder;@SuppressLint("SetTextI18n") Public Class MainActivity, AppCompatActivity { ServerSocket serverSocket; थ्रेड थ्रेड1 =अशक्त; टेक्स्ट व्यू टीवीआईपी, टीवीपोर्ट; टेक्स्ट व्यू टीवी संदेश; संपादन टेक्स्ट और संदेश; बटन btnभेजें; सार्वजनिक स्थैतिक स्ट्रिंग SERVER_IP =""; सार्वजनिक स्थैतिक अंतिम int SERVER_PORT =8080; स्ट्रिंग संदेश; @Override संरक्षित शून्य पर क्रिएट (बंडल सेव किया गया इंस्टेंसस्टेट) {super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); टीवीआईपी =FindViewById (R.id.tvIP); टीवीपोर्ट =FindViewById (R.id.tvPort); tvMessages =findViewById (R.id.tvMessages); etMessage =findViewById (R.id.etMessage); btnSend =findViewById (R.id.btnSend); कोशिश करें {SERVER_IP =getLocalIpAddress (); } कैच (अज्ञातहोस्ट एक्सेप्शन ई) { ई.प्रिंटस्टैकट्रेस (); } थ्रेड 1 =नया थ्रेड (नया थ्रेड 1 ()); थ्रेड1.स्टार्ट (); btnSend.setOnClickListener (नया दृश्य। OnClickListener () {@ ओवरराइड सार्वजनिक शून्य पर क्लिक करें (देखें v) { संदेश =etMessage.getText ()। toString ()। ट्रिम (); अगर (!message.isEmpty ()) {नया धागा ( नया थ्रेड 3 (संदेश))। प्रारंभ (); }}}); } निजी स्ट्रिंग getLocalIpAddress () UnknownHostException फेंकता है {WifiManager wifiManager =(WifiManager) getApplicationContext ()। getSystemService (WIFI_SERVICE); वाईफ़ाई प्रबंधक पर जोर दें! =शून्य; WifiInfo wifiInfo =wifiManager.getConnectionInfo (); int ipInt =wifiInfo.getIpAddress (); वापसी InetAddress.getByAddress(ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN).putInt(ipInt).array()).getHostAddress(); } निजी PrintWriter आउटपुट; निजी BufferedReader इनपुट; कक्षा थ्रेड 1 रननेबल लागू करता है {@ ओवरराइड सार्वजनिक शून्य रन() {सॉकेट सॉकेट; कोशिश करें {सर्वर सॉकेट =नया सर्वर सॉकेट (SERVER_PORT); runOnUiThread (नया रननेबल () {@ ओवरराइड सार्वजनिक शून्य रन () { tvMessages.setText ("कनेक्ट नहीं है"); tvIP.setText ("IP:" + SERVER_IP); tvPort.setText ("पोर्ट:" + String.valueOf ( सर्वर पोर्ट)); } }); कोशिश करें {सॉकेट =सर्वर सॉकेट। स्वीकार करें (); आउटपुट =नया प्रिंटवाइटर (सॉकेट.गेटऑटपुटस्ट्रीम ()); इनपुट =नया BufferedReader (नया इनपुटस्ट्रीम रीडर (सॉकेट.getInputStream ())); runOnUiThread (नया रननेबल () {@ ओवरराइड सार्वजनिक शून्य रन () {tvMessages.setText ("कनेक्टेड \ n"); }}); नया थ्रेड (नया थ्रेड 2 ())। प्रारंभ (); } कैच (IOException e) { e.printStackTrace (); } } कैच (IOException e) { e.printStackTrace (); } } } निजी वर्ग थ्रेड 2 रननेबल लागू करता है {@ ओवरराइड सार्वजनिक शून्य रन () {जबकि (सत्य) {कोशिश करें {अंतिम स्ट्रिंग संदेश =इनपुट। रीडलाइन (); अगर (संदेश! =शून्य) {runOnUiThread (नया रननेबल () {@ ओवरराइड सार्वजनिक शून्य रन () { tvMessages.append ("क्लाइंट:" + संदेश + "\ n"); }}); } और {थ्रेड 1 =नया थ्रेड (नया थ्रेड 1 ()); थ्रेड1.स्टार्ट (); वापसी; } } कैच (IOException e) { e.printStackTrace (); } } } } क्लास थ्रेड3 रननेबल को लागू करता है {निजी स्ट्रिंग संदेश; थ्रेड 3 (स्ट्रिंग संदेश) {यह संदेश =संदेश; } @ ओवरराइड सार्वजनिक शून्य रन () {output.write (संदेश); आउटपुट। फ्लश (); runOnUiThread (नया रननेबल () {@ ओवरराइड सार्वजनिक शून्य रन () { tvMessages.append ("सर्वर:" + संदेश + "\ n"); etMessage.setText (""); }}); } }}

चरण 4 - निम्न कोड को androidManifest.xml में जोड़ें

    <एप्लिकेशन android:allowBackup ="true" android:icon ="@mipmap/ic_launcher" android:label ="@string/app_name" android:roundIcon ="@mipmap/ic_launcher_round" android:supportsRtl ="true" android:theme ="@style/AppTheme"> <गतिविधि android:name =".MainActivity" android:label ="सर्वर"> <इरादे-फ़िल्टर> <कार्रवाई android:name ="android.intent.action.MAIN" /> <श्रेणी android:name ="android.intent.category.LAUNCHER" />   

ग्राहक

चरण 1 - एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं, फाइल ⇒ न्यू प्रोजेक्ट पर जाएं और एक नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।

चरण 2 - निम्न कोड को res/layout/activity_main.xml में जोड़ें।

   <बटन एंड्रॉइड:आईडी ="@ + आईडी /btnConnect" android:layout_width ="match_parent" android:layout_height ="wrap_content" android:layout_below ="@+id/etPort" android:layout_gravity ="center" android:layout_marginT op ="16dp" android:text ="सर्वर से कनेक्ट करें" />   

चरण 3 - निम्न कोड को res/layout/MainActivity.java में जोड़ें।

<पूर्व>पैकेज com.client.myapplication.client;import android.annotation.SuppressLint;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;आयात android.widget.EditText;import android.widget.TextView;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket; @SuppressLint("SetTextI18n")सार्वजनिक वर्ग MainActivity AppCompatActivity {Thread Thread1 =null; एडिटटेक्स्ट एटआईपी, एटपोर्ट; टेक्स्ट व्यू टीवी संदेश; संपादन टेक्स्ट और संदेश; बटन btnभेजें; स्ट्रिंग SERVER_IP; इंट सर्वर_पोर्ट; @Override संरक्षित शून्य पर क्रिएट (बंडल सेव किया गया इंस्टेंसस्टेट) {super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); etIP =findViewById (R.id.etIP); etPort =findViewById (R.id.etPort); tvMessages =findViewById (R.id.tvMessages); etMessage =findViewById (R.id.etMessage); btnSend =findViewById (R.id.btnSend); बटन btnConnect =findViewById (R.id.btnConnect); btnConnect.setOnClickListener (नया दृश्य। OnClickListener () {@ ओवरराइड सार्वजनिक शून्य पर क्लिक करें (देखें v) { tvMessages.setText (""); SERVER_IP =etIP.getText ()। toString ()। ट्रिम (); SERVER_PORT =Integer.parseInt (etPort.getText ()। toString ()। ट्रिम ()); थ्रेड 1 =नया थ्रेड (नया थ्रेड 1 ()); थ्रेड 1.स्टार्ट (); }}); btnSend.setOnClickListener (नया दृश्य। OnClickListener () {@ ओवरराइड सार्वजनिक शून्य पर क्लिक करें (देखें v) {स्ट्रिंग संदेश =etMessage.getText ()। (नया थ्रेड 3 (संदेश))। प्रारंभ (); } } }); } निजी PrintWriter आउटपुट; निजी BufferedReader इनपुट; कक्षा थ्रेड 1 रननेबल लागू करता है {@ ओवरराइड सार्वजनिक शून्य रन() {सॉकेट सॉकेट; कोशिश करें {सॉकेट =नया सॉकेट (SERVER_IP, SERVER_PORT); आउटपुट =नया प्रिंटवाइटर (सॉकेट.गेटऑटपुटस्ट्रीम ()); इनपुट =नया BufferedReader (नया इनपुटस्ट्रीम रीडर (सॉकेट.getInputStream ())); runOnUiThread (नया रननेबल () {@ ओवरराइड सार्वजनिक शून्य रन () {tvMessages.setText ("कनेक्टेड \ n"); }}); नया थ्रेड (नया थ्रेड 2 ())। प्रारंभ (); } कैच (IOException e) { e.printStackTrace (); } } } क्लास थ्रेड2 रननेबल को लागू करता है {@Override public void run() { जबकि (true) { try { final String message =input.readLine(); अगर (संदेश! =शून्य) {runOnUiThread (नया रननेबल () {@ ओवरराइड सार्वजनिक शून्य रन () { tvMessages.append ("सर्वर:" + संदेश + "\ n"); }}); } और {थ्रेड 1 =नया थ्रेड (नया थ्रेड 1 ()); थ्रेड1.स्टार्ट (); वापसी; } } कैच (IOException e) { e.printStackTrace (); } } } } क्लास थ्रेड3 रननेबल को लागू करता है {निजी स्ट्रिंग संदेश; थ्रेड 3 (स्ट्रिंग संदेश) {यह संदेश =संदेश; } @ ओवरराइड सार्वजनिक शून्य रन () {output.write (संदेश); आउटपुट। फ्लश (); runOnUiThread (नया रननेबल () {@ ओवरराइड सार्वजनिक शून्य रन () { tvMessages.append ("क्लाइंट:" + संदेश + "\ n"); etMessage.setText (""); }}); } }}

चरण 4 - निम्न कोड को androidManifest.xml में जोड़ें

<मेनिफेस्ट xmlns:android ="https://schemas.android.com/apk/res/android" package ="com.client. myapplication.client"> <उपयोग-अनुमति android:name ="android.permission.INTERNET" />   <गतिविधि एंड्रॉइड:नाम ="com.client.myapplication.client.MainActivity" एंड्रॉइड:लेबल ="क्लाइंट"> <इरादे-फ़िल्टर> <कार्रवाई एंड्रॉइड:नाम ="android.intent.action.MAIN" /> <श्रेणी एंड्रॉइड:नाम =" android.intent.category.LAUNCHER" />   

आइए आपके सर्वर और क्लाइंट एप्लिकेशन दोनों को चलाने का प्रयास करें। मुझे लगता है कि आपने अपने वास्तविक Android मोबाइल डिवाइस को अपने कंप्यूटर से कनेक्ट कर लिया है। एंड्रॉइड स्टूडियो से ऐप चलाने के लिए, अपने प्रोजेक्ट की गतिविधि फ़ाइलों में से एक खोलें और रन पर क्लिक करें टूलबार से Android में वाई-फाई जोड़ी कनेक्शन का उपयोग करके फ़ाइलें कैसे स्थानांतरित करें? आइकन। एक विकल्प के रूप में अपने मोबाइल डिवाइस का चयन करें और फिर अपने मोबाइल डिवाइस की जांच करें जो आपकी डिफ़ॉल्ट स्क्रीन प्रदर्शित करेगा -

सर्वर:-

Android में वाई-फाई जोड़ी कनेक्शन का उपयोग करके फ़ाइलें कैसे स्थानांतरित करें?

ग्राहक:-

Android में वाई-फाई जोड़ी कनेक्शन का उपयोग करके फ़ाइलें कैसे स्थानांतरित करें?

सर्वर:-

Android में वाई-फाई जोड़ी कनेक्शन का उपयोग करके फ़ाइलें कैसे स्थानांतरित करें?


  1. एंड्रॉयड इंटरनल स्टोरेज से एसडी कार्ड में फाइल कैसे ट्रांसफर करें

    सभी एंड्रॉइड स्मार्टफोन में एक सीमित आंतरिक भंडारण क्षमता होती है जो समय के साथ भर जाती है। यदि आप कुछ वर्षों से अधिक समय से स्मार्टफोन का उपयोग कर रहे हैं, तो संभावना है कि आप पहले से ही अपर्याप्त भंडारण स्थान की समस्या का सामना कर रहे हैं। ऐसा इसलिए है, क्योंकि समय के साथ, ऐप्स का आकार और उनसे जुड

  1. कंप्यूटर और एंड्रॉइड फोन के बीच फाइल ट्रांसफर कैसे करें

    यदि आपने हाल ही में एक एंड्रॉइड फोन पर स्विच किया है या एक नया पीसी लाया है। कभी-कभी फ़ाइल-साझाकरण की आवश्यकता होती है और यदि आप इसके लिए नए हैं, तो घबराएं नहीं, हमने आपको कवर किया है, क्योंकि यह ब्लॉग आपकी फ़ाइलों को कंप्यूटर से Android पर साझा करने के लिए आवश्यक तरीके बताता है। ऐसे कई कारण हैं जि

  1. Windows 10 पर नियरबी शेयरिंग का उपयोग करके फ़ाइलें कैसे स्थानांतरित करें

    माइक्रोसॉफ्ट विंडोज 10 1803 का नवीनतम अपडेट विभिन्न उपयोगी सुविधाओं के साथ आता है। उनमें से एक Apple के AirDrop की तरह है जो आपको आस-पास के अन्य उपकरणों के साथ लिंक और फ़ाइलों को वायरलेस तरीके से साझा करने देता है। इस नए फीचर को नियरबी शेयरिंग कहा जाता है। आप इस नई सुविधा का उपयोग करके ब्लूटूथ और वा