using System;
|
using System.Collections.Generic;
|
using System.Text;
|
|
namespace Shared.Phone.UserCenter
|
{
|
/// <summary>
|
/// WiFi的逻辑
|
/// </summary>
|
public class HdlWifiLogic
|
{
|
#region ■ 变量声明___________________________
|
|
/// <summary>
|
/// WiFi的逻辑
|
/// </summary>
|
private static HdlWifiLogic m_Current = null;
|
/// <summary>
|
/// WiFi的逻辑
|
/// </summary>
|
public static HdlWifiLogic Current
|
{
|
get
|
{
|
if (m_Current == null)
|
{
|
m_Current = new HdlWifiLogic();
|
}
|
return m_Current;
|
}
|
}
|
|
/// <summary>
|
/// 当前wifi的SSID,也叫Wifi的名字(取不到时,会返回null)
|
/// </summary>
|
public string SSID
|
{
|
get
|
{
|
#if iOS
|
return string.Empty;
|
#endif
|
#if Android
|
string ssiD = null;
|
HdlThreadLogic.Current.RunThread(() =>
|
{
|
Shared.Net.NetWiFi.GetWIFISSID((strId) =>
|
{
|
ssiD = strId;
|
});
|
});
|
int count = 0;
|
while (ssiD == null)
|
{
|
System.Threading.Thread.Sleep(50);
|
count++;
|
if (count == 60)
|
{
|
//3秒超时
|
return null;
|
}
|
}
|
if (string.IsNullOrEmpty(ssiD) == false && ssiD.StartsWith("\"") && ssiD.EndsWith("\""))
|
{
|
ssiD = ssiD.Substring(1, ssiD.Length - 2);
|
}
|
return ssiD;
|
#endif
|
}
|
}
|
#if Android
|
/// <summary>
|
/// 定义全局变量
|
/// </summary>
|
private Com.Mediatek.Elian.ElianNative hdlWiFi = null;
|
#endif
|
|
#endregion
|
|
#region ■ 一般方法___________________________
|
|
#if Android
|
/// <summary>
|
/// 开始Wi-Fi配网
|
/// </summary>
|
/// <param name="wifiName">wifi名字</param>
|
/// <param name="wifiPsw">wifi密码</param>
|
/// <param name="p2">我也不知道这个是什么东西</param>
|
/// <returns></returns>
|
public bool StartSmartConnection(string wifiName, string wifiPsw, string p2 = "1")
|
{
|
if (hdlWiFi == null)
|
{
|
Com.Mediatek.Elian.ElianNative.LoadLib();
|
//初始化Wi-Fi配网
|
this.hdlWiFi = new Com.Mediatek.Elian.ElianNative();
|
hdlWiFi.InitSmartConnection(null, 1, 1);
|
}
|
//开始Wi-Fi配网
|
var result = hdlWiFi.StartSmartConnection(wifiName, wifiPsw, p2);
|
return true;
|
}
|
|
/// <summary>
|
/// 停止Wi-Fi配网
|
/// </summary>
|
public void StopSmartConnection()
|
{
|
if (hdlWiFi != null)
|
{
|
//停止Wi-Fi配网
|
hdlWiFi.StopSmartConnection();
|
}
|
}
|
#endif
|
#if iOS
|
/// <summary>
|
/// 开始Wi-Fi配网
|
/// </summary>
|
/// <param name="wifiName">wifi名字</param>
|
/// <param name="wifiPsw">wifi密码</param>
|
/// <param name="p2">我也不知道这个是什么东西</param>
|
/// <returns></returns>
|
public bool StartSmartConnection(string wifiName, string wifiPsw, string p2 = "1")
|
{
|
//初始化Wi-Fi连接
|
Com.Mediatek.Elian.ElianNative.InitSmartConnection(null, 1, 1);
|
//开始Wi-Fi连接
|
var result = Com.Mediatek.Elian.ElianNative.StartSmartConnection(wifiName, wifiPsw, p2);
|
return true;
|
}
|
|
/// <summary>
|
/// 停止Wi-Fi配网
|
/// </summary>
|
public void StopSmartConnection()
|
{
|
//停止Wi-Fi配网
|
Com.Mediatek.Elian.ElianNative.StopSmartConnection();
|
}
|
#endif
|
|
/// <summary>
|
/// 打开手机wifi设置界面
|
/// </summary>
|
public void OpenAppWifiSettion()
|
{
|
if (Application.DeviceType == Shared.Device.Android)
|
{
|
///打开WI-IF界面
|
CommonClass.OpenAction("android.settings.WIFI_SETTINGS");
|
}
|
else
|
{
|
CommonClass.OpenAction("App-Prefs:root=WIFI");
|
}
|
}
|
|
#endregion
|
}
|
}
|