wxr
2024-08-02 ea4b1f379fa052b1e044e1d67e85a8500cbd86ff
可视对讲铃声功能
5个文件已添加
20个文件已修改
18650 ■■■■ 已修改文件
DLL/Linphone/Android/Shared.Droid.HDLLinphone.dll 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Application.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/HDL-ON_Android.csproj 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/LeChengVideoActivity.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Other/JPush/JPushReceiver.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Resources/Resource.designer.cs 17402 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/AppDelegate.cs 88 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/HDL-ON_iOS.csproj 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Other/PlaySystemRingtone.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Other/ScheduleLocalNotification.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Other/SoundPlayer.cs 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Other/UserNotificationCenterDelegate.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/oldphone_mono.wav 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/ApiUtlis.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/HDLCommon.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/DriverLayer/Control.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/HttpServerRequest.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/NewAPI.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/MainPage.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI0-Public/AppUnlockPage.cs 849 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI1-Login/LoginPage.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/1-HomePage/HomePage.cs 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SiriIntents/SiriIntents.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SiriIntentsUI/SiriIntentsUI.csproj 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/Linphone/Android/Shared.Droid.HDLLinphone.dll
Binary files differ
HDL-ON_Android/Application.cs
@@ -106,7 +106,7 @@
                multicast.Acquire();
                //后台回到前台
                new HDL_ON.UI.AppUnlockPage().LoadPage();
                //new HDL_ON.UI.AppUnlockPage().LoadPage();
                
            }
@@ -122,7 +122,7 @@
                BusSocketStop();
                multicast.Release();
                //进入后台
                UserInfo.Current.unlockTime = DateTime.Now;
                //UserInfo.Current.unlockTime = DateTime.Now;
            }
        }
HDL-ON_Android/HDL-ON_Android.csproj
@@ -189,9 +189,6 @@
    <Reference Include="Shared.Droid">
      <HintPath>..\DLL\Android\Shared.Droid.dll</HintPath>
    </Reference>
    <Reference Include="Shared.Droid.HDLLinphone">
      <HintPath>..\DLL\Linphone\Android\Shared.Droid.HDLLinphone.dll</HintPath>
    </Reference>
    <Reference Include="HdlEzvizDroid">
      <HintPath>..\DLL\Android\HdlEzvizDroid.dll</HintPath>
    </Reference>
@@ -199,7 +196,10 @@
      <HintPath>..\DLL\Aliyun.Api.LogService.dll</HintPath>
    </Reference>
    <Reference Include="Shared.Droid.JPush">
      <HintPath>..\..\第三方功能\极光\Sdk5.4.0\2024年07月22日\Shared.Droid.JPush.dll</HintPath>
      <HintPath>..\..\第三方功能\极光\Sdk5.4.0\2024-07-19\Shared.Droid.JPush.dll</HintPath>
    </Reference>
    <Reference Include="Shared.Droid.HDLLinphone">
      <HintPath>..\DLL\Linphone\Android\Shared.Droid.HDLLinphone.dll</HintPath>
    </Reference>
  </ItemGroup>
  <ItemGroup>
@@ -987,12 +987,6 @@
    </PackageReference>
    <PackageReference Include="lz4net">
      <Version>1.0.15.93</Version>
    </PackageReference>
    <PackageReference Include="Huawei.Agconnect.AgconnectCore">
      <Version>1.9.1.300</Version>
    </PackageReference>
    <PackageReference Include="Huawei.Hmf.Tasks">
      <Version>1.5.2.300</Version>
    </PackageReference>
  </ItemGroup>
  <ItemGroup>
HDL-ON_Android/LeChengVideoActivity.cs
@@ -191,7 +191,6 @@
        /// </summary>
        public void StopTalk()
        {
            UserInfo.Current.inCall = DateTime.MinValue;
            UserInfo.Current.inVideo = false;
            LCOpenSDK_Talk.StopTalk();
            LCOpenSDK_Talk.Listener = null;
HDL-ON_Android/Other/JPush/JPushReceiver.cs
@@ -3,6 +3,7 @@
using Android.Content;
using CN.Jpush.Android.Api;
using CN.Jpush.Android.Service;
using Com.Hdl.Hdllinphonesdk;
using HDL_ON;
using HDL_ON.DAL.Server;
using Shared;
@@ -81,14 +82,10 @@
                pushMes.messageType = jpushExpandData.messageType;
                pushMes.expantContent = jpushExpandData.expantContent;
                pushMes.HomeId = jpushExpandData.homeId;
                Utlis.WriteLine("PushMes messageType : " + pushMes.messageType);
                Utlis.WriteLine("收到通知回调\r\nPushMes messageType : " + pushMes.messageType);
            }
            if (!string.IsNullOrEmpty(pushMes.spk))//自研可视对讲需要记录时间反呼
            {
                UserInfo.Current.pushMessageInfo = pushMes;
                UserInfo.Current.inCall = DateTime.Now;
            }
            Utlis.WriteLine("PushMes title : " + pushMes.Title);
            Utlis.WriteLine("PushMes message : " + pushMes.Content);
HDL-ON_Android/Resources/Resource.designer.cs
Diff too large
HDL-ON_iOS/AppDelegate.cs
@@ -6,6 +6,9 @@
using HDL_ON.UI;
using HDL_ON.DAL.Server;
using System.Threading.Tasks;
using UserNotifications;
using Other;
using AVFoundation;
namespace SharedMethod
{
@@ -50,18 +53,12 @@
            set;
        }
        //public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
        //{
        //    // Override point for customization after application launch.
        //    // If not required for your application you can safely delete this method
        //    return true;
        //}
        public static UINavigationController rootViewController;
        public static void CleanApplicationIconBadgeNumber()
        {
            UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
        }
        //public static void CleanApplicationIconBadgeNumber()
        //{
        //    UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
        //}
        
        [Export("application:shouldAllowExtensionPointIdentifier:")]
        public override bool ShouldAllowExtensionPointIdentifier(UIApplication application, NSString extensionPointIdentifier)
@@ -99,14 +96,7 @@
            // Get previous device token
            var oldDeviceToken = NSUserDefaults.StandardUserDefaults.StringForKey("PushDeviceToken");
            //new Alert("", DeviceToken, "取消", "确定").Show();
            //NSDictionary test = new NSDictionary(new NSString("123"), new NSString("test"));
            //NSError error;
            //NSData dicD = NSJsonSerialization.Serialize(test, NSJsonWritingOptions.PrettyPrinted,out error); ;
            //NSString str = new NSString(dicD,NSStringEncoding.UTF8);
            //new Alert("", str, "取消", "确定").Show();
            // Has the token changed?
            if (string.IsNullOrEmpty(oldDeviceToken) || !oldDeviceToken.Equals(DeviceToken))
