wei
2021-07-16 65d30e65eb0ee4168871e891984ea565b144c7f4
海林传感器主页显示
20个文件已修改
636 ■■■■■ 已修改文件
.vs/HDL_APP_Project/xs/UserPrefs.xml 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Application.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/LeChengVideo/Form/MonitorFragment.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/LeChengVideo/Form/ReverseCallFragment.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/LeChengVideoActivity.cs 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Properties/AndroidManifest.xml 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/Resource.designer.cs 348 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/values-zh/strings.xml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/values/strings.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Info.plist 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/FunctionList.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/MainPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI1-Login/LoginPage.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/1-HomePage/HomePage.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Video/VideoMainView.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/UserPage.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -1,23 +1,14 @@
<Properties StartupConfiguration="{D998E133-F0DD-4760-BE3C-461632F54DA4}|Default">
<Properties StartupConfiguration="{09712674-2A38-407B-B1E2-560B2C352F9A}|Default">
  <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.00008020-000404163432002E" />
  <MonoDevelop.Ide.Workbench ActiveDocument="HDL-ON_iOS/Info.plist">
  <MonoDevelop.Ide.Workbench>
    <Files>
      <File FileName="HDL_ON/UI/UI2/2-Classification/ClassificationPage.cs" Line="704" Column="80" />
      <File FileName="HDL_ON/UI/UI2/2-Classification/RoomPage.cs" />
      <File FileName="HDL_ON/DAL/Server/HttpUtil.cs" />
      <File FileName="HDL_ON/Common/ApiUtlis.cs" />
      <File FileName="HDL_ON/DAL/DriverLayer/Control.cs" />
      <File FileName="HDL_ON/DAL/DriverLayer/Control_Udp.cs" />
      <File FileName="HDL_ON/DAL/DriverLayer/Packet.cs" />
      <File FileName="HDL-ON_iOS/Info.plist" />
      <File FileName="HDL_ON/DAL/Server/HttpUtil.cs" Line="1" Column="1" />
    </Files>
    <Pads>
      <Pad Id="ProjectPad">
        <State name="__root__">
          <Node name="HDL_APP_Project" expanded="True">
            <Node name="HDL-ON_iOS" expanded="True">
              <Node name="Info.plist" selected="True" />
            </Node>
            <Node name="HDL-ON_Android" selected="True" />
          </Node>
        </State>
      </Pad>
HDL-ON_Android/Application.cs
@@ -128,8 +128,6 @@
                    //网络变化处理
                    HDLCommon.Current.UpdateInternetStatus((int)internetStatus, MainPage.IsEnterBackground);
                };
                //开启定位服务
                Shared.Application.StartGPSLocationService();
            };
            BaseActivity.RefreshUIAction += (activity) =>
            {
HDL-ON_Android/LeChengVideo/Form/MonitorFragment.cs
@@ -70,6 +70,8 @@
        private void Unlock()
        {
            //
            CurtActivity.Unlock();
            UpdataUnlockState();
        }
        /// <summary>
@@ -117,16 +119,17 @@
            if (v.Equals(unlockLayout))
            {
                //开锁
                Unlock();
            }
            else if (v.Equals(screenshotLayout))
            {
                //有视频过来可调用此接口进行拍照
                // 内部储存/DCIM/Camera/.....jpg
                screenImage.Selected = true;
                SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
                string time = format.Format(new Date(SystemClock.CurrentThreadTimeMillis()));
                string ss = Android.OS.Environment.ExternalStorageDirectory.Path + "/DCIM/Camera";
                string ss = Android.OS.Environment.ExternalStorageDirectory.Path + "/DCIM/HDL";
                string path = ss + "/" + time + ".jpg";
                CurtActivity.SnapShot(path);
            }
        }
HDL-ON_Android/LeChengVideo/Form/ReverseCallFragment.cs
@@ -98,6 +98,16 @@
        }
        /// <summary>
        /// 开锁
        /// </summary>
        private void Unlock()
        {
            //
            CurtActivity.Unlock();
            UpdataUnlockState();
        }
        /// <summary>
        /// 更新开锁按钮状态,开锁成功,15秒内不给再点击按钮
        /// </summary>
        private void UpdataUnlockState()
@@ -206,39 +216,17 @@
            else if (v.Equals(screenshotImg))
            {
                //有视频过来可调用此接口进行拍照
                screenshotImg.Selected = true;
                SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
                string time = format.Format(new Date(SystemClock.CurrentThreadTimeMillis()));
                string ss = Android.OS.Environment.ExternalStorageDirectory.Path + "/DCIM/Camera";
                string path = ss + "/" + time + ".jpg";
                CurtActivity.SnapShot(path);
            }
            else if (v.Equals(unlockImg))
            {
                PostUnlock();
                CurtActivity.Unlock();
            }
        }
        /// <summary>
        /// post 截图
        /// </summary>
        /// <param name="path">截图保留的路径</param>
        private void PostScreenshot(string path)
        {
            new Thread(() =>
            {
                try
                {
                    string[] str = path.Split("/");
                    string img_name = str.GetValue(str.Length - 1).ToString().Replace(".jpg", "");
                    byte[] images = FileUtlis.Files.ReadFileForPath(path);
                    Dictionary<string, object> d = new Dictionary<string, object>();
                    d.Add("callId", VideoActivity.CallId);
                    d.Add("images", images);
                    d.Add("imagesName", img_name);
                    string jsonString = HttpUtil.GetSignRequestJson(d);
                    string url = "/home-wisdom/app/fl/vi/screenshot";
                    ResponsePackNew response = HttpUtil.RequestHttpsPost(url, jsonString);
                    Log.Info("LcVideo", "Post Screenshot Response code=" + response.Code);
                }
                catch { }
            }).Start();
        }
        /// <summary>
