From 07b0239f824ddb5a0cadf93f20ff6247f72baca2 Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期三, 19 一月 2022 11:32:03 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/wxr0114' into wjc --- HDL-ON_Android/Application.cs | 497 ++++++++++++++----------------------------------------- 1 files changed, 128 insertions(+), 369 deletions(-) diff --git a/HDL-ON_Android/Application.cs b/HDL-ON_Android/Application.cs index b2261ff..dbb5630 100644 --- a/HDL-ON_Android/Application.cs +++ b/HDL-ON_Android/Application.cs @@ -18,400 +18,159 @@ namespace HDL_ON_Android { - /// <summary> - /// 璁惧畾涓洪粯璁ゅ惎鍔ㄧ殑Application - /// </summary> - [Android.App.Application] - public class Application : Android.App.Application, Android.App.Application.IActivityLifecycleCallbacks - { - 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() - { - //娉ㄥ唽鏈鐞嗗紓甯镐簨浠� - 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> - /// 鎵�鏈夊垵濮嬪寲鍏ㄩ儴鍦ㄨ繖涓柟娉曞疄鐜� + /// 璁惧畾涓洪粯璁ゅ惎鍔ㄧ殑Application /// </summary> - void initAll() + [Android.App.Application] + public class Application : Android.App.Application, Android.App.Application.IActivityLifecycleCallbacks { - - 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 + static void reStartApp(Android.App.Application application) { - 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; - } + var intent = new Intent(application, typeof(BaseActivity)); + intent.AddFlags(ActivityFlags.NewTask); + application.StartActivity(intent); + Android.OS.Process.KillProcess(Android.OS.Process.MyPid()); } - catch (Exception ex) + + public Application(IntPtr handle, Android.Runtime.JniHandleOwnership ownerShip) : base(handle, ownerShip) { } + public override void OnCreate() { - 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) + if (Shared.Application.Activity != null) { - break; + //reStartApp(this); + return; } - } - 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; + base.OnCreate(); + RegisterActivityLifecycleCallbacks(this); } - var isWifi = isWifiConnected(this); - if (isWifi) + public void OnActivityCreated(Activity activity, Bundle savedInstanceState) { - internetStatus = 2; + } - else + + public void OnActivityDestroyed(Activity activity) { - internetStatus = 1; + //throw new NotImplementedException (); } - } - 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) + public void OnActivityPaused(Activity activity) { - return mWiFiNetworkInfo.IsAvailable; + //throw new NotImplementedException (); } - } - 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) + public void OnActivityResumed(Activity activity) { - HDL_ON.DAL.Mqtt.MqttClient.DisConnectRemote("closeTime", false); + //throw new NotImplementedException (); } - } - MainPage.IsEnterBackground = false; - HDL_ON.DriverLayer.UdpSocket._BusSocket.Start(); - HDL_ON.DriverLayer.Control.Ins.SearchLoaclGateway(); - } + public void OnActivitySaveInstanceState(Activity activity, Bundle outState) + { + //throw new NotImplementedException (); + } - protected override void Dispose(bool disposing) - { - base.Dispose(disposing); - } + public void OnActivityStarted(Activity activity) + { + //throw new NotImplementedException (); + if (HDL_ON.OnAppConfig.Instance.FirstRunApp) + { + return; + } + mCount++; + if (mCount == 1) + { + Console.WriteLine("HHH OnActivityStarted锛歠oreground"); + BusSocketStart(); + //鍚庡彴鍥炲埌鍓嶅彴 + new HDL_ON.UI.AppUnlockPage().LoadPage(); + } + } - /// <summary> - /// 鏌ヨ閫氱煡鏉冮檺锛屽苟鎻愮ず - /// </summary> - public void QueryNotificationPermission() - { + 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); + } + + public 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() + { + + + } + } - - - } - -} +} \ No newline at end of file -- Gitblit v1.8.0