-1

重複の可能性:
Androidでインターネット接続を確認しています

私のアプリケーションでは、インターネット接続を確認したいと思います。デバイスがインターネットに接続されていない場合は、アプリを閉じたいと思います。そのため、この方法を使用してインターネット接続を確認します。

public boolean isDeviceConnectedToInternet() {
        ConnectivityManager cm =
            (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo netInfo = cm.getActiveNetworkInfo();
        if (netInfo != null && netInfo.isConnectedOrConnecting()) {
            return true;
        }
        return false;
    }

ユーザー権限が設定されます:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Wi-Fiをオフにしてアプリを実行すると、Logcatで真になりました。

私のAndroidデバイスで実行している間、それは機能しています。しかし、エミュレータで同じことが起こらない理由がわかりません。

4

2 に答える 2

2
 public void checkConnection() throws NoInternetException {
    boolean connected = false;

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

    if (cm != null) {
        NetworkInfo[] netInfo = cm.getAllNetworkInfo();

        for (NetworkInfo ni : netInfo) {
            if ( ni.isConnected() && ni.isAvailable() ) {
                connected = true;
            }
        }
    }
    if (! connected) {
        throw new NoInternetException("NO INTERNET CONNECTION");
    }
}

ここでは、ネットワークがない場合に例外をスローしています。とにかく、接続された貴重なものを返すことができます

于 2012-10-01T06:50:26.263 に答える
1

インターネット接続をチェックするための簡単なコード。

ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();

String status = netInfo.getState().toString();
if (status.equals("CONNECTED")) 
{
    //DO you work or return your flag
} 
else 
{
    Log.e("error", "No connection available ");
}
于 2012-10-01T06:53:16.263 に答える