fix: 启动app传递数据

This commit is contained in:
wangzhongjie 2025-09-04 15:07:03 +08:00
parent 0aea22d2bf
commit 43d5302c71
17 changed files with 110 additions and 495 deletions

View File

@ -4,13 +4,13 @@
{
"name": "default",
"material": {
"certpath": "C:\\Users\\93218\\.ohos\\config\\openharmony\\auto_ohos_default_subject-two_com.oh.dts.cer",
"storePassword": "0000001A2150F207688978DC41AB971AFAACA19A2656EF603DF6DD262F11C00738919C0D1E8DC208ED16",
"certpath": "/Users/wangzhongjie/.ohos/config/openharmony/default_subject-two_Kl4t-ZSvZeuUm9s8O-e6FIH2VFR_OaNyhDP8kPjIWgU=.cer",
"storePassword": "0000001B8D8B187B8B5E03868F4F858A00D5D8275FCDA4584925A7E271A58D44A2D8295E1A3911E47104ED",
"keyAlias": "debugKey",
"keyPassword": "0000001AACF53E0E5E7326C00626448D07D00D283DB5B32263113CE3A96D18EB3EFC6EAD63AB73618A2F",
"profile": "C:\\Users\\93218\\.ohos\\config\\openharmony\\auto_ohos_default_subject-two_com.oh.dts.p7b",
"keyPassword": "0000001BCBA3C73D3DC9D012F14BD3CB41DAB2328BB987DEFD7CC6A4A7E0F9E0097F22B2DD06F0F35C2E9B",
"profile": "/Users/wangzhongjie/.ohos/config/openharmony/default_subject-two_Kl4t-ZSvZeuUm9s8O-e6FIH2VFR_OaNyhDP8kPjIWgU=.p7b",
"signAlg": "SHA256withECDSA",
"storeFile": "C:\\Users\\93218\\.ohos\\config\\openharmony\\auto_ohos_default_subject-two_com.oh.dts.p12"
"storeFile": "/Users/wangzhongjie/.ohos/config/openharmony/default_subject-two_Kl4t-ZSvZeuUm9s8O-e6FIH2VFR_OaNyhDP8kPjIWgU=.p12"
}
}
],

View File

@ -1,13 +1,15 @@
{
"lockfileVersion": 1,
"lockfileVersion": 2,
"ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",
"specifiers": {
"@ohos/hypium@1.0.6": "@ohos/hypium@1.0.6"
},
"packages": {
"@ohos/hypium@1.0.6": {
"resolved": "https://repo.harmonyos.com/ohpm/@ohos/hypium/-/hypium-1.0.6.tgz",
"integrity": "sha512-bb3DWeWhYrFqj9mPFV3yZQpkm36kbcK+YYaeY9g292QKSjOdmhEIQR2ULPvyMsgSR4usOBf5nnYrDmaCCXirgQ=="
"resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hypium/-/hypium-1.0.6.tgz",
"integrity": "sha512-bb3DWeWhYrFqj9mPFV3yZQpkm36kbcK+YYaeY9g292QKSjOdmhEIQR2ULPvyMsgSR4usOBf5nnYrDmaCCXirgQ==",
"registryType": "ohpm",
"shasum": "3f5fed65372633233264b3447705b0831dfe7ea1"
}
}
}

View File

@ -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;

View File

@ -1,51 +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, { tcpRequest } 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: err
}));
console.log("lixiao error", JSON.stringify(err))
})
}).catch(err => {
callback(0, JSON.stringify({
code: 1,
data: {
code: 2300007
}
}));
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);
}
}

View File

@ -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
}

View File

@ -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<boolean> {
console.log("lixiao onRemoteRequest called, code = " + code);
return new Promise<boolean>((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;
}

View File

@ -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 { tcpUtil } from '../common/utils/TcpRequest';
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);
async onCreate(want): Promise<void> {
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');
};
};

View File

