From c7698e163e43cea9e7f8ee45f8e3f91c9265cca4 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 04 十一月 2019 19:11:41 +0800
Subject: [PATCH] 合并了全部的代码

---
 ZigbeeApp/GateWay.Droid/Application.cs |   78 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 75 insertions(+), 3 deletions(-)

diff --git a/ZigbeeApp/GateWay.Droid/Application.cs b/ZigbeeApp/GateWay.Droid/Application.cs
index fc32ae7..b200e36 100755
--- a/ZigbeeApp/GateWay.Droid/Application.cs
+++ b/ZigbeeApp/GateWay.Droid/Application.cs
@@ -14,15 +14,87 @@
 using Microsoft.AppCenter;
 using Microsoft.AppCenter.Analytics;
 using Microsoft.AppCenter.Crashes;
+using Com.Tencent.MM.Sdk.Openapi;
 
 namespace com.hdl.home
 {
-     /// <summary>鈥�    /// 璁惧畾涓洪粯璁ゅ惎鍔ㄧ殑Application鈥�    /// </summary>鈥�    [Android.App.Application]鈥�    public class Application : Android.App.Application鈥�    {鈥�        public Application(IntPtr handle, Android.Runtime.JniHandleOwnership ownerShip) : base(handle, ownerShip) { }鈥ㄢ��        public override void OnCreate()鈥�        {鈥�            //瀹夊崜閰嶇綉鍒濆鈥�            //var result = Com.Mediatek.Elian.ElianNative.LoadLib();鈥�            //if (!result)鈥�            //{鈥�            //    System.Console.WriteLine("Error,can't load elianjni lib");鈥�            //}
 
-            initAll();鈥�            base.OnCreate();鈥�        }
+    [Activity(Name = "com.hdl.home.wxapi.WXEntryActivity", Exported = true, Theme = "@android:style/Theme.Translucent", LaunchMode = Android.Content.PM.LaunchMode.SingleTask)]
+    class WXEntryActivity : Android.App.Activity, IWXAPIEventHandler
+    {
+        public void OnReq(BaseReq p0)
+        {
 
+        }
+        protected override void OnNewIntent(Intent intent)
+        {
+            base.OnNewIntent(intent);
+            Intent = intent;
+            com.hdl.home.Application.api.HandleIntent(intent, this);
+            //Finish();
+        }
+        public static Action<string> RespAction;
+        public void OnResp(BaseResp p0)
+        {
 
+            if (p0 is SendAuth.Resp)
+            {
+                var resp = p0 as SendAuth.Resp;
 
+                switch (resp.ErrCode)
+                {
+                    case SendAuth.Resp.InnerErrCode.ErrOk:
+                        var result = new System.Net.WebClient { }.DownloadString($"https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx2ec8f53f6fa36e82&secret=a08585cd6ff2ce64570b9e7e6525dd8e&code={resp.Token}&grant_type=authorization_code");
+                        RespAction?.Invoke(result);
+                        break;
+                    default:
+                        RespAction?.Invoke(null);
+                        break;
+
+                    //case SendAuth.Resp.InnerErrCode.ErrUserCancel:
+                    //    break;
+                    //case SendAuth.Resp.InnerErrCode.ErrAuthDenied:
+                    //    break;
+
+                }
+            }
+            
+            this.Finish();
+        }
+        //IWXAPI api;
+        protected override void OnCreate(Bundle savedInstanceState)
+        {
+            base.OnCreate(savedInstanceState);
+            // 閫氳繃WXAPIFactory宸ュ巶锛岃幏鍙朓WXAPI鐨勫疄渚�
+            //api = WXAPIFactory.CreateWXAPI(this, "wx2ec8f53f6fa36e82", false);
+
+            // 灏嗗簲鐢ㄧ殑appId娉ㄥ唽鍒板井淇�
+            //api.RegisterApp("wx2ec8f53f6fa36e82");
+
+          com.hdl.home.Application.api.HandleIntent(Intent, this);
+        }
+    }
+    /// <summary>鈥�    /// 璁惧畾涓洪粯璁ゅ惎鍔ㄧ殑Application鈥�    /// </summary>鈥�    [Android.App.Application]鈥�    public class Application : Android.App.Application鈥�    {鈥�        public Application(IntPtr handle, Android.Runtime.JniHandleOwnership ownerShip) : base(handle, ownerShip) { }鈥ㄢ��        public override void OnCreate()鈥�        {
+            //瀹夊崜閰嶇綉鍒濆
+            //var result = Com.Mediatek.Elian.ElianNative.LoadLib();
+            //if (!result)
+            //{
+            //    System.Console.WriteLine("Error,can't load elianjni lib");
+            //}
+            initAll();鈥�            base.OnCreate();
+            // 閫氳繃WXAPIFactory宸ュ巶锛岃幏鍙朓WXAPI鐨勫疄渚�
+            api = WXAPIFactory.CreateWXAPI(this, "wx2ec8f53f6fa36e82", true);
+
+            // 灏嗗簲鐢ㄧ殑appId娉ㄥ唽鍒板井淇�
+            api.RegisterApp("wx2ec8f53f6fa36e82");
+        }
+
+       internal static IWXAPI api;
+
+        public static void WXLogin() {
+            var req = new SendAuth.Req { Scope = "snsapi_userinfo", State = "ZigbeeApp" };
+            api.SendReq(req);
+        }
         /// <summary>鈥�        /// 鎵�鏈夊垵濮嬪寲鍏ㄩ儴鍦ㄨ繖涓柟娉曞疄鐜扳��        /// </summary>鈥�        void initAll()鈥�        {鈥�            BaseActivity.IsEnnableGPS = false;
             //璁剧疆鏋佸厜璋冭瘯妯″紡锛屼负false鏃跺彧鎵撳嵃璀﹀憡淇℃伅
             // System.Console.WriteLine($"AAA : {System.DateTime.Now.ToString()}");
