鸿蒙开发接口数据管理:【@ohos.data.distributedDataObject (分布式数据对象)】

分布式数据对象

本模块提供管理基本数据对象的相关能力,包括创建、查询、删除、修改、订阅等;同时支持相同应用多设备间的分布式数据对象协同能力。

说明:

本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import distributedObject from '@ohos.data.distributedDataObject';

distributedDataObject.createDistributedObject

createDistributedObject(source: object): DistributedObject

创建一个分布式对象。

系统能力:  SystemCapability.DistributedDataManager.DataObject.DistributedObject。

参数:

参数名类型必填说明
sourceobject设置distributedObject的属性。

返回值:

类型说明
[DistributedObject](创建完成的分布式对象。

示例:

import distributedObject from '@ohos.data.distributedDataObject';
// 创建对象,对象包含4个属性类型,string,number,boolean和Object
var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});

distributedObject.genSessionId

genSessionId(): string

随机创建一个sessionId。

系统能力:  SystemCapability.DistributedDataManager.DataObject.DistributedObject。

返回值:

类型说明
string随机创建的sessionId。

示例:

import distributedObject from '@ohos.data.distributedDataObject';
var sessionId = distributedObject.genSessionId();

DistributedObject

表示一个分布式对象。

setSessionId

setSessionId(sessionId?: string): boolean

设置同步的sessionId,当可信组网中有多个设备时,多个设备间的对象如果设置为同一个sessionId,就能自动同步。

需要权限:  ohos.permission.DISTRIBUTED_DATASYNC

系统能力:  SystemCapability.DistributedDataManager.DataObject.DistributedObject。

参数:

参数名类型必填说明
sessionIdstring分布式对象在可信组网中的标识ID。如果要退出分布式组网,设置为""或不设置均可。

返回值:

类型说明
booleantrue:标识设置sessionId成功; false:标识设置sessionId失败。

示例:

import distributedObject from '@ohos.data.distributedDataObject';
var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
//g_object加入分布式组网
g_object.setSessionId(distributedObject.genSessionId());
//设置为""退出分布式组网
g_object.setSessionId("");

on(‘change’)

on(type: ‘change’, callback: Callback<{ sessionId: string, fields: Array }>): void

监听分布式对象的变更。

系统能力:  SystemCapability.DistributedDataManager.DataObject.DistributedObject。

参数:

参数名类型必填说明
typestring事件类型,固定为’change’,表示数据变更。
callbackCallback<{ sessionId: string, fields: Array }>变更回调对象实例。 sessionId:标识变更对象的sessionId; fields:标识对象变更的属性名。

示例:

import distributedObject from '@ohos.data.distributedDataObject';  
var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false,parent:{mother:"jack mom",father:"jack Dad"}});
globalThis.changeCallback = (sessionId, changeData) => {console.info("change" + sessionId);if (changeData != null && changeData != undefined) {changeData.forEach(element => {console.info("changed !" + element + " " + g_object[element]);});}
}
g_object.on("change", globalThis.changeCallback);

off(‘change’)

off(type: ‘change’, callback?: Callback<{ sessionId: string, fields: Array }>): void

当不再进行数据变更监听时,使用此接口删除对象的变更监听。

系统能力:  SystemCapability.DistributedDataManager.DataObject.DistributedObject。

参数:

参数名类型必填说明
typestring事件类型,固定为’change’,表示数据变更。
callbackCallback<{ sessionId: string, fields: Array }>需要删除的数据变更回调,若不设置则删除该对象所有的数据变更回调。 sessionId:标识变更对象的sessionId; fields:标识对象变更的属性名。

示例:

import distributedObject from '@ohos.data.distributedDataObject';  
var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false,parent:{mother:"jack mom",father:"jack Dad"}});
//删除数据变更回调changeCallback
g_object.off("change", globalThis.changeCallback);
//删除所有的数据变更回调
g_object.off("change");

on(‘status’)

on(type: ‘status’, callback: Callback<{ sessionId: string, networkId: string, status: ‘online’ | ‘offline’ }>): void

监听分布式对象的上下线。

系统能力:  SystemCapability.DistributedDataManager.DataObject.DistributedObject。

参数:

参数名类型必填说明
typestring事件类型,固定为’status’,表示对象上下线。
callbackCallback<{ sessionId: string, networkId: string, status: ‘online’‘offline’ }>

示例:

import distributedObject from '@ohos.data.distributedDataObject';
globalThis.statusCallback = (sessionId, networkId, status) => {globalThis.response += "status changed " + sessionId + " " + status + " " + networkId;
}
var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false,parent:{mother:"jack mom",father:"jack Dad"}});
g_object.on("status", globalThis.statusCallback);

