Someone else to write and share.
Public Static classNetWork { Public Static FinalString Network_type_wifi = "WIFI"; Public Static FinalString network_type_3g = "EG"; Public Static FinalString network_type_2g = "2g"; Public Static FinalString Network_type_wap = "WAP"; Public Static FinalString Network_type_unknown = "UNKNOWN"; Public Static FinalString network_type_disconnect = "DISCONNECT"; Public Static intGetnetworktype (Context context) {Connectivitymanager Connectivitymanager=(Connectivitymanager) context. Getsystemservice (Context.connectivity_service); Networkinfo Networkinfo= Connectivitymanager = =NULL?NULL: Connectivitymanager.getactivenetworkinfo (); returnNetworkinfo = =NULL? -1: Networkinfo.gettype (); } Public StaticString Getnetworktypename (context context) {Connectivitymanager Manager=(Connectivitymanager) Context.getsystemservice (Context.connectivity_service); Networkinfo Networkinfo; String type=Network_type_disconnect; if(Manager = =NULL|| (Networkinfo = Manager.getactivenetworkinfo ()) = =NULL) { returntype; } if(networkinfo.isconnected ()) {String TypeName=Networkinfo.gettypename (); if("WIFI". Equalsignorecase (TypeName)) {Type=Network_type_wifi; } Else if("MOBILE". Equalsignorecase (TypeName)) {String ProxyHost=Android.net.Proxy.getDefaultHost (); Type= Textutils.isempty (proxyhost)? (Isfastmobilenetwork (context)?)network_type_3g:network_type_2g): Network_type_wap; } Else{type=Network_type_unknown; } } returntype; } Private Static BooleanIsfastmobilenetwork (Context context) {Telephonymanager Telephonymanager=(Telephonymanager) Context.getsystemservice (Context.telephony_service); if(Telephonymanager = =NULL) { return false; } Switch(Telephonymanager.getnetworktype ()) { CaseTelephonymanager.network_type_1xrtt:return false; CaseTELEPHONYMANAGER.NETWORK_TYPE_CDMA:return false; CaseTelephonymanager.network_type_edge:return false; Casetelephonymanager.network_type_evdo_0:return true; Casetelephonymanager.network_type_evdo_a:return true; CaseTelephonymanager.network_type_gprs:return false; CaseTELEPHONYMANAGER.NETWORK_TYPE_HSDPA:return true; CaseTelephonymanager.network_type_hspa:return true; CaseTelephonymanager.network_type_hsupa:return true; CaseTelephonymanager.network_type_umts:return true; CaseTELEPHONYMANAGER.NETWORK_TYPE_EHRPD:return true; CaseTelephonymanager.network_type_evdo_b:return true; CaseTELEPHONYMANAGER.NETWORK_TYPE_HSPAP:return true; CaseTelephonymanager.network_type_iden:return false; CaseTelephonymanager.network_type_lte:return true; CaseTelephonymanager.network_type_unknown:return false; default: return false; } } }
Android to determine network status