Android工具类-关于网络、状态的工具类
2013-10-31 21:14
435 查看
下方是一个很好的监测网络、状态的工具类
以上方法均通过测试,tv_result为自设定的TextView。
public class NetworkUtils { /** * 网络是否可用 * * @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) { * * @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; } }
以上方法均通过测试,tv_result为自设定的TextView。
tv_result.append("网络是否可用:"+NetworkUtils.isNetworkAvailable(MainActivity.this)+"\n"); tv_result.append("GPS开关是否打开:"+NetworkUtils.isGpsEnabled(MainActivity.this)+"\n"); tv_result.append("是否为3G网络:"+NetworkUtils.is3G(MainActivity.this)+"\n"); tv_result.append("WIFI是否打开:"+NetworkUtils.isWifiEnabled(MainActivity.this)+"\n"); tv_result.append("是否为WIFI网络:"+NetworkUtils.isWifi(MainActivity.this)+"\n");
相关文章推荐
- 基于socket的TCP和UDP编程
- 授权android应用程序访问网络
- 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。
- httpclient 获取网页内容
- 基于Visio技术的网络拓扑是软件绘图的首选技术
- HDU 3472 混合图欧拉回路 + 网络流
- 关于TCP打洞技术(P2P)
- PHP使用libevent实现高性能httpServer
- RTP 与RTCP 解释. 含同步时间戳
- 利用ASIHTTPRequest访问网络
- muduo网络库学习之MutexLock类、MutexLockGuard类、Condition类、CountDownLatch类封装中的知识点
- 看懂信息检索和网络数据挖掘领域论文的必备知识总结
- Linux下NC扫描TCP,UDP端口
- 错误:bad request 400(建立socket http get请求)-linux
- Linux 上的基础网络设备详解
- ios下获取所有实体/虚拟网卡的信息,并以此判断设备所处的网络状态
- httpd 13 permission denied make_sock could not bind to address 失败的原因
- 借用snort实现网络扫描器发现功能
- 网络数据包发送接收全过程
- c++实现mlp神经网络