В 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 позволяет более точно определять тип соединения, а также предоставляет больше гибкости в различных сценариях, таких как проверка наличия интернет-соединения или определение возможности потоковой передачи данных на определенном типе сети.