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();
}
}
}
所以写出来的博客质量一般都是用代码说话,一般都会有注释啥的
内容:今天主要是提供判断网络连接状态的方法,可以直接用,这个倒是部分版本的
题外话:貌似前段时间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();
}
}
}
相关文章推荐
- Android功能模块化之网络连接状态判断
- Android: 判断网络连接状态及连接类型
- Android中监听判断网络连接状态的方法
- Android判断设备网络连接状态,并判断连接方式
- Android 判断网络连接状态
- Android 判断及监听网络连接状态
- C#使用Ping功能判断网络连接状态或者目标计算机是否开机等
- android判断网络连接状态-ConnectivityManager
- Android Network --判断网络状态(网络的连接,改变,和判断2G/3G/4G)
- Android判断设备网络连接状态,并判断连接方式
- android(java) socket判断网络连接状态
- 【Android Training - Performance】优化电池续航能力[Lesson 3 - 判断并监测网络连接状态]
- android设备判断网络连接状态
- Android中判断网络连接状态
- Android判断网络连接状态并进入网络设置页面
- Android中判断网络连接是否可用及监控网络状态
- Android Network ——判断网络状态(网络的连接,改变,和判断2G/3G/4G)
- Android判断设备网络连接状态,并判断连接方式
- Android中判断网络连接是否可用及监控网络状态
- Android中判断网络连接是否可用及监控网络状态