wxr
2022-01-19 121c045cf55c647420cb372f717e528c053295ef
门锁功能修改
9个文件已修改
341 ■■■■■ 已修改文件
HDL-ON_Android/Properties/AndroidManifest.xml 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/DriverLayer/A_Protocol_Common.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/DriverLayer/Control.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Mqtt/MqttClient.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/HttpUtil.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/Function/Function.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI1-Login/LoginPage.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/1-HomePage/HomePage.cs 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/DoorLock/DoorLockPage.cs 156 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Properties/AndroidManifest.xml
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202201141" android:versionName="1.5.2" package="com.hdl.onpro"
    xmlns:tools="http://schemas.android.com/tools">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202201141" android:versionName="1.5.2" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools">
    <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="30" />
    <!--友盟-->
    <!--<uses-sdk android:minSdkVersion="8"></uses-sdk>-->
@@ -8,7 +7,6 @@
    <!--<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>-->
    <!--<uses-permission android:name="android.permission.READ_PHONE_STATE"/>-->
    <!--<uses-permission android:name="android.permission.INTERNET"/>-->
    <!-- 乐橙可视对讲需要的权限 -->
    <!--<uses-permission android:name="android.permission.INTERNET" />-->
    <!--网络访问-->
@@ -89,12 +87,8 @@
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <!-- 极光推送结束 -->
    <application android:allowBackup="true" android:debuggable="true" android:icon="@drawable/Icon" android:networkSecurityConfig="@xml/network_security_config" android:largeHeap="true" android:label="On Pro">
        <!--/扫描二维码activity-->
        <!--<activity
            android:name="com.journeyapps.barcodescanner.CaptureActivity"
@@ -201,5 +195,4 @@
        <!-- 设置高德地图key -->
        <meta-data android:name="com.amap.api.v2.apikey" android:value="9901dd06e30b229efdd4c5bf5e076224" />
    </application>
