Android网络状态

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

/**
 * Created by LStar on 2017/3/9.
 * 网络状态工具类
 */
public class NetworkStateUtils {

    /**
     * 检查是否连接到网络
     */
    public static boolean networkConnected(Context context) {
        if (context != null) {
            ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo info = manager.getActiveNetworkInfo();
            if (info != null) {
                return info.isAvailable();
            }
        }
        return false;
    }

    /**
     * 检查WIFI是否连接
     */
    public static boolean wifiConnected(Context context) {
        if (context != null) {
            ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo info = manager.getActiveNetworkInfo();
            if (info != null) {
                if (info.getType() == ConnectivityManager.TYPE_WIFI) {
                    return info.isAvailable();
                }
            }
        }
        return false;
    }

    /**
     * 检查移动网络是否连接
     */
    public static boolean mobileConnected(Context context) {
        if (context != null) {
            ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo info = manager.getActiveNetworkInfo();
            if (info != null) {
                if (info.getType() == ConnectivityManager.TYPE_MOBILE) {
                    return info.isAvailable();
                }
            }
        }
        return false;
    }

}

添加权限

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

广播监听网络状态

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

/**
 * Created by LStar on 2017/3/9.
 * 广播监听网络状态
 */
public class NetworkStateReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        String state = "网络连接:" + NetworkStateUtils.networkConnected(context) +
                ",WiFi连接:" + NetworkStateUtils.wifiConnected(context) +
                ",移动连接:" + NetworkStateUtils.mobileConnected(context);
        Toast.makeText(context, state, Toast.LENGTH_SHORT).show();
    }

}

注册BroadcastReceiver

<receiver android:name=".NetworkStateReceiver">
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
</receiver>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容