2016-10-18 13 views
1

В устройстве, когда я включаю данные Интернета, он показывает E в сети. но у меня нет пакета данных в моем симу, и интернет не работает ни в каких приложениях. Я использовал этот код, он возвращает true, что есть Интернет. В этом случае, как найти, является ли интернет работать или нет: проверкаКак найти интернет работает или нет

public static boolean isConnectingToInternetLatest(Context mContext) { 
    ConnectivityManager connectivityManager = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE); 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
     Network[] networks = connectivityManager.getAllNetworks(); 
     NetworkInfo networkInfo; 
     for (Network mNetwork : networks) { 
      networkInfo = connectivityManager.getNetworkInfo(mNetwork); 
      if (networkInfo.getState().equals(NetworkInfo.State.CONNECTED)) { 
       return true; 
      } 
     } 
    } else { 
     if (connectivityManager != null) { 
      //noinspection deprecation 
      NetworkInfo[] info = connectivityManager.getAllNetworkInfo(); 
      if (info != null) { 
       for (NetworkInfo anInfo : info) { 
        if (anInfo.getState() == NetworkInfo.State.CONNECTED) { 
         //Log.d("Network", "NETWORK NAME: " + anInfo.getTypeName()); 
         return true; 
        } 
       } 
      } 
     } 
    } 
    return false; 
} 
+0

Ищите примеры, которые обращаются к URL-адресу, например google.com, и прислушиваются к ответу OK. Если да, то доступен интернет. –

+0

попробуйте это http://stackoverflow.com/questions/6493517/detect-if-android-device-has-internet-connection/30733807#30733807 –

ответ

1
public boolean isInternetWorking() { 
boolean success = false; 
try { 
    URL url = new URL("https://google.com"); 
    HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
    connection.setConnectTimeout(10000); 
    connection.connect(); 
    success = connection.getResponseCode() == 200; 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
return success; 
} 
0

Дополнительная погрешность от @YLS ответа. Это то, что я делаю, чтобы проверить HttpError .. Вы можете изменить код onError на нужный вам код.

try { 
    URL url = new URL("https://google.com"); 
    HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
    connection.setConnectTimeout(10000); 
    connection.connect(); 
    success = connection.getResponseCode() == 200; 
} catch (IOException e) { 
    onError(this,e); 
} 

public void onError(Activity activity,Throwable e){ 
     try { 
      e.printStackTrace(); 
      FirebaseCrash.report(e); 

      if (e instanceof HttpException) { 
       Response body = ((HttpException) e).response(); 
       if (body.code() == 401) { 
        Toast.makeText(activity, "Not Authorized Access", Toast.LENGTH_SHORT).show(); 
       } else if (body.code() == 404) { 
        Toast.makeText(activity, "Request not found", Toast.LENGTH_SHORT).show(); 
       } else if (body.code() == 400) { 
        Toast.makeText(activity, "Bad Request", Toast.LENGTH_SHORT).show(); 
       } else if (body.code() == 500) { 
        Toast.makeText(activity, "Internal Server Error", Toast.LENGTH_SHORT).show(); 
       } else { 
        Log.e(Constants.TAG, "Error : Code HTTP = " + body.code()); 
       } 
      }else if(e instanceof ConnectException || e instanceof SocketException){ 
       Toast.makeText(activity, "Check Your Internet Connection", Toast.LENGTH_SHORT).show(); 
      } else if (e instanceof UnknownHostException) { 
       Toast.makeText(activity, "Make Sure Your Internet Connection is Properly Connected", Toast.LENGTH_SHORT).show(); 
      } else if (e instanceof SSLHandshakeException || e instanceof SSLPeerUnverifiedException) { 
       Toast.makeText(activity, "Server Connection Problem..Please Try Again", Toast.LENGTH_SHORT).show(); 
      } else { 
       Toast.makeText(activity, "Data Load Error", Toast.LENGTH_SHORT).show(); 
      } 
     } 
     catch (Exception ex){ 
      FirebaseCrash.report(e); 
      e.printStackTrace(); 
     } 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^