using System; using Shared; using HDL_ON; using HDL_ON.UI.CSS; using HDL_ON.DAL.Server; using HDL_ON.UI; using HDL_ON.Entity; using System.Threading; using HDL_ON.DriverLayer; #if __IOS__ using Other; using Shared.IOS.HDLLinphoneSDK; #endif namespace HDL_ON { /// /// HDLCommon /// 暂时没用 /// public class HDLCommon { /// /// 收到推送Action事件 /// public static Action GetPushMessageAction; #region ■ 变量声明___________________________ /// /// 通用方法 /// private static HDLCommon m_Current = null; /// /// 通用方法 /// public static HDLCommon Current { get { if (m_Current == null) { m_Current = new HDLCommon(); } return m_Current; } } #endregion #region ■ Alter弹窗提示_______________________ /// /// 弹窗提示 /// /// public void ShowAlert(string mes) { new Alert("", mes, Language.StringByID(StringId.Close)).Show(); } /// /// 弹窗提示 /// /// 弹窗提示信息 /// 确认按钮事件 public void ShowActionAlert(string mes, Action okAction) { Alert alert = new Alert("", mes, Language.StringByID(StringId.Cancel), Language.StringByID(StringId.Confirm)); alert.ResultEventHandler += (sender2, e2) => { if (e2) { okAction?.Invoke(); } }; alert.Show(); } #endregion #region ■ 通用Dialog_______________________ #endregion #region ■ 检测更新_______________________ /// /// 检测更新线程 /// public void CheckIfNeedForceUpdate() { System.Threading.Tasks.Task.Run(() => { try { var revertObj = new HttpServerRequest().CheckAppVersion(); if (revertObj.Code == StateCode.SUCCESS) { if (revertObj.Data != null) { var appVersionRes = Newtonsoft.Json.JsonConvert.DeserializeObject(revertObj.Data.ToString()); if (appVersionRes != null) { var mForceUpdateInfo = new UpdateDialogInfo() { UpdateType = appVersionRes.isEnforce ? 2 : 1, NewVersion = appVersionRes.version, NewVersionUrl = appVersionRes.packageUrl }; #if __IOS__ mForceUpdateInfo.NewVersionUrl = appVersionRes.packageUrl; #endif //解析更新内容详情 //var reasonStrJson = GetReasonStrJson(appVersionRes.remark); //if (reasonStrJson != null) //{ // if (Language.CurrentLanguage == "Chinese") // { // mForceUpdateInfo.ReasonStr = reasonStrJson.Chinese; // } // else // { // mForceUpdateInfo.ReasonStr = reasonStrJson.English; // } //} mForceUpdateInfo.ReasonStr = appVersionRes.remark; if (appVersionRes.version != MainPage.VersionString) { Application.RunOnMainThread(() => { ShowForceUpdateDialog(mForceUpdateInfo); }); } } } } else { Utlis.WriteLine("请求失败"); } } catch (Exception ex) { //Shared.Utlis.WriteLine (ex.ToString ()); } finally { } }); } /// /// /// /// /// public ReasonStrJson GetReasonStrJson(string jsonStr) { try { if (!string.IsNullOrEmpty(jsonStr)) { return Newtonsoft.Json.JsonConvert.DeserializeObject(jsonStr); } return null; } catch { return null; } } /// /// 提示强制更新Dialog /// 点击确认跳转浏览器 /// public void ShowForceUpdateDialog(UpdateDialogInfo mUpdateDialogInfo) { // 1.1 没有更新 返回 if (mUpdateDialogInfo.UpdateType == 0) return; // 1.2 有新版本但是忽略过 返回 if (mUpdateDialogInfo.UpdateType == 1 && (OnAppConfig.Instance.IgnoreUpdateVersion == mUpdateDialogInfo.NewVersion)) return; // 2.1 有新版本没有忽略过 提示更新 if (mUpdateDialogInfo.UpdateType == 1) { Action okAction = () => { if (string.IsNullOrEmpty(mUpdateDialogInfo.NewVersionUrl)) return; HDLUtils.OpenUrl(mUpdateDialogInfo.NewVersionUrl); }; Action cancelAction = () => { OnAppConfig.Instance.IgnoreUpdateVersion = mUpdateDialogInfo.NewVersion; OnAppConfig.Instance.SaveConfig(); }; //1提示更新 var dialog = new UpdateTipDialog(); var tipStr = Language.StringByID(StringId.VersionNumber) + mUpdateDialogInfo.NewVersion; dialog.ShowUpdateDialog(Language.StringByID(StringId.DiscoverNewVersion), tipStr, mUpdateDialogInfo.ReasonStr, okAction, cancelAction); } else if (mUpdateDialogInfo.UpdateType == 2) //2.2 需要强制更新 { //2强制更新 //"1.发现新版本App,当前版本已停用,马上更新!\n2.请下载和安装新版本!....." Action okAction = () => { if (string.IsNullOrEmpty(mUpdateDialogInfo.NewVersionUrl)) { Utlis.ShowTip(Language.StringByID(StringId.DataExceptionPleaseTryAgain)); return; }; HDLUtils.OpenUrl(mUpdateDialogInfo.NewVersionUrl); }; //1提示更新 var dialog = new UpdateTipDialog(); var tipStr = Language.StringByID(StringId.VersionNumber) + mUpdateDialogInfo.NewVersion; dialog.ShowForcedUpdateDialog(Language.StringByID(StringId.DiscoverNewVersion), tipStr, mUpdateDialogInfo.ReasonStr, okAction); } else //3. 只需提示 { //3提示通知 Action okAction = () => { }; var dialog = new UpdateTipDialog(); dialog.ShowTipDialog(Language.StringByID(StringId.Tip), mUpdateDialogInfo.ReasonStr, okAction); } } #endregion #region ■ 推送处理_______________________ /// /// 推送消息处理 /// 注意:Android要在主线程(UI线程)执行 /// /// public void AdjustPushMessage(JPushMessageInfo jpushMessageInfo) { try { if (OnAppConfig.Instance.LastLoginUserId == "") { return; } //MainPage.Log($"接收到推送,,,,.{Newtonsoft.Json.JsonConvert.SerializeObject(jpushMessageInfo).ToString()}"); //Extras为空不处理 if (string.IsNullOrEmpty(jpushMessageInfo.Extras)) return; if (jpushMessageInfo.Extras == (PushMessageType.OffLine.ToString())) { CheckLogout(); } else { GetPushMessageAction?.Invoke(); //messageType为空不处理 if (string.IsNullOrEmpty(jpushMessageInfo.messageType)) return; //报警推送才弹窗提示(messageType包含Alarm关键字的) if (jpushMessageInfo.messageType == (PushMessageType.Alarm.ToString())) { //报警推送弹窗提示 ShowAlarmPushMessage(jpushMessageInfo, true); //萤石门锁推送 UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.DoorLockPush(jpushMessageInfo); } else if (jpushMessageInfo.messageType == PushMessageType.HDL_INTERPHONE.ToString()) { if (string.IsNullOrEmpty(jpushMessageInfo.expantContent)) return; //字段兼容问题,只能直接取值了 var json = Newtonsoft.Json.Linq.JObject.Parse(jpushMessageInfo.expantContent); //1.视对讲厂家类型 string interphoneTypeEnum = json["interphoneTypeEnum"].ToString(); if (string.IsNullOrEmpty(interphoneTypeEnum)) return; ESVideoInfo eSVideoInfo = new ESVideoInfo();// GetESOnVideoJson(jpushMessageInfo.expantContent); //2.根据可视对讲厂家类型,处理不同的数据 if (interphoneTypeEnum == InterphoneType.EZVIZ.ToString()) { //萤石猫眼 eSVideoInfo.Lc_AccessToken = json["subToken"].ToString();//"子账号token eSVideoInfo.DeviceSerial = json["devSerial"].ToString();//设备序列号 eSVideoInfo.Lc_DeviceId = json["deviceId"].ToString(); eSVideoInfo.spk = json["spk"].ToString(); eSVideoInfo.HomeId = jpushMessageInfo.HomeId; if (json.ContainsKey("msgId") && !string.IsNullOrEmpty(json["msgId"].ToString())) { eSVideoInfo.msgId = json["msgId"].ToString(); } if (json.ContainsKey("currentTime") && !string.IsNullOrEmpty(json["currentTime"].ToString())) { eSVideoInfo.currentTime = json["currentTime"].ToString(); } } else if (interphoneTypeEnum == InterphoneType.HDL.ToString()) { try { var pushTime = json["pushTime"]; if (pushTime == null) { return; } if (!string.IsNullOrEmpty(pushTime.ToString())) { var pushDateTime = Utlis.UnixToDateTimeMS(Convert.ToInt64(pushTime)); if (pushDateTime.AddSeconds(30) < DateTime.Now) { return; } } } catch (Exception ex) { MainPage.Log("Error", $"自研可视对讲通知异常:{ex.StackTrace}"); } #if __ANDROID__ try { //安卓如果设置了静音,不能响铃 if (Com.Hdl.Hdllinphonesdk.HDLLinphoneKit.Instance.AudioManager.RingerMode.ToString().ToLower() == "normal") { Com.Hdl.Hdllinphonesdk.HDLLinphoneKit.Instance.MissedCallsTime = 30; 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(); } } catch (Exception ex) { MainPage.Log("Error", $"安卓可视对讲响铃异常:{ex.StackTrace}"); } #elif __IOS__ SoundPlayer.Ins.PlaySound(); new Thread(() => { int count = 0; while (true) { if (SoundPlayer.Ins.player == null) { break; } if (!SoundPlayer.Ins.player.Playing) { break; } System.Threading.Thread.Sleep(1000); count++; MainPage.Log("linphone 呼叫计时:" + count); if (count > 29) { SoundPlayer.Ins.StopSound(); Application.RunOnMainThread(() => { try { HDLLinPhoneSDK.Instance().HideIntercomeVC(); }catch(Exception ex) { MainPage.Log("error", "ios linphone 呼叫超时关闭界面异常:" + ex.Message); } }); break; } } }) { IsBackground = true }.Start(); #endif MainPage.Log("接收到推送:HDL Linphone 狄耐克"); eSVideoInfo.HomeId = jpushMessageInfo.HomeId; eSVideoInfo.callId = json["callId"].ToString(); eSVideoInfo.Lc_DeviceId = json["deviceId"].ToString(); eSVideoInfo.DeviceName = json["deviceName"].ToString(); eSVideoInfo.deviceSipAccount = json["deviceSipAccount"].ToString(); eSVideoInfo.spk = json["spk"].ToString(); //打开呼叫页面 HDLLinphone.Current.ShowESVideoIntercom(eSVideoInfo, InterphoneType.HDL.ToString(), jpushMessageInfo.isNotificationGoing); return; } //3.打开呼叫页面 if (eSVideoInfo == null) return; ESOnVideo.Current.ShowESvideoVideoIntercom(eSVideoInfo, interphoneTypeEnum); } else if (jpushMessageInfo.messageType == (PushMessageType.Prompt.ToString())) { ShowAlarmPushMessage(jpushMessageInfo, false); //萤石门锁推送 HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.DoorLockPush(jpushMessageInfo); } else if (jpushMessageInfo.messageType == (PushMessageType.DOOR_BELL.ToString())) { try { var json = Newtonsoft.Json.Linq.JObject.Parse(jpushMessageInfo.expantContent); string interphoneTypeEnum = json["interphoneTypeEnum"].ToString(); if (string.IsNullOrEmpty(interphoneTypeEnum)) return; ESVideoInfo eSVideoInfo = new ESVideoInfo(); if (interphoneTypeEnum == InterphoneType.EZVIZ.ToString()) { eSVideoInfo.Lc_AccessToken = json["subToken"].ToString();//"子账号token eSVideoInfo.DeviceSerial = json["devSerial"].ToString();//设备序列号 eSVideoInfo.Lc_DeviceId = json["deviceId"].ToString(); eSVideoInfo.spk = json["spk"].ToString(); if (eSVideoInfo.spk == SPK.Peephole) { eSVideoInfo.HomeId = jpushMessageInfo.HomeId; if (json.ContainsKey("msgId") && !string.IsNullOrEmpty(json["msgId"].ToString())) { eSVideoInfo.msgId = json["msgId"].ToString(); } if (json.ContainsKey("currentTime") && !string.IsNullOrEmpty(json["currentTime"].ToString())) { eSVideoInfo.currentTime = json["currentTime"].ToString(); } if (eSVideoInfo != null) { //打开呼叫页面 ESOnVideo.Current.ShowESvideoVideoIntercom(eSVideoInfo, interphoneTypeEnum); return; } } } } catch (Exception ex) { MainPage.Log("Error", $"结束门铃推送数据异常:{ex.Message}"); } //萤石门锁推送 HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.DoorLockPush(jpushMessageInfo); } } } catch (Exception EX) { Utlis.WriteLine("catch: " + EX.ToString()); } } /// /// 解析丰林可视对讲推送数据 /// /// /// ESVideoInfo GetESOnVideoJson(string jsonStr) { try { if (!string.IsNullOrEmpty(jsonStr)) { return Newtonsoft.Json.JsonConvert.DeserializeObject(jsonStr); } return null; } catch { return null; } } /// /// 账号在别处登陆,被踢下线 跳转到登录页面 /// 要在主线程调用 /// 退出登录操作 /// public void CheckLogout() { #if __IOS__ try{ HDL_ON_iOS.AppDelegate.rootViewController.PopToRootViewController(false); }catch(Exception ex){ MainPage.Log($"回到跟类失败:{ex.Message}"); } #else //Application.Activity.StartActivity() #endif //未登录不用处理 //if (!UserInfo.Current.IsLogin) return; try { Application.RunOnMainThread(() => { //账号在别处登陆,被踢下线 跳转到登录页面 new Alert(Language.StringByID(StringId.Tip), Language.StringByID(StringId.LoggedOnOtherDevices), Language.StringByID(StringId.Close)).Show(); }); } catch (Exception ex) { MainPage.Log("Error", $"挤下线提示窗口异常:{ex.StackTrace}"); } try { Logout(); } catch (Exception ex) { MainPage.Log("Error", $"挤下线异常:{ex.Message}"); } } /// /// 退出登录操作 /// public void Logout() { try { Application.RunOnMainThread(() => { //加载Loading效果 var waitPage = new Loading(); MainPage.BaseView.AddChidren(waitPage); waitPage.Start(Language.StringByID(StringId.PleaseWait)); new Thread(() => { try { //2.注销推送 new HttpServerRequest().SignOutPush(); //3.跳转登录页面 UserInfo.Current.ValidToken = false; UserInfo.Current.SaveUserInfo(); OnAppConfig.Instance.LastLoginUserId = ""; OnAppConfig.Instance.PushSignStr = ""; OnAppConfig.Instance.SaveConfig(); DB_ResidenceData.Instance.EixtAccount(); MainPage.Log("退出账号清空数据"); //4.注销HDLSIP账号登录 2021-08-20 HDLLinphone.Current.LogoutAllAccount(); MainPage.Log("注销HDLSIP账号登录"); #if __IOS__ //5.全视通登出 //Shared.IOS.HDLFVSDK.Video.Logout(); //6.清空Siri共享数据信息 new Other.SkipControl().SetData(false, "", "", "", ""); var sDM = new SiriKit.SceneDateManager(); //Console.WriteLine($"IsLogin:{sDM.IsLgoin};accessToken:{sDM.AccessToken};refreshToken:{sDM.RefreshToken};RegionUrl:{sDM.RegionUrl};HomeId:{sDM.HomeId}"); #endif } catch (Exception ex) { MainPage.Log($"xxx:{ex.Message}"); } finally { Application.RunOnMainThread(() => { if (waitPage != null) { waitPage.Hide(); waitPage.RemoveFromParent(); waitPage = null; } MainPage.GoLoginPage(UserInfo.Current); }); } }).Start(); }); } catch (Exception ex) { MainPage.Log("Error", $"退出登录异常:{ex.StackTrace}"); } } /// /// /// ConfirmDialog alarmPushConfirmDialog; /// /// 报警推送弹窗提示,点击查看跳转信息中心 /// /// /// 是否是报警信息,(加载的弹窗颜色不一样) public void ShowAlarmPushMessage(JPushMessageInfo jpushMessageInfo, bool isAlarm) { //没登录不处理 if (UserInfo.Current == null || MainPage.BasePageView == null) { return; } //跳转信息中心页面 Action goAction = () => { //查看对应住宅的信息,要切换到对应住宅 if (jpushMessageInfo.HomeId != DB_ResidenceData.Instance.CurrentRegion.id) { var homeTemp = UserInfo.Current.regionList.Find((obj) => jpushMessageInfo.HomeId == obj.id); if (homeTemp != null) { DB_ResidenceData.Instance.CurrentRegion = homeTemp; DB_ResidenceData.Instance.SaveResidenceData(); DB_ResidenceData.Instance.EixtAccount(); //刷新住宅数据 Common.ApiUtlis.Ins.DownloadData(); while (MainPage.BasePageView.ChildrenCount > 1) { MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 2; } MainPage.CurPageIndex = 9999; MainPage.UserBasePage.ChooseCollection(); #if __IOS__ var sdm = new SiriKit.SceneDateManager(); sdm.RegionUrl = DB_ResidenceData.Instance.CurrentRegion.regionUrl; sdm.HomeId = DB_ResidenceData.Instance.CurrentRegion.id; #endif } } //Dialog alarmPushConfirmDialog = null; Action backAction = () => { }; while (MainPage.BasePageView.ChildrenCount > 1) { MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 2; } var skipPage = new MessageCenterPage(); MainPage.BasePageView.AddChidren(skipPage); skipPage.LoadPage(backAction); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; //取消事件 Action cancelAction = () => { alarmPushConfirmDialog = null; }; //防止多次弹窗处理 if (alarmPushConfirmDialog == null) { alarmPushConfirmDialog = new ConfirmDialog(isAlarm); alarmPushConfirmDialog.ShowDialog(Language.StringByID(StringId.Tip), jpushMessageInfo.Content, goAction, cancelAction, StringId.Cancel, StringId.LookOver); } else { alarmPushConfirmDialog.RefreshDialog(Language.StringByID(StringId.Tip), jpushMessageInfo.Content, goAction, cancelAction, StringId.Cancel, StringId.LookOver); } } #endregion #region ■ 常用方法_______________________ /// /// 设置下划线按钮状态 /// 统一封装设置方法 /// /// 下划线按钮 /// 状态 public void BottomLineShowType(Button button, BottomLineType bottomLineType) { switch (bottomLineType) { case BottomLineType.GotFocus: button.BackgroundColor = CSS_Color.MainColor; button.Height = Application.GetRealHeight(2); break; case BottomLineType.Error: button.BackgroundColor = CSS_Color.AuxiliaryColor2; button.Height = Application.GetRealHeight(2); break; case BottomLineType.Normal: button.BackgroundColor = CSS_Color.DividingLineColor; button.Height = Application.GetRealHeight(1); break; default: button.BackgroundColor = CSS_Color.DividingLineColor; button.Height = Application.GetRealHeight(1); break; } } /// /// /// /// /// public string GetUserName(string userName) { return string.IsNullOrEmpty(userName) ? Language.StringByID(StringId.UsersWhoNameIsEmpty) : userName; } /// /// 监听网络变化后处理事件 /// 刷新网络状态 /// /// 网络变化 /// 是否进入了后台 public void UpdateInternetStatus(int internetStatus, bool IsEnterBackground = false) { MainPage.Log($"网络状态变化,当前网络:{internetStatus} 是否后台:{IsEnterBackground.ToString()}"); MainPage.LinkHdlMqttCount = 0; //网络状态变化 重置网关状态重新搜索 Control.Ins.GatewayOnline_Cloud = false; Control.Ins.GatewayOnline_Local = false; DAL.Mqtt.MqttClient.DisConnectRemote("UpdateInternetStatus", false); if (internetStatus == 0)//没有网络连接 0 { MainPage.InternetStatus = 0; //DAL.Mqtt.MqttClient.DisConnectRemote();//.InitState(); } else if (internetStatus == 1)//3,4G的网络连接 1 { MainPage.InternetStatus = 1; Control.Ins.SearchLoaclGateway(); } else if (internetStatus == 2)//WiFi网络 { MainPage.InternetStatus = 2; Control.Ins.SearchLoaclGateway(); } } #endregion #region 跳转打开萤石云方法 /// /// 获取子账号token并跳转设备列表页面 /// /// public void Go2EZvizMonitor(FrameLayout bodyView) { var waitPage = new Loading(); bodyView.AddChidren(waitPage); waitPage.Start(Language.StringByID(StringId.PleaseWait)); new Thread(() => { try { var list = UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.GetVideoDoorLockLockModelsList(); //先获取萤石云子账号token var result = new HttpServerRequest().EZGetChildToken(); if (result.Code == StateCode.SUCCESS) { var ezChildAccessToken = result.Data.ToString(); //var ezChildAccessToken = Newtonsoft.Json.JsonConvert.DeserializeObject(result.Data.ToString()); Application.RunOnMainThread(() => { if (!string.IsNullOrEmpty(ezChildAccessToken)) { #if __IOS__ //iOS //初始化萤石云SDK,中文国内key、英文海外key 开发者账号使用应用包名申请的APPKEY,不同包名应用需配置不同的APPKEY EZSDK.IOS.EZSDK.SharedInstance().InitLibWithAppKey("1aa98a90489b4838b966b57018b4b04b", "1aa98a90489b4838b966b57018b4b04b"); EZSDK.IOS.EZSDK.SharedInstance().ConfigHDLServerAppKey(HttpUtil.Ins.APP_KEY,HttpUtil.Ins.SECRET_KEY); //1.设置所需河东的AccessToken和RefreshToken、域名地址 EZSDK.IOS.EZSDK.SharedInstance().SetHDlAccessToken(UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken); EZSDK.IOS.EZSDK.SharedInstance().SetRequestHttpsHostAndPlatform(OnAppConfig.Instance.RequestHttpsHost, 1, DB_ResidenceData.Instance.CurrentRegion.id); //2.设置萤石子账号的AccessToken到SDK EZSDK.IOS.EZSDK.SharedInstance().SetEZAccessToken(ezChildAccessToken); //////3.打开摄像头设备列表页面 //EZSDK.IOS.EZSDK.SharedInstance().Go2EZvizMonitor(); //EZSDK.IOS.EZDeviceInfo info = new EZSDK.IOS.EZDeviceInfo(); //info.de //EZSDK.IOS.EZSDK.Play(info); //2023年03月29日13:08:35 修改 Foundation.NSObject[] nSObject = new Foundation.NSObject[list.Count]; for (int i = 0; i < list.Count; i++) { string strValue = list[i]; nSObject[i] = new Foundation.NSString(strValue); } EZSDK.IOS.EZSDK.SharedInstance().ToEZDeviceListViewWithFilterTypes(nSObject); #else //Android //1.设置所需河东的token、域名地址 //2.设置萤石子账号的token //3.打开摄像头设备列表页面 ((BaseActivity)Shared.Application.Activity).SetCamera(b => { if (b) { ((BaseActivity)Shared.Application.Activity).SetPermission(result => { MainPage.Log($"初始化萤石SDK\r\nEzChildAccessToken\r\n{ezChildAccessToken}" + $"\r\n LoginTokenString\r\n{UserInfo.Current.LoginTokenString}" + $"\r\n RefreshToken\r\n{UserInfo.Current.RefreshToken}" + $"\r\n RequestHttpsHost\r\n{OnAppConfig.Instance.RequestHttpsHost}" + $"\r\n EzAppKey\r\n 1aa98a90489b4838b966b57018b4b04b" + $"\r\n HomeId\r\n{DB_ResidenceData.Instance.CurrentRegion.id}" + $"\r\n APP_KEY\r\n{HttpUtil.Ins.APP_KEY}" + $"\r\n SECRET_KEY\r\n{HttpUtil.Ins.SECRET_KEY}"); //2023年03月29日13:08:35 修改 Com.Videogo.Hdl.HDLEzvizSdk.Instance.Init(Application.Activity.Application, ezChildAccessToken, UserInfo.Current.LoginTokenString, UserInfo.Current.RefreshToken, OnAppConfig.Instance.RequestHttpsHost, "1aa98a90489b4838b966b57018b4b04b", 1, DB_ResidenceData.Instance.CurrentRegion.id, HttpUtil.Ins.APP_KEY, HttpUtil.Ins.SECRET_KEY); Com.Videogo.Hdl.HDLEzvizSdk.Instance.JumpToCameraListActivity(Shared.Application.Activity, list); //if (result) //{ // Android.Content.Intent intent = new Android.Content.Intent(); // var bundle = new Android.OS.Bundle(); // //传递name参数为tinyphp // bundle.PutString("EzChildAccessToken", ezChildAccessToken); // bundle.PutString("HdlToken", UserInfo.Current.LoginTokenString); // bundle.PutString("Url", OnAppConfig.Instance.RequestHttpsHost); // bundle.PutString("EzvizAppKey", "1aa98a90489b4838b966b57018b4b04b"); // bundle.PutInt("Platform", 1); // bundle.PutString("HomeId", DB_ResidenceData.Instance.CurrentRegion.id); // intent.PutExtras(bundle); // intent.SetComponent(new Android.Content.ComponentName(Shared.Application.Activity, "com.videogo.MainActivity")); // Shared.Application.Activity.StartActivity(intent); //} }, "android.permission.RECORD_AUDIO"); } }); #endif } }); } else { if (result.Code != "-1") IMessageCommon.Current.ShowErrorInfoAlter(result.Code); } } catch (Exception ex) { } finally { Application.RunOnMainThread(() => { if (waitPage != null) { waitPage.RemoveFromParent(); waitPage = null; } }); } }) { IsBackground = true }.Start(); } #endregion } }