0

私のアプリでは、アプリが最初に起動されたときのスプラッシュ スクリーンで、ネットワーク接続を確認しています。ネットワーク接続が存在する場合は、以下のメソッドを呼び出してインターネット接続に移行しています。

ただし、意図的にインターネット接続を手動で無効にしています (ルーターに接続していますが、ブラウザーで Web ページを入力できません) が、以下の方法では常に -200- が返されます。

public boolean hasActiveInternetConnection()
{
    try
    {
        HttpURLConnection urlc = (HttpURLConnection) (new URL("http://www.google.com").openConnection());
        urlc.setRequestProperty("User-Agent", "Test");
        urlc.setRequestProperty("Connection", "close");
        urlc.setConnectTimeout(3000);
        urlc.setReadTimeout(4000);
        urlc.connect();
        Log.i("Splash", Integer.toString(urlc.getResponseCode()));
        return (urlc.getResponseCode() == 200);
    } catch (IOException e)
    {
        return (false);
    }
}
4

2 に答える 2

1

openConnection() の前にこのコードを含めるようにしてください

if (android.os.Build.VERSION.SDK_INT > 9) {
                    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
                    StrictMode.setThreadPolicy(policy);
                }
于 2013-03-13T10:15:27.960 に答える
0

この機能を使用して、インターネット接続を確認できます。

    public boolean isInternetConnection() {
    ConnectivityManager cn = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
    NetworkInfo nf = cn.getActiveNetworkInfo();
    if (nf != null && nf.isConnected() == true)
        return true;
    else
        return false;
}

これにはマニフェストのアクセス許可を追加する必要があります。

    <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
于 2013-03-07T10:51:31.473 に答える