2025-03-17 15:23:25 +08:00
|
|
|
import common from "@ohos.app.ability.common";
|
|
|
|
|
import FileUtil from "../../common/utils/File";
|
|
|
|
|
import { GlobalConfig } from "../../config";
|
|
|
|
|
import Prompt from "@system.prompt";
|
2025-03-24 10:45:28 +08:00
|
|
|
import {
|
|
|
|
|
ApiResponseType,
|
|
|
|
|
BaseInfoType,
|
|
|
|
|
CarConfigurationParamsType,
|
|
|
|
|
ObtainCarExamInfoParams,
|
|
|
|
|
ObtainCarExamInfoRspBody,
|
|
|
|
|
TimeSynchronizationParams
|
|
|
|
|
} from "../../model";
|
2025-03-17 15:23:25 +08:00
|
|
|
import dayTs from "../../utils/Date";
|
2025-03-24 10:45:28 +08:00
|
|
|
import { obtainCarExamInfo, timeSynchronization } from "../../api";
|
2025-03-17 17:55:40 +08:00
|
|
|
import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl';
|
|
|
|
|
import { BusinessError } from "@ohos.base";
|
2025-03-24 10:45:28 +08:00
|
|
|
import App from "@system.app";
|
|
|
|
|
import systemTime from "@ohos.systemTime";
|
2025-03-17 15:23:25 +08:00
|
|
|
|
|
|
|
|
//获取设备信息
|
|
|
|
|
export async function GetDeviceInfo(context: common.UIAbilityContext): Promise<string> {
|
|
|
|
|
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')
|
|
|
|
|
};
|
2025-03-24 10:45:28 +08:00
|
|
|
let res: ApiResponseType = await obtainCarExamInfo(params)
|
2025-03-17 15:23:25 +08:00
|
|
|
if (res.obtainCarExamInfoRsp.body) {
|
2025-03-24 10:45:28 +08:00
|
|
|
const carInfo: ObtainCarExamInfoRspBody = res?.obtainCarExamInfoRsp?.body
|
2025-03-17 15:23:25 +08:00
|
|
|
carInfo.plateNo = decodeURIComponent(carInfo.plateNo)
|
|
|
|
|
AppStorage.setOrCreate('carInfo', carInfo)
|
|
|
|
|
}
|
2025-03-17 17:55:40 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export async function UseAuth(context: common.UIAbilityContext): Promise<boolean> {
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
const permissions: Array<Permissions> =
|
|
|
|
|
["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<number> = 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)
|
|
|
|
|
})
|
|
|
|
|
})
|
2025-03-24 10:45:28 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取时间同步
|
|
|
|
|
export async function SetCurrentTime(): Promise<void> {
|
|
|
|
|
let deviceNo: string = AppStorage.get<string>('deviceNo');
|
|
|
|
|
let baseInfo: BaseInfoType = AppStorage.get<BaseInfoType>('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)
|
|
|
|
|
}
|
2025-03-17 15:23:25 +08:00
|
|
|
}
|