off(‘status’)

off(type: ‘status’, callback?: Callback<{ sessionId: string, deviceId: string, status: ‘online’ | ‘offline’ }>): void

当不再进行对象上下线监听时,使用此接口删除对象的上下线监听。

系统能力:  SystemCapability.DistributedDataManager.DataObject.DistributedObject。

参数:

参数名类型必填说明
typestring事件类型,固定为’status’,表示对象上下线。
callbackCallback<{ sessionId: string, deviceId: string, status: ‘online’‘offline’ }>

示例:

import distributedObject from '@ohos.data.distributedDataObject'; 
var g_object = distributedObject.createDistributedObject({name:"Amy", age:18, isVis:false,parent:{mother:"jack mom",father:"jack Dad"}});
globalThis.statusCallback = (sessionId, networkId, status) => {globalThis.response += "status changed " + sessionId + " " + status + " " + networkId;
}
//删除上下线回调changeCallback
g_object.off("status",globalThis.statusCallback);
//删除所有的上下线回调
g_object.off("status");

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/26204.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

股票数据集3- 纳斯达克NASDAQ 100 指数预测

通过4天股票数据预测后1天的数据 1. 特征选择 从上一节的PCA特征分析中&#xff0c;我们大概选择40-60只股票就可涵盖该数据集的主要信息。 因此&#xff0c;我们选择前32 or 64只股票作为模型输入, NASDAQ指数作为预测输出。 也可以根据上一节内容&#xff0c;分析特征重要性…

CISSP—实现安全治理和原则的策略

0x00 前言 首先拿到这个标题会想到什么内容呢&#xff0c; 实现安全治理和原则的策略&#xff0c;简要的拆分成问题就是 什么是安全治理什么是安全原则他们的策略是什么如何实现 其实这个就是当我们看到这个标题的时候应该想到的事情。若果这一章节学完&#xff0c;没有理解…

台灯学生用哪个牌子最好?学生台灯十大名牌排行榜分享

近年来&#xff0c;我们注意到儿童近视的现象呈现出增多且趋于低龄化的趋势。这一变化&#xff0c;部分原因可以归咎于孩子们越来越多地使用电子产品&#xff0c;另一部分则与他们面临的学业压力增加有关。鉴于此&#xff0c;家长们在挑选儿童学习用品时变得格外谨慎&#xff0…

Qt系统相关

本文目录 1.Qt事件事件的处理标签事件鼠标事件滚轮事件按键事件定时器事件窗口事件事件派发器 2.Qt文件操作QFile的基本使用 3.Qt多线程使用线程线程锁connect的第五个参数 条件变量和信号量 4.Qt网络编程UDP SocketTCP SocketQTcpServerQTcpSocket HTTP的编写 5.QT多媒体播放音…

【CTF MISC】XCTF GFSJ0766 something_in_image Writeup(字符串搜索)

something_in_image 暂无 解法 用 binwalk 扫描。 binwalk badimages 找到一个 ext3 文件系统。 strings badimages | grep {*}找到 flag。 Flag Flag{yc4pl0fvjs2k1t7T}声明 本博客上发布的所有关于网络攻防技术的文章&#xff0c;仅用于教育和研究目的。所有涉及到的实验…

Redis面试题、知识点总结,一篇文章让Redis成为面试加分项

Redis面试题、知识点总结&#xff0c;一篇文章让Redis成为面试加分项 前言 参与了几次中大厂的面试&#xff0c;你会发现一面时对于八股文的考察也具有侧重点&#xff08;MySQLRedis > 网络 > 系统 >设计模式 > java集合> JVM >spring) 本文的目标就是通过…

收音机的原理笔记

1. 收音机原理 有线广播&#xff1a;我们听到的声音是通过空气振动进行传播&#xff0c;因此可以通过麦克风&#xff08;话筒&#xff09;将这种机械振动转换为电信号&#xff0c;传到远处&#xff0c;再重新通过扬声器&#xff08;喇叭&#xff09;转换为机械振动&#xff0c…

软件设计师笔记-程序语言基础知识

编程语言之间的翻译形式 编程语言之间的翻译形式主要有三种:汇编、解释和编译。这三种方式在将源代码转换为机器可执行的代码时,有着各自的特点和流程。 汇编: 定义:汇编是低级语言(如汇编语言)到机器语言的一种翻译方式。汇编语言是为特定计算机或计算机系列设计的一种…

PostgreSQL的视图pg_database

