android 處理網路狀態——無網,2g,3g,wifi,ethernet,other

來源:互聯網
上載者:User

今天在一位很牛逼的學長的部落格裡面看到了這段代碼後,很是激動啊,於是就“偷”了過來,嘿嘿。。。。為自己也為更多需要它的程式媛

直接上代碼:

 

public class GetNetWorkStateActor extends FusionActor {@Overridepublic boolean processFusionMessage(FusionMessage msg) {// TODO Auto-generated method stubmsg.setResponseData(checkNet());return false;}private int checkNet() {// TODO Auto-generated method stubConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo mobNetInfoActivity = connectivityManager.getActiveNetworkInfo();int netFlag = 0;if (mobNetInfoActivity != null) {switch (mobNetInfoActivity.getType()) {case ConnectivityManager.TYPE_ETHERNET:// ethernetnetFlag = 1;break;case ConnectivityManager.TYPE_WIFI:// wifinetFlag = 2;break;case ConnectivityManager.TYPE_MOBILE:// gprsif(isFastMobileNetwork(context)){//2gnetFlag = 3;}else{//3gnetFlag = 4;}break;default:break;}} else {//no networknetFlag = 0;}return netFlag;}private static boolean isFastMobileNetwork(Context context) {         TelephonyManager telephonyManager = (TelephonyManager) context                 .getSystemService(Context.TELEPHONY_SERVICE);          switch (telephonyManager.getNetworkType()) {         case TelephonyManager.NETWORK_TYPE_1xRTT:             return false; // ~ 50-100 kbps         case TelephonyManager.NETWORK_TYPE_CDMA:             return false; // ~ 14-64 kbps         case TelephonyManager.NETWORK_TYPE_EDGE:             return false; // ~ 50-100 kbps         case TelephonyManager.NETWORK_TYPE_EVDO_0:             return true; // ~ 400-1000 kbps         case TelephonyManager.NETWORK_TYPE_EVDO_A:             return true; // ~ 600-1400 kbps         case TelephonyManager.NETWORK_TYPE_GPRS:             return false; // ~ 100 kbps         case TelephonyManager.NETWORK_TYPE_HSDPA:             return true; // ~ 2-14 Mbps         case TelephonyManager.NETWORK_TYPE_HSPA:             return true; // ~ 700-1700 kbps         case TelephonyManager.NETWORK_TYPE_HSUPA:             return true; // ~ 1-23 Mbps         case TelephonyManager.NETWORK_TYPE_UMTS:             return true; // ~ 400-7000 kbps         case TelephonyManager.NETWORK_TYPE_EHRPD:             return true; // ~ 1-2 Mbps         case TelephonyManager.NETWORK_TYPE_EVDO_B:             return true; // ~ 5 Mbps         case TelephonyManager.NETWORK_TYPE_HSPAP:             return true; // ~ 10-20 Mbps         case TelephonyManager.NETWORK_TYPE_IDEN:             return false; // ~25 kbps         case TelephonyManager.NETWORK_TYPE_LTE:             return true; // ~ 10+ Mbps         case TelephonyManager.NETWORK_TYPE_UNKNOWN:             return false;         default:             return false;         }  }}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.