Android网络状态

作者: 毕加森 | 来源:发表于2017-03-09 14:04 被阅读149次
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>

相关文章

  • Android网络——网络状态

    1. 判断网络是否可用 2. 判断网络类型

  • Android网络状态

    添加权限 广播监听网络状态 注册BroadcastReceiver

  • Android 检测网络类型及是否能用

    Android 中网络连接检测和使用ping检测网络是否可访问Android:检测网络状态&监听网络变化 获得Co...

  • Android监听网络状态

    几乎所有的安卓应用都会用到网络,除去极少数纯单机的应用。而在应用使用网络的过程中,必然会收到网络状态的影响。特别是...

  • Android获取网络状态

    前言:在开发安卓移动端时,几乎每一个app都需要连接网络,因此,对设备的网络状态检测是很有必要的!比如:检测当前网...

  • Android网络状态监听

    1.添加权限 2.获取ConnectivityManager 3监听网络状态 网络监听广播

  • Android监听网络连接状态变化

    对于Android监听网络连接状态变化,网上太多这类资料了,而且对于网络连接状态和网络开关状态很容易混淆不清。 对...

  • (笔记)Android监听网络状态

    在Android中对于网络状态的监听,这里做最简单的一种。直接上步骤:1、首先在Activity或者Fragmen...

  • Android的网络状态判断

    获取网络信息需要在AndroidManifest.xml文件中加入相应的权限。 1)判断是否有网络连接 2)判断W...

  • Android广播监听网络状态

    1.先说一下广播,广播分为两种:静态广播和动态广播。静态广播即是静态注册的,而动态广播是代码动态注册。静态注册是通...

网友评论

    本文标题:Android网络状态

    本文链接:https://www.haomeiwen.com/subject/ivvwgttx.html