首页 > 其他分享 >【鸿蒙学习】HarmonyOS应用开发者高级认证 - 自由流转

【鸿蒙学习】HarmonyOS应用开发者高级认证 - 自由流转

时间:2024-08-21 22:22:55浏览次数:14  
标签:鸿蒙 流转 HarmonyOS 开发者 应用 迁移 分布式 数据 设备

在这里插入图片描述
学完时间:2024年8月21日
学完排名:第2253名

一、基本概念

1. 流转

在HarmonyOS中,将跨多设备的分布式操作统称为流转。流转能力打破设备界限,多设备联动,使用户应用程序可分可合、可流转,实现如邮件跨设备编辑、多设备协同健身、多屏游戏等分布式业务。流转为开发者提供更广的使用场景和更新的产品视角,强化产品优势,实现体验升级。流转按照使用场景可分为跨端迁移多端协同

2. 跨端迁移

在用户使用设备的过程中,当使用情境发生变化时(例如从室内走到户外或者周围有更合适的设备等),之前使用的设备可能已经不适合继续当前的任务,此时,用户可以选择新的设备来继续当前的任务,原设备可按需决定是否退出任务,这就是跨端迁移场景。

常见的跨端迁移场景实例
在平板上播放的视频,迁移到智慧屏继续播放,从而获得更佳的观看体验;平板上的视频应用退出。

在应用开发层面,跨端迁移指在A端运行的UIAbility迁移到B端上,完成迁移后,B端UIAbility继续任务,而A端UIAbility可按需决定是否退出。

3. 多端协同

用户拥有的多个设备,可以作为一个整体,为用户提供比单设备更加高效、沉浸的体验,这就是多端协同场景。

常见的多端协同场景实例:

  • 场景一:两台设备A和B打开备忘录同一篇笔记进行双端协同编辑,在设备A上可以使用本地图库中的图片资源插入编辑,设备B上进行文字内容编辑。

  • 场景二:设备A上正在和客户进行聊天,客户需要的资料在设备B上,可以通过聊天软件打开设备B上的文档应用选择到想要的资料回传到设备A上,然后通过聊天软件发送给客户。

在应用开发层面,多端协同指多端上的不同UIAbility/ServiceExtensionAbility同时运行、或者交替运行实现完整的业务;或者多端上的相同UIAbility/ServiceExtensionAbility同时运行实现完整的业务。

4. 典型场景

  • 媒体播控:
    使用媒体播控,可以简单高效地将音频投放到其他HarmonyOS设备上播放,如在手机上播放的音频,可以投到2in1设备上继续播放。
  • 应用接续:
    指当用户在一个设备上操作某个应用时,可以在另一个设备的同一个应用中快速切换,并无缝衔接上一个设备的应用体验。
  • 跨设备拖拽:
    跨端拖拽提供跨设备的键鼠共享能力,支持在平板或2in1类型的任意两台设备之间拖拽文件、文本。
  • 跨设备剪贴板:
    当用户拥有多台设备时,可以通过跨设备剪贴板的功能,在A设备的应用上复制一段文本,粘贴到B设备的应用中,高效地完成多设备间的内容共享。

二、开发实现

1. 权限申请

说明
如果仅使用want迁移数据,无需申请权限。
如果需要使用分布式文件或分布式对象迁移数据,需要申请权限。

  • a. 数据迁移需要申请ohos.permission.DISTRIBUTED_DATASYNC权限,详见声明权限
  • b. 由于数据迁移使用权限需要用户授权,所以在应用首次启动时弹窗向用户申请授权,详见向用户申请授权

说明
如果未申请ohos.permission.DISTRIBUTED_DATASYNC权限,虽然会在组网内设备上出现接续应用图标,但是由于数据无法传输,会导致接续失败。
如果未将continuable配置为“true”,则在用户应用程序在组网内设备的docker栏上不会出现图标,无法触发应用迁移。

2. 分布式

  • 分布式数据对象:
    提供管理基本数据对象的相关能力,同时支持相同应用多设备间的分布式数据对象协同能力。
  • 分布式文件系统:
    分布式文件系统为应用提供了跨设备文件访问的能力。

3. 约束与限制

需同时满足以下条件,才能使用该功能:

  • 设备限制
    • HarmonyOS版本为HarmonyOS NEXT Developer Beta1及以上的设备。
  • 使用限制
    • 双端设备需要登录同一华为账号。
    • 双端设备需要打开Wi-Fi和蓝牙开关。条件允许时,建议双端设备接入同一个局域网,可提升数据传输的速度。
    • 应用接续只能在同应用(UIAbility)之间触发,双端设备都需要有该应用。
    • 为了接续体验,在onContinue回调中使用wantParam传输的数据需要控制在100KB以下,大数据量请使用分布式数据对象和分布式文件系统进行同步。

4. 存储数据

在EntryAbility.ets中onContinue()接口实现数据传递,将数据传输到对端设备。

5. 恢复数据