HDL-ON_Android/LeChengVideoActivity.cs
@@ -21,6 +21,7 @@
using Com.Lechange.Opensdk.Media;
using HDL_ON.DAL.Server;
using HDL_ON_Android.LeChengView.Form;
using Java.IO;
using Java.Lang;
namespace HDL_ON_Android
@@ -37,6 +38,8 @@
        public string PlayToken = "";//播放playToken
        public string CallId = "";//呼叫Id
        private int Type = 0;//0监控,1对讲
        private string DeviceName = "";// 备注
        /// <summary>
        /// 0:国内,1海外
        /// </summary>
@@ -65,6 +68,7 @@
            Type = Intent.GetIntExtra("Type", 0);//0监控,1对讲//1
            Location = Intent.GetIntExtra("Location", 0);//1
            CallId = Intent.GetStringExtra("callId");//1384766990812426242
            DeviceName = Intent.GetStringExtra("DeviceName");
            InitLCSDK();
@@ -95,7 +99,7 @@
            ivBack = (ImageView)FindViewById(Resource.Id.videoBackImg);
            tvName = (TextView)FindViewById(Resource.Id.nameText);
            tvName.SetText("DeviceName", null);
            tvName.SetText(DeviceName, null);
            ivBack.SetOnClickListener(this);
        }
@@ -185,6 +189,84 @@
        }
        /// <summary>
        /// 开锁
        /// </summary>
        public void Unlock()
        {
            //
            Dictionary<string, object> dic = new Dictionary<string, object>();
            dic.Add("deviceId", this.DeviceId);
            dic.Add("callId", this.CallId);
            var requestJson = HttpUtil.GetSignRequestJson(dic);
            var revertObj = HttpUtil.RequestHttpsPostFroHome("/home-wisdom/platform/imou/openDoorbell", requestJson);
            if (revertObj.Code == StateCode.SUCCESS)
            {
                Toast.MakeText(this, Resources.GetString(Resource.String.unlock_success), ToastLength.Short).Show();
            }
            else
            {
                Toast.MakeText(this, Resources.GetString(Resource.String.unlock_fail), ToastLength.Short).Show();
            }
        }
        /// <summary>
        /// 截图
        /// </summary>
        /// <param name="path"></param>
        public void SnapShot(string path)
        {
            try
            {
                int code = mPlayWindow.SnapShot(path);
                if (code == 0)
                {
                    //Android.Provider.MediaStore.Images.Media.InsertImage(this.getContentResolver(), path, "ss", "ss");
                    Toast.MakeText(this, Resources.GetString(Resource.String.screenshot_success), ToastLength.Short).Show();
                }
                else
                {
                    Toast.MakeText(this, Resources.GetString(Resource.String.screenshot_fail), ToastLength.Short).Show();
                }
            }
            catch (System.Exception e)
            {
                string error = e.Message;
            }
            //运行到这,photoFile已经存在,这里需要获得这个文件的uri
            //* 分两种情况,android7.0以上和以下
            // 先存入临时目录,然后再移动到相册目录中
            //File photoFile = new File(path);
            //Android.Net.Uri photoUri;
            //if (Build.VERSION.SdkInt >= 24)
            //if (Build.VERSION.PreviewSdkInt >= 24)
            //{
            //    /**
            //     * FileProvider.getUriForFile(),这个方法中需要填写三个参数,
            //     * 第一个Context,
            //     * 第二个S
            //     * tring 任意
            //     * 第三个File
            //     */
            //    photoUri = FileProvider.GetUriForFile(this, "HDL Video SnapShot", photoFile);
            //}
            //else
            //{
            //    photoUri = Android.Net.Uri.FromFile(photoFile);
            //}
        }
        private ContentResolver getContentResolver()
        {
            throw new NotImplementedException();
        }
        /// <summary>
        /// 设置顶部状态栏背景透明
        /// </summary>
        private void SetStatusBarColor()
HDL-ON_Android/Properties/AndroidManifest.xml
@@ -1,6 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202107094" android:versionName="1.2.202107094" package="com.hdl.onpro">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202107151" android:versionName="1.2.202107151" package="com.hdl.onpro">
    <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="29" />
    <!-- 乐橙可视对讲需要的权限 -->
    <!--<uses-permission android:name="android.permission.INTERNET" />-->
    <!--网络访问-->
    <!--<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />-->
    <!--允许程序写入外部存储,如SD卡上写文件,抓图、录制等-->
    <!--<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />-->
    <!--程序可以读取设备外部存储空间(内置SDcard和外置SDCard)的文件,我的文件等-->
    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
    <!--允许程序请求验证从AccountManager???-->
    <!--<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />-->
    <!--允许改变WiFi多播状态???-->
    <!--<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />-->
    <!--允许程序显示系统窗口,应该已经不适用了???-->
    <!--<uses-permission android:name="android.permission.RECORD_AUDIO" />-->
    <!--允许程序录制声音通过手机或耳机的麦克,对讲、自定义报警音等-->
    <!--<uses-permission android:name="android.permission.CAMERA" />-->
    <!--允许程序访问摄像头进行拍照,二维码扫描补光、拍照上传图片等-->
    <uses-permission android:name="android.permission.FLASHLIGHT" />
    <!--允许访问闪光灯,二维码扫描补光-->
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <!--允许程序修改声音设置信息,声波配对,自动调大音量。需求变更之后应该不需要了???-->
    <!--<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />-->
    <!--允许程序获取当前WiFi接入的状态以及WLAN热点的信息,设备添加何种配网流程使用-->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <!--允许程序改变WiFi状态,配网等-->
    <!--<uses-feature android:name="android.hardware.camera" />-->
    <!--<uses-feature android:name="android.hardware.camera.autofocus" />-->
    <!-- 硬件加速对X5视频播放非常重要,建议开启 -->
    <uses-permission android:name="android.permission.READ_SETTINGS" />
    <!--允许程序读取系统设置,声波配对获取当前系统音量等-->
    <!-- Optional for location -->
    <!--<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />-->
    <!--允许一个程序访问CellID或 WiFi热点来获取粗略的位置,登陆、设备添加等-->
    <!--<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />-->
    <!--允许一个程序访问CellID或 WiFi热点来获取精确的位置,登陆、设备添加等???-->
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <!--允许应用程序访问额外的位置提供命令,登陆、设备添加等???-->
    <!--<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />-->
    <!--允许程序改变网络状态,如是否联网,配网???-->
    <!--<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />-->
    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
    <!--允许应用程序请求安装包。针对API大于22必须持有该许可使用ACTION_INSTALL_PACKAGE应用。应该没在用???-->
    <uses-permission android:name="android.permission.VIBRATE" />
    <!--  可视对讲权限-->
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />
@@ -39,7 +82,7 @@
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <!-- 极光推送结束 -->
    <application android:debuggable="false" android:allowBackup="true" android:icon="@drawable/Icon" android:networkSecurityConfig="@xml/network_security_config" android:largeHeap="true" android:label="ON+">
    <application android:allowBackup="true" android:icon="@drawable/Icon" android:networkSecurityConfig="@xml/network_security_config" android:largeHeap="true" android:label="ON+">
        <provider android:name="android.support.v4.content.FileProvider" android:authorities="com.hdl.onpro.fileProvider" android:grantUriPermissions="true" android:exported="false">
            <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" />
        </provider>