@ -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}`);
});

View File

@ -25,7 +25,7 @@ interface WR {
}
// 通用监管接口
export async function writeObjectOut(params, filePath?: string): Promise<WR> {
export async function writeObjectOut(params,externalTransmission:boolean, filePath?: string): Promise<WR> {
const singlePlay = globalThis.singlePlay
if (singlePlay) {
return { code: 1 }
@ -54,8 +54,7 @@ export async function writeObjectOut(params, filePath?: string): Promise<WR> {
//新监管调用
if (globalThis.isJGNew) {
return await writeObjectOutNew(params, filePath)
return await writeObjectOutNew(params, filePath,externalTransmission)
}
drvexam.zp = drvexam.zp === undefined ? undefined : encodeURIComponent(drvexam.zp)

View File

@ -1,8 +1,11 @@
import { getSyncData } from '../common/service/initable';
import request from "../common/utils/request"
let baseHost = globalThis.host;
import FileUtil from '../common/utils/File';
import FileLog from '../pages/judgeSDK/utils/fileLog';
import pasteboard from '@ohos.pasteboard';
import emitter from '@ohos.events.emitter';
import Want from '@ohos.app.ability.Want';
//监管接口序列号映射
const gjxlhObj = {
@ -19,12 +22,12 @@ interface WR {
code: number
}
export default async function writeObjectOutNew(data, filePath): Promise<WR> {
export default async function writeObjectOutNew(data, filePath, externalTransmission): Promise<WR> {
const fileUtil = new FileUtil(globalThis.context);
const { jkid, drvexam } = data;
const {jkid , drvexam} = data;
const basic = await getBasicConfig(jkid);
const params = await getParams(jkid, drvexam);
const { wglb, jkxlh, glbm, jgbh, sjbs } = basic;
const {wglb,jkxlh,glbm,jgbh,sjbs} = basic;
if (filePath) {
await fileUtil.editFile(`${filePath}/wuxi_exam_data.txt`, JSON.stringify({
@ -41,17 +44,16 @@ export default async function writeObjectOutNew(data, filePath): Promise<WR> {
}
// let connectTimeout = sjbs === '02-21-000014' ?60000:1
console.info('surenjun', '调用新监管,项目代码:', params.data.param.ksxm)
console.info('surenjun', '调用新监管')
let temp
try {
let data = JSON.stringify({
host: globalThis.JGHOST,
method: 'post',
//是否是新中心
isNewCenter: true,
xml: true,
url: '/dems_ws/services/TmriOutAccess?wsdl',
data: `<?xml version="1.0"?>
let requestData = {
host: globalThis.JGHOST,
method: 'post',
//是否是新中心
isNewCenter: true,
xml: true,
url: '/dems_ws/services/TmriOutAccess?wsdl',
data: `<?xml version="1.0"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
@ -69,46 +71,20 @@ export default async function writeObjectOutNew(data, filePath): Promise<WR> {
</writeObjectOut>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>`,
})
try {
}
try {
if (!externalTransmission) {
temp = await request(requestData)
} else {
let systemPasteboard = pasteboard.getSystemPasteboard()
let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, data)
let pasteData = pasteboard.createData(pasteboard.MIMETYPE_TEXT_PLAIN, JSON.stringify(requestData))
await systemPasteboard.clear()
await systemPasteboard.setData(pasteData)
} catch (e) {
console.log("wzj pasteboard error", e, "项目代码:", params.data.param.ksxm)
temp = {
code: 1
}
}
let fn = () => {
return new Promise((resolve, reject) => {
let tick = setTimeout(() => {
emitter.emit({
eventId: 1
})
tick = null
reject({
code: 2300028,
message: "children process not response"
})
}, 20 * 1000)
console.log("wzj process start,项目代码:", params.data.param.ksxm)
globalThis.serviceExtProxy.processData("1", (errorCode: number, retVal: string) => {
console.log("lixiao process accept,项目代码:", params.data.param.ksxm, " 错误码:", errorCode, JSON.stringify(retVal))
if (tick != null) {
clearTimeout(tick)
let result = JSON.parse(retVal)
if (result.code === 0) {
resolve(result.data)
} else {
emitter.emit({
eventId: 1
})
reject(result.data)
}
}
});
})
}
temp = await fn()
} catch (e) {
console.log("新监管错误")
temp = e
@ -118,7 +94,6 @@ export default async function writeObjectOutNew(data, filePath): Promise<WR> {
await fileUtil.editFile(`${filePath}/wuxi_exam_data.txt`, JSON.stringify(temp) + `\n`);
}
return temp
}
export async function getParams(jkid, drvexam) {
@ -234,10 +209,7 @@ export async function getParams(jkid, drvexam) {
sfzmhm: drvexam.sfzmhm
},
},
file: {
sjbs: gjxlhObj[jkid],
param: [{ field: '', data: drvexam.zp }]
}
file: { sjbs: gjxlhObj[jkid], param: [{ field: '', data: drvexam.zp }] }
}
default:

