2012-03-07 19 views
18

एक दूसरे के साथ संवाद करने के लिए दो उपकरणों पर स्थापित एंड्रॉइड ऐप के लिए सबसे अच्छा तरीका क्या है? क्या डिवाइस टेक्स्ट मैसेजिंग के बिना सीधे कनेक्ट हो सकते हैं?एंड्रॉइड - दो उपकरणों के बीच संचार

+0

एंड्रॉइड बीम :) लेकिन यह केवल कुछ नए उपकरणों पर उपलब्ध है। –

उत्तर

12

आप ब्लूटूथ सॉकेट का उपयोग कर ब्लूटूथ के माध्यम से उन्हें कनेक्ट कर सकते हैं। एंड्रॉइड डेवलपर वेबसाइट पर इस पर बहुत अच्छा दस्तावेज है।

http://developer.android.com/guide/topics/wireless/bluetooth.html

या आप चाहते हैं (और दोनों उपकरणों पर इंटरनेट है), तो आप नियमित रूप से सॉकेट का उपयोग कर सकते हैं।

सर्वर साइड http://developer.android.com/reference/java/net/Socket.html ग्राहक के पक्ष

के लिए के लिए http://developer.android.com/reference/java/net/ServerSocket.html आप डेटा की एक बड़ी राशि हस्तांतरण करने के लिए है, तो इंटरनेट सॉकेट एक बड़ा डेटा की क्षमता है और तेजी से किया जाएगा। दूसरा फायदा यह है कि "सीमा से बाहर" जैसी कोई चीज़ नहीं है। जहां भी इंटरनेट उपलब्ध है, आप दो डिवाइसों को कनेक्ट कर सकते हैं, जबकि ब्लूटूथ के साथ उन्हें एक दूसरे की ब्लूटूथ रेंज के भीतर होना चाहिए

+0

हैलो डेरेक, मेरे कुछ प्रश्न हैं। मुझे उम्मीद है कि आप जवाब देंगे। ऐप को सर्वर का आईपी पता कैसे प्राप्त किया जाता है? और आरएमआई केवल तब काम करता है जब दोनों डिवाइस एक ही नेटवर्क का उपयोग करते हैं, किसी भी मौके से यह सॉकेट के लिए समान है? – Ruturaj

+1

क्या "वाईफाई-डायरेक्ट" एक विकल्प भी नहीं है? – Mick

1

आप जो कर रहे हैं उस पर निर्भर करता है। यदि आपके पास कोई सर्वर है, तो आप इसे कुछ संदेश भेज सकते हैं और इसे दूसरे डिवाइस द्वारा खींचा जा सकता है (माना जाता है कि दोनों क्लाइंट ऐप इंस्टॉल हैं)। मुझे लगता है कि यह सबसे सहज तरीका होगा (लेकिन यह वास्तव में आप जो संचार कर रहे हैं उस पर निर्भर करता है)।

टेक्स्ट मैसेजिंग और ईमेल काम कर सकता है, लेकिन आप (या उपयोगकर्ता) को ऐसा करने के लिए किसी डिवाइस से जुड़े नंबर/ईमेल जानना आवश्यक है।

2

आप PubNub का उपयोग कर सकते हैं। यह सभी नेटवर्किंग को संभालता है और आपको केवल संदेशों के बारे में ध्यान रखना चाहिए। इसमें काम करने के लिए बहुत अच्छा एपीआई है।

(धन्यवाद @Ian जेनिंग्स को: Can we send data from an android device to another android device directly (p2p) without server in the middle?)

0

एंड्रॉयड एनएसडी एपीआई सटीक एक ही बात आप को प्राप्त करने की कोशिश कर रहे हैं करने के लिए है! एसडीके के साथ बंडल उदाहरण आत्म व्याख्यात्मक है!

जांचें:

Android NSD API example

14

आप कई विकल्प हैं अपनी आवश्यकताओं और सेटअप के आधार पर:

  • अपने उपकरणों (लगभग 10 मीटर तक) एक दूसरे के बहुत करीब हैं, तो , आप ब्लैक का उपयोग करके संवाद कर सकते हैं, जैसा कि डेरेक ने सुझाव दिया था।
  • यदि आपके डिवाइस कुछ और दूर हैं, लेकिन एक दूसरे की वाईफाई रेंज (लगभग 100 मीटर तक) के भीतर, तो वे पीयर-टू-पीयर वाईफाई एपीआई का उपयोग करके एक दूसरे के साथ संवाद कर सकते हैं, here दस्तावेज (एंड्रॉइड का हिस्सा वायरलेस एपीआई)। इसके लिए एक वाईफाई राउटर मौजूद होने की आवश्यकता नहीं है, और डिवाइस एक दूसरे को मिलेंगे और सीधे संवाद करेंगे। हालांकि इसके लिए एंड्रॉइड 4.1 या उच्चतर की आवश्यकता होती है।
  • एंड्रॉइड वायरलेस एपीआई भी काम करेगा यदि आपके डिवाइस एक ही स्थानीय नेटवर्क पर हैं (यानी, एक ही वाईफाई राउटर का उपयोग करें), भले ही वे एक दूसरे की सीमा के भीतर न हों।
  • यदि इनमें से कोई भी विकल्प व्यवहार्य/गारंटीकृत नहीं है, तो मैं डेरेक से सहमत हूं कि सर्वर के माध्यम से सर्वर/क्लाइंट इंटरफ़ेस बनाने के लिए सर्वर सॉकेट और सॉकेट का उपयोग करने का सबसे आसान तरीका होगा। ऐसा करने पर sample application है।आपको जिस मुख्य समस्या का सामना करना पड़ सकता है वह यह है कि यदि सर्वर एक एनएटी (जैसे होम इंटरनेट राउटर) के पीछे बैठा है, तो आपको आने वाले पैकेट को अपने एंड्रॉइड सर्वर पर अग्रेषित करने के लिए एनएटी को कॉन्फ़िगर करना होगा।
0

आप WifiDirect पर एक नजर है चाहिए

वाई-फाई पीयर-टू-पीयर (P2P) से सीधे जुड़ने के लिए एंड्रॉयड 4.0 (एपीआई स्तर 14) या उचित हार्डवेयर के साथ बाद में उपकरणों की अनुमति देता है इंटरमीडिएट एक्सेस पॉइंट के बिना वाई-फाई के माध्यम से प्रत्येक अन्य।

संबंधित मुद्दे