From 5a5a2b696866f947b6025d26c3302e8ffef46435 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期一, 11 一月 2021 16:11:20 +0800
Subject: [PATCH] 2021-01-11 1.更新MQTT连接和本地搜索网关方法。2.子账号相关接口完善

---
 Crabtree/ON/Application.cs |  214 ++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 161 insertions(+), 53 deletions(-)

diff --git a/Crabtree/ON/Application.cs b/Crabtree/ON/Application.cs
index dbcbd0a..0e4c578 100644
--- a/Crabtree/ON/Application.cs
+++ b/Crabtree/ON/Application.cs
@@ -1,13 +1,10 @@
 锘縰sing System;
-using Android;
+using Android.App;
 using Android.Content;
-using Android.Net;
 using Android.OS;
 //using CN.Jpush.Android.Api;
 //using CN.Jpush.Android.Service;
-using Java.Lang;
-using Java.Util;
-using Java.Util.Zip;
+
 using Shared;
 using Shared.SimpleControl;
 using SmartHome;
@@ -40,7 +37,7 @@
     /// 璁惧畾涓洪粯璁ゅ惎鍔ㄧ殑Application
     /// </summary>
     [Android.App.Application]
-    public class Application : Android.App.Application
+    public class Application : Android.App.Application, Android.App.Application.IActivityLifecycleCallbacks
     {
         static void reStartApp (Android.App.Application application)
         {
@@ -57,6 +54,9 @@
                 reStartApp (this);
                 return;
             }
+
+            RegisterActivityLifecycleCallbacks (this);
+
             //Shared.Application.IsGpsEnable = false;
 
             base.OnCreate ();
@@ -73,7 +73,6 @@
             //BaseActivity.IsEnnableGPS = false;
             //BaseActivity.VerifyDateTime = DateTime.MaxValue;
             //BaseActivity.KeepScreenON = false;
-
 
 
             BaseActivity.BackKeyAction = () => {
@@ -122,7 +121,7 @@
             };
 
             Shared.Application.FontSize = 16;
-            BaseActivity.IsHideVirualButtons = false;
+            BaseActivity.IsHideVirualButtons = true;
             ZXing.Mobile.MobileBarcodeScanner.Initialize (this);
             init ();
             BaseActivity.OnCreateActoin += (activity, application) => {
@@ -137,8 +136,16 @@
                     Utlis.WriteLine ("NetworkStateChanged " + obj);
                     UserConfig.Instance.internetStatus = obj;
                     UserConfig.Instance.SaveUserConfig ();
-                    //缃戠粶鍙樺寲閫氱煡
-                    EquipmentPublicClass.CheckLinkRemote (obj, false);
+                    ////缃戠粶鍙樺寲閫氱煡
+                    //EquipmentPublicClass.CheckLinkRemote (obj, false);
+
+                    //2020-06-10 鍚屾HDLON 淇敼浼樺寲
+                    if (!IsEnterBackground) {
+                        //缃戠粶鍙樺寲閫氱煡
+                        EquipmentPublicClass.CheckLinkRemote (obj, false);
+                    } else {
+                        Console.WriteLine ("HHH 缃戠粶鍙樺寲浣嗗浜庡悗鍙�");
+                    }
                 };
             };
             BaseActivity.RefreshUIAction += (activity) => {
@@ -161,7 +168,9 @@
             };
             HDLUtils.SetAuthoritiesName ("com.hdl.crabtreenew.fileProvider");
         }
+
         public static bool IsShowTip = true;
