//获取网络类型 2G/3G/WIFI
publicString getNetworkType(){
String mNetWorkType= "";
ConnectivityManager manager=(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo=manager.getActiveNetworkInfo();if (networkInfo != null &&networkInfo.isConnected()) {
String type=networkInfo.getTypeName();if (type.equalsIgnoreCase("WIFI")) { //WIFI网络
mNetWorkType = "WIFI";
}else if (type.equalsIgnoreCase("MOBILE")) {
String proxyHost=android.net.Proxy.getDefaultHost();if (TextUtils.isEmpty(proxyHost) == true){if (isFastMobileNetwork(this) == true){ //3G网络
mNetWorkType = "3G";
}else{ //2G网络
mNetWorkType = "2G";
}
}else{ //wap网络
mNetWorkType = "wap";
}
}
}else { //无网络
mNetWorkType = "";
}returnmNetWorkType;
}public booleanisFastMobileNetwork(Context context) {
TelephonyManager telephonyManager=(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);switch(telephonyManager.getNetworkType()) {caseTelephonyManager.NETWORK_TYPE_1xRTT:return false; //~ 50-100 kbps
caseTelephonyManager.NETWORK_TYPE_CDMA:return false; //~ 14-64 kbps
caseTelephonyManager.NETWORK_TYPE_EDGE:return false; //~ 50-100 kbps
caseTelephonyManager.NETWORK_TYPE_EVDO_0:return true; //~ 400-1000 kbps
caseTelephonyManager.NETWORK_TYPE_EVDO_A:return true; //~ 600-1400 kbps
caseTelephonyManager.NETWORK_TYPE_GPRS:return false; //~ 100 kbps
caseTelephonyManager.NETWORK_TYPE_HSDPA:return true; //~ 2-14 Mbps
caseTelephonyManager.NETWORK_TYPE_HSPA:return true; //~ 700-1700 kbps
caseTelephonyManager.NETWORK_TYPE_HSUPA:return true; //~ 1-23 Mbps
caseTelephonyManager.NETWORK_TYPE_UMTS:return true; //~ 400-7000 kbps
caseTelephonyManager.NETWORK_TYPE_EHRPD:return true; //~ 1-2 Mbps
caseTelephonyManager.NETWORK_TYPE_EVDO_B:return true; //~ 5 Mbps
caseTelephonyManager.NETWORK_TYPE_HSPAP:return true; //~ 10-20 Mbps
caseTelephonyManager.NETWORK_TYPE_IDEN:return false; //~25 kbps
caseTelephonyManager.NETWORK_TYPE_LTE:return true; //~ 10+ Mbps
caseTelephonyManager.NETWORK_TYPE_UNKNOWN:return false;default:return false;
}
}//获取手机运营商
publicString getProvidersName() {
String ProvidersName= null;//返回唯一的用户ID;就是这张卡的编号神马的
String IMSI =((TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE)).getSubscriberId();//IMSI号前面3位460是国家,紧接着后面2位00 02是中国移动,01是中国联通,03是中国电信。
if (IMSI.startsWith("46000") || IMSI.startsWith("46002")) {
ProvidersName= "中国移动";
}else if (IMSI.startsWith("46001")) {
ProvidersName= "中国联通";
}else if (IMSI.startsWith("46003")) {
ProvidersName= "中国电信";
}returnProvidersName;
}//获取屏幕分辨率
publicString getScreenResolution(){
WindowManager windowManager=getWindowManager();
Display display=windowManager.getDefaultDisplay();int screenWidth =display.getWidth();int screenHeight =display.getHeight();return screenWidth + "*" +screenHeight;
}