using System; using Android.Net; using Android.Net.Wifi; using Android.OS; namespace Shared { public static class WiimuUPnP { /// /// 获取当前WIFI的名称 /// /// The ssid. 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 currentAction; /// /// 启动配置无线上网 /// /// The start. /// 密码 /// 配置完成后反馈的结果 public static void Start(string password,Action 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"); } } } }); } /// /// 记录开始时间 /// static DateTime dateTime = DateTime.MaxValue; /// /// 停止配置无线上网 /// public static void Stop() { dateTime = DateTime.MaxValue; } } }