wei
2020-12-11 488efb508eb0648773fe7b68e810e04bcd7ca075
HDL-ON_Android/Application.cs
@@ -5,6 +5,7 @@
using Android.Content;
using Android.Net;
using Android.OS;
using CN.Jpush.Android.Api;
using HDL_ON;
using Java.Util;
using Shared;
@@ -60,17 +61,19 @@
                {
                    Language.CurrentLanguage = "Chinese";
                }
                //获取极光推送ID
                GetJPushRegistrationID(activity);
                BaseActivity.NetworkStateChanged += (int obj) =>
                {
                    if (!IsEnterBackground)
                    {
                        BusSocket.Stop();
                        //BusSocket.Stop();
                        new System.Threading.Thread(() =>
                        {
                            System.Threading.Thread.Sleep(1000);
                            BusSocket.Start(6000);
                            //BusSocket.Start();
                        })
                        { IsBackground = true }.Start();
                    }
@@ -78,7 +81,7 @@
                    {
                        Console.WriteLine("HHH 网络变化但处于后台");
                    }
                    MainPage.InternetStatus = obj;
                };
            };
            BaseActivity.RefreshUIAction += (activity) =>
@@ -94,7 +97,7 @@
            BaseActivity.OnDestroyAction += (activity) =>
            {
                Console.WriteLine("OnDestroyAction");
                BusSocket.Stop();
                //BusSocket.Stop();
                OnAppConfig.Instance.unlockTime = DateTime.Now;
            };
@@ -103,19 +106,82 @@
            //Shared.Application.IsGpsEnable = true;
            Shared.Application.LocationAction = (arg1, arg2) =>
            //获取经纬度
            Shared.Application.LocationAction = (lon, lat) =>
            {
                Shared.Application.LocationAction = null;
                try
                {
                    Shared.Application.LocationAction = null;
                    Shared.Application.StopGPSLocationService();
                    new HDL_ON.DAL.Server.HttpServerRequest().GetCityInfo(lon.ToString(), lat.ToString());
                }
                catch
                {
                new HDL_ON.DAL.Server.HttpServerRequest().GetCityInfo(arg1.ToString(), arg2.ToString());
                MainPage.Log($"经纬度:::{arg1}:{arg2}");
                }
                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) && UserInfo.Current.PushDeviceToken != tokenID)
                {
                    UserInfo.Current.PushDeviceToken = tokenID;
                    UserInfo.Current.PhoneName = Android.OS.Build.Manufacturer;
                    UserInfo.Current.SaveUserInfo();
                }
                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) && UserInfo.Current.PushDeviceToken != tokenID)
                    {
                        UserInfo.Current.PushDeviceToken = tokenID;
                        UserInfo.Current.PhoneName = Android.OS.Build.Manufacturer;
                        UserInfo.Current.SaveUserInfo();
                    }
                });
            }
            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()
        {
@@ -241,7 +307,7 @@
        void BusSocketStop()
        {
            IsEnterBackground = true;
            BusSocket.Stop();
            //BusSocket.Stop();
            OnAppConfig.Instance.unlockTime = DateTime.Now;
        }
@@ -253,7 +319,8 @@
        {
            IsEnterBackground = false;
            BusSocket.Start(6000);
            //BusSocket.Start();
        }
    }
}