HDL-ON_Android/Resources/Resource.designer.cs
@@ -12059,448 +12059,454 @@
            public const int scan_title_txt = 2131689998;
            
            // aapt resource value: 0x7F0F020F
            public const int screenshot_success = 2131689999;
            public const int screenshot_fail = 2131689999;
            
            // aapt resource value: 0x7F0F0210
            public const int sdk_is_init = 2131690000;
            public const int screenshot_success = 2131690000;
            
            // aapt resource value: 0x7F0F0211
            public const int search = 2131690001;
            public const int sdk_is_init = 2131690001;
            
            // aapt resource value: 0x7F0F0212
            public const int search_menu_title = 2131690002;
            public const int search = 2131690002;
            
            // aapt resource value: 0x7F0F0213
            public const int secure_validate = 2131690003;
            // aapt resource value: 0x7F0F0215
            public const int secure_validatee_fail = 2131690005;
            public const int search_menu_title = 2131690003;
            
            // aapt resource value: 0x7F0F0214
            public const int secure_validate_success = 2131690004;
            public const int secure_validate = 2131690004;
            
            // aapt resource value: 0x7F0F0216
            public const int seek_camera_fail_device_not_support_shipin7 = 2131690006;
            public const int secure_validatee_fail = 2131690006;
            // aapt resource value: 0x7F0F0215
            public const int secure_validate_success = 2131690005;
            
            // aapt resource value: 0x7F0F0217
            public const int select_all = 2131690007;
            public const int seek_camera_fail_device_not_support_shipin7 = 2131690007;
            
            // aapt resource value: 0x7F0F0218
            public const int select_date = 2131690008;
            public const int select_all = 2131690008;
            
            // aapt resource value: 0x7F0F0219
            public const int serial_add_hint = 2131690009;
            public const int select_date = 2131690009;
            
            // aapt resource value: 0x7F0F021A
            public const int serial_add_password_error_title = 2131690010;
            public const int serial_add_hint = 2131690010;
            
            // aapt resource value: 0x7F0F021B
            public const int serial_input_text = 2131690011;
            public const int serial_add_password_error_title = 2131690011;
            
            // aapt resource value: 0x7F0F021C
            public const int serial_number_error = 2131690012;
            public const int serial_input_text = 2131690012;
            
            // aapt resource value: 0x7F0F021D
            public const int serial_number_is_null = 2131690013;
            public const int serial_number_error = 2131690013;
            
            // aapt resource value: 0x7F0F021E
            public const int serial_number_put_the_right_no = 2131690014;
            public const int serial_number_is_null = 2131690014;
            
            // aapt resource value: 0x7F0F021F
            public const int server_area = 2131690015;
            // aapt resource value: 0x7F0F0224
            public const int setting = 2131690020;
            // aapt resource value: 0x7F0F0225
            public const int setting_video_level = 2131690021;
            public const int serial_number_put_the_right_no = 2131690015;
            
            // aapt resource value: 0x7F0F0220
            public const int set_defence_plan = 2131690016;
            public const int server_area = 2131690016;
            
            // aapt resource value: 0x7F0F0221
            public const int set_device_wifi_network_need_reset_the_device = 2131690017;
            // aapt resource value: 0x7F0F0222
            public const int set_ptz_flip_fail = 2131690018;
            // aapt resource value: 0x7F0F0223
            public const int set_ptz_flip_success = 2131690019;
            // aapt resource value: 0x7F0F0225
            public const int setting = 2131690021;
            
            // aapt resource value: 0x7F0F0226
            public const int share_devices = 2131690022;
            public const int setting_video_level = 2131690022;
            // aapt resource value: 0x7F0F0221
            public const int set_defence_plan = 2131690017;
            // aapt resource value: 0x7F0F0222
            public const int set_device_wifi_network_need_reset_the_device = 2131690018;
            // aapt resource value: 0x7F0F0223
            public const int set_ptz_flip_fail = 2131690019;
            // aapt resource value: 0x7F0F0224
            public const int set_ptz_flip_success = 2131690020;
            
            // aapt resource value: 0x7F0F0227
            public const int sms_verify_bind_error = 2131690023;
            public const int share_devices = 2131690023;
            
            // aapt resource value: 0x7F0F0228
            public const int sms_verify_code_received = 2131690024;
            public const int sms_verify_bind_error = 2131690024;
            
            // aapt resource value: 0x7F0F0229
            public const int source_detection_off = 2131690025;
            public const int sms_verify_code_received = 2131690025;
            
            // aapt resource value: 0x7F0F022A
            public const int source_detection_on = 2131690026;
            public const int source_detection_off = 2131690026;
            
            // aapt resource value: 0x7F0F022B
            public const int specified_device = 2131690027;
            public const int source_detection_on = 2131690027;
            
            // aapt resource value: 0x7F0F022C
            public const int srl_component_falsify = 2131690028;
            public const int specified_device = 2131690028;
            
            // aapt resource value: 0x7F0F022D
            public const int srl_content_empty = 2131690029;
            public const int srl_component_falsify = 2131690029;
            
            // aapt resource value: 0x7F0F022E
            public const int srl_footer_failed = 2131690030;
            public const int srl_content_empty = 2131690030;
            
            // aapt resource value: 0x7F0F022F
            public const int srl_footer_finish = 2131690031;
            public const int srl_footer_failed = 2131690031;
            
            // aapt resource value: 0x7F0F0230
            public const int srl_footer_loading = 2131690032;
            public const int srl_footer_finish = 2131690032;
            
            // aapt resource value: 0x7F0F0231
            public const int srl_footer_nothing = 2131690033;
            public const int srl_footer_loading = 2131690033;
            
            // aapt resource value: 0x7F0F0232
            public const int srl_footer_pulling = 2131690034;
            public const int srl_footer_nothing = 2131690034;
            
            // aapt resource value: 0x7F0F0233
            public const int srl_footer_refreshing = 2131690035;
            public const int srl_footer_pulling = 2131690035;
            
            // aapt resource value: 0x7F0F0234
            public const int srl_footer_release = 2131690036;
            public const int srl_footer_refreshing = 2131690036;
            
            // aapt resource value: 0x7F0F0235
            public const int srl_header_failed = 2131690037;
            public const int srl_footer_release = 2131690037;
            
            // aapt resource value: 0x7F0F0236
            public const int srl_header_finish = 2131690038;
            public const int srl_header_failed = 2131690038;
            
            // aapt resource value: 0x7F0F0237
            public const int srl_header_loading = 2131690039;
            public const int srl_header_finish = 2131690039;
            
            // aapt resource value: 0x7F0F0238
            public const int srl_header_pulling = 2131690040;
            public const int srl_header_loading = 2131690040;
            
            // aapt resource value: 0x7F0F0239
            public const int srl_header_refreshing = 2131690041;
            public const int srl_header_pulling = 2131690041;
            
            // aapt resource value: 0x7F0F023A
            public const int srl_header_release = 2131690042;
            public const int srl_header_refreshing = 2131690042;
            
            // aapt resource value: 0x7F0F023B
            public const int srl_header_secondary = 2131690043;
            public const int srl_header_release = 2131690043;
            
            // aapt resource value: 0x7F0F023C
            public const int srl_header_update = 2131690044;
            public const int srl_header_secondary = 2131690044;
            
            // aapt resource value: 0x7F0F023D
            public const int start_cloud = 2131690045;
            public const int srl_header_update = 2131690045;
            
            // aapt resource value: 0x7F0F023E
            public const int start_to_experience = 2131690046;
            public const int start_cloud = 2131690046;
            
            // aapt resource value: 0x7F0F023F
            public const int start_voice_talk = 2131690047;
            public const int start_to_experience = 2131690047;
            
            // aapt resource value: 0x7F0F0240
            public const int status_bar_notification_info_overflow = 2131690048;
            public const int start_voice_talk = 2131690048;
            
            // aapt resource value: 0x7F0F0241
            public const int step3_adding_device_to_account = 2131690049;
            public const int status_bar_notification_info_overflow = 2131690049;
            
            // aapt resource value: 0x7F0F0242
            public const int storage_status = 2131690050;
            public const int step3_adding_device_to_account = 2131690050;
            
            // aapt resource value: 0x7F0F0243
            public const int stream_type = 2131690051;
            // aapt resource value: 0x7F0F0246
            public const int string_apiurl = 2131690054;
            public const int storage_status = 2131690051;
            
            // aapt resource value: 0x7F0F0244
            public const int string_ap_connection = 2131690052;
            // aapt resource value: 0x7F0F0245
            public const int string_ap_connection_normal = 2131690053;
            public const int stream_type = 2131690052;
            
            // aapt resource value: 0x7F0F0247
            public const int string_authurl = 2131690055;
            public const int string_apiurl = 2131690055;
            
            // aapt resource value: 0x7F0F0249
            public const int string_deviceserial = 2131690057;
            // aapt resource value: 0x7F0F0245
            public const int string_ap_connection = 2131690053;
            // aapt resource value: 0x7F0F0246
            public const int string_ap_connection_normal = 2131690054;
            
            // aapt resource value: 0x7F0F0248
            public const int string_device_network_mode = 2131690056;
            public const int string_authurl = 2131690056;
            
            // aapt resource value: 0x7F0F024A
            public const int string_ezopenurl = 2131690058;
            public const int string_deviceserial = 2131690058;
            // aapt resource value: 0x7F0F0249
            public const int string_device_network_mode = 2131690057;
            
            // aapt resource value: 0x7F0F024B
            public const int string_get_device_version_fail = 2131690059;
            public const int string_ezopenurl = 2131690059;
            
            // aapt resource value: 0x7F0F024C
            public const int string_smart_and_sound_wave_connection = 2131690060;
            public const int string_get_device_version_fail = 2131690060;
            
            // aapt resource value: 0x7F0F024D
            public const int string_smart_connection = 2131690061;
            public const int string_smart_and_sound_wave_connection = 2131690061;
            
            // aapt resource value: 0x7F0F024E
            public const int string_smart_connection_normal = 2131690062;
            public const int string_smart_connection = 2131690062;
            
            // aapt resource value: 0x7F0F024F
            public const int string_sound_wave_connection = 2131690063;
            public const int string_smart_connection_normal = 2131690063;
            
            // aapt resource value: 0x7F0F0250
            public const int string_wired_connection = 2131690064;
            public const int string_sound_wave_connection = 2131690064;
            
            // aapt resource value: 0x7F0F0251
            public const int submit_secure_validate = 2131690065;
            public const int string_wired_connection = 2131690065;
            
            // aapt resource value: 0x7F0F0252
            public const int submit_sms_code = 2131690066;
            public const int submit_secure_validate = 2131690066;
            
            // aapt resource value: 0x7F0F0253
            public const int switch_to_handset = 2131690067;
            public const int submit_sms_code = 2131690067;
            
            // aapt resource value: 0x7F0F0254
            public const int switch_to_speaker = 2131690068;
            public const int switch_to_handset = 2131690068;
            
            // aapt resource value: 0x7F0F0255
            public const int tab_more = 2131690069;
            public const int switch_to_speaker = 2131690069;
            
            // aapt resource value: 0x7F0F0256
            public const int talk = 2131690070;
            // aapt resource value: 0x7F0F0259
            public const int talking = 2131690073;
            public const int tab_more = 2131690070;
            
            // aapt resource value: 0x7F0F0257
            public const int talk_open_failed = 2131690071;
            // aapt resource value: 0x7F0F0258
            public const int talk_open_success = 2131690072;
            public const int talk = 2131690071;
            
            // aapt resource value: 0x7F0F025A
            public const int tip_heard_voice = 2131690074;
            public const int talking = 2131690074;
            // aapt resource value: 0x7F0F0258
            public const int talk_open_failed = 2131690072;
            // aapt resource value: 0x7F0F0259
            public const int talk_open_success = 2131690073;
            
            // aapt resource value: 0x7F0F025B
            public const int tip_login_out = 2131690075;
            public const int tip_heard_voice = 2131690075;
            
            // aapt resource value: 0x7F0F025C
            public const int tip_of_added_by_yourself_and_online = 2131690076;
            public const int tip_login_out = 2131690076;
            
            // aapt resource value: 0x7F0F025D
            public const int tip_of_bad_net = 2131690077;
            public const int tip_of_added_by_yourself_and_online = 2131690077;
            
            // aapt resource value: 0x7F0F025E
            public const int tip_playback_again = 2131690078;
            public const int tip_of_bad_net = 2131690078;
            
            // aapt resource value: 0x7F0F025F
            public const int tip_specified_device = 2131690079;
            public const int tip_playback_again = 2131690079;
            
            // aapt resource value: 0x7F0F0260
            public const int title_activate_device = 2131690080;
            public const int tip_specified_device = 2131690080;
            
            // aapt resource value: 0x7F0F0261
            public const int title_activate_device_fail = 2131690081;
            public const int title_activate_device = 2131690081;
            
            // aapt resource value: 0x7F0F0262
            public const int title_activity_connect_device_wifi = 2131690082;
            public const int title_activate_device_fail = 2131690082;
            
            // aapt resource value: 0x7F0F0263
            public const int title_activity_ezupgrade_device = 2131690083;
            public const int title_activity_connect_device_wifi = 2131690083;
            
            // aapt resource value: 0x7F0F0264
            public const int today = 2131690084;
            public const int title_activity_ezupgrade_device = 2131690084;
            
            // aapt resource value: 0x7F0F0265
            public const int touch_fingerprint_sensor_hint = 2131690085;
            public const int today = 2131690085;
            
            // aapt resource value: 0x7F0F0266
            public const int touch_to_load = 2131690086;
            public const int touch_fingerprint_sensor_hint = 2131690086;
            
            // aapt resource value: 0x7F0F0267
            public const int try_again = 2131690087;
            public const int touch_to_load = 2131690087;
            
            // aapt resource value: 0x7F0F0268
            public const int ui_call_demo_txt = 2131690088;
            public const int try_again = 2131690088;
            
            // aapt resource value: 0x7F0F0269
            public const int unable_identify_two_dimensional_code_tip = 2131690089;
            public const int ui_call_demo_txt = 2131690089;
            
            // aapt resource value: 0x7F0F026A
            public const int unbind_to_bind = 2131690090;
            public const int unable_identify_two_dimensional_code_tip = 2131690090;
            
            // aapt resource value: 0x7F0F026B
            public const int unknow_ssid = 2131690091;
            public const int unbind_to_bind = 2131690091;
            
            // aapt resource value: 0x7F0F026C
            public const int unlock_success = 2131690092;
            public const int unknow_ssid = 2131690092;
            
            // aapt resource value: 0x7F0F026D
            public const int unnamed = 2131690093;
            public const int unlock_fail = 2131690093;
            
            // aapt resource value: 0x7F0F026E
            public const int update_exit = 2131690094;
            public const int unlock_success = 2131690094;
            
            // aapt resource value: 0x7F0F026F
            public const int upgrade = 2131690095;
            public const int unnamed = 2131690095;
            
            // aapt resource value: 0x7F0F0270
            public const int upgrade_fail = 2131690096;
            public const int update_exit = 2131690096;
            
            // aapt resource value: 0x7F0F0271
            public const int upgrade_progress = 2131690097;
            public const int upgrade = 2131690097;
            
            // aapt resource value: 0x7F0F0272
            public const int upgrade_success = 2131690098;
            public const int upgrade_fail = 2131690098;
            
            // aapt resource value: 0x7F0F0273
            public const int upgrade_success_progress = 2131690099;
            public const int upgrade_progress = 2131690099;
            
            // aapt resource value: 0x7F0F0274
            public const int user_name_txt = 2131690100;
            public const int upgrade_success = 2131690100;
            
            // aapt resource value: 0x7F0F0275
            public const int verify_code_error = 2131690101;
            public const int upgrade_success_progress = 2131690101;
            
            // aapt resource value: 0x7F0F0276
            public const int verify_sms_code_fail = 2131690102;
            public const int user_name_txt = 2131690102;
            
            // aapt resource value: 0x7F0F0277
            public const int verify_sms_code_success = 2131690103;
            public const int verify_code_error = 2131690103;
            
            // aapt resource value: 0x7F0F0278
            public const int version_newest = 2131690104;
            public const int verify_sms_code_fail = 2131690104;
            
            // aapt resource value: 0x7F0F0279
            public const int video_answer = 2131690105;
            public const int verify_sms_code_success = 2131690105;
            
            // aapt resource value: 0x7F0F027A
            public const int video_box = 2131690106;
            public const int version_newest = 2131690106;
            
            // aapt resource value: 0x7F0F027B
            public const int video_confirm = 2131690107;
            public const int video_answer = 2131690107;
            
            // aapt resource value: 0x7F0F027C
            public const int video_device = 2131690108;
            public const int video_box = 2131690108;
            
            // aapt resource value: 0x7F0F027D
            public const int video_fail = 2131690109;
            public const int video_confirm = 2131690109;
            
            // aapt resource value: 0x7F0F027E
            public const int video_hang_up = 2131690110;
            public const int video_device = 2131690110;
            
            // aapt resource value: 0x7F0F027F
            public const int video_icon = 2131690111;
            public const int video_fail = 2131690111;
            
            // aapt resource value: 0x7F0F0280
            public const int video_not_answer = 2131690112;
            public const int video_hang_up = 2131690112;
            
            // aapt resource value: 0x7F0F0281
            public const int video_screenshot = 2131690113;
            public const int video_icon = 2131690113;
            
            // aapt resource value: 0x7F0F0282
            public const int video_square = 2131690114;
            public const int video_not_answer = 2131690114;
            
            // aapt resource value: 0x7F0F0283
            public const int video_success = 2131690115;
            public const int video_screenshot = 2131690115;
            
            // aapt resource value: 0x7F0F0284
            public const int video_talk_call_cancel = 2131690116;
            public const int video_square = 2131690116;
            
            // aapt resource value: 0x7F0F0285
            public const int video_talk_call_is_accepted = 2131690117;
            public const int video_success = 2131690117;
            
            // aapt resource value: 0x7F0F0286
            public const int video_talk_is_playing = 2131690118;
            public const int video_talk_call_cancel = 2131690118;
            
            // aapt resource value: 0x7F0F0287
            public const int video_talk_sdk_toast_hang_up = 2131690119;
            public const int video_talk_call_is_accepted = 2131690119;
            
            // aapt resource value: 0x7F0F0288
            public const int video_talk_sdk_toast_nobody = 2131690120;
            public const int video_talk_is_playing = 2131690120;
            
            // aapt resource value: 0x7F0F0289
            public const int video_talk_signal_weak = 2131690121;
            public const int video_talk_sdk_toast_hang_up = 2131690121;
            
            // aapt resource value: 0x7F0F028A
            public const int video_talk_watch_is_busy = 2131690122;
            public const int video_talk_sdk_toast_nobody = 2131690122;
            
            // aapt resource value: 0x7F0F028B
            public const int video_talk_watch_temperature_high_hang = 2131690123;
            public const int video_talk_signal_weak = 2131690123;
            
            // aapt resource value: 0x7F0F028C
            public const int video_talk_watch_temperature_high_hint = 2131690124;
            public const int video_talk_watch_is_busy = 2131690124;
            
            // aapt resource value: 0x7F0F028D
            public const int video_talk_watch_temperature_high_reject = 2131690125;
            public const int video_talk_watch_temperature_high_hang = 2131690125;
            
            // aapt resource value: 0x7F0F028E
            public const int video_talk_watch_temperature_high_warn = 2131690126;
            public const int video_talk_watch_temperature_high_hint = 2131690126;
            
            // aapt resource value: 0x7F0F028F
            public const int video_tip = 2131690127;
            public const int video_talk_watch_temperature_high_reject = 2131690127;
            
            // aapt resource value: 0x7F0F0290
            public const int video_unlock = 2131690128;
            public const int video_talk_watch_temperature_high_warn = 2131690128;
            
            // aapt resource value: 0x7F0F0291
            public const int wait = 2131690129;
            public const int video_tip = 2131690129;
            
            // aapt resource value: 0x7F0F0292
            public const int web_login_button_txt = 2131690130;
            public const int video_unlock = 2131690130;
            
            // aapt resource value: 0x7F0F0293
            public const int wechat_interconnect = 2131690131;
            public const int wait = 2131690131;
            
            // aapt resource value: 0x7F0F0294
            public const int wifi_connected = 2131690132;
            public const int web_login_button_txt = 2131690132;
            
            // aapt resource value: 0x7F0F0295
            public const int wifi_connection_finish_need_refresh = 2131690133;
            public const int wechat_interconnect = 2131690133;
            
            // aapt resource value: 0x7F0F0296
            public const int wifi_set = 2131690134;
            public const int wifi_connected = 2131690134;
            
            // aapt resource value: 0x7F0F0297
            public const int wifi_setting = 2131690135;
            public const int wifi_connection_finish_need_refresh = 2131690135;
            
            // aapt resource value: 0x7F0F0298
            public const int wired_connection = 2131690136;
            // aapt resource value: 0x7F0F029A
            public const int xlistview_footer_hint_normal = 2131690138;
            public const int wifi_set = 2131690136;
            
            // aapt resource value: 0x7F0F0299
            public const int xlistview_footer_hint_no_more_device = 2131690137;
            public const int wifi_setting = 2131690137;
            
            // aapt resource value: 0x7F0F029B
            public const int xlistview_footer_hint_ready = 2131690139;
            // aapt resource value: 0x7F0F029A
            public const int wired_connection = 2131690138;
            
            // aapt resource value: 0x7F0F029C
            public const int xlistview_footer_no_more = 2131690140;
            public const int xlistview_footer_hint_normal = 2131690140;
            // aapt resource value: 0x7F0F029B
            public const int xlistview_footer_hint_no_more_device = 2131690139;
            
            // aapt resource value: 0x7F0F029D
            public const int xlistview_footer_no_more_msg = 2131690141;
            public const int xlistview_footer_hint_ready = 2131690141;
            
            // aapt resource value: 0x7F0F029E
            public const int xlistview_header_hint_loading = 2131690142;
            public const int xlistview_footer_no_more = 2131690142;
            
            // aapt resource value: 0x7F0F029F
            public const int xlistview_header_hint_more = 2131690143;
            public const int xlistview_footer_no_more_msg = 2131690143;
            
            // aapt resource value: 0x7F0F02A0
            public const int xlistview_header_hint_normal = 2131690144;
            public const int xlistview_header_hint_loading = 2131690144;
            
            // aapt resource value: 0x7F0F02A1
            public const int xlistview_header_hint_ready = 2131690145;
            public const int xlistview_header_hint_more = 2131690145;
            
            // aapt resource value: 0x7F0F02A2
            public const int xlistview_header_last_time = 2131690146;
            public const int xlistview_header_hint_normal = 2131690146;
            // aapt resource value: 0x7F0F02A3
            public const int xlistview_header_hint_ready = 2131690147;
            // aapt resource value: 0x7F0F02A4
            public const int xlistview_header_last_time = 2131690148;
            
            static String()
            {
HDL-ON_Android/Resources/values-zh/strings.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <string name="app_name">HDL_ON_Pro</string>
    <string name="app_name">ON_Plus</string>
    <string name="action_settings">设置</string>
    <string name="video_screenshot">截图</string>
    <string name="video_unlock">开锁</string>
@@ -20,4 +20,6 @@
    <string name="screenshot_success">截图成功</string>
    <string name="talk_open_success">对讲开始</string>
    <string name="talk_open_failed">对讲打开失败</string>
    <string name="unlock_fail">开锁失败</string>
    <string name="screenshot_fail">截图失败</string>
</resources>
HDL-ON_Android/Resources/values/strings.xml
@@ -19,5 +19,6 @@
        <string name="screenshot_success">Screenshot successfully</string>
    <string name="talk_open_success">Intercom Begin</string>
    <string name="talk_open_failed">Intercom failed to open</string>
        <string name="unlock_fail">Fail to unlock</string>
        <string name="screenshot_fail">Fail to screenshot</string>
</resources>
HDL-ON_iOS/Info.plist
@@ -100,9 +100,9 @@
    <key>UIStatusBarStyle</key>
    <string>UIStatusBarStyleLightContent</string>
    <key>CFBundleShortVersionString</key>
    <string>1.2.202107095</string>
    <string>1.2.202107151</string>
    <key>CFBundleVersion</key>
    <string>1.2.07095</string>
    <string>1.2.07151</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>Use geographic location to provide services such as weather</string>
    <key>NSAppleMusicUsageDescription</key>
HDL_ON/Entity/FunctionList.cs
@@ -184,7 +184,6 @@
        /// <para>false:直接无条件添加</para></param>
        public void IniFunctionList(string filePath, bool checkRepeat = false)
        {
            MainPage.Log("初始化功能数据");
            // todo 增加设备,增加功能进功能列表
            if (filePath.StartsWith("FunctionData_"))
            {
HDL_ON/UI/MainPage.cs
@@ -25,7 +25,7 @@
        /// <summary>
        /// 版本号
        /// </summary>
        public static string VersionString = "1.2.0709";
        public static string VersionString = "1.2.0714";
        ///// <summary>
        ///// 客户端类型
        ///// </summary>
HDL_ON/UI/UI1-Login/LoginPage.cs
@@ -227,9 +227,10 @@
                    //etAccount.Text = "13168123446";
                    //etAccount.Text = "13676202754";//巴林服务器
                    //etAccount.Text = "13602944661";//kx
                    etAccount.Text = "551775569@qq.com";//wcf
                    //etAccount.Text = "551775569@qq.com";//wcf
                    //etAccount.Text = "18666455392";//13375012446//13602944661//tzy 18778381374
                    //etAccount.Text = "15971583093";//高胜
                    etAccount.Text = "15217626103";//昆明金茂项目
                }
                b = !b;
                etPassword.Text = "123456";
@@ -520,13 +521,19 @@
                Text = "Demo模式"
            };
            bodyView.AddChidren(btnDomeLogin);
            if(Language.CurrentLanguage!= "Chinese")
            {
                btnDomeLogin.Text = "Experience model";
            }
            btnDomeLogin.MouseUpEventHandler = (sender, e) => {
                MainPage.NoLoginMode = true;
#if DEBUG
                FileUtlis.Files.DeleteAllFile();
#endif
                //DB_ResidenceData.Instance.HomeGateway.gatewayType = "AGATEWAY";
                //楼层房间列表
                var floor1 = new SpatialInfo("FLOOR") { roomName = "F1", parentId = DB_ResidenceData.Instance.CurrentRegion.id };
                floor1.SaveRoomFile();
HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -194,6 +194,34 @@
                #region 环境数据
                var tempSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorTemperature);
                var humiSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorHumidity);
                var enviList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorEnvironment);
                foreach (var enviTemp in enviList)
                {
                    var humiAttr = enviTemp.attributes.Find((obj) => obj.key == "humidity");
                    if (humiAttr != null)
                    {
                        var newTemp = new Function()
                        {
                            name = enviTemp.name,
                            sid = enviTemp.sid,
                            deviceId = enviTemp.deviceId,
                            attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", state = humiAttr.state, curValue = humiAttr.curValue } },
                        };
                        humiSensorList.Add(newTemp);
                    }
                    var tempAttr = enviTemp.attributes.Find((obj) => obj.key == "temperature");
                    if (tempAttr != null)
                    {
                        var newTemp = new Function()
                        {
                            name = enviTemp.name,
                            sid = enviTemp.sid,
                            deviceId = enviTemp.deviceId,
                            attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", state = tempAttr.state, curValue = tempAttr.curValue } },
                        };
                        tempSensorList.Add(newTemp);
                    }
                }
                var btnEnvirValuesTitle = new Button() {
                    X = Application.GetRealWidth(12),
HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
@@ -65,7 +65,7 @@
        }
        /// <summary>
        /// 更新室内传感器数据-晚点
        /// 更新室内传感器数据
        /// </summary>
        public static void LoadEvent_RefreshEnvirIndoorTemp()
        { 
HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
@@ -238,6 +238,10 @@
                    new LogicView.TipPopView().TipBox(StringId.tip, StringId.targetNull);
                    return;
                }
                Loading loading = new Loading();
                this.AddChidren(loading);
                HDL_ON.DAL.Server.ResponsePackNew responsePackNew = null;
