import common from "@ohos.app.ability.common"; import FileUtil from "../../common/utils/File"; import { GlobalConfig } from "../../config"; import Prompt from "@system.prompt"; import { ApiResponseType, BaseInfoType, CarConfigurationParamsType, ObtainCarExamInfoParams, ObtainCarExamInfoRspBody, TimeSynchronizationParams } from "../../model"; import dayTs from "../../utils/Date"; import { obtainCarExamInfo, timeSynchronization } from "../../api"; import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl'; import { BusinessError } from "@ohos.base"; import App from "@system.app"; import systemTime from "@ohos.systemTime"; //获取设备信息 export async function GetDeviceInfo(context: common.UIAbilityContext): Promise { return new Promise(async (resolve, reject) => { const fileUtil = new FileUtil(context) const data = await fileUtil.readFile(GlobalConfig.comoonfileWriteAddress + '/config/deviceNo.txt'); if (data === '' || data === undefined) { Prompt.showToast({ message: "请先进行设备注册!", duration: 3000 }) AppStorage.setOrCreate('type', 1) AppStorage.setOrCreate('title', '请先进行设备注册') resolve("") } else { const fileData: CarConfigurationParamsType = JSON.parse(data) AppStorage.setOrCreate('deviceNo', fileData.deviceName) resolve(fileData.deviceName) } }) } export async function GetCarInfo() { let date = new Date(); let params: ObtainCarExamInfoParams = { time: dayTs(date).format("YYYY-MM-DD HH:mm:ss"), deviceNo: AppStorage.get('deviceNo') }; let res: ApiResponseType = await obtainCarExamInfo(params) if (res.obtainCarExamInfoRsp.body) { const carInfo: ObtainCarExamInfoRspBody = res?.obtainCarExamInfoRsp?.body carInfo.plateNo = decodeURIComponent(carInfo.plateNo) AppStorage.setOrCreate('carInfo', carInfo) } } 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']; abilityAccessCtrl.createAtManager().requestPermissionsFromUser(context, permissions).then(res => { let grantStatus: Array = res.authResults; let length: number = grantStatus.length; for (let i = 0; i < length; i++) { if (grantStatus[i] === 0) { // 用户授权,可以继续访问目标操作 resolve(true) } else { reject(false) // 用户拒绝授权,提示用户必须授权才能访问当前页面的功能,并引导用户到系统设置中打开相应的权限 return; } } }).catch((err: BusinessError) => { console.log("获取权限失败", JSON.stringify(err)) reject(false) }) }) } //获取时间同步 export async function SetCurrentTime(): Promise { let deviceNo: string = AppStorage.get('deviceNo'); let baseInfo: BaseInfoType = AppStorage.get('baseInfo') let params: TimeSynchronizationParams = { time: dayTs(new Date()).format("YYYY-MM-DD HH:mm:ss"), deviceNo, version: baseInfo.version, judgeVersion: baseInfo.judgeVersion } let res: ApiResponseType = await timeSynchronization(params); AppStorage.setOrCreate('timeInfo', res.timeSynchronizationRsp.body) let currentTime = res.timeSynchronizationRsp.head.time; let times = new Date(currentTime).getTime(); try { await systemTime.setTime(times) } catch (error) { console.log('时间同步失败', error) } }