using System;
using Android;
using Android.Content;
using Android.Net;
using Android.OS;
using HDL_ON;
using Java.Util;
using Shared;
namespace HDL_ON_Android
{
///
/// 设定为默认启动的Application
///
[Android.App.Application]
public class Application : Android.App.Application
{
static void reStartApp(Android.App.Application application)
{
var intent = new Intent(application, typeof(BaseActivity));
intent.AddFlags(ActivityFlags.NewTask);
application.StartActivity(intent);
Android.OS.Process.KillProcess(Android.OS.Process.MyPid());
}
public Application(IntPtr handle, Android.Runtime.JniHandleOwnership ownerShip) : base(handle, ownerShip) { }
public override void OnCreate()
{
if (Shared.Application.Activity != null)
{
reStartApp(this);
return;
}
base.OnCreate();
initAll();
}
///
/// 所有初始化全部在这个方法实现
///
void initAll()
{
//Locale locale1 = Locale.Default;
//var localeList = Resources.Configuration.Locale;
//if (localeList.Language == "zh")
//{
// Language.CurrentLanguage = "Chinese";
//}
string[] permissions = new string[] { Manifest.Permission.WriteExternalStorage, Manifest.Permission.RecordAudio,
Manifest.Permission.Camera, Manifest.Permission.ProcessOutgoingCalls, Manifest.Permission.GetAccounts};
var version = Build.VERSION.SdkInt + "";
Console.WriteLine("Build.VERSION.SdkInt : " + version);
//Android.Support.V4.App.ActivityCompat.RequestPermissions (BaseActivity., permissions, 321);
BaseActivity.IsHideVirualButtons = true;
init();
BaseActivity.OnCreateActoin += (activity, application) => {
BaseActivity.NetworkStateChanged += (int obj) => {
};
};
BaseActivity.RefreshUIAction += (activity) => {
MainPage.Show();
checkSomeInfo();
};
BaseActivity.OnResumeAction += (activity) => {
checkSomeInfo();
};
BaseActivity.OnDestroyAction += (activity) => {
Console.WriteLine("OnDestroyAction");
BusSocket.Stop();
};
}
public static bool IsShowTip = true;
void init()
{
//手机名称 Android.OS.Build.Manufacturer;
}
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;
}
}
}