Tworzę program i muszę używać Wi-Fi do łączenia się z Internetem. Znajduję pewne informacje, aby sprawdzić, czy wifi jest podłączone, czy nie. Ale w pewnej sytuacji możesz podłączyć wifi AP, ale nadal nie możesz używać Internetu, takiego jak konto i hasło potrzebne do połączenia z wifi, do certyfikatu w https, lub wifi AP nie jest w stanie połączyć się z Internetem. Jak mogę sprawdzić podłączony Internet?jak sprawdzić prawdziwy Internet podłączony do Androida?
Odpowiedz
Po prostu wykonaj "Ping" na www.google.com szansa, że są niedostępne są bardzo niskie.
P.S. że to, co robimy w naszej aplikacji ..
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;
}
}
Według poniższej metody, jeśli urządzenie nie jest w trybie samolotu lub nie jest dostępny w dowolnym trybie łączności sieciowej, metoda zwróci false, poza prawdą. Należy pamiętać, że jeśli powyższe scenariusze zostaną spełnione, zwróci wartość null. Do tego celu służy sprawdzenie zerowego obiektu netInfo.
public boolean isOnline() {
ConnectivityManager conManager =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = conManager .getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
return true;
}
return false;
}
Pamiętaj, aby uzyskać uprawnienia dostępu do sieci do stanu manifeście.
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Proszę zapoznać poniżej:
Zrób metody, które zwracają wartość logiczną:
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;
}
użyć powyższej metody w Metodzie onCreate()
jak poniżej:
@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();
}
}
kiedy uruchom aplikację, którą wyświetlisz jako "Connection Founded"
, jeśli masz połączenie z internetem w urządzeniu, w przeciwnym razie wyświetli się monit "Connection Not Founded"
.
- 1. Jak sprawdzić, czy klient ElasticSearch jest podłączony?
- 2. Jak sprawdzić, czy STDIN jest podłączony do terminala w Perlu?
- 3. Jak sprawdzić, czy sidekiq jest podłączony do serwera redis?
- 4. Jak sprawdzić, czy jestem podłączony do sql DB poprzez vb.net?
- 5. Linux: jak sprawdzić, czy dysk jest podłączony do nfs
- 6. Otrzymuj powiadomienia, gdy internet jest podłączony lub odłączony
- 7. Iphone Jak sprawdzić, czy zestaw słuchawkowy Bluetooth podłączony
- 8. Jak sprawdzić, czy zestaw słuchawkowy jest podłączony, czy nie?
- 9. Jak sprawdzić, czy ktoś podłączony za pośrednictwem IPv6/IPv4
- 10. Jak sprawdzić, czy skaner jest podłączony (C#, .NET TWAIN)?
- 11. Jak sprawdzić zasób zasobów Androida?
- 12. Zainstalowany, prawdziwy lub fałszywy ImageMagick, jak sprawdzić? PHP
- 13. Jak sprawdzić prawdziwy diff git przed połączeniem ze zdalnym oddziałem?
- 14. Poinformowany, kiedy kabel sieciowy jest podłączony/podłączony do Wi-Fi
- 15. Jak wyświetlać alert, gdy nie jest podłączony do Internetu? iOS
- 16. Kątomierz nie podłączony do DevTools
- 17. ustawienie niewidocznego przycisku Androida, ale nadal ma onClick Listener podłączony
- 18. Jak sprawdzić wersję cordova/phonegap na androida?
- 19. Jak sprawdzić, czy mój DirectoryEntry jest naprawdę podłączony do mojego katalogu LDAP?
- 20. Jak sprawdzić, który zasób obrazu jest podłączony do ImageView w Androidzie xml?
- 21. Jak mogę sprawdzić, czy tel: jest rzeczywiście podłączony do urządzenia, z którego można nawiązać połączenie?
- 22. Android InputStream Internet Disconnect
- 23. Jak uzyskać Java do wyjścia, gdy jest podłączony do przewodnika
- 24. Jak uzyskać prawdziwy rozmiar JPanel?
- 25. Określanie w skrypcie php, jeśli jest podłączony do Internetu?
- 26. Jak uzyskać adres IP serwera, do którego podłączony jest HttpWebRequest?
- 27. Jak mogę się dowiedzieć, kto jest podłączony do ActionCable?
- 28. Powershell Odinstaluj Script - Masz prawdziwy ból głowy
- 29. Prawdziwy przypadek użycia BufferManager
- 30. Sprawdź, czy mongoDB jest podłączony
Myślę, że ping jest dobrą metodą, ale w android4.0 ta metoda wymaga nowego wątku do implementacji. czy istnieją inne sposoby bez nowego wątku? –
Powinieneś zawsze robić rzeczy sieciowe w oddzielnym wątku (nie głównym wątku), aby zapewnić szybkość reakcji aplikacji. – Frank
mm, ok, jest tam kilka meto takich jak wifimanager lub networkInfo w Androidzie, które mogą bezpośrednio sprawdzić prawdziwy Internet –