Showing
2 changed files
with
95 additions
and
95 deletions
| @@ -36,4 +36,4 @@ export { UserDataLocal } from './src/main/ets/utils/UserDataLocal' | @@ -36,4 +36,4 @@ export { UserDataLocal } from './src/main/ets/utils/UserDataLocal' | ||
| 36 | 36 | ||
| 37 | export { NumberFormatterUtils } from './src/main/ets/utils/NumberFormatterUtils' | 37 | export { NumberFormatterUtils } from './src/main/ets/utils/NumberFormatterUtils' |
| 38 | 38 | ||
| 39 | -export { PermissionUtils } from './src/main/ets/utils/PermissionUtils' | ||
| 39 | +// export { PermissionUtils } from './src/main/ets/utils/PermissionUtils' |
| 1 | -import { abilityAccessCtrl, bundleManager, common, Permissions, Want } from '@kit.AbilityKit' | ||
| 2 | -import { BusinessError } from '@kit.BasicServicesKit' | ||
| 3 | -import { AppUtils } from './AppUtils' | ||
| 4 | -import { Logger } from './Logger' | ||
| 5 | - | ||
| 6 | -/** | ||
| 7 | - * 权限工具类 | ||
| 8 | - * */ | ||
| 9 | -export class PermissionUtils { | ||
| 10 | - //相机权限 | ||
| 11 | - static CAMERA: Permissions = 'ohos.permission.CAMERA' | ||
| 12 | - //文件权限 | ||
| 13 | - static READ_MEDIA: Permissions = 'ohos.permission.READ_MEDIA' | ||
| 14 | - static WRITE_MEDIA: Permissions = 'ohos.permission.WRITE_MEDIA' | ||
| 15 | - private static tokenId: number = 0 | ||
| 16 | - | ||
| 17 | - /**检查权限是否授权*/ | ||
| 18 | - static async checkPermissions(permission: Permissions): Promise<boolean> { | ||
| 19 | - let hasPermissions = false; | ||
| 20 | - let grantStatus: abilityAccessCtrl.GrantStatus = await PermissionUtils.checkAccessToken(permission); | ||
| 21 | - | ||
| 22 | - if (grantStatus === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED) { | ||
| 23 | - // 已经授权,可以继续访问目标操作 | ||
| 24 | - hasPermissions = true; | ||
| 25 | - } else { | ||
| 26 | - hasPermissions = false; | ||
| 27 | - // 申请日历权限 | ||
| 28 | - } | ||
| 29 | - return hasPermissions; | ||
| 30 | - } | ||
| 31 | - | ||
| 32 | - /**动态申请权限*/ | ||
| 33 | - static reqPermissionsFromUser(permissions: Array<Permissions>, component: Object): Promise<boolean> { | ||
| 34 | - | ||
| 35 | - return new Promise((resolve, fail) => { | ||
| 36 | - let context = getContext(component) as common.UIAbilityContext; | ||
| 37 | - let atManager = abilityAccessCtrl.createAtManager(); | ||
| 38 | - atManager.requestPermissionsFromUser(context, permissions).then((data) => { | ||
| 39 | - let grantStatus: Array<number> = data.authResults; | ||
| 40 | - let length: number = grantStatus.length; | ||
| 41 | - | ||
| 42 | - for (let i = 0; i < length; i++) { | ||
| 43 | - if (grantStatus[i] === 0) { | ||
| 44 | - // 用户授权,可以继续访问目标操作 | ||
| 45 | - resolve(true); | ||
| 46 | - } else { | ||
| 47 | - resolve(false) | ||
| 48 | - } | ||
| 49 | - } | ||
| 50 | - }).catch((err: Error) => { | ||
| 51 | - fail(err) | ||
| 52 | - }) | ||
| 53 | - }); | ||
| 54 | - } | ||
| 55 | - | ||
| 56 | - /**跳转设置页面*/ | ||
| 57 | - static openPermissionsInSystemSettings(context: Object): void { | ||
| 58 | - let uiContext = getContext(context) as common.UIAbilityContext; | ||
| 59 | - let wantInfo: Want = { | ||
| 60 | - bundleName: 'com.huawei.hmos.settings', | ||
| 61 | - abilityName: 'com.huawei.hmos.settings.MainAbility', | ||
| 62 | - uri: 'application_info_entry', | ||
| 63 | - parameters: { | ||
| 64 | - pushParams: AppUtils.getPackageName(uiContext) // 打开指定应用的设置页面 | ||
| 65 | - } | ||
| 66 | - } | ||
| 67 | - uiContext.startAbility(wantInfo) | ||
| 68 | - } | ||
| 69 | - | ||
| 70 | - private static async checkAccessToken(permission: Permissions): Promise<abilityAccessCtrl.GrantStatus> { | ||
| 71 | - let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager(); | ||
| 72 | - let grantStatus: abilityAccessCtrl.GrantStatus = abilityAccessCtrl.GrantStatus.PERMISSION_DENIED; | ||
| 73 | - | ||
| 74 | - // 获取应用程序的accessTokenID | ||
| 75 | - if (PermissionUtils.tokenId == 0) { | ||
| 76 | - try { | ||
| 77 | - let bundleInfo: bundleManager.BundleInfo = await bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION); | ||
| 78 | - let appInfo: bundleManager.ApplicationInfo = bundleInfo.appInfo; | ||
| 79 | - PermissionUtils.tokenId = appInfo.accessTokenId; | ||
| 80 | - } catch (error) { | ||
| 81 | - const err: BusinessError = error as BusinessError; | ||
| 82 | - } | ||
| 83 | - } | ||
| 84 | - // 校验应用是否被授予权限 | ||
| 85 | - try { | ||
| 86 | - grantStatus = await atManager.checkAccessToken(PermissionUtils.tokenId, permission); | ||
| 87 | - } catch (error) { | ||
| 88 | - const err: BusinessError = error as BusinessError; | ||
| 89 | - } | ||
| 90 | - | ||
| 91 | - return grantStatus; | ||
| 92 | - } | ||
| 93 | - | ||
| 94 | -} | ||
| 1 | +// import { abilityAccessCtrl, bundleManager, common, Permissions, Want } from '@kit.AbilityKit' | ||
| 2 | +// import { BusinessError } from '@kit.BasicServicesKit' | ||
| 3 | +// import { AppUtils } from './AppUtils' | ||
| 4 | +// import { Logger } from './Logger' | ||
| 5 | +// | ||
| 6 | +// /** | ||
| 7 | +// * 权限工具类 | ||
| 8 | +// * */ | ||
| 9 | +// export class PermissionUtils { | ||
| 10 | +// //相机权限 | ||
| 11 | +// static CAMERA: Permissions = 'ohos.permission.CAMERA' | ||
| 12 | +// //文件权限 | ||
| 13 | +// static READ_MEDIA: Permissions = 'ohos.permission.READ_MEDIA' | ||
| 14 | +// static WRITE_MEDIA: Permissions = 'ohos.permission.WRITE_MEDIA' | ||
| 15 | +// private static tokenId: number = 0 | ||
| 16 | +// | ||
| 17 | +// /**检查权限是否授权*/ | ||
| 18 | +// static async checkPermissions(permission: Permissions): Promise<boolean> { | ||
| 19 | +// let hasPermissions = false; | ||
| 20 | +// let grantStatus: abilityAccessCtrl.GrantStatus = await PermissionUtils.checkAccessToken(permission); | ||
| 21 | +// | ||
| 22 | +// if (grantStatus === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED) { | ||
| 23 | +// // 已经授权,可以继续访问目标操作 | ||
| 24 | +// hasPermissions = true; | ||
| 25 | +// } else { | ||
| 26 | +// hasPermissions = false; | ||
| 27 | +// // 申请日历权限 | ||
| 28 | +// } | ||
| 29 | +// return hasPermissions; | ||
| 30 | +// } | ||
| 31 | +// | ||
| 32 | +// /**动态申请权限*/ | ||
| 33 | +// static reqPermissionsFromUser(permissions: Array<Permissions>, component: Object): Promise<boolean> { | ||
| 34 | +// | ||
| 35 | +// return new Promise((resolve, fail) => { | ||
| 36 | +// let context = getContext(component) as common.UIAbilityContext; | ||
| 37 | +// let atManager = abilityAccessCtrl.createAtManager(); | ||
| 38 | +// atManager.requestPermissionsFromUser(context, permissions).then((data) => { | ||
| 39 | +// let grantStatus: Array<number> = data.authResults; | ||
| 40 | +// let length: number = grantStatus.length; | ||
| 41 | +// | ||
| 42 | +// for (let i = 0; i < length; i++) { | ||
| 43 | +// if (grantStatus[i] === 0) { | ||
| 44 | +// // 用户授权,可以继续访问目标操作 | ||
| 45 | +// resolve(true); | ||
| 46 | +// } else { | ||
| 47 | +// resolve(false) | ||
| 48 | +// } | ||
| 49 | +// } | ||
| 50 | +// }).catch((err: Error) => { | ||
| 51 | +// fail(err) | ||
| 52 | +// }) | ||
| 53 | +// }); | ||
| 54 | +// } | ||
| 55 | +// | ||
| 56 | +// /**跳转设置页面*/ | ||
| 57 | +// static openPermissionsInSystemSettings(context: Object): void { | ||
| 58 | +// let uiContext = getContext(context) as common.UIAbilityContext; | ||
| 59 | +// let wantInfo: Want = { | ||
| 60 | +// bundleName: 'com.huawei.hmos.settings', | ||
| 61 | +// abilityName: 'com.huawei.hmos.settings.MainAbility', | ||
| 62 | +// uri: 'application_info_entry', | ||
| 63 | +// parameters: { | ||
| 64 | +// pushParams: AppUtils.getPackageName(uiContext) // 打开指定应用的设置页面 | ||
| 65 | +// } | ||
| 66 | +// } | ||
| 67 | +// uiContext.startAbility(wantInfo) | ||
| 68 | +// } | ||
| 69 | +// | ||
| 70 | +// private static async checkAccessToken(permission: Permissions): Promise<abilityAccessCtrl.GrantStatus> { | ||
| 71 | +// let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager(); | ||
| 72 | +// let grantStatus: abilityAccessCtrl.GrantStatus = abilityAccessCtrl.GrantStatus.PERMISSION_DENIED; | ||
| 73 | +// | ||
| 74 | +// // 获取应用程序的accessTokenID | ||
| 75 | +// if (PermissionUtils.tokenId == 0) { | ||
| 76 | +// try { | ||
| 77 | +// let bundleInfo: bundleManager.BundleInfo = await bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION); | ||
| 78 | +// let appInfo: bundleManager.ApplicationInfo = bundleInfo.appInfo; | ||
| 79 | +// PermissionUtils.tokenId = appInfo.accessTokenId; | ||
| 80 | +// } catch (error) { | ||
| 81 | +// const err: BusinessError = error as BusinessError; | ||
| 82 | +// } | ||
| 83 | +// } | ||
| 84 | +// // 校验应用是否被授予权限 | ||
| 85 | +// try { | ||
| 86 | +// grantStatus = await atManager.checkAccessToken(PermissionUtils.tokenId, permission); | ||
| 87 | +// } catch (error) { | ||
| 88 | +// const err: BusinessError = error as BusinessError; | ||
| 89 | +// } | ||
| 90 | +// | ||
| 91 | +// return grantStatus; | ||
| 92 | +// } | ||
| 93 | +// | ||
| 94 | +// } |
-
Please register or login to post a comment