+
         void init ()
         {
             Shared.Application.Skin = UserConfig.Instance.CurrentSkinName;
@@ -170,73 +179,172 @@
             ////璁剧疆鏋佸厜璋冭瘯妯″紡锛屼负false鏃跺彧鎵撳嵃璀﹀憡淇℃伅
             //JPushInterface.SetDebugMode (false);
             //JPushInterface.Init (this);//淇濆瓨鎵嬫満鍚嶇О鍒版湰鍦版枃浠�
+           
             //鑾峰彇缁忕含搴� 
-            Shared.Application.LocationAction = (arg1, arg2) => {
-
+            Shared.Application.LocationAction = (lon, lat) => {
                 try {
                     Shared.Application.LocationAction = null;
+                    HttpServerRequest.Current.GetCityInfo (lon.ToString (), lat.ToString ());
+                    //鍏抽棴瀹氫綅鏈嶅姟
                     Shared.Application.StopGPSLocationService ();
-
-                    System.Threading.Tasks.Task.Run (() => {
-                        while (true) {
-                            try {
-                                Shared.SimpleControl.CommonPage.AirQuality = new service.hdlcontrol.com_WebServiceAirQuality.WebServiceAirQuality ().GetAirQuality (arg2.ToString (), arg1.ToString ());
-                                if (Shared.SimpleControl.CommonPage.AirQuality != null)
-                                    break;
-                            } catch { }
-                        }
-                        Shared.Application.RunOnMainThread (() => {
-                            if (CommonPage.RefreshAir != null)
-                                CommonPage.RefreshAir ();
-                        });
-                    });
-                } catch {
+                } catch (System.Exception ex) {
+                    Utlis.WriteLine ("GetCityInfo catch" + ex.Message);
                 }
+                Utlis.WriteLine ($"缁忕含搴�:::{lon}:{lat}");
             };
+
         }
+
         void checkSomeInfo ()
         {
-            RemoteInfo.Current.ReadMsgList (UserConfig.Instance.tokenID, IsShowTip);
+            //RemoteInfo.Current.ReadMsgList (UserConfig.Instance.tokenID, IsShowTip);
             //JPushInterface.ClearAllNotifications (this);
 
             IsShowTip = true;
-            var status = isNetworkAvailable (this);
-            Utlis.WriteLine ("status!!!" + status);
+            //var status = isNetworkAvailable (this);
+            //Utlis.WriteLine ("status!!!" + status);
+            //int internetStatus = 0;
+            //if (status) {
+            //    var isWifi = isWifiConnected (this);
+            //    if (isWifi) {
+            //        internetStatus = 2;
+            //    } else {
+            //        internetStatus = 1;
+            //    }
+            //}
+            //Utlis.WriteLine ("");
+
+            //2020-06-10 淇敼缃戠粶鍒ゆ柇鍑洪敊闂
             int internetStatus = 0;
-            if (status) {
-                var isWifi = isWifiConnected (this);
-                if (isWifi) {
-                    internetStatus = 2;
-                } else {
-                    internetStatus = 1;
-                }
-            }
-            Utlis.WriteLine ("");
+            internetStatus = NetworkUtils.CheckConnectedMode ();
+            Console.WriteLine ("internetStatus锛�" + internetStatus);
+
             Shared.SimpleControl.EquipmentPublicClass.CheckLinkRemote (internetStatus, false);
         }
 
-        bool isNetworkAvailable (Context context)
+        //bool isNetworkAvailable (Context context)
+        //{
+        //    var cm = (ConnectivityManager)context.GetSystemService (ConnectivityService);
+        //    if (cm == null || cm.ActiveNetworkInfo == null) {
+        //        return false;
+        //    } else {
+        //        return cm.ActiveNetworkInfo.IsAvailable;
+        //    }
+        //}
+
+        //bool isWifiConnected (Context context)
+        //{
+        //    if (context != null) {
+        //        var mConnectivityManager = (ConnectivityManager)context.GetSystemService
+        //        (ConnectivityService);
+        //        var mWiFiNetworkInfo = mConnectivityManager.GetNetworkInfo (ConnectivityType.Wifi);
+        //        if (mWiFiNetworkInfo != null) {
+        //            return mWiFiNetworkInfo.IsAvailable;
+        //        }
+        //    }
+        //    return false;
+        //}
+
+
+        public void OnActivityCreated (Activity activity, Bundle savedInstanceState)
         {
-            var cm = (ConnectivityManager)context.GetSystemService (ConnectivityService);
-            if (cm == null || cm.ActiveNetworkInfo == null) {
-                return false;
-            } else {
-                return cm.ActiveNetworkInfo.IsAvailable;
+
+        }
+
+        public void OnActivityDestroyed (Activity activity)
+        {
+            //throw new NotImplementedException ();
+        }
+
+        public void OnActivityPaused (Activity activity)
+        {
+            //throw new NotImplementedException ();
+        }
+
+        public void OnActivityResumed (Activity activity)
+        {
+            //throw new NotImplementedException ();
+        }
+
+        public void OnActivitySaveInstanceState (Activity activity, Bundle outState)
+        {
+            //throw new NotImplementedException ();
+        }
+
+        public void OnActivityStarted (Activity activity)
+        {
+            //throw new NotImplementedException ();
+
+            mCount++;
+            if (mCount == 1) {
+                Console.WriteLine ("HHH OnActivityStarted锛歠oreground");
+                BusSocketStart ();
             }
         }
 
-        bool isWifiConnected (Context context)
+        public void OnActivityStopped (Activity activity)
         {
-            if (context != null) {
-                var mConnectivityManager = (ConnectivityManager)context.GetSystemService
-                (ConnectivityService);
-                var mWiFiNetworkInfo = mConnectivityManager.GetNetworkInfo (ConnectivityType.Wifi);
-                if (mWiFiNetworkInfo != null) {
-                    return mWiFiNetworkInfo.IsAvailable;
+
+            mCount--;
+            if (mCount == 0) {
+                Console.WriteLine ("HHH OnActivityStopped锛� background");
+                BusSocketStop ();
+            }
+        }
+
+
+        public override void OnTerminate ()
+        {
+            base.OnTerminate ();
+            UnregisterActivityLifecycleCallbacks (this);
+        }
+
+        int mCount;
+
+        /// <summary>
+        /// 鏄惁杩涘叆鍚庡彴
+        /// </summary>
+        public bool IsEnterBackground = false;
+
+        DateTime closeTime = DateTime.MinValue;
+
+        /// <summary>
+        /// BusSocketStop
+        /// </summary>
+        void BusSocketStop ()
+        {
+            IsEnterBackground = true;
+            //杩涘叆鍚庡彴mqtt姝e湪杩炴帴閲嶇疆鐘舵��
+            MqttCommon.remoteMqttIsConnecting = false;
+            Shared.BusSocket.Stop ();
+            closeTime = DateTime.Now;
+        }
+
+
+        /// <summary>
+        /// BusSocketStart
+        /// </summary>
+        void BusSocketStart ()
+        {
+            IsEnterBackground = false;
+
+            if (closeTime == DateTime.MinValue) {
+                closeTime = DateTime.Now;
+            } else if (closeTime.AddSeconds (20) < DateTime.Now) {
+                if (CommonPage.IsRemote) {
+                    SmartHome.MqttCommon.DisConnectRemoteMqttClient ("closeTime");
                 }
             }
-            return false;
+
+            Shared.BusSocket.Start (6000);
         }
 
+        void Hide () {
+//            Window _window;
+//            _window = this.GetWindow ();
+//            WindowManager.LayoutParams params = _window.getAttributes ();
+//params.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
+//            _window.setAttributes (params);
+        }
     }
 }

--
Gitblit v1.8.0