您的位置:首页 > 理论基础 > 计算机网络

手机网络

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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: