मैं एक प्रोग्राम करता हूं, और मुझे इंटरनेट से कनेक्ट करने के लिए वाईफाई का उपयोग करना पड़ता है। मुझे यह जांचने के लिए कुछ जानकारी मिलती है कि वाईफ़ाई कनेक्ट है या नहीं। लेकिन कुछ परिस्थितियों में, आप वाईफाई एपी को जोड़ सकते हैं लेकिन आप अभी भी इंटरनेट का उपयोग नहीं कर सकते हैं वाईफाई आवश्यक खाते और पासवर्ड https में प्रमाण पत्र के लिए, या वाईफाई एपी इंटरनेट पर सक्षम नहीं है। तो, मैं असली इंटरनेट कैसे कनेक्ट कर सकता हूं?एंड्रॉइड में जुड़े वास्तविक इंटरनेट को कैसे जांचें?
उत्तर
बस www.google.com के लिए "पिंग" करें जो वे नीचे हैं बहुत कम हैं।
पीएस यह, क्या हम अपने अनुप्रयोग में करते हैं ..
public static boolean isReachable(Context context) {
// First, check we have connectivity
final ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo netInfo = connMgr.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected()) {
// check if google is reachable
try {
URL url = new URL("http://www.google.com");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(10 * 1000); // Ten seconds timeout in milliseconds
urlc.connect();
if (urlc.getResponseCode() == 200) { // success
return true;
} else { // Fail
return false;
}
} catch (IOException e) {
Log.e(TAG, e.getMessage());
return false;
}
} else {
return false;
}
}
नीचे दी गई विधि के अनुसार यदि डिवाइस हवाई जहाज़ मोड या कोई नेटवर्क किसी भी कनेक्टिविटी मोड में उपलब्ध नहीं है, विधि झूठी अन्यथा सच वापस आ जाएगी। ध्यान रखें कि यदि उपरोक्त परिदृश्य संतुष्ट हैं तो यह शून्य हो जाएगा। इसके लिए इसे null netInfo ऑब्जेक्ट की जांच करके संभाला जाता है।
public boolean isOnline() {
ConnectivityManager conManager =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = conManager .getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
return true;
}
return false;
}
प्रकट करने के लिए नेटवर्क स्थिति तक पहुँचने की अनुमति प्राप्त करने के लिए याद रखें।
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
नीचे देखें:
ConnectivityManager connectivityManager;
NetworkInfo wifiInfo, mobileInfo;
public Boolean checkNow(Context con){
try{
connectivityManager = (ConnectivityManager) con.getSystemService(Context.CONNECTIVITY_SERVICE);
wifiInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
mobileInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if(wifiInfo.isConnected() || mobileInfo.isConnected())
{
return true;
}
}
catch(Exception e){
System.out.println("CheckConnectivity Exception: " + e.getMessage());
}
return false;
}
अपने onCreate()
विधि में उपरोक्त विधि का प्रयोग करें नीचे की तरह:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
boolean con = checkNow(getApplicationContext());
if(con){
Toast.makeText(getApplicationContext(), "Connection Founded", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(getApplicationContext(), "Connection Not Founded", Toast.LENGTH_SHORT).show();
}
}
जब आप
एक विधि है कि बूलियन मान लौट बनाओ इंटरनेट कनेक्शन ava अगर आपको "Connection Founded"
के रूप में संकेत दिया जाएगा तो ऐप चलाएं आपके डिवाइस में ilable अन्यथा यह "Connection Not Founded"
संकेत दिया जाएगा।
मुझे लगता है कि पिंग एक अच्छा तरीका है, लेकिन एंड्रॉइड 4.0 में, इस विधि को लागू करने के लिए नए धागे की आवश्यकता है। क्या अन्य तरीके हैं जो नए धागे के बिना हो सकते हैं? –
आपको अपने ऐप की प्रतिक्रिया सुनिश्चित करने के लिए हमेशा एक अलग थ्रेड (मुख्य धागा नहीं) पर नेटवर्क सामान करना चाहिए। – Frank
मिमी, ठीक है, मैं वहां कुछ मेथो हैं जैसे वाईफिमैनगर या एंड्रॉइड में नेटवर्कइन्फो जो वास्तविक इंटरनेट –