android 网络判断的几种方法
来源:互联网 发布:视频照片拼接软件 编辑:程序博客网 时间:2024/05/21 09:39
Android网络判断很简单,看代码就能明白
package mark.zhang; import java.util.List; import android.content.Context; import android.location.LocationManager; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.telephony.TelephonyManager; 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; }在这里感谢原作者的总结 ,原文出处:http://blog.csdn.net/veryitman/article/details/6860146
0 0
- android 网络判断的几种方法
- iOS中判断网络的状态的几种方法
- 判断网络是否连接的几种方法
- iOS 判断网络连接状态的几种方法
- iOS 判断网络连接状态的几种方法
- iOS 判断网络连接状态的几种方法
- 判断Android程序前后台切换的几种方法
- android开发网络请求的几种方法
- android下载网络数据的几种方法
- Android判断有无网络的方法
- Android判断网络是否可用的方法
- 使用JS在浏览器中判断当前网络连接状态的几种方法
- 提交表单的几种判断方法
- Flex判断数据类型的几种方法
- 大小端的几种判断方法
- JS 判断字数的几种方法
- jquery判断是否的几种方法
- 判断素数的几种方法
- struts2+ajaxfileupload完成单图片无刷新上传
- 黑马程序员--Java开发文档大全,没有你找不到的,只有你想不到的!
- node.js Duplex流与Transform 流
- Cocos2D-X Tutorial for iOS and Android: Getting Started
- perl单独安装模块
- android 网络判断的几种方法
- QT win7 环境变量设置 , qt 找不到mingw10.dll 出错
- 算法之排序算法
- Map九大常见问题
- iphone数据存储之-- Core Data的使用
- spring注解入门
- C++延时用程序
- Delphi2007的重构功能
- c语言利用递归实现二分查找