@@ -256,11 +260,13 @@
                        loading.Start();
                        new System.Threading.Thread(() =>
                        {
                            try
                            {
                                if (!MainPage.NoLoginMode)
                            {
                                //发送新加逻辑命令;
                                responsePackNew = Send.AddLogic(Logic.currlogic);
                                }
                            }
                            catch { }
@@ -269,10 +275,16 @@
                                Application.RunOnMainThread(() =>
                                {
                                    loading.Hide();
                                    if(MainPage.NoLoginMode)
                                    {
                                        Logic.LogicList.Add(Logic.currlogic);
                                        LogicMethod.CurrLogicMethod.RemoveAllView();
                                        MainView.MainShow();
                                        return;
                                    }
                                    if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
                                    {
                                        //获取逻辑详细返回是一个数组(object类型转换为数组);
                                        var jArray = Newtonsoft.Json.Linq.JArray.Parse(responsePackNew.Data.ToString());
                                        for (int a = 0; a < jArray.Count; a++)
HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs
@@ -239,7 +239,7 @@
            {
                Button btnExit = new Button()
                {
                    Y = Application.GetRealHeight(258) + personalInfoView.Bottom,
                    Y = Application.GetRealHeight(288) + personalInfoView.Bottom,
                    Gravity = Gravity.CenterHorizontal,
                    Height = Application.GetRealHeight(60),
                    Width = Application.GetRealWidth(330),
HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPageBLL.cs
@@ -292,8 +292,6 @@
        {
            btnSupportText.MouseUpEventHandler = (sender, e) =>
            {
                //throw new Exception("异常测试");
                var getsupportPage = new FAQHelpPage();
                MainPage.BasePageView.AddChidren(getsupportPage);
                getsupportPage.LoadPage();
HDL_ON/UI/UI2/FuntionControlView/Video/VideoMainView.cs
@@ -473,8 +473,9 @@
        {
            var utcTime = Convert.ToDateTime(str);
            var dateTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, TimeZoneInfo.Local);
            return dateTime.ToString("HH") + ":" + dateTime.ToString("mm");
            return dateTime.ToString("MM-dd HH:mm");
        }
        /// <summary>
        /// 获取呼叫状态文本
        /// </summary>
HDL_ON/UI/UI2/UserPage.cs
@@ -129,6 +129,11 @@
                //2020-12-07 增加版本检测更新方法
                HDLCommon.Current.CheckIfNeedForceUpdate();
#if __Android__
                //开启定位服务
                Shared.Application.StartGPSLocationService();
#endif
            }
            catch (Exception ex)
            {