NetUtils.java 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package me.yoqi.android.utils;
  2. import android.app.Service;
  3. import android.content.Context;
  4. import android.net.ConnectivityManager;
  5. import android.net.NetworkCapabilities;
  6. import android.net.NetworkInfo;
  7. import android.os.Build;
  8. import android.util.Log;
  9. /**
  10. * 网络检测工具类
  11. *
  12. * @author liuyuqi.gov@msn.cn
  13. * @createTime 2020-08-18
  14. */
  15. public class NetUtils {
  16. //检测网络是否可用,wifi or gps
  17. /**
  18. * 判断 WiFi 连接
  19. */
  20. public static boolean isWifiConnected(Context context) {
  21. if (context == null) return false;
  22. ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Service.CONNECTIVITY_SERVICE);
  23. if (connectivityManager != null) {
  24. if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
  25. NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(connectivityManager.getActiveNetwork());
  26. if (capabilities != null) {
  27. if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
  28. return true;
  29. }
  30. }
  31. } else {
  32. try {
  33. NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
  34. if (activeNetworkInfo != null && activeNetworkInfo.isConnected() && activeNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
  35. Log.i("update_statut", "Network is available : true");
  36. return true;
  37. }
  38. } catch (Exception e) {
  39. Log.i("update_statut", "" + e.getMessage());
  40. }
  41. }
  42. }
  43. return false;
  44. }
  45. /**
  46. * 检测网络是否链接
  47. *
  48. * @param context 上下文
  49. * @return
  50. */
  51. public static boolean isNetworkAvailable(Context context) {
  52. if (context == null) return false;
  53. ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
  54. if (connectivityManager != null) {
  55. if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
  56. NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(connectivityManager.getActiveNetwork());
  57. if (capabilities != null) {
  58. if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
  59. return true;
  60. } else if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
  61. return true;
  62. } else if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET)) {
  63. return true;
  64. }
  65. }
  66. } else {
  67. try {
  68. NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
  69. if (activeNetworkInfo != null && activeNetworkInfo.isConnected()) {
  70. Log.i("update_statut", "Network is available : true");
  71. return true;
  72. }
  73. } catch (Exception e) {
  74. Log.i("update_statut", "" + e.getMessage());
  75. }
  76. }
  77. }
  78. Log.i("update_statut", "Network is available : FALSE ");
  79. return false;
  80. }
  81. }