2011-10-28 16 views
6

मुझे आश्चर्य है कि मुझे इस सामान्य स्थिति पर इंटरनेट पर कोई जानकारी नहीं मिल रही है: मैं इंटरनेट कनेक्शन कैसे शुरू कर सकता हूं? मैंने ConnectivityManager देखा लेकिन ऐसा लगता है कि यह नेटवर्क कनेक्टिविटी की निगरानी के लिए है।एंड्रॉइड: इंटरनेट कनेक्शन स्थापित करें

पीएस: फोन रूट हो जाएगा, इसलिए यह कोई समस्या नहीं है।

+1

"? मैं कैसे एक इंटरनेट connetion शुरू कर सकते हैं", आप क्या करना चाहते हैं मतलब है? – user370305

+0

मान लें कि मैं प्रोग्रामिंग के निजी नेटवर्क पर वाईफाई कनेक्शन खोलना चाहता हूं। तो मैं सर्वर अपलाड/डेटा डाउनलोड करने के लिए कनेक्ट करना चाहता हूं ... – Caner

+3

तो आपको निगरानी करना है वाईफाई सक्षम है या नहीं? यदि नहीं तो बस वाईफाई कनेक्टिविटी संवाद खोलें और यह वाईफाई सेटिंग्स पर उतरेगा। – user370305

उत्तर

1

मैं निम्नलिखित समाधान नहीं मिला:: मैं आप इन अनुमतियों जोड़ना चाहिए लगता है

1) फ़ोन सेटिंग करने के लिए पसंदीदा वाईफ़ाई/APN (एक्सेस प्वाइंट नाम) विन्यास जोड़े
2) सक्षम करें वाई-फ़ाई/APN
3) कनेक्शन स्वचालित रूप से स्थापित किया जाएगा

वाईफ़ाई विन्यास str है aightforward और आने वाले पृष्ठ से पता चलता है कि यह कैसे किया जा सकता है:

How to programmatically create and read WEP/EAP WiFi configurations in Android?

APN विन्यास मुश्किल है। एंड्रॉइड में कुछ छिपा एपीआई है जो आपको इन सेटिंग्स को एक्सेस/संशोधित करने की अनुमति देती है, और आपको ऐसा करने के लिए Reflection का उपयोग करने की आवश्यकता है। यह निश्चित रूप से एंड्रॉइड के भविष्य के संस्करणों के साथ तोड़ सकता है।निम्नलिखित पृष्ठ तक कैसे पहुंचें/उन सेटिंग्स को संशोधित करने बताते हैं:

http://blogs.msdn.com/b/zhengpei/archive/2009/10/13/managing-apn-data-in-google-android.aspx

1

आप वास्तव में वाईफाई चालू या बंद कर सकते हैं (this article भी देखें) लेकिन इस बात की कोई गारंटी नहीं है कि वाईफ़ाई चालू होने पर इंटरनेट कनेक्शन होगा।

कनेक्टिविटीमेनगर केवल आपको वर्तमान कनेक्टिविटी स्थिति का निरीक्षण करने की अनुमति देता है। आप कनेक्शन को सक्षम करने के लिए इसका उपयोग नहीं कर सकते हैं। अगर सक्रिय नेटवर्क कनेक्शन इंटरनेट कनेक्शन है तो कनेक्टिविटी मैनेजर को कोई ज्ञान नहीं है, लेकिन इसे स्वयं जांचना आसान है (उदाहरण के लिए this post देखें)।

0

सॉकेट आपको चाहिए जो आपको चाहिए। उन पर अपनी मूल जानकारी प्राप्त करने के लिए, इसे यहां पढ़ें: http://en.wikipedia.org/wiki/Internet_socket आपको इसे सभी को पढ़ने की ज़रूरत नहीं है, लेकिन मुझे लगता है कि सॉकेट विधियों से परिचित होने के लिए आप सभी "कार्यान्वयन के मुद्दों" को कम से कम पढ़ते हैं। उन तरीकों को, निश्चित रूप से, प्रत्येक प्लेटफॉर्म (विंडोज़, एंड्रॉइड ...) के लिए अलग-अलग कार्यान्वित किया जाता है, लेकिन वे आमतौर पर हर जगह करते हैं। तो एक बार जब आप समझें कि प्रत्येक व्यक्ति क्या करता है, तो आप आसानी से किसी भी प्लेटफ़ॉर्म में सॉकेट के साथ काम कर सकते हैं। enter image description here

आप ग्राहक के पक्ष में हैं:

यह चित्र (विकी से) सॉकेट उपयोग प्रदर्शित करने के लिए मदद करता है। तो बस एक सॉकेट बनाएं और अपने सर्वर के आईपी पते के लिए connect विधि पर कॉल करें।

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

+0

सॉकेट एक समाधान हो सकता है, लेकिन वे अपेक्षाकृत कम स्तर हैं। मुझे एक [ftp] सेट करना आसान हो सकता है (http://stackoverflow.com/questions/1567601/android-ftp-library) या [http कनेक्शन] (http://developer.android.com/reference/java/net /HttpURLConnection.html) यदि सर्वर ओपी कनेक्ट करने का प्रयास कर रहा है तो यह अनुमति देता है। – THelper

+0

सॉकेट मूल हैं; उन्हें समझना बेहतर होता है, फिर उच्च स्तर की कक्षा का उपयोग करें जो सॉकेट को स्वयं में लपेटता है। इसके अलावा, ये वर्ग बहुत विशिष्ट प्रोटोकॉल में उपयोग किए जाने वाले सॉकेट लपेट रहे हैं। चूंकि हम नहीं जानते कि मूल पोस्टर की कौन सी प्रोटोकॉल की आवश्यकता है, हम उसे किसी भी मूल सॉकेट का उपयोग करने के लिए नहीं कह सकते हैं। – Jong

+0

लेकिन यह सवाल का जवाब नहीं देता है। मैं कैसे स्थापित करूं इंटरनेट कनेक्शन सॉकेट पहली जगह में उपयोग करेंगे? – Caner

2

आप इस विधि का उपयोग कर सकते हैं:

private boolean changeWifiState(boolean state) { 
    final WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
    wifi.setWifiEnabled(state); 
    return wifi.isWifiEnabled(); 
} 

इस के लिए आवश्यक अनुमतियों की जाँच करें।

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> 
+0

ठीक है, लेकिन लगभग 3 जी कैसे? – Caner

+0

यह इतना आसान नहीं है। और यह कार्यक्षमता संस्करण निर्भर है। उदाहरण के लिए, आप यहां देख सकते हैं कि यह कैसे करें: http://stackoverflow.com/questions/3644144/how-to-disable-mobile-data-on-android – Yury

+0

और आपको पता होना चाहिए कि वाईफ़ाई और डेटा कनेक्शन आमतौर पर नहीं हो सकते एक साथ सक्षम हो। – Yury

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