PermissionUtils.ets 3.57 KB
// import { abilityAccessCtrl, bundleManager, common, Permissions, Want } from '@kit.AbilityKit'
// import { BusinessError } from '@kit.BasicServicesKit'
// import { AppUtils } from './AppUtils'
// import { Logger } from './Logger'
//
// /**
//  * 权限工具类
//  * */
// export class PermissionUtils {
//   //相机权限
//   static CAMERA: Permissions = 'ohos.permission.CAMERA'
//   //文件权限
//   static READ_MEDIA: Permissions = 'ohos.permission.READ_MEDIA'
//   static WRITE_MEDIA: Permissions = 'ohos.permission.WRITE_MEDIA'
//   private static tokenId: number = 0
//
//   /**检查权限是否授权*/
//   static async checkPermissions(permission: Permissions): Promise<boolean> {
//     let hasPermissions = false;
//     let grantStatus: abilityAccessCtrl.GrantStatus = await PermissionUtils.checkAccessToken(permission);
//
//     if (grantStatus === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED) {
//       // 已经授权,可以继续访问目标操作
//       hasPermissions = true;
//     } else {
//       hasPermissions = false;
//       // 申请日历权限
//     }
//     return hasPermissions;
//   }
//
//   /**动态申请权限*/
//   static reqPermissionsFromUser(permissions: Array<Permissions>, component: Object): Promise<boolean> {
//
//     return new Promise((resolve, fail) => {
//       let context = getContext(component) as common.UIAbilityContext;
//       let atManager = abilityAccessCtrl.createAtManager();
//       atManager.requestPermissionsFromUser(context, permissions).then((data) => {
//         let grantStatus: Array<number> = data.authResults;
//         let length: number = grantStatus.length;
//
//         for (let i = 0; i < length; i++) {
//           if (grantStatus[i] === 0) {
//             // 用户授权,可以继续访问目标操作
//             resolve(true);
//           } else {
//             resolve(false)
//           }
//         }
//       }).catch((err: Error) => {
//         fail(err)
//       })
//     });
//   }
//
//   /**跳转设置页面*/
//   static openPermissionsInSystemSettings(context: Object): void {
//     let uiContext = getContext(context) as common.UIAbilityContext;
//     let wantInfo: Want = {
//       bundleName: 'com.huawei.hmos.settings',
//       abilityName: 'com.huawei.hmos.settings.MainAbility',
//       uri: 'application_info_entry',
//       parameters: {
//         pushParams: AppUtils.getPackageName(uiContext) // 打开指定应用的设置页面
//       }
//     }
//     uiContext.startAbility(wantInfo)
//   }
//
//   private static async checkAccessToken(permission: Permissions): Promise<abilityAccessCtrl.GrantStatus> {
//     let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();
//     let grantStatus: abilityAccessCtrl.GrantStatus = abilityAccessCtrl.GrantStatus.PERMISSION_DENIED;
//
//     // 获取应用程序的accessTokenID
//     if (PermissionUtils.tokenId == 0) {
//       try {
//         let bundleInfo: bundleManager.BundleInfo = await bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION);
//         let appInfo: bundleManager.ApplicationInfo = bundleInfo.appInfo;
//         PermissionUtils.tokenId = appInfo.accessTokenId;
//       } catch (error) {
//         const err: BusinessError = error as BusinessError;
//       }
//     }
//     // 校验应用是否被授予权限
//     try {
//       grantStatus = await atManager.checkAccessToken(PermissionUtils.tokenId, permission);
//     } catch (error) {
//       const err: BusinessError = error as BusinessError;
//     }
//
//     return grantStatus;
//   }
//
// }