@@ -116,19 +106,12 @@
                // Save new device token 
                NSUserDefaults.StandardUserDefaults.SetString(DeviceToken, "PushDeviceToken");
                //UserInfo.Current.PushDeviceToken = DeviceToken;
                //UserInfo.Current.PhoneName = userPhoneName;
                //UserInfo.Current.SaveUserInfo();
                OnAppConfig.Instance.PushDeviceToken = DeviceToken;
                OnAppConfig.Instance.PhoneName = UIDevice.CurrentDevice.Name;
                OnAppConfig.Instance.SaveConfig();
            }
            if (OnAppConfig.Instance.PushDeviceToken != DeviceToken)
            {
                //string userPhoneName = UIDevice.CurrentDevice.Name;
                //UserInfo.Current.PushDeviceToken = DeviceToken;
                //UserInfo.Current.PhoneName = userPhoneName;
                //UserInfo.Current.SaveUserInfo();
                OnAppConfig.Instance.PushDeviceToken = DeviceToken;
                OnAppConfig.Instance.PhoneName = UIDevice.CurrentDevice.Name;
                OnAppConfig.Instance.SaveConfig();
@@ -137,34 +120,16 @@
        public override void DidReceiveRemoteNotification(UIApplication application, NSDictionary userInfo, Action<UIBackgroundFetchResult> completionHandler)
        {
            Console.WriteLine("DidReceiveRemoteNotification:" + application.ApplicationState.ToString());
            Console.WriteLine("推送消息:"+userInfo);
            //var test = new NSDictionary();
            //test.SetNilValueForKey(new NSString("test"));
            //NSError error;
            //NSData dicD = NSJsonSerialization.Serialize(userInfo, NSJsonWritingOptions.PrettyPrinted, out error); ;
            //NSString str = new NSString(dicD, NSStringEncoding.UTF8);
            //new Alert("", str, "取消", "确定").Show();
            //读取推送信息
            UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
            if (userInfo == null)
            {
                return;
            }
            Console.WriteLine(userInfo);
            //HDLCommon.Current.ShowAlert("DidReceiveRemoteNotification:" + userInfo.ToString());
            if (application.ApplicationState == UIApplicationState.Active || application.ApplicationState == UIApplicationState.Background)
            {
                HandleNotificationMessageUserInfo(userInfo, false);
            }
            else
            //if (application.ApplicationState == UIApplicationState.Active || application.ApplicationState == UIApplicationState.Background)
            //{
            //    HandleNotificationMessageUserInfo(userInfo, false);
            //}
            //else
            {
                //Inactive
                HandleNotificationMessageUserInfo(userInfo, false);
@@ -187,10 +152,6 @@
            {
                Console.WriteLine("ReceivedRemoteNotification3");
            }
            //string extKey1 = "PushResType";
            //NSString extValue1 = userInfo.ValueForKey ((NSString)extKey1);
        }
        public override void OnResignActivation(UIApplication application)
@@ -203,7 +164,7 @@
            //    Shared.IOS.HDLFVSDK.Video.FVapplicationWillResignActive(application);
            //}
            Console.WriteLine("OnResignActivation");
            UserInfo.Current.unlockTime = DateTime.Now;
            //UserInfo.Current.unlockTime = DateTime.Now;
        }
        public override void DidEnterBackground(UIApplication application)
@@ -310,14 +271,14 @@
            AppDomain.CurrentDomain.UnhandledException += (sender, e) => {
                if(e.ExceptionObject is Exception exception)
                {
                    Console.WriteLine("未处理的异常:" + exception.Message);
                    MainPage.Log("error","未处理的异常:" + exception.Message);
                }
            };
            TaskScheduler.UnobservedTaskException += (sender, e) => {
                if (e.Exception is Exception exception)
                {
                    Console.WriteLine("未处理的异常:" + exception.Message);
                    MainPage.Log("error", "未处理的异常:" + exception.Message);
                }
            };
            #endregion
@@ -354,10 +315,6 @@
            // check for a notification
            DealWithPushMes(launchOptions);
            //if (UIApplication.SharedApplication.ApplicationIconBadgeNumber > 0)
            //{
            //    //RemoteInfo.Current.ReadMsgList(true);
            //}
            try
            {
                UMSdk.HDLUMSDK.InitUMSDKWithAppKey("61d56642e0f9bb492bbc3e72", "IOS");
@@ -366,6 +323,14 @@
            {
                Console.WriteLine("启动友盟SDK异常:"+ex.Message);
            }
            // 注册进入前台的通知
            NSNotificationCenter.DefaultCenter.AddObserver(UIApplication.WillEnterForegroundNotification, (notification) =>
            {
                // 停止播放铃声
                UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
                UNUserNotificationCenter.Current.RemoveAllDeliveredNotifications();
            });
            Console.WriteLine("FinishedLaunching");
            return true;
@@ -438,11 +403,6 @@
                    Utlis.WriteLine("PushMes title : " + pushMes.Title);
                    Utlis.WriteLine("PushMes message : " + pushMes.Content);
                    Utlis.WriteLine("PushMes extras : " + pushMes.Extras);
                    if (!string.IsNullOrEmpty(pushMes.spk))//自研可视对讲需要记录时间反呼
                    {
                        UserInfo.Current.pushMessageInfo = pushMes;
                        UserInfo.Current.inCall = DateTime.Now;
                    }
                    if (bFinishedLaunching)
                    {
@@ -546,7 +506,7 @@
            HDL_ON.DAL.Mqtt.MqttClient.InitState();
            new AppUnlockPage().LoadPage();
            //new AppUnlockPage().LoadPage();
            UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0;
            HDL_ON.DriverLayer.Control.Ins.SearchLoaclGateway();
        }
HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -545,6 +545,10 @@
        <Compile Include="Other\JLCountrycode.cs" />
        <Compile Include="BlueWifi.cs" />
        <Compile Include="Other\SkipControl.cs" />
        <Compile Include="Other\PlaySystemRingtone.cs" />
        <Compile Include="Other\ScheduleLocalNotification.cs" />
        <Compile Include="Other\UserNotificationCenterDelegate.cs" />
        <Compile Include="Other\SoundPlayer.cs" />
    </ItemGroup>
    <ItemGroup>
      <BundleResource Include="Resources\Phone\LoginIcon\ShowPasswordIcon.png" />
@@ -1794,6 +1798,7 @@
      <BundleResource Include="Resources\Phone\LogicIcon\electricaltvhisense.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\EnvirSensor\Pm10Bg.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\EnvirSensor\Pm10Icon.png" />
      <BundleResource Include="Resources\oldphone_mono.wav" />
    </ItemGroup>
    <ItemGroup>
      <ITunesArtwork Include="iTunesArtwork" />
HDL-ON_iOS/Other/PlaySystemRingtone.cs
New file
@@ -0,0 +1,20 @@
using System;
using AudioToolbox;
namespace Other
{
    public class PlaySystemRingtone
    {
        public PlaySystemRingtone()
        {
        }
        public void Play()
        {
            // 1007 是短信提示音的系统声音 ID
            SystemSound systemSound = new SystemSound(1007);
            systemSound.PlaySystemSound();
        }
    }
}
HDL-ON_iOS/Other/ScheduleLocalNotification.cs
New file
@@ -0,0 +1,37 @@
using System;
using UserNotifications;
namespace Other
{
    public class ScheduleLocalNotification
    {
        public void SetScheduleLocalNotification()
        {
            // 创建通知内容
            var content = new UNMutableNotificationContent
            {
                Title = "自定义铃声通知",
                Body = "这是带有自定义铃声的本地通知。",
                Sound = UNNotificationSound.GetSound("oldphone_mono.wav") // 替换为您的音频文件名
            };
            // 设置触发时间(例如,5秒后触发)
            var trigger = UNTimeIntervalNotificationTrigger.CreateTrigger(5, false);
            // 创建通知请求
            var request = UNNotificationRequest.FromIdentifier(Guid.NewGuid().ToString(), content, trigger);
            // 添加通知请求到通知中心
            UNUserNotificationCenter.Current.AddNotificationRequest(request, (error) =>
            {
                if (error != null)
                {
                    // 处理错误
                    Console.WriteLine($"添加通知失败: {error.LocalizedDescription}");
                }
            });
        }
    }
}
HDL-ON_iOS/Other/SoundPlayer.cs
New file
@@ -0,0 +1,59 @@
using System;
using AVFoundation;
using Foundation;
namespace Other
{
    public class SoundPlayer
    {
        private AVAudioPlayer player;
        private static SoundPlayer _soundPlayer;
        public static SoundPlayer Ins
        {
            get
            {
                if(_soundPlayer == null)
                {
                    _soundPlayer = new SoundPlayer();
                    // 获取音频文件路径
                    var soundUrl = NSUrl.FromFilename("oldphone_mono.wav");
                    // 初始化播放器
                    _soundPlayer.player = AVAudioPlayer.FromUrl(soundUrl);
                    _soundPlayer.player.NumberOfLoops = -1; // 设置为-1表示无限循环
                    _soundPlayer.player.PrepareToPlay();
                }
                return _soundPlayer;
            }
        }
        public SoundPlayer()
        {
        }
        public void PlaySound()
        {
            try
            {
                if (_soundPlayer.player.Playing)
                {
                    _soundPlayer.player.Stop();
                }
                _soundPlayer.player.Play();
            }
            catch (Exception ex)
            {
            }
        }
        public void StopSound()
        {
            _soundPlayer.player.Stop();
            _soundPlayer.player.Dispose();
            _soundPlayer = null;
        }
    }
}
HDL-ON_iOS/Other/UserNotificationCenterDelegate.cs
New file
@@ -0,0 +1,32 @@
using System;
using UserNotifications;
namespace Other
{
    public class UserNotificationCenterDelegate : UNUserNotificationCenterDelegate
    {
        private SoundPlayer soundPlayer;
        public override void WillPresentNotification(UNUserNotificationCenter center, UNNotification notification, Action<UNNotificationPresentationOptions> completionHandler)
        {
            // 显示通知内容
            completionHandler(UNNotificationPresentationOptions.Alert | UNNotificationPresentationOptions.Sound);
            if(soundPlayer == null) {
                soundPlayer = new SoundPlayer();
            }
            soundPlayer.PlaySound();
        }
        public override void DidReceiveNotificationResponse(UNUserNotificationCenter center, UNNotificationResponse response, Action completionHandler)
        {
            // 用户点击通知时停止音频
            soundPlayer?.StopSound();
            // 处理用户点击通知后的操作
            Console.WriteLine("用户点击了通知");
            completionHandler();
        }
    }
}
HDL-ON_iOS/Resources/oldphone_mono.wav
Binary files differ
HDL_ON/Common/ApiUtlis.cs
@@ -300,9 +300,8 @@
                            if (deviceResult.Code == StateCode.SUCCESS)
                            {
                                FunctionList.List.ClearDatas();
                                //MainPage.Log($"============设备============开始" + FunctionList.List.Functions.Count);
                                //MainPage.Log($"读取设备信息成功");
                                MainPage.Log($"sid列表获取====\r\n" , deviceResult.Data.ToString());
                                MainPage.Log($"读取设备信息成功");
                                //MainPage.Log($"sid列表获取====\r\n" , deviceResult.Data.ToString());
                                var deviceList = JsonConvert.DeserializeObject<DevcieApiPack>(deviceResult.Data.ToString());
                                if (deviceList == null)
                                {
HDL_ON/Common/HDLCommon.cs
@@ -7,6 +7,7 @@
using HDL_ON.Entity;
using System.Threading;
using HDL_ON.DriverLayer;
namespace HDL_ON
{
    /// <summary>
@@ -305,7 +306,7 @@
                        ESOnVideo.Current.ShowESvideoVideoIntercom(eSVideoInfo, InterphoneType.FLVI.ToString());
                    }
                    else if (jpushMessageInfo.messageType == (PushMessageType.HDL_INTERPHONE.ToString()))
                    else if (jpushMessageInfo.messageType == PushMessageType.HDL_INTERPHONE.ToString())
                    {
                        if (string.IsNullOrEmpty(jpushMessageInfo.expantContent)) return;
@@ -368,6 +369,37 @@
                                }
                            }
                            catch { }
#if __ANDROID__
                            Com.Hdl.Hdllinphonesdk.HDLLinphoneKit.Instance.MissedCallsTime = 10;
                            Com.Hdl.Hdllinphonesdk.HDLLinphoneKit.Instance.SetMediaPlayerLooping(true);
                            Com.Hdl.Hdllinphonesdk.HDLLinphoneKit.Instance.PlayRingtone();
                            new Thread(() =>
                            {
                                try
                                {
                                    DateTime dateTime = DateTime.Now;
                                    while (true)
                                    {
                                        Thread.Sleep(1000);
                                        if (!Com.Hdl.Hdllinphonesdk.HDLLinphoneKit.Instance.MediaPlayerPlayingStatus || dateTime.AddSeconds(Com.Hdl.Hdllinphonesdk.HDLLinphoneKit.Instance.MissedCallsTime) <= DateTime.Now)
                                        {
                                            break;
                                        }
                                    }
                                    Com.Hdl.Hdllinphonesdk.HDLLinphoneKit.Instance.SetMediaPlayerLooping(false);
                                }
                                catch (Exception ex)
                                {
                                    MainPage.Log("error", "自研可视对讲铃声播放异常:" + ex.Message);
                                }
                            })
                            { IsBackground = true }.Start();
#endif
                            //HDL Linphone 狄耐克
                            eSVideoInfo.HomeId = jpushMessageInfo.HomeId;
                            eSVideoInfo.callId = json["callId"].ToString();
@@ -376,6 +408,7 @@
                            eSVideoInfo.deviceSipAccount = json["deviceSipAccount"].ToString();
                            eSVideoInfo.spk = json["spk"].ToString();
                            //ShowAlert("狄耐克门口机呼叫");
                            //打开呼叫页面
                            HDLLinphone.Current.ShowESVideoIntercom(eSVideoInfo, InterphoneType.HDL.ToString());
HDL_ON/DAL/DriverLayer/Control.cs
@@ -1073,7 +1073,7 @@
                    }
                    else
                    {
                        MainPage.Log($"局域网信息: 明文:" + receiveObj.BodyDataString);
                        //MainPage.Log($"局域网信息: 明文:" + receiveObj.BodyDataString);
                    }
                }
@@ -1085,7 +1085,7 @@
                    {
                        return null;
                    }
                    MainPage.Log($"处理局域网数据id:{idMsg.id}");
                    //MainPage.Log($"处理局域网数据id:{idMsg.id}");
                }
                catch (Exception ex)
HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -1202,7 +1202,6 @@
                    deviceName = OnAppConfig.Instance.PhoneName,
                    deviceType = deviceType,
                    produce = isProduce,
                };
                mAddpushinfoObj.languageType = Utlis.GetPostLanguageType();
@@ -1229,7 +1228,6 @@
                            return true;
                        }
                    }
                }
                else
                {
HDL_ON/DAL/Server/NewAPI.cs
@@ -886,7 +886,7 @@
        /// <summary>
        /// 拒接(挂段所有呼叫)
        /// </summary>
        public const string API_POST_VideoDevice_RejectCallIn = "/home-wisdom/platform/imou/updateCallStatus";
        public const string API_POST_VideoDevice_RejectCallIn = "/home-wisdom/platform/imou/callAllRejection";
        
        /// <summary>
HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs
@@ -512,6 +512,14 @@
        /// <param name="mESVideoInfo"></param>
        public void ShowESVideoIntercom(ESVideoInfo mESVideoInfo,string mInterphoneType)
        {
            if(this.mHDLCallVideoInfo != null)
            {
                if(this.mHDLCallVideoInfo.CallId == mESVideoInfo.callId)
                {
                    return;
                }
            }
            InitLinphone();
            HDLCallVideoInfo mHDLCallVideoInfo = new HDLCallVideoInfo();
@@ -558,7 +566,7 @@
            {
#if __IOS__
                //自研可视对讲
                Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().GotoHDLSRLinphoneIntercomVC(mHDLCallVideoInfo.DeviceName, mHDLCallVideoInfo.DeviceSipAccount);
                HDLLinPhoneSDK.Instance().GotoHDLSRLinphoneIntercomVC(mHDLCallVideoInfo.DeviceName, mHDLCallVideoInfo.DeviceSipAccount);
#else
                var intent = new Intent(Shared.Application.Activity, typeof(Com.Hdl.Hdllinphonesdk.Activity.HDLLinphoneReverseCallActivity));  
                if (mHDLCallVideoInfo != null)
@@ -612,7 +620,7 @@
#if __IOS__
            Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().GotoHDLLinphoneIntercomVC(mHDLCallVideoInfo.DeviceName);
            HDLLinPhoneSDK.Instance().GotoHDLLinphoneIntercomVC(mHDLCallVideoInfo.DeviceName);
#else
            var intent = new Intent(Shared.Application.Activity, typeof(Com.Hdl.Hdllinphonesdk.Activity.HDLLinphoneIntercomActivity));
@@ -744,6 +752,7 @@
            public void OnAnswerAction()
            {
                //showToast("接听");
                HDLLinphoneKit.Instance.SetMediaPlayerLooping(false);
                hdlLinphone.HDLUpdateCallStatus(CallStatusType.RECEIVED, InterphoneType.HDL);
            }
            /// <summary>
@@ -763,8 +772,8 @@
            public void OnRejectCallAction()
            {
                //showToast("拒接");
                HDLLinphoneKit.Instance.SetMediaPlayerLooping(false);
                hdlLinphone.HDLUpdateCallStatus(CallStatusType.REJECT, InterphoneType.HDL);
                hdlLinphone.HDLRejectCallIn();
            }
            /// <summary>
@@ -791,6 +800,23 @@
            public void OnIncomingCall(string userName)
            {
                Utlis.WriteLine("OnIncomingCall :" + userName);
            }
            /// <summary>
            /// 拒接事件
            /// 全部挂断
            /// </summary>
            public void OnCallAllRejection()
            {
                HDLLinphoneKit.Instance.SetMediaPlayerLooping(false);
                hdlLinphone.HDLUpdateCallStatus(CallStatusType.REJECT, InterphoneType.HDL);
                hdlLinphone.HDLRejectCallIn();
            }
            public void OnMissedCallsAction()
            {
                HDLLinphoneKit.Instance.SetMediaPlayerLooping(false);
                hdlLinphone.HDLUpdateCallStatus(CallStatusType.MISSED, InterphoneType.HDL);
            }
        }
@@ -841,6 +867,7 @@
            /// </summary>
            public override void OnAnswerAction()
            {
                Other.SoundPlayer.Ins.StopSound();
                hdlLinphone.HDLUpdateCallStatus(CallStatusType.RECEIVED, InterphoneType.HDL);
            }
@@ -858,6 +885,7 @@
            /// </summary>
            public override void OnRejectCallAction()
            {
                Other.SoundPlayer.Ins.StopSound();
                hdlLinphone.HDLUpdateCallStatus(CallStatusType.REJECT, InterphoneType.HDL);
            }
HDL_ON/UI/MainPage.cs
@@ -492,11 +492,11 @@
                        UserBasePage.LoadPage();
                        BasePageView.PageIndex = 0;
                        if (isFirstOpen)
                        {
                            //启动密码验证
                            new AppUnlockPage().LoadPage(isFirstOpen);
                        }
                        //if (isFirstOpen)
                        //{
                        //    //启动密码验证
                        //    new AppUnlockPage().LoadPage(isFirstOpen);
                        //}
                        //主页加载完成,回调事件
                        pageShowEvent?.Invoke();
                        pageShowEvent = null;
HDL_ON/UI/UI0-Public/AppUnlockPage.cs
@@ -1,444 +1,443 @@
using System;
using Shared;
namespace HDL_ON.UI
{
    /// <summary>
    /// app解锁界面
    /// </summary>
    public class AppUnlockPage
    {
        void LoadOption()
        {
            //2020-12-12 未登录或者APP未启动都返回,解决闪退问题
            if (UserInfo.Current == null || !UserInfo.Current.IsLogin || MainPage.BasePageView == null)
            {
                return;
            }
            Action action = () =>
            {
                UserInfo.Current.unlockTime = DateTime.Now;
            };
            //1:验证指纹
            if (UserInfo.Current.appUnlockType.Contains("3"))
            {
                TouchIDVerification();
            }
            else if (UserInfo.Current.appUnlockType.Contains("4"))
            {
                //Face ID验证
                //2020-12-11 待增加面容失败验证页面,不然会导致锁屏加密无效
                FaceIDVerification();
            }
            else if (UserInfo.Current.appUnlockType.Contains("1"))
            {
                var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, action);
                MainPage.BasePageView.AddChidren(page);
                page.LoadPage("7");
            }
            else if (UserInfo.Current.appUnlockType.Contains("2"))
            {
                var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, action);
                MainPage.BasePageView.AddChidren(page);
                page.LoadPage("7");
            }
#if __ANDROID__
            new System.Threading.Thread(() =>
            {
                int i = 0;
                while (i > 1)
                {
                    MainPage.Log($"倒计时:{i} sec");
                    System.Threading.Thread.Sleep(1000);
                    i++;
                }
                Application.RunOnMainThread(() =>
                {
                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                });
            })
            { IsBackground = true }.Start();
#else
            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
#endif
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="isFirstOpen">如果是第一次启动直接弹窗验证密码</param>
        public void LoadPage(bool isFirstOpen = false)
        {
            try
            {
                if (!isFirstOpen)
                {
                    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()
//using System;
//using Shared;
//namespace HDL_ON.UI
                            //{
                            //    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;
                    }
                }
                LoadOption();
            }
            catch
            {
                Utlis.WriteLine("AppUnlockPage error");
            }
        }
        /// <summary>
        /// 指纹验证
        /// </summary>
        void TouchIDVerification()
        {
            //验证成功Action
            Action successAction = () =>
            {
                UserInfo.Current.unlockTime = DateTime.Now;
            };
            //提示数字密码验证还是绘制手势验证
            string verificationTitleString = GetVerificationTitleString();
            //弹出指纹验证对话框
            Action fingerAction = () =>
            {
                TouchIDUtils.Instance.showTouchIDWithDescribe(verificationTitleString, Language.StringByID(StringId.PleaseVerifyTheFingerprint));
            };
            //加载UI页面
            LoadGesturePage("7", fingerAction, null);
            TouchIDUtils.Instance.showTouchIDWithDescribe(verificationTitleString, Language.StringByID(StringId.PleaseVerifyTheFingerprint));
            TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = (sender1, e) =>
            {
                if (e == TouchIDUtils.TouchIDState.Success)
                {
                    MainPage.Log("KK:TouchID验证成功");
                    UserInfo.Current.unlockTime = DateTime.Now;
                    MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
                }
                else
                {
                    ///将验证指纹的页面移除
                    MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
                    if (UserInfo.Current.appUnlockType.Contains("1"))
                    {
                        var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, successAction);
                        MainPage.BasePageView.AddChidren(page);
                        page.LoadPage("7");
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    }
                    else if (UserInfo.Current.appUnlockType.Contains("2"))
                    {
                        var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, successAction);
                        MainPage.BasePageView.AddChidren(page);
                        page.LoadPage("7");
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    }
                }
            };
        }
        /// <summary>
        /// 加载指纹验证界面
        /// </summary>
        /// <param name="optionType"></param>
        /// <param name="fingerAction"></param>
        /// <param name="successAction"></param>
        public void LoadGesturePage(string optionType, Action fingerAction, Action successAction)
        {
            var bodyView = new FrameLayout()
            {
                BackgroundColor = CSS.CSS_Color.MainBackgroundColor
            };
            MainPage.BasePageView.AddChidren(bodyView);
            bodyView.AddChidren(new Button()
            {
                Height = Application.GetRealHeight(64),
                BackgroundColor = CSS.CSS_Color.BackgroundColor,
            });
            bodyView.AddChidren(new Button()
            {
                Y = Application.GetRealHeight(196),
                Height = Application.GetRealHeight(42),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS.CSS_Color.FirstLevelTitleColor,
                TextSize = CSS.CSS_FontSize.SubheadingFontSize,
                TextID = StringId.PleaseVerifyTheFingerprint,
            });
            var btnFingerIcon = new Button()
            {
                Y = Application.GetRealHeight(260),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(102),
                Height = Application.GetRealWidth(102),
                UnSelectedImagePath = "PersonalCenter/AppUnlockSetting/FingerIconBlue.png",
            };
            bodyView.AddChidren(btnFingerIcon);
            btnFingerIcon.MouseUpEventHandler = (sender, e) =>
            {
                fingerAction();
            };
            var btnOtherVerify = new Button()
            {
                Y = Application.GetRealHeight(527),
                Height = Application.GetRealHeight(40),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS.CSS_Color.MainColor,
                TextSize = CSS.CSS_FontSize.TextFontSize,
                TextID = UserInfo.Current.appUnlockType.Contains("1") ? StringId.VerifyDigitalPassword : StringId.VerifyGesturePassword,
            };
            bodyView.AddChidren(btnOtherVerify);
            btnOtherVerify.MouseUpEventHandler = (sender, e) =>
            {
                ///将验证指纹的页面移除
                MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
//    /// <summary>
//    /// app解锁界面
//    /// </summary>
//    public class AppUnlockPage
//    {
//        void LoadOption()
//        {
//            //2020-12-12 未登录或者APP未启动都返回,解决闪退问题
//            if (UserInfo.Current == null || !UserInfo.Current.IsLogin || MainPage.BasePageView == null)
//            {
//                return;
//            }
                //Action action = () =>
                //{
                //    UserInfo.Current.unlockTime = DateTime.Now;
                //};
                //if (UserInfo.Current.appUnlockType.Contains("1"))
//            //1:验证指纹
//            if (UserInfo.Current.appUnlockType.Contains("3"))
//            {
//                TouchIDVerification();
//            }
//            else if (UserInfo.Current.appUnlockType.Contains("4"))
//            {
//                //Face ID验证
//                //2020-12-11 待增加面容失败验证页面,不然会导致锁屏加密无效
//                FaceIDVerification();
//            }
//            else if (UserInfo.Current.appUnlockType.Contains("1"))
                //{
                //    var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, action);
//                MainPage.BasePageView.AddChidren(page);
//                page.LoadPage("7");
//            }
//            else if (UserInfo.Current.appUnlockType.Contains("2"))
//            {
//                var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, action);
//                MainPage.BasePageView.AddChidren(page);
//                page.LoadPage("7");
//            }
//#if __ANDROID__
//            new System.Threading.Thread(() =>
//            {
//                int i = 0;
//                while (i > 1)
//                {
//                    MainPage.Log($"倒计时:{i} sec");
//                    System.Threading.Thread.Sleep(1000);
//                    i++;
//                }
//                Application.RunOnMainThread(() =>
//                {
//                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
//                });
//            })
//            { IsBackground = true }.Start();
//#else
//            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
//#endif
//        }
//        /// <summary>
//        ///
//        /// </summary>
//        /// <param name="isFirstOpen">如果是第一次启动直接弹窗验证密码</param>
//        public void LoadPage(bool isFirstOpen = false)
//        {
//            try
//            {
//                if (!isFirstOpen)
//                {
//                    //if (UserInfo.Current.unlockTime.AddMinutes(5) > DateTime.Now || UserInfo.Current.appUnlockPasswrod == "" || UserInfo.Current.appUnlockPage.Count == 0)
//                    {
//                        if ( 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;
//                    }
//                }
//                LoadOption();
//            }
//            catch
//            {
//                Utlis.WriteLine("AppUnlockPage error");
//            }
//        }
//        /// <summary>
//        /// 指纹验证
//        /// </summary>
//        void TouchIDVerification()
//        {
//            //验证成功Action
//            Action successAction = () =>
//            {
//                UserInfo.Current.unlockTime = DateTime.Now;
//            };
//            //提示数字密码验证还是绘制手势验证
//            string verificationTitleString = GetVerificationTitleString();
//            //弹出指纹验证对话框
//            Action fingerAction = () =>
//            {
//                TouchIDUtils.Instance.showTouchIDWithDescribe(verificationTitleString, Language.StringByID(StringId.PleaseVerifyTheFingerprint));
//            };
//            //加载UI页面
//            LoadGesturePage("7", fingerAction, null);
//            TouchIDUtils.Instance.showTouchIDWithDescribe(verificationTitleString, Language.StringByID(StringId.PleaseVerifyTheFingerprint));
//            TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = (sender1, e) =>
//            {
//                if (e == TouchIDUtils.TouchIDState.Success)
//                {
//                    MainPage.Log("KK:TouchID验证成功");
//                    UserInfo.Current.unlockTime = DateTime.Now;
//                    MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
//                }
//                else
//                {
//                    ///将验证指纹的页面移除
//                    MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
//                    if (UserInfo.Current.appUnlockType.Contains("1"))
//                    {
//                        var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, successAction);
//                        MainPage.BasePageView.AddChidren(page);
//                        page.LoadPage("7");
//                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
//                    }
//                    else if (UserInfo.Current.appUnlockType.Contains("2"))
//                    {
//                        var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, successAction);
//                        MainPage.BasePageView.AddChidren(page);
//                        page.LoadPage("7");
//                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
//                    }
//                }
//            };
//        }
//        /// <summary>
//        /// 加载指纹验证界面
//        /// </summary>
//        /// <param name="optionType"></param>
//        /// <param name="fingerAction"></param>
//        /// <param name="successAction"></param>
//        public void LoadGesturePage(string optionType, Action fingerAction, Action successAction)
//        {
//            var bodyView = new FrameLayout()
//            {
//                BackgroundColor = CSS.CSS_Color.MainBackgroundColor
//            };
//            MainPage.BasePageView.AddChidren(bodyView);
//            bodyView.AddChidren(new Button()
//            {
//                Height = Application.GetRealHeight(64),
//                BackgroundColor = CSS.CSS_Color.BackgroundColor,
//            });
//            bodyView.AddChidren(new Button()
//            {
//                Y = Application.GetRealHeight(196),
//                Height = Application.GetRealHeight(42),
//                TextAlignment = TextAlignment.Center,
//                TextColor = CSS.CSS_Color.FirstLevelTitleColor,
//                TextSize = CSS.CSS_FontSize.SubheadingFontSize,
//                TextID = StringId.PleaseVerifyTheFingerprint,
//            });
//            var btnFingerIcon = new Button()
//            {
//                Y = Application.GetRealHeight(260),
//                Gravity = Gravity.CenterHorizontal,
//                Width = Application.GetRealWidth(102),
//                Height = Application.GetRealWidth(102),
//                UnSelectedImagePath = "PersonalCenter/AppUnlockSetting/FingerIconBlue.png",
//            };
//            bodyView.AddChidren(btnFingerIcon);
//            btnFingerIcon.MouseUpEventHandler = (sender, e) =>
//            {
//                fingerAction();
//            };
//            var btnOtherVerify = new Button()
//            {
//                Y = Application.GetRealHeight(527),
//                Height = Application.GetRealHeight(40),
//                TextAlignment = TextAlignment.Center,
//                TextColor = CSS.CSS_Color.MainColor,
//                TextSize = CSS.CSS_FontSize.TextFontSize,
//                TextID = UserInfo.Current.appUnlockType.Contains("1") ? StringId.VerifyDigitalPassword : StringId.VerifyGesturePassword,
//            };
//            bodyView.AddChidren(btnOtherVerify);
//            btnOtherVerify.MouseUpEventHandler = (sender, e) =>
//            {
//                ///将验证指纹的页面移除
//                MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
//                //Action action = () =>
//                //{
//                //    UserInfo.Current.unlockTime = DateTime.Now;
//                //};
//                //if (UserInfo.Current.appUnlockType.Contains("1"))
//                //{
//                //    var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, action);
//                //    MainPage.BasePageView.AddChidren(page);
//                //    page.LoadPage(optionType);
//                //    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
//                //}
//                //else if (UserInfo.Current.appUnlockType.Contains("2"))
//                //{
//                //    var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, action);
//                //    MainPage.BasePageView.AddChidren(page);
//                //    page.LoadPage(optionType);
//                //    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
//                //}
//                if (successAction == null)
//                {
//                    Action action = () =>
//                    {
//                        UserInfo.Current.unlockTime = DateTime.Now;
//                    };
//                    GotogoToVerifyPasswordPage(optionType, action);
//                }
//                else
//                {
//                    GotogoToVerifyPasswordPage(optionType, successAction);
//                }
//            };
//            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
//            //dialog.Show();
//            //Console.WriteLine("-0987654321");
//        }
//        /// <summary>
//        /// 面容ID验证
//        /// </summary>
//        void FaceIDVerification()
//        {
//            //验证成功Action
//            Action successAction = () =>
//            {
//                UserInfo.Current.unlockTime = DateTime.Now;
//            };
//            //提示数字密码验证还是绘制手势验证
//            string verificationTitleString = GetVerificationTitleString();
//            //弹出指纹验证对话框
//            Action faceIDAction = () =>
//            {
//                TouchIDUtils.Instance.showTouchIDWithDescribe(verificationTitleString, Language.StringByID(StringId.VerifyFaceID));
//            };
//            //加载UI页面
//            LoadFaceIDGesturePage("7", faceIDAction, null);
//            TouchIDUtils.Instance.showTouchIDWithDescribe(verificationTitleString, Language.StringByID(StringId.VerifyFaceID));
//            TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = (sender1, e) =>
//            {
//                if (e == TouchIDUtils.TouchIDState.Success)
//                {
//                    MainPage.Log("KK:TouchID验证成功");
//                    UserInfo.Current.unlockTime = DateTime.Now;
//                    MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
//                }
//                else
//                {
//                    ///将验证指纹的页面移除
//                    MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
//                    if (UserInfo.Current.appUnlockType.Contains("1"))
//                    {
//                        var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, successAction);
//                        MainPage.BasePageView.AddChidren(page);
//                        page.LoadPage("7");
//                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
//                    }
//                    else if (UserInfo.Current.appUnlockType.Contains("2"))
//                    {
//                        var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, successAction);
//                        MainPage.BasePageView.AddChidren(page);
//                        page.LoadPage("7");
//                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
//                    }
//                }
//            };
//        }
//        /// <summary>
//        ///  加载面容ID验证界面
//        /// </summary>
//        /// <param name="optionType"></param>
//        /// <param name="faceIDAction"></param>
//        /// <param name="successAction">指定成功的事件回调</param>
//        public void LoadFaceIDGesturePage(string optionType, Action faceIDAction, Action successAction)
//        {
//            var bodyView = new FrameLayout()
//            {
//                BackgroundColor = CSS.CSS_Color.MainBackgroundColor
//            };
//            MainPage.BasePageView.AddChidren(bodyView);
//            bodyView.AddChidren(new Button()
//            {
//                Height = Application.GetRealHeight(64),
//                BackgroundColor = CSS.CSS_Color.BackgroundColor,
//            });
//            bodyView.AddChidren(new Button()
//            {
//                Y = Application.GetRealHeight(196),
//                Height = Application.GetRealHeight(42),
//                TextAlignment = TextAlignment.Center,
//                TextColor = CSS.CSS_Color.FirstLevelTitleColor,
//                TextSize = CSS.CSS_FontSize.SubheadingFontSize,
//                TextID = StringId.VerifyFaceID,
//            });
//            var btnFaceIdIcon = new Button()
//            {
//                Y = Application.GetRealHeight(260),
//                Gravity = Gravity.CenterHorizontal,
//                Width = Application.GetRealWidth(102),
//                Height = Application.GetRealWidth(102),
//                UnSelectedImagePath = "PersonalCenter/AppUnlockSetting/FaceIdIconBig.png",
//            };
//            bodyView.AddChidren(btnFaceIdIcon);
//            btnFaceIdIcon.MouseUpEventHandler = (sender, e) =>
//            {
//                faceIDAction();
//            };
//            var btnOtherVerify = new Button()
//            {
//                Y = Application.GetRealHeight(527),
//                Height = Application.GetRealHeight(40),
//                TextAlignment = TextAlignment.Center,
//                TextColor = CSS.CSS_Color.MainColor,
//                TextSize = CSS.CSS_FontSize.TextFontSize,
//                TextID = UserInfo.Current.appUnlockType.Contains("1") ? StringId.VerifyDigitalPassword : StringId.VerifyGesturePassword,
//            };
//            bodyView.AddChidren(btnOtherVerify);
//            btnOtherVerify.MouseUpEventHandler = (sender, e) =>
//            {
//                ///将验证面容ID的页面移除
//                MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
//                if (successAction == null)
//                {
//                    Action action = () =>
//                    {
//                        UserInfo.Current.unlockTime = DateTime.Now;
//                    };
//                    GotogoToVerifyPasswordPage(optionType, action);
//                }
//                else
//                {
//                    GotogoToVerifyPasswordPage(optionType, successAction);
//                }
//            };
//            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
//        }
//        /// <summary>
//        /// 跳转手势或者密码验证界面
//        /// </summary>
//        /// <param name="optionType">1:设置密码;2:验证密码;3:关闭密码;4:关闭解锁设置;5:指纹ID开关;6:面容ID开关;7:解锁验证</param>
//        /// <param name="successAction"></param>
//        void GotogoToVerifyPasswordPage(string optionType, Action successAction)
//        {
//            if (UserInfo.Current.appUnlockType.Contains("1"))
//            {
//                var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, successAction);
                //    MainPage.BasePageView.AddChidren(page);
                //    page.LoadPage(optionType);
                //    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                //}
                //else if (UserInfo.Current.appUnlockType.Contains("2"))
                //{
                //    var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, action);
//                var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, successAction);
                //    MainPage.BasePageView.AddChidren(page);
                //    page.LoadPage(optionType);
                //    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                //}
//        }
                if (successAction == null)
                {
                    Action action = () =>
                    {
                        UserInfo.Current.unlockTime = DateTime.Now;
                    };
                    GotogoToVerifyPasswordPage(optionType, action);
                }
                else
                {
                    GotogoToVerifyPasswordPage(optionType, successAction);
                }
            };
//        /// <summary>
//        /// 判断是否数字验证、否则绘制手势验证
//        /// </summary>
//        /// <returns></returns>
//        bool CheckIfUnlockPassword()
//        {
//            return UserInfo.Current.appUnlockType.Contains("1");
//        }
            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            //dialog.Show();
            //Console.WriteLine("-0987654321");
        }
        /// <summary>
        /// 面容ID验证
        /// </summary>
        void FaceIDVerification()
        {
            //验证成功Action
            Action successAction = () =>
            {
                UserInfo.Current.unlockTime = DateTime.Now;
            };
            //提示数字密码验证还是绘制手势验证
            string verificationTitleString = GetVerificationTitleString();
            //弹出指纹验证对话框
            Action faceIDAction = () =>
            {
                TouchIDUtils.Instance.showTouchIDWithDescribe(verificationTitleString, Language.StringByID(StringId.VerifyFaceID));
            };
            //加载UI页面
            LoadFaceIDGesturePage("7", faceIDAction, null);
            TouchIDUtils.Instance.showTouchIDWithDescribe(verificationTitleString, Language.StringByID(StringId.VerifyFaceID));
            TouchIDUtils.Instance.OnHDLTouchIDStateBackEvent = (sender1, e) =>
            {
                if (e == TouchIDUtils.TouchIDState.Success)
                {
                    MainPage.Log("KK:TouchID验证成功");
                    UserInfo.Current.unlockTime = DateTime.Now;
                    MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
                }
                else
                {
                    ///将验证指纹的页面移除
                    MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
                    if (UserInfo.Current.appUnlockType.Contains("1"))
                    {
                        var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, successAction);
                        MainPage.BasePageView.AddChidren(page);
                        page.LoadPage("7");
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    }
                    else if (UserInfo.Current.appUnlockType.Contains("2"))
                    {
                        var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, successAction);
                        MainPage.BasePageView.AddChidren(page);
                        page.LoadPage("7");
                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    }
                }
            };
        }
        /// <summary>
        ///  加载面容ID验证界面
        /// </summary>
        /// <param name="optionType"></param>
        /// <param name="faceIDAction"></param>
        /// <param name="successAction">指定成功的事件回调</param>
        public void LoadFaceIDGesturePage(string optionType, Action faceIDAction, Action successAction)
        {
            var bodyView = new FrameLayout()
            {
                BackgroundColor = CSS.CSS_Color.MainBackgroundColor
            };
            MainPage.BasePageView.AddChidren(bodyView);
            bodyView.AddChidren(new Button()
            {
                Height = Application.GetRealHeight(64),
                BackgroundColor = CSS.CSS_Color.BackgroundColor,
            });
            bodyView.AddChidren(new Button()
            {
                Y = Application.GetRealHeight(196),
                Height = Application.GetRealHeight(42),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS.CSS_Color.FirstLevelTitleColor,
                TextSize = CSS.CSS_FontSize.SubheadingFontSize,
                TextID = StringId.VerifyFaceID,
            });
            var btnFaceIdIcon = new Button()
            {
                Y = Application.GetRealHeight(260),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(102),
                Height = Application.GetRealWidth(102),
                UnSelectedImagePath = "PersonalCenter/AppUnlockSetting/FaceIdIconBig.png",
            };
            bodyView.AddChidren(btnFaceIdIcon);
            btnFaceIdIcon.MouseUpEventHandler = (sender, e) =>
            {
                faceIDAction();
            };
            var btnOtherVerify = new Button()
            {
                Y = Application.GetRealHeight(527),
                Height = Application.GetRealHeight(40),
                TextAlignment = TextAlignment.Center,
                TextColor = CSS.CSS_Color.MainColor,
                TextSize = CSS.CSS_FontSize.TextFontSize,
                TextID = UserInfo.Current.appUnlockType.Contains("1") ? StringId.VerifyDigitalPassword : StringId.VerifyGesturePassword,
            };
            bodyView.AddChidren(btnOtherVerify);
            btnOtherVerify.MouseUpEventHandler = (sender, e) =>
            {
                ///将验证面容ID的页面移除
                MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
                if (successAction == null)
                {
                    Action action = () =>
                    {
                        UserInfo.Current.unlockTime = DateTime.Now;
                    };
                    GotogoToVerifyPasswordPage(optionType, action);
                }
                else
                {
                    GotogoToVerifyPasswordPage(optionType, successAction);
                }
            };
            MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
        }
        /// <summary>
        /// 跳转手势或者密码验证界面
        /// </summary>
        /// <param name="optionType">1:设置密码;2:验证密码;3:关闭密码;4:关闭解锁设置;5:指纹ID开关;6:面容ID开关;7:解锁验证</param>
        /// <param name="successAction"></param>
        void GotogoToVerifyPasswordPage(string optionType, Action successAction)
        {
            if (UserInfo.Current.appUnlockType.Contains("1"))
            {
                var page = new AppUnlockPasswordPage(UserInfo.Current.appUnlockPasswrod, successAction);
                MainPage.BasePageView.AddChidren(page);
                page.LoadPage(optionType);
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            }
            else if (UserInfo.Current.appUnlockType.Contains("2"))
            {
                var page = new AppUnlockGesturePage(UserInfo.Current.appUnlockPasswrod, successAction);
                MainPage.BasePageView.AddChidren(page);
                page.LoadPage(optionType);
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            }
        }
        /// <summary>
        /// 判断是否数字验证、否则绘制手势验证
        /// </summary>
        /// <returns></returns>
        bool CheckIfUnlockPassword()
        {
            return UserInfo.Current.appUnlockType.Contains("1");
        }
        /// <summary>
        /// 判断是否数字验证、否则绘制手势验证
        /// </summary>
        /// <returns></returns>
        string GetVerificationTitleString()
        {
            if (CheckIfUnlockPassword())
            {
                return Language.StringByID(StringId.PasswordVerification);
            }
            else
            {
                return Language.StringByID(StringId.GestureVerification);
            }
        }
    }
}
//        /// <summary>
//        /// 判断是否数字验证、否则绘制手势验证
//        /// </summary>
//        /// <returns></returns>
//        string GetVerificationTitleString()
//        {
//            if (CheckIfUnlockPassword())
//            {
//                return Language.StringByID(StringId.PasswordVerification);
//            }
//            else
//            {
//                return Language.StringByID(StringId.GestureVerification);
//            }
//        }
//    }
//}
HDL_ON/UI/UI1-Login/LoginPage.cs
@@ -310,6 +310,7 @@
                    //etAccount.Text = "support7@hdlautomation.com";
                    etAccount.Text = "13336018868";
                    etAccount.Text = "13580507523";
                    etAccount.Text = "18402017839";
                }
HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -1,13 +1,8 @@
using System;
using System.Collections.Generic;
using System.Text;
using HDL_ON.DAL;
using HDL_ON.DAL.Server;
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Other;
using Shared;
namespace HDL_ON.UI
@@ -555,8 +550,32 @@
                #endregion
#if DEBUG
                bool isPlay = false;
                SoundPlayer soundPlayer = new SoundPlayer();
                btnResidenceName.MouseUpEventHandler = (envent, ee) => {
                    MainPage.Log("sss");
#if __ANDROID__
                    //HDLLinphoneKit.Instance.MediaPlayerLooping(true);
                    Com.Hdl.Hdllinphonesdk.HDLLinphoneKit.Instance.PlayRingtone();
#elif __IOS__
                    ScheduleLocalNotification ss = new ScheduleLocalNotification();
                    ss.SetScheduleLocalNotification();
                    //if (isPlay)
                    //{
                    //    isPlay = false;
                    //    soundPlayer.StopSound();
                    //}
                    //else
                    //{
                    //    isPlay = true;
                    //    soundPlayer.PlaySound();
                    //}
#endif
                    //PlaySystemRingtone playSystemRingtone = new PlaySystemRingtone();
                    //playSystemRingtone.Play();
                    //new System.Threading.Thread(async() =>
                    //{
                    //    await Common.AliyunLog.AliyunLogClient.PostLogs("告警测试", "测试信息测试信息测试信息测试信息测试信息测试信息测试信息测试信息测试信息测试信息测试信息测试信息测试信息");
SiriIntents/SiriIntents.csproj
@@ -28,7 +28,7 @@
    <MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
    <DeviceSpecificBuild>false</DeviceSpecificBuild>
    <MtouchVerbosity></MtouchVerbosity>
    <CodesignProvision>OnProSiri230729-1-Dev</CodesignProvision>
    <CodesignProvision>0002-OnProSiri-240704-1-Dev</CodesignProvision>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
    <DebugType>pdbonly</DebugType>
@@ -81,7 +81,7 @@
    <MtouchArch>ARM64</MtouchArch>
    <MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
    <MtouchVerbosity></MtouchVerbosity>
    <CodesignProvision>OnProSiri230729-1-Dev</CodesignProvision>
    <CodesignProvision>0002-OnProSiri-240704-1-Dev</CodesignProvision>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
SiriIntentsUI/SiriIntentsUI.csproj
@@ -29,7 +29,7 @@
    <DeviceSpecificBuild>false</DeviceSpecificBuild>
    <MtouchVerbosity></MtouchVerbosity>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
    <CodesignProvision>OnProSiriUI230729-1-Dev</CodesignProvision>
    <CodesignProvision>0002-OnProSiriUI-240704-1-Dev</CodesignProvision>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
    <DebugType>pdbonly</DebugType>