2011-07-07 17 views
0

今日私はアンドロイドデバイスで自分のアプリケーションをテストしている間に奇妙なことを発見しました。マイデバイスではWIFI接続を有効にしていますが、インターネット接続が利用できないため、アプリケーションが実行されなかったため、デバイスを再起動しても問題ありません。どのようにこのような状況に対処する。アンドロイドのインターネット接続の問題を確認しますか?

[私のアプリケーションでは、私はWIFIとモバイルネットワークを検証している]

答えて

1

protected boolean isOnline() { 
ConnectivityManager cm = (ConnectivityManager)  getSystemService(Context.CONNECTIVITY_SERVICE); 
NetworkInfo netInfo = cm.getActiveNetworkInfo(); 
if (netInfo != null && netInfo.isConnected()) { 
    return true; 
} else { 
    return false; 
} 
} 

OR

public boolean isOnline() { 
ConnectivityManager cm = (ConnectivityManager)  getSystemService(Context.CONNECTIVITY_SERVICE); 
return cm.getActiveNetworkInfo().isConnectedOrConnecting(); 

} 
0

、これを試してみてください、私は仕事で、ネットワーク上の奇妙な問題を抱えていました。私はwifi経由で私たちのネットワークに電話を接続し、それはネットワークグランドに接続し、ステータスは "ネットワークの名前に接続"となります。しかし、約10分後に私の電話がWifiに接続されています。私は電話の状態を確認するときに "[ネットワークの名前]で認証しています。 この問題は"認証中 "と言われてもデバッグ中に発生しました。 。しかし、私はそれがインターネットに接続されていない戻ってくる蠍座に私のconnectメソッドが同様しようとしたとき ここでは私のものです:。しかし、携帯電話は、そのここにこの行を認証すると、nullを返しますsaidsとき

/** 
* Method to see if device has any access to the Internet. 
* @return boolean true if connected, otherwise false. 
*/ 
public boolean isConnectedToInternet() 
{ 
    try{ 
     ConnectivityManager cm = (ConnectivityManager) getSystemService 
                (Context.CONNECTIVITY_SERVICE); 
     NetworkInfo netInfo = cm.getActiveNetworkInfo(); 

     if (netInfo != null && netInfo.isConnected()) 
     { 
      //Network is available but check if we can get access from the network. 
      URL url = new URL("http://www.Google.com/"); 
      HttpURLConnection urlc = (HttpURLConnection) url.openConnection(); 
      urlc.setRequestProperty("Connection", "close"); 
      urlc.setConnectTimeout(2000); // Timeout 2 seconds. 
      urlc.connect(); 

      if (urlc.getResponseCode() == 200) //Successful response. 
      { 
       return true; 
      } 
      else 
      { 
       Toast.makeText(this, "No connection to internet.", Toast.LENGTH_LONG).show(); 
       Log.d("NO INTERNET", "NO INTERNET"); 
       return false; 
      } 
     } 
    } 
    catch(Exception e) 
    { 
     e.printStackTrace(); 
    } 
    Toast.makeText(this, "No connection to internet.", Toast.LENGTH_LONG).show(); 
    return false; 
} 

NetworkInfo netInfo = cm.getActiveNetworkInfo(); 

私は電話やアプリなどでウェブにアクセスすることができますfacebook/gmailはまだ機能していましたが、私のようなアプリや上記のようなアプローチを使用していた同僚のアプリはありませんでした。 これはなぜ明らかに私はなぜこれが事実であるか考え出した理由を見ることができます。 facebook/gmailのようなアプリがインターネットにどのように接続しているかを調べる方法が不思議です。 は、だから私は思っていた私はこれを行うための単純なアプローチ取る必要があります:とにかく

URL url = new URL("http://www.Google.com/"); 
      HttpURLConnection urlc = (HttpURLConnection) url.openConnection(); 
      urlc.setRequestProperty("Connection", "close"); 
      urlc.setConnectTimeout(2000); // Timeout 2 seconds. 
      urlc.connect(); 

      if (urlc.getResponseCode() == 200) //Successful response. 
      { 
       return true; 
      } 
      else 
      { 
       Toast.makeText(this, "No connection to internet.", Toast.LENGTH_LONG).show(); 
       Log.d("NO INTERNET", "NO INTERNET"); 
       return false; 
      } 

を投稿質問はあなたがオフに話す内部の問題が何であるか、それを修正する方法を言うために一生懸命かなり曖昧です。ちょうど欲求不満に似ているようだ。

関連する問題