wxr
2023-06-06 592974441a4df95fffd9167c90192da1a390b1c2
HDL-ON_Android/SplashActivity.cs
@@ -1,27 +1,394 @@
using Android.App;
using System;
using Android.App;
using Android.Content;
using Android.Content.PM;
using Android.Net;
using Android.OS;
using CN.Jpush.Android.Api;
//using Android.Widget;
using Com.Hdl.ON.Jpush.Androidjpush;
using HDL_ON;
using Java.Util;
using Microsoft.AppCenter;
using Microsoft.AppCenter.Analytics;
using Microsoft.AppCenter.Crashes;
using Shared;
namespace HDL_ON_Android
{
    [Activity(Theme = "@style/SplashTheme", MainLauncher = true, Name = "com.hdl.onpro.SplashActivity")]
    [Activity(Theme = "@style/SplashTheme", MainLauncher = true, LaunchMode = LaunchMode.SingleTask, Name = "com.hdl.onpro.SplashActivity", ScreenOrientation = ScreenOrientation.Portrait)]
    [IntentFilter(new string[] { "com.hdl.onpro.SplashActivity", Intent.ActionView })]
    public class SplashActivity : Activity
    {
        protected override void OnActivityResult(int requestCode, Result resultVal, Intent data)
        {
            if (requestCode == 99)
            {
                if (resultVal == Result.Ok)
                {
                    if (!OnAppConfig.Instance.FirstRunApp)
                    {
                        ////打开baseActivity
                        Intent i = new Intent(this, typeof(BaseActivity));//Intent intent=new Intent( 起始组件对象 , 目标 Service.class);
                        StartActivityForResult(i, 1);
                        OverridePendingTransition(0, 0);
                        initAll();
                        initOhterSdk();
                        Finish();//关闭自己
                    }
                }
            }
            base.OnActivityResult(requestCode, resultVal, data);
        }
        [Obsolete]
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            //Intent i = new Intent(this, typeof(BaseActivity));//Intent intent=new Intent( 起始组件对象 , 目标 Service.class);
            //StartActivityForResult(i, 1);
            //OverridePendingTransition(0, 0);
            //initAll();
            if (HDL_ON.OnAppConfig.Instance.FirstRunApp || !HDL_ON.OnAppConfig.Instance.isAgreePrivacyPolicy)
            {
                Language.CurrentLanguage = "Chinese";
                Locale locale1 = Locale.Default;
                var localeList = Resources.Configuration.Locale;
                Console.WriteLine("当前语言缩写:" + localeList.Language);
                if (localeList.Language == "zh")
                {
                    Language.CurrentLanguage = "Chinese";
                }
                else if (localeList.Language == "es")
                {
                    Language.CurrentLanguage = "Spanish";
                }
                else if (localeList.Language == "ru")
                {
                    Language.CurrentLanguage = "russian";
                }
                else if (localeList.Language == "bg")
                {
                    Language.CurrentLanguage = "български";
                }
                else
                {
                    Language.CurrentLanguage = "English";
                }
            //打开baseActivity
            Intent i = new Intent(this, typeof(BaseActivity));//Intent intent=new Intent( 起始组件对象 , 目标 Service.class);
            StartActivity(i);
            OverridePendingTransition(0, 0);
            Finish();
                Intent intent = new Intent(this, typeof(AgreementActivity));
                StartActivityForResult(intent, 99);
            }
            else
            {
                ////打开baseActivity
                Intent i = new Intent(this, typeof(BaseActivity));//Intent intent=new Intent( 起始组件对象 , 目标 Service.class);
                StartActivityForResult(i, 1);
                OverridePendingTransition(0, 0);
                initAll();
                initOhterSdk();
                Finish();//关闭自己
            }
        }
        void initOhterSdk()
        {
            //注册未处理异常事件
            AppCenter.Start("64ac5859-2cd7-4ef8-a5da-5455e29679ec", typeof(Analytics), typeof(Crashes));
            //手机名称 Android.OS.Build.Manufacturer;
            //OnAppConfig.Instance.PhoneName = Android.OS.Build.Manufacturer;
            //#if DEBUG
            //CN.Jpush.Android.Api.JPushInterface.SetDebugMode(true);
            //#endif
            JPushInterface.Init(this);
            Com.Chteam.Agent.BuglyAgentHelper.Init(this.ApplicationContext, "316a8f5d83");
            BaseActivity.OnCreateActoin += (activity, application) =>
            {
                //获取极光推送ID
                GetJPushRegistrationID(activity);
            };
            //初始化友盟sdk
            Com.Hdl.Umsdk.UmSdk.InitUmSdk(this, "61d565d9e0f9bb492bbc3d5a", "Android");
            //初始化友盟sdk config
            Com.Hdl.Umsdk.UmSdk.InitUMConfigure(this, "61d565d9e0f9bb492bbc3d5a", "Android", "");
        }
        /// <summary>
        /// 所有初始化全部在这个方法实现
        /// </summary>
        void initAll()
        {
            //禁止屏幕长亮
            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;
                }
            };
            BaseActivity.OnCreateActoin += (activity, application) =>
            {
                Language.CurrentLanguage = "Chinese";
                Locale locale1 = Locale.Default;
                var localeList = Resources.Configuration.Locale;
                Console.WriteLine("当前语言编号" + localeList.Language);
                if (localeList.Language == "zh")
                {
                    Language.CurrentLanguage = "Chinese";
                }
                else if (localeList.Language == "es")
                {
                    Language.CurrentLanguage = "Spanish";
                }
                else if (localeList.Language == "ru")
                {
                    Language.CurrentLanguage = "russian";
                }
                else if (localeList.Language == "bg")
                {
                    Language.CurrentLanguage = "български";
                }
                else
                {
                    Language.CurrentLanguage = "English";
                }
                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 网络变化但处于后台"+internetStatus);
                    //}
                    //网络变化处理
                    HDLCommon.Current.UpdateInternetStatus((int)internetStatus, MainPage.IsEnterBackground);
                };
            };
            BaseActivity.RefreshUIAction += (activity) =>
            {
                Language.CurrentLanguage = "Chinese";
                Locale locale1 = Locale.Default;
                var localeList = Resources.Configuration.Locale;
                Console.WriteLine("当前语言:" + localeList.Language);
                if (localeList.Language == "zh")
                {
                    Language.CurrentLanguage = "Chinese";
                }
                else if (localeList.Language == "es")
                {
                    Language.CurrentLanguage = "Spanish";
                }
                else if (localeList.Language == "ru")
                {
                    Language.CurrentLanguage = "russian";
                }
                else if (localeList.Language == "bg")
                {
                    Language.CurrentLanguage = "български";
                }
                else
                {
                    Language.CurrentLanguage = "English";
                }
                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().Replace(",", "."), lat.ToString().Replace(",", "."));
                    //}
                    //isfirst = false;
                    ///监听经纬度
                    HDL_ON.UI.UI2.Intelligence.Automation.LogicMethod.Current.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 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;
        }
    }