From e71c57108e6dd407c2c6f0361f68150f2ff9aed5 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期三, 15 十二月 2021 13:41:16 +0800
Subject: [PATCH] 版本备份

---
 HDL-ON_Android/Application.cs |  646 ++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 402 insertions(+), 244 deletions(-)

diff --git a/HDL-ON_Android/Application.cs b/HDL-ON_Android/Application.cs
index 1e33f4e..b2261ff 100644
--- a/HDL-ON_Android/Application.cs
+++ b/HDL-ON_Android/Application.cs
@@ -1,259 +1,417 @@
 锘縰sing System;
 using System.Net;
+using System.Threading.Tasks;
 using Android;
 using Android.App;
 using Android.Content;
 using Android.Net;
 using Android.OS;
+using Android.Runtime;
+using Android.Widget;
+using CN.Jpush.Android.Api;
 using HDL_ON;
 using Java.Util;
+using Microsoft.AppCenter;
+using Microsoft.AppCenter.Analytics;
+using Microsoft.AppCenter.Crashes;
 using Shared;
 
 namespace HDL_ON_Android
 {
-    /// <summary>
-    /// 璁惧畾涓洪粯璁ゅ惎鍔ㄧ殑Application
-    /// </summary>
-    [Android.App.Application]
-    public class Application : Android.App.Application, Android.App.Application.IActivityLifecycleCallbacks
+  /// <summary>
+  /// 璁惧畾涓洪粯璁ゅ惎鍔ㄧ殑Application
+  /// </summary>
+  [Android.App.Application]
+  public class Application : Android.App.Application, Android.App.Application.IActivityLifecycleCallbacks
+  {
+    static void reStartApp(Android.App.Application application)
     {
-        static void reStartApp(Android.App.Application application)
-        {
-            var intent = new Intent(application, typeof(BaseActivity));
-            intent.AddFlags(ActivityFlags.NewTask);
-            application.StartActivity(intent);
-            Android.OS.Process.KillProcess(Android.OS.Process.MyPid());
-        }
-
-        public Application(IntPtr handle, Android.Runtime.JniHandleOwnership ownerShip) : base(handle, ownerShip) { }
-        public override void OnCreate()
-        {
-            if (Shared.Application.Activity != null)
-            {
-                reStartApp(this);
-                return;
-            }
-
-            base.OnCreate();
-            RegisterActivityLifecycleCallbacks(this);
-
-            initAll();
-
-        }
-        /// <summary>
-        /// 鎵�鏈夊垵濮嬪寲鍏ㄩ儴鍦ㄨ繖涓柟娉曞疄鐜�
-        /// </summary>
-        void initAll()
-        {
-
-            string[] permissions = new string[] { Manifest.Permission.WriteExternalStorage, Manifest.Permission.RecordAudio,
-            Manifest.Permission.Camera, Manifest.Permission.ProcessOutgoingCalls, Manifest.Permission.GetAccounts};
-
-            BaseActivity.IsHideVirualButtons = true;
-            init();
-            BaseActivity.OnCreateActoin += (activity, application) =>
-            {
-                Language.CurrentLanguage = "Chinese";
-                Locale locale1 = Locale.Default;
-                var localeList = Resources.Configuration.Locale;
-                if (localeList.Language == "zh")
-                {
-                    Language.CurrentLanguage = "Chinese";
-                }
-
-                BaseActivity.NetworkStateChanged += (int obj) =>
-                {
-                    if (!IsEnterBackground)
-                    {
-                        //BusSocket.Stop();
-                        new System.Threading.Thread(() =>
-                        {
-                            System.Threading.Thread.Sleep(1000);
-                            //BusSocket.Start();
-                        })
-                        { IsBackground = true }.Start();
-                    }
-                    else
-                    {
-                        Console.WriteLine("HHH 缃戠粶鍙樺寲浣嗗浜庡悗鍙�");
-                    }
-
-                };
-            };
-            BaseActivity.RefreshUIAction += (activity) =>
-            {
-                MainPage.Show();
-                checkSomeInfo();
-            };
-            BaseActivity.OnResumeAction += (activity) =>
-            {
-                checkSomeInfo();
-                new HDL_ON.UI.AppUnlockPage().LoadPage();
-            };
-            BaseActivity.OnDestroyAction += (activity) =>
-            {
-                Console.WriteLine("OnDestroyAction");
-                //BusSocket.Stop();
-                OnAppConfig.Instance.unlockTime = DateTime.Now;
-            };
-
-
-            HDLUtils.SetAuthoritiesName("com.hdl.onpro.fileProvider");
-
-            //Shared.Application.IsGpsEnable = true;
-
-            Shared.Application.LocationAction = (arg1, arg2) =>
-            {
-                Shared.Application.LocationAction = null;
-
-                new HDL_ON.DAL.Server.HttpServerRequest().GetCityInfo(arg1.ToString(), arg2.ToString());
-
-                MainPage.Log($"缁忕含搴�:::{arg1}:{arg2}");
-            };
-        }
-        public static bool IsShowTip = true;
-        void init()
-        {
-            //鎵嬫満鍚嶇О Android.OS.Build.Manufacturer;
-            OnAppConfig.Instance.PhoneName = Android.OS.Build.Manufacturer;
-        }
-        void checkSomeInfo()
-        {
-            try
-            {
-                IsShowTip = true;
-                var status = isNetworkAvailable(this);
-                int internetStatus = 0;
-                if (!status)
-                {
-                    internetStatus = 0;
-                }
-
-                var isWifi = isWifiConnected(this);
-                if (isWifi)
-                {
-                    internetStatus = 2;
-                }
-                else
-                {
-                    internetStatus = 1;
-                }
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine($"android check some info erorr : {ex.Message}");
-            }
-        }
-
-        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)
-        {
-
-        }
-
-        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();
-            }
-        }
-
-        public void OnActivityStopped(Activity activity)
-        {
-
-            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;
-
-        /// <summary>
-        /// BusSocketStop
-        /// </summary>
-        void BusSocketStop()
-        {
-            IsEnterBackground = true;
-            //BusSocket.Stop();
-            OnAppConfig.Instance.unlockTime = DateTime.Now;
-        }
-
-
-        /// <summary>
-        /// BusSocketStart
-        /// </summary>
-        void BusSocketStart()
-        {
-            IsEnterBackground = false;
-
-            //BusSocket.Start();
-        }
+      var intent = new Intent(application, typeof(BaseActivity));
+      intent.AddFlags(ActivityFlags.NewTask);
+      application.StartActivity(intent);
+      Android.OS.Process.KillProcess(Android.OS.Process.MyPid());
     }
