2016-09-10 12 views
0

androidstudioでインターネット接続をチェックしようとしています。 しかし、私がウェブサイトから見つけたすべてのコードは私の役に立つものではありません。 Webサイトから見つかった原因コードは、接続がないときに機能しています。しかし、デバイスが遅いインターネットに接続されているとき、それはフリーズするか、または長い時間が経った後、それは鳴り終わる。だから、とにかく時間を制限して接続を鳴らすことがあります。誰か手掛かりがありますか?ありがとう。Androidstudio:インターネットを鳴らしている、デバイスが遅いインターネットに接続している間にフリーズする

public boolean isInternetAvailable() { 

    try { 
     InetAddress ipAddr = InetAddress.getByName("google.com"); //You can replace it with your name 
     return !ipAddr.equals(""); 

    } catch (Exception e) { 
     return false; 
    } 

} 

私はこれを試しましたが、動作しませんでした。私のプログラムは再びフリーズしました。

+2

...助けて....これを試してみてください。 –

+0

どこから呼びますか? –

+0

MainActivityにあります。 – lior

答えて

0

質問は少しあいまいですが、それはすべてのインターネット接続を確認し、この

private boolean isConnectedToInternet() { 
     ConnectivityManager connectivity = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE); 
     if (connectivity != null) { 
      NetworkInfo[] info = connectivity.getAllNetworkInfo(); 
      if (info != null) 
       for (int i = 0; i < info.length; i++) 
        if (info[i].getState() == NetworkInfo.State.CONNECTED) { 
         return true; 
        } 

     } 
     return false; 
    } 

を試してみてください。ワイヤレス、ケーブル、ISP

+0

はい、それはチェックしますが、デバイスが遅いインターネットに接続すると時間がかかります。時間切れなどを設定する方法はありますか? – lior

+0

通常、retrofitまたはokhttpを使用している場合は、タイムアウトを処理し、可能であれば再試行します。 –

0

からのデータは

// NETWORK AND CONNECTIVITY CHECK METHOD 
public static boolean isNetworkAvailable (Context context) { 
    try { 
     ConnectivityManager connectionManager = (ConnectivityManager) context 
       .getSystemService(Context.CONNECTIVITY_SERVICE); 

     NetworkInfo netowrkInfo = connectionManager.getActiveNetworkInfo(); 

     return netowrkInfo != null && netowrkInfo.isConnected(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     return false; 
    } 
} 

が、それはあなたのコードを表示

関連する問題