From 6c45615d8c5bc19f5c36e2af929c29de33a2bf4e Mon Sep 17 00:00:00 2001 From: lixiao <932184220@qq.com> Date: Fri, 16 May 2025 22:21:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96tcp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/cpp/bin/libJudgeSdk.so | Bin 4587128 -> 4587128 bytes .../ ServiceExtAbility/ServiceExtAbility.ets | 35 ++++++++++ .../ ServiceExtAbility/ServiceInteractive.ets | 18 ++++++ .../ets/IdlServiceExt/i_idl_service_ext.ts | 7 ++ .../ets/IdlServiceExt/idl_service_ext_impl.ts | 23 +++++++ .../IdlServiceExt/idl_service_ext_proxy.ts | 57 +++++++++++++++++ .../ets/IdlServiceExt/idl_service_ext_stub.ts | 55 ++++++++++++++++ entry/src/main/ets/common/utils/GlobalTcp.ts | 22 ++++--- entry/src/main/ets/common/utils/TcpClient.ts | 2 +- .../ets/common/utils/UdpClientByCenter.ts | 12 ---- .../main/ets/entryability/EntryAbility.ets | 11 +++- entry/src/main/ets/pages/Index.ets | 60 +++++++++++++++--- .../ets/pages/compontents/SignDisplayCom.ets | 8 +-- .../ets/pages/judgeSDK/utils/judgeConfig.ts | 2 +- entry/src/main/module.json5 | 24 +++++-- 15 files changed, 290 insertions(+), 46 deletions(-) create mode 100644 entry/src/main/ets/ ServiceExtAbility/ServiceExtAbility.ets create mode 100644 entry/src/main/ets/ ServiceExtAbility/ServiceInteractive.ets create mode 100644 entry/src/main/ets/IdlServiceExt/i_idl_service_ext.ts create mode 100644 entry/src/main/ets/IdlServiceExt/idl_service_ext_impl.ts create mode 100644 entry/src/main/ets/IdlServiceExt/idl_service_ext_proxy.ts create mode 100644 entry/src/main/ets/IdlServiceExt/idl_service_ext_stub.ts diff --git a/entry/src/main/cpp/bin/libJudgeSdk.so b/entry/src/main/cpp/bin/libJudgeSdk.so index 0849edf9a2cc0f05e73374afa9b81e43c3d98f0d..b10494a3a43e209f18d0f7e9d2bcfb07f0aea781 100644 GIT binary patch delta 84973 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