View File

@ -54,10 +54,11 @@ export async function startRecordVideo(param, td, context, dir, path?, index?) {
}
// @ts-ignore
var recordResult = rtsp_server.startRecordVideo(context, video_uri, fileName, date, dir);
var recordResult = rtsp_server.startRecordVideo(context, video_uri, fileName, date,dir);
const handleId = recordResult.dataInt;
reslove(handleId)
} else {
}
else {
console.log(`Rtsprecord startRecordVideo rtsp_server isnull`);
reslove(0)
}
@ -73,10 +74,10 @@ export async function endRecordVideo(record_handleObj) {
console.log(`Rtsprecord endRecordVideo begin`);
// @ts-ignore
var recordResult = rtsp_server.endRecordVideo(record_handleObj[key]);
console.log(`Rtsprecord endRecordVideo record_handle` + record_handleObj[key].dataInt + ` filename:` +
record_handleObj[key].fileName);
console.log(`Rtsprecord endRecordVideo record_handle` + record_handleObj[key].dataInt + ` filename:` + record_handleObj[key].fileName);
} else {
}
else {
console.log(`Rtsprecord endRecordVideo handleId isnull`);
}
}
@ -122,8 +123,7 @@ async function getfilehandleCode(td, param, dir, path, index) {
}
export async function getUserAlbumItemByDisplayName(displayName: string, day?,
type?): Promise<photoAccessHelper.Album> {
export async function getUserAlbumItemByDisplayName(displayName: string, day?, type?): Promise<photoAccessHelper.Album> {
let fetchResult = null
let album: photoAccessHelper.Album = null
try {
@ -136,9 +136,7 @@ export async function getUserAlbumItemByDisplayName(displayName: string, day?,
};
const userFileMgr = photoAccessHelper.getPhotoAccessHelper(globalThis.context);
fetchResult =
await userFileMgr.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC,
fetchOptions);
fetchResult = await userFileMgr.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, fetchOptions);
console.log('get getUserAlbumItemByDisplayName, count: ' + JSON.stringify(fetchResult));
if (fetchResult.getCount() > 0) {
const albums = await fetchResult.getLastObject();
@ -169,8 +167,7 @@ interface takePhotoParam {
name?: string,
base64?: string,
fileSize?: number,
errorCode?: number,
path?: string
errorCode?: number
}
/**
@ -184,7 +181,7 @@ interface takePhotoParam {
*/
const fileHelper = new FileHelper();
export async function delPic(day, type) {
export async function delPic(day,type) {
let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(globalThis.context);
console.info('albumGetAssetsDemoCallback');
let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
@ -196,15 +193,13 @@ export async function delPic(day, type) {
fetchColumns: [],
predicates: predicates
};
let albumList: photoAccessHelper.FetchResult<photoAccessHelper.Album> =
await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC,
albumFetchOptions);
let albumList: photoAccessHelper.FetchResult<photoAccessHelper.Album> = await phAccessHelper.getAlbums(photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.USER_GENERIC, albumFetchOptions);
let albums = await albumList.getAllObjects();
for (let i = 0; i <= albums.length; i++) {
let albumName = albums[i].albumName
for(let i=0;i<=albums.length;i++){
let albumName=albums[i].albumName
// isSevenDaysAgo(albumName, day)
console.log('albumNamealbumName', albumName)
if (isSevenDaysAgo(albumName, day) && albumName != 'jt' && albumName != 'pz') {
console.log('albumNamealbumName',albumName)
if (isSevenDaysAgo(albumName, day)&&albumName!='jt'&&albumName!='pz') {
deleteAllFileByPiC(albumName, type)
}
@ -223,68 +218,40 @@ export async function takePhoto(param, context, dir, flag = 1, callback?) {
// @ts-ignore
// var snapResult = rtsp_server.getVideoSnapshot(context, video_uri, '', dir);
if (flag == 0) {
// return new
rtsp_server.detectVideoSnapshotSize(video_uri, fileName, (err, snapResult) => {
console.log("baohaowen_detectLoop round end size1:" + snapResult.fileSize);
callback({ fileSize: snapResult.fileSize, errorCode: snapResult.errorCode })
});
}
else {
return new Promise<takePhotoParam>(async (resolve, reject) => {
rtsp_server.detectVideoSnapshotSize(video_uri, fileName, false, (err, snapResult) => {
console.log("baohaowen_detectLoop round end size1:" + snapResult.fileSize, snapResult.dataString);
callback && callback({
fileSize: snapResult.fileSize,
errorCode: snapResult.errorCode,
base64: snapResult.dataString
})
resolve({ fileSize: snapResult.fileSize, errorCode: snapResult.errorCode, base64: snapResult.dataString })
});
})
} else {
return new Promise<takePhotoParam>(async (resolve, reject) => {
// const time = await getCurrentTime()
// const date = time.split(' ')[0]
// let dirName = dir ? dir : date
rtsp_server.detectVideoSnapshotSize(video_uri, fileName, true, (err, snapResult) => {
if (snapResult.result && snapResult.errorCode == 0) {
console.log("baohaowen_detectLoop round end size1:" + snapResult.fileSize, snapResult.dataString);
callback && callback({
const time = await getCurrentTime()
const date = time.split(' ')[0]
let dirName=dir?dir:date
rtsp_server.getVideoSnapshot(context, video_uri, fileName,dirName, true,async (err, snapResult) => {
if(snapResult.result&&snapResult.errorCode==0){
resolve({
base64: snapResult.dataString,
name: snapResult.fileName,
fileSize: snapResult.fileSize,
errorCode: snapResult.errorCode,
base64: snapResult.dataString
errorCode: snapResult.errorCode
})
resolve({ fileSize: snapResult.fileSize, errorCode: snapResult.errorCode, base64: snapResult.dataString })
} else {
}else{
promptAction.showToast({
message: `拍照失败`,
duration: 3000
});
reject(false)
// reject()
}
});
// rtsp_server.getVideoSnapshot(context, video_uri, fileName, dirName, true, async (err, snapResult) => {
// if (snapResult.result && snapResult.errorCode == 0) {
// resolve({
// base64: snapResult.dataString,
// name: snapResult.fileName,
// fileSize: snapResult.fileSize,
// errorCode: snapResult.errorCode,
// path: snapResult.filePath
// })
// } else {
// promptAction.showToast({
// message: `拍照失败`,
// duration: 3000
// });
// reject(false)
// // reject()
// }
//
// });
})
}
}
export async function deleteAllPicturesFn() {
export async function deleteAllPicturesFn(){
fileHelper.deleteAllPictures();
deleteAllVideos(globalThis.context, photoAccessHelper.AlbumType.USER, photoAccessHelper.AlbumSubtype.VIDEO)
deleteAllVideos(globalThis.context,photoAccessHelper.AlbumType.USER,photoAccessHelper.AlbumSubtype.VIDEO)
}
@ -294,8 +261,7 @@ export async function deleteAllFileByPiC(dirName, type = 1) {
fileHelper.deleteFileOfAlbum(dirName, type);
}
export async function deleteAllVideos(context, type: photoAccessHelper.AlbumType,
subType: photoAccessHelper.AlbumSubtype): Promise<void> {
export async function deleteAllVideos(context, type: photoAccessHelper.AlbumType, subType: photoAccessHelper.AlbumSubtype): Promise<void> {
let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.Album> = null;
try {
const userFileMgr = photoAccessHelper.getPhotoAccessHelper(context);

View File

@ -29,12 +29,7 @@ export default class EntryAbility extends UIAbility {
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');
}

View File

@ -19,7 +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 { examJudgeVersion } from './judgeSDK/api';
@ -60,7 +59,6 @@ struct Index {
private interval = null;
private avPlayer
private context = getContext(this) as common.UIAbilityContext;
private serviceExtProxy: IdlServiceExtProxy
@Styles
commStyle(){
@ -353,76 +351,9 @@ 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() {
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
@ -433,7 +364,6 @@ struct Index {
globalThis.errorDialog = this.errorDialog
globalThis.udpEvent = new UdpEvent();
getSyncData('MA_SYSSET').then(async data => {
console.log('datadata', JSON.stringify(data))
// @ts-ignore
@ -448,7 +378,6 @@ struct Index {
delPic(Number(sys.v_value), 2)
delLog(Number(sys.v_value))
// this.delLoading=false
}
})
});

View File

@ -55,6 +55,7 @@ import {
} from './api/index';
import { getSyncData, upDateTableByArray } from '../../common/service/initable';
import promptAction from '@ohos.promptAction';
import Want from '@ohos.app.ability.Want';
const judgeTag = 'SURENJUN_JUDGE'
@ -116,7 +117,7 @@ export default class Judge {
const examDataArr = examDataStr.split('\n');
for (let examDataStr of examDataArr) {
const examData = JSON.parse(examDataStr)
const code = await writeObjectOut(examData);
const code = await writeObjectOut(examData, false);
}
}
//上传无锡所过程数据
@ -692,9 +693,12 @@ export default class Judge {
this.isExamEnd = false;
}
private externalTransmission: boolean = false
// 计算是否启动
private whetherToStart: boolean
//调用监管接口
sendWriteObjectOut = async (data, filePath) => {
const temp = await writeObjectOut(data, filePath);
const temp = await writeObjectOut(data, this.externalTransmission, filePath);
console.log("wzj", JSON.stringify(temp))
if (this.disConnectNum == 0) {
console.log("wzj", "第一次发送", JSON.stringify(data))
@ -711,12 +715,34 @@ export default class Judge {
}
return await this.sendWriteObjectOut(data, filePath)
}
if (this.disConnectNum >= 5) {
this.externalTransmission = true
let want: Want = {
bundleName: 'com.oh.upload', // 替换为你的应用包名
abilityName: 'EntryAbility', // 你的 Service Ability 名称
moduleName: 'entry', // 你的模块名称,通常是 'entry',
parameters: {}
};
try {
let context = this.judgeUI.context;
context.startAbility(want)
.then(() => {
})
.catch((error) => {
console.error(`拉起应用失败: ${error.code} - ${error.message}`);
});
} catch (error) {
console.error(`启动Ability异常: ${error.message}`);
}
return await this.sendWriteObjectOut(data, filePath)
}
}
if (this.disConnectNum >= 5) {
console.info('surenjun', '123')
this.judgeUI.errorMsg = '当前的考试过程信息网络传输异常,程序点击确认将重启!';
this.judgeUI.disConnectErrorOpen = true
}
this.disConnectNum = 0

View File

@ -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",

View File

@ -1,6 +1,6 @@
{
"hvigorVersion": "3.0.9",
"hvigorVersion": "3.2.4",
"dependencies": {
"@ohos/hvigor-ohos-plugin": "3.0.9"
"@ohos/hvigor-ohos-plugin": "3.2.4"
}
}

View File

@ -1,13 +1,15 @@
{
"lockfileVersion": 1,
"lockfileVersion": 2,
"ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",
"specifiers": {
"@ohos/hypium@1.0.6": "@ohos/hypium@1.0.6"
},
"packages": {
"@ohos/hypium@1.0.6": {
"resolved": "https://repo.harmonyos.com/ohpm/@ohos/hypium/-/hypium-1.0.6.tgz",
"integrity": "sha512-bb3DWeWhYrFqj9mPFV3yZQpkm36kbcK+YYaeY9g292QKSjOdmhEIQR2ULPvyMsgSR4usOBf5nnYrDmaCCXirgQ=="
"resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hypium/-/hypium-1.0.6.tgz",
"integrity": "sha512-bb3DWeWhYrFqj9mPFV3yZQpkm36kbcK+YYaeY9g292QKSjOdmhEIQR2ULPvyMsgSR4usOBf5nnYrDmaCCXirgQ==",
"registryType": "ohpm",
"shasum": "3f5fed65372633233264b3447705b0831dfe7ea1"
}
}
}