fix: 授权代码优化

This commit is contained in:
wangzhongjie 2025-06-25 10:59:51 +08:00
parent 3f6137f4f2
commit 84bf4184e3

View File

@ -4,7 +4,6 @@ import { BusinessError } from '@ohos.base';
import { CommonFileTag } from '../config';
import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl';
import Prompt from '@system.prompt';
import { dConsole } from './LogWorker';
import common from '@ohos.app.ability.common';
enum timeType {
@ -263,35 +262,26 @@ export function ApplyForAuthorization(context: Context, permissionList: Array<Pe
* @return 返回一个 Promise解析为 true 如果授权成功,否则为 false
*/
export async function UseAuth(context: common.UIAbilityContext): Promise<boolean> {
dConsole.log("权限授权开始1")
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"
];
dConsole.log("权限授权开始2")
abilityAccessCtrl.createAtManager().requestPermissionsFromUser(context, permissions).then(res => {
let grantStatus: Array<number> = res.authResults;
let length: number = grantStatus.length;
dConsole.log("权限", length)
dConsole.log("权限状态", JSON.stringify(grantStatus))
resolve(true)
for (let i = 0; i < length; i++) {
if (grantStatus[i] !== 0) {
reject(false)
return;
}
}
}).catch((err: BusinessError) => {
dConsole.error("获取权限失败", JSON.stringify(err))
reject(false)
})
})
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"
];
try {
const res = await abilityAccessCtrl.createAtManager().requestPermissionsFromUser(context, permissions);
const grantStatus = res.authResults;
if (grantStatus.every(status => status === 0)) {
return true;
} else {
return false;
}
} catch (err) {
return false;
}
}