2012-04-30 9 views
1

私は、メイン画面を実行する前に接続性をチェックするためのアプリを持っています。私は、Wi-Fi only Xoomで実行しようとしているユーザーだけが、強制的に近い問題を引き起こしていることを通知されており、市場からレポートを送ってきました。接続の可能性を見つける方法はありますか?

携帯電話や無線LANで接続されているかどうかを確認している行のif-then-elseステートメントで、アプリがクラッシュしてNull例外エラーが発生したようです。

ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 
if (connec.getNetworkInfo(0).getState() != NetworkInfo.State.CONNECTED && connec.getNetworkInfo(1).getState() != NetworkInfo.State.CONNECTED ) ... 

問題のXoomのはONLY無線LANは、()、それは能力やコンポーネントを持っていないので、クラッシュをconnec.getNetworkInfo(0).getStateのチェック引き起こしてしまう可能であるということで?それがあれば、どうすればこの問題を回避できますか?クラッシュすることはありませんが、まだすべてのデバイスで動作しますか?あなたのコード内のコード以下

boolean isInternetAvailable = false; 
    ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); 

    if(networkInfo != null && (networkInfo.isConnected())) 
    { 
     isInternetAvailable = true; 
    } 

ことで、ネットワークの状態を確認することができます

答えて

3

、あなたがconnec.getNetworkInfoをチェックせずconnec.getNetworkInfo(0).getState()を使用している(0)はnullですかない

connec.getNetworkInfoのために同じものに頼る
+0

も(1) - すなわち、コードは、デバイスがサンキュー –

+0

2 null以外のインタフェースを持っている前提としています。それは素晴らしい仕事をして問題を解決しました。 – djmedic

1
public static boolean isNetworkAvailable(Context context) { 

      boolean value = false; 

      ConnectivityManager manager = (ConnectivityManager) context 
          .getSystemService(Context.CONNECTIVITY_SERVICE); 

      NetworkInfo info = manager.getActiveNetworkInfo(); 

      if (info != null && info.isAvailable()) { 
          value = true; 
      } 

      return value; 
} 
+0

ありがとうございます。それは素晴らしい仕事をして問題を解決しました。 – djmedic

関連する問題