</manifest>
HDL_ON/DAL/DriverLayer/A_Protocol_Common.cs
@@ -196,5 +196,15 @@
                return $"/user/{Control.Ins.GatewayId}/custom/security/list/get";
            }
        }
        #region 门锁
        public string OneKeyUnlock
        {
            get
            {
                return $"/base/{Control.Ins.GatewayId}/thing/service/doorRemoteOpen/down";
            }
        }
        #endregion
    }
}
HDL_ON/DAL/DriverLayer/Control.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Text;
using HDL_ON.DAL.Server;
using HDL_ON.Entity;
using HDL_ON.UI;
using Shared;
@@ -753,7 +754,7 @@
            //2.Body字符串转为byte数组
            byte[] bodyBytes = Encoding.UTF8.GetBytes(bodyDataString);
            //判断是否需加密Body数据
            if (isEncryption && IsLocalEncryptAndGetAesKey)
            //if (isEncryption && IsLocalEncryptAndGetAesKey)
            {
                bodyBytes = Securitys.EncryptionService.AesEncryptPayload(bodyBytes, DB_ResidenceData.Instance.CurrentRegion.localSecret);
                //bodyDataString = Encoding.UTF8.GetString(bodyBytes);
@@ -979,9 +980,11 @@
                        var localFunction = allLocalFuntion.Find((obj) => obj.sid == updateTemp.sid);
                        if (localFunction == null)
                        {
                            Console.WriteLine("找不到音乐播放器添=======" + revString);
                            MainPage.Log("找不到音乐播放器添=======" + revString);
                            continue;
                        }
                        MainPage.Log(localFunction.name);
                        if (Ins.GatewayOnline_Local && isCloudData)//本地链接,除了涂鸦设备数据之外的云端数据不处理
                        {
                            if (!SPK.Get3tySpk(SPK.BrandType.All3tyBrand).Contains(localFunction.spk) && !SPK.MusicSpkList().Contains( localFunction.spk))
@@ -1006,7 +1009,7 @@
                        {
                            localFunction.time_stamp = temp.time_stamp;
                            localFunction.SetAttrState(attr.key, attr.value);
                            Console.WriteLine("音乐播放器添加缓存数据=======" + revString);
                            //Console.WriteLine("音乐播放器添加缓存数据=======" + revString);
                        }
@@ -1211,5 +1214,35 @@
            }
        }
        #region 门锁
        /// <summary>
        /// //一键(远程)开锁
        /// </summary>
        public void OneKeyUnlocking(Function doorlock,string extStr)
        {
            if (Ins.GatewayOnline_Local)
            {
                Dictionary<string, string> dic = new Dictionary<string, string>();
                var functionControlDataObj = doorlock.GetGatewayAlinkDoorlockData(UserInfo.Current.ID,extStr);
                var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(functionControlDataObj);
                var sendBytes = Ins.ConvertSendBodyData($"/base/{Control.Ins.GatewayId}/thing/service/doorRemoteOpen/down", functionControlDataJson);
                new Control_Udp().SendLocalHdlLinkData(sendBytes, functionControlDataObj.id, 0);
            }
            else
            {
                Dictionary<string, object> d = new Dictionary<string, object>();
                d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
                d.Add("deviceId", doorlock.deviceId);
                var requestJson = HttpUtil.GetSignRequestJson(d);
                HttpUtil.RequestHttpsPost("/home-wisdom/app/device/door/remoteOpen", requestJson);
            }
        }
        //密码冻结
        //密码验证
        #endregion
    }
}
HDL_ON/DAL/Mqtt/MqttClient.cs
@@ -753,6 +753,9 @@
        /// </summary>
        static void ReceiveNotifySqueezeAsync(string mMes)
        {
#if DEBUG
            return;
#endif
            if (mMes == PushSignStr) return;//是自己的登录推送不处理//或者当前不是远程链接状态
            //测试账号,不挤下线
            switch (UserInfo.Current.userMobileInfo)
@@ -809,7 +812,9 @@
        static void SendPushSignOut()
        {
            byte[] message = Encoding.UTF8.GetBytes(PushSignStr);
#if DEBUG
            MqttRemoteSend(message, 4);
#endif
        }
        /// <summary>
HDL_ON/DAL/Server/HttpUtil.cs
@@ -17,8 +17,8 @@
        /// 固定域名,正式环境
        /// 公共域名就近解析
        /// </summary>
        //public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
        public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm
        public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
        //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm
        /// <summary>
        /// RegionMark
        /// </summary>
HDL_ON/Entity/Function/Function.cs
@@ -701,6 +701,24 @@
            sendDataObj.objects.Add(acd);
            return sendDataObj;
        }
        public AlinkDoorlockObj GetGatewayAlinkDoorlockData(string userId,string extStr)
        {
            var sendDataObj = new AlinkDoorlockObj();
            sendDataObj.id = Control.Ins.msg_id.ToString();
            sendDataObj.time_stamp = Utlis.GetTimestamp();
            var acd = new AlinkDoorlockStatus();
            acd.sid = sid;
            acd.user_id = userId;
            acd.ext_str = extStr;
#if DEBUG
            acd.user_id = "013";
            acd.ext_str = "999999";
#endif
            sendDataObj.objects.Add(acd);
            return sendDataObj;
        }
        /// <summary>
        /// 获取Api控制数据
        /// </summary>
@@ -755,6 +773,24 @@
        public string id = "";
    }
    /// <summary>
    /// 门锁通讯数据
    /// </summary>
    public class AlinkDoorlockObj
    {
        public List<AlinkDoorlockStatus> objects = new List<AlinkDoorlockStatus>();
        public string time_stamp = "";
        public string id = "";
    }
    public class AlinkDoorlockStatus
    {
        public string sid;
        public string user_id;
        public string ext_str;
    }
    /// <summary>
    /// 本地状态读取
    /// A协议状态读取格式对象
    /// </summary>
