android中判断手机网络状况

本文介绍如何在Android应用中检查设备的网络状态,包括判断是否有网络连接、判断Wi-Fi是否可用及获取当前网络类型等方法,并提供了如何在非Wi-Fi状态下引导用户开启Wi-Fi的示例。

参考博主:http://www.cnblogs.com/qingblog/archive/2012/07/19/2598983.html


1、首先要添加权限:

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

2、

/**判断有没有连接网络*/
public boolean isNetworkConnected(Context context) {
    if (context != null) {
        ConnectivityManager mConnectivityManager = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
        if (mNetworkInfo != null) {
            return mNetworkInfo.isAvailable();
        }
    }
    return false;
}

/**判断wifi是否可用*/
public boolean isWifiConnected(Context context) {
    if (context != null) {
        ConnectivityManager mConnectivityManager = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo mWiFiNetworkInfo = mConnectivityManager
                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);//可判断其他类型
        if (mWiFiNetworkInfo != null) {
            return mWiFiNetworkInfo.isAvailable();
        }
    }
    return false;
}

/**获取当前网络连接的类型
 * 0:移动网络
 * 1wifi
 *-1:无网络*/
public static int getConnectedType(Context context) {
    if (context != null) {
        ConnectivityManager mConnectivityManager = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
        if (mNetworkInfo != null && mNetworkInfo.isAvailable()) {
            return mNetworkInfo.getType();
        }
    }
    return -1;
}
/**如果项目中需要wifi才支持下载,那么调用手机系统去设置
 * 一般以对话框的形式提示非wifi状态并调开wifi设置*/
private void setWifiNetwork(){
    Intent intent;
    /**
     * 判断手机系统的版本!如果API大于10 就是3.0+
     * 因为3.0以上的版本的设置和3.0以下的设置不一样,调用的方法不同
     */
    if (android.os.Build.VERSION.SDK_INT > 10) {
        intent = new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS);
    } else {
        intent = new Intent();
        ComponentName component = new ComponentName("com.android.settings",
                "com.android.settings.WirelessSettings");
        intent.setComponent(component);
        intent.setAction("android.intent.action.VIEW");
    }
    startActivity(intent);
}

/**wifi状态才下载操作*/
private void isNetworkAvailable(Context context){
    if (context != null) {
        ConnectivityManager mConnectivityManager = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo.State gprs = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
        NetworkInfo.State wifi = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
        if(gprs == NetworkInfo.State.CONNECTED || gprs == NetworkInfo.State.CONNECTING){
            Toast.makeText(this, "the network is GPRS", Toast.LENGTH_SHORT).show();
        }
        //判断是wifi才播放视频
        if(wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING){
            Toast.makeText(this, "the network is WIFI", Toast.LENGTH_SHORT).show();
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值