如果采用wantParam传输数据,需要使用onCreate()和onNewWant()接口加载数据。如果采用分布式数据对象传输数据,则需要使用分布式数据对象恢复数据。

三、闯关习题

判断题

  1. 应用流转时只需要申请权限ohos.permission.DISTRIBUTED_DATASYNC就好了,不需要再在用户运行时动态申请。
    答案:错误
  2. 应用接续开发过程中,在onContinue中恢复待接续的业务数据,在同一UIAbility通过onCreate/onNewWant保存数据。
    答案:错误

单选题

  1. 使用支持默认流转的组件时配置的流转标识是?
    答案: restoreId
  2. 跨端迁移应用开发过程中配置应用支持迁移的字段为?
    答案:continuable

多选题

1.以下哪些是自由流转体验
答案:全选
A. 应用接续
B. 服务互通
C. 媒体播控
D. 跨设备拖拽
E. 跨设备剪切板

希望大家多多关注+点赞+收藏

标签:鸿蒙,流转,HarmonyOS,开发者,应用,迁移,分布式,数据,设备
From: https://blog.csdn.net/qq_15062089/article/details/141404040

相关文章

  • IM开发者的零基础通信技术入门(十三):为什么手机信号差?一文即懂!
    【来源申明】本文引用了微信公众号“网优雇佣军”的《是谁偷走了我家的手机信号?》文章内容。为了更好的内容呈现,下文在引用和收录时内容有改动,转载时请注明原文来源信息,尊重原作者的劳动。1、系列文章引言1.1适合谁来阅读?本系列文章尽量使用最浅显易懂的文字、图片来组织内容......
  • JetBrains PyCharm 2024.2 (macOS, Linux, Windows) - 面向专业开发者的 Python IDE
    JetBrainsPyCharm2024.2(macOS,Linux,Windows)-面向专业开发者的PythonIDEJetBrains跨平台开发者工具请访问原文链接:https://sysin.org/blog/jetbrains-pycharm/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsPyCharm-面向专业开发者的Pytho......
  • 理解HarmonyOS中的Flex布局
    在开发HarmonyOS应用时,布局是一个至关重要的方面。布局不仅决定了应用的外观,也影响了用户的体验和交互方式。在HarmonyOS中,Flex布局是一种强大且灵活的布局方式,适用于创建复杂的界面结构。本文将带您深入了解Flex布局的核心概念以及如何在实际开发中有效利用它。什......
  • 讯飞星火极速超拟人交互技术:语音端到端,8 月底开放;昆仑万维发布 AI 短剧平台 SkyReels
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观......
  • 鸿蒙Next-支付宝SDK接入教程
    App适配鸿蒙Next,开始做支付功能了,目前来说只有支付宝支持鸿蒙Next,微信还没上架,但是支付宝官方的文档跟Demo都很老,下载官方的Demo用最新版的DevEco-Studio导入都不成功。后面在OpenHarmony三方库中心仓找到了最新的代码:https://ohpm.openharmony.cn/#/cn/detail/@cashier_alipay......
  • ArkUI ARKTS 鸿蒙开发 装饰器
    @State 定义一个变量,可用于本页面的双向绑定 @Prop 定义一个接收参数的变量,随着父组件变化而变化,子组件更改的值会被父组件覆盖(不会更改父组件的值) @Link 定义一个变量,不允许定义值,需要通过父组件传入,可以做到父子组件双向绑定 @Provide装饰器和@Consume装饰器 ......
  • ArkUI ARKTS 鸿蒙开发 @BuilderParam
     @BuilderParam 可以理解成一个html页面的占位符,也可以理解成后端的委托,委托是根据委托的要求传入什么它就执行什么,这个是根据它的要求传入什么就渲染什么1.子页面定义变量      @ComponentexportstructProductItem{@PropProduct:ProductDto;@BuilderP......
  • 鸿蒙-JS-第三周day02
    一、带var和不带var的区别带var的时候就是声明变量,不带var的时候,没有变量提升,在全局作用域下,带var还是不带var都是给GO添加了一个属性(也相当于给window),属性名就是此变量,属性值就是变量值console.log(a);//undefinedvara=3;b=6;console.log(window.a);console.l......
  • 解锁黑科技!百度AppBuilder助你秒变开发者,轻松实现文心一言
    在数字化浪潮席卷全球的今天,人工智能(AI)和大模型技术正以前所未有的速度改变着我们的世界。从自然语言处理到图像识别,从智能推荐到自动化决策,大模型以其强大的数据处理能力和学习能力,正成为推动科技创新的核心动力。然而,对于许多开发者而言,如何高效、便捷地将大模型的能力集......
  • 《安富莱嵌入式周报》第341期:Stack Overflow调查报告分享开发者年薪情况,开源USB高速分
    周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104视频版:https://www.bilibili.com/video/BV1Gw4m1k7jw目录:1、开源多功能USB2.0高速分析仪2、开源100W微型无刷伺服电机控制器3、MicroChip新款DSC系单片机集成40Msps12bitAD......