HDL_ON/UI/UI1-Login/LoginPage.cs
@@ -212,11 +212,10 @@
                    //etAccount.Text = "18022428438";//wjc
                    //etAccount.Text = "13602944661";//kx
                    //etAccount.Text = "13226233133";//豆豆
                    //etAccount.Text = "18316672920";
                    etAccount.Text = "18316672920";
                    //etAccount.Text = "18316120654";//tujie
                    //etAccount.Text = "15626203746";
                    //etAccount.Text = "13450425807";//黄竹溪 knx项目
                    etAccount.Text = "18059593333";
                    //etAccount.Text = "18140004933";
                }
                else
                {
@@ -235,7 +234,7 @@
                    //etAccount.Text = "18598273624";
                    etAccount.Text = "tf@smarttech.com.ua";
                    //etAccount.Text = "18814122445";//董泽斌 天河办公室
                    //etAccount.Text = "18824864143";//"464027401@qq.com"; //"2791308028@qq.com";//13697499568
                    etAccount.Text = "18824864143";//"464027401@qq.com"; //"2791308028@qq.com";//13697499568
                    etAccount.Text = "18402017839";//wjc
                    //etAccount.Text = "13430286286";//cwc
                    //etAccount.Text = "13709260805";
@@ -243,19 +242,20 @@
                    //etAccount.Text = "13375012441";
                    //etAccount.Text = "info@smartlife-ks.com";
                    //etAccount.Text = "551775569@qq.com";//wcf
                    etAccount.Text = "15626203746";
                }
                b = !b;
                etPassword.Text = "123456";
                if(etAccount.Text == "tf@smarttech.com.ua")
                if(etAccount.Text == "18140004933")
                {
                    etPassword.Text = "Smart2021";
                    etPassword.Text = "w889900";
                }
                //etPassword.Text = "Hdl85521566";
                btnLogin.IsSelected = true;
            };
