/// <summary> /// 连接设备并初始化基础服务 /// </summary> /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns> private bool ConnectAndInitService() { bool result = false; kAMDError kAMDUndefinedError = kAMDError.kAMDUndefinedError; try { if (this.Connect() != (int)kAMDError.kAMDSuccess) { return(false); } //TODO:初始化设备信息 if (MobileDevice.AMDeviceValidatePairing(this.DevicePtr) != (int)kAMDError.kAMDSuccess) { kAMDUndefinedError = (kAMDError)MobileDevice.AMDevicePair(this.DevicePtr); if (kAMDUndefinedError != kAMDError.kAMDSuccess) { this.Disconnect(); return(false); } } this.isSessionOpen = false;//确保Session已打开 if (this.StartSession(false) == (int)kAMDError.kAMDSuccess) { //TODO:初始化服务,填充基础数据 this.isConnected = true; this.StopSession(); result = true; } } catch { } return(result); }
/// <summary> /// 开启Session。Session需要在调用服务前先行打开,然后完成服务操作后自行关闭(函数会自动关闭),否则可能会遇到无法打开服务的错误 /// </summary> /// <returns></returns> public kAMDError StartSession(bool isRretry = false) { var kAMDSuccess = kAMDError.kAMDSuccess; try { if (!this.isSessionOpen) { kAMDSuccess = (kAMDError)MobileDevice.AMDeviceStartSession(this.DevicePtr); if (kAMDSuccess != kAMDError.kAMDInvalidHostIDError) { if (kAMDSuccess != (int)kAMDError.kAMDSuccess) { //修复:Session关闭后一段时间无法再次打开的问题 if (!isRretry) { this.Disconnect(); this.Connect(); return(StartSession(true)); } return(kAMDSuccess); } this.isSessionOpen = true; return(kAMDSuccess); } if ((MobileDevice.AMDeviceUnpair(this.DevicePtr) == (int)kAMDError.kAMDSuccess) && (MobileDevice.AMDevicePair(this.DevicePtr) == (int)kAMDError.kAMDSuccess)) { kAMDSuccess = (kAMDError)MobileDevice.AMDeviceStartSession(this.DevicePtr); if (kAMDSuccess != kAMDError.kAMDSuccess) { return(kAMDSuccess); } this.isSessionOpen = true; return(kAMDSuccess); } } return(kAMDSuccess); } catch { kAMDSuccess = kAMDError.kAMDUndefinedError; } return(kAMDSuccess); }