using System;
|
using Android.Net;
|
using Android.Net.Wifi;
|
using Android.OS;
|
|
namespace Shared
|
{
|
public static class WiimuUPnP
|
{
|
/// <summary>
|
/// 获取当前WIFI的名称
|
/// </summary>
|
/// <value>The ssid.</value>
|
public static string SSID
|
{
|
get
|
{
|
return getWIFISSID(Shared.Application.Activity);
|
}
|
}
|
|
|
/**
|
* 获取SSID
|
* @param activity 上下文
|
* @return WIFI 的SSID
|
*/
|
static string getWIFISSID(Android.App.Activity activity)
|
{
|
var ssid = "unknown id";
|
|
if ((int)Build.VERSION.SdkInt <= 26/*8.0*/ || (int)Build.VERSION.SdkInt >= 28/*9.0*/)
|
{
|
var mWifiManager = (WifiManager)activity.ApplicationContext.GetSystemService(Android.Content.Context.WifiService);
|
|
if (mWifiManager != null)
|
{
|
var info = mWifiManager.ConnectionInfo;
|
|
if ((int)Build.VERSION.SdkInt < 19/*4.4*/)
|
{
|
return info.SSID;
|
}
|
else
|
{
|
return info.SSID.Replace("\"", "");
|
}
|
}
|
}
|
//8.1
|
else if ((int)Build.VERSION.SdkInt == 27)
|
{
|
var connManager = (ConnectivityManager)activity.ApplicationContext.GetSystemService(Android.Content.Context.ConnectivityService);
|
if (connManager != null)
|
{
|
var networkInfo = connManager.ActiveNetworkInfo;
|
if (networkInfo.IsConnected)
|
{
|
if (networkInfo.ExtraInfo != null)
|
{
|
return networkInfo.ExtraInfo.Replace("\"", "");
|
}
|
}
|
}
|
}
|
return ssid;
|
}
|
|
|
|
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;
|
action ("TimeOut");
|
}
|
|
static WiimuUPnP()
|
{
|
//定时检查
|
System.Threading.Tasks.Task.Run(() =>
|
{
|
while (true)
|
{
|
System.Threading.Thread.Sleep(1000);
|
if (20 <= (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;
|
}
|
}
|
|
}
|