首页 > 系统 > Android > 正文

Android判断设备网络连接状态及判断连接方式的方法

2019-10-24 20:35:21
字体:大 中 小
来源:转载
供稿:网友

这篇文章主要介绍了Android判断设备网络连接状态及判断连接方式的方法,涉及Android针对网络连接的相关判定技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了Android判断设备网络连接状态及判断连接方式的方法。分享给大家供大家参考,具体如下:

在Android开发过程中,对于一个需要连接网络的Android设备,对设备的网络状态检测是很有必要的!有很多的App都需要连接网络。判断设备是否已经连接网络,并且在连接网络的状态下判断是wifi无线连接还是GPRS手机网络连接,这样就可以在不同的网络连接下去调用不同的方法,处理不同的事情。这些功能都写在了下面的代码中了!请看主要代码如下:

 

 
  1. /**  
  2. * 检测网络是否连接  
  3. * @return  
  4. */ 
  5. private boolean checkNetworkState() { 
  6. boolean flag = false; 
  7. //得到网络连接信息 
  8. manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);  
  9. //去进行判断网络是否连接 
  10. if (manager.getActiveNetworkInfo() != null) { 
  11. flag = manager.getActiveNetworkInfo().isAvailable(); 
  12. } 
  13. if (!flag) { 
  14. setNetwork(); 
  15. } else { 
  16. isNetworkAvailable(); 
  17. } 
  18. return flag; 
  19. } 
  20. /** 
  21. * 网络未连接时,调用设置方法 
  22. */ 
  23. private void setNetwork(){ 
  24. Toast.makeText(this, "wifi is closed!", Toast.LENGTH_SHORT).show(); 
  25. AlertDialog.Builder builder = new AlertDialog.Builder(this); 
  26. builder.setIcon(R.drawable.ic_launcher); 
  27. builder.setTitle("网络提示信息"); 
  28. builder.setMessage("网络不可用,如果继续,请先设置网络!"); 
  29. builder.setPositiveButton("设置", new OnClickListener() { 
  30. @Override 
  31. public void onClick(DialogInterface dialog, int which) { 
  32. Intent intent = null; 
  33. /** 
  34. * 判断手机系统的版本!如果API大于10 就是3.0+ 
  35. * 因为3.0以上的版本的设置和3.0以下的设置不一样,调用的方法不同 
  36. */ 
  37. if (android.os.Build.VERSION.SDK_INT > 10) { 
  38. intent = new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS); 
  39. } else { 
  40. intent = new Intent(); 
  41. ComponentName component = new ComponentName( 
  42. "com.android.settings", 
  43. "com.android.settings.WirelessSettings"); 
  44. intent.setComponent(component); 
  45. intent.setAction("android.intent.action.VIEW"); 
  46. } 
  47. startActivity(intent); 
  48. } 
  49. }); 
  50. builder.setNegativeButton("取消", new OnClickListener() { 
  51. @Override 
  52. public void onClick(DialogInterface dialog, int which) { 
  53. } 
  54. }); 
  55. builder.create(); 
  56. builder.show(); 
  57. } 
  58. /** 
  59. * 网络已经连接,然后去判断是wifi连接还是GPRS连接 
  60. * 设置一些自己的逻辑调用 
  61. */ 
  62. private void isNetworkAvailable(){ 
  63. State gprs = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState(); 
  64. State wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState(); 
  65. if(gprs == State.CONNECTED || gprs == State.CONNECTING){ 
  66. Toast.makeText(this, "wifi is open! gprs", Toast.LENGTH_SHORT).show(); 
  67. } 
  68. //判断为wifi状态下才加载广告,如果是GPRS手机网络则不加载! 
  69. if(wifi == State.CONNECTED || wifi == State.CONNECTING){ 
  70. Toast.makeText(this, "wifi is open! wifi", Toast.LENGTH_SHORT).show(); 
  71. loadAdmob(); 
  72. } 
  73. } 

希望本文所述对大家Android程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表