#endif
#region 登录方式选择
            #region 登录方式选择
            btnPhoneLogin = new Button()
            {
                X = Application.GetRealWidth(28),
HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -553,40 +553,40 @@
#if DEBUG
            FunctionList.List.Functions.Add(new Function
            {
                name = "门锁",
                spk = SPK.DoorLock,
                sid = "12345",
                attributes = new List<FunctionAttributes> {
                    new FunctionAttributes(){ key = "door_status",curValue= "open",state = "open" },
                    new FunctionAttributes(){ key = "normal_open",curValue= "true",state = "true" },
                    new FunctionAttributes(){ key = "normal_open_countdown",curValue= "10",state = "10" },
                    new FunctionAttributes(){ key = "local_id",curValue= "10",state = "10" },
                    new FunctionAttributes(){ key = "door_volume",curValue= "10",state = "10" },
                    new FunctionAttributes(){ key = "door_volume_step",curValue= "up",state = "up" },
                    new FunctionAttributes(){ key = "battery_value",curValue= "100",state = "100" },
                    new FunctionAttributes(){ key = "battery_percentage",curValue= "100",state = "100" },
                    new FunctionAttributes(){ key = "battery_state",curValue= "high",state = "high" },
                }
            });
            FunctionList.List.Functions.Add(new Function
            {
                name = "门锁1",
                spk = SPK.DoorLock,
                sid = "123",
                attributes = new List<FunctionAttributes> {
                    new FunctionAttributes(){ key = "door_status",curValue= "open",state = "open" },
                    new FunctionAttributes(){ key = "normal_open",curValue= "true",state = "true" },
                    new FunctionAttributes(){ key = "normal_open_countdown",curValue= "10",state = "10" },
                    new FunctionAttributes(){ key = "local_id",curValue= "10",state = "10" },
                    new FunctionAttributes(){ key = "door_volume",curValue= "10",state = "10" },
                    new FunctionAttributes(){ key = "door_volume_step",curValue= "up",state = "up" },
                    new FunctionAttributes(){ key = "battery_value",curValue= "100",state = "100" },
                    new FunctionAttributes(){ key = "battery_percentage",curValue= "100",state = "100" },
                    new FunctionAttributes(){ key = "battery_state",curValue= "high",state = "high" },
                }
            });
            //FunctionList.List.Functions.Add(new Function
            //{
            //    name = "门锁",
            //    spk = SPK.DoorLock,
            //    sid = "12345",
            //    attributes = new List<FunctionAttributes> {
            //        new FunctionAttributes(){ key = "door_status",curValue= "open",state = "open" },
            //        new FunctionAttributes(){ key = "normal_open",curValue= "true",state = "true" },
            //        new FunctionAttributes(){ key = "normal_open_countdown",curValue= "10",state = "10" },
            //        new FunctionAttributes(){ key = "local_id",curValue= "10",state = "10" },
            //        new FunctionAttributes(){ key = "door_volume",curValue= "10",state = "10" },
            //        new FunctionAttributes(){ key = "door_volume_step",curValue= "up",state = "up" },
            //        new FunctionAttributes(){ key = "battery_value",curValue= "100",state = "100" },
            //        new FunctionAttributes(){ key = "battery_percentage",curValue= "100",state = "100" },
            //        new FunctionAttributes(){ key = "battery_state",curValue= "high",state = "high" },
            //    }
            //});
            //FunctionList.List.Functions.Add(new Function
            //{
            //    name = "门锁1",
            //    spk = SPK.DoorLock,
            //    sid = "123",
            //    attributes = new List<FunctionAttributes> {
            //        new FunctionAttributes(){ key = "door_status",curValue= "open",state = "open" },
            //        new FunctionAttributes(){ key = "normal_open",curValue= "true",state = "true" },
            //        new FunctionAttributes(){ key = "normal_open_countdown",curValue= "10",state = "10" },
            //        new FunctionAttributes(){ key = "local_id",curValue= "10",state = "10" },
            //        new FunctionAttributes(){ key = "door_volume",curValue= "10",state = "10" },
            //        new FunctionAttributes(){ key = "door_volume_step",curValue= "up",state = "up" },
            //        new FunctionAttributes(){ key = "battery_value",curValue= "100",state = "100" },
            //        new FunctionAttributes(){ key = "battery_percentage",curValue= "100",state = "100" },
            //        new FunctionAttributes(){ key = "battery_state",curValue= "high",state = "high" },
            //    }
            //});
            //FunctionList.List.Functions.Add(new Function()
            //{
HDL_ON/UI/UI2/FuntionControlView/DoorLock/DoorLockPage.cs
@@ -5,6 +5,7 @@
using System.Text;
using HDL_ON.UI.CSS;
using HDL_ON.Entity;
using HDL_ON.DriverLayer;
namespace HDL_ON.UI
{
@@ -96,24 +97,26 @@
            this.dicText["已连接"] = Language.StringByID(StringId.Connected);
            this.dicText["未连接"] = Language.StringByID(StringId.UnConnected);
            //左右翻页的事件
            base.PageChangeEvent += (index) =>
            {
                if (index == 1)
                {
                    //初始化门锁历史记录以及控件
                    this.InitDoorHistoryLogAndControl();
                }
            };
            ////左右翻页的事件
            //base.PageChangeEvent += (index) =>
            //{
            //    if (index == 1)
            //    {
            //        //初始化门锁历史记录以及控件
            //        this.InitDoorHistoryLogAndControl();
            //    }
            //};
            //刷新当前设备的状态缓存
            this.RefreshNowDeviceStatuMemory(this.device);
            //初始化第一个索引页的内容
            this.InitFrameWhiteContent1();
            //初始化第二个索引页(历史记录)
            this.InitFrameWhiteContent2();
            ////初始化第二个索引页(历史记录)
            //this.InitFrameWhiteContent2();
            //刷新界面状态
            this.RefreshFormStatu();
            //读取设备状态
            Control.Ins.SendReadCommand(device);
        }
        /// <summary>
@@ -182,42 +185,42 @@
            frameTempPsw.Visible = false;
            FrameWhiteCentet1.AddChidren(frameTempPsw);
            //声音
            this.btnVoice = new IconViewControl(24);
            btnVoice.UnSelectedImagePath = "FunctionIcon/DoorLock/Voice.png";
            btnVoice.X = Application.GetRealWidth(23);
            btnVoice.Y = Application.GetRealHeight(410);
            FrameWhiteCentet1.AddChidren(btnVoice);
            ////声音
            //this.btnVoice = new IconViewControl(24);
            //btnVoice.UnSelectedImagePath = "FunctionIcon/DoorLock/Voice.png";
            //btnVoice.X = Application.GetRealWidth(23);
            //btnVoice.Y = Application.GetRealHeight(410);
            //FrameWhiteCentet1.AddChidren(btnVoice);
            //声音的滑动条
            this.seekBarVoiceControl = new SeekBarImageControl(215);
            seekBarVoiceControl.Gravity = Gravity.CenterHorizontal;
            FrameWhiteCentet1.AddChidren(seekBarVoiceControl);
            seekBarVoiceControl.Y = btnVoice.Y - (seekBarVoiceControl.Height - btnVoice.Height) / 2;
            //绑定PageLayout控件
            seekBarVoiceControl.BindPageLayout();
            ////声音的滑动条
            //this.seekBarVoiceControl = new SeekBarImageControl(215);
            //seekBarVoiceControl.Gravity = Gravity.CenterHorizontal;
            //FrameWhiteCentet1.AddChidren(seekBarVoiceControl);
            //seekBarVoiceControl.Y = btnVoice.Y - (seekBarVoiceControl.Height - btnVoice.Height) / 2;
            ////绑定PageLayout控件
            //seekBarVoiceControl.BindPageLayout();
            //声音百分比
            this.btnVoicePersent = new NormalViewControl(Application.GetRealWidth(50), btnVoice.Height, false);
            btnVoicePersent.X = seekBarVoiceControl.Right + Application.GetRealWidth(8) - seekBarVoiceControl.SeekBarPadding;
            btnVoicePersent.Y = btnVoice.Y;
            btnVoicePersent.TextColor = CSS_Color.PromptingColor1;
            btnVoicePersent.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
            btnVoicePersent.Text = "100%";
            FrameWhiteCentet1.AddChidren(btnVoicePersent);
            ////声音百分比
            //this.btnVoicePersent = new NormalViewControl(Application.GetRealWidth(50), btnVoice.Height, false);
            //btnVoicePersent.X = seekBarVoiceControl.Right + Application.GetRealWidth(8) - seekBarVoiceControl.SeekBarPadding;
            //btnVoicePersent.Y = btnVoice.Y;
            //btnVoicePersent.TextColor = CSS_Color.PromptingColor1;
            //btnVoicePersent.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
            //btnVoicePersent.Text = "100%";
            //FrameWhiteCentet1.AddChidren(btnVoicePersent);
            seekBarVoiceControl.ProgressChangedEvent += (div, value) =>
            {
                btnVoicePersent.Text = value + "%";
                if (div == 1)
                {
                }
            };
            //seekBarVoiceControl.ProgressChangedEvent += (div, value) =>
            //{
            //    btnVoicePersent.Text = value + "%";
            //    if (div == 1)
            //    {
            //    }
            //};
            //初始化开锁菜单(一键开锁,临时密码开锁)
            this.InitUnLockMenuControl();
            //初始化底部菜单图标
            this.InitBottomMenuIconControl();
            //this.InitBottomMenuIconControl();
        }
        /// <summary>
