黄学彪
2019-11-25 160785587667cc0d927f85e44c139ec9dde13a9e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
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
    }
}