0

私は Android プロジェクトに取り組んでおり、ユーザーがいつインターネットにアクセスできるかを知る必要があります。(Wi-Fiが有効になっている場合だけではありません。たとえば、ユーザーがホットスポットWi-Fi接続を使用した場合など)

私はこの方法を使用します:

public static boolean isOnline(final Context context) {
    boolean result = false;
    ConnectivityManager connec = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connec.getNetworkInfo(0).isConnectedOrConnecting() || connec.getNetworkInfo(1).isConnectedOrConnecting()) {
        URL url = new URL("https://www.google.fr");
        URLConnection urlConnection;
        urlConnection = url.openConnection();
        HttpURLConnection httpConnection = (HttpURLConnection) urlConnection;
        int responseCode = httpConnection.getResponseCode();
        result = (responseCode == 200);
    }
    return result;
}

このメソッドは機能しますが、5 秒ごとにユーザーの接続をチェックするタイマーで使用されるため、アプリケーションの速度が低下します。そして、ユーザーの接続状態をリアルタイムで知る必要があります...

誰かがインターネット接続を確認する別の方法を知っていますか? 多分Javaリフレクションで...?

4

1 に答える 1

-2
ConnectivityManager mConnMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);

public boolean hasWifi() {
    return mConnMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI) != null
            && mConnMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();
}

これは、あなたの望むことですか ?

于 2013-08-06T13:43:44.740 に答える