HarmonyOS 鸿蒙Next使用数据迁移工具后备份目录为空问题 /data/storage/el2/base/.backup迁移成功但无数据

发布于 1周前 作者 zlyuanteng 来自 鸿蒙OS

HarmonyOS 鸿蒙Next使用数据迁移工具后备份目录为空问题 /data/storage/el2/base/.backup迁移成功但无数据

使用数据迁移工具显示迁移成功,但是查看被迁移应用的备份目录为空/data/storage/el2/base/.backup

2 回复

以下文档搜索“备份恢复目录获取方式”:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/backupextensionability-implementation-V5

应用接入数据备份恢复: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/app-file-backup-extension-V5

EntryBackupExtAbility.ets 实现可参考

import BackupExtensionAbility, { BundleVersion } from '@ohos.application.BackupExtensionAbility';
import { contextConstant } from '@kit.AbilityKit';
import { fileIo } from '@kit.CoreFileKit';

const TAG = BackupExtensionAbility;

export default class BackupExtension extends BackupExtensionAbility { onBackup() { console.log(TAG, onBackup ok); }

// onRestore 接口是同步接口,其内部所有的异步操作请进行同步等待。 async onRestore(bundleVersion: BundleVersion): Promise<void> { console.log(TAG, onRestore ok ${<span class="hljs-built_in"><span class="hljs-built_in">JSON</span></span>.stringify(bundleVersion)}); if (bundleVersion.name.startsWith(“0.0.0.0”)) { // 在此处实现终端设备从HarmonyOS 4.0升级到HarmonyOS NEXT后,应用数据的转换和迁移 // 涉及异步操作请进行同步等待

  <span class="hljs-keyword"><span class="hljs-keyword">this</span></span>.context.area = contextConstant.AreaMode.EL2;
  <span class="hljs-keyword"><span class="hljs-keyword">let</span></span> ceSourcePath = <span class="hljs-keyword"><span class="hljs-keyword">this</span></span>.context.backupDir + <span class="hljs-string"><span class="hljs-string">"restore/{APK包名}/ce/"</span></span>
  <span class="hljs-keyword"><span class="hljs-keyword">let</span></span> destEl2Path = <span class="hljs-keyword"><span class="hljs-keyword">this</span></span>.context.filesDir;
  <span class="hljs-keyword"><span class="hljs-keyword">try</span></span> {
    fileIo.copyDirSync(ceSourcePath, destEl2Path, <span class="hljs-number"><span class="hljs-number">1</span></span>)
    console.log(TAG, `copyEl2Dirsuccess`);
  } <span class="hljs-keyword"><span class="hljs-keyword">catch</span></span> (error) {
    console.log(TAG, `copyEl2Dirfail`);
  }

  console.log(TAG, `HarmonyOS to HarmonyOS NEXT scenario`);
} <span class="hljs-keyword"><span class="hljs-keyword">else</span></span> {
  <span class="hljs-comment"><span class="hljs-comment">// 在此处实现从HarmonyOS NEXT设备迁移到HarmonyOS NEXT设备后,应用数据的处理。无特殊要求,可以空实现</span></span>
  <span class="hljs-comment"><span class="hljs-comment">// 涉及异步操作请进行同步等待</span></span>

  console.log(TAG, `Other scenario`);
}

} } <button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

针对您提出的HarmonyOS鸿蒙Next使用数据迁移工具后备份目录为空的问题,这通常可能是由以下几个原因导致的:

  1. 权限设置不当:迁移调试工具需要读取已安装应用列表及访问相应存储空间的权限。如果首次使用时拒绝了这些权限,可能会导致备份目录为空。请检查并重新授予相应权限。
  2. 网络问题:数据迁移过程中需要稳定的网络连接。如果迁移过程中网络中断,可能会导致迁移失败或数据为空。请确保网络连接稳定后再进行迁移。
  3. 迁移工具版本:请确保您使用的迁移调试工具是最新版本,且支持当前正在进行迁移的应用签名类型(debug或release)。
  4. 应用适配问题:应用可能未正确适配鸿蒙系统的数据迁移框架。请检查应用的BackupExtensionAbility代码实现,确保其能在规定时间内完成数据迁移。

如果上述方法均无法解决问题,请直接联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部