@@ -82,7 +154,7 @@
                 AppCenter.Start("4802834a-e7e9-4dd8-93f1-c2f88f0bd464", typeof(Analytics), typeof(Crashes));鈥�#if Release鈥�                //淇濆瓨鑾峰彇鐨勬瀬鍏夋湇鍔″櫒涓婄殑娉ㄥ唽ID鍒版湰鍦版枃浠垛��                var registrationId = JPushInterface.GetRegistrationID(activity);
                 System.Console.WriteLine("registrationId-鏋佸厜id=" + registrationId);
                 if (!string.IsNullOrEmpty(registrationId))鈥�                {鈥�                    Shared.Common.Config.Instance.RegistrationID = registrationId;鈥�                    Shared.Common.Config.Instance.Save();鈥�                }鈥�#endif鈥�            };鈥�            BaseActivity.RefreshUIAction += (activity) => {鈥�                Shared.Language.CurrentLanguage = "Chinese";鈥�                Shared.Common.CommonPage.Instance.Show();鈥�             };鈥�            BaseActivity.OnResumeAction += (activity) => {鈥�             };鈥�            BaseActivity.NetworkStateChanged += (v) =>鈥�            {鈥�                //缃戠粶鐘舵�佸彉鍖栧鐞嗕簨浠�
