From b4cd064c6719cc6f6232a3e0692683c931023741 Mon Sep 17 00:00:00 2001 From: wangzhongjie Date: Wed, 25 Jun 2025 10:03:45 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/src/main/ets/pages/Index/utils.ets | 15 ++++++++--- .../main/ets/pages/judgeSDK/utils/fileLog.ets | 21 ++++++++-------- entry/src/main/ets/utils/Common.ets | 25 ++++++++++++++++++- entry/src/main/ets/utils/FileUtils.ets | 20 ++++++--------- 4 files changed, 52 insertions(+), 29 deletions(-) diff --git a/entry/src/main/ets/pages/Index/utils.ets b/entry/src/main/ets/pages/Index/utils.ets index 2e3b7b3..9f61317 100644 --- a/entry/src/main/ets/pages/Index/utils.ets +++ b/entry/src/main/ets/pages/Index/utils.ets @@ -65,9 +65,16 @@ export async function GetCarInfo(): Promise { export async function UseAuth(context: common.UIAbilityContext): Promise { 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']; + [ + "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" + ]; abilityAccessCtrl.createAtManager().requestPermissionsFromUser(context, permissions).then(res => { let grantStatus: Array = res.authResults; let length: number = grantStatus.length; @@ -79,7 +86,7 @@ export async function UseAuth(context: common.UIAbilityContext): Promise { - dConsole.log("获取权限失败", JSON.stringify(err)) + dConsole.error("获取权限失败", JSON.stringify(err)) reject(false) }) }) diff --git a/entry/src/main/ets/pages/judgeSDK/utils/fileLog.ets b/entry/src/main/ets/pages/judgeSDK/utils/fileLog.ets index ad8cef7..52c713f 100644 --- a/entry/src/main/ets/pages/judgeSDK/utils/fileLog.ets +++ b/entry/src/main/ets/pages/judgeSDK/utils/fileLog.ets @@ -11,16 +11,16 @@ interface StuInfo { export default class FileLog { public folderPath?: string - public progressDataFd: number|undefined =undefined - public examJudgeWuxiDataFd: number|undefined = undefined - public examJudgeWuxiProgressDataFd: number|undefined = undefined - public plcDataFd: number|undefined = undefined - public examJudgeDataFd: number|undefined = undefined - public examJudgeCallbackDataFd: number|undefined = undefined - public examJudgeLogDataFd: number|undefined = undefined - public fourAndOneLogDataFd: number|undefined = undefined - public fourAndOneLogDataBytesFd: number|undefined = undefined - public examLineDataFd: number|undefined = undefined + public progressDataFd: number | undefined = undefined + public examJudgeWuxiDataFd: number | undefined = undefined + public examJudgeWuxiProgressDataFd: number | undefined = undefined + public plcDataFd: number | undefined = undefined + public examJudgeDataFd: number | undefined = undefined + public examJudgeCallbackDataFd: number | undefined = undefined + public examJudgeLogDataFd: number | undefined = undefined + public fourAndOneLogDataFd: number | undefined = undefined + public fourAndOneLogDataBytesFd: number | undefined = undefined + public examLineDataFd: number | undefined = undefined private fileUtil: FileUtils // 过程文件数据 public setExamProgressData = async (str: Object) => { @@ -115,7 +115,6 @@ export default class FileLog { constructor(context: common.UIAbilityContext) { const fileUtil = new FileUtils(context) this.fileUtil = fileUtil - } //关闭所有文件写入 diff --git a/entry/src/main/ets/utils/Common.ets b/entry/src/main/ets/utils/Common.ets index e62df1a..c2c789d 100644 --- a/entry/src/main/ets/utils/Common.ets +++ b/entry/src/main/ets/utils/Common.ets @@ -2,6 +2,8 @@ import dayTs from './Date'; import fs from '@ohos.file.fs'; import { BusinessError } from '@ohos.base'; import { CommonFileTag } from '../config'; +import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl'; +import Prompt from '@system.prompt'; enum timeType { fulltime = 1 @@ -150,7 +152,11 @@ export function ConvertDdmmToDecimalDegrees(ddmm: number): number { return degrees + minutes / 60; } -//对象深拷贝 +/** + * 深度克隆对象 + * @param target + * @returns + */ export function DeepClone(target: T): T { // 如果是对象,且不是原始值null if (typeof target === 'object' && target !== null) { @@ -230,4 +236,21 @@ export function FormatTimeFlexible(seconds: number): string { const formattedSeconds = secs.toString().padStart(2, '0'); return `${formattedHours}:${formattedMinutes}:${formattedSeconds}`; +} + +/** + * 申请授权 + * @param context 上下文 + * @param permissionList 需要申请的权限列表 + */ +export function ApplyForAuthorization(context: Context, permissionList: Array) { + const atManager = abilityAccessCtrl.createAtManager() + atManager.requestPermissionsFromUser(context, permissionList, (code, result) => { + if (result.authResults[0] === -1) { + Prompt.showToast({ + message: '请先授权', + duration: 3000, + }) + } + }) } \ No newline at end of file diff --git a/entry/src/main/ets/utils/FileUtils.ets b/entry/src/main/ets/utils/FileUtils.ets index 64ef65b..4c81b71 100644 --- a/entry/src/main/ets/utils/FileUtils.ets +++ b/entry/src/main/ets/utils/FileUtils.ets @@ -1,9 +1,11 @@ import common from '@ohos.app.ability.common' import fs from '@ohos.file.fs' -import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl' -import promptAction from '@ohos.promptAction' +import { Permissions } from '@ohos.abilityAccessCtrl' import { FileTag } from '../config' import { BusinessError } from '@ohos.base' +import { ApplyForAuthorization } from './Common' +import { dConsole } from './LogWorker' +import Prompt from '@system.prompt' export default class FileUtils { @@ -127,20 +129,12 @@ export default class FileUtils { 'ohos.permission.READ_MEDIA', 'ohos.permission.WRITE_MEDIA' ] - const atManager = abilityAccessCtrl.createAtManager() - atManager.requestPermissionsFromUser(this.context, permissions, (code, result) => { - if (result.authResults[0] === -1) { - promptAction.showToast({ - message: '请先授权', - duration: 3000, - }) - } - }) + ApplyForAuthorization(this.context, permissions) } private handleError(message: string, error: BusinessError, filePath: string): void { - console.error(FileTag, `${message} ${filePath} ${JSON.stringify(error)}`) - promptAction.showToast({ + dConsole.error(FileTag, `${message} ${filePath} ${JSON.stringify(error)}`) + Prompt.showToast({ message: `${message} ${filePath} ${JSON.stringify(error)}`, duration: 4000, })