До Android Q все, что вам нужно было сделать, это использовать класс NetworkUtils. Но этот класс устарел в API 29. Я искал альтернативу, и я не мог найти ее.
Итак, как я могу проверить соединение inte rnet в Android Q
Используйте этот фрагмент кода.
public static boolean isConnected(Context context) { boolean result = false; ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (cm != null) { NetworkCapabilities capabilities = cm.getNetworkCapabilities(cm.getActiveNetwork()); if (capabilities != null) { if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) { result = true; } else if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) { result = true; } } } } else { if (cm != null) { NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); if (activeNetwork != null) { // connected to the internet if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) { result = true; } else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) { result = true; } } } } return result; }
Happy Coding:)