错误域= NEHotspotConfigurationErrorDomain代码= 8“内部错误”。 UserInfo = {NSLocalizedDescription =内部错误。}
这是我的代码:
NEHotspotConfigurationManager wifiManager = new NEHotspotConfigurationManager(); var wifiConfig = new NEHotspotConfiguration(ssid,password,false){JoinOnce = true};
wifiManager.RemoveConfiguration(ssid);
wifiManager.ApplyConfigurationAsync(wifiConfig);
wifiManager.ApplyConfiguration(wifiConfig, (error) =>
{
if (error != null)
{
Console.WriteLine(error.GetType());
Console.WriteLine($"Error while connecting to WiFi network {ssid}: {error}");
}
});
return true;
答案 0 :(得分:0)
这是iOS11 +的新增功能,可让您的应用使用已知的SSID加入网络。您可以找到documentation over at Apple。要使用它,您无需请求访问超级秘密热点API,但仍需要进行一些配置。
第一步是在Entitlements.plist文件中设置“ 启用热点配置”授权:
在为您的应用程序创建应用程序ID时,还必须在开发人员门户中配置此权利:
有了这些设置,您就可以开始连接到网络了。该代码并不复杂,并且需要创建一个NEHotspotConfiguration对象,该对象指定如何使用网络。例如,可配置参数中的一个布尔值告诉iOS,您是要尝试临时访问网络还是访问网络的时间更长。您应该read the documentation找出最适合您的情况的设置。这是一个代码示例:
var config = new NEHotspotConfiguration(ssid, password, isWep: false);
config.JoinOnce = false;
var tcs = new TaskCompletionSource<NSError>();
NEHotspotConfigurationManager.SharedManager.ApplyConfiguration(config, err => tcs.SetResult(err));
var error = await tcs.Task;
if (error != null)
{
var alert = new UIAlertController
{
Title = "Error",
Message = error.Description
};
alert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, null));
PresentViewController(alert, true, null);
return;
}
注意:如果在IOS 12中,则还需要在“权利”中进行设置:
和AppID: