From 88f33393bde49b2642a227913b027c1d9d969669 Mon Sep 17 00:00:00 2001 From: lixiao <932184220@qq.com> Date: Wed, 5 Mar 2025 09:49:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E6=97=A0=E7=94=A8=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build-profile.json5 | 4 +- .../ets/IdlServiceExt/i_idl_service_ext.ts | 10 --- .../ets/IdlServiceExt/idl_service_ext_impl.ts | 45 ---------- .../IdlServiceExt/idl_service_ext_proxy.ts | 57 ------------ .../ets/IdlServiceExt/idl_service_ext_stub.ts | 86 ------------------ .../ServiceExtAbility/ServiceExtAbility.ets | 36 -------- .../ServiceExtAbility/ServiceInteractive.ets | 26 ------ entry/src/main/ets/common/utils/TcpRequest.ts | 5 +- entry/src/main/ets/pages/Index.ets | 87 ------------------- entry/src/main/module.json5 | 10 --- 10 files changed, 6 insertions(+), 360 deletions(-) delete mode 100644 entry/src/main/ets/IdlServiceExt/i_idl_service_ext.ts delete mode 100644 entry/src/main/ets/IdlServiceExt/idl_service_ext_impl.ts delete mode 100644 entry/src/main/ets/IdlServiceExt/idl_service_ext_proxy.ts delete mode 100644 entry/src/main/ets/IdlServiceExt/idl_service_ext_stub.ts delete mode 100644 entry/src/main/ets/ServiceExtAbility/ServiceExtAbility.ets delete mode 100644 entry/src/main/ets/ServiceExtAbility/ServiceInteractive.ets diff --git a/build-profile.json5 b/build-profile.json5 index 150a152d..4d66e299 100644 --- a/build-profile.json5 +++ b/build-profile.json5 @@ -5,9 +5,9 @@ "name": "default", "material": { "certpath": "C:\\Users\\93218\\.ohos\\config\\openharmony\\auto_ohos_default_subject-two_com.oh.dts.cer", - "storePassword": "0000001A201E78D07D9BC954731E8031E587503BCABA403A7FF51995EF10FEAF0A0AEE7314A959E32BA1", + "storePassword": "0000001AF5AEE1D0993BD9D84E7ECDA23FDDAAE9D861E77FAA35119FE1E6FFCB795A46238C7669826C22", "keyAlias": "debugKey", - "keyPassword": "0000001ADA728F738FCA67EB2AE35E237F224EE342E5CE1591F417AB0E0CEFE20EE9585997B6D82B6CFB", + "keyPassword": "0000001A006D774FD9FB4A368893011CE1A0C56BDDB83DC70DBD72138C19EAAA64EF9F5CB5778355001F", "profile": "C:\\Users\\93218\\.ohos\\config\\openharmony\\auto_ohos_default_subject-two_com.oh.dts.p7b", "signAlg": "SHA256withECDSA", "storeFile": "C:\\Users\\93218\\.ohos\\config\\openharmony\\auto_ohos_default_subject-two_com.oh.dts.p12" diff --git a/entry/src/main/ets/IdlServiceExt/i_idl_service_ext.ts b/entry/src/main/ets/IdlServiceExt/i_idl_service_ext.ts deleted file mode 100644 index b31537a6..00000000 --- a/entry/src/main/ets/IdlServiceExt/i_idl_service_ext.ts +++ /dev/null @@ -1,10 +0,0 @@ - - - -export default interface IIdlServiceExt { - processData(data: string, callback: processDataCallback): void; - insertDataToMap(key: string, val: number, callback: insertDataToMapCallback): void; -} -export type processDataCallback = (errCode: number, returnValue: string) => void; -export type insertDataToMapCallback = (errCode: number) => void; - diff --git a/entry/src/main/ets/IdlServiceExt/idl_service_ext_impl.ts b/entry/src/main/ets/IdlServiceExt/idl_service_ext_impl.ts deleted file mode 100644 index 5218447a..00000000 --- a/entry/src/main/ets/IdlServiceExt/idl_service_ext_impl.ts +++ /dev/null @@ -1,45 +0,0 @@ -import IdlServiceExtStub from './idl_service_ext_stub'; -import hilog from '@ohos.hilog'; -import type { insertDataToMapCallback } from './i_idl_service_ext'; -import type { processDataCallback } from './i_idl_service_ext'; -import request from '../common/utils/request'; -import pasteboard from '@ohos.pasteboard'; - -const ERR_OK = 0; -const TAG: string = "[IdlServiceExtImpl]"; -const DOMAIN_NUMBER: number = 0xFF00; - -// 开发者需要在这个类型里对接口进行实现 -export default class ServiceExtImpl extends IdlServiceExtStub { - processData(data: string, callback: processDataCallback): void { - // 开发者自行实现业务逻辑 - hilog.info(DOMAIN_NUMBER, TAG, `js-test ServiceExtensionAbility--processData: ${data}`); - console.log("lixiao receive", data) - pasteboard.getSystemPasteboard().getData().then((res) => { - let pasteData = res.getPrimaryText() - console.log("lixiao receive paste", pasteData) - request(JSON.parse(pasteData)).then(response => { - console.log("lixiao success", JSON.stringify(response)) - callback(0, JSON.stringify({ - code: 0, - data: response - })); - // callback(0, JSON.stringify(response)); - }).catch(async (err) => { - callback(0, JSON.stringify({ - code: 1, - data: JSON.stringify(err) - })); - console.log("lixiao error", JSON.stringify(err)) - }) - }).catch(err => { - console.log("lixiao paste error", JSON.stringify(err)) - }) - } - - insertDataToMap(key: string, val: number, callback: insertDataToMapCallback): void { - // 开发者自行实现业务逻辑 - hilog.info(DOMAIN_NUMBER, TAG, `js-test ServiceExtensionAbility--insertDataToMap, key: ${key} val: ${val}`); - callback(ERR_OK); - } -} diff --git a/entry/src/main/ets/IdlServiceExt/idl_service_ext_proxy.ts b/entry/src/main/ets/IdlServiceExt/idl_service_ext_proxy.ts deleted file mode 100644 index 3049e3a3..00000000 --- a/entry/src/main/ets/IdlServiceExt/idl_service_ext_proxy.ts +++ /dev/null @@ -1,57 +0,0 @@ - - -import {processDataCallback} from "./i_idl_service_ext"; -import {insertDataToMapCallback} from "./i_idl_service_ext"; -import IIdlServiceExt from "./i_idl_service_ext"; -import rpc from "@ohos.rpc"; - -export default class IdlServiceExtProxy implements IIdlServiceExt { - constructor(proxy) { - this.proxy = proxy; - } - - processData(data: string, callback: processDataCallback): void - { - let _option = new rpc.MessageOption(); - let _data = new rpc.MessageParcel(); - let _reply = new rpc.MessageParcel(); - // _data.writeString(data); - _data.writeString(data) - this.proxy.sendRequest(IdlServiceExtProxy.COMMAND_PROCESS_DATA, _data, _reply, _option).then(function(result) { - if (result.errCode === 0) { - let _errCode = result.reply.readInt(); - if (_errCode != 0) { - let _returnValue = undefined; - callback(_errCode, _returnValue); - return; - } - let _returnValue = result.reply.readString(); - callback(_errCode, _returnValue); - } else { - console.log("sendRequest failed, errCode: " + result.errCode); - } - }) - } - - insertDataToMap(key: string, val: number, callback: insertDataToMapCallback): void - { - let _option = new rpc.MessageOption(); - let _data = new rpc.MessageParcel(); - let _reply = new rpc.MessageParcel(); - _data.writeString(key); - _data.writeInt(val); - this.proxy.sendRequest(IdlServiceExtProxy.COMMAND_INSERT_DATA_TO_MAP, _data, _reply, _option).then(function(result) { - if (result.errCode === 0) { - let _errCode = result.reply.readInt(); - callback(_errCode); - } else { - console.log("sendRequest failed, errCode: " + result.errCode); - } - }) - } - - static readonly COMMAND_PROCESS_DATA = 1; - static readonly COMMAND_INSERT_DATA_TO_MAP = 2; - private proxy -} - diff --git a/entry/src/main/ets/IdlServiceExt/idl_service_ext_stub.ts b/entry/src/main/ets/IdlServiceExt/idl_service_ext_stub.ts deleted file mode 100644 index c501ba49..00000000 --- a/entry/src/main/ets/IdlServiceExt/idl_service_ext_stub.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { processDataCallback } from "./i_idl_service_ext"; -import { insertDataToMapCallback } from "./i_idl_service_ext"; -import IIdlServiceExt from "./i_idl_service_ext"; -import rpc from "@ohos.rpc"; -import common from '@ohos.app.ability.common'; - -export default class IdlServiceExtStub extends rpc.RemoteObject implements IIdlServiceExt { - protected context: common.ServiceExtensionContext - - constructor(des: string, context: common.ServiceExtensionContext) { - super(des); - this.context = context; - } - - onRemoteMessageRequest(code: number, data: rpc.MessageSequence, reply: rpc.MessageSequence, option): Promise { - console.log("lixiao onRemoteRequest called, code = " + code); - return new Promise((resolve, reject) => { - switch (code) { - case IdlServiceExtStub.COMMAND_PROCESS_DATA: { - // let _data = data.readString(); - let _data = data.readString() - this.processData(_data, (errCode, returnValue) => { - console.log("lixiao callback", returnValue); - console.log("lixiao errCode", errCode); - reply.writeInt(errCode); - reply.writeString(returnValue); - resolve(true) - }); - break - } - case IdlServiceExtStub.COMMAND_INSERT_DATA_TO_MAP: { - let _key = data.readString(); - let _val = data.readInt(); - this.insertDataToMap(_key, _val, (errCode) => { - reply.writeInt(errCode); - resolve(true) - }); - break - } - default: { - console.log("invalid request code" + code); - reject(true) - } - } - }) - } - - // onRemoteRequest(code: number, data, reply, option): boolean { - // console.log("lixiao onRemoteRequest called, code = " + code); - // switch (code) { - // case IdlServiceExtStub.COMMAND_PROCESS_DATA: { - // let _data = data.readString(); - // this.processData(_data, (errCode, returnValue) => { - // reply.writeInt(errCode); - // if (errCode == 0) { - // reply.writeString(returnValue); - // } - // }); - // return true; - // } - // case IdlServiceExtStub.COMMAND_INSERT_DATA_TO_MAP: { - // let _key = data.readString(); - // let _val = data.readInt(); - // this.insertDataToMap(_key, _val, (errCode) => { - // reply.writeInt(errCode); - // }); - // return true; - // } - // default: { - // console.log("invalid request code" + code); - // break; - // } - // } - // return false; - // } - - processData(data: string, callback: processDataCallback): void { - } - - insertDataToMap(key: string, val: number, callback: insertDataToMapCallback): void { - } - - static readonly COMMAND_PROCESS_DATA = 1; - static readonly COMMAND_INSERT_DATA_TO_MAP = 2; -} - diff --git a/entry/src/main/ets/ServiceExtAbility/ServiceExtAbility.ets b/entry/src/main/ets/ServiceExtAbility/ServiceExtAbility.ets deleted file mode 100644 index b53c433a..00000000 --- a/entry/src/main/ets/ServiceExtAbility/ServiceExtAbility.ets +++ /dev/null @@ -1,36 +0,0 @@ -import ServiceExtension from '@ohos.app.ability.ServiceExtensionAbility' - -// import { ServiceExtensionAbility, Want } from '@kit.AbilityKit'; -// import { rpc } from '@kit.IPCKit'; -import hilog from '@ohos.hilog'; -import ServiceExtImpl from '../IdlServiceExt/idl_service_ext_impl'; - -const TAG: string = '[ServiceExtAbility]'; -const DOMAIN_NUMBER: number = 0xFF00; - -export default class ServiceExtAbility extends ServiceExtension { - serviceExtImpl: ServiceExtImpl = new ServiceExtImpl('ExtImpl', this.context); - - onCreate(want): void { - // let serviceExtensionContext = this.context; - hilog.info(DOMAIN_NUMBER, TAG, `js-test ServiceExtensionAbility-- onCreate, want: ${want.abilityName}`); - }; - - onRequest(want, startId: number): void { - hilog.info(DOMAIN_NUMBER, TAG, `js-test ServiceExtensionAbility--onRequest, want: ${want.abilityName}`); - }; - - onConnect(want) { - hilog.info(DOMAIN_NUMBER, TAG, `js-test ServiceExtensionAbility--onConnect, want: ${want.abilityName}`); - // 返回ServiceExtImpl对象,客户端获取后便可以与ServiceExtensionAbility进行通信 - return this.serviceExtImpl; - }; - - onDisconnect(want): void { - hilog.info(DOMAIN_NUMBER, TAG, `js-test ServiceExtensionAbility--onDisconnect, want: ${want.abilityName}`); - }; - - onDestroy(): void { - hilog.info(DOMAIN_NUMBER, TAG, 'js-test ServiceExtensionAbility--onDestroy'); - }; -}; diff --git a/entry/src/main/ets/ServiceExtAbility/ServiceInteractive.ets b/entry/src/main/ets/ServiceExtAbility/ServiceInteractive.ets deleted file mode 100644 index e8c5e53a..00000000 --- a/entry/src/main/ets/ServiceExtAbility/ServiceInteractive.ets +++ /dev/null @@ -1,26 +0,0 @@ -import common from '@ohos.app.ability.common'; -import hilog from '@ohos.hilog'; -import Want from '@ohos.app.ability.Want'; - -const DOMAIN_NUMBER: number = 0xFF00; -// import { BusinessError } from '@ohos.base'; -import promptAction from '@ohos.promptAction'; - -const TAG: string = '[ServiceInteractive]'; -let context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; // UIAbilityContext -let want: Want = { - deviceId: '', - bundleName: 'com.oh.dts', - abilityName: 'ServiceExtAbility' -}; -context.startServiceExtensionAbility(want).then(() => { - - - hilog.info(DOMAIN_NUMBER, TAG, `js-test ServiceInteractive-- Succeeded in starting ServiceExtensionAbility, want: ${want.abilityName}`); - // // 成功启动后台服务 - // promptAction.showToast({ - // message: $r('app.string.SuccessfullyStartBackendService') - // }); -}).catch((err) => { - hilog.error(DOMAIN_NUMBER, TAG, `Failed to start ServiceExtensionAbility. Code is ${err.code}, message is ${err.message}`); -}); diff --git a/entry/src/main/ets/common/utils/TcpRequest.ts b/entry/src/main/ets/common/utils/TcpRequest.ts index 8e51e6c4..01f96a67 100644 --- a/entry/src/main/ets/common/utils/TcpRequest.ts +++ b/entry/src/main/ets/common/utils/TcpRequest.ts @@ -189,8 +189,11 @@ class TcpUtils { this.requestMap.delete(key) await this.socket.close() this.socket = socket.constructTCPSocketInstance() + const fileUtil = new FileUtil(globalThis.context) + const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/ipConfig.txt'); + const result = JSON.parse(data) await this.socket.connect({ - address: { address: "172.37.55.191", port: 19998 } + address: { address: result.tcpOppositeIp, port: 19998 } }).then(res => { console.log("tcp request reconnect success", JSON.stringify(res)) }).catch(err => { diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index 54d80048..3f77ee87 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -19,9 +19,6 @@ import UdpEvent from '../common/utils/UdpEvent'; import { delPic } from '../common/service/videoService'; import imageBtn from './compontents/imageBtn'; import VoiceAnnounce from './judgeSDK/utils/voiceAnnouncements'; -import IdlServiceExtProxy from '../IdlServiceExt/idl_service_ext_proxy'; -import Want from '@ohos.app.ability.Want'; -import emitter from '@ohos.events.emitter'; // import VoiceAnnounce from './judgeSDK/utils/voiceAnnouncements'; @@ -63,7 +60,6 @@ struct Index { private avPlayer private workerInstance = null; private context = getContext(this) as common.UIAbilityContext; - private serviceExtProxy: IdlServiceExtProxy @Styles commStyle(){ @@ -362,90 +358,7 @@ struct Index { .backgroundImageSize({ width: '100%', height: '100%' }) } - async startServiceAbility() { - let want: Want = { - deviceId: '', - bundleName: 'com.oh.dts', - abilityName: 'ServiceExtAbility' - }; - - await this.context.startServiceExtensionAbility(want).then(() => { - // 成功启动后台服务 - console.log('js-test index.ets Succeeded in starting ServiceExtensionAbility.'); - let self = this; - let options: common.ConnectOptions = { - onConnect(elementName, remote): void { - console.log('js-test index.ets onConnect callback'); - if (remote === null) { - console.log(`js-test index.ets onConnect remote is null`); - return; - } - self.serviceExtProxy = new IdlServiceExtProxy(remote); - globalThis.serviceExtProxy = self.serviceExtProxy - console.log(`js-test index.ets processData, this.serviceExtProxy == `, self.serviceExtProxy); - // 通过接口调用的方式进行通信,屏蔽了RPC通信的细节,简洁明了 - // self.serviceExtProxy.processData(1, (errorCode: number, retVal: object) => { - // console.log(`js-test index.ets processData, errorCode: ${errorCode}, retVal: ${retVal}`); - // }); - }, - onDisconnect(elementName): void { - console.log('js-test index.ets onDisconnect callback'); - }, - onFailed(code): void { - console.log('js-test index.ets onFailed callback', JSON.stringify(code)); - } - } - - // 建立连接后返回的Id需要保存下来,在解绑服务时需要作为参数传入 - // let connectionId = context.connectServiceExtensionAbility(want, options); - try { - this.context.connectServiceExtensionAbility(want, options); - } catch (e) { - console.log('js-test index.ets connectServiceExtensionAbility err == ', JSON.stringify(e)); - } - // 成功连接后台服务 - console.log('js-test index.ets connectServiceExtensionAbility success'); - - }).catch((err) => { - console.log(`js-test index.ets Failed to start ServiceExtensionAbility. Code is ${err.code}, message is ${err.message}`); - }); - } - async aboutToAppear() { - // setInterval(() => { - // let date = new Date(); - // console.info('jiangsong1:timeSynchronization begin '); - // uploadProgressData() - // let params = { - // time: dateFormat(date), - // deviceNo: globalThis.deviceNo, - // version: globalThis.version, - // judgeVersion: globalThis.judgeVersion - // } - // timeSynchronizationHTTP(params) - // }, 1000) - - console.log('diyidiy') - emitter.on({ - eventId: 1 - }, async () => { - let want: Want = { - deviceId: '', - bundleName: 'com.oh.dts', - abilityName: 'ServiceExtAbility' - }; - try { - console.log("lixiao, 开始重启服务") - await this.context.stopServiceExtensionAbility(want) - await this.startServiceAbility() - console.log("lixiao, 重启服务成功") - } catch (e) { - console.log("lixiao, 重启服务失败", JSON.stringify(e)) - } - - }) - await this.startServiceAbility() - this.avPlayer = new VoiceAnnounce(); this.initParamFlag = false this.delLoading = false diff --git a/entry/src/main/module.json5 b/entry/src/main/module.json5 index 39197281..c765c98b 100644 --- a/entry/src/main/module.json5 +++ b/entry/src/main/module.json5 @@ -13,16 +13,6 @@ "deliveryWithInstall": true, "installationFree": false, "pages": "$profile:main_pages", - "extensionAbilities": [ - { - "name": "ServiceExtAbility", - "icon": "$media:icon", - "description": "service", - "type": "service", - "exported": true, - "srcEntry": "./ets/ServiceExtAbility/ServiceExtAbility.ets" - } - ], "abilities": [ { "name": "EntryAbility",