wjc
2023-03-20 39c795a5de987ad14e40ba762320b92d77130726
2023年03月20日16:59:29

集成原生库,代码开始跑了。
2个文件已添加
14个文件已修改
13751 ■■■■ 已修改文件
DLL/EZvizMonitor/ys.dll 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/securitydoorezviz.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/HDL-ON_Android.csproj 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/Resource.designer.cs 13390 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/drawable/btn_disagree.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/drawable/dialog_background2.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/HDL-ON_iOS.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/securitydoorezviz.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL_APP_Project.sln 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/HttpUtil.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPage.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs 202 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockListPage.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs 69 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/EZvizMonitor/ys.dll
Binary files differ
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/securitydoorezviz.png
HDL-ON_Android/HDL-ON_Android.csproj
@@ -163,15 +163,6 @@
    <Reference Include="videophone">
      <HintPath>..\DLL\FL\Android\videophone.dll</HintPath>
    </Reference>
    <Reference Include="Square.OkHttp3">
      <HintPath>..\DLL\EZvizMonitor\Square.OkHttp3.dll</HintPath>
    </Reference>
    <Reference Include="Square.OkIO">
      <HintPath>..\DLL\EZvizMonitor\Square.OkIO.dll</HintPath>
    </Reference>
    <Reference Include="ys">
      <HintPath>..\DLL\EZvizMonitor\ys.dll</HintPath>
    </Reference>
    <Reference Include="UMSdkDroid">
      <HintPath>..\DLL\UMeng\UMSdkDroid.dll</HintPath>
    </Reference>
@@ -429,6 +420,7 @@
    <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\History.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\DoorLock\Cell.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\FunctionBg\VideoDoorLockFunctionBg.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\securitydoorezviz.png" />
  </ItemGroup>
  <ItemGroup>
    <AndroidResource Include="Resources\values\colors.xml" />
@@ -777,14 +769,17 @@
    <PackageReference Include="Xamarin.Android.Support.Constraint.Layout.Solver">
      <Version>1.1.0</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.AppCenter">
      <Version>4.2.0</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.AppCenter.Crashes">
      <Version>4.2.0</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.AppCenter.Analytics">
      <Version>4.2.0</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.AppCenter">
      <Version>4.2.0</Version>
    </PackageReference>
    <PackageReference Include="Square.OkHttp3">
      <Version>3.14.4</Version>
    </PackageReference>
  </ItemGroup>
  <ItemGroup>
@@ -1640,6 +1635,12 @@
    <Folder Include="Assets\Phone\FunctionIcon\Inverter\" />
    <Folder Include="Assets\Phone\FunctionIcon\Electrical\MechanicalArm\" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\..\ys\ys.csproj">
      <Project>{DF065E3F-C3A1-4908-9582-000974B7C290}</Project>
      <Name>ys</Name>
    </ProjectReference>
  </ItemGroup>
  <Import Project="..\HDL_ON\HDL_ON.projitems" Label="Shared" Condition="Exists('..\HDL_ON\HDL_ON.projitems')" />
  <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
HDL-ON_Android/Resources/Resource.designer.cs
Diff too large
HDL-ON_Android/Resources/drawable/btn_disagree.xml
@@ -8,7 +8,7 @@
    <!-- 填充颜色 -->
    <solid
        android:color="@color/white"        />
        android:color="#FFFFFF"/>
    <!--    边框颜色-->
    <stroke
HDL-ON_Android/Resources/drawable/dialog_background2.xml
@@ -8,6 +8,6 @@
    <!-- 填充颜色 -->
    <solid
        android:color="@color/white"        />
        android:color="#FFFFFF"/>
