| | |
| | | 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; |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |