71 lines
2.8 KiB
Plaintext
Raw Normal View History

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<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')
};
// 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<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)
})
})
}