Устарел метод TYPE_MOBILE в ConnectivityManager?

В Android API 29 (Android 10) и более поздних версиях метод getType() в классе NetworkInfo был объявлен устаревшим. Для получения информации о типе сети рекомендуется использовать новый API ConnectivityManager.NetworkCallback, представленный в Android API 24 (Android 7.0).

В старых версиях Android, класс ConnectivityManager содержит метод getNetworkInfo(int networkType), который возвращает NetworkInfo для заданного типа сети. Одним из значений networkType является ConnectivityManager.TYPE_MOBILE, который представляет мобильную сеть.

Однако, начиная с Android API 29, метод getType() в классе NetworkInfo был помечен как устаревший и рекомендуется использовать новые методы класса ConnectivityManager, такие как getActiveNetwork() и getNetworkCapabilities(), для получения информации о текущем активном подключении.

Пример использования нового API:

ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
Network network = connectivityManager.getActiveNetwork();
NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(network);

if (capabilities != null) {
    if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
        // Мобильная сеть
    } else if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
        // Wi-Fi сеть
    } else {
        // Другие типы сетей
    }
}

Этот код проверяет, является ли текущая активная сеть мобильной, используя метод hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) в классе NetworkCapabilities. Вы можете добавить дополнительные проверки для других типов сетей, таких как Wi-Fi, Ethernet и т.д., если необходимо.

Важно отметить, что использование нового API позволяет более точно определять тип соединения, а также предоставляет больше гибкости в различных сценариях, таких как проверка наличия интернет-соединения или определение возможности потоковой передачи данных на определенном типе сети.