</shape>
HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -1572,6 +1572,7 @@
      <BundleResource Include="Resources\Phone\FunctionIcon\DoorLock\VideoDoorLockOpen.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\DoorLock\Cell.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\FunctionBg\VideoDoorLockFunctionBg.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\securitydoorezviz.png" />
    </ItemGroup>
    <ItemGroup>
      <ITunesArtwork Include="iTunesArtwork" />
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/securitydoorezviz.png
HDL_APP_Project.sln
@@ -18,6 +18,8 @@
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UMSdk", "UMSdk\UMSdk.csproj", "{5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ys", "..\ys\ys.csproj", "{DF065E3F-C3A1-4908-9582-000974B7C290}"
EndProject
Global
    GlobalSection(SharedMSBuildProjectFiles) = preSolution
        HDL_ON\HDL_ON.projitems*{09712674-2a38-407b-b1e2-560b2c352f9a}*SharedItemsImports = 4
@@ -119,6 +121,18 @@
        {5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}.Release|iPhone.Build.0 = Release|Any CPU
        {5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
        {5CD1B2DE-1ABD-4B46-8C97-CCB6EA90346A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
        {DF065E3F-C3A1-4908-9582-000974B7C290}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {DF065E3F-C3A1-4908-9582-000974B7C290}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {DF065E3F-C3A1-4908-9582-000974B7C290}.Debug|iPhone.ActiveCfg = Debug|Any CPU
        {DF065E3F-C3A1-4908-9582-000974B7C290}.Debug|iPhone.Build.0 = Debug|Any CPU
        {DF065E3F-C3A1-4908-9582-000974B7C290}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
        {DF065E3F-C3A1-4908-9582-000974B7C290}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
        {DF065E3F-C3A1-4908-9582-000974B7C290}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {DF065E3F-C3A1-4908-9582-000974B7C290}.Release|Any CPU.Build.0 = Release|Any CPU
        {DF065E3F-C3A1-4908-9582-000974B7C290}.Release|iPhone.ActiveCfg = Release|Any CPU
        {DF065E3F-C3A1-4908-9582-000974B7C290}.Release|iPhone.Build.0 = Release|Any CPU
        {DF065E3F-C3A1-4908-9582-000974B7C290}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
        {DF065E3F-C3A1-4908-9582-000974B7C290}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
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/UI/UI2/2-Classification/ClassificationPage.cs
@@ -5,6 +5,7 @@
using HDL_ON.Entity;
using HDL_ON.UI;
using HDL_ON.UI.CSS;
using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Shared;
@@ -605,21 +606,35 @@
            };
        }
        /// <summary>
        /// 加载功能列表界面
        /// </summary>
        void LoadFunctionPageView()
        void LoadFunctionPageView ()
        {
            #region
            functionsPageView = new VerticalScrolViewLayout()
            {
                BackgroundColor = CSS_Color.BackgroundColor,
                Height = Application.GetRealHeight(667 - 64 - 49 + 20),
            };
            contentPageView.AddChidren(functionsPageView);
            this.RefreshFunctionView();
             FrameLayout functionContentView;
        }
        FrameLayout functionContentView;
        /// <summary>
        /// 显示功能列表界面
        /// </summary>
        void RefreshFunctionView()
        {
            #region
            //functionsPageView = new VerticalScrolViewLayout()
            //{
            //    BackgroundColor = CSS_Color.BackgroundColor,
            //    Height = Application.GetRealHeight(667 - 64 - 49 + 20),
            //};
            //contentPageView.AddChidren(functionsPageView);
            //FrameLayout functionContentView;
            functionContentView = new FrameLayout()
            {
                Y = Application.GetRealHeight(16),
@@ -806,7 +821,7 @@
                    TextAlignment = TextAlignment.CenterLeft,
                    IsMoreLines = true,
                };
                functionView.AddChidren(btnName);
                functionView.AddChidren(btnName);
                if (item != ShowFunction.Environmental && item != ShowFunction.Sensor && item != ShowFunction.VideoIntercom
                    && item != ShowFunction.SecurityMonitoring && item != ShowFunction.FreshAir && item != ShowFunction.Music
@@ -1156,8 +1171,11 @@
                        btnName.TextID = StringId.yingshishipinmensuo;
                        btnFunctionViewBg.MouseUpEventHandler = (sender, e) =>
                        {
                            var list = HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.GetVideoDoorLockList();
                            var form = new UI2.FuntionControlView.VideoDoorLock.VideoDoorLockListPage(null);
                            var list =CommonMethod.Current.GetVideoDoorLockList();
                            var form = new VideoDoorLockListPage(()=> {
                                functionContentView?.RemoveFromParent();
                                this.RefreshFunctionView();
                            });
                            form.AddForm(list);
                        };
                        break;
@@ -1468,6 +1486,8 @@
            #endregion
        }
        void refreshInverterInfo(Button btnPowerTenerationToday, Button btnWorkingMode, Button btnCurrentPowerGeneration)
        {
            new System.Threading.Thread(() =>
HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
@@ -226,6 +226,7 @@
                            dialog.Close();
                            LoadEvent_ChangeCurHome(home);
                            LoadContentView();
                            HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.ChangeCurrHome(home);
                        };
                    }
                    dialog.Show();
HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPage.cs
@@ -54,15 +54,14 @@
        /// <summary>
        /// 解绑设备回调
        /// </summary>
        Action actionDel;
        public Action actionDel;
        #endregion
        public FunctionBaseInfoSetPage(Function func, Action action,Action actionDel=null)
        public FunctionBaseInfoSetPage(Function func, Action action)
        {
            bodyView = this;
            function = func;
            actionRefresh = action;
            this.actionDel = actionDel;
        }
        public override void RemoveFromParent()
HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/CommonMethod.cs
@@ -2,6 +2,7 @@
using HDL_ON.Entity;
using System.Collections.Generic;
using Shared;
using Com.Videogo.Hdl;
namespace HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock
{
@@ -11,8 +12,15 @@
    public class CommonMethod
    {
        private Loading loading;
        private static CommonMethod commonMethod = null;
        /// <summary>
        /// 记录当前界面索引值
        /// </summary>
        private int pageLayoutIndexValue;
        private static CommonMethod commonMethod = null;
        /// <summary>
        /// 获取对象
        /// </summary>
        public static CommonMethod Current
        {
            get
@@ -30,26 +38,41 @@
        #region  --------- 跳转到Android那边的方法(萤石视频门锁) --------
        /// <summary>
        /// 添加设备到云端
        /// 读取云端的上设备列表(android源生添加设备到云端成功后)
        /// <paramref name="devSerial"/>设备序列号</param>
        /// </summary>
        public void SkipAddDeviceActivity(string devSerial)
        {
            if (string.IsNullOrEmpty(devSerial)) return;
            new System.Threading.Thread(() =>
            this.InitializationAndroidData((isBools) =>
            {
                var list = VideDoorLockSend.Current.GetVideoDoorLockDeviceList(SPK.VideoDoorLock);
                if (list.Count > 0)
                {
                    var function = list.Find((o) => o.sid == devSerial);
                    if (function != null)
                    {
                        this.SaveFunctionFile(function);
                    }
                if (!isBools) {
                    this.MainThread(()=> {
                        this.ShowTip("先获取萤石云子账号token失败。");
                    });
                }
            })
            { IsBackground = true }.Start();
            //未实现
                HDLEzvizSdk.Instance.JumpToEZScanActivity(Application.Activity);
                HDLEzvizSdk.SetAddCallback(new AndroidIHdlInterface((isBool, adnroidActionDevSerial) =>
                {
                    if (isBool)
                    {
                        var list = VideDoorLockSend.Current.GetVideoDoorLockDeviceList(SPK.VideoDoorLock);
                        if (list.Count > 0)
                        {
                            var function = list.Find((o) => o.sid == adnroidActionDevSerial);
                            if (function != null)
                            {
                                this.SaveFunctionFile(function);
                            }
                        }
                    }
                }));
            });
#if __IOS__
#else
@@ -65,33 +88,66 @@
        /// <param name="spk">设备spk(云雀上定义好的)</param>
        public void SkipRTVActivity(string deviceSerial, string deviceId, string spk)
        {
            Video.View.ShowDialog.Currnet.ClickBox(Language.StringByID(StringId.laizimenlinghujiao), (dialog) =>
            this.InitializationAndroidData((isBools) =>
            {
                dialog.Close();
            }, (dialog) =>
            {
                dialog.Close();
                if (!isBools)
                {
                    this.MainThread(() => {
                        this.ShowTip("先获取萤石云子账号token失败。");
                    });
                }
                Video.View.ShowDialog.Currnet.ClickBox(Language.StringByID(StringId.laizimenlinghujiao), (dialog) =>
                {
                    dialog.Close();
                    HDLEzvizSdk.Instance.JumpToEZRealPlayActivity(Application.Activity,deviceId,deviceSerial,spk);
                }, (dialog) =>
                {
                    dialog.Close();
                });
            });
#if __IOS__
#else
#endif
            //jumpToEZRealPlayActivity(Shared.Application.Activity,  deviceId,  deviceSerial,  spk)
        }
        /// <summary>
        /// 浏览历史记录
        /// </summary>
        public void SkipRecordActivity()
        public void SkipRecordActivity(string deviceId)
        {
            this.InitializationAndroidData((s)=> {
                HDLEzvizSdk.Instance.JumpLockHistoryActivity(Application.Activity, deviceId);
            });
            //未实现
            //this.InitializationAndroidData();
            //
        }
        /// <summary>
        /// 临时密码开门
        /// <paramref name="deviceId"/>
        /// </summary>
        public void SkipPSWActivity()
        public void SkipPSWActivity(string deviceId)
        {
            //jumpTempPasswordActivity(Application.Activity, deviceId);
            this.InitializationAndroidData((isBools) =>
            {
                if (!isBools)
                {
                    this.MainThread(() =>
                    {
                        this.ShowTip("先获取萤石云子账号token失败。");
                    });
                }
                HDLEzvizSdk.Instance.JumpTempPasswordActivity(Application.Activity, deviceId);
            });
        }
        /// <summary>
@@ -99,6 +155,8 @@
        /// </summary>
        public void InitializationAndroidData(Action<bool> action)
        {
            bool isBool = true;
            this.SunThread(() =>
            {
@@ -131,36 +189,8 @@
                                //info.de
                                //EZSDK.IOS.EZSDK.Play(info);
#else
                            //Android
                            //1.设置所需河东的token、域名地址
                            //2.设置萤石子账号的token
                            //3.打开摄像头设备列表页面
                            ((BaseActivity)Shared.Application.Activity).SetCamera(b =>
                            {
                                if (b)
                                {
                                    ((BaseActivity)Shared.Application.Activity).SetPermission(result =>
                                    {
                                        if (result)
                                        {
                                            Android.Content.Intent intent = new Android.Content.Intent();
                                            var bundle = new Android.OS.Bundle();
                                            //传递name参数为tinyphp
                                            bundle.PutString("EzChildAccessToken", ezChildAccessToken);
                                            bundle.PutString("HdlToken", UserInfo.Current.LoginTokenString);
                                            bundle.PutString("HdlrefreshToken", UserInfo.Current.RefreshToken);
                                            bundle.PutString("Url", OnAppConfig.Instance.RequestHttpsHost);
                                            bundle.PutString("EzvizAppKey", "1aa98a90489b4838b966b57018b4b04b");
                                            bundle.PutInt("Platform", 1);
                                            bundle.PutString("HomeId", DB_ResidenceData.Instance.CurrentRegion.id);
                                            intent.PutExtras(bundle);
                                            //intent.SetComponent(new Android.Content.ComponentName(Shared.Application.Activity, "com.videogo.MainActivity"));
                                            //Shared.Application.Activity.StartActivity(intent);
                                        }
                                    }, "android.permission.RECORD_AUDIO");
                            HDLEzvizSdk.Instance.Init(Application.Activity.Application, ezChildAccessToken, UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken, OnAppConfig.Instance.RequestHttpsHost, "1aa98a90489b4838b966b57018b4b04b", 1, DB_ResidenceData.Instance.CurrentRegion.id);
                                }
                            });
#endif
                        });
@@ -179,6 +209,7 @@
                }
            });
        }
        /// <summary>
        /// 更换住宅
        /// </summary>
@@ -239,27 +270,31 @@
        {
            get
            {
                if (loading == null)
                this.MainThread(() =>
                {
                    loading = new Loading();
                }
                if (MainPage.BasePageView.ChildrenCount < 1)
                {
                    return loading;
                }
                View view = MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1);
                if (view is FrameLayout)
                {
                    ((FrameLayout)view).AddChidren(loading);
                }
                else if (view is PageLayout)
                {
                    ((PageLayout)view).AddChidren(loading);
                }
                    //if (loading != null && this.pageLayoutIndexValue == MainPage.BasePageView.ChildrenCount - 1)
                    //{
                    //    //防止二重添加对象
                    //    return;
                    //}
                    if (loading == null)//|| MainPage.BasePageView.ChildrenCount < 1)
                    {
                        loading = new Loading();
                    }
                    //loading.BringToFront();
                    Application.MainPage.AddChidren(loading);
                    //View view = MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1);
                    //if (view is ViewGroup)
                    //{
                    //    pageLayoutIndexValue = MainPage.BasePageView.ChildrenCount - 1;
                    //    ((ViewGroup)view).AddChidren(loading);
                    //}
                });
                return loading;
            }
        }
        /// <summary>
        /// 获取萤石视频门锁列表
        /// </summary>
@@ -376,5 +411,34 @@
            room,//房间
            push,//推送
        }
        /// <summary>
        ///
        /// </summary>
        public class AndroidIHdlInterface : Java.Lang.Object, IHdlInterface
        {
            Action<bool,string> mAction;
            public AndroidIHdlInterface(Action<bool,string> action)
            {
                mAction = action;
            }
            /// <summary>
            ///
            /// </summary>
            /// <param name="p0">true是入网成功(源生回调返回)</param>
            /// <param name="p1">设备的序列化(源生回调返回)</param>
            public void AddCallback(bool p0, string p1)
            {
                mAction?.Invoke(p0,p1);
            }
        }
    }
}
HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockListPage.cs
@@ -179,6 +179,7 @@
            this.dicBatteryContr[i_device.sid] = btnBattery;
            frameBack.ButtonClickEvent += (sender, e) =>
            {
                var form = new VideoDoorLockPage(i_device, btnName, btnRoom, CommonMethod.Comerom.function,()=> {
                    this.CloseForm();
                    this.action?.Invoke();
@@ -186,6 +187,7 @@
                MainPage.BasePageView.AddChidren(form);
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                form.Show();
            };
            //底部再加个间距
HDL_ON/UI/UI2/FuntionControlView/VideoDoorLock/VideoDoorLockPage.cs
@@ -88,8 +88,8 @@
        /// 构造函数
        /// </summary>
        /// <param name="function">设备</param>
        /// <param name="btnDeviceName">上一级界面的设备名字控件</param>
        /// <param name="btnRoomName">上一级界面的房间名字控件</param>
        /// <param name="btnDeviceName">上一级界面的设备名字控件(注:不能传null,没有可以传new Button())</param>
        /// <param name="btnRoomName">上一级界面的房间名字控件(注:不能传null,没有可以传new Button())</param>
        public VideoDoorLockPage(Function function, Button btnDeviceName, Button btnRoomName, CommonMethod.Comerom comerom, Action action)
        {
            this.device = function;
@@ -214,11 +214,11 @@
                TextAlignment = TextAlignment.Center,
                UnSelectedImagePath = "FunctionIcon/DoorLock/Cell.png",
            };
            cellFrame.AddChidren(btnCell);
            cellFrame.AddChidren(btnCell);
            //门锁状态
            btnDoorLockIcon = new Button
             //门锁状态
             btnDoorLockIcon = new Button
            {
                X = Application.GetRealWidth(65),
                Y = Application.GetRealHeight(108),
@@ -274,36 +274,39 @@
            //返回
            this.topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
            {
                RemoveFromParent();
                this.RemoveFromParent();
            };
            //设置
            this.topView.clickSetBtn.MouseUpEventHandler += (sender, e) =>
            {
                //调用秀绕的界面
                var infoView = new UI.FunctionBaseInfoSetPage(this.device, () =>
                CommonMethod.Current.MainThread(() =>
                {
                    //调用秀绕的界面
                    var infoView = new UI.FunctionBaseInfoSetPage(this.device, () =>
                     {
                         if (this.btnDeviceName == null || this.btnRoomName == null || this.device == null)
                         {
                             return;
                         }
                         ////刷新显示
                         this.btnDeviceName.Text = this.device.name;
                         this.btnRoomName.Text = this.device.GetRoomListName();
                         this.btnCurrDeviceName.Text = this.device.name;
                         this.btnCurrDeviceRoom.Text = this.device.GetRoomListName();
                         this.CalculatedPosition();//重新计算宽度
                     });
                    infoView.actionDel += () =>
                      {
                          //解绑设备后
                          this.RemoveFromParent();
                          this.action?.Invoke();
                    if (this.btnDeviceName == null || this.btnRoomName == null)
                    {
                        return;
                    }
                    ////刷新显示
                    this.btnDeviceName.Text = this.device.name;
                    this.btnRoomName.Text = this.device.GetRoomListName();
                    this.btnCurrDeviceName.Text = this.device.name;
                    this.btnCurrDeviceRoom.Text = this.device.GetRoomListName();
                    this.CalculatedPosition();//重新计算宽度
                }, () =>
                {
                    //解绑设备后
                    this.RemoveFromParent();
                    this.action?.Invoke();
                      };
                    MainPage.BasePageView.AddChidren(infoView);
                    infoView.LoadPage();
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                });
                MainPage.BasePageView.AddChidren(infoView);
                infoView.LoadPage();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            };
            //收藏
            this.btnCollectIcon.MouseUpEventHandler += (sender, e) =>
@@ -314,15 +317,17 @@
            //实时视频
            this.rtvFL.SetClickListener((fl, btnStateImage, btnStateText) =>
            {
               CommonMethod.Current.SkipRTVActivity(this.device.sid,this.device.deviceId,this.device.spk);
                CommonMethod.Current.SkipRTVActivity(this.device.sid, this.device.deviceId, this.device.spk);
            });
            //临时密码
            this.pswFL.SetClickListener((fl, btnStateImage, btnStateText) => {
                CommonMethod.Current.SkipPSWActivity();
            this.pswFL.SetClickListener((fl, btnStateImage, btnStateText) =>
            {
                CommonMethod.Current.SkipPSWActivity(this.device.deviceId);
            });
            //历史记录
            this.recordFL.SetClickListener((fl, btnStateImage, btnStateText) => {
                CommonMethod.Current.SkipRecordActivity();
            this.recordFL.SetClickListener((fl, btnStateImage, btnStateText) =>
            {
                CommonMethod.Current.SkipRecordActivity(this.device.deviceId);
            });