public class NetworkUtils {
/**
* @Title: checkingNetStatus
* @Description: 判斷網絡狀態
* @param: @param context
* @param: @return
* @return: boolean false:網絡異常;true 網絡正常
*/
public static boolean checkingNetStatus(Context context) {
boolean result = false;
ConnectivityManager conManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networInfo = conManager.getActiveNetworkInfo(); // 取得網絡連接相關信息
if (networInfo == null || !networInfo.isAvailable()) // 網絡鏈接異常
{
result = false;
} else {
result = true;
}
return result;
}
/**
* 打開網絡設置
*/
public static void openNetSet(Context context) {
if (android.os.Build.VERSION.SDK_INT > 10) {
// 3.0以上打開設置界面,也可以直接用ACTION_WIRELESS_SETTINGS打開到wifi界面
context.startActivity(new Intent(
android.provider.Settings.ACTION_SETTINGS));
} else {
context.startActivity(new Intent(
android.provider.Settings.ACTION_WIRELESS_SETTINGS));
}
}
/**
* 檢測手機是否開啓GPRS網絡,需要調用ConnectivityManager,TelephonyManager 服務.
*
* @param context
* @return boolean
*/
public static boolean checkGprsNetwork(Context context) {
boolean has = false;
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
TelephonyManager mTelephony = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
NetworkInfo info = connectivity.getActiveNetworkInfo();
int netType = info.getType();
int netSubtype = info.getSubtype();
if (netType == ConnectivityManager.TYPE_MOBILE
&& netSubtype == TelephonyManager.NETWORK_TYPE_UMTS
&& !mTelephony.isNetworkRoaming()) {
has = info.isConnected();
}
return has;
}
public static int checkNetType(Context context){
int type=0;
//0--網絡未連接
//1-wifi
//2-流量
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo.State gprs = connectivity.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
NetworkInfo.State wifi = connectivity.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
if(gprs == NetworkInfo.State.CONNECTED || gprs == NetworkInfo.State.CONNECTING){
type=2;
}
//判斷爲wifi狀態下才加載廣告,如果是GPRS手機網絡則不加載!
else if(wifi == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTING){
type=1;
}else {
type=0;
}
return type;
}
/**
* 檢測手機是否開啓WIFI網絡,需要調用ConnectivityManager服務.
*
* @param context
* @return boolean
*/
public static boolean checkWifiNetwork(Context context) {
boolean has = false;
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectivity.getActiveNetworkInfo();
int netType = info.getType();
int netSubtype = info.getSubtype();
if (netType == ConnectivityManager.TYPE_WIFI) {
has = info.isConnected();
}
return has;
}
/**
* 檢測當前手機是否聯網
*
* @param context
* @return boolean
*/
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} 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;
}
/**
* 手機是否處在漫遊
*
* @param mCm
* @return boolean
*/
public boolean isNetworkRoaming(Context mCm) {
ConnectivityManager connectivity = (ConnectivityManager) mCm
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
}
NetworkInfo info = connectivity.getActiveNetworkInfo();
boolean isMobile = (info != null && info.getType() == ConnectivityManager.TYPE_MOBILE);
TelephonyManager mTm = (TelephonyManager) mCm
.getSystemService(Context.TELEPHONY_SERVICE);
boolean isRoaming = isMobile && mTm.isNetworkRoaming();
return isRoaming;
}
public static String getImeiId(Context context) {
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
String imei = telephonyManager.getDeviceId();
return imei;
}
}
一些網絡判斷方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.