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