From bfc74a17f28938052717ff400dfa6ef428ff8755 Mon Sep 17 00:00:00 2001 From: zhangmingxiang Date: Thu, 4 Aug 2022 19:56:11 +0800 Subject: [PATCH] add continuation manager dev guide Signed-off-by: zhangmingxiang Change-Id: Idf6972aa5344800eaaa3bb0d946e0743cd92fa23 Signed-off-by: zhangmingxiang --- zh-cn/application-dev/ability/Readme-CN.md | 1 + .../ability/continuationmanager.md | 251 ++++++++++++++++++ .../ability/figures/continuationManager.png | Bin 0 -> 64112 bytes zh-cn/application-dev/website.md | 1 + 4 files changed, 253 insertions(+) create mode 100644 zh-cn/application-dev/ability/continuationmanager.md create mode 100644 zh-cn/application-dev/ability/figures/continuationManager.png diff --git a/zh-cn/application-dev/ability/Readme-CN.md b/zh-cn/application-dev/ability/Readme-CN.md index ab8272f5b4..ce8adbcc48 100644 --- a/zh-cn/application-dev/ability/Readme-CN.md +++ b/zh-cn/application-dev/ability/Readme-CN.md @@ -17,4 +17,5 @@ - 其他 - [WantAgent开发指导](wantagent.md) - [Ability助手使用指导](ability-assistant-guidelines.md) + - [ContinuationManager开发指导](continuationmanager.md) - [测试框架使用指导](ability-delegator.md) diff --git a/zh-cn/application-dev/ability/continuationmanager.md b/zh-cn/application-dev/ability/continuationmanager.md new file mode 100644 index 0000000000..10396fd4bc --- /dev/null +++ b/zh-cn/application-dev/ability/continuationmanager.md @@ -0,0 +1,251 @@ +# ContinuationManager开发指导 + +> 说明:本模块接口用于拉起系统中的设备选择模块,由于该模块功能暂不完备,因此**流转能力整体暂不支持用于应用开发**。 + +## 场景简介 +随着全场景多设备生活方式的不断深入,用户拥有的设备越来越多,每个设备都能在适合的场景下提供良好的体验,但是,每个设备也有使用场景的局限。流转能力致力于打破设备界限,多设备联动,使用户应用程序可分可合、可流转,实现体验升级。 + +continuationManager作为流转能力的入口,主要用于拉起系统中的设备选择模块供用户选择,待选择设备后,会给用户返回已选择的远端设备信息,用户可以根据远端设备信息发起跨端迁移或多端协同操作。 + +![continuationManager](figures/continuationManager.png) + +## 接口说明 +| 接口名 | 接口描述 | +| ---------------------------------------------------------------------------------------------- | ----------- | +| register(callback: AsyncCallback\): void | 注册流转管理服务,并获取对应的注册token,无过滤条件(AsyncCallback)。 | +| register(options: ContinuationExtraParams, callback: AsyncCallback\): void | 注册流转管理服务,并获取对应的注册token(AsyncCallback)。 | +| register(options?: ContinuationExtraParams): Promise\ | 连接流转管理服务,并获取对应的注册token(Promise)。 | +| on(type: "deviceConnect", token: number, callback: Callback\>): void | 监听设备连接状态(Callback)。 | +| on(type: "deviceDisconnect", token: number, callback: Callback\>): void | 监听设备断开状态(Callback)。 | +| off(type: "deviceConnect", token: number): void | 取消监听设备连接状态。 | +| off(type: "deviceDisconnect", token: number): void | 取消监听设备断开状态。 | +| startDeviceManager(token: number, callback: AsyncCallback\): void | 拉起设备选择模块,可显示组网内可选择设备列表信息,无过滤条件(AsyncCallback)。 | +| startDeviceManager(token: number, options: ContinuationExtraParams, callback: AsyncCallback\): void | 拉起设备选择模块,可显示组网内可选择设备列表信息(AsyncCallback)。 | +| startDeviceManager(token: number, options?: ContinuationExtraParams): Promise\ | 拉起设备选择模块,可显示组网内可选择设备列表信息(Promise)。 | +| updateConnectStatus(token: number, deviceId: string, status: DeviceConnectState, callback: AsyncCallback\): void | 通知设备选择模块,更新当前的流转状态(AsyncCallback)。 | +| updateConnectStatus(token: number, deviceId: string, status: DeviceConnectState): Promise\ | 通知设备选择模块,更新当前的流转状态(Promise)。 | +| unregister(token: number, callback: AsyncCallback\): void | 取消注册流转管理服务,传入注册时获取的token进行取消注册(AsyncCallback)。 | +| unregister(token: number): Promise\ | 取消注册流转管理服务,传入注册时获取的token进行取消注册(Promise)。 | + +## 开发步骤 +1. 导入continuationManager模块。 + + ```ts + import continuationManager from '@ohos.continuation.continuationManager'; + ``` + +2. 跨端迁移或多端协同操作需要申请权限。 + + 权限申请在FA平台和Stage平台有区别,FA平台需要在`config.json`里面进行配置请求权限,示例代码如下: + + ```json + { + "module": { + "reqPermissions": [ + { + "name": "ohos.permission.DISTRIBUTED_DATASYNC" + } + ] + } + } + ``` + + 这个权限还需要在应用首次启动的时候弹窗获取用户授权,可以通过如下代码实现: + + ```ts + import abilityAccessCtrl from "@ohos.abilityAccessCtrl"; + import bundle from '@ohos.bundle'; + + async function requestPermission() { + let permissions: Array = [ + "ohos.permission.DISTRIBUTED_DATASYNC" + ]; + let needGrantPermission: boolean = false; + let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager(); + let applicationInfo = await bundle.getApplicationInfo('ohos.samples.etsDemo', 0, 100); + for (let i = 0; i < permissions.length; i++) { + let result = await atManager.verifyAccessToken(applicationInfo.accessTokenId, permissions[i]); + //判断是否未申请该权限 + if (result == abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED) { + needGrantPermission = true; + break; + } + } + // 如果未申请该权限,则需要调用requestPermissionsFromUser接口申请权限 + if (needGrantPermission) { + await featureAbility.getContext().requestPermissionsFromUser(permissions, 1); + } else { + console.info('app permission already granted'); + } + } + ``` + + Stage平台需要在`module.json5`里面进行配置请求权限,示例代码如下: + + ```json + { + "module": { + "requestPermissions": [ + { + "name": "ohos.permission.DISTRIBUTED_DATASYNC" + } + ] + } + } + ``` + + ```ts + import abilityAccessCtrl from "@ohos.abilityAccessCtrl"; + import bundle from '@ohos.bundle'; + + async function requestPermission() { + let permissions: Array = [ + "ohos.permission.DISTRIBUTED_DATASYNC" + ]; + let needGrantPermission: boolean = false; + let atManger: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager(); + let applicationInfo = await bundle.getApplicationInfo('ohos.samples.continuationmanager', 0, 100); + for (const permission of permissions) { + try { + let grantStatus = await atManger.verifyAccessToken(applicationInfo.accessTokenId, permission); + //判断是否未申请该权限 + if (grantStatus === abilityAccessCtrl.GrantStatus.PERMISSION_DENIED) { + needGrantPermission = true; + break; + } + } catch (err) { + console.error('app permission query grant status error' + JSON.stringify(err)); + needGrantPermission = true; + break; + } + } + // 如果未申请该权限,则需要调用requestPermissionsFromUser接口申请权限 + if (needGrantPermission) { + try { + await globalThis.abilityContext.requestPermissionsFromUser(permissions); + } catch (err) { + console.error('app permission request permissions error' + JSON.stringify(err)); + } + } else { + console.info('app permission already granted'); + } + } + ``` + +3. 注册流转管理服务,获取对应的注册token。 + + 注册流转管理服务的代码示例如下: + + ```ts + let token: number = -1; // 用于保存注册成功并返回的token,后续使用其完成监听设备连接/断开状态、拉起设备选择模块以及更新流转状态的动作 + + continuationManager.register().then((data) => { + console.info('register finished, ' + JSON.stringify(data)); + token = data; // 获取到对应的注册token,并赋值给token变量 + }).catch((err) => { + console.error('register failed, cause: ' + JSON.stringify(err)); + }); + ``` + +4. 监听设备状态。 + + 监听设备连接状态的代码示例如下: + + ```ts + let remoteDeviceId: string = ""; // 用于保存用户选择的远端设备信息,后续使用其完成跨端迁移或多端协同操作 + + // 参数token为注册token + continuationManager.on("deviceConnect", token, (continuationResults) => { + console.info('registerDeviceConnectCallback len: ' + continuationResults.length); + if (continuationResults.length <= 0) { + console.info('no selected device'); + return; + } + remoteDeviceId = continuationResults[0].id; // 将选择的第一个远端设备deviceId赋值给remoteDeviceId变量 + + // 将remoteDeviceId参数传给want + let want = { + deviceId: remoteDeviceId, + bundleName: 'ohos.samples.continuationmanager', + abilityName: 'MainAbility' + }; + // 发起多端协同操作,需申请ohos.permission.DISTRIBUTED_DATASYNC权限 + globalThis.abilityContext.startAbility(want).then((data) => { + console.info('StartRemoteAbility finished, ' + JSON.stringify(data)); + }).catch((err) => { + console.error('StartRemoteAbility failed, cause: ' + JSON.stringify(err)); + }); + }); + ``` + + 上述多端协同操作为Stage平台的跨设备拉起,FA平台详情见[PageAbility开发指导](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/ability/fa-pageability.md)。 + + 同时用户还可通知设备选择模块,更新当前的流转状态,代码示例如下: + + ```ts + // 设置设备流转状态 + let deviceConnectStatus: continuationManager.DeviceConnectState = continuationManager.DeviceConnectState.CONNECTED; + + // 参数token为注册token,参数remoteDeviceId为获取到的remoteDeviceId + continuationManager.updateConnectStatus(token, remoteDeviceId, deviceConnectStatus).then((data) => { + console.info('updateConnectStatus finished, ' + JSON.stringify(data)); + }).catch((err) => { + console.error('updateConnectStatus failed, cause: ' + JSON.stringify(err)); + }); + ``` + + 监听设备断开状态,方便用户终止跨端迁移或多端协同操作,代码示例如下: + + ```ts + // 参数token为注册token + continuationManager.on("deviceDisconnect", token, (deviceIds) => { + console.info('onDeviceDisconnect len: ' + deviceIds.length); + if (deviceIds.length <= 0) { + console.info('no unselected device'); + return; + } + + // 更新设备流转状态 + let unselectedDeviceId: string = deviceIds[0]; // 将取消选择的第一个远端设备deviceId赋值给unselectedDeviceId变量 + let deviceConnectStatus: continuationManager.DeviceConnectState = continuationManager.DeviceConnectState.DISCONNECTING; // 设备断开状态 + + // 参数token为注册token,参数unselectedDeviceId为获取到的unselectedDeviceId + continuationManager.updateConnectStatus(token, unselectedDeviceId, deviceConnectStatus).then((data) => { + console.info('updateConnectStatus finished, ' + JSON.stringify(data)); + }).catch((err) => { + console.error('updateConnectStatus failed, cause: ' + JSON.stringify(err)); + }); + }); + ``` + +5. 拉起设备选择模块,可显示组网内可选择设备列表信息,供用户选择。 + + 拉起设备选择模块的代码示例如下: + + ```ts + // 过滤参数 + let continuationExtraParams = { + deviceType: ["00E"], // 设备类型 + continuationMode: continuationManager.ContinuationMode.COLLABORATION_SINGLE // 设备选择模块单选模式 + }; + + // 参数token为注册token + continuationManager.startDeviceManager(token, continuationExtraParams).then((data) => { + console.info('startDeviceManager finished, ' + JSON.stringify(data)); + }).catch((err) => { + console.error('startDeviceManager failed, cause: ' + JSON.stringify(err)); + }); + ``` + +6. 当用户不打算再进行跨端迁移或多端协同操作时,可以传入注册时获取的token进行取消注册。 + + 取消注册流转管理服务的代码示例如下: + + ```ts + // 参数token为注册token + continuationManager.unregister(token).then((data) => { + console.info('unregister finished, ' + JSON.stringify(data)); + }).catch((err) => { + console.error('unregister failed, cause: ' + JSON.stringify(err)); + }); + ``` \ No newline at end of file diff --git a/zh-cn/application-dev/ability/figures/continuationManager.png b/zh-cn/application-dev/ability/figures/continuationManager.png new file mode 100644 index 0000000000000000000000000000000000000000..f3524ab170ee0733ba5cc78aacefb7f4c7781d62 GIT binary patch literal 64112 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 literal 0 HcmV?d00001 diff --git a/zh-cn/application-dev/website.md b/zh-cn/application-dev/website.md index 30d39ae55f..1a07c5a75d 100644 --- a/zh-cn/application-dev/website.md +++ b/zh-cn/application-dev/website.md @@ -33,6 +33,7 @@ - 其他 - [WantAgent开发指导](ability/wantagent.md) - [Ability助手使用指导](ability/ability-assistant-guidelines.md) + - [ContinuationManager使用指导](ability/continuationmanager.md) - [测试框架使用指导](ability/ability-delegator.md) - UI开发 - [方舟开发框架(ArkUI)概述](ui/arkui-overview.md) -- GitLab