Bundle Management Development
How do I determine whether an application is a system application? (API version 9)
Solution
Use bundleManager.getApplicationInfo (available only for system applications) to obtain application information, and check the value of systemApp in the information. The application is a system application if the value is true.
References
How do I obtain the version code and version name of an application? (API version 9)
Solution
Use bundleManager.getBundleInfoForSelf() to obtain the bundle information, which contains the version code (specified by BundleInfo.versionCode) and version name (specified by BundleInfo.versionName) .
Example
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);
}
References
How do I obtain the bundle name of the current application? (API version 9)
Solution
Obtain the bundle name from UIAbilityContext.abilityInfo.bundleName.
Example
import common from '@ohos.app.ability.common';
const context = getContext(this) as common.UIAbilityContext
console.log(`bundleName: ${context.abilityInfo.bundleName}`)
References
UIAbilityContext and AbilityInfo
How do I obtain the application version number, version name, and screen resolution? (API version 9)
Solution
-
Obtain the bundle information from the @ohos.bundle.bundleManager module.
The bundle information contains the application version number and version name.
import bundleManager from '@ohos.bundle.bundleManager'; ... bundleManager.getBundleInfoForSelf(bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION).then((bundleInfo)=>{ let versionName = bundleInfo.versionName; // Application version name. let versionNo = bundleInfo.versionCode; // Application version number. }).catch((error)=>{ console.error("get bundleInfo failed,error is "+error) })
-
Obtain screenDensity from the @ohos.app.ability.Configuration module. screenDensity contains the screen resolution information.
import common from '@ohos.app.ability.common'; ... let context = getContext(this) as common.UIAbilityContext; let screenDensity = context.config.screenDensity;
How do I obtain the source file path of the current application? (API version 9)
Solution
-
Method 1: Use the application context to obtain the source file path.
this.uiAbilityContext.abilityInfo.applicationInfo.codePath
-
Method 2: Use @ohos.bundle.bundleManager to obtain the source file path.
- Import the @ohos.bundle.bundleManager module and use bundleManager.getBundleInfoForSelf() to obtain the bundle information.
- Obtain the source file path from 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; })
Can I obtain the HAP information of other applications from the current application? (API version 9)
Symptom
Solution
Currently, only system applications can call the API to query information about other applications.
-
To query information about an application in the system, you must obtain the normal-level permission ohos.permission.GET_BUNDLE_INFO and call the bundleManager.getApplicationInfo() API.
-
To query information about all applications in the system, you must obtain the system_basic-level permission ohos.permission.GET_BUNDLE_INFO_PRIVILEGED and call the bundleManager.getAllApplicationInfo() API.
References
@ohos.bundle.bundleManager (bundleManager)
How do I query the PID of a process? (API version 9)
Solution
You can obtain the PID through the @ohos.process interface.
Example
import process from '@ohos.process';
private pid = process.pid;
References
@ohos.process (Obtaining Process Information)
How do I disable the maximize button? (API version 9)
Solution
You can use the supportWindowModes field to specify whether to display the maximize button.
-
full_screen means that a window in full-screen mode is supported.
-
split means that a window in split-screen mode is supported.
-
floating means that a floating window is supported.
Example
"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"
]
}
]
}
]
References