Как напечатать текущее имя локальной сети в swift

Я создаю приложение для iOS, которое отображает текущее имя локальной сети в верхней части экрана и так далее. Я ищу разные способы отображения этого, но не могу управлять текущей программой. Кто-нибудь может мне помочь?

Я просмотрел несколько комментариев GitHub, переполнения стека и YouTube по этому поводу, но ни один из них не работал.

В текущем Xcode, который я использую, это Xcode (10.4.2). Я использую метку (исправьте меня, если я должен использовать что-то еще) для отображения текущего имени Wi-Fi --> (WiFi: ...... )


person GamingWithAndrew    schedule 20.07.2019    source источник


Ответы (1)


Пожалуйста, не тестируйте на симуляторе, используйте iphone для тестирования.

Импорт конфигурации системы:

import SystemConfiguration.CaptiveNetwork

В ViewDidLoad:

let wifiName = getWiFiName()
print("Wifi: \(String(describing: wifiName))")

Функция:

func getWiFiName() -> String? {

    var serviceSetIdentifier:String?
    if let interfaces = CNCopySupportedInterfaces() as Array? {
        interfaces.forEach { interface in
            guard let interfaceInfo = CNCopyCurrentNetworkInfo(interface as! CFString) as NSDictionary? else { return }
                serviceSetIdentifier = interfaceInfo[kCNNetworkInfoKeySSID as String] as? String
            }
    }
    return serviceSetIdentifier
}
person Animesh    schedule 20.07.2019
comment
Рад помочь, если этот ответ решил вашу проблему, отметьте его как принятый, нажав галочку рядом с ответом. см.: Как работает принятие ответа? для получения дополнительной информации. @GamingWithAndrew - person Animesh; 21.07.2019