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