# 包管ç†å¼€å‘常è§é—®é¢˜ ## å¦‚ä½•åˆ¤æ–æŸä¸ªåº”用是å¦ä¸ºç³»ç»Ÿåº”用(API 9) **解决措施** 使用bundleManager模å—çš„getApplicationInfo接å£ï¼ˆä»…系统应用å¯ä»¥ä½¿ç”¨ï¼‰èŽ·å–待检验应用的ApplicationInfoï¼Œæ ¹æ®ApplicationInfoä¸systemAppå—æ®µåˆ¤æ–,若为true,则是系统应用,å¦åˆ™ä¸ºéžç³»ç»Ÿåº”用。 **å‚考链接** [bundleManager模å—](../reference/apis-ability-kit/js-apis-bundleManager.md) ## 如何获å–应用é…置的versionCodeå’ŒversionName(API 9) **解决措施** 首先通过\@ohos.bundle.bundleManager模å—bundleManager.getBundleInfoForSelf()接å£èŽ·å–包信æ¯BundleInfo,然åŽåˆ†åˆ«é€šè¿‡BundleInfo.versionCodeã€BundleInfo.versionNameèŽ·å–æ‰€éœ€ä¿¡æ¯ã€‚ **代ç 示例** ``` import bundleManager from '@ohos.bundle.bundleManager'; import hilog from '@ohos.hilog'; let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT; try { bundleManager.getBundleInfoForSelf(bundleFlags).then((data) => { const versionCode = data.versionCode; const versionName = data.versionName; hilog.info(0x0000, 'testTag', `successfully. versionCode: ${versionCode}, versionName: ${versionName}`); }).catch(err => { hilog.error(0x0000, 'testTag', 'failed. Cause: %{public}s', err.message); }); } catch (err) { hilog.error(0x0000, 'testTag', 'failed: %{public}s', err.message); } ``` **å‚考链接** [getBundleInfoForSelf](../reference/apis-ability-kit/js-apis-bundleManager.md#bundlemanagergetbundleinfoforself) ## 如何获å–应用自身的bundleName(API 9) **解决措施** å¯ä»¥é€šè¿‡UIAbilityContext.abilityInfo.bundleName获å–。 **代ç 示例** ``` import common from '@ohos.app.ability.common'; const context = getContext(this) as common.UIAbilityContext console.log(`bundleName: ${context.abilityInfo.bundleName}`) ``` **å‚考链接** [UIAbilityContext](../reference/apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)ã€[AbilityInfo](../reference/apis-ability-kit/js-apis-bundleManager-abilityInfo.md) ## 如何获å–App版本å·ï¼Œç‰ˆæœ¬å,å±å¹•分辨率ç‰ä¿¡æ¯(API 9) **解决措施** 1. 通过\@ohos.bundle.bundleManager模å—ä¸çš„bundleManager查询bundleInfo。 在bundleInfoä¸åŒ…å«App版本å·ã€ç‰ˆæœ¬åä¿¡æ¯ã€‚ ``` import bundleManager from '@ohos.bundle.bundleManager'; ... bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION).then((bundleInfo)=>{ let versionName = bundleInfo.versionName;//应用版本å let versionNo = bundleInfo.versionCode;//åº”ç”¨ç‰ˆæœ¬å· }).catch((error)=>{ console.error("get bundleInfo failed,error is "+error) }) ``` 2. 在模å—\@ohos.app.ability.Configurationä¸èŽ·å–screenDensity,其ä¸åŒ…å«å±å¹•分辨率信æ¯ã€‚ ``` import common from '@ohos.app.ability.common'; ... let context = getContext(this) as common.UIAbilityContext; let screenDensity = context.config.screenDensity; ``` ## 如何获å–åº”ç”¨è‡ªèº«çš„æºæ–‡ä»¶è·¯å¾„(API 9) **解决措施** - æ–¹å¼ä¸€ï¼šä½¿ç”¨åº”用上下文context获å–。 ``` this.uiAbilityContext.abilityInfo.applicationInfo.codePath ``` - æ–¹å¼äºŒï¼šä½¿ç”¨\@ohos.bundle.bundleManager获å–。 1. 导入\@ohos.bundle.bundleManager模å—,使用bundleManager.getBundleInfoForSelf()获å–bundleInfoä¿¡æ¯ã€‚ 2. 使用bundleInfo.appInfo.codePath获å–åº”ç”¨æºæ–‡ä»¶è·¯å¾„。 ``` import bundleManager from '@ohos.bundle.bundleManager'; bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION).then((bundleInfo)=>{ this.sourcePath = bundleInfo.appInfo.codePath; }) ``` ## 能å¦åœ¨æœ¬åº”用ä¸èŽ·å–到其他应用的HAP包信æ¯(API 9) **问题现象** å¦‚ä½•æŸ¥è¯¢ç³»ç»Ÿå†…å…¶ä»–åº”ç”¨çš„ä¿¡æ¯ **解决措施** 查询系统内其他应用信æ¯çš„APIæš‚æ—¶åªæä¾›ç»™ç³»ç»Ÿåº”ç”¨ä½¿ç”¨ï¼Œå…·ä½“ä½¿ç”¨æ–¹æ³•ï¼š - 查询系统内指定应用信æ¯éœ€è¦èŽ·å–normal级æƒé™ohos.permission.GET_BUNDLE_INFO,使用接å£bundleManager.getApplicationInfo()。 - 查询系统内所有应用信æ¯éœ€è¦èŽ·å–system_basic级æƒé™ohos.permission.GET_BUNDLE_INFO_PRIVILEGED,使用接å£bundleManager.getAllApplicationInfo()。 **å‚考链接** [@ohos.bundle.bundleManager \(bundleManager模å—\)](../reference/apis-ability-kit/js-apis-bundleManager.md) ## 如何查询进程的pid(API 9) **解决措施** å¯ä»¥é€šè¿‡æŽ¥å£\@ohos.processæ¥èŽ·å–。 **代ç 示例** ``` import process from '@ohos.process'; private pid = process.pid; ``` **å‚考链接** [@ohos.process (获å–进程相关的信æ¯)](../reference/apis-arkts/js-apis-process.md) ## 如何让最大化按钮ä¸å¯ç”¨(API 9) **解决措施** å¯ä»¥é€šè¿‡supportWindowModeså—æ®µåŽ»æŒ‡å®šæ˜¯å¦æ˜¾ç¤ºã€‚ - full_screen表示支æŒå…¨å±æ˜¾ç¤º - split表示支æŒåˆ†å±æ˜¾ç¤º - floating表示支æŒçª—å£åŒ–显示 **代ç 示例** ``` "abilities": [ { "name": "EntryAbility", "srcEntry": "./ets/entryability/EntryAbility.ets", "description": "$string:EntryAbility_desc", "icon": "$media:icon", "label": "$string:EntryAbility_label", "startWindowIcon": "$media:icon", "startWindowBackground": "$color:start_window_background", "exported": true, "supportWindowMode": ["split", "floating"], "skills": [ { "entities": [ "entity.system.home" ], "actions": [ "action.system.home" ] } ] } ] ``` **å‚考链接** [supportWindowModeså‚考文档](../reference/apis-ability-kit/js-apis-bundleManager-abilityInfo.md)