<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>

  • x
    x
    查看: 2705|回復: 0
    打印 上一主題 下一主題

    安卓處理網絡狀態——無網,2g,3g,wifi,ethernet,other

    [復制鏈接]
    跳轉到指定樓層
    樓主
    發表于 2013-8-28 15:31:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
    關鍵詞: 清源教育 , android , 網絡狀態
    分享給大家一篇技術文章,還有很多不足之處,歡迎吐槽!期待各位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. }
    復制代碼


    您需要登錄后才可以回帖 登錄 | 立即注冊

    本版積分規則

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