方法一:(简单判断WiFi和3G网络)
获取当前网络状态,主要分为Wi-Fi和Mobile(包括3G,GPRS)
public
class
NetworkUtils {
public
final
static
int
NONE =
0
;
//无网络
public
final
static
int
WIFI =
1
;
//Wi-Fi
public
final
static
int
MOBILE =
2
;
//3G,GPRS
/**
* 获取当前网络状态
* @param context
* @return
*/
public
static
int
getNetworkState(Context context){
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
//手机网络判断
State state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
if
(state == State.CONNECTED||state == State.CONNECTING){
return
MOBILE;
}
//Wifi网络判断
state = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
if
(state == State.CONNECTED||state == State.CONNECTING){
return
WIFI;
}
return
NONE;
}
}
方法二:
- 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");