1

メイン画面を実行する前に接続を確認するためのアプリがあります。Wi-FiのみのXoomで実行しようとしているユーザーからのみ、アプリが常に強制終了の問題を引き起こし、市場経由でレポートを送ってきたことが通知されています.

どうやら、デバイスが電話またはwifi経由で接続されているかどうかを確認している行の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 は wifi のみに対応しているため、機能やコンポーネントがないため、connec.getNetworkInfo(0).getState() のチェックによってクラッシュが発生するのでしょうか? もしそうなら、どうすればクラッシュせずにすべてのデバイスで動作するようにこれを回避できますか?

4

2 に答える 2

3

以下のコードでネットワークの状態を確認できます

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

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

あなたのコードでは、connec.getNetworkInfo(0)が null かどうかをチェックせずにconnec.getNetworkInfo(0).getState()を使用しています。

于 2012-04-30T12:53:45.130 に答える
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;
 }
于 2012-04-30T13:55:00.690 に答える