/// <summary> /// 导入已备份在云端的消息记录 /// </summary> /// <param name="import_info">导入需要的参数参考NIMLogsBackupImportInfo定义</param> /// <returns>false 当前有导入/导出操作正在进行中</returns> public static bool ImportBackupFromRemote(NIMLogsBackupImportInfo import_info) { bool ret = false; if (import_info != null) { //这里需增长import_info的生命周期,否则import_info被gc回收掉,会导致回调出问题 import_info_remain = import_info; import_info_c.UnPackageCallback_ = ImportBackupFromRemoteUnPackageCallback; import_info_c.RemoteDecryptCallback_ = ImportBackupFromRemoteDecryptCallback; import_info_c.PathRelease_ = NewPathRelease; import_info_c.ProgressCallback_ = ImportLogsBackupProgressCallback; import_info_c.CompleteCallback_ = ImportLogsBackupCompleteCallback; int nSizeOfParam = Marshal.SizeOf(import_info); IntPtr param_ptr = Marshal.AllocHGlobal(nSizeOfParam); try { Marshal.StructureToPtr(import_info, param_ptr, false); import_info_c.user_data_ = param_ptr; } catch { } ret = MsglogNativeMethods.nim_import_backup_from_remote(ref import_info_c); } return(ret); }