@@ -226,7 +229,7 @@
        private void InitUnLockMenuControl()
        {
            //如果是成员,则只有一键开锁
            if (DB_ResidenceData.Instance.CurrentRegion.isOtherShare == true)
            if (true)// DB_ResidenceData.Instance.CurrentRegion.isOtherShare == true)
            {
                //一键开锁
                var btnOneKey = new NormalViewControl(100, 25, true);
@@ -908,6 +911,7 @@
                HdlMessageLogic.Current.ShowMassage(ShowMsgType.TipRemind, Language.StringByID(StringId.DeviceNotOnline), null, null, null, 2);
                return;
            }
            Control.Ins.OneKeyUnlocking(this.device, this.device.GetAttrState("key"));
            //第一次使用,请先绑定门锁密码
            //HdlMessageLogic.Current.ShowMassage(ShowMsgType.Confirm, Language.StringByID(StringId.PleaseBindTheDoorPswFirst), () =>
            //{
@@ -921,42 +925,40 @@
            //    });
            //});
            if (UserInfo.Current.appUnlockPage.Contains("3") == true)
            {
                //调起安全认证
                HdlCheckLogic.Current.CheckUnlockSecurity(true, (div) =>
                {
                    //锁已打开
                    if (div == 1)
                    {
                        HdlMessageLogic.Current.ShowMassage(ShowMsgType.TipSuccess, Language.StringByID(StringId.LockIsOpened), null, null, null, 2);
                    }
                    else
                    {
                        //为了安全,请跳转至个人中心{0}设置个人密码,并应用于门锁开锁
                        HdlMessageLogic.Current.ShowMassage(ShowMsgType.Confirm, Language.StringByID(StringId.JumpToPersonalCentetToSetPasswordMsg), () =>
                        {
                            var page = new AppUnlockSettingsPage();
                            MainPage.BasePageView.AddChidren(page);
                            page.LoadPage();
                            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                        }, Language.StringByID(StringId.Jump));
                    }
                });
            }
            else
            {
                //为了安全,请跳转至个人中心{0}设置个人密码,并应用于门锁开锁
                HdlMessageLogic.Current.ShowMassage(ShowMsgType.Confirm, Language.StringByID(StringId.JumpToPersonalCentetToSetPasswordMsg), () =>
                {
                    var page = new AppUnlockSettingsPage();
                    MainPage.BasePageView.AddChidren(page);
                    page.LoadPage();
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                }, Language.StringByID(StringId.Jump));
            }
            //if (UserInfo.Current.appUnlockPage.Contains("3") == true)
            //{
            //    //调起安全认证
            //    HdlCheckLogic.Current.CheckUnlockSecurity(true, (div) =>
            //    {
            //        //锁已打开
            //        if (div == 1)
            //        {
            //            HdlMessageLogic.Current.ShowMassage(ShowMsgType.TipSuccess, Language.StringByID(StringId.LockIsOpened), null, null, null, 2);
            //        }
            //        else
            //        {
            //            //为了安全,请跳转至个人中心{0}设置个人密码,并应用于门锁开锁
            //            HdlMessageLogic.Current.ShowMassage(ShowMsgType.Confirm, Language.StringByID(StringId.JumpToPersonalCentetToSetPasswordMsg), () =>
            //            {
            //                var page = new AppUnlockSettingsPage();
            //                MainPage.BasePageView.AddChidren(page);
            //                page.LoadPage();
            //                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            //            }, Language.StringByID(StringId.Jump));
            //        }
            //    });
            //}
            //else
            //{
            //    //为了安全,请跳转至个人中心{0}设置个人密码,并应用于门锁开锁
            //    HdlMessageLogic.Current.ShowMassage(ShowMsgType.Confirm, Language.StringByID(StringId.JumpToPersonalCentetToSetPasswordMsg), () =>
            //    {
            //        var page = new AppUnlockSettingsPage();
            //        MainPage.BasePageView.AddChidren(page);
            //        page.LoadPage();
            //        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            //    }, Language.StringByID(StringId.Jump));
            //}
        }
        #endregion