您的位置:首页 > 理论基础 > 计算机网络

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

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

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

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

题外话:貌似前段时间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();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: