import common from "@ohos.app.ability.common"; import FileUtil from "../../common/utils/File"; import { GlobalConfig } from "../../config"; import Prompt from "@system.prompt"; import { CarConfigurationParamsType, ObtainCarExamInfoParams } from "../../model"; import dayTs from "../../utils/Date"; import { obtainCarExamInfo } from "../../api"; import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl'; import { BusinessError } from "@ohos.base"; //获取设备信息 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') }; // TODO 待完善 let res: ESObject = await obtainCarExamInfo(params) if (res.obtainCarExamInfoRsp.body) { const carInfo: ESObject = 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) }) }) }