查看: 2691|回復: 0
打印 上一主題 下一主題

安卓處理網(wǎng)絡(luò )狀態(tài)——無(wú)網(wǎng),2g,3g,wifi,ethernet,other

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2013-8-28 15:31:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
分享給大家一篇技術(shù)文章,還有很多不足之處,歡迎吐槽!期待各位android愛(ài)好者,加入android學(xué)習交流群: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. }
復制代碼


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

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页