using System; using Android; using Android.App; using Android.Content; using Android.Content.PM; using Android.Locations; using Android.Net; using Android.OS; using Android.Support.V4.App; using Android.Support.V4.Content; using CN.Jpush.Android.Api; //using Android.Widget; using Com.Hdl.ON.Jpush.Androidjpush; using HDL_ON; using Java.Util; using Shared; namespace HDL_ON_Android { [Activity(Theme = "@style/SplashTheme", MainLauncher = true, LaunchMode = LaunchMode.SingleTask, Name = "com.rongan.smart.SplashActivity", ScreenOrientation = ScreenOrientation.Portrait)] [IntentFilter(new string[] { "com.rongan.smart.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); if(Shared.Application.Activity != null && Shared.Application.Activity.GetType() == typeof(BaseActivity)) { Finish(); return; } //Intent i = new Intent(this, typeof(BaseActivity));//Intent intent=new Intent( 起始组件对象 , 目标 Service.class); //StartActivityForResult(i, 1); //OverridePendingTransition(0, 0); //initAll(); #if DEBUG HDL_ON.OnAppConfig.Instance.isAgreePrivacyPolicy = true; #endif if (HDL_ON.OnAppConfig.Instance.FirstRunApp || !HDL_ON.OnAppConfig.Instance.isAgreePrivacyPolicy) { //OnAppConfig.Instance.FirstRunApp = false; //OnAppConfig.Instance.SaveConfig(); 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"; } 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();//关闭自己 } } public void Permissions() { string[] mPermissionList = new string[] { Manifest.Permission.ReadSms }; foreach (string permissions in mPermissionList) { if (ContextCompat.CheckSelfPermission(this, permissions) != 0) { ActivityCompat.RequestPermissions(this, new string[] { permissions }, 1); } } } void initOhterSdk() { //手机名称 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, "81d1c458ed"); 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", ""); } /// /// 所有初始化全部在这个方法实现 /// 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.rongan.smart.fileProvider"); //Shared.Application.IsGpsEnable = true; //bool isfirst = true; var isfirst = true; //获取经纬度 Shared.Application.LocationAction = (lon, lat) => { try { if (isfirst) { //只触发一次 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}"); }; } /// /// /// /// 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; } // 在你的活动(Activity)或片段(Fragment)中的某个方法中,开始监听位置变化 void StartLocationUpdates() { // 创建位置管理器 var locationManager = (LocationManager)GetSystemService(Context.LocationService); // 设置位置监听器 var locationListener = new MyLocationListener_V2(); // 请求位置更新 locationManager.RequestLocationUpdates(LocationManager.GpsProvider, 0, 0, locationListener); } // 在你的活动(Activity)或片段(Fragment)中的某个方法中,停止监听位置变化 void StopLocationUpdates() { // 创建位置管理器 var locationManager = (LocationManager)GetSystemService(Context.LocationService); // 设置位置监听器 var locationListener = new MyLocationListener_V2(); // 停止位置更新 locationManager.RemoveUpdates(locationListener); } } }