HDL Home App 第二版本 旧平台金堂用 正在使用
陈嘉乐
2020-08-24 7ded9bc93b6beb5d7311ed4d013f90c521f85b5e
ZigbeeApp/GateWay.Droid/Application.cs
@@ -97,10 +97,13 @@
            var req = new SendAuth.Req { Scope = "snsapi_userinfo", State = "ZigbeeApp" };
            api.SendReq(req);
        }
        /// <summary>
        /// 所有初始化全部在这个方法实现
        /// </summary>
        void initAll()
        {
          //  Shared.Application.IsGpsEnable = false;
        /// <summary>
        /// 所有初始化全部在这个方法实现
        /// </summary>
        void initAll()
        {
            string checkFile = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, Shared.Phone.UserCenter.DirNameResourse.OpenGbsFile);
            Shared.Application.IsGpsEnable = System.IO.File.Exists(checkFile);
            //设置极光调试模式,为false时只打印警告信息
            // System.Console.WriteLine($"AAA : {System.DateTime.Now.ToString()}");
#if Release
            JPushInterface.SetDebugMode(false);
#if Release
            JPushInterface.SetDebugMode(true);
            //保存手机名称到本地文件
            //System.Console.WriteLine($"BBB : {System .DateTime .Now .ToString ()}");
@@ -153,9 +156,11 @@
            };

            BaseActivity.OnCreateActoin += (activity, application) => {
                Shared.Application.FontSize = 12;
                AppCenter.Start("4802834a-e7e9-4dd8-93f1-c2f88f0bd464", typeof(Analytics), typeof(Crashes));
#if Release
                //保存获取的极光服务器上的注册ID到本地文件
                var registrationId = JPushInterface.GetRegistrationID(activity);
                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) =>
            {
                //网络状态变化处理事件
                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();
            };

            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())
                {
                    //当前网络是Wi-Fi连接
                    return true;
                }

                var moWiFiNetworkInfo = cm.GetNetworkInfo(ConnectivityType.Mobile);
                if (Android.Net.NetworkInfo.State.Connected == moWiFiNetworkInfo.GetState())
                {
                    //当前网络是Mobile连接
                    return false;
                }
            }
            return false;
        }
    }
@@ -242,22 +247,27 @@
        /// <param name="bundle">Bundle.</param>
        private void OpenNotification(Context context, Bundle bundle)
        {
            Intent i = new Intent(context, typeof(BaseActivity));//Intent intent=new Intent( 起始组件对象 , 目标 Service.class);
            i.PutExtras(bundle);
            i.SetFlags(ActivityFlags.NewTask);
            context.StartActivity(i);
            String extras = bundle.GetString(JPushInterface.ExtraExtra);
            String myValue = "";
            //String myValue = "";
            try
            {
                JSONObject extrasJson = new JSONObject(extras);
                myValue = extrasJson.OptString("myKey");
                VideoMethod(extras);
                //JSONObject extrasJson = new JSONObject(extras);
                //myValue = extrasJson.OptString("myKey");
            }
            catch (Exception e)
            {
                System.Console.WriteLine(TAG, "Unexpected: extras is not a valid json", e);
                return;
            }
            Intent i = new Intent(context, typeof(BaseActivity));//Intent intent=new Intent( 起始组件对象 , 目标 Service.class);
            i.PutExtras(bundle);
            i.SetFlags(ActivityFlags.NewTask);
            context.StartActivity(i);
            //if (TYPE_THIS.equals(myValue))
            //{
            //Intent mIntent = new Intent(context, ThisActivity.class);
@@ -273,6 +283,10 @@
            //context.startActivity(mIntent);
            //}
        }
        /// <summary>         /// android通知栏点击打开可视对讲的方法         /// </summary>         /// <param name="hiddenJson">云端推过来的数据</param>         private void VideoMethod(string hiddenJson)         {                          var hiddanJson = Newtonsoft.Json.Linq.JObject.Parse(hiddenJson);             if (hiddanJson == null)             {                 return;             }             var json = Newtonsoft.Json.Linq.JObject.Parse(hiddanJson["HiddanJson"].ToString());             if (json == null)             {                 return;             }             Shared.Phone.VideoPhone.ESVideoInfo eSVideoInfo = new Shared.Phone.VideoPhone.ESVideoInfo();             if (json["uuid"].ToString().Contains(","))             {                 var uuid = json["uuid"].ToString().Split(',');                 eSVideoInfo.ESVideoUUID = uuid[0];             }             else             {                 eSVideoInfo.ESVideoUUID = json["uuid"].ToString();             }             eSVideoInfo.DeviceName = Language.StringByID(Shared.R.MyInternationalizationString.theOutdoorUnit);             eSVideoInfo.ESRoomID = int.Parse(json["roomno"].ToString());             if (!string.IsNullOrEmpty(json["unitno"].ToString()))             {                 string str = json["unitno"].ToString();                 string str1 = str.Substring(0, 2).TrimStart('0');                 string str2 = str.Substring(2, 2).TrimStart('0');                 eSVideoInfo.RoomName = str1 + Language.StringByID(Shared.R.MyInternationalizationString.dong) + str2 + Language.StringByID(Shared.R.MyInternationalizationString.unit);             }             Shared.Phone.VideoPhone.ESVideo.ShowESvideoVideoIntercom(eSVideoInfo);
        }
    }
}
@@ -280,31 +294,52 @@
{
    public static class QRCode
    {
        static ZXing.Mobile.MobileBarcodeScanner scanner;
        public static void ScanQRcode(Action<string> action)
        {
            ((BaseActivity)Shared.Application.Activity).SetCamera(async (obj) => {
                if (obj)
                {
                    if (scanner == null)
                    {
                        MobileBarcodeScanner.Initialize(Shared.Application.Activity.Application);
                        scanner = new ZXing.Mobile.MobileBarcodeScanner();
                    }
                    var result = await scanner.Scan();
                    if (result != null)
                        action?.Invoke(result.Text);
                    else
                        action?.Invoke(null);
                }
                else
                {
                    action?.Invoke(null);
                }
            });
        static ZXing.Mobile.MobileBarcodeScanner scanner;
        public static void ScanQRcode(Action<string> action, string cancel = "取消", string flashText = "闪光灯", string titleText = "二维码扫描")
        {
            ((BaseActivity)Shared.Application.Activity).SetCamera(async (obj) =>
            {
                if (obj)
                {
                    if (scanner == null)
                    {
                        MobileBarcodeScanner.Initialize(Shared.Application.Activity.Application);
                        var mZXingCustomScanView = new GateWay.Droid.ZXingCustomScanView(Shared.Application.Activity.Application);
                        mZXingCustomScanView.cancelTextView.Text = cancel;
                        mZXingCustomScanView.flashTextView.Text = flashText;
                        mZXingCustomScanView.titleTextView.Text = titleText;
                        var bOn = false;
                        scanner = new ZXing.Mobile.MobileBarcodeScanner()
                        {
                            UseCustomOverlay = true,
                            CustomOverlay = mZXingCustomScanView
                        };
                        mZXingCustomScanView.OnCancel += () => {
                            scanner?.Cancel();
                        };
                        mZXingCustomScanView.OnTorch += () =>
                        {
                            bOn = !bOn;
                            scanner?.Torch(bOn);
                        };
                    }
                    var result = await scanner.Scan();
                    if (result != null)
                        action?.Invoke(result.Text);
                    else
                        action?.Invoke(null);
                }
                else
                {
                    action?.Invoke(null);
                }
            });
        }
        public static byte[] BytesFromText(string text, int width = 300, int height = 300)