android判断程序是否连接网络

xiaoxiao2021-02-27  132

> 判断程序是否连接网络还需要在XML中添加数据 > <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.INTERNET"/> 1./** 2. * 检测网络是否连接 3. * @return 4. */ 5. private boolean checkNetworkState() { 6. boolean flag = false; 7. //获取连接管理实例 8. ConnectivityManager manager= (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 9. //获取当前网络状态 10. NetworkInfo info = manager.getActiveNetworkInfo(); 9. //去进行判断网络是否连接 13. if (info != null && info.isAvailable()) { 14. isNetworkAvailable(); 15. } else { 16. setNetwork(); 17. } 18. 19. return flag; 20. } 21. 22. 23. /** 24. * 网络未连接时,调用设置方法 25. */ 26. private void setNetwork(){ 27. Toast.makeText(this, "wifi is closed!", Toast.LENGTH_SHORT).show(); 28. 29. AlertDialog.Builder builder = new AlertDialog.Builder(this); 30. builder.setIcon(R.drawable.ic_launcher); 31. builder.setTitle("网络提示信息"); 32. builder.setMessage("网络不可用,如果继续,请先设置网络!"); 33. builder.setPositiveButton("设置", new OnClickListener() { 34. @Override 35. public void onClick(DialogInterface dialog, int which) { 36. Intent intent = null; 37. /** 38. * 判断手机系统的版本!如果API大于10 就是3.0+ 39. * 因为3.0以上的版本的设置和3.0以下的设置不一样,调用的方法不同 40. */ 41. if (android.os.Build.VERSION.SDK_INT > 10) { 42. intent = new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS); 43. } else { 44. intent = new Intent(); 45. ComponentName component = new ComponentName( 46. "com.android.settings", 47. "com.android.settings.WirelessSettings"); 48. intent.setComponent(component); 49. intent.setAction("android.intent.action.VIEW"); 50. } 51. startActivity(intent); 52. } 53. }); 54. 55. builder.setNegativeButton("不开启", new OnClickListener() { 56. @Override 57. public void onClick(DialogInterface dialog, int which) { 58. dialog.dismiss(); 59. } 60. }); 61. builder.create(); 62. builder.show(); 63. } 64. 65. /** 66. * 网络已经连接,然后去判断是wifi连接还是GPRS连接 67. * 设置一些自己的逻辑调用 68. */ 69. private void isNetworkAvailable(){ 70. 71. State gprs = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState(); 72. State wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState(); 73. if(gprs == State.CONNECTED || gprs == State.CONNECTING){ 74. Toast.makeText(this, "wifi is open! gprs", Toast.LENGTH_SHORT).show(); 75. } 76. //判断为wifi状态下才加载广告,如果是GPRS手机网络则不加载! 77. if(wifi == State.CONNECTED || wifi == State.CONNECTING){ 78. Toast.makeText(this, "wifi is open! wifi", Toast.LENGTH_SHORT).show(); 79. loadAdmob(); 80. } 81. 82. } 83. 84. /** 85. * 在wifi状态下 加载admob广告 86. */ 87. private void loadAdmob(){ 88. ll = (LinearLayout) findViewById(R.id.load_ads); 89. ll.removeAllViews(); 90. adsView = new AdView(this, AdSize.BANNER, "a15194a1ac9505d"); 91. ll.addView(adsView); 92. 93. adsView.loadAd(new AdRequest()); 94. }
转载请注明原文地址: https://www.6miu.com/read-14834.html

最新回复(0)