0

との接続を確認します

ConnectivityManager connec = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
android.net.NetworkInfo wifi = connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
android.net.NetworkInfo mobile = connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

Wi-Fi を使用していますが、携帯電話で間違ったステータスが表示されます。どうすればよいですか?

4

3 に答える 3

1

次の標準的な方法を使用して、天気予報のインターネット接続が接続されているかどうかを確認してください.....

public static final boolean isNetworkConnected(Context context) {
        if (context != null) {
            ConnectivityManager mgr = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);

            if (mgr != null) {
                boolean mobileNetwork = false;
                boolean wifiNetwork = false;

                NetworkInfo mobileInfo = mgr
                        .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
                NetworkInfo wifiInfo = mgr
                        .getNetworkInfo(ConnectivityManager.TYPE_WIFI);

                if (mobileInfo != null)
                    mobileNetwork = mobileInfo.isConnected();
                if (wifiInfo != null)
                    wifiNetwork = wifiInfo.isConnected();

                return (mobileNetwork || wifiNetwork);
            }
        }
        return false;
    }
于 2012-04-23T12:34:30.277 に答える
1

マニフェスト ファイルで、以下に示す必要なアクセス許可を与えていますか...

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
于 2012-04-23T12:27:32.903 に答える
1

このコードは、Wifi とセル データ インターネット接続の両方で試すことができます。

private boolean haveNetworkConnection() {
  boolean haveConnectedWifi = false;
  boolean haveConnectedMobile = false;

ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] netInfo = cm.getAllNetworkInfo();
for (NetworkInfo ni : netInfo) {
    if (ni.getTypeName().equalsIgnoreCase("WIFI"))
        if (ni.isConnected())
            haveConnectedWifi = true;
    if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
        if (ni.isConnected())
            haveConnectedMobile = true;
}
   return haveConnectedWifi || haveConnectedMobile;
}

または、次の方法を使用できます

public boolean isNetworkAvailable() {
ConnectivityManager cm = (ConnectivityManager) 
    getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
// if no network is available networkInfo will be null
// otherwise check if we are connected
if (networkInfo != null && networkInfo.isConnected()) {
    return true;
}
return false;
}

これには ACCESS_NETWORK_STATE 権限が必要です。

于 2012-04-23T12:36:21.417 に答える