+>pYD4a6XvB}9UT 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 T8h>T*R~CQe`0OL)pGN;5<}qKj delta 84973 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%0DU(Tb9> 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 { + getTCP() + 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 new file mode 100644 index 00000000..35facd85 --- /dev/null +++ b/entry/src/main/ets/ ServiceExtAbility/ServiceInteractive.ets @@ -0,0 +1,18 @@ +import common from '@ohos.app.ability.common'; +import hilog from '@ohos.hilog'; +import Want from '@ohos.app.ability.Want'; + +const DOMAIN_NUMBER: number = 0xFF00; + +const TAG: string = '[tcp转发服务]'; +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, `启动成功`); +}).catch((err) => { + hilog.error(DOMAIN_NUMBER, TAG, `启动失败`); +}); diff --git a/entry/src/main/ets/IdlServiceExt/i_idl_service_ext.ts b/entry/src/main/ets/IdlServiceExt/i_idl_service_ext.ts new file mode 100644 index 00000000..33b4ab13 --- /dev/null +++ b/entry/src/main/ets/IdlServiceExt/i_idl_service_ext.ts @@ -0,0 +1,7 @@ +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 new file mode 100644 index 00000000..c7be4032 --- /dev/null +++ b/entry/src/main/ets/IdlServiceExt/idl_service_ext_impl.ts @@ -0,0 +1,23 @@ +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 { getTCP } from '../common/utils/GlobalTcp'; + +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, `收到主进程信息`); + } + + 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 new file mode 100644 index 00000000..61c34ab6 --- /dev/null +++ b/entry/src/main/ets/IdlServiceExt/idl_service_ext_proxy.ts @@ -0,0 +1,57 @@ + + +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 new file mode 100644 index 00000000..94e8d324 --- /dev/null +++ b/entry/src/main/ets/IdlServiceExt/idl_service_ext_stub.ts @@ -0,0 +1,55 @@ +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() + this.processData(_data, (errCode, returnValue) => { + console.log("lixiao callback", returnValue); + 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) + } + } + }) + } + + 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/common/utils/GlobalTcp.ts b/entry/src/main/ets/common/utils/GlobalTcp.ts index 7faf56cd..902a7b77 100644 --- a/entry/src/main/ets/common/utils/GlobalTcp.ts +++ b/entry/src/main/ets/common/utils/GlobalTcp.ts @@ -26,29 +26,31 @@ export async function getTCP(flag = false) { await globalThis.TcpClient.sendMsg(globalThis.carInfo.carNo) //1002 clearInterval(globalThis.intervalSendMsg) + globalThis.intervalSendMsg = setInterval(() => { if (!globalThis.getCloseTcp) { globalThis.TcpClient.sendMsg(globalThis.carInfo.carNo) //1002 globalThis.tcpStep += 1 - if (globalThis.tcpStep > 30) { + if (globalThis.tcpStep > 4) { globalThis.tcpStep = 0 - getTCP() + getTCP(true) console.log('tcp重连开始') } } - }, 1000 / 3) + }, 1000 * 2) globalThis.TcpClient.onError((val) => { setTimeout(() => { - getTCP() + getTCP(true) }, 1000) }) await globalThis.TcpClient.onMessage((val) => { - setTimeout(() => { - if (val && globalThis.udpClient?.sendMsg) { - globalThis.udpClient?.sendMsg(val) - globalThis.udpClientGps2?.sendMsg(val) - } - }, 1000) + console.log("tcp test 收到差分改正数 length: ", val.byteLength) + if (val) { + globalThis.udpClient?.sendMsg(val, () => { + console.log("tcp test 后置机写入改正数成功") + }) + globalThis.udpClientGps2?.sendMsg(val) + } }) } return diff --git a/entry/src/main/ets/common/utils/TcpClient.ts b/entry/src/main/ets/common/utils/TcpClient.ts index 0a641692..3025666a 100644 --- a/entry/src/main/ets/common/utils/TcpClient.ts +++ b/entry/src/main/ets/common/utils/TcpClient.ts @@ -105,13 +105,13 @@ export default class TcpClient { console.log(`${TAG} TCP send error ${JSON.stringify(err)}`) this.tcpSendNum++ if (!globalThis.getCloseTcp && this.tcpSendNum > 10) { + globalThis.getCloseTcp = true setTimeout(async () => { getTCP(true) }, 3000) this.tcpSendNum = 0 return } - globalThis.getCloseTcp = true reject(false) }); }) diff --git a/entry/src/main/ets/common/utils/UdpClientByCenter.ts b/entry/src/main/ets/common/utils/UdpClientByCenter.ts index ed46a8fc..d8efe18f 100644 --- a/entry/src/main/ets/common/utils/UdpClientByCenter.ts +++ b/entry/src/main/ets/common/utils/UdpClientByCenter.ts @@ -281,10 +281,6 @@ export default class UdpClientByCenter { const newArr = JSON.parse(JSON.stringify(strachArr)) if (strachArr[83] != '4') { console.log('差分状态异常', strachArr[83], strachArr[92]) - this.writeLog({ - time: dateFormat(new Date()), - PLC: `${TAG}差分状态异常,${strachArr[83]},${strachArr[92]}`, - }) } else { globalThis.dialogOpen = false this.chafenFlag = 0 @@ -298,10 +294,6 @@ export default class UdpClientByCenter { this.testIfUdpConnetced(callback) } - async writeLog(param) { - // const fileUtil = new FileUtil(globalThis.context) - // fileUtil.editFile(`${this.folderPath}/plcLog.txt`, JSON.stringify(param)+`\n`) - } async initPath() { // const fileUtil = new FileUtil(globalThis.context) @@ -334,10 +326,6 @@ export default class UdpClientByCenter { lightLineUdp?.send(this.plcUdpError ? arrRedBuffer : (isJudge ? arrGreenBugger : arrBlueBuffer)); if (this.plcUdpError) { num++ - this.writeLog({ - time: dateFormat(new Date()), - PLC: 'plc udp信号丢失', - }) if (num == 3) { getUDP(globalThis.context, true) globalThis.title = 'plc udp信号丢失' diff --git a/entry/src/main/ets/entryability/EntryAbility.ets b/entry/src/main/ets/entryability/EntryAbility.ets index 1bd3dc83..b00d8107 100644 --- a/entry/src/main/ets/entryability/EntryAbility.ets +++ b/entry/src/main/ets/entryability/EntryAbility.ets @@ -8,6 +8,7 @@ import DB from '../common/database/DbSql'; import { initTable } from '../common/service/initable'; import { examPeerOccupy } from "../pages/judgeSDK/api" import { judgeConfig } from '../pages/judgeSDK/utils/judgeConfig'; +import Want from '@ohos.app.ability.Want'; export default class EntryAbility extends UIAbility { async onCreate(want, launchParam) { @@ -24,15 +25,20 @@ export default class EntryAbility extends UIAbility { hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); } - onDestroy() { + async onDestroy() { const arrClose = [0x55, 0xaa, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00] const arrCloseBuffer = Array2Byte(arrClose).buffer globalThis?.lightLineUdp?.send(arrCloseBuffer); + let want: Want = { + deviceId: '', + bundleName: 'com.oh.dts', + abilityName: 'ServiceExtAbility' + }; + await this.context.stopServiceExtensionAbility(want) hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); } async onWindowStageCreate(windowStage: window.WindowStage) { - // this.context // Main window is created, set main page for this ability hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); @@ -40,7 +46,6 @@ export default class EntryAbility extends UIAbility { // console.log("examPeerOccupy", examPeerOccupy()) // }, 5000) - globalThis.carInfo = {} globalThis.examinerInfo = {} globalThis.deviceNo = ''; diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets index 6ecaa1c2..6899e731 100644 --- a/entry/src/main/ets/pages/Index.ets +++ b/entry/src/main/ets/pages/Index.ets @@ -19,6 +19,8 @@ import { delPic } from '../common/service/videoService'; import imageBtn from './compontents/imageBtn'; import VoiceAnnounce from './judgeSDK/utils/voiceAnnouncements'; import { examJudgeVersion } from './judgeSDK/api'; +import IdlServiceExtProxy from '../IdlServiceExt/idl_service_ext_proxy'; +import Want from '@ohos.app.ability.Want'; @Entry @Component @@ -39,6 +41,7 @@ struct Index { @State initParamFlag: boolean = false @State fd: number = -1; @State num: number = 0; + private serviceExtProxy: IdlServiceExtProxy private fileHelper = null; private errorDialog: CustomDialogController = new CustomDialogController({ builder: errorMsgDialog({ @@ -76,6 +79,8 @@ struct Index { globalThis.lsh = '1111111111111' globalThis.errorDialog = this.errorDialog globalThis.udpEvent = new UdpEvent(); + await this.startServiceAbility() + getSyncData('MA_SYSSET').then(async (data: any[]) => { data.forEach(async sys => { //判断是否能点开始考试 @@ -89,6 +94,51 @@ struct Index { } + 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); + }, + 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 networkExam(isSingle: boolean = false) { if (this.loading) { return @@ -183,9 +233,7 @@ struct Index { globalThis.singlePlay = false } this.isSingle = globalThis.singlePlay - // this.loading = false this.num = 0 - // const TcpClient: TcpClient =new TcpClient(result[0].tcplocalIp, result[0].tcplocalIpPort,result[0].tcpOppositeIp,result[0].tcpOppositePort) globalThis.lsh = '1111111111111' } @@ -201,11 +249,10 @@ struct Index { } userAuth() { - return new Promise((reslove, reject) => { + return new Promise((resolve, reject) => { const permissions: Array = ["ohos.permission.SET_TIME", "ohos.permission.READ_IMAGEVIDEO", "ohos.permission.DISTRIBUTED_DATASYNC", 'ohos.permission.CONNECTIVITY_INTERNAL', 'ohos.permission.CAMERA', 'ohos.permission.READ_MEDIA', 'ohos.permission.WRITE_MEDIA', 'ohos.permission.FILE_ACCESS_MANAGER']; let context = this.context; let atManager = abilityAccessCtrl.createAtManager(); - // requestPermissionsFromUser会判断权限的授权状态来决定是否唤起弹窗 atManager.requestPermissionsFromUser(context, permissions).then((data) => { this.initParams() @@ -213,11 +260,9 @@ struct Index { let length: number = grantStatus.length; for (let i = 0; i < length; i++) { if (grantStatus[i] === 0) { - // 用户授权,可以继续访问目标操作 - reslove(true) + resolve(true) } else { reject() - // 用户拒绝授权,提示用户必须授权才能访问当前页面的功能,并引导用户到系统设置中打开相应的权限 return; } } @@ -245,7 +290,6 @@ struct Index { await getDeviceInfo(this.context) await getCarInfo() await getUDP2(this.context, false) - getTCP() this.deviceId = globalThis.carInfo.carNo await setCurrentTime(); if (!globalThis.distanceClass) { diff --git a/entry/src/main/ets/pages/compontents/SignDisplayCom.ets b/entry/src/main/ets/pages/compontents/SignDisplayCom.ets index 3d430815..b4673020 100644 --- a/entry/src/main/ets/pages/compontents/SignDisplayCom.ets +++ b/entry/src/main/ets/pages/compontents/SignDisplayCom.ets @@ -198,7 +198,7 @@ export default struct SignDisplayCom { Text('收星数:' + this.signArr[84]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio) Text('海拔高:' + this.signArr[85]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio) Text('高度差:' + this.signArr[86]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio) - Text('龄期:' + this.signArr[87]).fontColor('#FFB433').fontSize(14 * this.ratio).height(18 * this.ratio) + Text('龄期:' + this.signArr[87]).fontColor(Color.Red).fontSize(14 * this.ratio).height(18 * this.ratio) Text('维度因子:' + this.signArr[88]) .fontColor('#FFB433') .fontSize(14 * this.ratio) @@ -262,7 +262,7 @@ export default struct SignDisplayCom { Row() { Flex({ direction: FlexDirection.Column }) { Row() { - if(this.isA2) { + if (this.isA2) { ForEach(["GPS", "GPS2"], (item, i) => { Row() { Text(item).fontColor(this.gpsActive == i ? '#2D3C5A' : '#fff') @@ -299,9 +299,9 @@ export default struct SignDisplayCom { ForEach(this.GPSColum, (item) => { Column() { Text(`${item.key}:${item.value}`) - .fontSize(12 * this.ratio) + .fontSize((item.key === '龄期' ? 20 : 12) * this.ratio) .lineHeight(20 * this.ratio) - .fontColor('#fff') + .fontColor(item.key === '龄期' ? "#6b96f2" : '#fff') }.height(20 * this.ratio).justifyContent(FlexAlign.Start).width('100%') }) } diff --git a/entry/src/main/ets/pages/judgeSDK/utils/judgeConfig.ts b/entry/src/main/ets/pages/judgeSDK/utils/judgeConfig.ts index b93b6040..b9f84b14 100644 --- a/entry/src/main/ets/pages/judgeSDK/utils/judgeConfig.ts +++ b/entry/src/main/ets/pages/judgeSDK/utils/judgeConfig.ts @@ -1,7 +1,7 @@ //考试回放开关 export const judgeConfig = { // 外壳版本号 - version: "2025.05.14.01", + version: "2025.05.15.01", // 是否A1A3共用一车 isUseSameCar: false, //本地目录开关 diff --git a/entry/src/main/module.json5 b/entry/src/main/module.json5 index 067273af..fbae337d 100644 --- a/entry/src/main/module.json5 +++ b/entry/src/main/module.json5 @@ -1,5 +1,3 @@ - - { "module": { "name": "entry", @@ -13,7 +11,16 @@ "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", @@ -36,9 +43,13 @@ ] } ], - "requestPermissions":[ - {"name": "ohos.permission.CONNECTIVITY_INTERNAL"}, - {"name": "ohos.permission.SET_TIME"}, + "requestPermissions": [ + { + "name": "ohos.permission.CONNECTIVITY_INTERNAL" + }, + { + "name": "ohos.permission.SET_TIME" + }, { "name": "ohos.permission.INTERNET" }, @@ -135,7 +146,6 @@ { "name": "ohos.permission.STORAGE_MANAGER" }, - { "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED", "reason": "$string:module_desc",