network: Android 网络判断(wifi、3G与其他)

public class NetworkProber {

/**

* 网络是否可用

*

* @param activity

* @return

*/

public static boolean isNetworkAvailable(Context context) {

ConnectivityManager connectivity = (ConnectivityManager) context

.getSystemService(Context.CONNECTIVITY_SERVICE);

if (connectivity == null) {

} else {

NetworkInfo[] info = connectivity.getAllNetworkInfo();

if (info != null) {

for (int i = 0; i < info.length; i++) {

if (info[i].getState() == NetworkInfo.State.CONNECTED) {

return true;

}

}

}

}

return false;

}

/**

* Gps是否打开

*

* @param context

* @return

*/

public static boolean isGpsEnabled(Context context) {

LocationManager locationManager = ((LocationManager) context

.getSystemService(Context.LOCATION_SERVICE));

List<String> accessibleProviders = locationManager.getProviders(true);

return accessibleProviders != null && accessibleProviders.size() > 0;

}

/**

* wifi是否打开

*/

public static boolean isWifiEnabled(Context context) {

ConnectivityManager mgrConn = (ConnectivityManager) context

.getSystemService(Context.CONNECTIVITY_SERVICE);

TelephonyManager mgrTel = (TelephonyManager) context

.getSystemService(Context.TELEPHONY_SERVICE);

return ((mgrConn.getActiveNetworkInfo() != null && mgrConn

.getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel

.getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS);

}

/**

* 判断当前网络是否是wifi网络

* if(activeNetInfo.getType()==ConnectivityManager.TYPE_MOBILE) { //判断3G网

*

* @param context

* @return boolean

*/

public static boolean isWifi(Context context) {

ConnectivityManager connectivityManager = (ConnectivityManager) context

.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();

if (activeNetInfo != null

&& activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) {

return true;

}

return false;

}

/**

* 判断当前网络是否是3G网络

*

* @param context

* @return boolean

*/

public static boolean is3G(Context context) {

ConnectivityManager connectivityManager = (ConnectivityManager) context

.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();

if (activeNetInfo != null

&& activeNetInfo.getType() == ConnectivityManager.TYPE_MOBILE) {

return true;

}

return false;

}

}

另外还有两个方法判断网络是否可用:

public static boolean isNetworkAvailable_00(Context context) {

ConnectivityManager cm = ((ConnectivityManager) context

.getSystemService(Context.CONNECTIVITY_SERVICE));

if (cm != null) {

NetworkInfo info = cm.getActiveNetworkInfo();

if (info != null && info.isConnectedOrConnecting()) {

return true;

}

}

return false;

}

public static boolean isNetworkAvailable_01(Context context) {

ConnectivityManager cm = (ConnectivityManager) context

.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo network = cm.getActiveNetworkInfo();

if (network != null) {

return network.isAvailable();

}

return false;

}

更加严谨的写法:

public static boolean checkNet(Context context) {

try {

ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

if (connectivity != null) {

NetworkInfo info = connectivity.getActiveNetworkInfo();

if (info != null && info.isConnected()) {

if (info.getState() == NetworkInfo.State.CONNECTED) {

return true;

}

}

}

} catch (Exception e) {

return false;

}

return false;

}

时间: 2024-10-16 23:37:39

network: Android 网络判断(wifi、3G与其他)的相关文章

保存一下简单封装的工具类JsonUtils 、android网络判断的Utils 是否连接无wifi、sdcard状态的utils

1.JsonUtils    json和实体类之间相互转换 随便提一下  App版本升级   github上有开源框架可以看一下VersionUpdate: public class JsonUtils { /** * 将一个实体类转换成json字符串(对象中可以包含集合) */ public static <T> String beanToJson(T t){ Gson gson = new Gson(); String json = gson.toJson(t); return json;

android 网络判断工具类(APN+WIFI)

public class NetWorkHelper { private static String LOG_TAG = "NetWorkHelper"; public static Uri uri = Uri.parse("content://telephony/carriers"); /** * 判断是否有网络连接 */ public static boolean isNetworkAvailable(Context context) { Connectivit

android网络判断

package cn.hackcoder.beautyreader.broadcast; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.util.Log; import android.widget.Toast; import

android 中判断WiFi是否可用的可靠方法 ,android 是否联网

http://alex-yang-xiansoftware-com.iteye.com/blog/619841 在一些程序中,需要从网上下载数据,或者通过其他方式对网络产生流量,当wifi不可用时应该提示用户wifi已经不可用了,是否继续,因为如果wifi掉了,那么程序可能采用3G卡或其他的收费的渠道使用网络,会导在不知情时产生大量的上网费用.通过查看android的api可使用下列方法进行判断: public static boolean isWiFiActive(Context inCont

android 网络连接 wifi gprs的连接

package com.example.androidday15_network1; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo.State; import android.os.Bundle; import andr

android如何判断当前网络类型(联网,2g,3g,wifi等)

一般对网络的判断都是判断是否联网,不过有时候我们需要知道具体的网络类型,比如在3g网络下,百度地图的定位功能存在很大的偏差,这就需要提前判断网络类型针对3g网络情况做特殊的处理. 关于Android如何检测网络的类型,网上代码很多,但是有用的不多,真正解决了问题的我只找到一篇(见文章末尾网址),为了更好的方便自己理解,对这片文章做了解释和整理. 在android中判断网络需要用到ConnectivityManager,下面的方法演示了如何用ConnectivityManager判断当前是否联网:

Android网络类型判断(2g、3g、wifi)

判断网络类型是wifi,还是3G,还是2G网络,对不同 的网络进行不同的处理,现将判断方法整理给大家,以供参考 说明:下面用到的数据移动2G,联通2G,联通3G,wifi我都已经测试过,暂时手上 没有电信的卡,所以没有验证,有电信手机的同事,可以验证一下,验证后将结果 发送给大家. ConnectivityManager connectMgr = (ConnectivityManager) this .getSystemService(Context.CONNECTIVITY_SERVICE);

Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面

http://www.mobiletuts.me 获取网络连接状态 随着3G和Wifi的推广,越来越多的Android应用程序需要调用网络资源,检测网络连接状态也就成为网络应用程序所必备的功能. Android平台提供了ConnectivityManager  类,用于网络连接状态的检测. Android开发文档这样描述ConnectivityManager 的作用: Class that answers queries about the state of network connectivi

Android: 网络随时需要在3G和Wifi切换,网络程序需要注意

平时,3G和WIFI 都开着的时候,Android默认使用Wifi,但现实环境中不可能到处都有wifi,所以手机会经常自动切换网络. 有的时候,手机一开始使用wifi上网,当进入待机后10-30分钟,会自动从Wifi切换到3G网络. 如果编写网络程序,网络自动切换对程序的影响是非常明显的,IP地址肯定会变化. 感觉Android环境与我们日常用的windows环境还是有很大不同的,写Android程序,明显需要注意的细节有很多. ---------------------------------