2023年03月29日14:23:28
修复获取门锁设备列表闪退问题
| | |
| | | return; |
| | | } |
| | | ///视频门锁 |
| | | HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.SkipRTVActivity(expantContent.devSerial, expantContent.deviceId,expantContent.spk,true); |
| | | HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.SkipRTVActivity(expantContent.devSerial, expantContent.deviceId, expantContent.spk, true); |
| | | } |
| | | catch { } |
| | | } |
| | |
| | | } |
| | | //{"code":0,"data":{"list":[{"createTime":"1625798305115","modifyTime":"1625798305115","region":"100000000000000001","id":"1413326644794294273","alarmId":"20210709103818-F41014762-1-10000","channelNo":1,"deviceSerial":"F41014762","alarmName":"人体感应事件","alarmPicUrl":"https://i.ys7.com/streamer/alarm/url/get?fileId=20210709103818-F41014762-1-10000-2-1&deviceSerialNo=F41014762&cn=1&isEncrypted=0&isCloudStored=0&ct=1&lc=7&bn=1_hikalarm&isDevVideo=0","alarmTime":"2021-07-09T10:38:17","homeId":"1396717478877241345","alarmType":"pir","isChecked":0,"isEncrypt":0,"deleted":0,"tenantId":"20"},{"createTime":"1625798057197","modifyTime":"1625798057197","region":"100000000000000001","id":"1413325604946640898","alarmId":"20210709103413-F41014762-1-10000","channelNo":1,"deviceSerial":"F41014762","alarmName":"人体感应事件","alarmPicUrl":"https://i.ys7.com/streamer/alarm/url/get?fileId=20210709103413-F41014762-1-10000-2-1&deviceSerialNo=F41014762&cn=1&isEncrypted=0&isCloudStored=0&ct=1&lc=7&bn=1_hikalarm&isDevVideo=0","alarmTime":"2021-07-09T10:34:12","homeId":"1396717478877241345","alarmType":"pir","isChecked":0,"isEncrypt":0,"deleted":0,"tenantId":"20"},{ "createTime":"1625797973320","modifyTime":"1625797973320","region":"100000000000000001","id":"1413325253141004289","alarmId":"20210709103236-F41014762-1-10000","channelNo":1,"deviceSerial":"F41014762","alarmName":"人体感应事件","alarmPicUrl":"https://i.ys7.com/streamer/alarm/url/get?fileId=20210709103236-F41014762-1-10000-2-1&deviceSerialNo=F41014762&cn=1&isEncrypted=0&isCloudStored=0&ct=1&lc=7&bn=1_hikalarm&isDevVideo=0","alarmTime":"2021-07-09T10:32:31","homeId":"1396717478877241345","alarmType":"pir","isChecked":0,"isEncrypt":0,"deleted":0,"tenantId":"20"},{ "createTime":"1625797782136","modifyTime":"1625797782136","region":"100000000000000001","id":"1413324451261382658","alarmId":"20210709102937-F41014762-1-10000","channelNo":1,"deviceSerial":"F41014762","alarmName":"人体感应事件","alarmPicUrl":"https://i.ys7.com/streamer/alarm/url/get?fileId=20210709102937-F41014762-1-10000-2-1&deviceSerialNo=F41014762&cn=1&isEncrypted=0&isCloudStored=0&ct=1&lc=7&bn=1_hikalarm&isDevVideo=0","alarmTime":"2021-07-09T10:29:37","homeId":"1396717478877241345","alarmType":"pir","isChecked":0,"isEncrypt":0,"deleted":0,"tenantId":"20"},{ "createTime":"1625797668771","modifyTime":"1625797668771","region":"100000000000000001","id":"1413323975769915394","alarmId":"20210709102743-F41014762-1-10000","channelNo":1,"deviceSerial":"F41014762","alarmName":"人体感应事件","alarmPicUrl":"https://i.ys7.com/streamer/alarm/url/get?fileId=20210709102743-F41014762-1-10000-2-1&deviceSerialNo=F41014762&cn=1&isEncrypted=0&isCloudStored=0&ct=1&lc=7&bn=1_hikalarm&isDevVideo=0","alarmTime":"2021-07-09T10:27:42","homeId":"1396717478877241345","alarmType":"pir","isChecked":0,"isEncrypt":0,"deleted":0,"tenantId":"20"},{ "createTime":"1625797539846","modifyTime":"1625797539846","region":"100000000000000001","id":"1413323435023466498","alarmId":"20210709102534-F41014762-1-10000","channelNo":1,"deviceSerial":"F41014762","alarmName":"人体感应事件","alarmPicUrl":"https://i.ys7.com/streamer/alarm/url/get?fileId=20210709102534-F41014762-1-10000-2-1&deviceSerialNo=F41014762&cn=1&isEncrypted=0&isCloudStored=0&ct=1&lc=7&bn=1_hikalarm&isDevVideo=0","alarmTime":"2021-07-09T10:25:34","homeId":"1396717478877241345","alarmType":"pir","isChecked":0,"isEncrypt":0,"deleted":0,"tenantId":"20"},{ "createTime":"1625797530627","modifyTime":"1625797530627","region":"100000000000000001","id":"1413323396351983618","alarmId":"20210709102525-F41014762-1-10000","channelNo":1,"deviceSerial":"F41014762","alarmName":"人体感应事件","alarmPicUrl":"https://i.ys7.com/streamer/alarm/url/get?fileId=20210709102525-F41014762-1-10000-2-1&deviceSerialNo=F41014762&cn=1&isEncrypted=0&isCloudStored=0&ct=1&lc=7&bn=1_hikalarm&isDevVideo=0","alarmTime":"2021-07-09T10:25:25","homeId":"1396717478877241345","alarmType":"pir","isChecked":0,"isEncrypt":0,"deleted":0,"tenantId":"20"},{ "createTime":"1625796028089","modifyTime":"1625796028089","region":"100000000000000001","id":"1413317094255034369","alarmId":"20210709100024-F41014762-1-10000","channelNo":1,"deviceSerial":"F41014762","alarmName":"人体感应事件","alarmPicUrl":"https://i.ys7.com/streamer/alarm/url/get?fileId=20210709100024-F41014762-1-10000-2-1&deviceSerialNo=F41014762&cn=1&isEncrypted=0&isCloudStored=0&ct=1&lc=7&bn=1_hikalarm&isDevVideo=0","alarmTime":"2021-07-09T10:00:23","homeId":"1396717478877241345","alarmType":"pir","isChecked":0,"isEncrypt":0,"deleted":0,"tenantId":"20"},{ "createTime":"1625795974558","modifyTime":"1625795974558","region":"100000000000000001","id":"1413316869729746946","alarmId":"20210709095931-F41014762-1-10000","channelNo":1,"deviceSerial":"F41014762","alarmName":"人体感应事件","alarmPicUrl":"https://i.ys7.com/streamer/alarm/url/get?fileId=20210709095931-F41014762-1-10000-2-1&deviceSerialNo=F41014762&cn=1&isEncrypted=0&isCloudStored=0&ct=1&lc=7&bn=1_hikalarm&isDevVideo=0","alarmTime":"2021-07-09T09:59:31","homeId":"1396717478877241345","alarmType":"pir","isChecked":0,"isEncrypt":0,"deleted":0,"tenantId":"20"},{ "createTime":"1625795966933","modifyTime":"1625795966933","region":"100000000000000001","id":"1413316837748178946","alarmId":"20210709095923-F41014762-1-10000","channelNo":1,"deviceSerial":"F41014762","alarmName":"人体感应事件","alarmPicUrl":"https://i.ys7.com/streamer/alarm/url/get?fileId=20210709095923-F41014762-1-10000-2-1&deviceSerialNo=F41014762&cn=1&isEncrypted=0&isCloudStored=0&ct=1&lc=7&bn=1_hikalarm&isDevVideo=0","alarmTime":"2021-07-09T09:59:22","homeId":"1396717478877241345","alarmType":"pir","isChecked":0,"isEncrypt":0,"deleted":0,"tenantId":"20"}],"totalCount":"13","totalPage":"2","pageNo":"1","pageSize":"10"},"timestamp":"1625807415164","isSuccess":true} |
| | | //{"platform":"1","timestamp":"1625805660249","appKey":"HDL-HOME-APP-TEST","sign":"02e433c40485b30451ebdc5ca3cd959c","deviceSerial":"F41014762","homeId":"1396717478877241345"} |
| | | /// <summary> |
| | | /// 解析丰林可视对讲推送数据 |
| | | /// </summary> |
| | | /// <param name="jsonStr"></param> |
| | | /// <returns></returns> |
| | | ESVideoInfo GetESOnVideoJson(string jsonStr) |
| | | /// <summary> |
| | | /// 解析丰林可视对讲推送数据 |
| | | /// </summary> |
| | | /// <param name="jsonStr"></param> |
| | | /// <returns></returns> |
| | | ESVideoInfo GetESOnVideoJson(string jsonStr) |
| | | { |
| | | try |
| | | { |
| | |
| | | //5.全视通登出 |
| | | Shared.IOS.HDLFVSDK.Video.Logout(); |
| | | //6.清空Siri共享数据信息 |
| | | new Other.SkipControl().SetData(false, "", "", "",""); |
| | | 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 |
| | |
| | | |
| | | |
| | | //防止多次弹窗处理 |
| | | if (alarmPushConfirmDialog == null) |
| | | if (alarmPushConfirmDialog == null) |
| | | { |
| | | alarmPushConfirmDialog = new ConfirmDialog(isAlarm); |
| | | alarmPushConfirmDialog.ShowDialog(Language.StringByID(StringId.Tip), jpushMessageInfo.Content, goAction, cancelAction, StringId.Cancel, StringId.LookOver); |
| | |
| | | |
| | | } |
| | | |
| | | #endregion |
| | | #endregion |
| | | |
| | | #region ■ 常用方法_______________________ |
| | | #region ■ 常用方法_______________________ |
| | | /// <summary> |
| | | /// 设置下划线按钮状态 |
| | | /// 统一封装设置方法 |
| | |
| | | Control.Ins.SearchLoaclGateway(); |
| | | } |
| | | } |
| | | #endregion |
| | | #endregion |
| | | |
| | | #region 跳转打开萤石云方法 |
| | | #region 跳转打开萤石云方法 |
| | | |
| | | /// <summary> |
| | | /// 获取子账号token并跳转设备列表页面 |
| | |
| | | { |
| | | try |
| | | { |
| | | var list = UI.UI2.FuntionControlView.VideoDoorLock.CommonMethod.Current.GetVideoDoorLockLockModelsList(); |
| | | //先获取萤石云子账号token |
| | | var result = new HttpServerRequest().EZGetChildToken(); |
| | | if (result.Code == StateCode.SUCCESS) |
| | |
| | | { |
| | | if (!string.IsNullOrEmpty(ezChildAccessToken)) |
| | | { |
| | | |
| | | #if __IOS__ |
| | | |
| | | //iOS |
| | | //初始化萤石云SDK,中文国内key、英文海外key 开发者账号使用应用包名申请的APPKEY,不同包名应用需配置不同的APPKEY |
| | | EZSDK.IOS.EZSDK.SharedInstance().InitLibWithAppKey("1aa98a90489b4838b966b57018b4b04b", "1aa98a90489b4838b966b57018b4b04b"); |
| | |
| | | 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(); |
| | | |
| | | //////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、域名地址 |
| | |
| | | { |
| | | ((BaseActivity)Shared.Application.Activity).SetPermission(result => |
| | | { |
| | | if(result) |
| | | { |
| | | Android.Content.Intent intent = new Android.Content.Intent(); |
| | | var bundle = new Android.OS.Bundle(); |
| | | //传递name参数为tinyphp |
| | | bundle.PutString("EzChildAccessToken", ezChildAccessToken); |
| | | bundle.PutString("HdlToken", UserInfo.Current.LoginTokenString); |
| | | bundle.PutString("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); |
| | | } |
| | | //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); |
| | | 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"); |
| | | |
| | | } |
| | |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | |
| | | #endregion |
| | | #endregion |
| | | } |
| | | } |
| | |
| | | /// 固定域名,正式环境 |
| | | /// 公共域名就近解析 |
| | | /// </summary> |
| | | public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com"; |
| | | //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm |
| | | //public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com"; |
| | | public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm |
| | | /// <summary> |
| | | /// RegionMark |
| | | /// </summary> |
| | |
| | | /// 远程开锁(萤石视频门锁) |
| | | /// </summary> |
| | | public const string Api_Post_OpenDoor = "/home-wisdom/platform/yingshi/lock/remote/open/door"; |
| | | /// <summary> |
| | | /// 门锁型号列表(萤石视频门锁) |
| | | /// </summary> |
| | | public const string Api_Post_Lock_Models = "/home-wisdom/platform/yingshi/lock/models"; |
| | | |
| | | |
| | | |
| | | |
| | |
| | | |
| | | this.InitializationAndroidData((isBools) => |
| | | { |
| | | if (!isBools) |
| | | |
| | | this.MainThread(() => |
| | | { |
| | | this.MainThread(() => |
| | | if (!isBools) |
| | | { |
| | | this.ShowTip("先获取萤石云子账号token失败。"); |
| | | |
| | | }); |
| | | } |
| | | } |
| | | #if __IOS__ |
| | | |
| | | #else |
| | |
| | | |
| | | })); |
| | | #endif |
| | | |
| | | }); |
| | | |
| | | |
| | | }); |
| | | |
| | | |
| | |
| | | } |
| | | #if __IOS__ |
| | | #else |
| | | HDLEzvizSdk.Instance.JumpTempPasswordActivity(Application.Activity, deviceId); |
| | | HDLEzvizSdk.Instance.JumpTempPasswordActivity(Application.Activity, deviceId); |
| | | #endif |
| | | |
| | | }); |
| | |
| | | #endregion |
| | | |
| | | /// <summary> |
| | | /// 萤石视频门锁的图标 |
| | | /// <param name="comerom">来自那里</param> |
| | | /// 获取门锁型号列表 |
| | | /// </summary> |
| | | public string GetVideoDoorLockIcon(Comerom comerom) |
| | | /// <returns>返回结果不会为null</returns> |
| | | public List<string> GetVideoDoorLockLockModelsList() |
| | | { |
| | | if (comerom == Comerom.collect) |
| | | { |
| | | return "FunctionIcon/DoorLock/VideoDoorLockOpen.png"; |
| | | } |
| | | else |
| | | { |
| | | return "FunctionIcon/DoorLock/VideoDoorlockClose.png"; |
| | | } |
| | | |
| | | return VideDoorLockSend.Current.GetVideoDoorLockLockModelsList(); |
| | | } |
| | | |
| | | |
| | | #region --------- 功能文件保存,删除 -------- |
| | | /// <summary> |
| | | /// 保存本地文件 |
| | |
| | | } |
| | | #endregion |
| | | /// <summary> |
| | | /// 萤石视频门锁的图标 |
| | | /// <param name="comerom">来自那里</param> |
| | | /// </summary> |
| | | public string GetVideoDoorLockIcon(Comerom comerom) |
| | | { |
| | | if (comerom == Comerom.collect) |
| | | { |
| | | return "FunctionIcon/DoorLock/VideoDoorLockOpen.png"; |
| | | } |
| | | else |
| | | { |
| | | return "FunctionIcon/DoorLock/VideoDoorlockClose.png"; |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取Loading对象 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using HDL_ON.Entity; |
| | | |
| | | namespace HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock |
| | | { |
| | | public class ObjectClass |
| | |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 获取门锁列表 |
| | | /// </summary> |
| | | public class DoorLockList |
| | | { |
| | | /// <summary> |
| | | /// 门锁设备列表 |
| | | /// </summary> |
| | | public List<Function> list = new List<Function>(); |
| | | } |
| | | /// <summary> |
| | | /// 门锁型号列表 |
| | | /// </summary> |
| | | public class LockModels { |
| | | /// <summary> |
| | | /// 型号列表 |
| | | /// </summary> |
| | | public List<string> lockModels = new List<string>(); |
| | | } |
| | | /// <summary> |
| | | /// 推送内容对象 |
| | | /// </summary> |
| | | public class ExpantContent |
| | |
| | | Dictionary<string, object> d = new Dictionary<string, object>(); |
| | | d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); |
| | | d.Add("spk", spk); |
| | | var responsePackNew = UI.Music.SendMethod.Current.RequestServerhomeId(d, NewAPI.Api_Post_UserList, "获取萤石门锁设备列表"); |
| | | var responsePackNew = UI.Music.SendMethod.Current.RequestServerhomeId(d, NewAPI.Api_Post_GetDevcieList, "获取萤石门锁设备列表"); |
| | | if (!this.DataChecking(responsePackNew, tipType)) |
| | | { |
| | | return new List<Function>(); |
| | | } |
| | | var list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Function>>(responsePackNew.Data.ToString()); |
| | | if (list == null) |
| | | var doorLockList = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLockList>(responsePackNew.Data.ToString()); |
| | | if (doorLockList == null) |
| | | { |
| | | return new List<Function>(); |
| | | return new DoorLockList().list; |
| | | } |
| | | return list; |
| | | return doorLockList.list; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取门锁型号列表(萤石视频门锁) |
| | | /// </summary> |
| | | /// <param name="tipType">是否需要提示,默认提示</param> |
| | | /// <returns>返回结果不会为null</returns> |
| | | public List<string> GetVideoDoorLockLockModelsList(TipType tipType = TipType.flicker) |
| | | { |
| | | var responsePackNew = UI.Music.SendMethod.Current.RequestServerhomeId(new object { }, NewAPI.Api_Post_Lock_Models, "获取萤石门锁型号列表"); |
| | | if (!this.DataChecking(responsePackNew, tipType)) |
| | | { |
| | | return new List<string>(); |
| | | } |
| | | var lockModels = Newtonsoft.Json.JsonConvert.DeserializeObject<LockModels>(responsePackNew.Data.ToString()); |
| | | if (lockModels == null) |
| | | { |
| | | return new LockModels().lockModels; |
| | | } |
| | | return lockModels.lockModels; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 先获取萤石云子账号token |
| | | /// </summary> |