Android - 小功能 - Android--判断网络连接状态

来源:互联网 发布:win to go mac 编辑:程序博客网 时间:2024/05/17 12:25

               前言:我这个人比较懒,我其实不喜欢写博客,之所以写出来,只是为了有时候忘记了,可以有地方直接看,不需要满互联网的瞎找,

所以写出来的博客质量一般都是用代码说话,一般都会有注释啥的

               内容:今天主要是提供判断网络连接状态的方法,可以直接用,这个倒是部分版本的

               题外话:貌似前段时间4.4版本中出了ART模式,据我上网看论坛,经过大家的一直反应都是流畅无明显提升,普通应用和dalvik打开的速度差不多,游戏的开启速度会快上一些,但是发热也偏严重,而且目前对有些应用不太兼容,容易让机子有崩溃的冲动,个人建议坐等新版本出来,也好让市场上的应用有响应的缓冲时间,这样上手的体验也会更好

               代码:

package com.android.service;

import com.android.until.NetState;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo.State;
import android.util.Log;
import android.widget.Toast;

//ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

public class NetChangeReceiver extends BroadcastReceiver {

    @SuppressWarnings("static-access")
    @Override
    public void onReceive(Context context, Intent intent) {
        // 获得网络连接服务
        ConnectivityManager connManager = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        // State state = connManager.getActiveNetworkInfo().getState();
        State state = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
                .getState(); // 获取网络连接状态
        if (State.CONNECTED == state) { // 判断是否正在使用WIFI网络
            Toast.makeText(context, "wifi网络可用", Toast.LENGTH_LONG).show();
            NetState.getInstance().setWifiState(true);

        } else if (state == State.CONNECTING) {
            Toast.makeText(context, "wifi正在连接", Toast.LENGTH_LONG).show();
            NetState.getInstance().setWifiState(false);
            state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
                    .getState(); // 获取网络连接状态
            if (State.CONNECTED == state) { // 判断是否正在使用GPRS网络
                NetState.getInstance().getInstance().setGprsState(true);

            } else if (State.DISCONNECTED == state) { // 判断是否正在使用GPRS网络
                NetState.getInstance().getInstance().setGprsState(false);

            }

        } else if (state == State.DISCONNECTED) {
            Toast.makeText(context, "wifi不可用", Toast.LENGTH_LONG).show();
            NetState.getInstance().setWifiState(false);
            state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
                    .getState(); // 获取网络连接状态
            if (State.CONNECTED == state) { // 判断是否正在使用GPRS网络
                NetState.getInstance().getInstance().setGprsState(true);
                Toast.makeText(context, "2G/3G网络可用", Toast.LENGTH_LONG).show();

            } else if (State.DISCONNECTED == state) { // 判断是否正在使用GPRS网络
                NetState.getInstance().getInstance().setGprsState(false);
                Toast.makeText(context, "2G/3G网络不可用", Toast.LENGTH_LONG).show();
                state = connManager.getNetworkInfo(
                        ConnectivityManager.TYPE_MOBILE).getState(); // 获取网络连接状态
                if (State.CONNECTED == state) { // 判断是否正在使用GPRS网络
                    NetState.getInstance().getInstance().setGprsState(true);
                    Toast.makeText(context, "2G/3G网络可用", Toast.LENGTH_LONG)
                            .show();

                } else if (State.DISCONNECTED == state) { // 判断是否正在使用GPRS网络
                    NetState.getInstance().getInstance().setGprsState(false);
                    Toast.makeText(context, "2G/3G网络不可用", Toast.LENGTH_LONG)
                            .show();
                }
            }

        } else if (state == State.DISCONNECTING) {
            Toast.makeText(context, "wifi断开断开中", Toast.LENGTH_LONG).show();
            NetState.getInstance().setWifiState(false);
            state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
                    .getState(); // 获取网络连接状态
            if (State.CONNECTED == state) { // 判断是否正在使用GPRS网络
                NetState.getInstance().getInstance().setGprsState(true);

            } else if (State.DISCONNECTED == state) { // 判断是否正在使用GPRS网络
                NetState.getInstance().getInstance().setGprsState(false);

            }

        }

        if (!NetState.getInstance().getInstance().isGprsState()
                && !NetState.getInstance().getInstance().isWifiState()) {
            Toast.makeText(context, "您的网络连接已中断", Toast.LENGTH_LONG).show();
        }
    }
}

 
0 0