Обновлено для iOS 13 : Apple объявила, что iOS 13, API-интерфейс CNCopyCurrentNetworkInfo больше не будет возвращать действительные данные SSID и BSSID Wi-Fi.
Если вашему приложению требуется действительный Wi-FiЧтобы получить информацию о SSID и BSSID, вы можете сделать следующее: · Для приложений настройки аксессуаров используйте API-интерфейс NEHotSpotConfiguration, который теперь имеет возможность передавать префикс точки доступа SSID, к которой ваше приложение ожидает подключения. · Для других типов приложений используйте API-интерфейс CoreLocation, чтобы запросить согласие пользователя на доступ к информации о местоположении.
Итак, я обновил вышеуказанное решение следующим образом:
Добавьте этот ключ к вашемуinfo.plist:
<key>NSLocationWhenInUseUsageDescription</key>
<string>Your Description</string>
Используйте API-интерфейс CoreLocation для запроса согласия пользователя на доступ к информации о местоположении.
private void GetLocationConsent()
{
var manager = new CLLocationManager();
manager.AuthorizationChanged += (sender, args) => {
Console.WriteLine("Authorization changed to: {0}", args.Status);
};
if (UIDevice.CurrentDevice.CheckSystemVersion(8, 0))
manager.RequestWhenInUseAuthorization();
}
Вызовите функцию GetLocationConsent () перед вызовом "CaptiveNetwork".