using System;
|
using Foundation;
|
|
namespace Shared
|
{
|
|
|
public static class WiimuUPnP
|
{
|
/// <summary>
|
/// 获取当前WIFI的名称
|
/// </summary>
|
/// <value>The ssid.</value>
|
public static string SSID
|
{
|
get
|
{
|
string[] supportedInterface;
|
SystemConfiguration.CaptiveNetwork.TryGetSupportedInterfaces(out supportedInterface);
|
foreach (var s in supportedInterface)
|
{
|
NSDictionary nSDictionary;
|
SystemConfiguration.CaptiveNetwork.TryCopyCurrentNetworkInfo(s, out nSDictionary);
|
if (nSDictionary != null)
|
{
|
return nSDictionary.ValueForKey(SystemConfiguration.CaptiveNetwork.NetworkInfoKeySSID).ToString();
|
}
|
}
|
return null;
|
}
|
}
|
static Action<string> currentAction;
|
/// <summary>
|
/// 启动配置无线上网
|
/// </summary>
|
/// <returns>The start.</returns>
|
/// <param name="password">密码</param>
|
/// <param name="a">配置完成后反馈的结果</param>
|
public static void Start(string password,Action<string> action)
|
{
|
if (SSID == null)
|
{
|
return;
|
}
|
|
Stop();
|
dateTime = DateTime.Now;
|
currentAction = action;
|
Shared.WiimuSmartlink.SharedInstance.StartProvision(SSID, password, (obj) => {
|
if(action!=null){
|
action(obj);
|
Stop();
|
}
|
});
|
}
|
|
static WiimuUPnP()
|
{
|
//定时检查
|
System.Threading.Tasks.Task.Run(() =>
|
{
|
while (true)
|
{
|
System.Threading.Thread.Sleep(1000);
|
if (30 <= (System.DateTime.Now - dateTime).TotalSeconds)
|
{
|
Stop();
|
if (currentAction != null)
|
{
|
currentAction("TimeOut");
|
}
|
}
|
}
|
});
|
}
|
|
/// <summary>
|
/// 记录开始时间
|
/// </summary>
|
static DateTime dateTime = DateTime.MaxValue;
|
|
/// <summary>
|
/// 停止配置无线上网
|
/// </summary>
|
public static void Stop()
|
{
|
dateTime = DateTime.MaxValue;
|
Shared.WiimuSmartlink.SharedInstance.StopProvision((obj) => { });
|
}
|
}
|
}
|