2016-10-18 12 views
1

デバイスでは、インターネットデータを有効にすると、ネットワークにEが表示されます。私はデータパックを持っていませんし、インターネットはどのアプリでも動作していません。私はこのコードを使用して、インターネットがそこにあるということを真に返します。この場合、インターネットが働いているかどうかを検索する方法:@YLS答えからチェックインターネットがどのように動作しているかを調べるには

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

追加のエラー。これは、私が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(); 
     } 
    } 
関連する問題