PostgreSQL的视图pg_database pg_database 是 PostgreSQL 中的一个系统视图&#xff0c;用于显示当前数据库集群中的所有数据库的信息。通过查询 pg_database 视图&#xff0c;数据库管理员可以获取关于每个数据库的详细信息&#xff0c;例如数据库的名称、所有者、编码、表空…

打造精细化运维新玩法(四)

二、SLO健康度——从0到1构建SLO 和大多互联网企业一样&#xff0c;蚂蚁的基础设施侧存在众多的异构系统&#xff0c;被上层的业务应用和服务所依赖。考虑到不同系统的技术栈、架构、部署等因素&#xff0c;我们需要找到一种通用的、泛化性强的数字化方案指导和构建基础设施域内…

智能楼宇可视化:赋能智慧园区管理

图扑智慧园区楼宇可视化系统&#xff0c;集成多种数据源&#xff0c;实现全方位监控与管理&#xff0c;提升园区的资源利用率和用户满意度&#xff0c;推动智能化管理进程。

豆瓣电影信息爬虫实战-2024年6月

豆瓣电影信息爬虫教程 摘要 本文将详细介绍如何使用Python编写一个爬虫程序&#xff0c;用于抓取豆瓣电影列表页面上的电影详细信息。通过本教程&#xff0c;你将学习到如何使用requests和PyQuery库来发送HTTP请求、解析HTML内容&#xff0c;并提取所需的数据。 目录 环境搭…

【机器学习】使用RetinaNet解决图像识别的正负样本失衡问题

1. 引言 1.1. 研究背景 正负样本失衡问题的表现和影响在目标检测任务中尤为显著&#xff0c;下面我将从多个方面更详细地阐述这一问题&#xff1a; 1.1.1.正负样本失衡的表现形式 样本数量差异显著&#xff1a; 在目标检测的数据集中&#xff0c;正样本&#xff08;包含目标…

电线电缆单根燃烧试验 电缆垂直燃烧试验

电线电缆单根燃烧试验 电线电缆单根燃烧试验是一种用来评估电线电缆在受到火焰作用时的燃烧性能的测试方法。这种试验通常是将电线电缆垂直固定&#xff0c;然后使用特定的火焰源对其进行燃烧&#xff0c;以观察电线电缆的燃烧行为和燃烧速度。通过这个试验&#xff0c;可以评估…

护眼台灯哪个品牌好?几款性价比最高的护眼台灯推荐

在过去&#xff0c;科技尚未发展至如今这般先进水平时&#xff0c;晚上需要照明的时候&#xff0c;我们通常只能依赖白炽灯。尽管白炽灯以其低成本和接近自然光的显色性获得了一定的青睐&#xff0c;随着时代的发展&#xff0c;现在市面上出现了更为护眼的选择——LED台灯。然而…

一文介绍暗区突围手游 游戏特色、具体玩法和独特的玩法体验

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 《暗区突围》是一款由腾讯魔方工作室群开发的第一人称射击游戏&#xff0c;于 2022 年 7 月 13 日正式公测&#xff0c;支持 Android 和 iOS 平台。这款游戏以从虚构的暗区收集物资并安全撤离作为最终目…

OpenGauss数据库-7.用户及角色

第1关&#xff1a;创建用户 gsql -d postgres -U gaussdb -W passwd123123 CREATE USER jackson WITH PASSWORD jackson123; 第2关&#xff1a;修改用户 gsql -d postgres -U gaussdb -W passwd123123 ALTER USER jackson WITH PASSWORD Abcd123; 第3关&#xff1a;创建角色 …

【JVM】JVM 的内存区域

Java虚拟机&#xff08;JVM&#xff09;在执行Java程序时&#xff0c;将其运行时数据划分到若干不同的内存区域。这些内存区域的管理对Java应用程序的性能和稳定性有着重要影响。JVM的内存区域主要包括以下几部分&#xff1a; 方法区&#xff08;Method Area&#xff09;&#…

Qt实现简易播放器

效果如图 源码地址&#xff1a; 简易播放器: 基于Qt的简易播放器&#xff0c;底层采用VLC源码 - Gitee.com GitHub:GitHub - a-mo-xi-wei/easy-player: 基于Qt的调用VLC的API的简易播放器

Linux操作系统学习:day01

内容来自&#xff1a;Linux介绍 视频推荐&#xff1a;Linux基础入门教程-linux命令-vim-gcc/g -动态库/静态库 -makefile-gdb调试 day01 基础概念 Linux 是 UNIX 操作系统的一个克隆系统, 但是Linux是开源的。 Linux是一个基于文件的操作系统。操作系统需要和硬件进行交互…