黄学彪
2020-07-06 f23ad1b3f9f6193f35f72104d690b21dc67d5c1f
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlWifiLogic.cs
@@ -114,7 +114,6 @@
        /// </summary>
        private Com.Mediatek.Elian.ElianNative hdlWiFi = null;
#endif
        /// <summary>
        /// TCP协议
        /// </summary>
@@ -127,6 +126,40 @@
        /// Ap模式网关返回的秘钥
        /// </summary>
        private string randDesKey = null;
        /// <summary>
        /// 是否已经添加网络变化监听
        /// </summary>
        private bool hadAddListenNetWork = false;
        /// <summary>
        /// 能否访问http
        /// </summary>
        private bool m_CanAccessHttp = true;
        /// <summary>
        /// 上一次访问http的时间
        /// </summary>
        private DateTime oldAccessHttpTime = DateTime.Now;
        /// <summary>
        /// 能否访问http
        /// </summary>
        public bool CanAccessHttp
        {
            set
            {
                m_CanAccessHttp = value;
                oldAccessHttpTime = DateTime.Now;
            }
            get
            {
                //10秒后允许再次访问
                if (m_CanAccessHttp == true || (DateTime.Now - oldAccessHttpTime).TotalMilliseconds > 10 * 1000)
                {
                    oldAccessHttpTime = DateTime.Now;
                    return true;
                }
                return false;
            }
        }
        #endregion
@@ -286,6 +319,77 @@
        #endregion
        #region ■ 监听网络变化_______________________
        /// <summary>
        /// 开启监听网络
        /// </summary>
        public void StartListenNetWork()
        {
            if (hadAddListenNetWork == true)
            {
                return;
            }
            hadAddListenNetWork = true;
#if Android
            //开启监听安卓网络变化
            BaseActivity.NetworkStateChanged += (value) =>
            {
                //网络变化
                this.NetworkStateChanged(value);
            };
#endif
#if iOS
            //开启监听IOS网络变化
            GateWay.Ios.Reachability.ReachabilityChanged += (sender, e) =>
            {
                var internetStatus = GateWay.Ios.Reachability.InternetConnectionStatus();
                if (internetStatus == GateWay.Ios.NetworkStatus.NotReachable)//没有网络连接 0
                {
                    //网络变化
                    this.NetworkStateChanged(0);
                }
                else if (internetStatus == GateWay.Ios.NetworkStatus.ReachableViaCarrierDataNetwork)//3,4G的网络连接 1
                {
                    //网络变化
                    this.NetworkStateChanged(1);
                }
                else if (internetStatus == GateWay.Ios.NetworkStatus.ReachableViaWiFiNetwork) //wifi的网络连接 2
                {
                    //网络变化
                    this.NetworkStateChanged(2);
                }
            };
#endif
        }
        /// <summary>
        /// 监听安卓网络变化
        /// </summary>
        /// <param name="value"></param>
        private void NetworkStateChanged(int value)
        {
            //没有网络
            if (value == 0)
            {
                this.CanAccessHttp = false;
            }
            //可以叫4G
            else if (value == 1)
            {
                this.CanAccessHttp = true;
            }
            //WIFI
            else if (value == 2)
            {
                this.CanAccessHttp = true;
            }
        }
        #endregion
        #region ■ 一般方法___________________________
#if Android