主要使用的是@kit.IPCKit的rpc来获取,并通过@kit.AbilityKit导出的abilityAccessCtrl来检查
import { rpc } from '@kit.IPCKit'
import { abilityAccessCtrl, Permissions } from '@kit.AbilityKit'
import { BusinessError } from '@kit.BasicServicesKit'
class Project {
// 创建程序访问控制管理
myManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager()
// 获取id
tokenId: number = rpc.IPCSkeleton.getCallingTokenId()
check(permissionName: Permissions): Promise<boolean> {
return this.atManager.checkAccessToken(this.callerTokenId, permissionName)
.then((status: abilityAccessCtrl.GrantStatus) => {
if (status == -1) {
return false
} else {
return true
}
})
.catch((error: BusinessError) => {
return false
})
.finally(() => {
return false
})
}
request(context: Context, permissionList: Array<Permissions>) {
return this.atManager.requestPermissionsFromUser(context, permissionList)
}
}