手机网络
2015-12-31 16:47
561 查看
监听手机网络状态(wifi、移动网络、GPS)
package com.suzhou.mobile.clocking; import java.lang.reflect.Method; import android.content.Context; import android.location.LocationManager; import android.net.ConnectivityManager; import android.net.NetworkInfo; public class ConnectivityUtil { /** * 判断当前网络是否可用 * * @param context * @return */ public static boolean isNetworkAvailable(Context context) { 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;// 当前所连接的网络可用 } } return false; } /** * 判断GPS是否开启 * * @return 0表示关闭,1表示开启 */ public static int isGpsEnable(Context context) { LocationManager mLocationManager = ((LocationManager) context.getSystemService(Context.LOCATION_SERVICE)); if (mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) return 1; return 0; } /** * wifi是否连接 * * @return 0表示关闭,1表示开启 */ public static int isWifiConnected(Context context) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo(); if (mNetworkInfo != null && mNetworkInfo.isConnected()) return mNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI ? 1 : 0; return 0; } /** * 设置移动数据网络状态 * * @param context * @param isMobileDataEnabled */ public void setMobileDataEnabled(Context context, boolean isMobileDataEnabled) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); try { Method method = mConnectivityManager.getClass().getDeclaredMethod("setMobileDataEnabled", boolean.class); if (null != method) { method.setAccessible(true); method.invoke(mConnectivityManager, isMobileDataEnabled); } } catch (Exception e) { e.printStackTrace(); } } /** * 移动网络是否开启 * * @return 1表示开启,0表示关闭 */ public static int getMobileDataEnabled(Context context) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); try { Method method = mConnectivityManager.getClass().getDeclaredMethod("getMobileDataEnabled"); if (null != method) { method.setAccessible(true); boolean isMobileDataEnabled = (Boolean) method.invoke(mConnectivityManager); return isMobileDataEnabled ? 1 : 0; } } catch (Exception e) { e.printStackTrace(); } return 0; } }
相关文章推荐
- getResponseCode获取URL响应状态码 HTTP状态返回码
- C#开发之Socket网络编程TCP/IP层次模型、端口及报文等探讨
- httpRequest.CookieContainer= cookie 与 httpRequest.Headers.Add("Cookie", cookie)
- 网络编程中的关键问题总结
- Android Okhttp之Okio解析
- iOS - 检测网络状态: Reachability和非Reachability
- TCP协议疑难杂症全景分析
- HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。
- NAT Network Address Translation,网络地址转换
- 快速学习AngularJs HTTP响应拦截器
- 不同框架实现的WebService的服务端获取HttpServletRequest
- java网络协议(IPV4/IPV6)
- 判断网络是否可用
- Android 网络改变监听
- Apache-Tomcat集群--Apache HTTP Server 与 Tomcat 的三种连接方式介绍
- 快速了解AngularJs HTTP响应拦截器
- Mac下用charles:http+https抓包笔记
- printf 和cout http://fujiaozhu.me/?p=700
- Http协议
- Drainage Ditches(HDU1532,网络流)