2011-11-25 7 views
13

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

संपादित करें: मैं इसे प्रोग्रामिक रूप से करना चाहता हूं। फिर मैं अपने डेटा को उपकरणों के बीच स्थानांतरित कर सकता हूं।

+0

आप अपने प्रश्न स्पष्ट कर सकते हैं। आप किससे कनेक्ट करना चाहते हैं और कैसे? क्या आप कहने का मतलब है कि आप अपने फोन के वाईफाई हॉटस्पॉट (यानी टेदरिंग) में किसी डिवाइस (जैसे पीसी) को कनेक्ट करना चाहते हैं? – brianestey

+0

मैं एक ऐप लिखना चाहता हूं जो कई एंड्रॉइड उपकरणों के बीच संवाद कर सकता है। (मुझे लगता है कि यह कुल 6 डिवाइस तक है क्योंकि वाईफ़ाई हॉटस्पॉट में अधिकतम 5 क्लाइंट की सीमा है।) उदाहरण के लिए, एक स्थानीय सबनेट चैट रूम। – shiami

+0

तो यह नेटवर्क में एक सर्वर और 5 ग्राहक होगा। और सर्वर-क्लाइंट संरचना की तरह संवाद कर सकते हैं। – shiami

उत्तर

5

मैंने पहले ऐसा नहीं किया है, इसलिए मेरा जवाब सभी सैद्धांतिक है।

मुझे लगता है कि आपको क्या करना है सर्वर को एक डिवाइस घोषित करना और ज्ञात नाम के साथ मैन्युअल रूप से अपना हॉटस्पॉट शुरू करना।

Start/stop built-in Wi-Fi/USB tethering from code? (इस प्रश्न के अनुसार, आप प्रोग्रामिंग रूप से हॉटस्पॉट शुरू नहीं कर सकते हैं)।

एक बार आपके पास हॉटस्पॉट सेट अप हो जाने के बाद, आप सर्वर ऐप शुरू करते हैं और आने वाले कनेक्शन की प्रतीक्षा करते हैं। सर्वर ऐप आपको आईपी पता या होस्टनाम दिखा सकता है।

ग्राहकों पर, आप एक साधारण जांच कर सकते हैं और देख सकते हैं कि हॉटस्पॉट नाम आसपास है और यदि आपको लगता है तो स्वचालित रूप से उससे कनेक्ट हो जाता है। आप उपकरणों के बीच एक संबंध स्थापित करने की जरूरत है -

Using WifiManager to connect to a network

अपने दूसरे प्रश्न, संवाद करने के लिए कैसे के लिए के रूप में: एक नेटवर्क से कनेक्ट करने के लिए यह लिंक देखें। इसके लिए, आपको सर्वर के आईपी पते की आवश्यकता है। करने के लिए सबसे आसान बात सर्वर यूआई पर आईपी पता दिखाना होगा और फिर मैन्युअल रूप से इसे ग्राहकों पर दर्ज करना होगा और कनेक्ट दबाएं। इसके बाद यह किसी ज्ञात बंदरगाह पर सर्वर से कनेक्शन स्थापित करेगा और आप क्लाइंट और सर्वर के बीच संदेश भेज सकते हैं।

संदर्भ के लिए, मुझे NanoHttpd मिला, जो एंड्रॉइड के लिए एक वेबसर्वर है। आने वाले कनेक्शन सुनने के लिए यह ServerSocket का उपयोग करता है।

+2

क्या किसी ने वास्तव में इसे लागू किया है, विशेष रूप से सॉकेट भाग के साथ संचार। – hrishikesh

+0

क्या आप यहां कुछ कोड पोस्ट कर सकते हैं, अगर आपने इसे लागू किया है? –

0

इससे शुरू करने में मदद मिलेगी। link1

+3

यदि भविष्य में लिंक रॉट्स हैं, तो आपको वहां जो लिखा गया है उसका एक सारांश शामिल करना चाहिए। – Reno

+1

धन्यवाद लेकिन मैं इसे प्रोग्रामिक रूप से करना चाहता हूं। – shiami

3

संभावित उत्तर:

आईसीएस से पहले और गैर रूट किए गए डिवाइस

कोई रास्ता नहीं आप वाईफाई पर एक डिवाइस से कनेक्ट कर सकते है। करने के लिए कोई एपीआई नहीं है। ब्लूटूथ आपका सबसे अच्छा विकल्प या उपयोगकर्ता इंटरैक्शन है।

इससे पहले कि आईसीएस और रूट किए गए डिवाइस

