Можно ли наблюдать, когда пользователь переключается между Wi-Fi и сотовыми данными (3G/4G)?Наблюдать за изменениями WiFi/3G
Возможно, что-то в достижимости, но я не знаю что.
Можно ли наблюдать, когда пользователь переключается между Wi-Fi и сотовыми данными (3G/4G)?Наблюдать за изменениями WiFi/3G
Возможно, что-то в достижимости, но я не знаю что.
Самый простой способ, я думаю, импорт CoreTelephony и наблюдать CTRadioAccessTechnologyDidChangeNotification, а затем переключиться на что, как это:
let networkInfo = CTTelephonyNetworkInfo()
let radio = networkInfo.currentRadioAccessTechnology
guard let currentRadio = radio else {
print("No radio info available")
return
}
switch currentRadio {
case CTRadioAccessTechnologyLTE,
CTRadioAccessTechnologyHSDPA: //3.5G "T-Mobile 4G"
print("This is 4G/LTE")
case CTRadioAccessTechnologyeHRPD, //3.5G "Verizon 3G"
CTRadioAccessTechnologyHSUPA,
CTRadioAccessTechnologyWCDMA,
CTRadioAccessTechnologyCDMAEVDORev0,
CTRadioAccessTechnologyCDMAEVDORevA,
CTRadioAccessTechnologyCDMAEVDORevB:
print("This is 3G")
case CTRadioAccessTechnologyGPRS,
CTRadioAccessTechnologyCDMA1x
CTRadioAccessTechnologyEdge:
print("This is 2G")
default:
print("Unknown cellular network type")
}
Если вы слушаете для этого уведомления, а также с использованием стандартной достижимости, вы можете использовать этот переключатель для получения типа сотовой сети. Вам понадобится currentReachabilityStatus, чтобы независимо проверить подключение WiFi. Насколько мне известно, в Swift вам нужно настроить заголовок заголовка для использования класса Reachability от Apple, но есть также и версии Swift, доступные на github.
Да Допустимая доступность предоставляет вам тип подключенной сети. Он дает 3 разных статуса - не подключен к Интернету, подключен к Wi-Fi, подключен к мобильным данным.
NetworkStatus status = [reachability currentReachabilityStatus];
if(status == NotReachable)
{
//No Connectivity to Internet
}
else if (status == ReachableViaWiFi)
{
//Connected via WiFi
}
else if (status == ReachableViaWWAN)
{
//Connected via Mobile Data
}
Спасибо! Я также хотел бы проверить это как правильно, если бы это было возможно. – Roee84
Спасибо, так что я искал, чтобы совместить ваш ответ с ответом @Arun и наблюдать currentReachabilityStatus – Roee84