2

アプリケーションで Web コールに Volley を使用していますが、何らかの理由でデバイスがネットワーク接続を取得していないが、コードを介して接続を確認すると以下のコードを使用して true が返される 1 つの状態を除いて、すべてが正常にスムーズに動作しています。

public static boolean isNetworkAvailable() {

    ConnectivityManager connectivityManager = SessionApplication.getConnectivityManager();
    if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED ||
            connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
        //we are connected to a network
        return true;
    }
    else
        return false;
}

上記のコードを使用してネットワーク状態 false を返す代わりに、ボレー Web 呼び出しでこの例外「com.android.volley.NoConnectionError を処理する: java.net.UnknownHostException」が返されます。

デバイスでブラウザを開いてインターネット接続を確認しましたが、それも機能していません。したがって、アプリケーションの動作には問題ありませんが、ユーザーフレンドリーではないため、このような状態を処理する必要があります。ユーザーは、「インターネット接続を確認してください!」というダイアログを表示する必要があります。

これは Android の一般的な問題であるはずです。このようなケースを処理するための最善の方法を教えてください。前もって感謝します。

ネットワークの状態:ここに画像の説明を入力

4

2 に答える 2

2

この例外は、接続の問題を示しています。実際、接続に関するダイアログを表示できます。onErrorResponse(VolleyError error)このようにできるオーバーライド-

public void onErrorResponse(VolleyError error) {
                        Log.d(TAG, error.toString());
                        if (error instanceof NoConnectionError)
                        new AlertDialog.Builder(this).setMessage(
                                "Unable to connect to the server! Please ensure your internet is working!").show();
                    }
于 2016-10-20T04:49:06.893 に答える