Как получить список доступных сетейAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как получить список доступных сетей

Сообщение Anonymous »

Я использую это:

Код: Выделить всё

fun startNetworkObserver() {
try {
val builder = NetworkRequest.Builder()
builder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
builder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
connectivityManager.registerNetworkCallback(builder.build(),networkCallback)
} catch (e: Exception) {
FL.e(TAG, "Error startNetworkObserver::${e.message}")
}
}
И в моем OnAvailable/ OnCapabilitiesChanged, OnLost -> я устанавливаю правильные значения.
Затем я проверяю это:

Код: Выделить всё

 private fun checkBothNetworksAvailable() {
for (item in availableNetworks.value){
Log.d(TAG, "checkBothNetworksAvailable : $item")
}
val isWifiAvailable = availableNetworks.value.any { it.type == ConnectivityTransport.Wifi }
val isCellularAvailable = availableNetworks.value.any { it.type == ConnectivityTransport.Cellular }
Log.d(TAG, "checkBothNetworksAvailable : WIFI: $isWifiAvailable / 4G: $isCellularAvailable")
}
Теперь для телефонов, отличных от Samsung -> ЕСЛИ у меня выключен Wi-Fi, сотовая связь включена. ЕСЛИ Я ВКЛЮЧУ Wi-Fi ->
Я получу это:

Код: Выделить всё

NetworkUtils: checkBothNetworksAvailable : WIFI: true / 4G: true
Но на телефонах Samsung с момента включения беспроводной связи я получаю следующее:

Код: Выделить всё

NetworkUtils: checkBothNetworksAvailable : WIFI: true / 4G: true
И затем через 1 секунду:

Код: Выделить всё

NetworkUtils: checkBothNetworksAvailable : WIFI: true / 4G: false
И я вижу, что для сотовой связи срабатывает «onLost».
Есть ли способ заблокировать это? Я не «выключаю» мобильные данные, в моем Центре уведомлений они все еще включены. Почему Samsung его отключает, триггер onLost. Есть ли способ избежать этого?
Или есть способ получить список «доступных сетей» в другом API/логике?
Я хочу видеть оба активны, как они есть, и проверить уровень сигнала, если один из них лучше -> выбрать его и привязатьProcessToNetwork. Но тот факт, что Samsung «теряет» 4G, даже когда он все еще включен, является своего рода блокировщиком

Подробнее здесь: https://stackoverflow.com/questions/793 ... e-networks
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»