मुझे यकीन है कि अगर किसी ने हैक कर लिया कोड नहीं हूँ, लेकिन जब मैं एक वाईफ़ाई स्थान मैंने देखा करने के लिए एक स्वचालित कनेक्शन करने की कोशिश की:

  • एपीआई है एसडीके के अंदर छिपी हुई।
  • कनेक्शन जो विधि करता है वह थ्रेड की जांच करता है जो इसके लिए पूछता है। यदि यह ओएस धागा नहीं है, तो यह एक अपवाद फेंकता है।

का उपयोग आईसीएस

आईसीएस के साथ वहाँ Wi-Fi Direct कहा जाता है वाईफ़ाई के माध्यम से उपकरणों को जोड़ने के लिए एक नया तरीका है। यहां कुछ डेमो के साथ link है।

+1

शायद मैं आपको गलत समझ रहा हूं, लेकिन [वाईफाईमेनगर] (http://developer.android.com/reference/android/net/wifi/WifiManager.html) एपीआई v1 के आसपास रहा है और इसकी सूचीबद्ध जिम्मेदारियों में नेटवर्क कॉन्फ़िगर करना और अनुमान लगाना शामिल है कनेक्शन। यदि आपका मतलब है कि वे एक ही नेटवर्क पर हैं और वे एक ही नेटवर्क पर एक-दूसरे से कनेक्ट नहीं हो सकते हैं, तो [नैनो एचटीपीडी] (http://elonen.iki.fi/code/nanohttpd/) पर एक नज़र डालें जो सर्वरस्केट का उपयोग करता है आने वाले कनेक्शन सुनने के लिए। – brianestey

0

यदि आप प्रत्येक और प्रत्येक टर्मिनल (डिवाइस) के लिए अपना स्वयं का आवेदन विकसित करने जा रहे हैं तो मुझे लगता है कि आपके लिए सॉकेट प्रोग्रामिंग चाल चलती है।

हां, एंड्रॉइड सॉकेट प्रोग्रामिंग का समर्थन करता है जैसे जावा सॉकेट प्रोग्रामिंग।

पहला Google जावा सॉकेट प्रोग्रामिंग ट्यूटोरियल और फिर आप एंड्रॉइड में एक ही ज्ञान का उपयोग कर सकते हैं।

भी प्रकट में उपयोग करता है इंटरनेट अनुमति शामिल करने के लिए याद है, वास्तव में कुछ है जो p2p की तरह किसी भी सर्वर के बिना एक लंबे समय :)

0

आप वाईफ़ाई सक्षम उपकरणों के बीच संचार का मतलब के लिए मेरे दिमाग खा लिया thats? इसलिए इसकी वाईफ़ाई प्रत्यक्ष अगर आईसीएस इस बाहर की जाँच में http://developer.android.com/reference/android/net/wifi/p2p/package-summary.html

आईसीएस से पहले जो समर्थित है वहाँ हालांकि गैलेक्सी एस 2 वाईफ़ाई प्रत्यक्ष है इसे इस्तेमाल करता है मालिकाना एपीआई जो 3 पार्टी devs उपयोग नहीं कर सकते, प्रत्यक्ष वाईफ़ाई के लिए कोई मानक एंड्रॉयड एपीआई है।

+0

मैं इसे क्लाइंट-सर्वर संरचना के साथ करना चाहता हूं। – shiami

0

मुझे नहीं पता programmically लैन Wify बनाने के लिए, लेकिन आप लैन Wify मैन्युअल रूप से बना सकते हैं, तो आप जावा टीसीपी/यूडीपी कार्यक्रम के रूप में brianestey

से कहा क्या कर सकते हैं "अपने दूसरे प्रश्न, कैसे संवाद करने के लिए के रूप में - आप की जरूरत डिवाइस के बीच कनेक्शन स्थापित करने के लिए। इसके लिए, आपको सर्वर के आईपी पते की आवश्यकता है। करने के लिए सबसे आसान काम सर्वर यूआई पर आईपी पता दिखाना होगा और फिर मैन्युअल रूप से इसे क्लाइंट पर दर्ज करना होगा और कनेक्ट दबाएं। फिर किसी ज्ञात बंदरगाह पर सर्वर से कनेक्शन स्थापित करें और आप क्लाइंट और सर्वर के बीच संदेश भेज सकते हैं। "

मैनुअल कनेक्शन के लिए चरणों का फोन

  • नया हॉटस्पॉट बनाने से किसी एक से

    • ले सेटिंग्स/वायरलेस & नेटवर्क/पोर्टेबल Wi-Fi हॉटस्पॉट सेटिंग का पालन करें और वाई-फाई पर बारी वहाँ से

    • पोर्टेबल हॉटस्पॉट अपने पीसी सहित कि हॉटस्पॉट से अन्य सभी डिवाइस कनेक्ट

    • आपको प्रत्येक डिवाइस programmically के आईपी मिल जाएगा (पीसी includig, लेकिन मुझे नहीं पता)

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