-}
\ No newline at end of file
+
+    public Application(IntPtr handle, Android.Runtime.JniHandleOwnership ownerShip) : base(handle, ownerShip) { }
+    public override void OnCreate()
+    {
+      //娉ㄥ唽鏈鐞嗗紓甯镐簨浠�
+      AppCenter.Start("64ac5859-2cd7-4ef8-a5da-5455e29679ec", typeof(Analytics), typeof(Crashes));
+      if (Shared.Application.Activity != null)
+      {
+        reStartApp(this);
+        return;
+      }
+
+      base.OnCreate();
+      RegisterActivityLifecycleCallbacks(this);
+
+      initAll();
+
+    }
+
+
+
+    /// <summary>
+    /// 鎵�鏈夊垵濮嬪寲鍏ㄩ儴鍦ㄨ繖涓柟娉曞疄鐜�
+    /// </summary>
+    void initAll()
+    {
+
+      string[] permissions = new string[] { Manifest.Permission.WriteExternalStorage, Manifest.Permission.RecordAudio,
+            Manifest.Permission.Camera, Manifest.Permission.ProcessOutgoingCalls, Manifest.Permission.GetAccounts};
+      //绂佹灞忓箷闀夸寒
+      BaseActivity.KeepScreenON = false;
+      //闅愯棌铏氭嫙鎸夐敭
+      BaseActivity.IsHideVirualButtons = true;
+      //瀹炵幇瀹夊崜杩斿洖鎸夐敭
+      BaseActivity.BackKeyAction = () =>
+      {
+        try
+        {
+          var result = MainPage.LoadEvent_BackAction();
+          switch (result)
+          {
+            case 0:
+              break;
+            case 1:
+            case 2:
+              BaseActivity.VerifyDateTime = DateTime.MaxValue;
+              break;
+            default:
+              BaseActivity.VerifyDateTime = DateTime.MaxValue;
+              break;
+          }
+        }
+        catch (Exception ex)
+        {
+          MainPage.Log(ex.Message);
+          BaseActivity.VerifyDateTime = DateTime.MaxValue;
+        }
+      };
+
+      init();
+      BaseActivity.OnCreateActoin += (activity, application) =>
+      {
+        Language.CurrentLanguage = "Chinese";
+        Locale locale1 = Locale.Default;
+        var localeList = Resources.Configuration.Locale;
+        if (localeList.Language == "zh")
+        {
+          Language.CurrentLanguage = "Chinese";
+        }
+        else
+        {
+          Language.CurrentLanguage = "English";
+        }
+        //鑾峰彇鏋佸厜鎺ㄩ�両D
+        GetJPushRegistrationID(activity);
+
+        BaseActivity.NetworkStateChanged += (int internetStatus) =>
+              {
+                //if (!IsEnterBackground)
+                //{
+                //    ////BusSocket.Stop();
+                //    //new System.Threading.Thread(() =>
+                //    //{
+                //    //    System.Threading.Thread.Sleep(1000);
+                //    //    //BusSocket.Start();
+                //    //})
+                //    //{ IsBackground = true }.Start();
+
+                //}
+                //else
+                //{
+                //    Console.WriteLine("HHH 缃戠粶鍙樺寲浣嗗浜庡悗鍙�");
+                //}
+
+                //缃戠粶鍙樺寲澶勭悊
+                HDLCommon.Current.UpdateInternetStatus((int)internetStatus, MainPage.IsEnterBackground);
+              };
+      };
+      BaseActivity.RefreshUIAction += (activity) =>
+      {
+        MainPage.Show();
+        checkSomeInfo();
+      };
+      BaseActivity.OnResumeAction += (activity) =>
+      {
+        checkSomeInfo();
+      };
+      BaseActivity.OnDestroyAction += (activity) =>
+      {
+        Console.WriteLine("OnDestroyAction");
+        //BusSocket.Stop();
+        //UserInfo.Current.unlockTime = DateTime.Now;
+      };
+
+
+      HDLUtils.SetAuthoritiesName("com.hdl.onpro.fileProvider");
+
+      //Shared.Application.IsGpsEnable = true;
+      bool isfirst = true;
+      //鑾峰彇缁忕含搴� 
+      Shared.Application.LocationAction = (lon, lat) =>
+      {
+        try
+        {
+          if (isfirst)
+          {
+            //鍙Е鍙戜竴娆�
+            //Shared.Application.LocationAction = null;
+            new HDL_ON.DAL.Server.HttpServerRequest().GetCityWeatherInfo(lon.ToString(), lat.ToString());
+          }
+          isfirst = false;
+          ///鐩戝惉缁忕含搴�
+          HDL_ON.UI.UI2.Intelligence.Automation.LogicMethod.CurrLogicMethod.AppLatAndLonEvent(lon, lat);
+          //鍏抽棴瀹氫綅鏈嶅姟
+          //Shared.Application.StopGPSLocationService();
+        }
+        catch (Exception ex)
+        {
+          Utlis.WriteLine("GetCityInfo catch" + ex.Message);
+        }
+        MainPage.Log($"缁忕含搴�:::{lon}:{lat}");
+      };
+    }
+
+    /// <summary>
+    /// 
+    /// </summary>
+    /// <param name="activity"></param>
+    void GetJPushRegistrationID(BaseActivity activity)
+    {
+      try
+      {
+        //淇濆瓨鑾峰彇鐨勬瀬鍏夋湇鍔″櫒涓婄殑娉ㄥ唽ID鍒版湰鍦版枃浠�
+        var tokenID = JPushInterface.GetRegistrationID(activity);
+        Console.WriteLine("RegistrationID:  " + tokenID);
+        if (!string.IsNullOrEmpty(tokenID) && OnAppConfig.Instance.PushDeviceToken != tokenID)
+        {
+          OnAppConfig.Instance.PushDeviceToken = tokenID;
+          OnAppConfig.Instance.PhoneName = Android.OS.Build.Manufacturer;
+          OnAppConfig.Instance.SaveConfig();
+        }
+        int loadTokenCount = 0;
+        System.Threading.Tasks.Task.Run(() =>
+        {
+          while (string.IsNullOrEmpty(tokenID))
+          {
+            System.Threading.Thread.Sleep(1000);
+            tokenID = JPushInterface.GetRegistrationID(activity);
+            Console.WriteLine("Sleep.tokenID + " + JPushInterface.GetRegistrationID(activity));
+            loadTokenCount++;
+            if (loadTokenCount > 30)
+            {
+              break;
+            }
+          }
+          Console.WriteLine("RegistrationID:  " + tokenID);
+          if (!string.IsNullOrEmpty(tokenID) && OnAppConfig.Instance.PushDeviceToken != tokenID)
+          {
+            OnAppConfig.Instance.PushDeviceToken = tokenID;
+            OnAppConfig.Instance.PhoneName = Android.OS.Build.Manufacturer;
+            OnAppConfig.Instance.SaveConfig();
+          }
+        });
+
+      }
+      catch
+      {
+
+      }
+    }
+
+    public static bool IsShowTip = true;
+    void init()
+    {
+      //鎵嬫満鍚嶇О Android.OS.Build.Manufacturer;
+      //OnAppConfig.Instance.PhoneName = Android.OS.Build.Manufacturer;
+      //#if DEBUG
+      //CN.Jpush.Android.Api.JPushInterface.SetDebugMode(true);
+      //#endif
+      CN.Jpush.Android.Api.JPushInterface.Init(this);
+
+    }
+    void checkSomeInfo()
+    {
+      try
+      {
+        IsShowTip = true;
+        var status = isNetworkAvailable(this);
+        int internetStatus = 0;
+        if (!status)
+        {
+          internetStatus = 0;
+        }
+
+        var isWifi = isWifiConnected(this);
+        if (isWifi)
+        {
+          internetStatus = 2;
+        }
+        else
+        {
+          internetStatus = 1;
+        }
+      }
+      catch (Exception ex)
+      {
+        Console.WriteLine($"android check some info erorr : {ex.Message}");
+      }
+    }
+
+    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)
+    {
+
+    }
+
+    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();
+        //鍚庡彴鍥炲埌鍓嶅彴
+        new HDL_ON.UI.AppUnlockPage().LoadPage();
+      }
+    }
+
+    public void OnActivityStopped(Activity activity)
+    {
+
+      mCount--;
+      if (mCount == 0)
+      {
+        Console.WriteLine("HHH OnActivityStopped锛� background");
+        BusSocketStop();
+        //杩涘叆鍚庡彴
+        UserInfo.Current.unlockTime = DateTime.Now;
+
+      }
+    }
+
+
+    public override void OnTerminate()
+    {
+      base.OnTerminate();
+      UnregisterActivityLifecycleCallbacks(this);
+    }
+
+    int mCount;
+
+    ///// <summary>
+    ///// 鏄惁杩涘叆鍚庡彴
+    ///// </summary>
+    //public bool IsEnterBackground = false;
+
+    /// <summary>
+    /// 杩涘叆鍚庡彴鐨勬椂闂�
+    /// </summary>
+    DateTime CloseTime = DateTime.Now;
+
+    /// <summary>
+    /// BusSocketStop
+    /// </summary>
+    void BusSocketStop()
+    {
+      //IsEnterBackground = true;
+      CloseTime = DateTime.Now;
+      MainPage.IsEnterBackground = true;
+      //杩涘叆鍚庡彴mqtt姝e湪杩炴帴閲嶇疆鐘舵��
+      HDL_ON.DAL.Mqtt.MqttClient.RemoteMqttIsConnecting = false;
+      HDL_ON.DriverLayer.UdpSocket._BusSocket.Stop();
+
+    }
+
+    /// <summary>
+    /// BusSocketStart
+    /// </summary>
+    void BusSocketStart()
+    {
+      //IsEnterBackground = false;
+
+      if (CloseTime.AddSeconds(10) < DateTime.Now)
+      {
+        //鍚庡彴瓒呰繃10s灏辨柇寮�MQTT閲嶈繛
+        //if (HDL_ON.DriverLayer.Control.Ins.IsRemote)
+        {
+          HDL_ON.DAL.Mqtt.MqttClient.DisConnectRemote("closeTime", false);
+        }
+      }
+
+      MainPage.IsEnterBackground = false;
+      HDL_ON.DriverLayer.UdpSocket._BusSocket.Start();
+      HDL_ON.DriverLayer.Control.Ins.SearchLoaclGateway();
+    }
+
+    protected override void Dispose(bool disposing)
+    {
+      base.Dispose(disposing);
+    }
+
+    /// <summary>
+    /// 鏌ヨ閫氱煡鏉冮檺锛屽苟鎻愮ず
+    /// </summary>
+    public void QueryNotificationPermission()
+    {
+
+
+    }
+
+
+
+  }
+
+}

--
Gitblit v1.8.0