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",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
|
{
|
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();//关闭自己
|
}
|
|
}
|
|
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);
|
|
|
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;
|
}
|
|
}
|
|
|
|
|
}
|