HarmonyOS 鸿蒙Next 跨设备迁移怎么实现的?

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

HarmonyOS 鸿蒙Next 跨设备迁移怎么实现的? 初学鸿蒙。这个开发文档的跨设备迁移该如何操作?

代码根据文档写的。基本一样。但是迁移不成功。onSaveData回调走了。但是不走onRestoreData。实在搞不懂。

本人真机测试的。一台pad。一台手机。ability和slice都有接口

无法迁移。一台设备点击迁移按钮后。另一台设备没有任何反应

button1.setOnClickListener(component -> {
    HiLog.debug(LABEL_LOG, "开始", "e");
    List<DeviceInfo> deviceInfoList = DeviceManager.getDeviceList(DeviceInfo.FLAG_GET_ONLINE_DEVICE);
    String vid = deviceInfoList.get(0).getDeviceId();
    try {
        continueAbility(vid);
    } catch (IllegalStateException e) {
        HiLog.debug(LABEL_LOG, String.valueOf(e),e);
    }
});
@Override
public boolean onStartContinuation() {
    return true;
}

@Override
public boolean onSaveData(IntentParams intentParams) {
    HiLog.debug(LABEL_LOG, "保存","保存");
//        String VALUE = "我是迁移内容";
//        intentParams.setParam("to_value", VALUE);
    return true;
}

@Override
public boolean onRestoreData(IntentParams intentParams) {
    HiLog.debug(LABEL_LOG, "读取","读取");
   // button1.setText((String) intentParams.getParam("to_value"));
    return true;
}

@Override
public void onCompleteContinuation(int i) {
    terminateAbility();
    HiLog.debug(LABEL_LOG, String.valueOf(i),i);
}

@Override
public void onRemoteTerminated() {

}

更多关于HarmonyOS 鸿蒙Next 跨设备迁移怎么实现的?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

19 回复

更多关于HarmonyOS 鸿蒙Next 跨设备迁移怎么实现的?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


同签名这个问题我想到过。。但是我这个是自动获取测试签名。而且还是平板和手机。那肯定签名不一样…

好了我知道了。一起连电脑。一起安装就可以同签名了。我原来是一个一个安装的。要换签名。谢谢。你的帖子给我启发了

是的,一起安装同签名就好了。

看来这个问题坑了好多人。。。

楼主可以参考下分布式邮箱Codelab,里面迁移介绍的很详细,文章末尾还有完整代码:

https://developer.huawei.com/consumer/cn/codelabsPortal/carddetails/Distributed-Mail

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17

建议版主给开发反馈一下。这个同签名的问题。在开发文档里提前写清楚

你的迁移页面是通过startAbility跳转的还是通过present跳转的

通过present跳转的Slice无法迁移

你要迁移的页面是一打开应用就显示的还是需要跳转的

如果是要经过一次跳转的,不要用present跳转

继续Ability(vid); 这里代码不对吧,不是直接放远程设备ID就行的,要new Intent的,你可以参考一下Codelabs的实例。

开发文档 这章文档里面没说呀。他那个分布式邮件里面没有用intent。用intent的不是多端协同的用法么

权限申请了没

申请了,按照开发文档。和下面的两个例子写的

两台设备都要安装这个app,且登录同一华为账号,wifi蓝牙都要打开。

都开了。没用…连接同一wifi 同一账号。都有app

欢迎开发小伙伴们进来帮帮楼主

HarmonyOS 鸿蒙Next跨设备迁移主要通过分布式技术和系统级架构实现。

鸿蒙系统支持分布式软总线技术,这是实现跨设备迁移的关键。该技术能够打破传统设备的物理界限,使多个设备在逻辑上形成一个整体,实现设备间的无缝协同。通过分布式软总线,鸿蒙系统可以高效地传输数据和控制指令,确保跨设备迁移的流畅性和实时性。

在鸿蒙系统中,每个设备都是一个独立的节点,但它们可以通过分布式软总线进行连接和通信。当用户需要在不同设备间迁移应用或服务时,系统会根据设备的状态、能力、位置等因素,智能地选择最佳的迁移路径和方式。迁移过程中,系统会确保数据的完整性和一致性,同时尽可能减少对用户操作的干扰。

此外,鸿蒙系统还提供了丰富的API和工具,支持开发者构建跨设备的应用和服务。这些API和工具可以帮助开发者实现设备间的信息共享、控制同步等功能,从而为用户提供更加便捷和高效的使用体验。

总之,HarmonyOS 鸿蒙Next跨设备迁移的实现依赖于其分布式技术和系统级架构的优势。这些技术确保了设备间的无缝协同和高效迁移,为用户提供了更加智能和便捷的使用体验。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部