2012-03-13 27 views
0

をチェックします。は、私は私のインターネット接続を確認するため、次のコードを使用してインターネットに接続

private boolean haveNetworkConnection() { 
     boolean haveConnectedWifi = false; 
     boolean haveConnectedMobile = false; 

     ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo[] netInfo = cm.getAllNetworkInfo(); 
     for (NetworkInfo ni : netInfo) { 
      if (ni.getTypeName().equalsIgnoreCase("WIFI")) 
       if (ni.isConnected() && ni.isAvailable()) 
        haveConnectedWifi = true; 
      if (ni.getTypeName().equalsIgnoreCase("MOBILE")) 
       if (ni.isConnected() && ni.isAvailable()) 
        haveConnectedMobile = true; 
     } 
     return haveConnectedWifi || haveConnectedMobile; 
    } 

しかし、私はインターネット接続が切断されているか、接続されていると言います。このメソッドはonCreate()メソッドの途中で呼び出され、 "戻る"ボタンでアプリケーションを閉じます。これで私を助けてください。

+5

何を達成したいですか?あなたが何を求めているかは完全には不明です。 – Egor

+0

私はインターネットに接続しているかどうかにかかわらず、常に "true"を返します。 – ssrp

+0

oncreate()メソッドは、savedInstanceStateというパラメータを使用します。これは、この問題が発生するためには問題になります。 – ssrp

答えて

1

あなたは、このリスニングを達成することができます... ..私のために正常に動作し、これはあなたを助けることを願っています。だからあなたの放送受信機を作成し、ためonReceiveコールバックチェックに:

は、あなたの場合はそれが

+0

oncreate()メソッドは、savedInstanceStateというパラメータを使用します。これは、これが起こっている問題です。 – ssrp

+0

実際に私はあなたが何を意味するのか理解していません。再調整してください – Blackbelt

0
public boolean checkConnection() 
    { 
     //ARE WE CONNECTED TO THE NET 
     ConnectivityManager conMgr = (ConnectivityManager) getSystemService (YourActivityClassName.CONNECTIVITY_SERVICE); 
     if (conMgr.getActiveNetworkInfo() != null && conMgr.getActiveNetworkInfo().isAvailable()&& conMgr.getActiveNetworkInfo().isConnected()) { 
      return true; 
     } else { 
      return false; 
     } 
    } 

これをマニフェストファイルに追加してからお試しください。

はこれで試してみてください。私は私のプロジェクトの一つで、これを使用し、それがConnectiviyが意図を放送するため

+0

これを試しました。これまでと同じです。ありがとうございました。 – ssrp

+0

エラーが発生していますか? yesの場合、plzはエラーログを出力します。これは私のアプリケーションのために働くので... – Scorpion

+0

番号エラー..以下は私の完全なコードです! – ssrp

0

を役に立てば幸いBroadcastReceiverドキュメントを見て:

boolean noConnectivity = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false); 

android.net.conn.CONNECTIVITY_CHANGE

編集と意図をフィルタリングするために覚えています目標は、あなたが使用することができ、特定のサーバ(またはドメイン)と通信している

try { 
     InetAddress.getByName(SERVER).isReachable(CONNECTIVITY_TIMEOUT); 
    } catch (UnknownHostException e1) { 
     //unknown host 
    } catch (IOException e1) { 
     //IO exception 
    } 

たとえばSERVER=stackoverflow.com; CONNECTIVITY_TIMOUT=1000; // 1 second

+0

"InetAddress"の宣言はここにありますか? – ssrp

+0

@ssrpそのJavaクラス.. import java.net.InetAddress;または単にEclipseの下でCtrl + Shift + oを押します。 – Joe

+0

タイムアウトが発生したときはどうすればわかりますか? – ssrp

0

あなたはmanifest.xmlに権限を書きましたか?

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

エミュレータでチェックインする場合は、設定で接続を設定する必要があります。

+0

はい。そしてそれは誤りを与えない。 – ssrp

1

まずJavaコードで

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

次に、あなたのAndroidManifest.xmlファイルでこれらのこれら二つの許可コードの行を追加します。

//declaration 
    boolean net; 

    //onCreate 

    net = isOnline(); 

    if (net == true) { 
          //perform internet related task 
         } else { 
          AlertDialog.Builder alert = new AlertDialog.Builder(
            AddSite.this); 

          alert.setMessage(
            "No signal found or Internet connection is not connected.") 
            .setTitle("Error") 
            .setNeutralButton("OK", 
              new DialogInterface.OnClickListener() { 

               public void onClick(
                 DialogInterface dialog, 
                 int which) { 
                // TODO Auto-generated method 
                // stub 

               } 
              }).show(); 
         } 

    //method 

    public boolean isOnline() { 
      ConnectivityManager cm = (ConnectivityManager) this 
        .getSystemService(Context.CONNECTIVITY_SERVICE); 

      NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo(); 
      return activeNetworkInfo != null; 

      // return cm.getActiveNetworkInfo().isConnected(); 

     } 
+0

oncreate()メソッドはsavedInstanceStateというパラメータを使用していますが、これはこれに問題がありますか? – ssrp

関連する問題