-                Shared.Common.CommonPage.nowNetworkMode = v;鈥�            };鈥�            BaseActivity.OnDestroyAction += (activity) => {鈥�            //socket鍋滄杩炴帴鈥�            //ZigBee.Device.ZbGateway.FindGateWaySocket.Stop();鈥�            };鈥ㄢ��         }鈥ㄢ��        public static bool IsShowTip = true;鈥�        JpushNotificationReceiver myReceiver = new JpushNotificationReceiver { };鈥ㄢ��        /// <summary>鈥�        /// 椤圭洰鍚姩鏃剁綉缁滄煡璇⑩��        /// </summary>鈥�        void checkSomeInfo()鈥�        {鈥�            var status = isNetworkAvailable(this);鈥�            string internetStatus = "Available";鈥�            if (!status)鈥�            {鈥�                internetStatus = "UnaVailable";鈥�            }鈥�            else鈥�            {鈥�                var isWifi = isWifiConnected(this);鈥�                if (isWifi)鈥�                {鈥�                    internetStatus = "WiFiConnect";鈥�                }鈥�                else鈥�                {鈥�                    internetStatus = "MobileConnect";鈥�                }鈥�            }鈥ㄢ��            int connectState = 0;鈥�            if (internetStatus == "UnaVailable")鈥�            {鈥�                connectState = 0;鈥�            }鈥�            else if (internetStatus == "WiFiConnect")鈥�            {鈥�                connectState = 2;鈥�            }鈥�            else鈥�            {鈥�                connectState = 1;鈥�            }鈥�            //ZigBee.Device.ZbGateway.CheckConnection(connectState);鈥�         }鈥ㄢ��        /// <summary>鈥�        /// 缃戠粶鏄惁鍙敤鈥�        /// </summary>鈥�        /// <returns><c>true</c>, if network available was ised, <c>false</c> otherwise.</returns>鈥�        /// <param name="context">Context.</param>鈥�        bool isNetworkAvailable(Context context)鈥�        {鈥�            var cm = (ConnectivityManager)context.GetSystemService(ConnectivityService);鈥ㄢ��            if (cm == null || cm.ActiveNetworkInfo == null)鈥�            {鈥�                //褰撳墠缃戠粶涓嶅彲鐢ㄢ��                return false;鈥�            }鈥�            else鈥�            {鈥�                return cm.ActiveNetworkInfo.IsAvailable;鈥�            }鈥�        }鈥ㄢ��        /// <summary>鈥�        /// 缃戠粶鏄惁杩炴帴鈥�        /// </summary>鈥�        /// <returns><c>true</c>, if wifi connected was ised, <c>false</c> otherwise.</returns>鈥�        /// <param name="context">Context.</param>鈥�        bool isWifiConnected(Context context)鈥�        {鈥�            if (context != null)鈥�            {鈥�                var cm = (ConnectivityManager)context.GetSystemService(ConnectivityService);鈥ㄢ��                var mWiFiNetworkInfo = cm.GetNetworkInfo(ConnectivityType.Wifi);鈥�                if (Android.Net.NetworkInfo.State.Connected == mWiFiNetworkInfo.GetState())鈥�                {鈥�                    //褰撳墠缃戠粶鏄疻i-Fi杩炴帴鈥�                    return true;鈥�                }鈥ㄢ��                var moWiFiNetworkInfo = cm.GetNetworkInfo(ConnectivityType.Mobile);鈥�                if (Android.Net.NetworkInfo.State.Connected == moWiFiNetworkInfo.GetState())鈥�                {鈥�                    //褰撳墠缃戠粶鏄疢obile杩炴帴鈥�                    return false;鈥�                }鈥�            }鈥�            return false;鈥�        }
+                Shared.Common.CommonPage.nowNetworkMode = v;鈥�            };鈥�            BaseActivity.OnDestroyAction += (activity) => {鈥�            //socket鍋滄杩炴帴鈥�            //ZigBee.Device.ZbGateway.FindGateWaySocket.Stop();鈥�            };鈥ㄢ��            HDLUtils.SetAuthoritiesName("com.hdl.home.fileProvider");鈥�         }鈥ㄢ��        public static bool IsShowTip = true;鈥�        JpushNotificationReceiver myReceiver = new JpushNotificationReceiver { };鈥ㄢ��        /// <summary>鈥�        /// 椤圭洰鍚姩鏃剁綉缁滄煡璇⑩��        /// </summary>鈥�        void checkSomeInfo()鈥�        {鈥�            var status = isNetworkAvailable(this);鈥�            string internetStatus = "Available";鈥�            if (!status)鈥�            {鈥�                internetStatus = "UnaVailable";鈥�            }鈥�            else鈥�            {鈥�                var isWifi = isWifiConnected(this);鈥�                if (isWifi)鈥�                {鈥�                    internetStatus = "WiFiConnect";鈥�                }鈥�                else鈥�                {鈥�                    internetStatus = "MobileConnect";鈥�                }鈥�            }鈥ㄢ��            int connectState = 0;鈥�            if (internetStatus == "UnaVailable")鈥�            {鈥�                connectState = 0;鈥�            }鈥�            else if (internetStatus == "WiFiConnect")鈥�            {鈥�                connectState = 2;鈥�            }鈥�            else鈥�            {鈥�                connectState = 1;鈥�            }鈥�            //ZigBee.Device.ZbGateway.CheckConnection(connectState);鈥�         }鈥ㄢ��        /// <summary>鈥�        /// 缃戠粶鏄惁鍙敤鈥�        /// </summary>鈥�        /// <returns><c>true</c>, if network available was ised, <c>false</c> otherwise.</returns>鈥�        /// <param name="context">Context.</param>鈥�        bool isNetworkAvailable(Context context)鈥�        {鈥�            var cm = (ConnectivityManager)context.GetSystemService(ConnectivityService);鈥ㄢ��            if (cm == null || cm.ActiveNetworkInfo == null)鈥�            {鈥�                //褰撳墠缃戠粶涓嶅彲鐢ㄢ��                return false;鈥�            }鈥�            else鈥�            {鈥�                return cm.ActiveNetworkInfo.IsAvailable;鈥�            }鈥�        }鈥ㄢ��        /// <summary>鈥�        /// 缃戠粶鏄惁杩炴帴鈥�        /// </summary>鈥�        /// <returns><c>true</c>, if wifi connected was ised, <c>false</c> otherwise.</returns>鈥�        /// <param name="context">Context.</param>鈥�        bool isWifiConnected(Context context)鈥�        {鈥�            if (context != null)鈥�            {鈥�                var cm = (ConnectivityManager)context.GetSystemService(ConnectivityService);鈥ㄢ��                var mWiFiNetworkInfo = cm.GetNetworkInfo(ConnectivityType.Wifi);鈥�                if (Android.Net.NetworkInfo.State.Connected == mWiFiNetworkInfo.GetState())鈥�                {鈥�                    //褰撳墠缃戠粶鏄疻i-Fi杩炴帴鈥�                    return true;鈥�                }鈥ㄢ��                var moWiFiNetworkInfo = cm.GetNetworkInfo(ConnectivityType.Mobile);鈥�                if (Android.Net.NetworkInfo.State.Connected == moWiFiNetworkInfo.GetState())鈥�                {鈥�                    //褰撳墠缃戠粶鏄疢obile杩炴帴鈥�                    return false;鈥�                }鈥�            }鈥�            return false;鈥�        }
     }
 
     public class JpushNotificationReceiver : BroadcastReceiver

--
Gitblit v1.8.0