wxr
2022-04-01 764185112d44c387e16f0483d8da898f8d998944
大华可视对讲功能优化,自研可视对讲Android接入
8个文件已添加
18个文件已修改
2335 ■■■■ 已修改文件
DLL/Linphone/Android/Shared.Droid.HDLLinphone.dll 补丁 | 查看 | 原始文档 | blame | 历史
DLL/Linphone/Android/Shared.Droid.HDLLinphone2022-03-31.dll 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Application.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/Public/MsgIcon/AnswerIcon.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/Public/MsgIcon/CallIcon.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/Public/MsgIcon/HangUpIcon.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/HDL-ON_Android.csproj 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/LeChengVideoActivity.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Other/JPush/JPushReceiver.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/Resource.designer.cs 917 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/HDL-ON_iOS.csproj 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/Public/MsgIcon/AnswerIcon.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/Public/MsgIcon/CallIcon.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/Public/MsgIcon/HangUpIcon.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/HDLCommon.cs 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/UserInfo.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/HttpUtil.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/NewApiRes.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs 81 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/Function/Function.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/HDL_ON.projitems 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI0-Public/AppUnlockPage.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI0-Public/PublicAssmebly.cs 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacControlPage.cs 1106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SiriIntents/Server/HttpUtil.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/Linphone/Android/Shared.Droid.HDLLinphone.dll
Binary files differ
DLL/Linphone/Android/Shared.Droid.HDLLinphone2022-03-31.dll
Binary files differ
HDL-ON_Android/Application.cs
@@ -93,6 +93,10 @@
            mCount--;
            if (mCount == 0)
            {
                //if(activity.GetType().Name.Contains("LeChengVideoActivity"))
                //{
                //    //UserInfo.Current.PushMesLogTime = DateTime.MinValue;
                //}
                Console.WriteLine("HHH OnActivityStopped: background");
                BusSocketStop();
                //进入后台
HDL-ON_Android/Assets/Phone/Public/MsgIcon/AnswerIcon.png
HDL-ON_Android/Assets/Phone/Public/MsgIcon/CallIcon.png
HDL-ON_Android/Assets/Phone/Public/MsgIcon/HangUpIcon.png
HDL-ON_Android/HDL-ON_Android.csproj
@@ -169,9 +169,6 @@
    <Reference Include="Square.OkIO">
      <HintPath>..\DLL\EZvizMonitor\Square.OkIO.dll</HintPath>
    </Reference>
    <Reference Include="Shared.Droid.HDLLinphone">
      <HintPath>..\DLL\Linphone\Android\Shared.Droid.HDLLinphone.dll</HintPath>
    </Reference>
    <Reference Include="Shared.Droid.LCVideoSDK">
      <HintPath>..\DLL\LC\Android\Shared.Droid.LCVideoSDK.dll</HintPath>
    </Reference>
@@ -183,6 +180,9 @@
    </Reference>
    <Reference Include="ScanSdk">
      <HintPath>..\DLL\Scan\ScanSdk.dll</HintPath>
    </Reference>
    <Reference Include="Shared.Droid.HDLLinphone">
      <HintPath>..\DLL\Linphone\Android\Shared.Droid.HDLLinphone.dll</HintPath>
    </Reference>
  </ItemGroup>
  <ItemGroup>
@@ -227,6 +227,9 @@
    <AndroidAsset Include="Assets\Phone\FunctionIcon\EnvironmentalScience\HistoryOpionBg3.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\EnvironmentalScience\HistoryOpionBg4.png" />
    <AndroidAsset Include="Assets\Phone\Collection\FunctionOfflineBg.png" />
    <AndroidAsset Include="Assets\Phone\Public\MsgIcon\CallIcon.png" />
    <AndroidAsset Include="Assets\Phone\Public\MsgIcon\AnswerIcon.png" />
    <AndroidAsset Include="Assets\Phone\Public\MsgIcon\HangUpIcon.png" />
  </ItemGroup>
  <ItemGroup>
    <AndroidResource Include="Resources\values\colors.xml" />
HDL-ON_Android/LeChengVideoActivity.cs
@@ -19,6 +19,7 @@
using Com.Lechange.Opensdk.Device;
using Com.Lechange.Opensdk.Listener;
using Com.Lechange.Opensdk.Media;
using HDL_ON;
using HDL_ON.DAL.Server;
using HDL_ON_Android.LeChengView.Form;
using Java.IO;
@@ -166,6 +167,7 @@
        /// </summary>
        public void StartTalk()
        {
            UserInfo.Current.inVideo = true;
            CloseAudio();// 关闭Audio
            LCOpenSDK_Talk.Listener = new AudioTalkerListener();//设置对讲监听
            //2021-10-29 对讲请求类型,call呼叫,如果不传,默认为talk
@@ -184,6 +186,8 @@
        /// </summary>
        public void StopTalk()
        {
            UserInfo.Current.inCall = DateTime.MinValue;
            UserInfo.Current.inVideo = false;
            LCOpenSDK_Talk.StopTalk();
            LCOpenSDK_Talk.Listener = null;
        }
@@ -338,6 +342,7 @@
        {
            if (v.Equals(ivBack))
            {
                StopTalk();
                this.Finish();
            }
        }
HDL-ON_Android/Other/JPush/JPushReceiver.cs
@@ -60,7 +60,7 @@
            if (jpushExpandData != null && jpushExpandData.messageType != null)
            {
                pushMes.messageType = jpushExpandData.messageType;
                pushMes.expantContent = jpushExpandData.expantContent;
                pushMes.expantContent = jpushExpandData.expantContent;//spk
                pushMes.HomeId = jpushExpandData.homeId;
                Utlis.WriteLine("PushMes messageType : " + pushMes.messageType);
            }
@@ -70,6 +70,15 @@
            Utlis.WriteLine("PushMes extras : " + pushMes.Extras);
            Utlis.WriteLine("PushMes HomeId : " + pushMes.HomeId);
            //UserInfo.Current.PushMesTitle = pushMes.Title;
            //UserInfo.Current.PushMesMessage = pushMes.Content;
            //UserInfo.Current.PushMesExtras = pushMes.Extras;
            //UserInfo.Current.pushMesMessageType = pushMes.messageType;
            //UserInfo.Current.pushMesExpantContent = pushMes.expantContent;
            //UserInfo.Current.PushMesHomeId = pushMes.HomeId;
            UserInfo.Current.pushMessageInfo = pushMes;
            UserInfo.Current.inCall = DateTime.Now;
            Shared.Application.RunOnMainThread(() =>
            {
                HDLCommon.Current.AdjustPushMessage(pushMes);
HDL-ON_Android/Resources/Resource.designer.cs
@@ -12200,1105 +12200,1108 @@
            public const int lp_screenshotStr = 2131689860;
            
            // aapt resource value: 0x7F0F0185
            public const int lp_tipStr = 2131689861;
            // aapt resource value: 0x7F0F0188
            public const int lp_unlockfailureStr = 2131689864;
            public const int lp_sipAccount_null = 2131689861;
            
            // aapt resource value: 0x7F0F0186
            public const int lp_unlockStr = 2131689862;
            // aapt resource value: 0x7F0F0187
            public const int lp_unlockSuccessfullyStr = 2131689863;
            public const int lp_tipStr = 2131689862;
            
            // aapt resource value: 0x7F0F0189
            public const int main_tab_second_tab = 2131689865;
            public const int lp_unlockfailureStr = 2131689865;
            // aapt resource value: 0x7F0F0187
            public const int lp_unlockStr = 2131689863;
            // aapt resource value: 0x7F0F0188
            public const int lp_unlockSuccessfullyStr = 2131689864;
            
            // aapt resource value: 0x7F0F018A
            public const int message_come_from_tip = 2131689866;
            public const int main_tab_second_tab = 2131689866;
            
            // aapt resource value: 0x7F0F018B
            public const int message_encrypt_inputpsw_tip_title = 2131689867;
            public const int message_come_from_tip = 2131689867;
            
            // aapt resource value: 0x7F0F018C
            public const int message_live = 2131689868;
            public const int message_encrypt_inputpsw_tip_title = 2131689868;
            
            // aapt resource value: 0x7F0F018D
            public const int message_no_data_text = 2131689869;
            public const int message_live = 2131689869;
            
            // aapt resource value: 0x7F0F018E
            public const int message_refresh_fail_network_exception = 2131689870;
            public const int message_no_data_text = 2131689870;
            
            // aapt resource value: 0x7F0F018F
            public const int message_refresh_fail_server_exception = 2131689871;
            public const int message_refresh_fail_network_exception = 2131689871;
            
            // aapt resource value: 0x7F0F0190
            public const int message_video = 2131689872;
            public const int message_refresh_fail_server_exception = 2131689872;
            
            // aapt resource value: 0x7F0F0191
            public const int modify_online_schedule = 2131689873;
            public const int message_video = 2131689873;
            
            // aapt resource value: 0x7F0F0192
            public const int month = 2131689874;
            public const int modify_online_schedule = 2131689874;
            
            // aapt resource value: 0x7F0F0193
            public const int more = 2131689875;
            public const int month = 2131689875;
            
            // aapt resource value: 0x7F0F0194
            public const int more_local_image = 2131689876;
            public const int more = 2131689876;
            
            // aapt resource value: 0x7F0F0195
            public const int more_setting = 2131689877;
            public const int more_local_image = 2131689877;
            
            // aapt resource value: 0x7F0F0196
            public const int my_collect = 2131689878;
            public const int more_setting = 2131689878;
            
            // aapt resource value: 0x7F0F0197
            public const int my_devices = 2131689879;
            public const int my_collect = 2131689879;
            
            // aapt resource value: 0x7F0F0198
            public const int network_error_retry_prompt = 2131689880;
            public const int my_devices = 2131689880;
            
            // aapt resource value: 0x7F0F0199
            public const int network_exception = 2131689881;
            public const int network_error_retry_prompt = 2131689881;
            
            // aapt resource value: 0x7F0F019A
            public const int network_video_recorder = 2131689882;
            public const int network_exception = 2131689882;
            
            // aapt resource value: 0x7F0F019B
            public const int newest_version = 2131689883;
            public const int network_video_recorder = 2131689883;
            
            // aapt resource value: 0x7F0F019C
            public const int next_button_txt = 2131689884;
            // aapt resource value: 0x7F0F01A3
            public const int not_find_any_devices = 2131689891;
            // aapt resource value: 0x7F0F01A4
            public const int not_now = 2131689892;
            // aapt resource value: 0x7F0F01A5
            public const int not_recognized_fingerprint_hint = 2131689893;
            public const int newest_version = 2131689884;
            
            // aapt resource value: 0x7F0F019D
            public const int no_event_device_prompt = 2131689885;
            public const int next_button_txt = 2131689885;
            
            // aapt resource value: 0x7F0F019E
            public const int no_leave_device_prompt = 2131689886;
            // aapt resource value: 0x7F0F01A4
            public const int not_find_any_devices = 2131689892;
            
            // aapt resource value: 0x7F0F019F
            public const int no_more_alarm_tip = 2131689887;
            // aapt resource value: 0x7F0F01A0
            public const int no_more_leave_tip = 2131689888;
            // aapt resource value: 0x7F0F01A1
            public const int no_remote_data = 2131689889;
            // aapt resource value: 0x7F0F01A2
            public const int no_result_text = 2131689890;
            // aapt resource value: 0x7F0F01A5
            public const int not_now = 2131689893;
            
            // aapt resource value: 0x7F0F01A6
            public const int offline_warn_text = 2131689894;
            public const int not_recognized_fingerprint_hint = 2131689894;
            
            // aapt resource value: 0x7F0F01A8
            public const int online_time = 2131689896;
            // aapt resource value: 0x7F0F019E
            public const int no_event_device_prompt = 2131689886;
            // aapt resource value: 0x7F0F019F
            public const int no_leave_device_prompt = 2131689887;
            // aapt resource value: 0x7F0F01A0
            public const int no_more_alarm_tip = 2131689888;
            // aapt resource value: 0x7F0F01A1
            public const int no_more_leave_tip = 2131689889;
            // aapt resource value: 0x7F0F01A2
            public const int no_remote_data = 2131689890;
            // aapt resource value: 0x7F0F01A3
            public const int no_result_text = 2131689891;
            
            // aapt resource value: 0x7F0F01A7
            public const int on_the_phone = 2131689895;
            public const int offline_warn_text = 2131689895;
            
            // aapt resource value: 0x7F0F01A9
            public const int open_camera_fail = 2131689897;
            public const int online_time = 2131689897;
            // aapt resource value: 0x7F0F01A8
            public const int on_the_phone = 2131689896;
            
            // aapt resource value: 0x7F0F01AA
            public const int open_camera_lens = 2131689898;
            public const int open_camera_fail = 2131689898;
            
            // aapt resource value: 0x7F0F01AB
            public const int open_source_localization = 2131689899;
            public const int open_camera_lens = 2131689899;
            
            // aapt resource value: 0x7F0F01AC
            public const int open_ys_service = 2131689900;
            public const int open_source_localization = 2131689900;
            
            // aapt resource value: 0x7F0F01AD
            public const int open_ys_service_fail = 2131689901;
            public const int open_ys_service = 2131689901;
            
            // aapt resource value: 0x7F0F01AE
            public const int open_ys_service_success = 2131689902;
            public const int open_ys_service_fail = 2131689902;
            
            // aapt resource value: 0x7F0F01AF
            public const int operational_fail = 2131689903;
            public const int open_ys_service_success = 2131689903;
            
            // aapt resource value: 0x7F0F01B0
            public const int option_support_web = 2131689904;
            public const int operational_fail = 2131689904;
            
            // aapt resource value: 0x7F0F01B1
            public const int password_et_hint = 2131689905;
            public const int option_support_web = 2131689905;
            
            // aapt resource value: 0x7F0F01B2
            public const int password_security_txt = 2131689906;
            public const int password_et_hint = 2131689906;
            
            // aapt resource value: 0x7F0F01B3
            public const int password_toggle_content_description = 2131689907;
            public const int password_security_txt = 2131689907;
            
            // aapt resource value: 0x7F0F01B4
            public const int path_password_eye = 2131689908;
            public const int password_toggle_content_description = 2131689908;
            
            // aapt resource value: 0x7F0F01B5
            public const int path_password_eye_mask_strike_through = 2131689909;
            public const int path_password_eye = 2131689909;
            
            // aapt resource value: 0x7F0F01B6
            public const int path_password_eye_mask_visible = 2131689910;
            public const int path_password_eye_mask_strike_through = 2131689910;
            
            // aapt resource value: 0x7F0F01B7
            public const int path_password_strike_through = 2131689911;
            public const int path_password_eye_mask_visible = 2131689911;
            
            // aapt resource value: 0x7F0F01B8
            public const int pickerview_cancel = 2131689912;
            public const int path_password_strike_through = 2131689912;
            
            // aapt resource value: 0x7F0F01B9
            public const int pickerview_day = 2131689913;
            public const int pickerview_cancel = 2131689913;
            
            // aapt resource value: 0x7F0F01BA
            public const int pickerview_hours = 2131689914;
            public const int pickerview_day = 2131689914;
            
            // aapt resource value: 0x7F0F01BB
            public const int pickerview_minutes = 2131689915;
            public const int pickerview_hours = 2131689915;
            
            // aapt resource value: 0x7F0F01BC
            public const int pickerview_month = 2131689916;
            public const int pickerview_minutes = 2131689916;
            
            // aapt resource value: 0x7F0F01BD
            public const int pickerview_seconds = 2131689917;
            public const int pickerview_month = 2131689917;
            
            // aapt resource value: 0x7F0F01BE
            public const int pickerview_submit = 2131689918;
            public const int pickerview_seconds = 2131689918;
            
            // aapt resource value: 0x7F0F01BF
            public const int pickerview_year = 2131689919;
            // aapt resource value: 0x7F0F01C1
            public const int platform_login_button_txt = 2131689921;
            public const int pickerview_submit = 2131689919;
            
            // aapt resource value: 0x7F0F01C0
            public const int plat_connected = 2131689920;
            public const int pickerview_year = 2131689920;
            
            // aapt resource value: 0x7F0F01C2
            public const int play_hour = 2131689922;
            public const int platform_login_button_txt = 2131689922;
            // aapt resource value: 0x7F0F01C1
            public const int plat_connected = 2131689921;
            
            // aapt resource value: 0x7F0F01C3
            public const int please_connect_the_power = 2131689923;
            // aapt resource value: 0x7F0F01C5
            public const int please_input_phonenumber_txt = 2131689925;
            public const int play_hour = 2131689923;
            
            // aapt resource value: 0x7F0F01C4
            public const int please_input_phone_txt = 2131689924;
            public const int please_connect_the_power = 2131689924;
            
            // aapt resource value: 0x7F0F01C6
            public const int please_input_platform_accesstoken_txt = 2131689926;
            public const int please_input_phonenumber_txt = 2131689926;
            // aapt resource value: 0x7F0F01C5
            public const int please_input_phone_txt = 2131689925;
            
            // aapt resource value: 0x7F0F01C7
            public const int please_input_sign_get_sms_txt = 2131689927;
            public const int please_input_platform_accesstoken_txt = 2131689927;
            
            // aapt resource value: 0x7F0F01C8
            public const int please_input_sign_txt = 2131689928;
            public const int please_input_sign_get_sms_txt = 2131689928;
            
            // aapt resource value: 0x7F0F01C9
            public const int please_input_userid_txt = 2131689929;
            public const int please_input_sign_txt = 2131689929;
            
            // aapt resource value: 0x7F0F01CA
            public const int please_open_wifi_network = 2131689930;
            public const int please_input_userid_txt = 2131689930;
            
            // aapt resource value: 0x7F0F01CB
            public const int please_open_wifi_network_sadp = 2131689931;
            public const int please_open_wifi_network = 2131689931;
            
            // aapt resource value: 0x7F0F01CC
            public const int please_operate_after_select_any_record = 2131689932;
            public const int please_open_wifi_network_sadp = 2131689932;
            
            // aapt resource value: 0x7F0F01CD
            public const int please_try_connect_device_hotspot_manually = 2131689933;
            public const int please_operate_after_select_any_record = 2131689933;
            
            // aapt resource value: 0x7F0F01CE
            public const int plug = 2131689934;
            public const int please_try_connect_device_hotspot_manually = 2131689934;
            
            // aapt resource value: 0x7F0F01CF
            public const int pm = 2131689935;
            public const int plug = 2131689935;
            
            // aapt resource value: 0x7F0F01D0
            public const int press_again_to_exit = 2131689936;
            public const int pm = 2131689936;
            
            // aapt resource value: 0x7F0F01D1
            public const int press_to_talk_release_to_listen = 2131689937;
            public const int press_again_to_exit = 2131689937;
            
            // aapt resource value: 0x7F0F01D2
            public const int privacy_policy_and_service_agreement = 2131689938;
            public const int press_to_talk_release_to_listen = 2131689938;
            
            // aapt resource value: 0x7F0F01D3
            public const int probe_not_support_tip = 2131689939;
            public const int privacy_policy_and_service_agreement = 2131689939;
            
            // aapt resource value: 0x7F0F01D4
            public const int promptUserToActivate = 2131689940;
            public const int probe_not_support_tip = 2131689940;
            
            // aapt resource value: 0x7F0F01D5
            public const int ptz = 2131689941;
            public const int promptUserToActivate = 2131689941;
            
            // aapt resource value: 0x7F0F01D6
            public const int ptz_control_timeout_cruise_track_failed = 2131689942;
            public const int ptz = 2131689942;
            
            // aapt resource value: 0x7F0F01D7
            public const int ptz_control_timeout_sound_lacalization_failed = 2131689943;
            public const int ptz_control_timeout_cruise_track_failed = 2131689943;
            
            // aapt resource value: 0x7F0F01D8
            public const int ptz_is_preseting = 2131689944;
            public const int ptz_control_timeout_sound_lacalization_failed = 2131689944;
            
            // aapt resource value: 0x7F0F01D9
            public const int ptz_mirroring_failed = 2131689945;
            public const int ptz_is_preseting = 2131689945;
            
            // aapt resource value: 0x7F0F01DA
            public const int ptz_operation_failed = 2131689946;
            public const int ptz_mirroring_failed = 2131689946;
            
            // aapt resource value: 0x7F0F01DB
            public const int ptz_operation_too_frequently = 2131689947;
            public const int ptz_operation_failed = 2131689947;
            
            // aapt resource value: 0x7F0F01DC
            public const int ptz_preset_current_position_failed = 2131689948;
            public const int ptz_operation_too_frequently = 2131689948;
            
            // aapt resource value: 0x7F0F01DD
            public const int ptz_preset_exceed_maxnum_failed = 2131689949;
            public const int ptz_preset_current_position_failed = 2131689949;
            
            // aapt resource value: 0x7F0F01DE
            public const int ptz_preset_invalid_position_failed = 2131689950;
            public const int ptz_preset_exceed_maxnum_failed = 2131689950;
            
            // aapt resource value: 0x7F0F01DF
            public const int ptz_preset_sound_localization_failed = 2131689951;
            public const int ptz_preset_invalid_position_failed = 2131689951;
            
            // aapt resource value: 0x7F0F01E0
            public const int ptz_privacying_failed = 2131689952;
            public const int ptz_preset_sound_localization_failed = 2131689952;
            
            // aapt resource value: 0x7F0F01E1
            public const int push_cat_body = 2131689953;
            public const int ptz_privacying_failed = 2131689953;
            
            // aapt resource value: 0x7F0F01E2
            public const int push_cat_head = 2131689954;
            public const int push_cat_body = 2131689954;
            
            // aapt resource value: 0x7F0F01E3
            public const int push_event_alarm_title = 2131689955;
            public const int push_cat_head = 2131689955;
            
            // aapt resource value: 0x7F0F01E4
            public const int push_event_from = 2131689956;
            public const int push_event_alarm_title = 2131689956;
            
            // aapt resource value: 0x7F0F01E5
            public const int push_event_get = 2131689957;
            public const int push_event_from = 2131689957;
            
            // aapt resource value: 0x7F0F01E6
            public const int push_event_get_count = 2131689958;
            public const int push_event_get = 2131689958;
            
            // aapt resource value: 0x7F0F01E7
            public const int push_out_event_alarm_title = 2131689959;
            public const int push_event_get_count = 2131689959;
            
            // aapt resource value: 0x7F0F01E8
            public const int pwd_not_contain_chinese = 2131689960;
            public const int push_out_event_alarm_title = 2131689960;
            
            // aapt resource value: 0x7F0F01E9
            public const int qrcode_card = 2131689961;
            public const int pwd_not_contain_chinese = 2131689961;
            
            // aapt resource value: 0x7F0F01EA
            public const int quality_balanced = 2131689962;
            public const int qrcode_card = 2131689962;
            
            // aapt resource value: 0x7F0F01EB
            public const int quality_flunet = 2131689963;
            public const int quality_balanced = 2131689963;
            
            // aapt resource value: 0x7F0F01EC
            public const int quality_hd = 2131689964;
            public const int quality_flunet = 2131689964;
            
            // aapt resource value: 0x7F0F01ED
            public const int quality_super_hd = 2131689965;
            // aapt resource value: 0x7F0F01F4
            public const int querying_camera_text = 2131689972;
            public const int quality_hd = 2131689965;
            
            // aapt resource value: 0x7F0F01EE
            public const int query_camera_fail = 2131689966;
            // aapt resource value: 0x7F0F01EF
            public const int query_camera_fail_network_exception = 2131689967;
            // aapt resource value: 0x7F0F01F0
            public const int query_camera_fail_network_exception_or_server_exception = 2131689968;
            // aapt resource value: 0x7F0F01F1
            public const int query_camera_fail_not_exit = 2131689969;
            // aapt resource value: 0x7F0F01F2
            public const int query_camera_fail_repeat_error = 2131689970;
            // aapt resource value: 0x7F0F01F3
            public const int query_camera_fail_server_exception = 2131689971;
            // aapt resource value: 0x7F0F01F6
            public const int readed = 2131689974;
            public const int quality_super_hd = 2131689966;
            
            // aapt resource value: 0x7F0F01F5
            public const int read_privacy_policy_and_service_agreement_tip = 2131689973;
            public const int querying_camera_text = 2131689973;
            // aapt resource value: 0x7F0F01EF
            public const int query_camera_fail = 2131689967;
            // aapt resource value: 0x7F0F01F0
            public const int query_camera_fail_network_exception = 2131689968;
            // aapt resource value: 0x7F0F01F1
            public const int query_camera_fail_network_exception_or_server_exception = 2131689969;
            // aapt resource value: 0x7F0F01F2
            public const int query_camera_fail_not_exit = 2131689970;
            // aapt resource value: 0x7F0F01F3
            public const int query_camera_fail_repeat_error = 2131689971;
            // aapt resource value: 0x7F0F01F4
            public const int query_camera_fail_server_exception = 2131689972;
            
            // aapt resource value: 0x7F0F01F7
            public const int realplay = 2131689975;
            public const int readed = 2131689975;
            // aapt resource value: 0x7F0F01F6
            public const int read_privacy_policy_and_service_agreement_tip = 2131689974;
            
            // aapt resource value: 0x7F0F01F8
            public const int realplay_close_sound_localization_fail = 2131689976;
            public const int realplay = 2131689976;
            
            // aapt resource value: 0x7F0F01F9
            public const int realplay_encrypt_password_error_message = 2131689977;
            public const int realplay_close_sound_localization_fail = 2131689977;
            
            // aapt resource value: 0x7F0F01FA
            public const int realplay_encrypt_password_error_title = 2131689978;
            public const int realplay_encrypt_password_error_message = 2131689978;
            
            // aapt resource value: 0x7F0F01FB
            public const int realplay_fail_connect_device = 2131689979;
            public const int realplay_encrypt_password_error_title = 2131689979;
            
            // aapt resource value: 0x7F0F01FC
            public const int realplay_fail_device_not_exist = 2131689980;
            public const int realplay_fail_connect_device = 2131689980;
            
            // aapt resource value: 0x7F0F01FD
            public const int realplay_full_talk_start_tip = 2131689981;
            public const int realplay_fail_device_not_exist = 2131689981;
            
            // aapt resource value: 0x7F0F01FE
            public const int realplay_loading = 2131689982;
            public const int realplay_full_talk_start_tip = 2131689982;
            
            // aapt resource value: 0x7F0F01FF
            public const int realplay_login_password_error = 2131689983;
            public const int realplay_loading = 2131689983;
            
            // aapt resource value: 0x7F0F0200
            public const int realplay_login_password_msg = 2131689984;
            public const int realplay_login_password_error = 2131689984;
            
            // aapt resource value: 0x7F0F0201
            public const int realplay_no_encrypt_password_error = 2131689985;
            public const int realplay_login_password_msg = 2131689985;
            
            // aapt resource value: 0x7F0F0202
            public const int realplay_no_permission = 2131689986;
            public const int realplay_no_encrypt_password_error = 2131689986;
            
            // aapt resource value: 0x7F0F0203
            public const int realplay_open_sound_localization_fail = 2131689987;
            public const int realplay_no_permission = 2131689987;
            
            // aapt resource value: 0x7F0F0204
            public const int realplay_password_error_message1 = 2131689988;
            public const int realplay_open_sound_localization_fail = 2131689988;
            
            // aapt resource value: 0x7F0F0205
            public const int realplay_password_error_message3 = 2131689989;
            public const int realplay_password_error_message1 = 2131689989;
            
            // aapt resource value: 0x7F0F0206
            public const int realplay_password_error_message4 = 2131689990;
            public const int realplay_password_error_message3 = 2131689990;
            
            // aapt resource value: 0x7F0F0207
            public const int realplay_password_error_title = 2131689991;
            public const int realplay_password_error_message4 = 2131689991;
            
            // aapt resource value: 0x7F0F0208
            public const int realplay_play_fail = 2131689992;
            public const int realplay_password_error_title = 2131689992;
            
            // aapt resource value: 0x7F0F0209
            public const int realplay_play_fail_becauseof_network = 2131689993;
            public const int realplay_play_fail = 2131689993;
            
            // aapt resource value: 0x7F0F020A
            public const int realplay_play_no_video_source = 2131689994;
            public const int realplay_play_fail_becauseof_network = 2131689994;
            
            // aapt resource value: 0x7F0F020B
            public const int realplay_play_talkback_fail = 2131689995;
            public const int realplay_play_no_video_source = 2131689995;
            
            // aapt resource value: 0x7F0F020C
            public const int realplay_play_talkback_fail_ison = 2131689996;
            public const int realplay_play_talkback_fail = 2131689996;
            
            // aapt resource value: 0x7F0F020D
            public const int realplay_play_talkback_fail_privacy = 2131689997;
            public const int realplay_play_talkback_fail_ison = 2131689997;
            
            // aapt resource value: 0x7F0F020E
            public const int realplay_play_talkback_network_exception = 2131689998;
            public const int realplay_play_talkback_fail_privacy = 2131689998;
            
            // aapt resource value: 0x7F0F020F
            public const int realplay_play_talkback_request_timeout = 2131689999;
            public const int realplay_play_talkback_network_exception = 2131689999;
            
            // aapt resource value: 0x7F0F0210
            public const int realplay_set_fail_network = 2131690000;
            public const int realplay_play_talkback_request_timeout = 2131690000;
            
            // aapt resource value: 0x7F0F0211
            public const int realplay_set_fail_status = 2131690001;
            public const int realplay_set_fail_network = 2131690001;
            
            // aapt resource value: 0x7F0F0212
            public const int realplay_set_vediomode_fail = 2131690002;
            public const int realplay_set_fail_status = 2131690002;
            
            // aapt resource value: 0x7F0F0213
            public const int realplay_share_no_permission = 2131690003;
            public const int realplay_set_vediomode_fail = 2131690003;
            
            // aapt resource value: 0x7F0F0214
            public const int realplay_share_time_over = 2131690004;
            public const int realplay_share_no_permission = 2131690004;
            
            // aapt resource value: 0x7F0F0215
            public const int realplay_verifycode_error_message0 = 2131690005;
            public const int realplay_share_time_over = 2131690005;
            
            // aapt resource value: 0x7F0F0216
            public const int realplay_verifycode_error_placehold = 2131690006;
            public const int realplay_verifycode_error_message0 = 2131690006;
            
            // aapt resource value: 0x7F0F0217
            public const int receice_leave_msg_audio = 2131690007;
            public const int realplay_verifycode_error_placehold = 2131690007;
            
            // aapt resource value: 0x7F0F0218
            public const int receice_leave_msg_video = 2131690008;
            public const int receice_leave_msg_audio = 2131690008;
            
            // aapt resource value: 0x7F0F0219
            public const int record = 2131690009;
            public const int receice_leave_msg_video = 2131690009;
            
            // aapt resource value: 0x7F0F021A
            public const int refresh = 2131690010;
            public const int record = 2131690010;
            
            // aapt resource value: 0x7F0F021B
            public const int refresh_empty_hint = 2131690011;
            public const int refresh = 2131690011;
            
            // aapt resource value: 0x7F0F021C
            public const int refresh_fail_hint = 2131690012;
            // aapt resource value: 0x7F0F021E
            public const int remoteplayback_capture_fail = 2131690014;
            // aapt resource value: 0x7F0F021F
            public const int remoteplayback_capture_fail_for_memory = 2131690015;
            // aapt resource value: 0x7F0F0220
            public const int remoteplayback_connect_device_error = 2131690016;
            // aapt resource value: 0x7F0F0221
            public const int remoteplayback_connect_server_error = 2131690017;
            // aapt resource value: 0x7F0F0222
            public const int remoteplayback_fail = 2131690018;
            // aapt resource value: 0x7F0F0223
            public const int remoteplayback_norecordfile = 2131690019;
            // aapt resource value: 0x7F0F0224
            public const int remoteplayback_norecordfile_alarm = 2131690020;
            // aapt resource value: 0x7F0F0225
            public const int remoteplayback_over_link = 2131690021;
            // aapt resource value: 0x7F0F0226
            public const int remoteplayback_record_fail = 2131690022;
            // aapt resource value: 0x7F0F0227
            public const int remoteplayback_record_fail_for_memory = 2131690023;
            public const int refresh_empty_hint = 2131690012;
            
            // aapt resource value: 0x7F0F021D
            public const int remoteplayback_SDCard_disable_use = 2131690013;
            public const int refresh_fail_hint = 2131690013;
            // aapt resource value: 0x7F0F021F
            public const int remoteplayback_capture_fail = 2131690015;
            // aapt resource value: 0x7F0F0220
            public const int remoteplayback_capture_fail_for_memory = 2131690016;
            // aapt resource value: 0x7F0F0221
            public const int remoteplayback_connect_device_error = 2131690017;
            // aapt resource value: 0x7F0F0222
            public const int remoteplayback_connect_server_error = 2131690018;
            // aapt resource value: 0x7F0F0223
            public const int remoteplayback_fail = 2131690019;
            // aapt resource value: 0x7F0F0224
            public const int remoteplayback_norecordfile = 2131690020;
            // aapt resource value: 0x7F0F0225
            public const int remoteplayback_norecordfile_alarm = 2131690021;
            // aapt resource value: 0x7F0F0226
            public const int remoteplayback_over_link = 2131690022;
            // aapt resource value: 0x7F0F0227
            public const int remoteplayback_record_fail = 2131690023;
            
            // aapt resource value: 0x7F0F0228
            public const int remoteplayback_searchfile_fail_for_device = 2131690024;
            public const int remoteplayback_record_fail_for_memory = 2131690024;
            // aapt resource value: 0x7F0F021E
            public const int remoteplayback_SDCard_disable_use = 2131690014;
            
            // aapt resource value: 0x7F0F0229
            public const int remoteplayback_searchfile_fail_for_network = 2131690025;
            public const int remoteplayback_searchfile_fail_for_device = 2131690025;
            
            // aapt resource value: 0x7F0F022A
            public const int reset_10_sec_to_release = 2131690026;
            public const int remoteplayback_searchfile_fail_for_network = 2131690026;
            
            // aapt resource value: 0x7F0F022B
            public const int reset_device = 2131690027;
            public const int reset_10_sec_to_release = 2131690027;
            
            // aapt resource value: 0x7F0F022C
            public const int result_txt = 2131690028;
            public const int reset_device = 2131690028;
            
            // aapt resource value: 0x7F0F022D
            public const int retry = 2131690029;
            // aapt resource value: 0x7F0F022F
            public const int router = 2131690031;
            public const int result_txt = 2131690029;
            
            // aapt resource value: 0x7F0F022E
            public const int route_status_light = 2131690030;
            public const int retry = 2131690030;
            
            // aapt resource value: 0x7F0F0230
            public const int sadp_activate_state1 = 2131690032;
            public const int router = 2131690032;
            // aapt resource value: 0x7F0F022F
            public const int route_status_light = 2131690031;
            
            // aapt resource value: 0x7F0F0231
            public const int sadp_activate_state2 = 2131690033;
            public const int sadp_activate_state1 = 2131690033;
            
            // aapt resource value: 0x7F0F0232
            public const int sadp_password_input_hint = 2131690034;
            public const int sadp_activate_state2 = 2131690034;
            
            // aapt resource value: 0x7F0F0233
            public const int sadp_password_toast = 2131690035;
            public const int sadp_password_input_hint = 2131690035;
            
            // aapt resource value: 0x7F0F0234
            public const int sadp_password_too_weak = 2131690036;
            public const int sadp_password_toast = 2131690036;
            
            // aapt resource value: 0x7F0F0235
            public const int sadp_quit_activate = 2131690037;
            public const int sadp_password_too_weak = 2131690037;
            
            // aapt resource value: 0x7F0F0236
            public const int save_encrypt_password_fail_network_exception = 2131690038;
            public const int sadp_quit_activate = 2131690038;
            
            // aapt resource value: 0x7F0F0237
            public const int scan_add = 2131690039;
            public const int save_encrypt_password_fail_network_exception = 2131690039;
            
            // aapt resource value: 0x7F0F0238
            public const int scan_connet_network = 2131690040;
            public const int scan_add = 2131690040;
            
            // aapt resource value: 0x7F0F0239
            public const int scan_cue_txt = 2131690041;
            public const int scan_connet_network = 2131690041;
            
            // aapt resource value: 0x7F0F023A
            public const int scan_device_add_by_others = 2131690042;
            public const int scan_cue_txt = 2131690042;
            
            // aapt resource value: 0x7F0F023B
            public const int scan_device_search = 2131690043;
            public const int scan_device_add_by_others = 2131690043;
            
            // aapt resource value: 0x7F0F023C
            public const int scan_device_serial_no = 2131690044;
            public const int scan_device_search = 2131690044;
            
            // aapt resource value: 0x7F0F023D
            public const int scan_network_unavailible = 2131690045;
            public const int scan_device_serial_no = 2131690045;
            
            // aapt resource value: 0x7F0F023E
            public const int scan_probe_qrcode_error = 2131690046;
            public const int scan_network_unavailible = 2131690046;
            
            // aapt resource value: 0x7F0F023F
            public const int scan_search_probe_qrcode = 2131690047;
            public const int scan_probe_qrcode_error = 2131690047;
            
            // aapt resource value: 0x7F0F0240
            public const int scan_title_txt = 2131690048;
            public const int scan_search_probe_qrcode = 2131690048;
            
            // aapt resource value: 0x7F0F0241
            public const int screenshot_fail = 2131690049;
            public const int scan_title_txt = 2131690049;
            
            // aapt resource value: 0x7F0F0242
            public const int screenshot_success = 2131690050;
            public const int screenshot_fail = 2131690050;
            
            // aapt resource value: 0x7F0F0243
            public const int sdk_is_init = 2131690051;
            public const int screenshot_success = 2131690051;
            
            // aapt resource value: 0x7F0F0244
            public const int search = 2131690052;
            public const int sdk_is_init = 2131690052;
            
            // aapt resource value: 0x7F0F0245
            public const int search_menu_title = 2131690053;
            public const int search = 2131690053;
            
            // aapt resource value: 0x7F0F0246
            public const int secure_validate = 2131690054;
            // aapt resource value: 0x7F0F0248
            public const int secure_validatee_fail = 2131690056;
            public const int search_menu_title = 2131690054;
            
            // aapt resource value: 0x7F0F0247
            public const int secure_validate_success = 2131690055;
            public const int secure_validate = 2131690055;
            
            // aapt resource value: 0x7F0F0249
            public const int seek_camera_fail_device_not_support_shipin7 = 2131690057;
            public const int secure_validatee_fail = 2131690057;
            // aapt resource value: 0x7F0F0248
            public const int secure_validate_success = 2131690056;
            
            // aapt resource value: 0x7F0F024A
            public const int select_all = 2131690058;
            public const int seek_camera_fail_device_not_support_shipin7 = 2131690058;
            
            // aapt resource value: 0x7F0F024B
            public const int select_date = 2131690059;
            public const int select_all = 2131690059;
            
            // aapt resource value: 0x7F0F024C
            public const int serial_add_hint = 2131690060;
            public const int select_date = 2131690060;
            
            // aapt resource value: 0x7F0F024D
            public const int serial_add_password_error_title = 2131690061;
            public const int serial_add_hint = 2131690061;
            
            // aapt resource value: 0x7F0F024E
            public const int serial_input_text = 2131690062;
            public const int serial_add_password_error_title = 2131690062;
            
            // aapt resource value: 0x7F0F024F
            public const int serial_number_error = 2131690063;
            public const int serial_input_text = 2131690063;
            
            // aapt resource value: 0x7F0F0250
            public const int serial_number_is_null = 2131690064;
            public const int serial_number_error = 2131690064;
            
            // aapt resource value: 0x7F0F0251
            public const int serial_number_put_the_right_no = 2131690065;
            public const int serial_number_is_null = 2131690065;
            
            // aapt resource value: 0x7F0F0252
            public const int server_area = 2131690066;
            // aapt resource value: 0x7F0F0257
            public const int setting = 2131690071;
            // aapt resource value: 0x7F0F0258
            public const int setting_video_level = 2131690072;
            public const int serial_number_put_the_right_no = 2131690066;
            
            // aapt resource value: 0x7F0F0253
            public const int set_defence_plan = 2131690067;
            public const int server_area = 2131690067;
            
            // aapt resource value: 0x7F0F0254
            public const int set_device_wifi_network_need_reset_the_device = 2131690068;
            // aapt resource value: 0x7F0F0255
            public const int set_ptz_flip_fail = 2131690069;
            // aapt resource value: 0x7F0F0256
            public const int set_ptz_flip_success = 2131690070;
            // aapt resource value: 0x7F0F0258
            public const int setting = 2131690072;
            
            // aapt resource value: 0x7F0F0259
            public const int share_devices = 2131690073;
            public const int setting_video_level = 2131690073;
            // aapt resource value: 0x7F0F0254
            public const int set_defence_plan = 2131690068;
            // aapt resource value: 0x7F0F0255
            public const int set_device_wifi_network_need_reset_the_device = 2131690069;
            // aapt resource value: 0x7F0F0256
            public const int set_ptz_flip_fail = 2131690070;
            // aapt resource value: 0x7F0F0257
            public const int set_ptz_flip_success = 2131690071;
            
            // aapt resource value: 0x7F0F025A
            public const int sms_verify_bind_error = 2131690074;
            public const int share_devices = 2131690074;
            
            // aapt resource value: 0x7F0F025B
            public const int sms_verify_code_received = 2131690075;
            public const int sms_verify_bind_error = 2131690075;
            
            // aapt resource value: 0x7F0F025C
            public const int source_detection_off = 2131690076;
            public const int sms_verify_code_received = 2131690076;
            
            // aapt resource value: 0x7F0F025D
            public const int source_detection_on = 2131690077;
            public const int source_detection_off = 2131690077;
            
            // aapt resource value: 0x7F0F025E
            public const int specified_device = 2131690078;
            public const int source_detection_on = 2131690078;
            
            // aapt resource value: 0x7F0F025F
            public const int srl_component_falsify = 2131690079;
            public const int specified_device = 2131690079;
            
            // aapt resource value: 0x7F0F0260
            public const int srl_content_empty = 2131690080;
            public const int srl_component_falsify = 2131690080;
            
            // aapt resource value: 0x7F0F0261
            public const int srl_footer_failed = 2131690081;
            public const int srl_content_empty = 2131690081;
            
            // aapt resource value: 0x7F0F0262
            public const int srl_footer_finish = 2131690082;
            public const int srl_footer_failed = 2131690082;
            
            // aapt resource value: 0x7F0F0263
            public const int srl_footer_loading = 2131690083;
            public const int srl_footer_finish = 2131690083;
            
            // aapt resource value: 0x7F0F0264
            public const int srl_footer_nothing = 2131690084;
            public const int srl_footer_loading = 2131690084;
            
            // aapt resource value: 0x7F0F0265
            public const int srl_footer_pulling = 2131690085;
            public const int srl_footer_nothing = 2131690085;
            
            // aapt resource value: 0x7F0F0266
            public const int srl_footer_refreshing = 2131690086;
            public const int srl_footer_pulling = 2131690086;
            
            // aapt resource value: 0x7F0F0267
            public const int srl_footer_release = 2131690087;
            public const int srl_footer_refreshing = 2131690087;
            
            // aapt resource value: 0x7F0F0268
            public const int srl_header_failed = 2131690088;
            public const int srl_footer_release = 2131690088;
            
            // aapt resource value: 0x7F0F0269
            public const int srl_header_finish = 2131690089;
            public const int srl_header_failed = 2131690089;
            
            // aapt resource value: 0x7F0F026A
            public const int srl_header_loading = 2131690090;
            public const int srl_header_finish = 2131690090;
            
            // aapt resource value: 0x7F0F026B
            public const int srl_header_pulling = 2131690091;
            public const int srl_header_loading = 2131690091;
            
            // aapt resource value: 0x7F0F026C
            public const int srl_header_refreshing = 2131690092;
            public const int srl_header_pulling = 2131690092;
            
            // aapt resource value: 0x7F0F026D
            public const int srl_header_release = 2131690093;
            public const int srl_header_refreshing = 2131690093;
            
            // aapt resource value: 0x7F0F026E
            public const int srl_header_secondary = 2131690094;
            public const int srl_header_release = 2131690094;
            
            // aapt resource value: 0x7F0F026F
            public const int srl_header_update = 2131690095;
            public const int srl_header_secondary = 2131690095;
            
            // aapt resource value: 0x7F0F0270
            public const int start_cloud = 2131690096;
            public const int srl_header_update = 2131690096;
            
            // aapt resource value: 0x7F0F0271
            public const int start_to_experience = 2131690097;
            public const int start_cloud = 2131690097;
            
            // aapt resource value: 0x7F0F0272
            public const int start_voice_talk = 2131690098;
            public const int start_to_experience = 2131690098;
            
            // aapt resource value: 0x7F0F0273
            public const int status_bar_notification_info_overflow = 2131690099;
            public const int start_voice_talk = 2131690099;
            
            // aapt resource value: 0x7F0F0274
            public const int step3_adding_device_to_account = 2131690100;
            public const int status_bar_notification_info_overflow = 2131690100;
            
            // aapt resource value: 0x7F0F0275
            public const int storage_status = 2131690101;
            public const int step3_adding_device_to_account = 2131690101;
            
            // aapt resource value: 0x7F0F0276
            public const int stream_type = 2131690102;
            // aapt resource value: 0x7F0F0279
            public const int string_apiurl = 2131690105;
            public const int storage_status = 2131690102;
            
            // aapt resource value: 0x7F0F0277
            public const int string_ap_connection = 2131690103;
            // aapt resource value: 0x7F0F0278
            public const int string_ap_connection_normal = 2131690104;
            public const int stream_type = 2131690103;
            
            // aapt resource value: 0x7F0F027A
            public const int string_authurl = 2131690106;
            public const int string_apiurl = 2131690106;
            
            // aapt resource value: 0x7F0F027C
            public const int string_deviceserial = 2131690108;
            // aapt resource value: 0x7F0F0278
            public const int string_ap_connection = 2131690104;
            // aapt resource value: 0x7F0F0279
            public const int string_ap_connection_normal = 2131690105;
            
            // aapt resource value: 0x7F0F027B
            public const int string_device_network_mode = 2131690107;
            public const int string_authurl = 2131690107;
            
            // aapt resource value: 0x7F0F027D
            public const int string_ezopenurl = 2131690109;
            public const int string_deviceserial = 2131690109;
            // aapt resource value: 0x7F0F027C
            public const int string_device_network_mode = 2131690108;
            
            // aapt resource value: 0x7F0F027E
            public const int string_get_device_version_fail = 2131690110;
            public const int string_ezopenurl = 2131690110;
            
            // aapt resource value: 0x7F0F027F
            public const int string_smart_and_sound_wave_connection = 2131690111;
            public const int string_get_device_version_fail = 2131690111;
            
            // aapt resource value: 0x7F0F0280
            public const int string_smart_connection = 2131690112;
            public const int string_smart_and_sound_wave_connection = 2131690112;
            
            // aapt resource value: 0x7F0F0281
            public const int string_smart_connection_normal = 2131690113;
            public const int string_smart_connection = 2131690113;
            
            // aapt resource value: 0x7F0F0282
            public const int string_sound_wave_connection = 2131690114;
            public const int string_smart_connection_normal = 2131690114;
            
            // aapt resource value: 0x7F0F0283
            public const int string_wired_connection = 2131690115;
            public const int string_sound_wave_connection = 2131690115;
            
            // aapt resource value: 0x7F0F0284
            public const int submit_secure_validate = 2131690116;
            public const int string_wired_connection = 2131690116;
            
            // aapt resource value: 0x7F0F0285
            public const int submit_sms_code = 2131690117;
            public const int submit_secure_validate = 2131690117;
            
            // aapt resource value: 0x7F0F0286
            public const int switch_to_handset = 2131690118;
            public const int submit_sms_code = 2131690118;
            
            // aapt resource value: 0x7F0F0287
            public const int switch_to_speaker = 2131690119;
            public const int switch_to_handset = 2131690119;
            
            // aapt resource value: 0x7F0F0288
            public const int system_default_channel = 2131690120;
            public const int switch_to_speaker = 2131690120;
            
            // aapt resource value: 0x7F0F0289
            public const int tab_more = 2131690121;
            public const int system_default_channel = 2131690121;
            
            // aapt resource value: 0x7F0F028A
            public const int talk = 2131690122;
            // aapt resource value: 0x7F0F028D
            public const int talking = 2131690125;
            public const int tab_more = 2131690122;
            
            // aapt resource value: 0x7F0F028B
            public const int talk_open_failed = 2131690123;
            // aapt resource value: 0x7F0F028C
            public const int talk_open_success = 2131690124;
            public const int talk = 2131690123;
            
            // aapt resource value: 0x7F0F028E
            public const int tip_heard_voice = 2131690126;
            public const int talking = 2131690126;
            // aapt resource value: 0x7F0F028C
            public const int talk_open_failed = 2131690124;
            // aapt resource value: 0x7F0F028D
            public const int talk_open_success = 2131690125;
            
            // aapt resource value: 0x7F0F028F
            public const int tip_login_out = 2131690127;
            public const int tip_heard_voice = 2131690127;
            
            // aapt resource value: 0x7F0F0290
            public const int tip_of_added_by_yourself_and_online = 2131690128;
            public const int tip_login_out = 2131690128;
            
            // aapt resource value: 0x7F0F0291
            public const int tip_of_bad_net = 2131690129;
            public const int tip_of_added_by_yourself_and_online = 2131690129;
            
            // aapt resource value: 0x7F0F0292
            public const int tip_playback_again = 2131690130;
            public const int tip_of_bad_net = 2131690130;
            
            // aapt resource value: 0x7F0F0293
            public const int tip_specified_device = 2131690131;
            public const int tip_playback_again = 2131690131;
            
            // aapt resource value: 0x7F0F0294
            public const int title_activate_device = 2131690132;
            public const int tip_specified_device = 2131690132;
            
            // aapt resource value: 0x7F0F0295
            public const int title_activate_device_fail = 2131690133;
            public const int title_activate_device = 2131690133;
            
            // aapt resource value: 0x7F0F0296
            public const int title_activity_connect_device_wifi = 2131690134;
            public const int title_activate_device_fail = 2131690134;
            
            // aapt resource value: 0x7F0F0297
            public const int title_activity_ezupgrade_device = 2131690135;
            public const int title_activity_connect_device_wifi = 2131690135;
            
            // aapt resource value: 0x7F0F0298
            public const int today = 2131690136;
            public const int title_activity_ezupgrade_device = 2131690136;
            
            // aapt resource value: 0x7F0F0299
            public const int touch_fingerprint_sensor_hint = 2131690137;
            public const int today = 2131690137;
            
            // aapt resource value: 0x7F0F029A
            public const int touch_to_load = 2131690138;
            public const int touch_fingerprint_sensor_hint = 2131690138;
            
            // aapt resource value: 0x7F0F029B
            public const int try_again = 2131690139;
            public const int touch_to_load = 2131690139;
            
            // aapt resource value: 0x7F0F029C
            public const int ui_call_demo_txt = 2131690140;
            public const int try_again = 2131690140;
            
            // aapt resource value: 0x7F0F029D
            public const int unable_identify_two_dimensional_code_tip = 2131690141;
            public const int ui_call_demo_txt = 2131690141;
            
            // aapt resource value: 0x7F0F029E
            public const int unbind_to_bind = 2131690142;
            public const int unable_identify_two_dimensional_code_tip = 2131690142;
            
            // aapt resource value: 0x7F0F029F
            public const int unknow_ssid = 2131690143;
            public const int unbind_to_bind = 2131690143;
            
            // aapt resource value: 0x7F0F02A0
            public const int unlock_fail = 2131690144;
            public const int unknow_ssid = 2131690144;
            
            // aapt resource value: 0x7F0F02A1
            public const int unlock_success = 2131690145;
            public const int unlock_fail = 2131690145;
            
            // aapt resource value: 0x7F0F02A2
            public const int unnamed = 2131690146;
            public const int unlock_success = 2131690146;
            
            // aapt resource value: 0x7F0F02A3
            public const int update_exit = 2131690147;
            public const int unnamed = 2131690147;
            
            // aapt resource value: 0x7F0F02A4
            public const int upgrade = 2131690148;
            public const int update_exit = 2131690148;
            
            // aapt resource value: 0x7F0F02A5
            public const int upgrade_fail = 2131690149;
            public const int upgrade = 2131690149;
            
            // aapt resource value: 0x7F0F02A6
            public const int upgrade_progress = 2131690150;
            public const int upgrade_fail = 2131690150;
            
            // aapt resource value: 0x7F0F02A7
            public const int upgrade_success = 2131690151;
            public const int upgrade_progress = 2131690151;
            
            // aapt resource value: 0x7F0F02A8
            public const int upgrade_success_progress = 2131690152;
            // aapt resource value: 0x7F0F02AD
            public const int upsdk_appstore_install = 2131690157;
            // aapt resource value: 0x7F0F02AE
            public const int upsdk_apptouch_store_url = 2131690158;
            public const int upgrade_success = 2131690152;
            
            // aapt resource value: 0x7F0F02A9
            public const int upsdk_app_download_info_new = 2131690153;
            public const int upgrade_success_progress = 2131690153;
            
            // aapt resource value: 0x7F0F02AA
            public const int upsdk_app_download_installing = 2131690154;
            // aapt resource value: 0x7F0F02AB
            public const int upsdk_app_size = 2131690155;
            // aapt resource value: 0x7F0F02AC
            public const int upsdk_app_version = 2131690156;
            // aapt resource value: 0x7F0F02AE
            public const int upsdk_appstore_install = 2131690158;
            
            // aapt resource value: 0x7F0F02AF
            public const int upsdk_cancel = 2131690159;
            public const int upsdk_apptouch_store_url = 2131690159;
            // aapt resource value: 0x7F0F02AA
            public const int upsdk_app_download_info_new = 2131690154;
            // aapt resource value: 0x7F0F02AB
            public const int upsdk_app_download_installing = 2131690155;
            // aapt resource value: 0x7F0F02AC
            public const int upsdk_app_size = 2131690156;
            // aapt resource value: 0x7F0F02AD
            public const int upsdk_app_version = 2131690157;
            
            // aapt resource value: 0x7F0F02B0
            public const int upsdk_checking_update_prompt = 2131690160;
            public const int upsdk_cancel = 2131690160;
            
            // aapt resource value: 0x7F0F02B1
            public const int upsdk_choice_update = 2131690161;
            public const int upsdk_checking_update_prompt = 2131690161;
            
            // aapt resource value: 0x7F0F02B2
            public const int upsdk_detail = 2131690162;
            public const int upsdk_choice_update = 2131690162;
            
            // aapt resource value: 0x7F0F02B3
            public const int upsdk_getting_message_fail_prompt_toast = 2131690163;
            public const int upsdk_detail = 2131690163;
            
            // aapt resource value: 0x7F0F02B4
            public const int upsdk_mobile_dld_warn = 2131690164;
            public const int upsdk_getting_message_fail_prompt_toast = 2131690164;
            
            // aapt resource value: 0x7F0F02B5
            public const int upsdk_no_available_network_prompt_toast = 2131690165;
            public const int upsdk_mobile_dld_warn = 2131690165;
            
            // aapt resource value: 0x7F0F02B6
            public const int upsdk_ota_app_name = 2131690166;
            public const int upsdk_no_available_network_prompt_toast = 2131690166;
            
            // aapt resource value: 0x7F0F02B7
            public const int upsdk_ota_cancel = 2131690167;
            public const int upsdk_ota_app_name = 2131690167;
            
            // aapt resource value: 0x7F0F02B8
            public const int upsdk_ota_force_cancel_new = 2131690168;
            public const int upsdk_ota_cancel = 2131690168;
            
            // aapt resource value: 0x7F0F02B9
            public const int upsdk_ota_notify_updatebtn = 2131690169;
            public const int upsdk_ota_force_cancel_new = 2131690169;
            
            // aapt resource value: 0x7F0F02BA
            public const int upsdk_ota_title = 2131690170;
            public const int upsdk_ota_notify_updatebtn = 2131690170;
            
            // aapt resource value: 0x7F0F02BB
            public const int upsdk_storage_utils = 2131690171;
            public const int upsdk_ota_title = 2131690171;
            
            // aapt resource value: 0x7F0F02BC
            public const int upsdk_store_url = 2131690172;
            public const int upsdk_storage_utils = 2131690172;
            
            // aapt resource value: 0x7F0F02BD
            public const int upsdk_third_app_dl_cancel_download_prompt_ex = 2131690173;
            public const int upsdk_store_url = 2131690173;
            
            // aapt resource value: 0x7F0F02BE
            public const int upsdk_third_app_dl_install_failed = 2131690174;
            public const int upsdk_third_app_dl_cancel_download_prompt_ex = 2131690174;
            
            // aapt resource value: 0x7F0F02BF
            public const int upsdk_third_app_dl_sure_cancel_download = 2131690175;
            public const int upsdk_third_app_dl_install_failed = 2131690175;
            
            // aapt resource value: 0x7F0F02C0
            public const int upsdk_update_check_no_new_version = 2131690176;
            public const int upsdk_third_app_dl_sure_cancel_download = 2131690176;
            
            // aapt resource value: 0x7F0F02C1
            public const int user_name_txt = 2131690177;
            public const int upsdk_update_check_no_new_version = 2131690177;
            
            // aapt resource value: 0x7F0F02C2
            public const int verify_code_error = 2131690178;
            public const int user_name_txt = 2131690178;
            
            // aapt resource value: 0x7F0F02C3
            public const int verify_sms_code_fail = 2131690179;
            public const int verify_code_error = 2131690179;
            
            // aapt resource value: 0x7F0F02C4
            public const int verify_sms_code_success = 2131690180;
            public const int verify_sms_code_fail = 2131690180;
            
            // aapt resource value: 0x7F0F02C5
            public const int version_newest = 2131690181;
            public const int verify_sms_code_success = 2131690181;
            
            // aapt resource value: 0x7F0F02C6
            public const int video_answer = 2131690182;
            public const int version_newest = 2131690182;
            
            // aapt resource value: 0x7F0F02C7
            public const int video_box = 2131690183;
            public const int video_answer = 2131690183;
            
            // aapt resource value: 0x7F0F02C8
            public const int video_confirm = 2131690184;
            public const int video_box = 2131690184;
            
            // aapt resource value: 0x7F0F02C9
            public const int video_device = 2131690185;
            public const int video_confirm = 2131690185;
            
            // aapt resource value: 0x7F0F02CA
            public const int video_fail = 2131690186;
            public const int video_device = 2131690186;
            
            // aapt resource value: 0x7F0F02CB
            public const int video_hang_up = 2131690187;
            public const int video_fail = 2131690187;
            
            // aapt resource value: 0x7F0F02CC
            public const int video_icon = 2131690188;
            public const int video_hang_up = 2131690188;
            
            // aapt resource value: 0x7F0F02CD
            public const int video_not_answer = 2131690189;
            public const int video_icon = 2131690189;
            
            // aapt resource value: 0x7F0F02CE
            public const int video_screenshot = 2131690190;
            public const int video_not_answer = 2131690190;
            
            // aapt resource value: 0x7F0F02CF
            public const int video_square = 2131690191;
            public const int video_screenshot = 2131690191;
            
            // aapt resource value: 0x7F0F02D0
            public const int video_success = 2131690192;
            public const int video_square = 2131690192;
            
            // aapt resource value: 0x7F0F02D1
            public const int video_talk_call_cancel = 2131690193;
            public const int video_success = 2131690193;
            
            // aapt resource value: 0x7F0F02D2
            public const int video_talk_call_is_accepted = 2131690194;
            public const int video_talk_call_cancel = 2131690194;
            
            // aapt resource value: 0x7F0F02D3
            public const int video_talk_is_playing = 2131690195;
            public const int video_talk_call_is_accepted = 2131690195;
            
            // aapt resource value: 0x7F0F02D4
            public const int video_talk_sdk_toast_hang_up = 2131690196;
            public const int video_talk_is_playing = 2131690196;
            
            // aapt resource value: 0x7F0F02D5
            public const int video_talk_sdk_toast_nobody = 2131690197;
            public const int video_talk_sdk_toast_hang_up = 2131690197;
            
            // aapt resource value: 0x7F0F02D6
            public const int video_talk_signal_weak = 2131690198;
            public const int video_talk_sdk_toast_nobody = 2131690198;
            
            // aapt resource value: 0x7F0F02D7
            public const int video_talk_watch_is_busy = 2131690199;
            public const int video_talk_signal_weak = 2131690199;
            
            // aapt resource value: 0x7F0F02D8
            public const int video_talk_watch_temperature_high_hang = 2131690200;
            public const int video_talk_watch_is_busy = 2131690200;
            
            // aapt resource value: 0x7F0F02D9
            public const int video_talk_watch_temperature_high_hint = 2131690201;
            public const int video_talk_watch_temperature_high_hang = 2131690201;
            
            // aapt resource value: 0x7F0F02DA
            public const int video_talk_watch_temperature_high_reject = 2131690202;
            public const int video_talk_watch_temperature_high_hint = 2131690202;
            
            // aapt resource value: 0x7F0F02DB
            public const int video_talk_watch_temperature_high_warn = 2131690203;
            public const int video_talk_watch_temperature_high_reject = 2131690203;
            
            // aapt resource value: 0x7F0F02DC
            public const int video_tip = 2131690204;
            public const int video_talk_watch_temperature_high_warn = 2131690204;
            
            // aapt resource value: 0x7F0F02DD
            public const int video_unlock = 2131690205;
            public const int video_tip = 2131690205;
            
            // aapt resource value: 0x7F0F02DE
            public const int wait = 2131690206;
            public const int video_unlock = 2131690206;
            
            // aapt resource value: 0x7F0F02DF
            public const int web_login_button_txt = 2131690207;
            public const int wait = 2131690207;
            
            // aapt resource value: 0x7F0F02E0
            public const int wechat_interconnect = 2131690208;
            public const int web_login_button_txt = 2131690208;
            
            // aapt resource value: 0x7F0F02E1
            public const int wifi_connected = 2131690209;
            public const int wechat_interconnect = 2131690209;
            
            // aapt resource value: 0x7F0F02E2
            public const int wifi_connection_finish_need_refresh = 2131690210;
            public const int wifi_connected = 2131690210;
            
            // aapt resource value: 0x7F0F02E3
            public const int wifi_set = 2131690211;
            public const int wifi_connection_finish_need_refresh = 2131690211;
            
            // aapt resource value: 0x7F0F02E4
            public const int wifi_setting = 2131690212;
            public const int wifi_set = 2131690212;
            
            // aapt resource value: 0x7F0F02E5
            public const int wired_connection = 2131690213;
            // aapt resource value: 0x7F0F02E7
            public const int xlistview_footer_hint_normal = 2131690215;
            public const int wifi_setting = 2131690213;
            
            // aapt resource value: 0x7F0F02E6
            public const int xlistview_footer_hint_no_more_device = 2131690214;
            public const int wired_connection = 2131690214;
            
            // aapt resource value: 0x7F0F02E8
            public const int xlistview_footer_hint_ready = 2131690216;
            public const int xlistview_footer_hint_normal = 2131690216;
            // aapt resource value: 0x7F0F02E7
            public const int xlistview_footer_hint_no_more_device = 2131690215;
            
            // aapt resource value: 0x7F0F02E9
            public const int xlistview_footer_no_more = 2131690217;
            public const int xlistview_footer_hint_ready = 2131690217;
            
            // aapt resource value: 0x7F0F02EA
            public const int xlistview_footer_no_more_msg = 2131690218;
            public const int xlistview_footer_no_more = 2131690218;
            
            // aapt resource value: 0x7F0F02EB
            public const int xlistview_header_hint_loading = 2131690219;
            public const int xlistview_footer_no_more_msg = 2131690219;
            
            // aapt resource value: 0x7F0F02EC
            public const int xlistview_header_hint_more = 2131690220;
            public const int xlistview_header_hint_loading = 2131690220;
            
            // aapt resource value: 0x7F0F02ED
            public const int xlistview_header_hint_normal = 2131690221;
            public const int xlistview_header_hint_more = 2131690221;
            
            // aapt resource value: 0x7F0F02EE
            public const int xlistview_header_hint_ready = 2131690222;
            public const int xlistview_header_hint_normal = 2131690222;
            
            // aapt resource value: 0x7F0F02EF
            public const int xlistview_header_last_time = 2131690223;
            public const int xlistview_header_hint_ready = 2131690223;
            
            // aapt resource value: 0x7F0F02F0
            public const int zxing_app_name = 2131690224;
            public const int xlistview_header_last_time = 2131690224;
            
            // aapt resource value: 0x7F0F02F1
            public const int zxing_button_ok = 2131690225;
            public const int zxing_app_name = 2131690225;
            
            // aapt resource value: 0x7F0F02F2
            public const int zxing_msg_camera_framework_bug = 2131690226;
            public const int zxing_button_ok = 2131690226;
            
            // aapt resource value: 0x7F0F02F3
            public const int zxing_msg_default_status = 2131690227;
            public const int zxing_msg_camera_framework_bug = 2131690227;
            // aapt resource value: 0x7F0F02F4
            public const int zxing_msg_default_status = 2131690228;
            
            static String()
            {
HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -1385,6 +1385,9 @@
      <BundleResource Include="Resources\Phone\FunctionIcon\EnvironmentalScience\HistoryOpionBg3.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\EnvironmentalScience\HistoryOpionBg4.png" />
      <BundleResource Include="Resources\Phone\Collection\FunctionOfflineBg.png" />
      <BundleResource Include="Resources\Phone\Public\MsgIcon\CallIcon.png" />
      <BundleResource Include="Resources\Phone\Public\MsgIcon\AnswerIcon.png" />
      <BundleResource Include="Resources\Phone\Public\MsgIcon\HangUpIcon.png" />
    </ItemGroup>
    <ItemGroup>
      <ITunesArtwork Include="iTunesArtwork" />
HDL-ON_iOS/Resources/Phone/Public/MsgIcon/AnswerIcon.png
HDL-ON_iOS/Resources/Phone/Public/MsgIcon/CallIcon.png
HDL-ON_iOS/Resources/Phone/Public/MsgIcon/HangUpIcon.png
HDL_ON/Common/HDLCommon.cs
@@ -330,16 +330,31 @@
                        }
                        else if (interphoneTypeEnum == InterphoneType.HDL.ToString())
                        {
                            //HDL Linphone 狄耐克
                            eSVideoInfo.HomeId = jpushMessageInfo.HomeId;
                            eSVideoInfo.callId = json["callId"].ToString();
                            eSVideoInfo.Lc_DeviceId = json["deviceId"].ToString();
                            eSVideoInfo.DeviceName = json["deviceName"].ToString();
                            eSVideoInfo.deviceSipAccount = json["deviceSipAccount"].ToString();
                            //ShowAlert("狄耐克门口机呼叫");
                            //打开呼叫页面
                            HDLLinphone.Current.ShowESVideoIntercom(eSVideoInfo);
                            return;
                            if (json.ContainsKey("spk"))
                            {
                                if (json["spk"].ToString() == "door.gate")
                                {
                                    new PublicAssmebly().TipLinphoneCall("\""+ eSVideoInfo.DeviceName + "\"呼叫", eSVideoInfo);
                                    //HDLLinphone.Current.ShowESVideoIntercom(eSVideoInfo,true);
                                    return;
                                }
                                else
                                {
                                    //HDL Linphone 狄耐克
                                    //ShowAlert("狄耐克门口机呼叫");
                                    //打开呼叫页面
                                    HDLLinphone.Current.ShowESVideoIntercom(eSVideoInfo,false);
                                    return;
                                }
                            }
                        }
                        //3.打开呼叫页面
@@ -402,13 +417,14 @@
            //账号在别处登陆,被踢下线 跳转到登录页面
            new Alert(Language.StringByID(StringId.Tip), Language.StringByID(StringId.LoggedOnOtherDevices), Language.StringByID(StringId.Close)).Show();
            Logout();
            Logout(false);
        }
        /// <summary>
        /// 退出登录操作
        /// signOutPush 是否删除推送token
        /// </summary>
        public void Logout()
        public void Logout(bool signOutPush = true)
        {
            //加载Loading效果
            var waitPage = new Loading();
@@ -419,8 +435,11 @@
            {
                try
                {
                    //2.注销推送
                    new HttpServerRequest().SignOutPush();
                    if (signOutPush)
                    {
                        //2.注销推送
                        new HttpServerRequest().SignOutPush();
                    }
                    //3.跳转登录页面
                    UserInfo.Current.LastTime = DateTime.MinValue;
                    UserInfo.Current.SaveUserInfo();
HDL_ON/Common/UserInfo.cs
@@ -322,5 +322,34 @@
            return path + "/";
        }
        /// <summary>
        /// 推送消息记录
        /// </summary>
        public JPushMessageInfo pushMessageInfo = new JPushMessageInfo();
        /// <summary>
        /// 是否已经加载呼叫弹窗
        /// </summary>
        public bool alreadyShowCallInDialog = false;
        //[Newtonsoft.Json.JsonIgnore]
        //public string PushMesTitle;
        //[Newtonsoft.Json.JsonIgnore]
        //public string PushMesMessage;
        //[Newtonsoft.Json.JsonIgnore]
        //public string PushMesExtras;
        //[Newtonsoft.Json.JsonIgnore]
        //public string PushMesHomeId;
        //[Newtonsoft.Json.JsonIgnore]
        //public string pushMesMessageType;
        //[Newtonsoft.Json.JsonIgnore]
        //public string pushMesExpantContent;
        [Newtonsoft.Json.JsonIgnore]
        public bool inVideo = false;
        [Newtonsoft.Json.JsonIgnore]
        public DateTime inCall = DateTime.MinValue;
    }
}
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/DAL/Server/NewApiRes.cs
@@ -1474,7 +1474,12 @@
        /// 扩展数据内容
        /// </summary>
        public string expantContent = "";
        /// <summary>
        /// 设备类型
        /// HDL: door.gate
        /// </summary>
        public string spk = "";
    }
@@ -1509,6 +1514,8 @@
        ///  信息类型
        /// </summary>
        public string messageType;
        public string spk;
    }
    /// <summary>
HDL_ON/DAL/ThirdPartySdk/ESOnVideo.cs
@@ -154,7 +154,7 @@
            else if (interphoneType == InterphoneType.HDL.ToString())
            {
                //HDLLinphone 狄耐克
                HDLLinphone.Current.ShowESVideoMonitor(mESVideoInfo);
                HDLLinphone.Current.ShowESVideoMonitor(mESVideoInfo,false);
            }
            else
            {
HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs
@@ -98,6 +98,7 @@
            HDLLinphoneKit.Instance.InitLinphone(Application.Activity);
            //设置收到来电后、是否需自动跳转呼叫页面方案
            HDLLinphoneKit.Instance.AutoJumpCallView = IsAutoJumpCallView;
            //HDLLinphoneKit.Instance.HangUp();//挂断
            //设置Listener监听
            setOnHDLLinphoneCallListener();
#endif
@@ -196,8 +197,6 @@
        {
            try
            {
                //先清空呼叫和监视设备信息
                if (clearCallInfo)
                {
@@ -371,13 +370,14 @@
        }
        #endregion
        #region ■  --  跳转监控页面_______________________________
        /// <summary>
        /// 跳转监控页面
        /// </summary>
        /// <param name="mESVideoInfo"></param>
        public void ShowESVideoMonitor(ESVideoInfo mESVideoInfo)
        /// <param name="enableMic">是否打开麦克风</param>
        public void ShowESVideoMonitor(ESVideoInfo mESVideoInfo,bool enableMic,bool isCallIn = false)
        {
            InitLinphone();
            //sip账号为空
@@ -395,6 +395,22 @@
            mHDLCallVideoInfo.DeviceSipAccount = mESVideoInfo.deviceSipAccount;//监视主动呼叫门口机时用到
            InitCallInfo(mHDLCallVideoInfo);
            if (isCallIn)
            {
                HDLLinphoneKit.Instance.HangUp();
            }
            else
            {
                openMonitorPage(enableMic);
            }
        }
        /// <summary>
        /// 打开监视界面
        /// </summary>
        void openMonitorPage(bool enableMic)
        {
#if __IOS__
            HDLLinPhoneSDK.Instance().CallWithUserName(mHDLCallVideoInfo.DeviceSipAccount, mHDLCallVideoInfo.DeviceName);
@@ -405,10 +421,16 @@
            //2.跳转打开监控页面
            var intent = new Intent(Shared.Application.Activity, typeof(Com.Hdl.Hdllinphonesdk.Activity.HDLLinphoneMonitorActivity)); ;
            intent.PutExtra(HDLLinphoneKit.KeyTitleName, mHDLCallVideoInfo.DeviceName);//传入设备名称为显示标题
            intent.PutExtra(HDLLinphoneKit.Enablemic, enableMic);//是否打开麦克风
            Shared.Application.Activity.StartActivity(intent);
#endif
        }
        #endregion
@@ -417,7 +439,8 @@
        /// 收到推送,后判断呼叫住宅是否为当前住宅,不是的话重新获取SIP账号并登录
        /// </summary>
        /// <param name="mESVideoInfo"></param>
        public void ShowESVideoIntercom(ESVideoInfo mESVideoInfo)
        /// <param name="isHdlLinphone">是否是自研可视对讲</param>
        public void ShowESVideoIntercom(ESVideoInfo mESVideoInfo,bool isHdlLinphone)
        {
            InitLinphone();
@@ -430,26 +453,36 @@
            mHDLCallVideoInfo.DeviceSipAccount = mESVideoInfo.deviceSipAccount;
            InitCallInfo(mHDLCallVideoInfo);
            //当前呼叫来电的住宅和之前注册登录的住宅一致的情况下
            if (currentHDLSipInfo != null && currentHDLSipInfo.homeId == mESVideoInfo.HomeId)
            if (isHdlLinphone)
            {
                Utlis.WriteLine("CALL 收到推送 推送住宅和之前注册登录的住宅一致");
                CheckCallStateAndGotoPage();
            }
            else
            {
                //注意:之前没登录SIP账号或者住宅不一致的情况下需要重新获取SIP账号
                //获取呼叫住宅的SIP账号并登录
                Utlis.WriteLine("CALL 收到推送 其他住宅,重新获取呼叫住宅的SIP账号并登录");
                new Thread(() =>
                //当前呼叫来电的住宅和之前注册登录的住宅一致的情况下
                if (currentHDLSipInfo != null && currentHDLSipInfo.homeId == mESVideoInfo.HomeId)
                {
                    GetHDLSipInfoAndInitSDK(mESVideoInfo.HomeId, false);
                })
                { IsBackground = false }.Start();
                    Utlis.WriteLine("CALL 收到推送 推送住宅和之前注册登录的住宅一致");
                    CheckCallStateAndGotoPage(true);
                }
            }
            else {
                //当前呼叫来电的住宅和之前注册登录的住宅一致的情况下
                if (currentHDLSipInfo != null && currentHDLSipInfo.homeId == mESVideoInfo.HomeId)
                {
                    Utlis.WriteLine("CALL 收到推送 推送住宅和之前注册登录的住宅一致");
                    CheckCallStateAndGotoPage();
                }
                else
                {
                    //注意:之前没登录SIP账号或者住宅不一致的情况下需要重新获取SIP账号
                    //获取呼叫住宅的SIP账号并登录
                    Utlis.WriteLine("CALL 收到推送 其他住宅,重新获取呼叫住宅的SIP账号并登录");
                    new Thread(() =>
                    {
                        GetHDLSipInfoAndInitSDK(mESVideoInfo.HomeId, false);
                    })
                    { IsBackground = false }.Start();
                //
                CheckCallStateAndGotoPage();
                    //
                    CheckCallStateAndGotoPage();
                }
            }
        }
@@ -458,14 +491,14 @@
        /// 检测来电状态,判断是否马上打开呼叫页面,如果还没来电则开启线程检测等待
        /// </summary>
        /// <param name="mESVideoInfo"></param>
        public void CheckCallStateAndGotoPage()
        public void CheckCallStateAndGotoPage(bool isHdlLinphone = false)
        {
            //如果开启了自动跳转方案,则无需继续下面处理、无需手动跳转
            if (IsAutoJumpCallView) return;
            //先结束掉之前的线程
            EndCheckIncomingCallThread();
            //检测是否来电了如果是直接调整呼叫页面如果不是则开启线程等待判断
            if (IsIncomingReceivedCallState()) {
            if (IsIncomingReceivedCallState()|| isHdlLinphone) {
                Utlis.WriteLine("CALL 已经来电了。。。打开呼叫页面");
                GoToHDLLinphoneIntercomActivity();
            }
HDL_ON/Entity/Function/Function.cs
@@ -1249,6 +1249,10 @@
        /// 空调
        /// </summary>
        public const string HvacAC = "hvac.ac";
        /// <summary>
        /// 毛细管空调
        /// </summary>
        public const string HvacCac = "hvac.cac";
        /// <summary>
        /// 空调spk列表
HDL_ON/HDL_ON.projitems
@@ -489,6 +489,7 @@
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AboutOn\SupportHomeKitNotesPage.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AboutOn\FirmwareUpdateView.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\DoorLock\DoorLockUnlockPage.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\1ContorlPage\CacControlPage.cs" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="$(MSBuildThisFileDirectory)Entity\Device\" />
HDL_ON/UI/UI0-Public/AppUnlockPage.cs
@@ -1,4 +1,5 @@
using System;
using HDL_ON.DAL.Server;
using Shared;
namespace HDL_ON.UI
{
@@ -75,6 +76,25 @@
                {
                    if (UserInfo.Current.unlockTime.AddMinutes(5) > DateTime.Now || UserInfo.Current.appUnlockPasswrod == "" || UserInfo.Current.appUnlockPage.Count == 0)
                    {
                        if(UserInfo.Current.inCall.AddMinutes(30) > DateTime.Now ||
                            UserInfo.Current.inVideo)
                        {
                            //UserInfo.Current.PushMesLogTime = DateTime.MinValue;
                            //var pushMes = new JPushMessageInfo()
                            //{
                            //    Title = UserInfo.Current.PushMesTitle,
                            //    Content = UserInfo.Current.PushMesMessage,
                            //    Extras = UserInfo.Current.PushMesExtras,
                            //    messageType = UserInfo.Current.pushMesMessageType,
                            //    expantContent = UserInfo.Current.pushMesExpantContent,
                            //    HomeId = UserInfo.Current.PushMesHomeId,
                            //};
                            Shared.Application.RunOnMainThread(() =>
                            {
                                HDLCommon.Current.AdjustPushMessage(UserInfo.Current.pushMessageInfo);
                            });
                        }
                        return;
                    }
                }
HDL_ON/UI/UI0-Public/PublicAssmebly.cs
@@ -422,6 +422,95 @@
            })
            { IsBackground = true }.Start();
        }
        /// <summary>
        /// 可视对讲呼叫弹窗
        /// </summary>
        public void TipLinphoneCall(String msg, ESVideoInfo mESVideoInfo)
        {
            UserInfo.Current.alreadyShowCallInDialog = true;
            Dialog dialog = new Dialog();
            FrameLayout dialogBody = new FrameLayout();
            dialog.AddChidren(dialogBody);
            FrameLayout frame = new FrameLayout()
            {
                Gravity = Gravity.Center,
                Width = Application.GetRealWidth(263),
                Height = Application.GetRealHeight(145),
                BackgroundColor = 0xE6FFFFFF ,
                Radius = (uint)Application.GetRealWidth(12),
            };
            dialog.AddChidren(frame);
            Button btnTipIcon = new Button()
            {
                X = Application.GetRealWidth(26),
                Y = Application.GetRealHeight(20),
                Width = Application.GetRealWidth(32),
                Height = Application.GetRealWidth(32),
                UnSelectedImagePath = "Public/MsgIcon/CallIcon.png" ,
            };
            frame.AddChidren(btnTipIcon);
            Button btnTipMsg = new Button()
            {
                Y = Application.GetRealHeight(5),
                X = Application.GetRealWidth(60),
                Height = Application.GetRealHeight(52),
                Width = Application.GetRealWidth(160),
                TextAlignment = TextAlignment.CenterLeft,
                TextSize = CSS_FontSize.TextFontSize,
                TextColor =  CSS_Color.FirstLevelTitleColor ,
                IsMoreLines = true,
                Text = msg
            };
            frame.AddChidren(btnTipMsg);
            Button btnHangUpIcon = new Button()
            {
                X = Application.GetRealWidth(45),
                Y = Application.GetRealHeight(78),
                Width = Application.GetRealWidth(52),
                Height = Application.GetRealWidth(52),
                UnSelectedImagePath = "Public/MsgIcon/HangUpIcon.png",
            };
            frame.AddChidren(btnHangUpIcon);
            btnHangUpIcon.MouseUpEventHandler = (sender, e) => {
                HDLLinphone.Current.ShowESVideoMonitor(mESVideoInfo, true,true);
                //Com.Hdl.Hdllinphonesdk.HDLLinphoneKit.Instance.HangUp();
                UserInfo.Current.alreadyShowCallInDialog = false;
                dialog.Close();
            };
            Button btnAnswerIcon = new Button()
            {
                X = Application.GetRealWidth(167),
                Y = Application.GetRealHeight(78),
                Width = Application.GetRealWidth(52),
                Height = Application.GetRealWidth(52),
                UnSelectedImagePath = "Public/MsgIcon/AnswerIcon.png",
            };
            frame.AddChidren(btnAnswerIcon);
            btnAnswerIcon.MouseUpEventHandler = (sender, e) => {
                HDLLinphone.Current.ShowESVideoMonitor(mESVideoInfo,true);
                UserInfo.Current.alreadyShowCallInDialog = false;
                dialog.Close();
            };
            dialog.Show();
        }
        /// <summary>
        /// 加载提示弹窗
        /// </summary>
HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/CacControlPage.cs
New file
@@ -0,0 +1,1106 @@
using System;
using System.Collections.Generic;
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
using HDL_ON.Stan;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
    public class CacControlPage : DeviceFunctionCardCommonForm
    {
        #region ■ 变量声明___________________________
        /// <summary>
        /// 空调温度控制控件
        /// </summary>
        DiyArcSeekBar arcBar;
        /// <summary>
        /// 减号按钮
        /// </summary>
        Button btnMinus;
        /// <summary>
        /// 加号按钮
        /// </summary>
        Button btnPlus;
        /// <summary>
        /// 温度按钮
        /// </summary>
        Button btnTemp;
        Button btnTempUint;
        /// <summary>
        /// 室内温度按钮
        /// </summary>
        Button btnIndoorTemp;
        /// <summary>
        /// 模式按钮
        /// </summary>
        Button btnMode;
        /// <summary>
        /// 扫风按钮
        /// </summary>
        Button btnSwing;
        /// <summary>
        /// 风速按钮
        /// </summary>
        Button btnWindSpeed;
        /// <summary>
        /// 开关按钮
        /// </summary>
        Button btnSwitch;
        AC acFunction = new AC();
        /// <summary>
        /// 控制时间
        /// </summary>
        DateTime controlTime = DateTime.MinValue.AddDays(10);
        /// <summary>
        /// 控制温度
        /// </summary>
        int temp = 16;
        #endregion
        #region ■ 初始化_____________________________
        /// <summary>
        /// 初始化白色区域的内容
        /// </summary>
        public override void InitFrameWhiteContent()
        {
            var sk = device.GetAttribute(FunctionAttributeKey.SetTemp);
            if (sk != null)
            {
                if (sk.min == 0)
                {
                    sk.min = 16;
                }
                if (sk.max == 0)
                {
                    sk.max = 32;
                }
            }
            base.ShowColltionButton = false;
            base.SetTitleText(Language.StringByID(StringId.Electric));
            //初始化第一个索引页的内容
            this.InitFrameWhiteContent1();
            //刷新当前设备的状态缓存
            this.RefreshNowDeviceStatuMemory(this.device);
            //刷新界面状态
            this.RefreshFormStatu();
            //读取状态
            new System.Threading.Thread(() =>
            {
                while (true)
                {
                    if (controlTime == DateTime.MinValue)
                    {
                    }
                    else if (controlTime.AddSeconds(2) < DateTime.Now)
                    {
                        Control.Ins.SendReadCommand(device);
                        controlTime = DateTime.MinValue;
                    }
                    System.Threading.Thread.Sleep(1000);
                }
            })
            { IsBackground = true }.Start();
        }
        /// <summary>
        /// 初始化第一个索引页的内容
        /// </summary>
        private void InitFrameWhiteContent1()
        {
            temp = (int)Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp).Replace(",", "."));
            arcBar = new DiyArcSeekBar()
            {
                Gravity = Gravity.CenterHorizontal,
                OpenAngle = 160,
                ThumbImageHeight = Application.GetRealWidth(50),
                ProgressBarColor = CSS_Color.MainColor,
                OfflineProgressBarColor = CSS_Color.PromptingColor2,
                ArcColor = CSS_Color.BackgroundColor,
#if __IOS__
                Y = Application.GetRealHeight(120 + 25),
                Width = Application.GetRealWidth(260 - 40),
                Height = Application.GetRealWidth(260 - 40),
                SeekBarPadding = Application.GetRealWidth(8),
#else
                Y = Application.GetRealHeight(120 + 40),
                Width = Application.GetRealWidth(260 - 40),
                Height = Application.GetRealWidth(260 - 40),
                SeekBarPadding = Application.GetRealWidth(7),
#endif
            };
            FrameWhiteCentet1.AddChidren(arcBar);
            arcBar.ThumbImagePath = device.GetAttrState(FunctionAttributeKey.OnOff) == "on" ? "FunctionIcon/AC/DiyThumbIconOn.png" : "FunctionIcon/AC/DiyThumbIcon.png";
            arcBar.IsOffline = device.GetAttrState(FunctionAttributeKey.OnOff) == "off";
            arcBar.MinValue = device.GetAttribute(FunctionAttributeKey.SetTemp).min;
            arcBar.MaxValue = device.GetAttribute(FunctionAttributeKey.SetTemp).max;
            arcBar.Progress = (int)Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp).Replace(",", "."));
            btnTemp = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(206),
                Width = Application.GetRealWidth(71),
                Height = Application.GetRealWidth(60),
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = 50,
                IsBold = true,
                Text = Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp).Replace(",", ".")).ToString(),
                TextAlignment = TextAlignment.Center,
            };
            FrameWhiteCentet1.AddChidren(btnTemp);
            btnTempUint = new Button()
            {
                X = btnTemp.Right,
                Y = btnTemp.Y,
                Width = Application.GetRealWidth(30),
                Height = Application.GetRealHeight(30),
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
                IsBold = true,
                TextAlignment = TextAlignment.CenterLeft,
                Text = "°C",
            };
            FrameWhiteCentet1.AddChidren(btnTempUint);
            btnIndoorTemp = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = btnTemp.Bottom,
                Width = Application.GetRealWidth(120),
                Height = Application.GetRealHeight(20),
                Text = Language.StringByID(StringId.IndoorTemp) + "20°C",
                TextColor = CSS_Color.PromptingColor1,
                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
            };
            FrameWhiteCentet1.AddChidren(btnIndoorTemp);
            btnMinus = new Button()
            {
                X = Application.GetRealWidth(21),
                Y = Application.GetRealHeight(263),
                Width = Application.GetRealWidth(32),
                Height = Application.GetRealWidth(32),
                UnSelectedImagePath = "Public/MinusSignIcon.png",
            };
            FrameWhiteCentet1.AddChidren(btnMinus);
            btnPlus = new Button()
            {
                X = Application.GetRealWidth(275),
                Y = Application.GetRealHeight(263),
                Width = Application.GetRealWidth(32),
                Height = Application.GetRealWidth(32),
                UnSelectedImagePath = "Public/PlusSignIcon.png",
            };
            FrameWhiteCentet1.AddChidren(btnPlus);
            btnMode = new Button()
            {
                X = Application.GetRealWidth(60),
                Y = Application.GetRealHeight(334),
                Width = Application.GetRealWidth(30),
                Height = Application.GetRealWidth(30),
                UnSelectedImagePath = acFunction.GetModeIconPath(device.GetAttrState(FunctionAttributeKey.Mode)),
            };
            FrameWhiteCentet1.AddChidren(btnMode);
            btnSwing = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(330),
                Width = Application.GetRealWidth(40),
                Height = Application.GetRealWidth(40),
                UnSelectedImagePath = "FunctionIcon/AC/SweepIconNullOn.png",
            };
            if (device.GetAttribute(FunctionAttributeKey.Swing) != null)
            {
                FrameWhiteCentet1.AddChidren(btnSwing);
            }
            btnWindSpeed = new Button()
            {
                X = Application.GetRealWidth(235),
                Y = Application.GetRealHeight(337),
                Width = Application.GetRealWidth(30),
                Height = Application.GetRealWidth(30),
                UnSelectedImagePath = acFunction.GetFanIconPath(device.GetAttrState(FunctionAttributeKey.FanSpeed)),
            };
            FrameWhiteCentet1.AddChidren(btnWindSpeed);
            btnSwitch = new Button()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(466),
                Width = Application.GetRealWidth(32),
                Height = Application.GetRealWidth(32),
                UnSelectedImagePath = "Public/PowerClose.png",
                SelectedImagePath = "Public/PowerOpen.png",
                IsSelected = device.GetAttrState(FunctionAttributeKey.OnOff) == "on"
            };
            FrameWhiteCentet1.AddChidren(btnSwitch);
            LoadEvent_TempChange();
            LoadEvent_AcStatesChange();
            LoadDiv_IrView();
        }
        /// <summary>
        /// 加载修改模式区域
        /// </summary>
        void LoadDiv_ChangeModeView()
        {
            Dialog dialog = new Dialog();
            FrameLayout dialogView = new FrameLayout()
            {
                BackgroundColor = CSS_Color.DialogTransparentColor1,
            };
            dialog.AddChidren(dialogView);
            FrameLayout modeChangeView;
            modeChangeView = new FrameLayout()
            {
                X = Application.GetRealWidth(30),
                Y = Application.GetRealHeight(128),
                Width = Application.GetRealWidth(160),
                Height = Application.GetRealHeight(287),
                BackgroundImagePath = "FunctionIcon/AC/DivBg1.png",
            };
            dialogView.AddChidren(modeChangeView);
            Button btnTitle;
            btnTitle = new Button()
            {
                X = Application.GetRealWidth(8 + 16),
                Y = Application.GetRealHeight(8),
                Width = Application.GetRealWidth(112),
                Height = Application.GetRealHeight(44),
                TextID = StringId.ChooseMode,
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
            };
            modeChangeView.AddChidren(btnTitle);
            Button btnLine = new Button()
            {
                X = btnTitle.X,
                Y = btnTitle.Bottom,
                Width = Application.GetRealWidth(112),
                Height = Application.GetRealHeight(1),
                BackgroundColor = CSS_Color.BackgroundColor,
            };
            modeChangeView.AddChidren(btnLine);
            var modeList = device.GetAttribute(FunctionAttributeKey.Mode).value;
            foreach (var m in modeList)
            {
                Button btnModeIcon = new Button()
                {
                    X = btnTitle.X,
                    Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 10 + 8),
                    Width = Application.GetRealWidth(24),
                    Height = Application.GetRealWidth(24),
                    IsSelected = device.GetAttrState(FunctionAttributeKey.Mode) == m,
                };
                modeChangeView.AddChidren(btnModeIcon);
                Button btnModeText = new Button()
                {
                    X = Application.GetRealWidth(12) + btnModeIcon.Right,
                    Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 8),
                    Height = Application.GetRealHeight(44),
                    Width = Application.GetRealWidth(90),
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    SelectedTextColor = CSS_Color.MainColor,
                    IsSelected = device.GetAttrState(FunctionAttributeKey.Mode) == m,
                    TextSize = CSS_FontSize.TextFontSize,
                };
                modeChangeView.AddChidren(btnModeText);
                btnModeIcon.UnSelectedImagePath = acFunction.GetModeIconPath(m, false);
                btnModeIcon.SelectedImagePath = acFunction.GetModeIconPath(m);
                btnModeText.Text = acFunction.GetModeAttrText(m);
                if (modeList.IndexOf(m) < modeList.Count - 1)
                {
                    modeChangeView.AddChidren(new Button()
                    {
                        X = btnTitle.X,
                        Y = btnModeText.Bottom,
                        Width = Application.GetRealWidth(112),
                        Height = Application.GetRealHeight(1),
                        BackgroundColor = CSS_Color.BackgroundColor,
                    });
                }
                EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
                {
                    dialog.Close();
                };
                EventHandler<MouseEventArgs> eventHandler1 = (sender, e) =>
                {
                    //if (!device.online)
                    //{
                    //    new Tip()
                    //    {
                    //        CloseTime = 1,
                    //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
                    //        Direction = AMPopTipDirection.None,
                    //    }.Show(MainPage.BaseView);
                    //}
                    btnModeIcon.IsSelected = btnModeText.IsSelected = true;
                    device.SetAttrState(FunctionAttributeKey.Mode, m);
                    btnMode.UnSelectedImagePath = acFunction.GetModeIconPath(m);
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add(FunctionAttributeKey.Mode, m);
                    Control.Ins.SendWriteCommand(device, d);
                    dialog.Close();
                    if (device.GetAttrState(FunctionAttributeKey.Mode) == "fan")
                    {
                        arcBar.IsClickable = false;
                        arcBar.IsOffline = true;
                    }
                    else
                    {
                        arcBar.IsOffline = false;
                        arcBar.IsClickable = true;
                    }
                };
                btnModeIcon.MouseUpEventHandler = eventHandler1;
                btnModeText.MouseUpEventHandler = eventHandler1;
                dialogView.MouseUpEventHandler = eventHandler;
            }
            dialogView.MouseUpEventHandler = (sender, e) => {
                dialog.Close();
            };
            dialog.Show();
        }
        /// <summary>
        /// 加载修改扫风模式区域
        /// </summary>
        void LoadDiv_ChangeSwingView()
        {
            Dialog dialog = new Dialog();
            FrameLayout dialogView = new FrameLayout()
            {
                BackgroundColor = CSS_Color.DialogTransparentColor1,
            };
            dialog.AddChidren(dialogView);
            FrameLayout modeChangeView;
            modeChangeView = new FrameLayout()
            {
                Gravity = Gravity.CenterHorizontal,
                Y = Application.GetRealHeight(128),
                Width = Application.GetRealWidth(160),
                Height = Application.GetRealHeight(287),
                BackgroundImagePath = "FunctionIcon/AC/DivBg2.png",
            };
            dialogView.AddChidren(modeChangeView);
            Button btnTitle;
            btnTitle = new Button()
            {
                X = Application.GetRealWidth(8 + 16),
                Y = Application.GetRealHeight(8),
                Width = Application.GetRealWidth(112),
                Height = Application.GetRealHeight(44),
                TextID = StringId.Swing,
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
            };
            modeChangeView.AddChidren(btnTitle);
            Button btnLine = new Button()
            {
                X = btnTitle.X,
                Y = btnTitle.Bottom,
                Width = Application.GetRealWidth(112),
                Height = Application.GetRealHeight(1),
                BackgroundColor = CSS_Color.BackgroundColor,
            };
            modeChangeView.AddChidren(btnLine);
            var modeList = device.GetAttribute(FunctionAttributeKey.Swing).value;
            foreach (var m in modeList)
            {
                Button btnModeIcon = new Button()
                {
                    X = btnTitle.X,
                    Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 10 + 8),
                    Width = Application.GetRealWidth(24),
                    Height = Application.GetRealWidth(24),
                    IsSelected = device.GetAttrState(FunctionAttributeKey.Swing) == m,
                };
                modeChangeView.AddChidren(btnModeIcon);
                Button btnModeText = new Button()
                {
                    X = Application.GetRealWidth(12) + btnModeIcon.Right,
                    Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 8),
                    Height = Application.GetRealHeight(44),
                    Width = Application.GetRealWidth(90),
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    SelectedTextColor = CSS_Color.MainColor,
                    IsSelected = device.GetAttrState(FunctionAttributeKey.Swing) == m,
                    TextSize = CSS_FontSize.TextFontSize,
                };
                modeChangeView.AddChidren(btnModeText);
                if (modeList.IndexOf(m) < modeList.Count - 1)
                {
                    modeChangeView.AddChidren(new Button()
                    {
                        X = btnTitle.X,
                        Y = btnModeText.Bottom,
                        Width = Application.GetRealWidth(112),
                        Height = Application.GetRealHeight(1),
                        BackgroundColor = CSS_Color.BackgroundColor,
                    });
                }
                btnModeIcon.UnSelectedImagePath = acFunction.GetSwingIconPath(m, false);
                btnModeIcon.SelectedImagePath = acFunction.GetSwingIconPath(m);
                btnModeText.Text = acFunction.GetSwingAttrText(m);
                EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
                {
                    dialog.Close();
                };
                EventHandler<MouseEventArgs> eventHandler1 = (sender, e) =>
                {
                    //if (!device.online)
                    //{
                    //    new Tip()
                    //    {
                    //        CloseTime = 1,
                    //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
                    //        Direction = AMPopTipDirection.None,
                    //    }.Show(MainPage.BaseView);
                    //}
                    btnModeIcon.IsSelected = btnModeText.IsSelected = true;
                    device.SetAttrState(FunctionAttributeKey.Swing, m);
                    btnSwing.UnSelectedImagePath = acFunction.GetSwingIconPath(m);
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add(FunctionAttributeKey.Swing, m);
                    Control.Ins.SendWriteCommand(device, d);
                    dialog.Close();
                };
                btnModeIcon.MouseUpEventHandler = eventHandler1;
                btnModeText.MouseUpEventHandler = eventHandler1;
                dialogView.MouseUpEventHandler = eventHandler;
            }
            dialogView.MouseUpEventHandler = (sender, e) => {
                dialog.Close();
            };
            dialog.Show();
        }
        /// <summary>
        /// 加载修改模式区域
        /// </summary>
        void LoadDiv_ChangeFanView()
        {
            Dialog dialog = new Dialog();
            FrameLayout dialogView = new FrameLayout()
            {
                BackgroundColor = CSS_Color.DialogTransparentColor1,
            };
            dialog.AddChidren(dialogView);
            FrameLayout modeChangeView;
            modeChangeView = new FrameLayout()
            {
                X = Application.GetRealWidth(185),
                Y = Application.GetRealHeight(172),
                Width = Application.GetRealWidth(160),
                Height = Application.GetRealHeight(243),
                BackgroundImagePath = "FunctionIcon/AC/DivBg2.png",
            };
            dialogView.AddChidren(modeChangeView);
            Button btnTitle;
            btnTitle = new Button()
            {
                X = Application.GetRealWidth(8 + 16),
                Y = Application.GetRealHeight(8),
                Width = Application.GetRealWidth(112),
                Height = Application.GetRealHeight(44),
                TextID = StringId.ChooseFan,
                TextAlignment = TextAlignment.CenterLeft,
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = CSS_FontSize.EmphasisFontSize_Secondary,
            };
            modeChangeView.AddChidren(btnTitle);
            Button btnLine = new Button()
            {
                X = btnTitle.X,
                Y = btnTitle.Bottom,
                Width = Application.GetRealWidth(112),
                Height = Application.GetRealHeight(1),
                BackgroundColor = CSS_Color.BackgroundColor,
            };
            modeChangeView.AddChidren(btnLine);
            var modeList = device.GetAttribute(FunctionAttributeKey.FanSpeed).value;
            foreach (var m in modeList)
            {
                Button btnFanIcon = new Button()
                {
                    X = btnTitle.X,
                    Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 10 + 8),
                    Width = Application.GetRealWidth(24),
                    Height = Application.GetRealWidth(24),
                    IsSelected = device.GetAttrState(FunctionAttributeKey.FanSpeed) == m,
                };
                modeChangeView.AddChidren(btnFanIcon);
                Button btnFanText = new Button()
                {
                    X = Application.GetRealWidth(12) + btnFanIcon.Right,
                    Y = Application.GetRealHeight(44 * (modeList.IndexOf(m) + 1) + 8),
                    Height = Application.GetRealHeight(44),
                    Width = Application.GetRealWidth(70),
                    TextAlignment = TextAlignment.CenterLeft,
                    TextColor = CSS_Color.FirstLevelTitleColor,
                    SelectedTextColor = CSS_Color.MainColor,
                    IsSelected = device.GetAttrState(FunctionAttributeKey.FanSpeed) == m,
                    TextSize = CSS_FontSize.TextFontSize,
                };
                modeChangeView.AddChidren(btnFanText);
                btnFanIcon.UnSelectedImagePath = acFunction.GetFanIconPath(m, false);
                btnFanIcon.SelectedImagePath = acFunction.GetFanIconPath(m);
                btnFanText.Text = acFunction.GetFanAttrText(m);
                if (modeList.IndexOf(m) < modeList.Count - 1)
                {
                    modeChangeView.AddChidren(new Button()
                    {
                        X = btnTitle.X,
                        Y = btnFanText.Bottom,
                        Width = Application.GetRealWidth(112),
                        Height = Application.GetRealHeight(1),
                        BackgroundColor = CSS_Color.BackgroundColor,
                    });
                }
                EventHandler<MouseEventArgs> closeDialogEvent = (sender, e) =>
                {
                    dialog.Close();
                };
                EventHandler<MouseEventArgs> eventHandler1 = (sender, e) =>
                {
                    //if (!device.online)
                    //{
                    //    new Tip()
                    //    {
                    //        CloseTime = 1,
                    //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
                    //        Direction = AMPopTipDirection.None,
                    //    }.Show(MainPage.BaseView);
                    //}
                    btnFanIcon.IsSelected = btnFanText.IsSelected = true;
                    device.SetAttrState(FunctionAttributeKey.FanSpeed, m);
                    btnWindSpeed.UnSelectedImagePath = acFunction.GetFanIconPath(m);
                    System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
                    d.Add(FunctionAttributeKey.FanSpeed, m);
                    Control.Ins.SendWriteCommand(device, d);
                    //btnWindSpeed.UnSelectedImagePath = btnFanIcon.UnSelectedImagePath;
                    dialog.Close();
                };
                btnFanIcon.MouseUpEventHandler = eventHandler1;
                btnFanText.MouseUpEventHandler = eventHandler1;
                dialogView.MouseUpEventHandler = closeDialogEvent;
            }
            dialog.Show();
        }
        /// <summary>
        /// 加载红外遥控器,额外按钮
        /// </summary>
        void LoadDiv_IrView()
        {
            if (device.spk == SPK.AcIr)
            {
                var btnMore = new Button()
                {
                    Gravity = Gravity.CenterHorizontal,
                    Y = Application.GetRealHeight(334 + 80),
                    Width = Application.GetRealWidth(35),
                    Height = Application.GetRealWidth(35),
                    UnSelectedImagePath = "FunctionIcon/AC/More.png",
                };
                FrameWhiteCentet1.AddChidren(btnMore);
                btnMore.MouseUpEventHandler = (sender, e) => {
                    LoadDialog_IrMoreView();
                };
            }
        }
        /// <summary>
        /// 加载额外对红外按钮界面
        /// </summary>
        void LoadDialog_IrMoreView()
        {
            Dialog dialog = new Dialog();
            var div = new FrameLayout();
            dialog.AddChidren(div);
            div.MouseUpEventHandler = (sender, e) => {
                dialog.Close();
            };
            var bodyView = new FrameLayout()
            {
                Y = Application.GetRealHeight(427),//667
                Height = Application.GetRealHeight(240),
                BackgroundColor = CSS_Color.MainBackgroundColor,
            };
            div.AddChidren(bodyView);
            var contentView = new VerticalScrolViewLayout()
            {
                Y = Application.GetRealHeight(16),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(296 + 200),
            };
            bodyView.AddChidren(contentView);
            var row = new FrameLayout()
            {
                Height = Application.GetRealHeight(60),
                Width = Application.GetRealWidth(296),
                Gravity = Gravity.CenterHorizontal,
            };
            contentView.AddChidren(row);
            int index = 0;
            List<FunctionAttributes> attrList = new List<FunctionAttributes>();
            attrList.AddRange(device.attributes);
            attrList.Add(new FunctionAttributes()
            {
                key = "+",
            });
            foreach (var attr in attrList)
            {
                if (attr.key == FunctionAttributeKey.Mode
                    || attr.key == FunctionAttributeKey.OnOff
                    || attr.key == FunctionAttributeKey.SetTemp
                    || attr.key == FunctionAttributeKey.SetTempStep
                    || attr.key == FunctionAttributeKey.FanSpeed
                    || attr.key == FunctionAttributeKey.FanManual
                    || attr.key == FunctionAttributeKey.FanAuto
                    )
                {
                    continue;
                }
                if (index != 0 && index % 3 == 0)
                {
                    row = new FrameLayout()
                    {
                        Height = Application.GetRealHeight(56),
                        Width = Application.GetRealWidth(296),
                        Gravity = Gravity.CenterHorizontal,
                    };
                    contentView.AddChidren(row);
                }
                if (attr.key == "+")
                {
                    var addView = new FrameLayout()
                    {
                        Gravity = Gravity.CenterVertical,
                        Width = Application.GetRealWidth(88),
                        Height = Application.GetRealHeight(40),
                        Radius = (uint)Application.GetRealHeight(18),
                        BorderColor = CSS_Color.PromptingColor1,
                        BorderWidth = (uint)Application.GetRealWidth(2),
                    };
                    if (index % 3 == 1)
                    {
                        addView.Gravity = Gravity.Center;
                    }
                    else if (index % 3 == 2)
                    {
                        addView.X = Application.GetRealWidth(208);
                    }
                    row.AddChidren(addView);
                    var btnAdd = new Button()
                    {
                        Gravity = Gravity.Center,
                        UnSelectedImagePath = "Public/PlusSignIcon.png",
                        Width = Application.GetRealWidth(32),
                        Height = Application.GetRealWidth(32),
                    };
                    addView.AddChidren(btnAdd);
                    btnAdd.MouseUpEventHandler = (sender, e) =>
                    {
                        dialog.Close();
                        Action action = () => {
                            LoadDialog_IrMoreView();
                        };
                        var addButton = new AcControlPage_AddIrButton(action);
                        MainPage.BasePageView.AddChidren(addButton);
                        addButton.Show(device);
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    };
                }
                else
                {
                    var btn = new Button()
                    {
                        Gravity = Gravity.CenterVertical,
                        Width = Application.GetRealWidth(88),
                        Height = Application.GetRealHeight(40),
                        Radius = (uint)Application.GetRealHeight(18),
                        BorderColor = CSS_Color.PromptingColor1,
                        BorderWidth = (uint)Application.GetRealWidth(2),
                        TextAlignment = TextAlignment.Center,
                        TextSize = CSS_FontSize.TextFontSize,
                        TextColor = CSS_Color.FirstLevelTitleColor,
                        SelectedTextColor = CSS_Color.MainBackgroundColor,
                        SelectedBackgroundColor = CSS_Color.MainColor,
                    };
                    if (attr.value.Count > 0)
                    {
                        btn.Text = attr.value[0];
                    }
                    if (index % 3 == 1)
                    {
                        btn.Gravity = Gravity.Center;
                    }
                    else if (index % 3 == 2)
                    {
                        btn.X = Application.GetRealWidth(208);
                    }
                    row.AddChidren(btn);
                    btn.MouseUpEventHandler = (sender, e) =>
                    {
                        //if (!device.online)
                        //{
                        //    new Tip()
                        //    {
                        //        CloseTime = 1,
                        //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
                        //        Direction = AMPopTipDirection.None,
                        //    }.Show(MainPage.BaseView);
                        //}
                        Dictionary<string, string> d = new Dictionary<string, string>();
                        d.Add(attr.key, "");
                        Control.Ins.SendWriteCommand(device, d);
                        new System.Threading.Thread(() =>
                        {
                            System.Threading.Thread.Sleep(2000);
                            Application.RunOnMainThread(() =>
                            {
                                btn.IsSelected = false;
                            });
                        })
                        { IsBackground = true }.Start();
                    };
                }
                index++;
            }
            dialog.Show();
        }
        #endregion
        #region ■ 设备状态反馈_______________________
        /// <summary>
        /// 设备状态反馈
        /// </summary>
        /// <param name="i_LocalDevice"></param>
        public override void DeviceStatuPush(Function i_LocalDevice)
        {
            //不是同一个东西
            if (this.device.sid != i_LocalDevice.sid) { return; }
            //刷新当前设备的状态缓存
            this.RefreshNowDeviceStatuMemory(i_LocalDevice);
            //刷新界面状态
            this.RefreshFormStatu();
        }
        #endregion
        #region ■ 发送各种命令_______________________
        /// <summary>
        /// 温度改变模式
        /// </summary>
        void LoadEvent_TempChange()
        {
            btnMinus.MouseUpEventHandler = (sender, e) =>
            {
                //if (!device.online)
                //{
                //    new Tip()
                //    {
                //        CloseTime = 1,
                //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
                //        Direction = AMPopTipDirection.None,
                //    }.Show(MainPage.BaseView);
                //}
                if (device.trait_on_off.curValue.ToString() == "off" || device.GetAttrState(FunctionAttributeKey.Mode) == "fan")
                {
                    return;
                }
                if (temp <= device.GetAttribute(FunctionAttributeKey.SetTemp).min)
                {
                    return;
                }
                --temp;
                Console.WriteLine($"temp == {temp}");
                controlTime = DateTime.Now;
                arcBar.Progress = temp;
                btnTemp.Text = temp.ToString();
                device.SetAttrState(FunctionAttributeKey.SetTemp, temp.ToString());
                System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
                d.Add(FunctionAttributeKey.SetTemp, temp.ToString());
                Control.Ins.SendWriteCommand(device, d);
            };
            btnPlus.MouseUpEventHandler = (sender, e) =>
            {
                //if (!device.online)
                //{
                //    new Tip()
                //    {
                //        CloseTime = 1,
                //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
                //        Direction = AMPopTipDirection.None,
                //    }.Show(MainPage.BaseView);
                //}
                if (device.trait_on_off.curValue.ToString() == "off" || device.GetAttrState(FunctionAttributeKey.Mode) == "fan")
                {
                    return;
                }
                if (temp >= device.GetAttribute(FunctionAttributeKey.SetTemp).max)
                {
                    return;
                }
                ++temp;
                controlTime = DateTime.Now;
                arcBar.Progress = temp;
                btnTemp.Text = temp.ToString();
                device.SetAttrState(FunctionAttributeKey.SetTemp, temp.ToString());
                System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
                d.Add(FunctionAttributeKey.SetTemp, temp.ToString());
                Control.Ins.SendWriteCommand(device, d);
            };
            //if (device.online)
            {
                arcBar.OnStopTrackingTouchEvent = (sender, e) =>
                {
                    temp = arcBar.Progress;
                    device.SetAttrState(FunctionAttributeKey.SetTemp, arcBar.Progress.ToString());
                    btnTemp.Text = arcBar.Progress.ToString();
                    controlTime = DateTime.Now;
                    Dictionary<string, string> d = new Dictionary<string, string>();
                    d.Add(FunctionAttributeKey.SetTemp, arcBar.Progress.ToString());
                    Control.Ins.SendWriteCommand(device, d);
                };
                arcBar.OnProgressChangedEvent = (sender, e) =>
                {
                    device.SetAttrState(FunctionAttributeKey.SetTemp, e.ToString());
                    btnTemp.Text = e.ToString();
                };
                //arcBar.MouseDownEventHandler = (sender, e) => {
                //    Console.WriteLine("ddd");
                //    MainPage.BasePageView.ScrollEnabled =false;
                //};
                //arcBar.MouseUpEventHandler = (sender, e) => {
                //    Console.WriteLine("ddd2");
                //    MainPage.BasePageView.ScrollEnabled = true;
                //};
            }
        }
        /// <summary>
        /// 控制模式事件
        /// </summary>
        void LoadEvent_AcStatesChange()
        {
            btnMode.MouseUpEventHandler = (sender, e) =>
            {
                if (device.trait_on_off.curValue.ToString() == "off")
                {
                    return;
                }
                LoadDiv_ChangeModeView();
            };
            //扫风改变模式
            btnSwing.MouseUpEventHandler = (sender, e) =>
            {
                if (device.trait_on_off.curValue.ToString() == "off")
                {
                    return;
                }
                LoadDiv_ChangeSwingView();
            };
            btnWindSpeed.MouseUpEventHandler = (sender, e) =>
            {
                if (device.trait_on_off.curValue.ToString() == "off")
                {
                    return;
                }
                LoadDiv_ChangeFanView();
            };
            btnSwitch.MouseUpEventHandler = (sender, e) =>
            {
                //if (!device.online)
                //{
                //    new Tip()
                //    {
                //        CloseTime = 1,
                //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
                //        Direction = AMPopTipDirection.None,
                //    }.Show(MainPage.BaseView);
                //}
                btnSwitch.IsSelected = !btnSwitch.IsSelected;
                device.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off";
                if (device.trait_on_off.curValue.ToString() == "on")
                {
                    arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIconOn.png";
                    btnSwitch.IsSelected = true;
                    arcBar.IsOffline = false;
                }
                else
                {
                    arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIcon.png";
                    btnSwitch.IsBold = false;
                    arcBar.IsOffline = true;
                }
                System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
                d.Add(FunctionAttributeKey.OnOff, device.trait_on_off.curValue.ToString());
                Control.Ins.SendWriteCommand(device, d);
            };
        }
        #endregion
        #region ■ 刷新界面状态_______________________
        /// <summary>
        /// 刷新界面状态
        /// </summary>
        private void RefreshFormStatu()
        {
            Application.RunOnMainThread(() =>
            {
                //app自己控制的不用更新,会造成跳动
                if (controlTime.AddSeconds(2) > DateTime.Now)
                {
                    return;
                }
                else
                {
                    btnIndoorTemp.Text = Language.StringByID(StringId.IndoorTemp) + Convert.ToInt32(Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.RoomTemp).Replace(",", "."))) + "°C";
                    btnMode.SelectedImagePath = acFunction.GetModeIconPath(device.GetAttrState(FunctionAttributeKey.Mode));
                    btnSwing.SelectedImagePath = acFunction.GetSwingIconPath(device.GetAttrState(FunctionAttributeKey.Swing));
                    btnWindSpeed.SelectedImagePath = acFunction.GetFanIconPath(device.GetAttrState(FunctionAttributeKey.FanSpeed));
                    btnMode.UnSelectedImagePath = acFunction.GetModeIconPath(device.GetAttrState(FunctionAttributeKey.Mode), false);
                    btnSwing.UnSelectedImagePath = acFunction.GetSwingIconPath(device.GetAttrState(FunctionAttributeKey.Swing), false);
                    btnWindSpeed.UnSelectedImagePath = acFunction.GetFanIconPath(device.GetAttrState(FunctionAttributeKey.FanSpeed), false);
                    temp = Convert.ToInt32(Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp).Replace(",", ".")));
                    arcBar.Progress = temp;
                    btnTemp.Text = temp.ToString();
                    if (device.trait_on_off.curValue.ToString() == "on")
                    {
                        btnMode.IsSelected = btnSwing.IsSelected = btnWindSpeed.IsSelected = true;
                        arcBar.IsOffline = false;
                        btnSwitch.IsSelected = true;
                        arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIconOn.png";
                        if (device.GetAttrState(FunctionAttributeKey.Mode) == "fan")
                        {
                            arcBar.IsClickable = false;
                        }
                        else
                        {
                            arcBar.IsClickable = true;
                        }
                    }
                    else
                    {
                        btnMode.IsSelected = btnSwing.IsSelected = btnWindSpeed.IsSelected = false;
                        arcBar.IsOffline = true;
                        btnSwitch.IsSelected = false;
                        arcBar.IsClickable = false;
                        arcBar.ThumbImagePath = "FunctionIcon/AC/DiyThumbIcon.png";
                    }
                    if (device.GetAttrState(FunctionAttributeKey.Mode) == "dry")
                    {
                        arcBar.IsOffline = true;
                        arcBar.IsClickable = false;
                    }
                }
            });
        }
        #endregion
        #region ■ 一般方法___________________________
        /// <summary>
        /// 刷新当前设备的状态缓存
        /// </summary>
        private void RefreshNowDeviceStatuMemory(Function i_LocalDevice)
        {
        }
        #endregion
    }
}
SiriIntents/Server/HttpUtil.cs
@@ -16,8 +16,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>