在开发应用时,需要获取应用包申请权限信息,系统提供了bundleManager.getBundleInfoForSelf接口去获取应用包权限信息,但接口返回后获取的appinfo信息中permissions为空值,是什么原因?
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION; bundleManager.getBundleInfoForSelf(this.bundleFlags).then((data) => { let permissions = JSON.stringify(data.reqPermissionDetails); hilog.info(0x0000, 'test', `permissions: ${permissions}`); })
添加包信息标志GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION,以获取包申请权限信息。
import { bundleManager } from '@kit.AbilityKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { BusinessError } from '@kit.BasicServicesKit'; @Entry @Component struct GetBundleInfo { getInfo() { let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION; bundleManager.getBundleInfoForSelf(bundleFlags).then((data) => { let permissions = JSON.stringify(data.reqPermissionDetails); hilog.info(0x0000, 'TAG', 'permissions:' + permissions); }).catch((err: BusinessError) => { hilog.error(0x0000, 'TAG', err.message); }); } build() { Column() { Button('点击获取包申请权限信息') .fontSize(30) .onClick(() => { this.getInfo(); }); } .width('100%') .height('100%') .justifyContent(FlexAlign.Center); } }