ConnectivityManager.TYPE_WIFI
равно устарело .Вы должны использовать NetworkCapabilities
.
Этот метод заменяет старый ConnectivityManager.TYPE_MOBILE
метод выбора сети.Вместо того, чтобы указывать на потребность в Wi-Fi, поскольку приложению требуется высокая пропускная способность и существует риск устаревания при появлении новой быстрой сети (например, LTE), приложение должно указать, что ей требуется высокая пропускная способность.Точно так же, если приложению требуется неизмеренная сеть для массовой передачи, оно может указать, что вместо того, чтобы предполагать, что все соединения на основе сотовой связи измерены, а все соединения на основе Wi-Fi - нет.
Приложения должны вместо этого использовать NetworkCapabilities.hasTransport(int)
или requestNetwork(NetworkRequest, NetworkCallback)
для запроса соответствующей сети.для поддерживаемых транспортов.
Вы можете попробовать этот способ
NetworkAgentInfo networkAgent;
int type = ConnectivityManager.TYPE_NONE;
if (networkAgent.networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
type = ConnectivityManager.TYPE_MOBILE;
} else if (networkAgent.networkCapabilities.hasTransport(
NetworkCapabilities.TRANSPORT_WIFI)) {
type = ConnectivityManager.TYPE_WIFI;
}