Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
936733bb
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
936733bb
编写于
7月 10, 2023
作者:
O
openharmony_ci
提交者:
Gitee
7月 10, 2023
浏览文件
操作
浏览文件
下载
差异文件
!20689 删除过时文档
Merge pull request !20689 from zengyawen/master
上级
c59ec3f1
c91722e7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
0 addition
and
83 deletion
+0
-83
zh-cn/device-dev/subsystems/subsys-remote-start.md
zh-cn/device-dev/subsystems/subsys-remote-start.md
+0
-83
未找到文件。
zh-cn/device-dev/subsystems/subsys-remote-start.md
已删除
100755 → 0
浏览文件 @
c59ec3f1
# 分布式远程启动
## 概述
分布式任务调度模块,通过主从设备服务代理机制,在OpenHarmony操作系统上建立起分布式服务平台,支持主设备(搭载OpenHarmony的智慧屏设备)启动从设备(IP Camera、运动手表等小内存OpenHarmony设备)FA的能力。
以智慧屏节目开播提醒为例,智慧屏上在喜欢的节目菜单中,点击“开播后提醒我”按钮,等节目开播后,智慧屏会拉起运动手表上的节目开播提醒FA。通过该FA用户可以快速知道喜欢的节目已经开始,达到协同互助的作用。
## 基本概念
-
FA
Feature Ability代表有界面的Ability,用于与用户进行交互。
-
远程启动
即跨设备启动FA,与本地启动FA相对应。
## 接口说明
智慧屏端分布式开放能力如下表,包含在AbilitySlice类中,具体的API接口详见OpenHarmony应用接入接口文档:
**表1**
分布式远程启动FA的API接口功能介绍
| 接口名 | 描述 |
| -------- | -------- |
| void
startAbility(Want
want) | 远程启动FA,Want参数命名以实际开发平台API为准。 |
**表2**
参数Want功能介绍
| 参数名 | 类型 | 说明 |
| -------- | -------- | -------- |
| want | ohos.aafwk.content.Want | 当开发者需要调用该接口启动远程FA时,需要显式指定待启动FA的设备id、bundleName和abilityName。 |
## 约束与限制
-
支持主设备侧远程启动从设备侧FA,不支持从设备远程启动主设备FA。
-
远程启动前必须确保OpenHarmony设备间分布式组网成功(需要在同一网段内,可互相ping通),否则无法远程启动。
-
当前只支持拥有共同公钥信息的主从设备间FA(即主从设备的FA使用相同华为证书)的拉起。
## 开发步骤
智慧屏侧通过如下操作启动从设备侧FA,从设备侧FA默认已开发。
1.
打开DevEco Studio,完成智慧屏侧FA开发。
2.
获取目标在线从设备的设备ID。
```
// 引入设备选择头文件
import ohos.distributedschedule.interwork.DeviceInfo;
import ohos.distributedschedule.interwork.DeviceManager;
// 获取在线设备列表
List<DeviceInfo> deviceInfoListOnline = DeviceManager.getDmsDeviceList(DeviceInfo.FLAG_GET_ONLINE_DEVICE);
String remote_device_id;
if (deviceInfoListOnline.size() > 0)
{
remote_device_id = deviceInfoListOnline[0].GetDeviceId(); // 获取在线列表中第一台设备的设备ID
}
```
3.
构造want,首先使用ElementName类表明需要启动的远端设备ID,包名,Ability类名,传入want中,然后设置want中的分布式标志位Want.FLAG_ABILITYSLICE_MULTI_DEVICE表示需要远程启动。
```
// 引入相关头文件
import ohos.aafwk.ability.Ability;
import ohos.aafwk.content.Want;
import ohos.bundle.ElementName;
// 启动远程设备FA
Want want = new Want(); // 封装启动远端FA的Want
// 使用步骤2中获取的设备ID,并指定FA信息
ElementName name = new ElementName(remote_device_id, "com.example.remote_package_name", "remote_class_name");
want.setElement(name); // 将待启动的FA信息添加到Want中
want.setFlags(Want.FLAG_ABILITYSLICE_MULTI_DEVICE); // 设置分布式标记,若不设置将无法使用分布式能力
startAbility(want); // 按照Want启动指定FA,Want参数命名以实际开发平台API为准
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录