wxr
2020-07-23 5de5a26d3825b3182a7d3a18ed1cbdbb78a3f9aa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
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
{
    /// <summary>
    /// 设定为默认启动的Application
    /// </summary>
    [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();
           
        }
        /// <summary>
        /// 所有初始化全部在这个方法实现
        /// </summary>
        void initAll()
        {
           
            string[] permissions = new string[] { Manifest.Permission.WriteExternalStorage, Manifest.Permission.RecordAudio,
            Manifest.Permission.Camera, Manifest.Permission.ProcessOutgoingCalls, Manifest.Permission.GetAccounts};
 
            BaseActivity.IsHideVirualButtons = true;
            init();
            BaseActivity.OnCreateActoin += (activity, application) => {
                Locale locale1 = Locale.Default;
                var localeList = Resources.Configuration.Locale;
                if (localeList.Language == "zh")
                {
                    Language.CurrentLanguage = "Chinese";
                }
 
                BaseActivity.NetworkStateChanged += (int obj) => {
                };
 
            };
            BaseActivity.RefreshUIAction += (activity) => {
                MainPage.Show();
                checkSomeInfo();
            };
            BaseActivity.OnResumeAction += (activity) => {
                checkSomeInfo();
            };
            BaseActivity.OnDestroyAction += (activity) => {
                Console.WriteLine("OnDestroyAction");
                BusSocket.Stop();
            };
 
            HDLUtils.SetAuthoritiesName("com.hdl.onpro.fileProvider");
        }
        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;
        }
    }
}