Получить персональный статус точки доступа (это будет одобрено Apple) - PullRequest
0 голосов
/ 25 февраля 2019

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

    @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 - Приватный api мне не подходит, потому что я хочу поместить свое приложение в Apple store.
  2. Swift - Получить IP-адрес WIFI устройства - В этом подходе я предполагаю получить IP-адрес Wi-Fi устройства, и если он начинается с 172.20.10, это означает, что активирована личная точка доступа и устройство подключено к ней.и я могу вернуть имя устройства в качестве имени SSID, но эта проблема не очень серьезная ИЛИ я не прав?
...