Получить персональный статус точки доступа (это будет одобрено Apple)

Как узнать, активна ли личная точка доступа? Я попробовал это:

    @objc   
    func getCurrentNetwork(_ resolve: RCTPromiseResolveBlock, rejecter reject: RCTPromiseRejectBlock)   
    {   
        var networkDict = [String : Any]()   
        let deviceName = UIDevice.current.name   
        print("device name: \(deviceName)")   
        guard let interfaces = CNCopySupportedInterfaces() as? [String] else {   
            reject("ios_errors", "Can't work on simulators", nil)   
            return   
        }   
        for interface in interfaces {   
            print("Looking up SSID info for \(interface)")   
            guard let interfaceInfo = CNCopyCurrentNetworkInfo(interface as CFString) else {   
                print("System error: \(interface) has no information") <- here   
                return   
            }   
            guard let networkInfo = (interfaceInfo as NSDictionary) as? [String: AnyObject] else {   
                print("System error: interface information is not a string-keyed dictionary")   
                return   
            }   
            for key in networkInfo.keys {   
                networkDict["\(key)"] = "\(networkInfo[key]!)"   
            }   
        }   
        resolve(networkDict)   
    }  

Приведенный выше пример возвращает имя SSID (среди другой информации) клиенту, когда iPhone подключен к общедоступной точке доступа. Когда я активирую личную точку доступа iPhone, я ввел следующую строку кода:

print("System error: \(interface) has no information")
return

и вернуть клиенту, не получив название точки доступа?

Я посмотрел на 2 варианта здесь:

  1. обнаружение включения горячей точки в iOS с частными API - Private API не подходит для меня, потому что я хочу поместить свое приложение в Apple store.
  2. Swift - Получить WIFI IP-адрес устройства - В этом подходе я предполагаю получить IP-адрес Wi-Fi устройства, и если он начинается с 172.20.10 это означает, что активирована личная точка доступа, и устройство подключено к нему, и я могу вернуть имя устройства в качестве имени SSID, но эта проблема не очень серьезна ИЛИ я не прав?

0 ответов

Другие вопросы по тегам