OpenHarmony开发者论坛
标题:
OpenHarmony 监听不到distributedObject对象的数据变化?
[打印本页]
作者:
applepai
时间:
2024-11-20 11:18
标题:
OpenHarmony 监听不到distributedObject对象的数据变化?
[md]### 【问题描述】
1. 介绍问题现象和发生的背景
rk3568系统版本:OpenHarmony 5.0.2
api 版本:12
运行源码仓库sample:[DistributedFilemanager](
https://gitee.com/openharmony/ap ... tributedFilemanager
"DistributedFilemanager")
背景:添加了设备发现和组网的代码,当前可以通过PIN码进行设备间授信认证,然后通过sessionid加入组网
2. 相关的代码(请勿使用截图)
从日志上看,两台设备都有 start joinSession 235016719,应该是加入了同一session,但是进行文件粘贴无法跨设备进行复制粘贴,update是有日志打印的,但是 change 没有日志打印,怀疑是没有监听到分布式数据对象的变化,请各位大佬看一下
```
createDataObject(context: common.UIAbilityContext, sessionId?: string) {
Logger.info(TAG, 'in createDataObject');
if (this.distributedObject) {
Logger.error(TAG, 'create dataObject already');
return;
}
Logger.info(TAG, 'int distributedDataObject.create');
// 创建分布式数据对象实例
this.distributedObject = distributedDataObject.create(context, {
from: '',
localFileUriList: [],
disFileUriList: [],
disFileList: []
});
Logger.info(TAG, 'in this.distributedObject.on');
// 设置数据变更监听
this.distributedObject.on('change', (sessionId: string, fields: Array<string>) => {
try{
Logger.info(TAG, `change, sessionId: ${sessionId}, fields: ${JSON.stringify(fields)}`);
fields.forEach((field) => {
Logger.info(TAG, `${field}: ${this.distributedObject![field]}`);
});
} catch (error) {
Logger.error(TAG, `Error in change event callback: ${error}`);
}
});
// 设置同步sessionId加入组网
if (sessionId) {
this.sessionId = sessionId;
}
Logger.info(TAG, `the sessonid is ${this.sessionId}`);
this.distributedObject.setSessionId(this.sessionId);
}
update(from: string, localFileUriList: string[], disFileUriList: string[], disFileList: string[]) {
if(this.distributedObject) {
Logger.info(TAG, 'this distributedObject is not null');
}
Logger.info(TAG, `doUpdate,${from},${localFileUriList},${disFileUriList},${disFileList}`)
this.distributedObject!['from'] = from;
this.distributedObject!['localFileUriList'] = localFileUriList;
this.distributedObject!['disFileUriList'] = disFileUriList;
this.distributedObject!['disFileList'] = disFileList;
}
```
3. 运行结果、错误截图
4. 我尝试过的解决方法和结果
5. 我想要达到的结果
### 【运行环境】
硬件:rk3568
ROM版本:
DevEvoStudio版本:5.0.0 release
SDK版本:
[/md]
作者:
applepai
时间:
2024-11-21 15:28
将设备以及sdk回退到4.1版本,功能是正常的,不知道5.0做了哪些修改
作者:
kuaile
时间:
2024-11-22 09:32
你好可以提供日志吗,信息无法判断问题点
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5