<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • 電子工程網

    標題: 安卓處理網絡狀態——無網,2g,3g,wifi,ethernet,other [打印本頁]

    作者: reggae    時間: 2013-8-28 15:31
    標題: 安卓處理網絡狀態——無網,2g,3g,wifi,ethernet,other
    分享給大家一篇技術文章,還有很多不足之處,歡迎吐槽!期待各位android愛好者,加入android學習交流群:278744577,加群請驗證:eec,共同探討!
    直接上代碼:
    1. public class GetNetWorkStateActor extends FusionActor {
    2. @Override
    3. public boolean processFusionMessage(FusionMessage msg) {
    4. // TODO Auto-generated method stub
    5. msg.setResponseData(checkNet());
    6. return false;
    7. }
    8. private int checkNet() {
    9. // TODO Auto-generated method stub
    10. ConnectivityManager connectivityManager = (ConnectivityManager) context
    11. .getSystemService(Context.CONNECTIVITY_SERVICE);
    12. NetworkInfo mobNetInfoActivity = connectivityManager
    13. .getActiveNetworkInfo();
    14. int netFlag = 0;
    15. if (mobNetInfoActivity != null) {
    16. switch (mobNetInfoActivity.getType()) {
    17. case ConnectivityManager.TYPE_ETHERNET:
    18. // ethernet
    19. netFlag = 1;
    20. break;
    21. case ConnectivityManager.TYPE_WIFI:
    22. // wifi
    23. netFlag = 2;
    24. break;
    25. case ConnectivityManager.TYPE_MOBILE:
    26. // gprs
    27. if(isFastMobileNetwork(context)){
    28. //2g
    29. netFlag = 3;
    30. }else{
    31. //3g
    32. netFlag = 4;
    33. }
    34. break;
    35. default:
    36. break;
    37. }
    38. } else {
    39. //no network
    40. netFlag = 0;
    41. }
    42. return netFlag;
    43. }
    44. private static boolean isFastMobileNetwork(Context context) {
    45. TelephonyManager telephonyManager = (TelephonyManager) context
    46. .getSystemService(Context.TELEPHONY_SERVICE);
    47. switch (telephonyManager.getNetworkType()) {
    48. case TelephonyManager.NETWORK_TYPE_1xRTT:
    49. return false; // ~ 50-100 kbps
    50. case TelephonyManager.NETWORK_TYPE_CDMA:
    51. return false; // ~ 14-64 kbps
    52. case TelephonyManager.NETWORK_TYPE_EDGE:
    53. return false; // ~ 50-100 kbps
    54. case TelephonyManager.NETWORK_TYPE_EVDO_0:
    55. return true; // ~ 400-1000 kbps
    56. case TelephonyManager.NETWORK_TYPE_EVDO_A:
    57. return true; // ~ 600-1400 kbps
    58. case TelephonyManager.NETWORK_TYPE_GPRS:
    59. return false; // ~ 100 kbps
    60. case TelephonyManager.NETWORK_TYPE_HSDPA:
    61. return true; // ~ 2-14 Mbps
    62. case TelephonyManager.NETWORK_TYPE_HSPA:
    63. return true; // ~ 700-1700 kbps
    64. case TelephonyManager.NETWORK_TYPE_HSUPA:
    65. return true; // ~ 1-23 Mbps
    66. case TelephonyManager.NETWORK_TYPE_UMTS:
    67. return true; // ~ 400-7000 kbps
    68. case TelephonyManager.NETWORK_TYPE_EHRPD:
    69. return true; // ~ 1-2 Mbps
    70. case TelephonyManager.NETWORK_TYPE_EVDO_B:
    71. return true; // ~ 5 Mbps
    72. case TelephonyManager.NETWORK_TYPE_HSPAP:
    73. return true; // ~ 10-20 Mbps
    74. case TelephonyManager.NETWORK_TYPE_IDEN:
    75. return false; // ~25 kbps
    76. case TelephonyManager.NETWORK_TYPE_LTE:
    77. return true; // ~ 10+ Mbps
    78. case TelephonyManager.NETWORK_TYPE_UNKNOWN:
    79. return false;
    80. default:
    81. return false;
    82. }
    83. }
    84. }
    復制代碼







    歡迎光臨 電子工程網 (http://www.portaltwn.com/) Powered by Discuz! X3.4
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