diff --git a/README.md b/README.md
index 602a868e0c5966d52b77eff891a6f32232c7d579..9351f7f58964229343c0dbfc3c9875e212a4a54f 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,7 @@ This repository stores device and application development documents provided by
- master: the latest version.
- - OpenHarmony 3.2 Beta3. [Learn more](en/release-notes/OpenHarmony-v3.2-beta3.md)
+ - OpenHarmony 3.2 Beta5. [Learn more](en/release-notes/OpenHarmony-v3.2-beta5.md)
- OpenHarmony 3.1 Release. [Learn more](en/release-notes/OpenHarmony-v3.1-release.md)
@@ -34,7 +34,7 @@ This repository stores device and application development documents provided by
### Historical Stable Versions
-OpenHarmony_v1.x_release: OpenHarmony v1.1.5 LTS. [Learn more](en/release-notes/OpenHarmony-v1.1.5-LTS.md)
+OpenHarmony_v1.x_release: OpenHarmony 1.1.5 LTS. [Learn more](en/release-notes/OpenHarmony-v1.1.5-LTS.md)
[More versions](en/release-notes/)
@@ -51,6 +51,6 @@ You can evaluate available documents, make simple modifications, provide feedbac
Excellent contributors will be awarded and the contributions will be publicized in the developer community.
-- Mail list: docs@openharmony.io
+- Mailing list: docs@openharmony.io
- Zulip group: documentation_sig
\ No newline at end of file
diff --git a/en/OpenHarmony-Overview.md b/en/OpenHarmony-Overview.md
index 5fbc55f9a12d9c774f7a7295d68cb7b2659852cd..594fb355e417b047d93b1de9d413540a2c839190 100644
--- a/en/OpenHarmony-Overview.md
+++ b/en/OpenHarmony-Overview.md
@@ -183,7 +183,7 @@ For details about how to obtain the source code of OpenHarmony, see [Source Code
## Hands-On Tutorials
-[Samples](https://gitee.com/openharmony/app_samples)
+[Samples](https://gitee.com/openharmony/applications_app_samples)
[Codelabs](https://gitee.com/openharmony/codelabs)
diff --git a/en/application-dev/application-dev-guide.md b/en/application-dev/application-dev-guide.md
index b9bc5bb92ed39b292ca4eede0023989364eb473c..650eaf0b956e544bd19e8892b0c6946a6839beb5 100644
--- a/en/application-dev/application-dev-guide.md
+++ b/en/application-dev/application-dev-guide.md
@@ -24,7 +24,7 @@ First thing first, familiarize yourself with the two cornerstone frameworks in O
All applications should be developed on top of these frameworks.
Then, equip yourself for developing the key features, with the following guidelines:
-- [Common Event and Notification](notification/notification-brief.md)
+- [Common Event and Notification](notification/notification-overview.md)
- [Window Manager](windowmanager/window-overview.md)
- [WebGL](webgl/webgl-overview.md)
- [Media](media/audio-overview.md)
diff --git a/en/application-dev/application-models/Readme-EN.md b/en/application-dev/application-models/Readme-EN.md
index 2a920300623358bc25f7256d6af8b957665bc600..b7ffad31601a940e3025dc7c01a45bb1a8202d42 100644
--- a/en/application-dev/application-models/Readme-EN.md
+++ b/en/application-dev/application-models/Readme-EN.md
@@ -17,8 +17,11 @@
- ExtensionAbility Component
- [ExtensionAbility Component Overview](extensionability-overview.md)
- [ServiceExtensionAbility](serviceextensionability.md)
- - [DataShareExtensionAbility](datashareextensionability.md)
+ - [DataShareExtensionAbility (System Applications Only)](datashareextensionability.md)
- [FormExtensionAbility (Widget)](widget-development-stage.md)
+ - [StaticSubscriberExtensionAbility](static-subscriber-extension-ability.md)
+ - [AccessibilityExtensionAbility](accessibilityextensionability.md)
+ - [WindowExtensionAbility](windowextensionability.md)
- [AbilityStage Component Container](abilitystage.md)
- [Context](application-context-stage.md)
- Want
@@ -31,8 +34,8 @@
- [Component Startup Rules](component-startup-rules.md)
- Inter-Device Application Component Interaction (Continuation)
- [Continuation Overview](inter-device-interaction-hop-overview.md)
- - [Cross-Device Migration](hop-cross-device-migration.md)
- - [Multi-device Collaboration](hop-multi-device-collaboration.md)
+ - [Cross-Device Migration (System Applications Only)](hop-cross-device-migration.md)
+ - [Multi-device Collaboration (System Applications Only)](hop-multi-device-collaboration.md)
- IPC
- [Process Model](process-model-stage.md)
- Common Events
@@ -62,7 +65,7 @@
- [Creating a PageAbility](create-pageability.md)
- [Starting a Local PageAbility](start-local-pageability.md)
- [Stopping a PageAbility](stop-pageability.md)
- - [Starting a Remote PageAbility](start-remote-pageability.md)
+ - [Starting a Remote PageAbility (System Applications Only)](start-remote-pageability.md)
- [Starting a Specified Page](start-page.md)
- [Window Properties](window-properties.md)
- [Requesting Permissions](request-permissions.md)
diff --git a/en/application-dev/application-models/accessibilityextensionability.md b/en/application-dev/application-models/accessibilityextensionability.md
new file mode 100644
index 0000000000000000000000000000000000000000..4c912d5e58a1b8083ba1037cccf449dd953d245c
--- /dev/null
+++ b/en/application-dev/application-models/accessibilityextensionability.md
@@ -0,0 +1,118 @@
+# AccessibilityExtensionAbility Development
+
+The **AccessibilityExtensionAbility** module provides accessibility extension capabilities based on the **ExtensionAbility** framework. You can develop your accessibility applications by applying the **AccessibilityExtensionAbility** template to enhance usability.
+
+> **Environment Requirements**
+>
+> IDE: DevEco Studio 3.0 Beta3 (3.0.0.900) or later
+>
+> SDK: API version 9 or later
+>
+> Model: stage
+
+This document is organized as follows:
+
+- [Creating an AccessibilityExtAbility File](#creating-an-accessibility-extension-service)
+- [Processing an Accessibility Event](#processing-an-accessibility-event)
+- [Declaring Capabilities of Accessibility Extension Services](#declaring-capabilities-of-accessibility-extension-services)
+- [Enabling a Custom Accessibility Extension Service](#enabling-a-custom-accessibility-extension-service)
+
+## Creating an Accessibility Extension Service
+
+You can create an accessibility extension service by creating a project from scratch or adding the service to an existing project.
+
+### Creating a Project
+
+Perform the following steps in DevEco Studio:
+1. From the upper left corner of DevEco Studio, choose **File** > **New** > **Create Project**.
+2. By following the project creation wizard, click the **OpenHarmony** tab, select the **Empty Ability** template, and then click **Next**.
+3. Set **Project type** to **Application**, **Compile API** (or **Compile SDK**, depending on the version used) to **9**, and **Model** to **Stage**, and then click **Finish**.
+
+### Creating an AccessibilityExtAbility File
+
+To add an accessibility extension service to a project, create the **AccessibilityExtAbility** folder in the **ets** folder of the project, create the **AccessibilityExtAbility.ts** file in the new folder, and add the following code to the new file:
+
+```typescript
+import AccessibilityExtensionAbility from '@ohos.application.AccessibilityExtensionAbility';
+
+class AccessibilityExtAbility extends AccessibilityExtensionAbility {
+ onConnect() {
+ console.log('AccessibilityExtAbility onConnect');
+ }
+
+ onDisconnect() {
+ console.log('AccessibilityExtAbility onDisconnect');
+ }
+
+ onAccessibilityEvent(accessibilityEvent) {
+ console.log('AccessibilityExtAbility onAccessibilityEvent: ' + JSON.stringify(accessibilityEvent));
+ }
+}
+
+export default AccessibilityExtAbility;
+```
+
+The APIs defined in the file are as follows.
+
+| API| Description|
+| ---- | ---- |
+| onConnect(): void | Called when a connection with the extension service is set up.|
+| onDisconnect(): void | Called when the connection with the extension service is severed.|
+| onAccessibilityEvent(event: AccessibilityEvent): void | Called when an accessibility event occurs|
+
+## Processing an Accessibility Event
+
+You can process the service logic for accessibility events in the **onAccessibilityEvent()** API. For details about the events, see [AccessibilityEvent](../reference/apis/js-apis-application-accessibilityExtensionAbility.md#accessibilityevent). The following code snippet uses the **pageStateUpdate** event as an example.
+
+```typescript
+onAccessibilityEvent(accessibilityEvent) {
+ console.log('AccessibilityExtAbility onAccessibilityEvent: ' + JSON.stringify(accessibilityEvent));
+ if (accessibilityEvent.eventType === 'pageStateUpdate') {
+ console.log('AccessibilityExtAbility onAccessibilityEvent: pageStateUpdate');
+ // TODO: Develop custom logic.
+ }
+}
+```
+For an accessibility event, you can use the APIs of the [AccessibilityExtensionContext](../reference/apis/js-apis-inner-application-accessibilityExtensionContext.md) module to configure the concerned information, obtain root information, and inject gestures.
+
+You can also process physical key events in the accessibility extension service. For details, see [onKeyEvent](../reference/apis/js-apis-application-accessibilityExtensionAbility.md#accessibilityextensionabilityonkeyevent).
+
+## Declaring Capabilities of Accessibility Extension Services
+
+After developing the custom logic for an accessibility extension service, you must add the configuration information of the service to the corresponding module-level **module.json5** file in the project directory. In the file, the **srcEntrance** tag indicates the path to the accessibility extension service. Make sure the value of the **type** tag is fixed at **accessibility**. Otherwise, the connection to the service will fail.
+
+```json
+"extensionAbilities": [
+ {
+ "name": "AccessibilityExtAbility",
+ "srcEntrance": "./ets/AccessibilityExtAbility/AccessibilityExtAbility.ts",
+ "label": "$string:MainAbility_label",
+ "description": "$string:MainAbility_desc",
+ "type": "accessibility",
+ "metadata": [
+ {
+ "name": "ohos.accessibleability",
+ "resource": "$profile:accessibility_config"
+ }
+ ]
+ }
+]
+```
+**accessibility_config** is the specific configuration of the accessibility extension service. You need to create the **accessibility_config.json** file in **resources/base/profile/** and declare the [capabilities](../reference/apis/js-apis-accessibility.md#capability) of the service in the file.
+```json
+{
+ "accessibilityCapabilities": [
+ "retrieve",
+ "gesture"
+ ]
+}
+```
+## Enabling a Custom Accessibility Extension Service
+
+To enable or disable an accessibility extension service, run the following command:
+- To enable the service: **accessibility enable -a AccessibilityExtAbility -b com.example.demo -c rg**
+- To disable the service: **accessibility disable -a AccessibilityExtAbility -b com.example.demo**
+
+In the preceding commands, **AccessibilityExtAbility** indicates the name of the accessibility extension service, **com.example.demo** indicates the bundle name, and **rg** indicates the capabilities (**r** is short for retrieve).
+
+If the service is enabled or disabled successfully, the message "enable ability successfully" or "disable ability successfully" is displayed.
diff --git a/en/application-dev/application-models/application-component-configuration-stage.md b/en/application-dev/application-models/application-component-configuration-stage.md
index de9e29941b5ddcc9e29f62ddc039fb38b6bc54b6..bcf9b095464ba0110c35be9cfef44b078a091ffb 100644
--- a/en/application-dev/application-models/application-component-configuration-stage.md
+++ b/en/application-dev/application-models/application-component-configuration-stage.md
@@ -3,7 +3,8 @@
When developing an application, you may need to configure certain tags to identify the application, such as the bundle name and application icon. This topic describes key tags that need to be configured during application development. Icons and labels are usually configured together. There is the application icon, application label, entry icon, and entry label, which correspond to the **icon** and **label** fields in the [app.json5 file](../quick-start/app-configuration-file.md) and [module.json5 file](../quick-start/module-configuration-file.md). The application icon and label are used in **Settings**. For example, they are displayed in the application list in **Settings**. The entry icon is displayed on the device's home screen after the application is installed. The entry icon maps to a [UIAbility](uiability-overview.md) component. Therefore, an application can have multiple entry icons and labels. When you touch one of them, the corresponding UIAbility page is displayed.
-**Figure 1** Icons and labels
+
+ **Figure 1** Icons and labels

@@ -14,11 +15,11 @@ When developing an application, you may need to configure certain tags to identi
- **Configuring the application icon and label**
- The application icon is specified by the **icon** field in the [app.json5 file](../quick-start/app-configuration-file.md) in the **AppScope** directory of the project. The **icon** field must be set to the index of an image so that the image is displayed as the application icon. The application icon is usually displayed in an application list, for example, the application list in **Settings**.
+ You must configure an icon and label for an application on the stage model.
- The application label is specified by the **label** field in the [app.json5 file](../quick-start/app-configuration-file.md) in the **AppScope** module of the project. The **label** field specifies the application name displayed to users. It must be set to the index of a string resource.
+ The application icon is specified by the **icon** field in the [app.json5 file](../quick-start/app-configuration-file.md) in the **AppScope** directory of the project. The **icon** field must be set to the index of an image so that the image is displayed as the application icon.
- The **icon** and **label** fields in the **app.json5** file are under **app**, as follows:
+ The application label is specified by the **label** field in the [app.json5 file](../quick-start/app-configuration-file.md) in the **AppScope** module of the project. The **label** field specifies the application name displayed to users. It must be set to the index of a string resource.
```json
{
@@ -32,7 +33,9 @@ When developing an application, you may need to configure certain tags to identi
- **Configuring the entry icon and label**
- The entry icon and label are configured by specifying **icon** and **label** under **abilities** in the [module.json5 file](../quick-start/module-configuration-file.md). For example, if you want to display the icon and label of the UIAbility component on the home screen, add **entity.system.home** to **entities** and **action.system.home** to **actions** under **skills**. If the preceding fields are configured for multiple UIAbility components of an application, multiple icons and labels are displayed on the home screen, corresponding to their respective UIAbility component.
+ On the stage model, you can configure an entry icon and label for each application component. The entry icon and label are displayed on the home screen.
+
+ The entry icon is configured by specifying **icon** under **abilities** in the [module.json5 file](../quick-start/module-configuration-file.md). For example, if you want to display the icon of the UIAbility component on the home screen, add **entity.system.home** to **entities** and **ohos.want.action.home** to **actions** under **skills**. If this field is configured for multiple UIAbility components of an application, multiple icons are displayed on the home screen, corresponding to their respective UIAbility component.
```json
{
@@ -49,7 +52,7 @@ When developing an application, you may need to configure certain tags to identi
"entity.system.home"
],
"actions": [
- "action.system.home"
+ "ohos.want.action.home"
]
}
],
@@ -69,4 +72,3 @@ When developing an application, you may need to configure certain tags to identi
- **Configuring the module permission**
The **requestPermission** field in the [module.json5 file](../quick-start/module-configuration-file.md) is used to configure the permission information required by the module to access the protected part of the system or other applications. This field declares the name of the permission to request, the reason for requesting the permission, and the scenario where the permission is used.
-
diff --git a/en/application-dev/application-models/application-model-description.md b/en/application-dev/application-models/application-model-description.md
index de7e3045d79eff2c681291f8d4de55129d361245..0cdfa7323c6ef367a47a44e2c30104d3201ca159 100644
--- a/en/application-dev/application-models/application-model-description.md
+++ b/en/application-dev/application-models/application-model-description.md
@@ -14,7 +14,7 @@ The stage model is designed based on the following considerations, which make it
1. **Designed for complex applications**
- In the stage model, multiple application components share an ArkTS engine (VM running the programming language ArkTS) instance, making it easy for application components to share objects and status while requiring less memory.
-- The object-oriented development mode makes the code of complex applications easy to read, maintain, and scale.
+ - The object-oriented development mode makes the code of complex applications easy to read, maintain, and scale.
2. **Native support for [cross-device migration](hop-cross-device-migration.md) and [multi-device collaboration](hop-multi-device-collaboration.md) at the application component level**
@@ -48,13 +48,12 @@ In the stage model, multiple application components share the same ArkTS engine
The table below describes their differences in detail.
- **Table 1** Differences between the FA model and stage model
+**Table 1** Differences between the FA model and stage model
| Item| FA model| Stage model|
| -------- | -------- | -------- |
-| **Application component**| 1. Component classification - PageAbility: has the UI and supports user interaction. For details, see [PageAbility Component Overview](pageability-overview.md). - ServiceAbility: provides background services and has no UI. For details, see [ServiceAbility Component Overview](serviceability-overview.md). - DataAbility: provides the data sharing capability and has no UI. For details, see [DataAbility Component Overview](dataability-overview.md). 2. Development mode Application components are specified by exporting anonymous objects and fixed entry files. You cannot perform derivation. It is inconvenient for capability expansion.| 1. Component classification - UIAbility: has the UI and supports user interaction. For details, see [UIAbility Component Overview](uiability-overview.md). - ExtensionAbility: provides extension capabilities (such as widget and input methods) for specific scenarios. For details, see [ExtensionAbility Component Overview](extensionability-overview.md). 2. Development mode The object-oriented mode is used to provide open application components as classes. You can derive application components for capability expansion.|
-| **Process model**| There are two types of processes: 1. Main process 2. Rendering process For details, see [Process Model (FA Model)](process-model-fa.md). | There are three types of processes: 1. Main process 2. ExtensionAbility process 3. Rendering process For details, see [Process Model (Stage Model)](process-model-stage.md). |
-| **Thread model**| 1. ArkTS engine instance creation A process can run multiple application component instances, and each application component instance runs in an independent ArkTS engine instance. 2. Thread model Each ArkTS engine instance is created on an independent thread (non-main thread). The main thread does not have an ArkTS engine instance. 3. Intra-process object sharing: not supported. For details, see [Thread Model (FA Model)](thread-model-fa.md). | 1. ArkTS engine instance creation A process can run multiple application component instances, and all application component instances share one ArkTS engine instance. 2. Thread model The ArkTS engine instance is created on the main thread. 3. Intra-process object sharing: supported. For details, see [Thread Model (Stage Model)](thread-model-stage.md). |
+| **Application component**| 1. Component classification  - PageAbility: has the UI and supports user interaction For details, see [PageAbility Component Overview](pageability-overview.md). - ServiceAbility: provides background services and has no UI. For details, see [ServiceAbility Component Overview](serviceability-overview.md). - DataAbility: provides the data sharing capability and has no UI. For details, see [DataAbility Component Overview](dataability-overview.md). 2. Development mode Application components are specified by exporting anonymous objects and fixed entry files. You cannot perform derivation. It is inconvenient for capability expansion. | 1. Component classification  - UIAbility: has the UI and supports user interaction. For details, see [UIAbility Component Overview](uiability-overview.md). - ExtensionAbility: provides extension capabilities (such as widget and input methods) for specific scenarios. For details, see [ExtensionAbility Component Overview](extensionability-overview.md). 2. Development mode The object-oriented mode is used to provide open application components as classes. You can derive application components for capability expansion. |
+| **Process model**| There are two types of processes: 1. Main process 2. Rendering process For details, see [Process Model (FA Model)](process-model-fa.md).| There are three types of processes: 1. Main process 2. ExtensionAbility process 3. Rendering process For details, see [Process Model (Stage Model)](process-model-stage.md).|
+| **Thread model**| 1. ArkTS engine instance creation A process can run multiple application component instances, and each application component instance runs in an independent ArkTS engine instance. 2. Thread model Each ArkTS engine instance is created on an independent thread (non-main thread). The main thread does not have an ArkTS engine instance. 3. Intra-process object sharing: not supported. For details, see [Thread Model (FA Model)](thread-model-fa.md).| 1. ArkTS engine instance creation A process can run multiple application component instances, and all application component instances share one ArkTS engine instance. 2. Thread model The ArkTS engine instance is created on the main thread. 3. Intra-process object sharing: supported. For details, see [Thread Model (Stage Model)](thread-model-stage.md).|
| **Mission management model**| - A mission is created for each PageAbility component instance. - Missions are stored persistently until the number of missions exceeds the maximum (customized based on the product configuration) or users delete missions. - PageAbility components do not form a stack structure. For details, see [Mission Management Scenarios](mission-management-overview.md).| - A mission is created for each UIAbility component instance. - Missions are stored persistently until the number of missions exceeds the maximum (customized based on the product configuration) or users delete missions. - UIAbility components do not form a stack structure. For details, see [Mission Management Scenarios](mission-management-overview.md).|
| **Application configuration file**| The **config.json** file is used to describe the application, HAP, and application component information. For details, see [Application Configuration File Overview (FA Model)](../quick-start/application-configuration-file-overview-fa.md).| The **app.json5** file is used to describe the application information, and the **module.json5** file is used to describe the HAP and application component information. For details, see [Application Configuration File Overview (Stage Model)](../quick-start/application-configuration-file-overview-stage.md).|
-
diff --git a/en/application-dev/application-models/datashareextensionability.md b/en/application-dev/application-models/datashareextensionability.md
index 5b07ba68180fbcc2a51047d37ca9a82addd89cd8..1f968abfa743d7fb917fb7db3e0e41342e41c848 100644
--- a/en/application-dev/application-models/datashareextensionability.md
+++ b/en/application-dev/application-models/datashareextensionability.md
@@ -1,4 +1,4 @@
-# DataShareExtensionAbility
+# DataShareExtensionAbility (System Applications Only)
-DataShareExtensionAbility is available only for system application. It provides the data sharing capability. System applications can implement a DataShareExtensionAbility or access an existing DataShareExtensionAbility in the system. Third-party applications can only access an existing DataShareExtensionAbility. For details, see [DataShare Development](../database/database-datashare-guidelines.md).
+DataShareExtensionAbility provides the data sharing capability. System applications can implement a DataShareExtensionAbility or access an existing DataShareExtensionAbility in the system. Third-party applications can only access an existing DataShareExtensionAbility. For details, see [DataShare Development](../database/database-datashare-guidelines.md).
diff --git a/en/application-dev/application-models/enterprise-extensionAbility.md b/en/application-dev/application-models/enterprise-extensionAbility.md
new file mode 100644
index 0000000000000000000000000000000000000000..514e254f77981977c7c425a4ea2ddbebbcff9ca8
--- /dev/null
+++ b/en/application-dev/application-models/enterprise-extensionAbility.md
@@ -0,0 +1,111 @@
+# EnterpriseAdminExtensionAbility Development
+
+## Introduction
+
+**EnterpriseAdminExtensionAbility** is essential to a mobile device management (MDM) application. When developing an MDM application for an enterprise, you must inherit the **EnterpriseAdminExtensionAbility** class and have the MDM service logic implemented in an **EnterpriseAdminExtensionAbility** instance. The **EnterpriseAdminExtensionAbility** class provides callbacks for the enable, disable, install, and uninstall events of a device administrator application, implementing notification of system administrator status changes.
+
+## Constraints
+
+- ***Function constraints***
+
+ The APIs provided can be used only by device administrator applications.
+
+
+## Scenarios: Listening for the Enable, Disable, Install, and Uninstall Events of a Device Administrator Application
+
+### Overview
+
+**onAdminEnabled**: called when the enterprise administrator or employee deploys an MDM application and enables the DeviceAdmin permission for the application. The MDM application can set the initialization policy in the **onAdminEnabled** callback.
+
+**onAdminDisabled**: called when the system or employee disables the DeviceAdmin permission to notify the enterprise administrator that the device is no longer managed.
+
+**onBundleAdded**: called to notify the enterprise administrator that the specified MDM application is installed on the device. In enterprise application administration settings, after the enterprise administrator subscribes to application installation and uninstallation events, the MDM application reports the events through the callbacks.
+
+**onBundleRemoved**: called to notify the enterprise administrator that the specified MDM application is uninstalled on the device.
+
+### Available APIs
+
+| Class | API | Description |
+| :------------------------------ | ----------------------------------------- | ---------------------------- |
+| EnterpriseAdminExtensionAbility | onAdminDisabled(): void | Called when the device administrator application is enabled.|
+| EnterpriseAdminExtensionAbility | onBundleAdded(bundleName: string): void | Called when the MDM application is installed. |
+| EnterpriseAdminExtensionAbility | onAdminEnabled(): void | Called when the device administrator application is disabled. |
+| EnterpriseAdminExtensionAbility | onBundleRemoved(bundleName: string): void | Called when the MDM application is uninstalled. |
+
+### How to Develop
+
+To implement **EnterpriseAdminExtensionAbility**, enable the device administrator application and create an **ExtensionAbility** instance from the code directory of the device administrator application. The procedure is as follows:
+
+1. In the **ets** directory of the target module, right-click and choose **New > Directory** to create a directory named **EnterpriseExtAbility**.
+2. Right-click the **EnterpriseExtAbility** directory and choose **New > TypeScript File** to create a file named **EnterpriseExtAbility.ts**.
+3. Open the **EnterpriseExtAbility.ts** file and import the **EnterpriseAdminExtensionAbility** module. Customize a class that inherits from **EnterpriseAdminExtensionAbility** and add the required callbacks, such as **onAdminEnabled()** and **onAdminDisabled()**, through which the enterprise administrator can receive notification when the device administrator application is enabled or disabled.
+
+ ```ts
+ import EnterpriseAdminExtensionAbility from '@ohos.enterprise.EnterpriseAdminExtensionAbility';
+
+ export default class EnterpriseAdminAbility extends EnterpriseAdminExtensionAbility {
+
+ onAdminEnabled() {
+ console.info("onAdminEnabled");
+ }
+
+ onAdminDisabled() {
+ console.info("onAdminDisabled");
+ }
+
+ onBundleAdded(bundleName: string) {
+ console.info("EnterpriseAdminAbility onBundleAdded bundleName:" + bundleName)
+ }
+
+ onBundleRemoved(bundleName: string) {
+ console.info("EnterpriseAdminAbility onBundleRemoved bundleName" + bundleName)
+ }
+ };
+ ```
+
+4. Register **ServiceExtensionAbility** in the [module.json5](../quick-start/module-configuration-file.md) file of the target module. Among the parameters, set **type** to **enterpriseAdmin** and **srcEntrance** to the code path of the current ExtensionAbility.
+
+ ```ts
+ "extensionAbilities": [
+ {
+ "name": "ohos.samples.enterprise_admin_ext_ability",
+ "type": "enterpriseAdmin",
+ "visible": true,
+ "srcEntrance": "./ets/enterpriseextability/EnterpriseAdminAbility.ts"
+ }
+ ]
+ ```
+
+## Example
+
+Use the **subscribeManagedEvent** and **unsubscribeManagedEvent** APIs in the **@ohos.enterprise.adminManager** module to subscribe to and unsubscribe from the application installation and uninstallation event, respectively. After the subscription is successful, the MDM application notifies the enterprise administrator when it is installed or uninstalled on the device.
+
+```ts
+ @State managedEvents: Array = [0,1]
+ @State subscribeManagedEventMsg: string = ""
+ @State unsubscribeManagedEventMsg: string = ""
+
+ async subscribeManagedEventCallback() {
+ await adminManager.subscribeManagedEvent(this.admin,
+ [adminManager.ManagedEvent.MANAGED_EVENT_BUNDLE_ADDED,
+ adminManager.ManagedEvent.MANAGED_EVENT_BUNDLE_REMOVED], (error) => {
+ if (error) {
+ this.subscribeManagedEventMsg = 'subscribeManagedEvent Callback::errorCode: ' + error.code + ' errorMessage: ' + error.message
+ } else {
+ this.subscribeManagedEventMsg = 'subscribeManagedEvent Callback::success'
+ }
+ })
+ }
+
+ async unsubscribeManagedEventPromise() {
+ await adminManager.unsubscribeManagedEvent(this.admin,
+ [adminManager.ManagedEvent.MANAGED_EVENT_BUNDLE_ADDED,
+ adminManager.ManagedEvent.MANAGED_EVENT_BUNDLE_REMOVED]).then(() => {
+ this.unsubscribeManagedEventMsg = 'unsubscribeManagedEvent Promise::success'
+ }).catch((error) => {
+ this.unsubscribeManagedEventMsg = 'unsubscribeManagedEvent Promise::errorCode: ' + error.code + ' errorMessage: ' + error.message
+ })
+ }
+```
+
+
diff --git a/en/application-dev/application-models/extensionability-overview.md b/en/application-dev/application-models/extensionability-overview.md
index 8b3197383e17810cfee7c044611cf2286f4a987d..809e4e8f70ed31ad361e18dd8cb7e079ddf93086 100644
--- a/en/application-dev/application-models/extensionability-overview.md
+++ b/en/application-dev/application-models/extensionability-overview.md
@@ -9,7 +9,7 @@ An [ExtensionAbilityType](../reference/apis/js-apis-bundleManager.md#extensionab
- [FormExtensionAbility](../reference/apis/js-apis-app-form-formExtensionAbility.md): ExtensionAbility component of the form type, which provides APIs related to widgets.
-- [WorkSchedulerExtensionAbility](../reference/apis/js-apis-resourceschedule-workScheduler.md): ExtensionAbility component of the work_scheduler type, which provides callbacks for Work Scheduler tasks.
+- [WorkSchedulerExtensionAbility](../reference/apis/js-apis-WorkSchedulerExtensionAbility.md): ExtensionAbility component of the work_scheduler type, which provides callbacks for Work Scheduler tasks.
- [InputMethodExtensionAbility](../reference/apis/js-apis-inputmethod.md): ExtensionAbility component of the input_method type, which provides an input method framework that can be used to hide the keyboard, obtain the list of installed input methods, display the dialog box for input method selection, and more.
@@ -21,7 +21,7 @@ An [ExtensionAbilityType](../reference/apis/js-apis-bundleManager.md#extensionab
- [StaticSubscriberExtensionAbility](../reference/apis/js-apis-application-staticSubscriberExtensionAbility.md): ExtensionAbility component of the static_subscriber type, which provides APIs for static broadcast.
-- [WindowExtensionAbility](../reference/apis/js-apis-application-windowExtensionAbility.md): ExtensionAbility component of the window type, which allows system applications to display UIs of other applications.
+- [WindowExtensionAbility](../reference/apis/js-apis-application-windowExtensionAbility.md): ExtensionAbility component of the window type, which allows a system application to be embedded in and displayed over another application.
- [EnterpriseAdminExtensionAbility](../reference/apis/js-apis-EnterpriseAdminExtensionAbility.md): ExtensionAbility component of the enterprise_admin type, which provides APIs for processing enterprise management events, such as application installation events on devices and events indicating too many incorrect screen-lock password attempts.
diff --git a/en/application-dev/application-models/figures/fa-model-component.png b/en/application-dev/application-models/figures/fa-model-component.png
new file mode 100644
index 0000000000000000000000000000000000000000..0c28038326c5475abb3f897c5f7cbe9eb50aec00
Binary files /dev/null and b/en/application-dev/application-models/figures/fa-model-component.png differ
diff --git a/en/application-dev/application-models/figures/mission-chain3.png b/en/application-dev/application-models/figures/mission-chain3.png
index e02c135ad4a90f99bb65bdccd821d29990b9536e..0357874ea633a490da800ef5baa2e70d53ce6a2d 100644
Binary files a/en/application-dev/application-models/figures/mission-chain3.png and b/en/application-dev/application-models/figures/mission-chain3.png differ
diff --git a/en/application-dev/application-models/figures/stage-model-component.png b/en/application-dev/application-models/figures/stage-model-component.png
new file mode 100644
index 0000000000000000000000000000000000000000..6de8c778aff28cc9c7353270ce8ab4ad0c10fb02
Binary files /dev/null and b/en/application-dev/application-models/figures/stage-model-component.png differ
diff --git a/en/application-dev/application-models/hop-cross-device-migration.md b/en/application-dev/application-models/hop-cross-device-migration.md
index 6d30435a819da49855cf9ae818bac419a1c0b614..a482ae26ced4987d0b0c02382ac132c42ea932c0 100644
--- a/en/application-dev/application-models/hop-cross-device-migration.md
+++ b/en/application-dev/application-models/hop-cross-device-migration.md
@@ -1,9 +1,9 @@
-# Cross-Device Migration
+# Cross-Device Migration (System Applications Only)]
## When to Use
-Cross-device migration is available only for system applications. The main task is to migrate the current task (including the page control status) of an application to the target device so that the task can continue on it. Cross-device migration supports the following functionalities:
+The main task of cross-device migration is to migrate the current task (including the page control status) of an application to the target device so that the task can continue on it. Cross-device migration supports the following functionalities:
- Storage and restoration of custom data
diff --git a/en/application-dev/application-models/hop-multi-device-collaboration.md b/en/application-dev/application-models/hop-multi-device-collaboration.md
index fe22c3b33db46b5a353295582a5cc6a27f690d20..49ef26a7a11ca28273a92786eac230f5801d05cd 100644
--- a/en/application-dev/application-models/hop-multi-device-collaboration.md
+++ b/en/application-dev/application-models/hop-multi-device-collaboration.md
@@ -1,9 +1,9 @@
-# Multi-device Collaboration
+# Multi-device Collaboration (System Applications Only)
## When to Use
-Multi-device coordination is available only for system applications. It involves the following scenarios:
+Multi-device coordination involves the following scenarios:
- [Starting UIAbility and ServiceExtensionAbility Across Devices (No Data Returned)](#starting-uiability-and-serviceextensionability-across-devices-no-data-returned)
@@ -305,7 +305,7 @@ A system application can connect to a service on another device by calling [conn
## Using Cross-Device Ability Call
-The basic principle of cross-device ability call is the same as that of intra-device ability call. For details, see [Using Ability Call to Implement UIAbility Interaction](uiability-intra-device-interaction.md#using-ability-call-to-implement-uiability-interaction).
+The basic principle of cross-device ability call is the same as that of intra-device ability call. For details, see [Using Ability Call to Implement UIAbility Interaction (System Applications Only)](uiability-intra-device-interaction.md#using-ability-call-to-implement-uiability-interaction-system-applications-only).
The following describes how to implement multi-device collaboration through cross-device ability call.
diff --git a/en/application-dev/application-models/serviceextensionability.md b/en/application-dev/application-models/serviceextensionability.md
index d64d884b1e3021193f63445913886830218df6e1..edccb0b736c9ad81f5ae316e7310b6cc35ae34e0 100644
--- a/en/application-dev/application-models/serviceextensionability.md
+++ b/en/application-dev/application-models/serviceextensionability.md
@@ -18,9 +18,9 @@ Each type of ExtensionAbility has its own context. ServiceExtensionAbility has [
This topic describes how to use ServiceExtensionAbility in the following scenarios:
-- [Implementing a Background Service](#implementing-a-background-service)
+- [Implementing a Background Service (System Applications Only)](#implementing-a-background-service-system-applications-only)
-- [Starting a Background Service](#starting-a-background-service)
+- [Starting a Background Service (System Applications Only)](#starting-a-background-service-system-applications-only)
- [Connecting to a Background Service](#connecting-to-a-background-service)
@@ -33,9 +33,9 @@ This topic describes how to use ServiceExtensionAbility in the following scenari
> - Third-party applications can connect to ServiceExtensionAbility provided by the system only when they gain focus in the foreground.
-## Implementing a Background Service
+## Implementing a Background Service (System Applications Only)
-This feature applies only to system applications. [ServiceExtensionAbility](../reference/apis/js-apis-app-ability-serviceExtensionAbility.md) provides the callbacks **onCreate()**, **onRequest()**, **onConnect()**, **onDisconnect()**, and **onDestory()**. Override them as required. The following figure shows the lifecycle of ServiceExtensionAbility.
+[ServiceExtensionAbility](../reference/apis/js-apis-app-ability-serviceExtensionAbility.md) provides the callbacks **onCreate()**, **onRequest()**, **onConnect()**, **onDisconnect()**, and **onDestory()**. Override them as required. The following figure shows the lifecycle of ServiceExtensionAbility.
**Figure 1** ServiceExtensionAbility lifecycle

@@ -164,9 +164,9 @@ To implement a background service, manually create a ServiceExtensionAbility com
```
-## Starting a Background Service
+## Starting a Background Service (System Applications Only)
-This feature applies only to system applications. A system application uses the [startServiceExtensionAbility()](../reference/apis/js-apis-inner-application-uiAbilityContext.md#abilitycontextstartserviceextensionability) method to start a background service. The [onRequest()](../reference/apis/js-apis-app-ability-serviceExtensionAbility.md#serviceextensionabilityonrequest) callback is invoked, and the **Want** object passed by the caller is received through the callback. After the background service is started, its lifecycle is independent of that of the client. In other words, even if the client is destroyed, the background service can still run. Therefore, the background service must be stopped by calling [terminateSelf()](../reference/apis/js-apis-inner-application-serviceExtensionContext.md#serviceextensioncontextterminateself) when its work is complete. Alternatively, another component can call [stopServiceExtensionAbility()](../reference/apis/js-apis-inner-application-uiAbilityContext.md#abilitycontextstopserviceextensionability) to stop the background service.
+A system application uses the [startServiceExtensionAbility()](../reference/apis/js-apis-inner-application-uiAbilityContext.md#abilitycontextstartserviceextensionability) method to start a background service. The [onRequest()](../reference/apis/js-apis-app-ability-serviceExtensionAbility.md#serviceextensionabilityonrequest) callback is invoked, and the **Want** object passed by the caller is received through the callback. After the background service is started, its lifecycle is independent of that of the client. In other words, even if the client is destroyed, the background service can still run. Therefore, the background service must be stopped by calling [terminateSelf()](../reference/apis/js-apis-inner-application-serviceExtensionContext.md#serviceextensioncontextterminateself) when its work is complete. Alternatively, another component can call [stopServiceExtensionAbility()](../reference/apis/js-apis-inner-application-uiAbilityContext.md#abilitycontextstopserviceextensionability) to stop the background service.
> **NOTE**
>
diff --git a/en/application-dev/application-models/start-remote-pageability.md b/en/application-dev/application-models/start-remote-pageability.md
index 4e998a15d23d298bfdb402bd18ea0db2a9f819eb..7d270a68058448025def436e71ace635b4a1297c 100644
--- a/en/application-dev/application-models/start-remote-pageability.md
+++ b/en/application-dev/application-models/start-remote-pageability.md
@@ -1,7 +1,7 @@
-# Starting a Remote PageAbility
+# Starting a Remote PageAbility (System Applications Only)
-This feature applies only to system applications. The **startAbility()** method in the **featureAbility** class is used to start a remote PageAbility.
+The **startAbility()** method in the **featureAbility** class is used to start a remote PageAbility.
In addition to **'\@ohos.ability.featureAbility'**, you must import **'\@ohos.distributedHardware.deviceManager'**, which provides account-independent distributed device networking capabilities. Then you can use **getTrustedDeviceListSync** of the **DeviceManager** module to obtain the remote device ID and pass the remote device ID in the **want** parameter for starting the remote PageAbility.
diff --git a/en/application-dev/application-models/static-subscriber-extension-ability.md b/en/application-dev/application-models/static-subscriber-extension-ability.md
new file mode 100644
index 0000000000000000000000000000000000000000..ae6d9a80b7ab6c693d06e7bfe8bfb11b4db94ab8
--- /dev/null
+++ b/en/application-dev/application-models/static-subscriber-extension-ability.md
@@ -0,0 +1,107 @@
+# StaticSubscriberExtensionAbility Development
+
+## Scenario Description
+
+The common event service provides two subscription modes: dynamic and static. In dynamic subscription mode, a subscriber calls an API during the running period to subscribe to common events. For details, see [Subscribing to Common Events](common-event-subscription.md). In static subscription mode, no common event subscription API is called. A common event is subscribed by configuring a declaration file and implementing a class that inherits from **StaticSubscriberExtensionAbility**. A static subscriber is started once it receives a target event (for example, a power-on event) published by the system or application. At the same time, the **onReceiveEvent** callback is triggered, in which you can implement the service logic. **The static subscriber APIs are system APIs and can be used only by system applications that have passed the system-level power consumption review.**
+
+
+
+## How to Develop
+
+1. Prerequisites
+
+ The application must meet the following requirements:
+
+ The application is a system application.
+
+ The application is developed using the full SDK.
+
+ The application's power consumption has passed the system-level power consumption review. If you want to use static subscription in the debugging phase, add the bundle name of your application to the system configuration file **/etc/static_subscriber_config.json**.
+
+
+
+2. Declaring a Static Subscriber
+
+ To declare a static subscriber, create an ExtensionAbility, which is derived from the **StaticSubscriberExtensionAbility** class, in the project. The sample code is as follows:
+
+ ```ts
+ import StaticSubscriberExtensionAbility from '@ohos.application.StaticSubscriberExtensionAbility'
+
+ export default class StaticSubscriber extends StaticSubscriberExtensionAbility {
+ onReceiveEvent(event) {
+ console.log('onReceiveEvent, event:' + event.event);
+ }
+ }
+ ```
+
+ You can implement service logic in the **onReceiveEvent** callback.
+
+
+
+3. Project Configuration for a Static Subscriber
+
+ After writing the static subscriber code, configure the subscriber in the **module.json5** file. The configuration format is as follows:
+
+ ```ts
+ {
+ "module": {
+ ......
+ "extensionAbilities": [
+ {
+ "name": "StaticSubscriber",
+ "srcEntrance": "./ets/StaticSubscriber/StaticSubscriber.ts",
+ "description": "$string:StaticSubscriber_desc",
+ "icon": "$media:icon",
+ "label": "$string:StaticSubscriber_label",
+ "type": "staticSubscriber",
+ "visible": true,
+ "metadata": [
+ {
+ "name": "ohos.extension.staticSubscriber",
+ "resource": "$profile:subscribe"
+ }
+ ]
+ }
+ ]
+ ......
+ }
+ }
+ ```
+
+ Pay attention to the following fields in the JSON file:
+
+ **srcEntrance**: entry file path of the ExtensionAbility, that is, the file path of the static subscriber declared in Step 2.
+
+ **type**: ExtensionAbility type. For a static subscriber, set this field to **staticSubscriber**.
+
+ **metadata**: level-2 configuration file information of the ExtensionAbility. The configuration information varies according to the ExtensionAbility type. Therefore, you must use different config files to indicate the specific configuration. The **metadata** field contains two keywords: **name** and **resource**. The **name** field indicates the ExtensionAbility type name. For a static subscriber, declare the name as **ohos.extension.staticSubscriber** for successful identification. The **resource** field indicates the path that stores the ExtensionAbility configuration, which is customizable. In this example, the path is **resources/base/profile/subscribe.json**.
+
+ A level-2 configuration file pointed to by **metadata** must be in the following format:
+
+ ```ts
+ {
+ "commonEvents": [
+ {
+ "name": "xxx",
+ "permission": "xxx",
+ "events":[
+ "xxx"
+ ]
+ }
+ ]
+ }
+ ```
+
+ If the level-2 configuration file is not declared in this format, the file cannot be identified. The fields are described as follows:
+
+ **name**: name of the ExtensionAbility, which must be the same as the name of **extensionAbility** declared in **module.json5**.
+
+ **permission**: permission required by the publisher. If a publisher without the required permission attempts to publish an event, the event is regarded as invalid and will not be published.
+
+ **events**: list of subscribed target events
+
+
+
+## Samples
+
+For details about how to develop StaticSubscriberExtensionAbility, see [StaticSubscriber (ArkTS, API version 9, Full SDK)](https://gitee.com/openharmony/applications_app_samples/tree/master/ability/StaticSubscriber).
diff --git a/en/application-dev/application-models/uiability-intra-device-interaction.md b/en/application-dev/application-models/uiability-intra-device-interaction.md
index ac3c18e36de67e66e496a92da2269c063503ce7e..84942ca0d94c3ee8d5f6d2d00fe05b14fefcc8b3 100644
--- a/en/application-dev/application-models/uiability-intra-device-interaction.md
+++ b/en/application-dev/application-models/uiability-intra-device-interaction.md
@@ -17,7 +17,7 @@ This topic describes the UIAbility interaction modes in the following scenarios.
- [Starting a Specified Page of UIAbility](#starting-a-specified-page-of-uiability)
-- [Using Ability Call to Implement UIAbility Interaction](#using-ability-call-to-implement-uiability-interaction)
+- [Using Ability Call to Implement UIAbility Interaction (System Applications Only)](#using-ability-call-to-implement-uiability-interaction-system-applications-only)
## Starting UIAbility in the Same Application
@@ -422,9 +422,9 @@ In summary, when a UIAbility instance of application A has been created and the
> When the [launch type of the callee UIAbility](uiability-launch-type.md) is set to **standard**, a new instance is created each time the callee UIAbility is started. In this case, the [onNewWant()](../reference/apis/js-apis-app-ability-uiAbility.md#abilityonnewwant) callback will not be invoked.
-## Using Ability Call to Implement UIAbility Interaction
+## Using Ability Call to Implement UIAbility Interaction (System Applications Only)
-This feature applies only to system applications. Ability call is an extension of the UIAbility capability. It enables the UIAbility to be invoked by and communicate with external systems. The UIAbility invoked can be either started in the foreground or created and run in the background. You can use the ability call to implement data sharing between two UIAbility instances (caller ability and callee ability) through IPC.
+Ability call is an extension of the UIAbility capability. It enables the UIAbility to be invoked by and communicate with external systems. The UIAbility invoked can be either started in the foreground or created and run in the background. You can use the ability call to implement data sharing between two UIAbility instances (caller ability and callee ability) through IPC.
The core API used for the ability call is **startAbilityByCall**, which differs from **startAbility** in the following ways:
diff --git a/en/application-dev/application-models/uiability-overview.md b/en/application-dev/application-models/uiability-overview.md
index 14cb5c4652749c97dd6e50c4232b6f65fb6feaab..7e31ab130df2ba9eaf959d1bfb3ddccfb7172480 100644
--- a/en/application-dev/application-models/uiability-overview.md
+++ b/en/application-dev/application-models/uiability-overview.md
@@ -3,9 +3,11 @@
## Overview
-UIAbility has the UI and is mainly used for user interaction.
+UIAbility is a type of application component that provides the UI for user interaction.
-UIAbility is the basic unit scheduled by the system and provides a window for applications to draw UIs. A UIAbility component can implement a functional module through multiple pages. Each UIAbility component instance corresponds to a mission in **Recents**.
+UIAbility is the basic unit scheduled by the system and provides a window for applications to draw UIs. An application can contain one or more UIAbility components. For example, for a payment application, you can use two UIAbility components to carry the entry and payment functionalities. You are advised to use one UIAbility component to carry the same functional module, with multiple pages (if necessary).
+
+Each UIAbility component instance is displayed as a mission in Recents.
## Privacy Statement Configuration
@@ -32,8 +34,3 @@ To enable an application to properly use a UIAbility component, declare the UIAb
}
}
```
-
-> **NOTE**
->
-> For the ability composition, see [Adding an Ability to a Module](https://developer.harmonyos.com/en/docs/documentation/doc-guides-V3/ohos-adding-ability-0000001218280664-V3).
-
diff --git a/en/application-dev/application-models/widget-development-stage.md b/en/application-dev/application-models/widget-development-stage.md
index 3e542956072a31fbc8dbca097ae264dfe8ebfc5f..73635fbc05c5e11cc0cc72857ccbcc7648bfa451 100644
--- a/en/application-dev/application-models/widget-development-stage.md
+++ b/en/application-dev/application-models/widget-development-stage.md
@@ -100,7 +100,7 @@ The widget provider development based on the [stage model](stage-model-developme
- [Configuring the Widget Configuration File](#configuring-the-widget-configuration-file): Configure the application configuration file **module.json5** and profile configuration file.
-- [Persistently Storing Widget Data](#persistently-storing-widget-data): Perform persistent management on widget information.
+- [Persistently Storing Widget Data](#persistently-storing-widget-data): This operation is a form of widget data exchange.
- [Updating Widget Data](#updating-widget-data): Call **updateForm()** to update the information displayed on a widget.
@@ -597,3 +597,13 @@ The following is an example:
};
```
+## Restrictions
+
+To minimize the abuse of **FormExtensionAbility** by third-party applications, the following APIs cannot be invoked in **FormExtensionAbility**:
+
+- @ohos.ability.particleAbility.d.ts
+- @ohos.backgroundTaskManager.d.ts
+- @ohos.resourceschedule.backgroundTaskManager.d.ts
+- @ohos.multimedia.camera.d.ts
+- @ohos.multimedia.audio.d.ts
+- @ohos.multimedia.media.d.ts
diff --git a/en/application-dev/application-models/windowextensionability.md b/en/application-dev/application-models/windowextensionability.md
new file mode 100644
index 0000000000000000000000000000000000000000..cf2ce01947412e479d29516601c45aebc2b55b17
--- /dev/null
+++ b/en/application-dev/application-models/windowextensionability.md
@@ -0,0 +1,112 @@
+# WindowExtensionAbility
+
+[WindowExtensionAbility](../reference/apis/js-apis-application-windowExtensionAbility.md) is a type of ExtensionAbility component that allows a system application to be embedded in and displayed over another application.
+
+
+The WindowExtensionAbility component must be used together with the [AbilityComponent](../reference/arkui-ts/ts-container-ability-component.md) to process services of the started application. WindowExtensionAbility is run in connection mode. A system application must use the AbilityComponent to start the WindowExtensionAbility component.
+
+Each ExtensionAbility has its own context. For WindowExtensionAbility,
+the context is [WindowExtensionContext](../reference/apis/js-apis-inner-application-windowExtensionContext.md).
+
+> **NOTE**
+>
+> **WindowExtensionAbility** is a system API. To embed a third-party application in another application and display it over the application, switch to the full SDK by following the instructions provided in [Guide to Switching to Full SDK](../../application-dev/quick-start/full-sdk-switch-guide.md).
+>
+
+
+## Setting an Embedded Ability (System Applications Only)
+
+The **WindowExtensionAbility** class provides **onConnect()**, **onDisconnect()**, and **onWindowReady()** lifecycle callbacks, which can be overridden.
+
+- The **onWindowReady()** callback is invoked when a window is created for the ability.
+
+- The **onConnect()** callback is invoked when the AbilityComponent corresponding to the window connects to the ability.
+
+- The **onDisconnect()** callback is invoked when the AbilityComponent disconnects from the ability.
+
+
+**How to Develop**
+
+To implement an embedded application, manually create a WindowExtensionAbility in DevEco Studio as follows:
+
+1. In the **ets** directory of the **Module** project, right-click and choose **New > Directory** to create a directory named **WindowExtAbility**.
+
+2. Right-click the **WindowExtAbility** directory, and choose **New > TypeScript File** to create a file named **WindowExtAbility.ts**.
+
+3. Open the **WindowExtAbility.ts** file and import the dependency package of **WindowExtensionAbility**. Customize a class that inherits from **WindowExtensionAbility** and implement the **onWindowReady()**, **onConnect()**, and **onDisconnect()** lifecycle callbacks.
+
+ ```ts
+ import Extension from '@ohos.application.WindowExtensionAbility'
+
+ export default class WindowExtAbility extends Extension {
+ onWindowReady(window) {
+ window.loadContent('WindowExtAbility/pages/index1').then(() => {
+ window.getProperties().then((pro) => {
+ console.log("WindowExtension " + JSON.stringify(pro));
+ })
+ window.show();
+ })
+ }
+
+ onConnect(want) {
+ console.info('JSWindowExtension onConnect ' + want.abilityName);
+ }
+
+ onDisconnect(want) {
+ console.info('JSWindowExtension onDisconnect ' + want.abilityName);
+ }
+ }
+ ```
+
+4. Register the WindowExtensionAbility in the [module.json5 file](../quick-start/module-configuration-file.md) corresponding to the **Module** project. Set **type** to **"window"** and **srcEntrance** to the code path of the ExtensionAbility component.
+
+ ```json
+ {
+ "module": {
+ "extensionAbilities": [
+ {
+ "name": "WindowExtAbility",
+ "srcEntrance": "./ets/WindowExtAbility/WindowExtAbility.ts",
+ "icon": "$media:icon",
+ "description": "WindowExtension",
+ "type": "window",
+ "visible": true,
+ }
+ ],
+ }
+ }
+ ```
+
+
+## Starting an Embedded Ability (System Applications Only)
+
+System applications can load the created WindowExtensionAbility through the AbilityComponent.
+
+**How to Develop**
+
+1. To connect to an embedded application, add the AbilityComponent to the corresponding pages in the DevEco Studio project.
+
+2. Set **bundleName** and **abilityName** in the AbilityComponent.
+
+3. Set the width and height. The sample code is as follows:
+
+```ts
+@Entry
+@Component
+struct Index {
+ @State message: string = 'Hello World'
+
+ build() {
+ Row() {
+ Column() {
+ AbilityComponent({ abilityName: "WindowExtAbility", bundleName: "com.example.WindowExtAbility"})
+ .width(500)
+ .height(500)
+ }
+ .width('100%')
+ }
+ .height('100%')
+ .backgroundColor(0x64BB5c)
+ }
+}
+```
diff --git a/en/application-dev/database/database-distributedobject-guidelines.md b/en/application-dev/database/database-distributedobject-guidelines.md
index 5d1bcb0e289ac4fde9c70fc6d0097fdeee287b5d..dcbc34b48912020e0a7c6e0c987ce5de1d0b75c8 100644
--- a/en/application-dev/database/database-distributedobject-guidelines.md
+++ b/en/application-dev/database/database-distributedobject-guidelines.md
@@ -19,7 +19,7 @@ Call **createDistributedObject()** to create a distributed data object instance.
| Bundle Name| API| Description|
| -------- | -------- | -------- |
-| ohos.data.distributedDataObject| createDistributedObject(source: object): DistributedObject | Creates a distributed data object instance for data operations. - **source**: attributes of the distributed data object to set. - **DistributedObject**: returns the distributed data object created. |
+| ohos.data.distributedDataObject| createDistributedObject(source: object): DistributedObject | Creates a distributed data object instance for data operations. - **source**: attributes of the distributed data object to create. - **DistributedObject**: returns the distributed data object created.|
### Generating a Session ID
@@ -91,10 +91,9 @@ The following example shows how to implement distributed data object synchroniza
```js
import distributedObject from '@ohos.data.distributedDataObject';
```
-
2. Apply for the permission.
- Add the permissions required (FA model) to the **config.json** file.
+ Add the required permission (FA model) to the **config.json** file.
```json
{
@@ -112,18 +111,43 @@ The following example shows how to implement distributed data object synchroniza
This permission must also be granted by the user when the application is started for the first time.
```js
+ // FA model
import featureAbility from '@ohos.ability.featureAbility';
-
+
function grantPermission() {
console.info('grantPermission');
let context = featureAbility.getContext();
context.requestPermissionsFromUser(['ohos.permission.DISTRIBUTED_DATASYNC'], 666, function (result) {
- console.info(`result.requestCode=${result.requestCode}`)
-
+ console.info(`requestPermissionsFromUser CallBack`);
+
})
console.info('end grantPermission');
}
-
+
+ grantPermission();
+ ```
+
+ ```ts
+ // Stage model
+ import UIAbility from '@ohos.app.ability.UIAbility';
+
+ let context = null;
+
+ class EntryAbility extends UIAbility {
+ onWindowStageCreate(windowStage) {
+ context = this.context;
+ }
+ }
+
+ function grantPermission() {
+ let permissions = ['ohos.permission.DISTRIBUTED_DATASYNC'];
+ context.requestPermissionsFromUser(permissions).then((data) => {
+ console.info('success: ${data}');
+ }).catch((error) => {
+ console.error('failed: ${error}');
+ });
+ }
+
grantPermission();
```
@@ -139,10 +163,10 @@ The following example shows how to implement distributed data object synchroniza
});
let sessionId = distributedObject.genSessionId();
```
-
+
4. Add the distributed data object instance to a network for data synchronization. The data objects in the synchronization network include the local and remote objects.
-
-```js
+
+ ```js
// Local object
let localObject = distributedObject.createDistributedObject({
name: "jack",
@@ -164,7 +188,7 @@ The following example shows how to implement distributed data object synchroniza
// After learning that the local device goes online, the remote object synchronizes data. That is, name changes to jack and age to 18.
remoteObject.setSessionId(sessionId);
```
-
+
5. Observe the data changes of the distributed data object. You can subscribe to data changes of the remote object. When the data in the remote object changes, a callback will be invoked to return the data changes.
```js
@@ -202,33 +226,29 @@ The following example shows how to implement distributed data object synchroniza
localObject.parent.mother = "mom";
```
-7. Access the distributed data object.
-
- Obtain the distributed data object attributes, which are the latest data on the network.
+7. Access the distributed data object. Obtain the distributed data object attributes, which are the latest data on the network.
```js
-console.info("name " + localObject["name"]);
+ console.info("name " + localObject["name"]);
```
-
8. Unsubscribe from data changes. You can specify the callback to unregister. If you do not specify the callback, all data change callbacks of the distributed data object will be unregistered.
```js
-// Unregister the specified data change callback.
+ // Unregister the specified data change callback.
localObject.off("change", changeCallback);
// Unregister all data change callbacks.
localObject.off("change");
```
-
9. Subscribe to status changes of this distributed data object. A callback will be invoked to report the status change when the target distributed data object goes online or offline.
-
-```js
+
+ ```js
function statusCallback(sessionId, networkId, status) {
this.response += "status changed " + sessionId + " " + status + " " + networkId;
}
localObject.on("status", this.statusCallback);
```
-
+
10. Save a distributed data object and delete it.
```js
@@ -247,20 +267,16 @@ console.info("name " + localObject["name"]);
console.info("revokeSave failed.");
});
```
-
-11. Unsubscribe from the status changes of the distributed data object.
-
- You can specify the callback to unregister. If you do not specify the callback, all status change callbacks of this distributed data object will be unregistered.
+11. Unsubscribe from the status changes of this distributed data object. You can specify the callback to unregister. If you do not specify the callback, this API unregisters all status change callbacks of this distributed data object.
```js
-// Unregister the specified status change callback.
+ // Unregister the specified status change callback.
localObject.off("status", this.statusCallback);
// Unregister all status change callbacks.
localObject.off("status");
```
-
12. Remove the distributed data object from the synchronization network. The data changes on the local object will not be synchronized to the removed distributed data object.
```js
-localObject.setSessionId("");
+ localObject.setSessionId("");
```
diff --git a/en/application-dev/database/database-mdds-guidelines.md b/en/application-dev/database/database-mdds-guidelines.md
index b72874536b968593cbb7a3c8d5fd865eb1720b35..70c0ee209975ff3322210041e123afbeec3b5e6f 100644
--- a/en/application-dev/database/database-mdds-guidelines.md
+++ b/en/application-dev/database/database-mdds-guidelines.md
@@ -13,7 +13,7 @@ For details about the APIs, see [Distributed KV Store](../reference/apis/js-apis
| API | Description |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
-| createKVManager(config: KVManagerConfig, callback: AsyncCallback<KVManager>): void createKVManager(config: KVManagerConfig): Promise<KVManager> | Creates a **KvManager** object for database management. |
+| createKVManager(config: KVManagerConfig): KVManager | Creates a **KvManager** object for database management. |
| getKVStore<T extends KVStore>(storeId: string, options: Options, callback: AsyncCallback<T>): void getKVStore<T extends KVStore>(storeId: string, options: Options): Promise<T> | Creates and obtains a KV store.|
| put(key: string, value: Uint8Array\|string\|number\|boolean, callback: AsyncCallback<void>): void put(key: string, value: Uint8Array\|string\|number\|boolean): Promise<void> | Inserts and updates data. |
| delete(key: string, callback: AsyncCallback<void>): void delete(key: string): Promise<void> | Deletes data. |
@@ -117,16 +117,10 @@ The following uses a single KV store as an example to describe the development p
bundleName: 'com.example.datamanagertest',
context:context,
}
- distributedKVStore.createKVManager(kvManagerConfig, function (err, manager) {
- if (err) {
- console.error(`Failed to create KVManager. code is ${err.code},message is ${err.message}`);
- return;
- }
- console.log('Created KVManager successfully');
- kvManager = manager;
- });
+ kvManager = distributedKVStore.createKVManager(kvManagerConfig);
+ console.log("Created KVManager successfully");
} catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
+ console.error(`Failed to create KVManager. Code is ${e.code}, message is ${e.message}`);
}
```
@@ -150,14 +144,14 @@ The following uses a single KV store as an example to describe the development p
};
kvManager.getKVStore('storeId', options, function (err, store) {
if (err) {
- console.error(`Failed to get KVStore: code is ${err.code},message is ${err.message}`);
+ console.error(`Failed to get KVStore: code is ${err.code}, message is ${err.message}`);
return;
}
console.log('Obtained KVStore successfully');
kvStore = store;
});
} catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
+ console.error(`An unexpected error occurred. Code is ${e.code}, message is ${e.message}`);
}
```
@@ -175,7 +169,7 @@ The following uses a single KV store as an example to describe the development p
console.log(`dataChange callback call data: ${data}`);
});
}catch(e){
- console.error(`An unexpected error occured.code is ${e.code},message is ${e.message}`);
+ console.error(`An unexpected error occured. Code is ${e.code}, message is ${e.message}`);
}
```
@@ -192,13 +186,13 @@ The following uses a single KV store as an example to describe the development p
try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err,data) {
if (err != undefined) {
- console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
+ console.error(`Failed to put data. Code is ${err.code}, message is ${err.message}`);
return;
}
- console.log('Put data successfully');
+ console.log("Put data successfully");
});
}catch (e) {
- console.error(`An unexpected error occurred.code is ${e.code},message is ${e.message}`);
+ console.error(`An unexpected error occurred. Code is ${e.code}, message is ${e.message}`);
}
```
@@ -215,20 +209,20 @@ The following uses a single KV store as an example to describe the development p
try {
kvStore.put(KEY_TEST_STRING_ELEMENT, VALUE_TEST_STRING_ELEMENT, function (err,data) {
if (err != undefined) {
- console.error(`Failed to put.code is ${err.code},message is ${err.message}`);
+ console.error(`Failed to put data. Code is ${err.code}, message is ${err.message}`);
return;
}
- console.log('Put data successfully');
+ console.log("Put data successfully");
kvStore.get(KEY_TEST_STRING_ELEMENT, function (err,data) {
if (err != undefined) {
- console.error(`Failed to get data.code is ${err.code},message is ${err.message}`);
+ console.error(`Failed to obtain data. Code is ${err.code}, message is ${err.message}`);
return;
}
console.log(`Obtained data successfully:${data}`);
});
});
}catch (e) {
- console.error(`Failed to get.code is ${e.code},message is ${e.message}`);
+ console.error(`Failed to obtain data. Code is ${e.code}, message is ${e.message}`);
}
```
@@ -262,7 +256,7 @@ The following uses a single KV store as an example to describe the development p
// 1000 indicates that the maximum delay is 1000 ms.
kvStore.sync(deviceIds, distributedKVStore.SyncMode.PUSH_ONLY, 1000);
} catch (e) {
- console.error(`An unexpected error occurred. code is ${e.code},message is ${e.message}`);
+ console.error(`An unexpected error occurred. Code is ${e.code}, message is ${e.message}`);
}
}
});
diff --git a/en/application-dev/database/database-preference-guidelines.md b/en/application-dev/database/database-preference-guidelines.md
index e5c9faa1477565541a94076e2fb568e69b2f5cf6..724e273675061c4b6969fb3fcd6f6cbdd984a15f 100644
--- a/en/application-dev/database/database-preference-guidelines.md
+++ b/en/application-dev/database/database-preference-guidelines.md
@@ -114,21 +114,19 @@ You can use the following APIs to delete a **Preferences** instance or data file
```ts
// Obtain the context.
import UIAbility from '@ohos.app.ability.UIAbility';
- let context = null;
let preferences = null;
export default class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage){
- context = this.context;
+ onWindowStageCreate(windowStage) {
+ let promise = data_preferences.getPreferences(this.context, 'mystore');
+ promise.then((pref) => {
+ preferences = pref;
+ }).catch((err) => {
+ console.info("Failed to get the preferences.");
+ })
}
}
- let promise = data_preferences.getPreferences(context, 'mystore');
- promise.then((pref) => {
- preferences = pref;
- }).catch((err) => {
- console.info("Failed to get the preferences.");
- })
```
3. Write data.
diff --git a/en/application-dev/dfx/errormanager-guidelines.md b/en/application-dev/dfx/errormanager-guidelines.md
index 667339c3b3dbaa101cfbda8eeacbc8f11c2fd03d..193a5fcaf3e26ccb728d5b2ea3287e8723f958f1 100644
--- a/en/application-dev/dfx/errormanager-guidelines.md
+++ b/en/application-dev/dfx/errormanager-guidelines.md
@@ -39,8 +39,8 @@ When an asynchronous callback is used, the return value can be processed directl
import UIAbility from '@ohos.app.ability.UIAbility';
import errorManager from '@ohos.app.ability.errorManager';
-var registerId = -1;
-var callback = {
+let registerId = -1;
+let callback = {
onUnhandledException: function (errMsg) {
console.log(errMsg);
}
@@ -48,13 +48,13 @@ var callback = {
export default class EntryAbility extends Ability {
onCreate(want, launchParam) {
console.log("[Demo] EntryAbility onCreate")
- registerId = errorManager.registerErrorObserver(callback);
+ registerId = errorManager.on("error", callback);
globalThis.abilityWant = want;
}
onDestroy() {
console.log("[Demo] EntryAbility onDestroy")
- errorManager.unregisterErrorObserver(registerId, (result) => {
+ errorManager.off("error", registerId, (result) => {
console.log("[Demo] result " + result.code + ";" + result.message)
});
}
diff --git a/en/application-dev/file-management/filepicker-guidelines.md b/en/application-dev/file-management/filepicker-guidelines.md
index f320f89d82ed0683b0057264430ee090fdd02974..ec813e256d3f4c1b3fe302aaf1653866a837a36a 100644
--- a/en/application-dev/file-management/filepicker-guidelines.md
+++ b/en/application-dev/file-management/filepicker-guidelines.md
@@ -9,11 +9,10 @@ FilePicker provides the following modes:
## Development Guidelines
> **NOTE**
->
> FilePicker supports only the applications developed based on the stage model.
> For details about the stage model, see [Interpretation of the Application Model](../application-models/application-model-description.md).
-You can use [AbilityContext.startAbilityForResult(want, options)](../reference/apis/js-apis-ability-context.md##abilitycontextstartabilityforresult-1) with different parameters to start different FilePicker modes.
+You can use [AbilityContext.startAbilityForResult(want, options)](../reference/apis/js-apis-inner-application-uiAbilityContext.md#uiabilitycontextstartabilityforresult-1) with different parameters to start FilePicker in different modes.
You need to use [Want](../reference/apis/js-apis-application-want.md) to specify **bundleName** and **abilityName** to start FilePicker. For details, see the following sample code.
@@ -32,8 +31,7 @@ ArkTS sample code:
// Start FilePicker to select a file.
globalThis.context.startAbilityForResult(
{
- bundleName: "com.ohos.filepicker",
- abilityName: "MainAbility",
+ action: "ohos.want.action.OPEN_FILE",
parameters: {
'startMode': 'choose', //choose or save
}
@@ -44,8 +42,7 @@ globalThis.context.startAbilityForResult(
// Start FilePicker to save a file.
globalThis.context.startAbilityForResult(
{
- bundleName: "com.ohos.filepicker",
- abilityName: "MainAbility",
+ action: "ohos.want.action.CREATE_FILE",
parameters: {
'startMode': 'save', //choose or save
'saveFile': 'test.jpg',
diff --git a/en/application-dev/file-management/medialibrary-album-guidelines.md b/en/application-dev/file-management/medialibrary-album-guidelines.md
index f03e11cf3cbc0e94737d3a66214f72dfb0a47ba3..0fa043bad49b51aff526198137550f5079bd4349 100644
--- a/en/application-dev/file-management/medialibrary-album-guidelines.md
+++ b/en/application-dev/file-management/medialibrary-album-guidelines.md
@@ -39,19 +39,19 @@ The following describes how to create an album named **myAlbum**.
```ts
async function example() {
- let mediaType = mediaLibrary.MediaType.IMAGE;
- let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
- const context = getContext(this);
- let media = mediaLibrary.getMediaLibrary(context);
- const path = await media.getPublicDirectory(DIR_IMAGE);
- // myAlbum is the path for storing the new file and the name of the new album.
- media.createAsset(mediaType, 'test.jpg', path + 'myAlbum/', (err, fileAsset) => {
- if (fileAsset != undefined) {
- console.info('createAlbum successfully, message = ' + fileAsset);
- } else {
- console.info('createAlbum failed, message = ' + err);
- }
- });
+ let mediaType = mediaLibrary.MediaType.IMAGE;
+ let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
+ const context = getContext(this);
+ let media = mediaLibrary.getMediaLibrary(context);
+ const path = await media.getPublicDirectory(DIR_IMAGE);
+ // myAlbum is the path for storing the new file and the name of the new album.
+ media.createAsset(mediaType, 'test.jpg', path + 'myAlbum/', (err, fileAsset) => {
+ if (fileAsset === undefined) {
+ console.error('createAlbum failed, message = ' + err);
+ } else {
+ console.info('createAlbum successfully, message = ' + JSON.stringify(fileAsset));
+ }
+ });
}
```
@@ -75,20 +75,20 @@ The following describes how to rename the album **newAlbum**.
```ts
async function example() {
- let AlbumNoArgsfetchOp = {
- selections: '',
- selectionArgs: [],
- };
- const context = getContext(this);
- let media = mediaLibrary.getMediaLibrary(context);
- let albumList = await media.getAlbums(AlbumNoArgsfetchOp);
- let album = albumList[0];
- album.albumName = 'newAlbum';
- // Void callback.
- album.commitModify().then(function() {
- console.info("albumRename successfully");
- }).catch(function(err){
- console.info("albumRename failed with error: " + err);
- });
+ let AlbumNoArgsfetchOp = {
+ selections: '',
+ selectionArgs: [],
+ };
+ const context = getContext(this);
+ let media = mediaLibrary.getMediaLibrary(context);
+ let albumList = await media.getAlbums(AlbumNoArgsfetchOp);
+ let album = albumList[0];
+ album.albumName = 'newAlbum';
+ // Void callback.
+ album.commitModify().then(() => {
+ console.info("albumRename successfully");
+ }).catch((err) => {
+ console.error("albumRename failed with error: " + err);
+ });
}
```
diff --git a/en/application-dev/file-management/medialibrary-filepath-guidelines.md b/en/application-dev/file-management/medialibrary-filepath-guidelines.md
index 7e4a1cdaff6cbd76995b295d5f4606f54c35913e..4c7e2ecd4db6723a66930e624bd4b36b556330d1 100644
--- a/en/application-dev/file-management/medialibrary-filepath-guidelines.md
+++ b/en/application-dev/file-management/medialibrary-filepath-guidelines.md
@@ -37,15 +37,15 @@ The following describes how to obtain the public directory that stores camera fi
```ts
async function example(){
- const context = getContext(this);
- let media = mediaLibrary.getMediaLibrary(context);
- let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA;
- const dicResult = await media.getPublicDirectory(DIR_CAMERA);
- if (dicResult == 'Camera/') {
- console.info('mediaLibraryTest : getPublicDirectory passed');
- } else {
- console.info('mediaLibraryTest : getPublicDirectory failed');
- }
+ const context = getContext(this);
+ let media = mediaLibrary.getMediaLibrary(context);
+ let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA;
+ const dicResult = await media.getPublicDirectory(DIR_CAMERA);
+ if (dicResult == 'Camera/') {
+ console.info('mediaLibraryTest : getPublicDirectory passed');
+ } else {
+ console.error('mediaLibraryTest : getPublicDirectory failed');
+ }
}
```
@@ -59,47 +59,52 @@ Users can access files stored in the public directories through the system appli
You can call [mediaLibrary.FileAsset.open](../reference/apis/js-apis-medialibrary.md#open8-1) to open a file in a public directory.
-You can call [fileio.open](../reference/apis/js-apis-fileio.md#fileioopen7) to open a file in the application sandbox. The sandbox directory can be accessed only through the application context.
+You can call [fs.open](../reference/apis/js-apis-file-fs.md#fsopen) to open a file in the application sandbox. The sandbox directory can be accessed only through the application context.
**Prerequisites**
- You have obtained a **MediaLibrary** instance.
-- You have granted the permission **ohos.permission.WRITE_MEDIA**.
-- You have imported the module [@ohos.fileio](../reference/apis/js-apis-fileio.md) in addition to @ohos.multimedia.mediaLibrary.
+- You have granted the permissions **ohos.permission.READ_MEDIA** and **ohos.permission.WRITE_MEDIA**.
+- You have imported the module [@ohos.file.fs](../reference/apis/js-apis-file-fs.md) in addition to @ohos.multimedia.mediaLibrary.
+- The **testFile.txt** file has been created and contains content.
**How to Develop**
-1. Call [context.filesDir](../reference/apis/js-apis-inner-app-context.md#contextgetfilesdir) to obtain the directory of the application sandbox.
+1. Call [context.filesDir](../reference/apis/js-apis-file-fs.md) to obtain the directory of the application sandbox.
2. Call **MediaLibrary.getFileAssets** and **FetchFileResult.getFirstObject** to obtain the first file in the result set of the public directory.
-3. Call **fileio.open** to open the file in the sandbox.
+3. Call **fs.open** to open the file in the sandbox.
4. Call **fileAsset.open** to open the file in the public directory.
-5. Call **fileio.copyfile** to copy the file.
-6. Call **fileAsset.close** and **fileio.close** to close the file.
+5. Call [fs.copyfile](../reference/apis/js-apis-file-fs.md#fscopyfile) to copy the file.
+6. Call **fileAsset.close** and [fs.close](../reference/apis/js-apis-file-fs.md#fsclose) to close the file.
**Example 1: Copying Files from the Public Directory to the Sandbox**
```ts
async function copyPublic2Sandbox() {
+ try {
const context = getContext(this);
let media = mediaLibrary.getMediaLibrary(context);
- let sandboxDirPath = globalThis.context.filesDir;
+ let sandboxDirPath = context.filesDir;
let fileKeyObj = mediaLibrary.FileKey;
let fileAssetFetchOp = {
- selections: fileKeyObj.DISPLAY_NAME + '= ?',
- selectionArgs: ['testFile.txt'],
+ selections: fileKeyObj.DISPLAY_NAME + '= ?',
+ selectionArgs: ['testFile.txt'],
};
let fetchResult = await media.getFileAssets(fileAssetFetchOp);
let fileAsset = await fetchResult.getFirstObject();
let fdPub = await fileAsset.open('rw');
- let fdSand = await fileio.open(sandboxDirPath + '/testFile.txt', 0o2 | 0o100, 0o666);
- await fileio.copyFile(fdPub, fdSand);
+ let fdSand = await fs.open(sandboxDirPath + '/testFile.txt', fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
+ await fs.copyFile(fdPub, fdSand.fd);
await fileAsset.close(fdPub);
- await fileio.close(fdSand);
+ await fs.close(fdSand.fd);
- let content_sand = await fileio.readText(sandboxDirPath + '/testFile.txt');
- console.log('content read from sandbox file: ', content_sand)
+ let content_sand = await fs.readText(sandboxDirPath + '/testFile.txt');
+ console.info('content read from sandbox file: ', content_sand)
+ } catch (err) {
+ console.info('[demo] copyPublic2Sandbox fail, err: ', err);
+ }
}
```
@@ -107,81 +112,81 @@ async function copyPublic2Sandbox() {
```ts
async function copySandbox2Public() {
- const context = getContext(this);
- let media = mediaLibrary.getMediaLibrary(context);
- let sandboxDirPath = globalThis.context.filesDir;
-
- let DIR_DOCUMENTS = mediaLibrary.DirectoryType.DIR_DOCUMENTS;
- const publicDirPath = await media.getPublicDirectory(DIR_DOCUMENTS);
- try {
- let fileAsset = await media.createAsset(mediaLibrary.MediaType.FILE, 'testFile02.txt', publicDirPath);
- console.info('createFile successfully, message = ' + fileAsset);
- } catch (err) {
- console.info('createFile failed, message = ' + err);
- }
- try {
- let fileKeyObj = mediaLibrary.FileKey;
- let fileAssetFetchOp = {
- selections: fileKeyObj.DISPLAY_NAME + '= ?',
- selectionArgs: ['testFile02.txt'],
- };
- let fetchResult = await media.getFileAssets(fileAssetFetchOp);
- var fileAsset = await fetchResult.getFirstObject();
- } catch (err) {
- console.info('file asset get failed, message = ' + err);
- }
- let fdPub = await fileAsset.open('rw');
- let fdSand = await fileio.open(sandboxDirPath + 'testFile.txt', 0o2);
- await fileio.copyFile(fdSand, fdPub);
- await fileio.close(fdPub);
- await fileio.close(fdSand);
- let fdPubRead = await fileAsset.open('rw');
- try {
- let arrayBuffer = new ArrayBuffer(4096);
- await fileio.read(fdPubRead, arrayBuffer);
- var content_pub = String.fromCharCode(...new Uint8Array(arrayBuffer));
- fileAsset.close(fdPubRead);
- } catch (err) {
- console.log('read text failed, message = ', err);
- }
- console.log('content read from public file: ', content_pub);
+ const context = getContext(this);
+ let media = mediaLibrary.getMediaLibrary(context);
+ let sandboxDirPath = context.filesDir;
+
+ let DIR_DOCUMENTS = mediaLibrary.DirectoryType.DIR_DOCUMENTS;
+ const publicDirPath = await media.getPublicDirectory(DIR_DOCUMENTS);
+ try {
+ let fileAsset = await media.createAsset(mediaLibrary.MediaType.FILE, 'testFile02.txt', publicDirPath);
+ console.info('createFile successfully, message = ' + fileAsset);
+ } catch (err) {
+ console.error('createFile failed, message = ' + err);
+ }
+ try {
+ let fileKeyObj = mediaLibrary.FileKey;
+ let fileAssetFetchOp = {
+ selections: fileKeyObj.DISPLAY_NAME + '= ?',
+ selectionArgs: ['testFile02.txt'],
+ };
+ let fetchResult = await media.getFileAssets(fileAssetFetchOp);
+ var fileAsset = await fetchResult.getFirstObject();
+ } catch (err) {
+ console.error('file asset get failed, message = ' + err);
+ }
+ let fdPub = await fileAsset.open('rw');
+ let fdSand = await fs.open(sandboxDirPath + 'testFile.txt', OpenMode.READ_WRITE);
+ await fs.copyFile(fdSand.fd, fdPub);
+ await fileAsset.close(fdPub);
+ await fs.close(fdSand.fd);
+ let fdPubRead = await fileAsset.open('rw');
+ try {
+ let arrayBuffer = new ArrayBuffer(4096);
+ await fs.read(fdPubRead, arrayBuffer);
+ var content_pub = String.fromCharCode(...new Uint8Array(arrayBuffer));
+ fileAsset.close(fdPubRead);
+ } catch (err) {
+ console.error('read text failed, message = ', err);
+ }
+ console.info('content read from public file: ', content_pub);
}
```
### Reading and Writing a File
-You can use **FileAsset.open** and **FileAsset.close** of [mediaLibrary](../reference/apis/js-apis-medialibrary.md) to open and close a file, and use **fileio.read** and **fileio.write** of [fileio](../reference/apis/js-apis-fileio.md) to read and write a file.
+You can use **FileAsset.open** and **FileAsset.close** of [mediaLibrary](../reference/apis/js-apis-medialibrary.md) to open and close a file, and use **fs.read** and **fs.write** in [file.fs](../reference/apis/js-apis-file-fs.md) to read and write the file.
**Prerequisites**
- You have obtained a **MediaLibrary** instance.
-- You have granted the permission **ohos.permission.WRITE_MEDIA**.
-- You have imported the module [@ohos.fileio](../reference/apis/js-apis-fileio.md) in addition to @ohos.multimedia.mediaLibrary.
+- You have granted the permissions **ohos.permission.READ_MEDIA** and **ohos.permission.WRITE_MEDIA**.
+- You have imported the module [@ohos.file.fs](../reference/apis/js-apis-file-fs.md) in addition to @ohos.multimedia.mediaLibrary.
**How to Develop**
1. Create a file.
- ```ts
- async function example() {
- let mediaType = mediaLibrary.MediaType.FILE;
- let DIR_DOCUMENTS = mediaLibrary.DirectoryType.DIR_DOCUMENTS;
- const context = getContext(this);
- let media = mediaLibrary.getMediaLibrary(context);
- const path = await media.getPublicDirectory(DIR_DOCUMENTS);
- media.createAsset(mediaType, "testFile.text", path).then (function (asset) {
- console.info("createAsset successfully:" + JSON.stringify(asset));
- }).catch(function(err){
- console.info("createAsset failed with error: " + err);
- });
- }
- ```
+```ts
+async function example() {
+ let mediaType = mediaLibrary.MediaType.FILE;
+ let DIR_DOCUMENTS = mediaLibrary.DirectoryType.DIR_DOCUMENTS;
+ const context = getContext(this);
+ let media = mediaLibrary.getMediaLibrary(context);
+ const path = await media.getPublicDirectory(DIR_DOCUMENTS);
+ media.createAsset(mediaType, "testFile.text", path).then((asset) => {
+ console.info("createAsset successfully:" + JSON.stringify(asset));
+ }).catch((err) => {
+ console.error("createAsset failed with error: " + err);
+ });
+}
+```
2. Call **FileAsset.open** to open the file.
-3. Call **fileio.write** to write a string to the file.
+3. Call [fs.write](../reference/apis/js-apis-file-fs.md#fswrite) to write a string to the file.
-4. Call **fileio.read** to read the file and save the data read in an array buffer.
+4. Call [fs.read](../reference/apis/js-apis-file-fs.md#fsread) to read the file and save the data read in an array buffer.
5. Convert the array buffer to a string.
@@ -191,25 +196,25 @@ You can use **FileAsset.open** and **FileAsset.close** of [mediaLibrary](../refe
```ts
async function writeOnlyPromise() {
- const context = getContext(this);
- let media = mediaLibrary.getMediaLibrary(context);
- let fileKeyObj = mediaLibrary.FileKey;
- let fileAssetFetchOp = {
- selections: fileKeyObj.DISPLAY_NAME + '= ?',
- selectionArgs: ['testFile.txt'],
- };
- let fetchResult = await media.getFileAssets(fileAssetFetchOp);
- let fileAsset = await fetchResult.getFirstObject();
- console.info('fileAssetName: ', fileAsset.displayName);
-
- try {
- let fd = await fileAsset.open('w');
- console.info('file descriptor: ', fd);
- await fileio.write(fd, "Write file test content.");
- await fileAsset.close(fd);
- } catch (err) {
- console.info('write file failed, message = ', err);
- }
+ const context = getContext(this);
+ let media = mediaLibrary.getMediaLibrary(context);
+ let fileKeyObj = mediaLibrary.FileKey;
+ let fileAssetFetchOp = {
+ selections: fileKeyObj.DISPLAY_NAME + '= ?',
+ selectionArgs: ['testFile.txt'],
+ };
+ let fetchResult = await media.getFileAssets(fileAssetFetchOp);
+ let fileAsset = await fetchResult.getFirstObject();
+ console.info('fileAssetName: ', fileAsset.displayName);
+
+ try {
+ let fd = await fileAsset.open('w');
+ console.info('file descriptor: ', fd);
+ await fs.write(fd, "Write file test content.");
+ await fileAsset.close(fd);
+ } catch (err) {
+ console.error('write file failed, message = ', err);
+ }
}
```
@@ -217,28 +222,28 @@ async function writeOnlyPromise() {
```ts
async function readOnlyPromise() {
- const context = getContext(this);
- let media = mediaLibrary.getMediaLibrary(context);
- let fileKeyObj = mediaLibrary.FileKey;
- let fileAssetFetchOp = {
- selections: fileKeyObj.DISPLAY_NAME + '= ?' ,
- selectionArgs: ['testFile.txt'],
- };
- let fetchResult = await media.getFileAssets(fileAssetFetchOp);
- let fileAsset = await fetchResult.getFirstObject();
- console.info('fileAssetName: ', fileAsset.displayName);
-
- try {
- let fd = await fileAsset.open('r');
- let arrayBuffer = new ArrayBuffer(4096);
- await fileio.read(fd, arrayBuffer);
- let fileContent = String.fromCharCode(...new Uint8Array(arrayBuffer));
- globalThis.fileContent = fileContent;
- globalThis.fileName = fileAsset.displayName;
- console.info('file content: ', fileContent);
- await fileAsset.close(fd);
- } catch (err) {
- console.info('read file failed, message = ', err);
- }
+ const context = getContext(this);
+ let media = mediaLibrary.getMediaLibrary(context);
+ let fileKeyObj = mediaLibrary.FileKey;
+ let fileAssetFetchOp = {
+ selections: fileKeyObj.DISPLAY_NAME + '= ?' ,
+ selectionArgs: ['testFile.txt'],
+ };
+ let fetchResult = await media.getFileAssets(fileAssetFetchOp);
+ let fileAsset = await fetchResult.getFirstObject();
+ console.info('fileAssetName: ', fileAsset.displayName);
+
+ try {
+ let fd = await fileAsset.open('r');
+ let arrayBuffer = new ArrayBuffer(4096);
+ await fs.read(fd, arrayBuffer);
+ let fileContent = String.fromCharCode(...new Uint8Array(arrayBuffer));
+ globalThis.fileContent = fileContent;
+ globalThis.fileName = fileAsset.displayName;
+ console.info('file content: ', fileContent);
+ await fileAsset.close(fd);
+ } catch (err) {
+ console.error('read file failed, message = ', err);
+ }
}
```
diff --git a/en/application-dev/file-management/medialibrary-overview.md b/en/application-dev/file-management/medialibrary-overview.md
index 481a87c8a103fafe4f496d76b3163e7a03f9d28c..f7e0ab9ac4772a7770b1e2bc9f6b63845cb654b5 100644
--- a/en/application-dev/file-management/medialibrary-overview.md
+++ b/en/application-dev/file-management/medialibrary-overview.md
@@ -64,64 +64,64 @@ After configuring the permissions in the **module.json5** file, the application
1. Declare the permissions in the **module.json5** file. Add the **requestPermissions** tag under **module** in the file, and set the tag based on the project requirements. For details about the tag, see [Guide for Requesting Permissions from User](../security/accesstoken-guidelines.md).
- ```json
- {
- "module": {
- "requestPermissions": [
- {
- "name": "ohos.permission.MEDIA_LOCATION",
- "reason": "$string:reason",
- "usedScene": {
- "abilities": [
- "EntryAbility"
- ],
- "when": "always"
- }
- },
- {
- "name": "ohos.permission.READ_MEDIA",
- "reason": "$string:reason",
- "usedScene": {
- "abilities": [
- "EntryAbility"
- ],
- "when": "always"
- }
- },
- {
- "name": "ohos.permission.WRITE_MEDIA",
- "reason": "$string:reason",
- "usedScene": {
- "abilities": [
- "EntryAbility"
- ],
- "when": "always"
- }
- }
- ]
- }
- }
- ```
+```json
+{
+ "module": {
+ "requestPermissions": [
+ {
+ "name": "ohos.permission.MEDIA_LOCATION",
+ "reason": "$string:reason",
+ "usedScene": {
+ "abilities": [
+ "EntryAbility"
+ ],
+ "when": "always"
+ }
+ },
+ {
+ "name": "ohos.permission.READ_MEDIA",
+ "reason": "$string:reason",
+ "usedScene": {
+ "abilities": [
+ "EntryAbility"
+ ],
+ "when": "always"
+ }
+ },
+ {
+ "name": "ohos.permission.WRITE_MEDIA",
+ "reason": "$string:reason",
+ "usedScene": {
+ "abilities": [
+ "EntryAbility"
+ ],
+ "when": "always"
+ }
+ }
+ ]
+ }
+}
+```
2. In the **Ability.ts** file, call **requestPermissionsFromUser** in the **onWindowStageCreate** callback to check for the required permissions and if they are not granted, request the permissions from the user by displaying a dialog box.
- ```ts
- import UIAbility from '@ohos.app.ability.UIAbility';
- import abilityAccessCtrl, {Permissions} from '@ohos.abilityAccessCtrl';
-
- export default class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage) {
- let list : Array = ['ohos.permission.READ_MEDIA', 'ohos.permission.WRITE_MEDIA'];
- let permissionRequestResult;
- let atManager = abilityAccessCtrl.createAtManager();
- atManager.requestPermissionsFromUser(this.context, list, (err, result) => {
- if (err) {
- console.log('requestPermissionsFromUserError: ' + JSON.stringify(err));
- } else {
- permissionRequestResult=result;
- console.log('permissionRequestResult: ' + JSON.stringify(permissionRequestResult));
- }
- });
- }
- }
- ```
+```ts
+import UIAbility from '@ohos.app.ability.UIAbility';
+import abilityAccessCtrl, {Permissions} from '@ohos.abilityAccessCtrl';
+
+export default class EntryAbility extends UIAbility {
+ onWindowStageCreate(windowStage) {
+ let list : Array = ['ohos.permission.READ_MEDIA', 'ohos.permission.WRITE_MEDIA'];
+ let permissionRequestResult;
+ let atManager = abilityAccessCtrl.createAtManager();
+ atManager.requestPermissionsFromUser(this.context, list, (err, result) => {
+ if (err) {
+ console.error('requestPermissionsFromUserError: ' + JSON.stringify(err));
+ } else {
+ permissionRequestResult = result;
+ console.info('permissionRequestResult: ' + JSON.stringify(permissionRequestResult));
+ }
+ });
+ }
+}
+```
diff --git a/en/application-dev/file-management/medialibrary-resource-guidelines.md b/en/application-dev/file-management/medialibrary-resource-guidelines.md
index dea130ff3de563a904684d021a7d8f7f9b514c83..7d120ec9a4fa9fd38ba92be97ee7fdd5a6f33816 100644
--- a/en/application-dev/file-management/medialibrary-resource-guidelines.md
+++ b/en/application-dev/file-management/medialibrary-resource-guidelines.md
@@ -33,30 +33,33 @@ To specify the image as the media type, set **selectionArgs** to **MediaType.IMA
```ts
async function example() {
- let fileKeyObj = mediaLibrary.FileKey;
- let fileType = mediaLibrary.MediaType.IMAGE;
- let option = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [fileType.toString()],
- };
- const context = getContext(this);
- let media = mediaLibrary.getMediaLibrary(context);
- const fetchFileResult = await media.getFileAssets(option);
- for (let i = 0; i < fetchFileResult.getCount(); i++) {
- fetchFileResult.getNextObject((err, fileAsset) => {
- if (err) {
- console.error('Failed ');
- return;
- }
- console.log('fileAsset.displayName ' + i + ': ' + fileAsset.displayName);
- })
- }
+ let fileKeyObj = mediaLibrary.FileKey;
+ let fileType = mediaLibrary.MediaType.IMAGE;
+ let option = {
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [fileType.toString()],
+ };
+ const context = getContext(this);
+ let media = mediaLibrary.getMediaLibrary(context);
+ const fetchFileResult = await media.getFileAssets(option);
+ fetchFileResult.getFirstObject().then((fileAsset) => {
+ console.log('getFirstObject.displayName : ' + fileAsset.displayName);
+ for (let i = 1; i < fetchFileResult.getCount(); i++) {
+ fetchFileResult.getNextObject().then((fileAsset) => {
+ console.info('fileAsset.displayName ' + i + ': ' + fileAsset.displayName);
+ }).catch((err) => {
+ console.error('Failed to get next object: ' + err);
+ });
+ }
+ }).catch((err) => {
+ console.error('Failed to get first object: ' + err);
+ });
}
```
### Querying Media Assets with the Specified Date
-The following describes how to obtain media assets that are added on the specified date. You can also use the modification date and shooting date as the retrieval conditions.
+The following describes how to obtain all the media assets that are added from the specified date. You can also use the modification date and shooting date as the retrieval conditions.
To specify the date when the files are added as the retrieval condition, set **selections** to **FileKey.DATE_ADDED**.
@@ -64,23 +67,26 @@ To specify the date 2022-8-5, set **selectionArgs** to **2022-8-5**.
```ts
async function example() {
- let fileKeyObj = mediaLibrary.FileKey;
- let option = {
- selections: fileKeyObj.DATE_ADDED + '= ?',
- selectionArgs: ['2022-8-5'],
- };
- const context = getContext(this);
- let media = mediaLibrary.getMediaLibrary(context);
- const fetchFileResult = await media.getFileAssets(option);
- for (let i = 0; i < fetchFileResult.getCount(); i++) {
- fetchFileResult.getNextObject((err, fileAsset) => {
- if (err) {
- console.error('Failed ');
- return;
- }
- console.log('fileAsset.displayName ' + i + ': ' + fileAsset.displayName);
- })
- }
+ let fileKeyObj = mediaLibrary.FileKey;
+ let option = {
+ selections: fileKeyObj.DATE_ADDED + '> ?',
+ selectionArgs: ['2022-8-5'],
+ };
+ const context = getContext(this);
+ let media = mediaLibrary.getMediaLibrary(context);
+ const fetchFileResult = await media.getFileAssets(option);
+ fetchFileResult.getFirstObject().then((fileAsset) => {
+ console.info('getFirstObject.displayName : ' + fileAsset.displayName);
+ for (let i = 1; i < fetchFileResult.getCount(); i++) {
+ fetchFileResult.getNextObject().then((fileAsset) => {
+ console.info('fileAsset.displayName ' + i + ': ' + fileAsset.displayName);
+ }).catch((err) => {
+ console.error('Failed to get next object: ' + err);
+ });
+ }
+ }).catch((err) => {
+ console.error('Failed to get first object: ' + err);
+ });
}
```
@@ -92,25 +98,28 @@ To sort files in descending order by the date when they are added, set **order**
```ts
async function example() {
- let fileKeyObj = mediaLibrary.FileKey;
- let fileType = mediaLibrary.MediaType.IMAGE;
- let option = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [fileType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- };
- const context = getContext(this);
- let media = mediaLibrary.getMediaLibrary(context);
- const fetchFileResult = await media.getFileAssets(option);
- for (let i = 0; i < fetchFileResult.getCount(); i++) {
- fetchFileResult.getNextObject((err, fileAsset) => {
- if (err) {
- console.error('Failed ');
- return;
- }
- console.log('fileAsset.displayName ' + i + ': ' + fileAsset.displayName);
- })
- }
+ let fileKeyObj = mediaLibrary.FileKey;
+ let fileType = mediaLibrary.MediaType.IMAGE;
+ let option = {
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [fileType.toString()],
+ order: fileKeyObj.DATE_ADDED + " DESC",
+ };
+ const context = getContext(this);
+ let media = mediaLibrary.getMediaLibrary(context);
+ const fetchFileResult = await media.getFileAssets(option);
+ fetchFileResult.getFirstObject().then((fileAsset) => {
+ console.info('getFirstObject.displayName : ' + fileAsset.displayName);
+ for (let i = 1; i < fetchFileResult.getCount(); i++) {
+ fetchFileResult.getNextObject().then((fileAsset) => {
+ console.info('fileAsset.displayName ' + i + ': ' + fileAsset.displayName);
+ }).catch((err) => {
+ console.error('Failed to get next object: ' + err);
+ });
+ }
+ }).catch((err) => {
+ console.error('Failed to get first object: ' + err);
+ });
}
```
@@ -124,31 +133,29 @@ To specify the album name **'myAlbum'**, set **selectionArgs** to **'myAlbum'**.
```ts
async function example() {
- let fileKeyObj = mediaLibrary.FileKey;
- let fileType = mediaLibrary.MediaType.IMAGE;
- let option = {
- selections: fileKeyObj.ALBUM_NAME + '= ?',
- selectionArgs: ['myAlbum'],
- };
- const context = getContext(this);
- let media = mediaLibrary.getMediaLibrary(context);
- const fetchFileResult = await media.getFileAssets(option);
- for (let i = 0; i < fetchFileResult.getCount(); i++) {
- fetchFileResult.getNextObject((err, fileAsset) => {
- if (err) {
- console.error('Failed ');
- return;
- }
- console.log('fileAsset.displayName ' + i + ': ' + fileAsset.displayName);
- })
- }
+ let fileKeyObj = mediaLibrary.FileKey;
+ let option = {
+ selections: fileKeyObj.ALBUM_NAME + '= ?',
+ selectionArgs: ['myAlbum'],
+ };
+ const context = getContext(this);
+ let media = mediaLibrary.getMediaLibrary(context);
+ const fetchFileResult = await media.getFileAssets(option);
+ if (albumList.length > 0) {
+ fetchFileResult.getFirstObject().then((album) => {
+ console.info('getFirstObject.displayName : ' + album.albumName);
+ }).catch((err) => {
+ console.error('Failed to get first object: ' + err);
+ });
+ } else {
+ console.info('getAlbum list is: 0');
+ }
}
```
## Obtaining Images and Videos in an Album
You can obtain media assets in an album in either of the following ways:
-
- Call [MediaLibrary.getFileAssets](../reference/apis/js-apis-medialibrary.md#getfileassets7-1) with an album specified, as described in [Querying Media Assets with the Specfied Album Name](#querying-media-assets-with-the-specified-album-name).
- Call [Album.getFileAssets](../reference/apis/js-apis-medialibrary.md#getfileassets7-3) to obtain an **Album** instance, so as to obtain the media assets in it.
@@ -163,24 +170,24 @@ The following describes how to obtain videos in an album named **New Album 1**.
1. Create a retrieval condition for obtaining the target **Album** instance.
- ```ts
- let fileKeyObj = mediaLibrary.FileKey;
- let AlbumNoArgsFetchOp = {
- selections: fileKeyObj.ALBUM_NAME + '= ?',
- selectionArgs:['New Album 1']
- }
- ```
+```ts
+let fileKeyObj = mediaLibrary.FileKey;
+let AlbumNoArgsFetchOp = {
+ selections: fileKeyObj.ALBUM_NAME + '= ?',
+ selectionArgs:['New Album 1']
+}
+```
2. Create a retrieval condition for obtaining videos in the target album.
- ```ts
- let fileKeyObj = mediaLibrary.FileKey;
- let imageType = mediaLibrary.MediaType.VIDEO;
- let imagesFetchOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- }
- ```
+```ts
+let fileKeyObj = mediaLibrary.FileKey;
+let videoType = mediaLibrary.MediaType.VIDEO;
+let videoFetchOp = {
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [videoType.toString()],
+}
+```
3. Call **Album.getFileAssets** to obtain the videos in the target album.
@@ -188,28 +195,28 @@ Complete sample code:
```ts
async function getCameraImagePromise() {
- const context = getContext(this);
- let media = mediaLibrary.getMediaLibrary(context);
- let fileKeyObj = mediaLibrary.FileKey;
- let imageType = mediaLibrary.MediaType.IMAGE;
- let imagesFetchOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- }
- let AlbumNoArgsFetchOp = {
- selections: fileKeyObj.ALBUM_NAME + '= ?',
- selectionArgs:['New Album 1']
- }
-
- let albumList = await media.getAlbums(AlbumNoArgsFetchOp);
- if (albumList.length > 0) {
- const album = albumList[0];
- let fetchFileResult = await album.getFileAssets(imagesFetchOp);
- let count = fetchFileResult.getCount();
- console.info("get mediaLibrary IMAGE number", count);
- } else {
- console.info('getAlbum list is: 0');
- }
+ const context = getContext(this);
+ let media = mediaLibrary.getMediaLibrary(context);
+ let fileKeyObj = mediaLibrary.FileKey;
+ let videoType = mediaLibrary.MediaType.VIDEO;
+ let videoFetchOp = {
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [videoType.toString()],
+ }
+ let AlbumNoArgsFetchOp = {
+ selections: fileKeyObj.ALBUM_NAME + '= ?',
+ selectionArgs:['New Album 1']
+ }
+
+ let albumList = await media.getAlbums(AlbumNoArgsFetchOp);
+ if (albumList.length > 0) {
+ const album = albumList[0];
+ let fetchFileResult = await album.getFileAssets(videoFetchOp);
+ let count = fetchFileResult.getCount();
+ console.info("get mediaLibrary VIDEO number", count);
+ } else {
+ console.info('getAlbum list is: 0');
+ }
}
```
@@ -235,31 +242,32 @@ The following describes how to obtain the thumbnail (size: 720 x 720) of the fir
```ts
async function getFirstThumbnailPromise() {
- const context = getContext(this);
- let media = mediaLibrary.getMediaLibrary(context);
- let fileKeyObj = mediaLibrary.FileKey;
- let imageType = mediaLibrary.MediaType.IMAGE;
- let imagesFetchOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- }
-
- let size = { width: 720, height: 720 };
- const fetchFileResult = await media.getFileAssets(imagesFetchOp);
- if (fetchFileResult != undefined) {
- const asset = await fetchFileResult.getFirstObject();
- asset.getThumbnail(size).then((pixelMap) => {
- pixelMap.getImageInfo().then((info) => {
- console.info('get Thumbnail info: ' + "width: " + info.size.width + " height: " + info.size.height);
- }).catch((err) => {
- console.info("getImageInfo failed with error:" + err);
- });
- }).catch((err) => {
- console.info("getImageInfo failed with error:" + err);
- });
- } else {
- console.info("get image failed with error");
- }
+ const context = getContext(this);
+ let media = mediaLibrary.getMediaLibrary(context);
+ let fileKeyObj = mediaLibrary.FileKey;
+ let imageType = mediaLibrary.MediaType.IMAGE;
+ let imagesFetchOp = {
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ }
+
+ let size = { width: 720, height: 720 };
+ const fetchFileResult = await media.getFileAssets(imagesFetchOp);
+ if (fetchFileResult === undefined) {
+ console.error("get image failed with error");
+ return;
+ } else {
+ const asset = await fetchFileResult.getFirstObject();
+ asset.getThumbnail(size).then((pixelMap) => {
+ pixelMap.getImageInfo().then((info) => {
+ console.info('get Thumbnail info: ' + "width: " + info.size.width + " height: " + info.size.height);
+ }).catch((err) => {
+ console.error("getImageInfo failed with error: " + err);
+ });
+ }).catch((err) => {
+ console.error("getImageInfo failed with error: " + err);
+ });
+ }
}
```
@@ -277,16 +285,16 @@ The following describes how to create a file of the **MediaType.FILE** type.
```ts
async function example() {
- let mediaType = mediaLibrary.MediaType.FILE;
- let DIR_DOCUMENTS = mediaLibrary.DirectoryType.DIR_DOCUMENTS;
- const context = getContext(this);
- let media = mediaLibrary.getMediaLibrary(context);
- const path = await media.getPublicDirectory(DIR_DOCUMENTS);
- media.createAsset(mediaType, "testFile.text", path).then ((asset) => {
- console.info("createAsset successfully:"+ JSON.stringify(asset));
- }).catch((err) => {
- console.info("createAsset failed with error:"+ err);
- });
+ let mediaType = mediaLibrary.MediaType.FILE;
+ let DIR_DOCUMENTS = mediaLibrary.DirectoryType.DIR_DOCUMENTS;
+ const context = getContext(this);
+ let media = mediaLibrary.getMediaLibrary(context);
+ const path = await media.getPublicDirectory(DIR_DOCUMENTS);
+ media.createAsset(mediaType, "testFile.text", path).then((asset) => {
+ console.info("createAsset successfully:"+ JSON.stringify(asset));
+ }).catch((err) => {
+ console.error("createAsset failed with error: " + err);
+ });
}
```
@@ -312,26 +320,26 @@ The following describes how to move the first file in the result set to the recy
```ts
async function example() {
- let fileKeyObj = mediaLibrary.FileKey;
- let fileType = mediaLibrary.MediaType.FILE;
- let option = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [fileType.toString()],
- };
- const context = getContext(this);
- let media = mediaLibrary.getMediaLibrary(context);
- const fetchFileResult = await media.getFileAssets(option);
- let asset = await fetchFileResult.getFirstObject();
- if (asset == undefined) {
- console.error('asset not exist');
- return;
- }
- // Void callback.
- asset.trash(true).then(() => {
- console.info("trash successfully");
- }).catch((err) => {
- console.info("trash failed with error: " + err);
- });
+ let fileKeyObj = mediaLibrary.FileKey;
+ let fileType = mediaLibrary.MediaType.FILE;
+ let option = {
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [fileType.toString()],
+ };
+ const context = getContext(this);
+ let media = mediaLibrary.getMediaLibrary(context);
+ const fetchFileResult = await media.getFileAssets(option);
+ let asset = await fetchFileResult.getFirstObject();
+ if (asset === undefined) {
+ console.error('asset not exist');
+ return;
+ }
+ // Void callback.
+ asset.trash(true).then(() => {
+ console.info("trash successfully");
+ }).catch((err) => {
+ console.error("trash failed with error: " + err);
+ });
}
```
@@ -346,7 +354,7 @@ Before renaming a file, you must obtain the file, for example, by calling [Fetch
- You have obtained a **MediaLibrary** instance.
- You have granted the permission **ohos.permission.WRITE_MEDIA**.
-The following describes how to rename the first file in the result set as **newtitle.text**.
+The following describes how to rename the first file in the result set as **newImage.jpg**.
**How to Develop**
@@ -358,28 +366,28 @@ The following describes how to rename the first file in the result set as **newt
```ts
async function example() {
- let fileKeyObj = mediaLibrary.FileKey;
- let fileType = mediaLibrary.MediaType.FILE;
- let option = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [fileType.toString()],
- };
- const context = getContext(this);
- let media = mediaLibrary.getMediaLibrary(context);
- const fetchFileResult = await media.getFileAssets(option);
- let asset = await fetchFileResult.getFirstObject();
- if (asset == undefined) {
- console.error('asset not exist');
+ let fileKeyObj = mediaLibrary.FileKey;
+ let fileType = mediaLibrary.MediaType.IMAGE;
+ let option = {
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [fileType.toString()],
+ };
+ const context = getContext(this);
+ let media = mediaLibrary.getMediaLibrary(context);
+ const fetchFileResult = await media.getFileAssets(option);
+ let asset = await fetchFileResult.getFirstObject();
+ if (asset === undefined) {
+ console.error('asset not exist');
+ return;
+ }
+ asset.displayName = 'newImage.jpg';
+ // Void callback.
+ asset.commitModify((err) => {
+ if (err) {
+ console.error('fileRename Failed ');
return;
}
- asset.displayName = 'newImage.jpg';
- // Void callback.
- asset.commitModify((err) => {
- if (err) {
- console.error('fileRename Failed ');
- return;
- }
- console.log('fileRename successful.');
- });
+ console.info('fileRename successful.');
+ });
}
```
diff --git a/en/application-dev/media/Readme-EN.md b/en/application-dev/media/Readme-EN.md
index d65c0d9dbe51f963385afaac0b75deccc6b21d2b..926a2718a48dcefd217e503932f9d9f997d1275e 100755
--- a/en/application-dev/media/Readme-EN.md
+++ b/en/application-dev/media/Readme-EN.md
@@ -1,9 +1,7 @@
# Media
-- Audio
+- Audio and Video
- [Audio Overview](audio-overview.md)
- - [Audio Playback Development](audio-playback.md)
- - [Audio Recording Development](audio-recorder.md)
- [Audio Rendering Development](audio-renderer.md)
- [Audio Stream Management Development](audio-stream-manager.md)
- [Audio Capture Development](audio-capturer.md)
@@ -12,8 +10,10 @@
- [Audio Interruption Mode Development](audio-interruptmode.md)
- [Volume Management Development](audio-volume-manager.md)
- [Audio Routing and Device Management Development](audio-routing-manager.md)
-
-- Video
+ - [AVPlayer Development (Recommended)](avplayer-playback.md)
+ - [AVRecorder Development (Recommended)](avrecorder.md)
+ - [Audio Playback Development](audio-playback.md)
+ - [Audio Recording Development](audio-recorder.md)
- [Video Playback Development](video-playback.md)
- [Video Recording Development](video-recorder.md)
diff --git a/en/application-dev/media/audio-capturer.md b/en/application-dev/media/audio-capturer.md
index 4202b8ea4d78e9c38f43fc77bf7ea503712340d8..8371b6248d71f48e9088da849dc36c3edb2be3cf 100644
--- a/en/application-dev/media/audio-capturer.md
+++ b/en/application-dev/media/audio-capturer.md
@@ -72,7 +72,7 @@ For details about the APIs, see [AudioCapturer in Audio Management](../reference
}
await audioCapturer.start();
- let state = audioCapturer.state;
+ state = audioCapturer.state;
if (state == audio.AudioState.STATE_RUNNING) {
console.info('AudioRecLog: Capturer started');
} else {
@@ -86,7 +86,7 @@ For details about the APIs, see [AudioCapturer in Audio Management](../reference
The following example shows how to write recorded data into a file.
```js
- import fileio from '@ohos.fileio';
+ import fs from '@ohos.file.fs';
let state = audioCapturer.state;
// The read operation can be performed only when the state is STATE_RUNNING.
@@ -96,31 +96,36 @@ For details about the APIs, see [AudioCapturer in Audio Management](../reference
}
const path = '/data/data/.pulse_dir/capture_js.wav'; // Path for storing the collected audio file.
- let fd = fileio.openSync(path, 0o102, 0o777);
- if (fd !== null) {
- console.info('AudioRecLog: file fd created');
- }
- else{
- console.info('AudioRecLog: file fd create : FAILED');
+ let file = fs.openSync(filePath, 0o2);
+ let fd = file.fd;
+ if (file !== null) {
+ console.info('AudioRecLog: file created');
+ } else {
+ console.info('AudioRecLog: file create : FAILED');
return;
}
-
- fd = fileio.openSync(path, 0o2002, 0o666);
+
if (fd !== null) {
console.info('AudioRecLog: file fd opened in append mode');
}
let numBuffersToCapture = 150; // Write data for 150 times.
+ let count = 0;
while (numBuffersToCapture) {
+ let bufferSize = await audioCapturer.getBufferSize();
let buffer = await audioCapturer.read(bufferSize, true);
+ let options = {
+ offset: count * this.bufferSize,
+ length: this.bufferSize
+ }
if (typeof(buffer) == undefined) {
console.info('AudioRecLog: read buffer failed');
} else {
- let number = fileio.writeSync(fd, buffer);
+ let number = fs.writeSync(fd, buffer, options);
console.info(`AudioRecLog: data written: ${number}`);
- }
-
+ }
numBuffersToCapture--;
+ count++;
}
```
@@ -189,7 +194,7 @@ For details about the APIs, see [AudioCapturer in Audio Management](../reference
let audioTime : number = await audioCapturer.getAudioTime();
// Obtain a proper minimum buffer size.
- let bufferSize : number = await audioCapturer.getBuffersize();
+ let bufferSize : number = await audioCapturer.getBufferSize();
```
7. (Optional) Use **on('markReach')** to subscribe to the mark reached event, and use **off('markReach')** to unsubscribe from the event.
diff --git a/en/application-dev/media/audio-playback.md b/en/application-dev/media/audio-playback.md
index bbdb993ecdb9a1289a939af43db0e670ec10f98f..1c7953d32b8ecee4c0ff34e82ab8d13947ac9271 100644
--- a/en/application-dev/media/audio-playback.md
+++ b/en/application-dev/media/audio-playback.md
@@ -38,7 +38,7 @@ For details about the **src** types supported by **AudioPlayer**, see the [src a
```js
import media from '@ohos.multimedia.media'
-import fileIO from '@ohos.fileio'
+import fs from '@ohos.file.fs'
// Print the stream track information.
function printfDescription(obj) {
@@ -112,14 +112,8 @@ async function audioPlayerDemo() {
let pathDir = "/data/storage/el2/base/haps/entry/files" // The path used here is an example. Obtain the path based on project requirements.
// The stream in the path can be pushed to the device by running the "hdc file send D:\xxx\01.mp3 /data/app/el2/100/base/ohos.acts.multimedia.audio.audioplayer/haps/entry/files" command.
let path = pathDir + '/01.mp3'
- await fileIO.open(path).then((fdNumber) => {
- fdPath = fdPath + '' + fdNumber;
- console.info('open fd success fd is' + fdPath);
- }, (err) => {
- console.info('open fd failed err is' + err);
- }).catch((err) => {
- console.info('open fd failed err is' + err);
- });
+ let file = await fs.open(path);
+ fdPath = fdPath + '' + file.fd;
audioPlayer.src = fdPath; // Set the src attribute and trigger the 'dataLoad' event callback.
}
```
@@ -128,7 +122,7 @@ async function audioPlayerDemo() {
```js
import media from '@ohos.multimedia.media'
-import fileIO from '@ohos.fileio'
+import fs from '@ohos.file.fs'
export class AudioDemo {
// Set the player callbacks.
@@ -154,14 +148,8 @@ export class AudioDemo {
let pathDir = "/data/storage/el2/base/haps/entry/files" // The path used here is an example. Obtain the path based on project requirements.
// The stream in the path can be pushed to the device by running the "hdc file send D:\xxx\01.mp3 /data/app/el2/100/base/ohos.acts.multimedia.audio.audioplayer/haps/entry/files" command.
let path = pathDir + '/01.mp3'
- await fileIO.open(path).then((fdNumber) => {
- fdPath = fdPath + '' + fdNumber;
- console.info('open fd success fd is' + fdPath);
- }, (err) => {
- console.info('open fd failed err is' + err);
- }).catch((err) => {
- console.info('open fd failed err is' + err);
- });
+ let file = await fs.open(path);
+ fdPath = fdPath + '' + file.fd;
audioPlayer.src = fdPath; // Set the src attribute and trigger the 'dataLoad' event callback.
}
}
@@ -171,7 +159,7 @@ export class AudioDemo {
```js
import media from '@ohos.multimedia.media'
-import fileIO from '@ohos.fileio'
+import fs from '@ohos.file.fs'
export class AudioDemo {
// Set the player callbacks.
@@ -202,14 +190,8 @@ export class AudioDemo {
let pathDir = "/data/storage/el2/base/haps/entry/files" // The path used here is an example. Obtain the path based on project requirements.
// The stream in the path can be pushed to the device by running the "hdc file send D:\xxx\02.mp3 /data/app/el2/100/base/ohos.acts.multimedia.audio.audioplayer/haps/entry/files" command.
let nextpath = pathDir + '/02.mp3'
- await fileIO.open(nextpath).then((fdNumber) => {
- nextFdPath = nextFdPath + '' + fdNumber;
- console.info('open fd success fd is' + nextFdPath);
- }, (err) => {
- console.info('open fd failed err is' + err);
- }).catch((err) => {
- console.info('open fd failed err is' + err);
- });
+ let nextFile = await fs.open(nextpath);
+ nextFdPath = nextFdPath + '' + nextFile.fd;
audioPlayer.src = nextFdPath; // Set the src attribute and trigger the 'dataLoad' event callback.
}
@@ -220,14 +202,8 @@ export class AudioDemo {
let pathDir = "/data/storage/el2/base/haps/entry/files" // The path used here is an example. Obtain the path based on project requirements.
// The stream in the path can be pushed to the device by running the "hdc file send D:\xxx\01.mp3 /data/app/el2/100/base/ohos.acts.multimedia.audio.audioplayer/haps/entry/files" command.
let path = pathDir + '/01.mp3'
- await fileIO.open(path).then((fdNumber) => {
- fdPath = fdPath + '' + fdNumber;
- console.info('open fd success fd is' + fdPath);
- }, (err) => {
- console.info('open fd failed err is' + err);
- }).catch((err) => {
- console.info('open fd failed err is' + err);
- });
+ let file = await fs.open(path);
+ fdPath = fdPath + '' + file.fd;
audioPlayer.src = fdPath; // Set the src attribute and trigger the 'dataLoad' event callback.
}
}
@@ -237,7 +213,7 @@ export class AudioDemo {
```js
import media from '@ohos.multimedia.media'
-import fileIO from '@ohos.fileio'
+import fs from '@ohos.file.fs'
export class AudioDemo {
// Set the player callbacks.
@@ -259,14 +235,8 @@ export class AudioDemo {
let pathDir = "/data/storage/el2/base/haps/entry/files" // The path used here is an example. Obtain the path based on project requirements.
// The stream in the path can be pushed to the device by running the "hdc file send D:\xxx\01.mp3 /data/app/el2/100/base/ohos.acts.multimedia.audio.audioplayer/haps/entry/files" command.
let path = pathDir + '/01.mp3'
- await fileIO.open(path).then((fdNumber) => {
- fdPath = fdPath + '' + fdNumber;
- console.info('open fd success fd is' + fdPath);
- }, (err) => {
- console.info('open fd failed err is' + err);
- }).catch((err) => {
- console.info('open fd failed err is' + err);
- });
+ let file = await fs.open(path);
+ fdPath = fdPath + '' + file.fd;
audioPlayer.src = fdPath; // Set the src attribute and trigger the 'dataLoad' event callback.
}
}
diff --git a/en/application-dev/media/audio-renderer.md b/en/application-dev/media/audio-renderer.md
index 0b5b382d72fec98bfa18c3cfdee7bd61ef713da1..4a39544e7483b68d0bc15b00d643c8403dbded46 100644
--- a/en/application-dev/media/audio-renderer.md
+++ b/en/application-dev/media/audio-renderer.md
@@ -33,31 +33,30 @@ The following figure shows the audio renderer state transitions.
For details about the APIs, see [AudioRenderer in Audio Management](../reference/apis/js-apis-audio.md#audiorenderer8).
1. Use **createAudioRenderer()** to create an **AudioRenderer** instance.
-
-Set parameters of the **AudioRenderer** instance in **audioRendererOptions**. This instance is used to render audio, control and obtain the rendering status, and register a callback for notification.
+ Set parameters of the **AudioRenderer** instance in **audioRendererOptions**. This instance is used to render audio, control and obtain the rendering status, and register a callback for notification.
```js
- import audio from '@ohos.multimedia.audio';
-
- let audioStreamInfo = {
- samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
- channels: audio.AudioChannel.CHANNEL_1,
- sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
- encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
- }
- let audioRendererInfo = {
- content: audio.ContentType.CONTENT_TYPE_SPEECH,
- usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
- rendererFlags: 0 // 0 is the extended flag bit of the audio renderer. The default value is 0.
+ import audio from '@ohos.multimedia.audio';
+
+ let audioStreamInfo = {
+ samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_44100,
+ channels: audio.AudioChannel.CHANNEL_1,
+ sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
+ encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
+ }
+ let audioRendererInfo = {
+ content: audio.ContentType.CONTENT_TYPE_SPEECH,
+ usage: audio.StreamUsage.STREAM_USAGE_VOICE_COMMUNICATION,
+ rendererFlags: 0 // 0 is the extended flag bit of the audio renderer. The default value is 0.
+ }
+ let audioRendererOptions = {
+ streamInfo: audioStreamInfo,
+ rendererInfo: audioRendererInfo
}
- let audioRendererOptions = {
- streamInfo: audioStreamInfo,
- rendererInfo: audioRendererInfo
- }
- let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
- console.log("Create audio renderer success.");
+ let audioRenderer = await audio.createAudioRenderer(audioRendererOptions);
+ console.log("Create audio renderer success.");
```
2. Use **start()** to start audio rendering.
@@ -90,7 +89,7 @@ Set parameters of the **AudioRenderer** instance in **audioRendererOptions**. Th
Read the audio data to be played to the buffer. Call **write()** repeatedly to write the data to the buffer.
```js
- import fileio from '@ohos.fileio';
+ import fs from '@ohos.file.fs';
import audio from '@ohos.multimedia.audio';
async function writeBuffer(buf) {
@@ -109,35 +108,33 @@ Set parameters of the **AudioRenderer** instance in **audioRendererOptions**. Th
// Set a proper buffer size for the audio renderer. You can also select a buffer of another size.
const bufferSize = await audioRenderer.getBufferSize();
let dir = globalThis.fileDir; // You must use the sandbox path.
- const path = dir + '/file_example_WAV_2MG.wav'; // The file to render is in the following path: /data/storage/el2/base/haps/entry/files/file_example_WAV_2MG.wav
- console.info(`file path: ${ path}`);
- let ss = fileio.createStreamSync(path, 'r');
- const totalSize = fileio.statSync(path).size; // Size of the file to render.
- let discardHeader = new ArrayBuffer(bufferSize);
- ss.readSync(discardHeader);
- let rlen = 0;
- rlen += bufferSize;
-
- let id = setInterval(() => {
- if (audioRenderer.state == audio.AudioState.STATE_RELEASED) { // The rendering stops if the audio renderer is in the STATE_RELEASED state.
- ss.closeSync();
- await audioRenderer.stop();
- clearInterval(id);
- }
- if (audioRenderer.state == audio.AudioState.STATE_RUNNING) {
- if (rlen >= totalSize) { // The rendering stops if the file finishes reading.
- ss.closeSync();
- await audioRenderer.stop();
- clearInterval(id);
- }
- let buf = new ArrayBuffer(bufferSize);
- rlen += ss.readSync(buf);
- console.info(`Total bytes read from file: ${rlen}`);
- writeBuffer(buf);
- } else {
- console.info('check after next interval');
+ const filePath = dir + '/file_example_WAV_2MG.wav'; // The file to render is in the following path: /data/storage/el2/base/haps/entry/files/file_example_WAV_2MG.wav
+ console.info(`file filePath: ${ filePath}`);
+
+ let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
+ let stat = await fs.stat(filePath); // Music file information.
+ let buf = new ArrayBuffer(bufferSize);
+ let len = stat.size % this.bufferSize == 0 ? Math.floor(stat.size / this.bufferSize) : Math.floor(stat.size / this.bufferSize + 1);
+ for (let i = 0;i < len; i++) {
+ let options = {
+ offset: i * this.bufferSize,
+ length: this.bufferSize
}
- }, 30); // The timer interval is set based on the audio format. The unit is millisecond.
+ let readsize = await fs.read(file.fd, buf, options)
+ let writeSize = await new Promise((resolve,reject)=>{
+ this.audioRenderer.write(buf,(err,writeSize)=>{
+ if(err){
+ reject(err)
+ }else{
+ resolve(writeSize)
+ }
+ })
+ })
+ }
+
+ fs.close(file)
+ await audioRenderer.stop(); // Stop rendering.
+ await audioRenderer.release(); // Releases the resources.
```
4. (Optional) Call **pause()** or **stop()** to pause or stop rendering.
@@ -192,7 +189,6 @@ Set parameters of the **AudioRenderer** instance in **audioRendererOptions**. Th
}
await audioRenderer.drain();
-
state = audioRenderer.state;
}
```
@@ -209,7 +205,6 @@ Set parameters of the **AudioRenderer** instance in **audioRendererOptions**. Th
console.info('Renderer already released');
return;
}
-
await audioRenderer.release();
state = audioRenderer.state;
@@ -242,7 +237,7 @@ Set parameters of the **AudioRenderer** instance in **audioRendererOptions**. Th
let audioTime : number = await audioRenderer.getAudioTime();
// Obtain a proper minimum buffer size.
- let bufferSize : number = await audioRenderer.getBuffersize();
+ let bufferSize : number = await audioRenderer.getBufferSize();
// Obtain the audio renderer rate.
let renderRate : audio.AudioRendererRate = await audioRenderer.getRenderRate();
@@ -424,35 +419,31 @@ Set parameters of the **AudioRenderer** instance in **audioRendererOptions**. Th
let dir = globalThis.fileDir; // You must use the sandbox path.
const path1 = dir + '/music001_48000_32_1.wav'; // The file to render is in the following path: /data/storage/el2/base/haps/entry/files/music001_48000_32_1.wav
console.info(`audioRender1 file path: ${ path1}`);
- let ss1 = await fileio.createStream(path1,'r');
- const totalSize1 = fileio.statSync(path1).size; // Size of the file to render.
- console.info(`totalSize1 -------: ${totalSize1}`);
- let discardHeader = new ArrayBuffer(bufferSize);
- ss1.readSync(discardHeader);
- let rlen = 0;
- rlen += bufferSize;
-
+ let file1 = fs.openSync(path1, fs.OpenMode.READ_ONLY);
+ let stat = await fs.stat(path1); // Music file information.
+ let buf = new ArrayBuffer(bufferSize);
+ let len = stat.size % this.bufferSize == 0 ? Math.floor(stat.size / this.bufferSize) : Math.floor(stat.size / this.bufferSize + 1);
+
// 1.7 Render the original audio data in the buffer by using audioRender.
- let id = setInterval(async () => {
- if (audioRenderer1.state == audio.AudioState.STATE_RELEASED) { // The rendering stops if the audio renderer is in the STATE_RELEASED state.
- ss1.closeSync();
- audioRenderer1.stop();
- clearInterval(id);
+ for (let i = 0;i < len; i++) {
+ let options = {
+ offset: i * this.bufferSize,
+ length: this.bufferSize
}
- if (audioRenderer1.state == audio.AudioState.STATE_RUNNING) {
- if (rlen >= totalSize1) { // The rendering stops if the file finishes reading.
- ss1.closeSync();
- await audioRenderer1.stop();
- clearInterval(id);
- }
- let buf = new ArrayBuffer(bufferSize);
- rlen += ss1.readSync(buf);
- console.info(`Total bytes read from file: ${rlen}`);
- await writeBuffer(buf, that.audioRenderer1);
- } else {
- console.info('check after next interval');
- }
- }, 30); // The timer interval is set based on the audio format. The unit is millisecond.
+ let readsize = await fs.read(file.fd, buf, options)
+ let writeSize = await new Promise((resolve,reject)=>{
+ this.audioRenderer1.write(buf,(err,writeSize)=>{
+ if(err){
+ reject(err)
+ }else{
+ resolve(writeSize)
+ }
+ })
+ })
+ }
+ fs.close(file1)
+ await audioRenderer1.stop(); // Stop rendering.
+ await audioRenderer1.release(); Releases the resources.
}
async runningAudioRender2(){
@@ -499,36 +490,32 @@ Set parameters of the **AudioRenderer** instance in **audioRendererOptions**. Th
// 2.6 Read the original audio data file.
let dir = globalThis.fileDir; // You must use the sandbox path.
const path2 = dir + '/music002_48000_32_1.wav'; // The file to render is in the following path: /data/storage/el2/base/haps/entry/files/music002_48000_32_1.wav
- console.error(`audioRender1 file path: ${ path2}`);
- let ss2 = await fileio.createStream(path2,'r');
- const totalSize2 = fileio.statSync(path2).size; // Size of the file to render.
- console.error(`totalSize2 -------: ${totalSize2}`);
- let discardHeader2 = new ArrayBuffer(bufferSize);
- ss2.readSync(discardHeader2);
- let rlen = 0;
- rlen += bufferSize;
-
+ console.info(`audioRender2 file path: ${ path2}`);
+ let file2 = fs.openSync(path2, fs.OpenMode.READ_ONLY);
+ let stat = await fs.stat(path2); // Music file information.
+ let buf = new ArrayBuffer(bufferSize);
+ let len = stat.size % this.bufferSize == 0 ? Math.floor(stat.size / this.bufferSize) : Math.floor(stat.size / this.bufferSize + 1);
+
// 2.7 Render the original audio data in the buffer by using audioRender.
- let id = setInterval(async () => {
- if (audioRenderer2.state == audio.AudioState.STATE_RELEASED) { // The rendering stops if the audio renderer is in the STATE_RELEASED state.
- ss2.closeSync();
- that.audioRenderer2.stop();
- clearInterval(id);
- }
- if (audioRenderer1.state == audio.AudioState.STATE_RUNNING) {
- if (rlen >= totalSize2) { // The rendering stops if the file finishes reading.
- ss2.closeSync();
- await audioRenderer2.stop();
- clearInterval(id);
- }
- let buf = new ArrayBuffer(bufferSize);
- rlen += ss2.readSync(buf);
- console.info(`Total bytes read from file: ${rlen}`);
- await writeBuffer(buf, that.audioRenderer2);
- } else {
- console.info('check after next interval');
+ for (let i = 0;i < len; i++) {
+ let options = {
+ offset: i * this.bufferSize,
+ length: this.bufferSize
}
- }, 30); // The timer interval is set based on the audio format. The unit is millisecond.
+ let readsize = await fs.read(file.fd, buf, options)
+ let writeSize = await new Promise((resolve,reject)=>{
+ this.audioRenderer2.write(buf,(err,writeSize)=>{
+ if(err){
+ reject(err)
+ }else{
+ resolve(writeSize)
+ }
+ })
+ })
+ }
+ fs.close(file2)
+ await audioRenderer2.stop(); // Stop rendering.
+ await audioRenderer2.release(); // Releases the resources.
}
async writeBuffer(buf, audioRender) {
diff --git a/en/application-dev/media/avplayer-playback.md b/en/application-dev/media/avplayer-playback.md
index 270081373fb500877ca4352366982b66f72bc09a..324dd43e6f73d46e5f0d264ae81ba36802ee6021 100644
--- a/en/application-dev/media/avplayer-playback.md
+++ b/en/application-dev/media/avplayer-playback.md
@@ -104,7 +104,7 @@ The full playback process includes creating an instance, setting resources, sett
```js
import media from '@ohos.multimedia.media'
import audio from '@ohos.multimedia.audio';
-import fileIO from '@ohos.fileio'
+import fs from '@ohos.file.fs'
const TAG = 'AVPlayerDemo:'
export class AVPlayerDemo {
@@ -223,14 +223,8 @@ export class AVPlayerDemo {
let pathDir = "/data/storage/el2/base/haps/entry/files" // The path used here is an example. Obtain the path based on project requirements.
// The stream in the path can be pushed to the device by running the "hdc file send D:\xxx\H264_AAC.mp4 /data/app/el2/100/base/ohos.acts.multimedia.media.avplayer/haps/entry/files" command.
let path = pathDir + '/H264_AAC.mp4'
- await fileIO.open(path).then((fdNumber) => {
- fdPath = fdPath + '' + fdNumber
- console.info('open fd success fd is' + fdPath)
- }, (err) => {
- console.info('open fd failed err is' + err)
- }).catch((err) => {
- console.info('open fd failed err is' + err)
- });
+ let file = await fs.open(path)
+ fdPath = fdPath + '' + file.fd
this.avPlayer.url = fdPath
}
}
@@ -240,7 +234,7 @@ export class AVPlayerDemo {
```js
import media from '@ohos.multimedia.media'
-import fileIO from '@ohos.fileio'
+import fs from '@ohos.file.fs'
const TAG = 'AVPlayerDemo:'
export class AVPlayerDemo {
@@ -280,7 +274,7 @@ export class AVPlayerDemo {
break;
case 'stopped': // This state is reported upon a successful callback of stop().
console.info(TAG + 'state stopped called')
- this.avPlayer.reset() // Call reset() to initialize the AVPlayer state.
+ this.avPlayer.release() // Call reset() to initialize the AVPlayer state.
break;
case 'released':
console.info(TAG + 'state released called')
@@ -302,24 +296,18 @@ export class AVPlayerDemo {
let pathDir = "/data/storage/el2/base/haps/entry/files" // The path used here is an example. Obtain the path based on project requirements.
// The stream in the path can be pushed to the device by running the "hdc file send D:\xxx\H264_AAC.mp4 /data/app/el2/100/base/ohos.acts.multimedia.media.avplayer/haps/entry/files" command.
let path = pathDir + '/H264_AAC.mp4'
- await fileIO.open(path).then((fdNumber) => {
- fdPath = fdPath + '' + fdNumber
- console.info('open fd success fd is' + fdPath)
- }, (err) => {
- console.info('open fd failed err is' + err)
- }).catch((err) => {
- console.info('open fd failed err is' + err)
- });
+ let file = await fs.open(path)
+ fdPath = fdPath + '' + file.fd
this.avPlayer.url = fdPath
}
}
```
-### Switching to the Next Video Clip
+### Looping a Song
```js
import media from '@ohos.multimedia.media'
-import fileIO from '@ohos.fileio'
+import fs from '@ohos.file.fs'
const TAG = 'AVPlayerDemo:'
export class AVPlayerDemo {
@@ -362,7 +350,7 @@ export class AVPlayerDemo {
break;
case 'stopped': // This state is reported upon a successful callback of stop().
console.info(TAG + 'state stopped called')
- this.avPlayer.reset() // Call reset() to initialize the AVPlayer state.
+ this.avPlayer.release() // Call reset() to initialize the AVPlayer state.
break;
case 'released':
console.info(TAG + 'state released called')
@@ -393,23 +381,17 @@ export class AVPlayerDemo {
let pathDir = "/data/storage/el2/base/haps/entry/files" // The path used here is an example. Obtain the path based on project requirements.
// The stream in the path can be pushed to the device by running the "hdc file send D:\xxx\H264_AAC.mp4 /data/app/el2/100/base/ohos.acts.multimedia.media.avplayer/haps/entry/files" command.
let path = pathDir + '/H264_AAC.mp4'
- await fileIO.open(path).then((fdNumber) => {
- fdPath = fdPath + '' + fdNumber
- console.info('open fd success fd is' + fdPath)
- }, (err) => {
- console.info('open fd failed err is' + err)
- }).catch((err) => {
- console.info('open fd failed err is' + err)
- });
+ let file = await fs.open(path)
+ fdPath = fdPath + '' + file.fd
this.avPlayer.url = fdPath
}
}
```
-### Looping a Song
+### Switching to the Next Video Clip
```js
import media from '@ohos.multimedia.media'
-import fileIO from '@ohos.fileio'
+import fs from '@ohos.file.fs'
const TAG = 'AVPlayerDemo:'
export class AVPlayerDemo {
@@ -422,14 +404,8 @@ export class AVPlayerDemo {
let pathDir = "/data/storage/el2/base/haps/entry/files" // The path used here is an example. Obtain the path based on project requirements.
// The stream in the path can be pushed to the device by running the "hdc file send D:\xxx\H264_MP3.mp4 /data/app/el2/100/base/ohos.acts.multimedia.media.avplayer/haps/entry/files" command.
let path = pathDir + '/H264_MP3.mp4'
- await fileIO.open(path).then((fdNumber) => {
- fdPath = fdPath + '' + fdNumber
- console.info('open fd success fd is' + fdPath)
- }, (err) => {
- console.info('open fd failed err is' + err)
- }).catch((err) => {
- console.info('open fd failed err is' + err)
- });
+ let file = await fs.open(path)
+ fdPath = fdPath + '' + file.fd
this.avPlayer.url = fdPath // The initialized state is reported again.
}
@@ -493,14 +469,8 @@ export class AVPlayerDemo {
let pathDir = "/data/storage/el2/base/haps/entry/files" // The path used here is an example. Obtain the path based on project requirements.
// The stream in the path can be pushed to the device by running the "hdc file send D:\xxx\H264_AAC.mp4 /data/app/el2/100/base/ohos.acts.multimedia.media.avplayer/haps/entry/files" command.
let path = pathDir + '/H264_AAC.mp4'
- await fileIO.open(path).then((fdNumber) => {
- fdPath = fdPath + '' + fdNumber
- console.info('open fd success fd is' + fdPath)
- }, (err) => {
- console.info('open fd failed err is' + err)
- }).catch((err) => {
- console.info('open fd failed err is' + err)
- });
+ let file = await fs.open(path)
+ fdPath = fdPath + '' + file.fd
this.avPlayer.url = fdPath
}
}
diff --git a/en/application-dev/media/avrecorder.md b/en/application-dev/media/avrecorder.md
index b897c68a657f2891800e2f4d67fc60a1aec8eacf..9214df032d7d060cabe9900e8a0d5ab6e7aa12f9 100644
--- a/en/application-dev/media/avrecorder.md
+++ b/en/application-dev/media/avrecorder.md
@@ -69,14 +69,14 @@ export class AVRecorderDemo {
let surfaceID; // The surface ID is obtained by calling getInputSurface and transferred to the videoOutput object of the camera.
await this.getFd('01.mp4');
- // Configure the parameters related to audio and video recording.
+ // Configure the parameters related to audio and video recording based on those supported by the hardware device.
let avProfile = {
audioBitrate : 48000,
audioChannels : 2,
audioCodec : media.CodecMimeType.AUDIO_AAC,
audioSampleRate : 48000,
fileFormat : media.ContainerFormatType.CFT_MPEG_4,
- videoBitrate : 48000,
+ videoBitrate : 2000000,
videoCodec : media.CodecMimeType.VIDEO_MPEG4,
videoFrameWidth : 640,
videoFrameHeight : 480,
@@ -365,10 +365,10 @@ export class VideoRecorderDemo {
let surfaceID; // The surface ID is obtained by calling getInputSurface and transferred to the videoOutput object of the camera.
await this.getFd('01.mp4');
- // Configure the parameters related to video recording.
+ // Configure the parameters related to pure video recording based on those supported by the hardware device.
let videoProfile = {
fileFormat : media.ContainerFormatType.CFT_MPEG_4,
- videoBitrate : 48000,
+ videoBitrate : 2000000,
videoCodec : media.CodecMimeType.VIDEO_MPEG4,
videoFrameWidth : 640,
videoFrameHeight : 480,
diff --git a/en/application-dev/media/video-playback.md b/en/application-dev/media/video-playback.md
index b324f19b3cf0f3621bd74809c4f1a2d0b57d0abd..d4c895b452aa31b28690bd96bd9ef0fac64c4eb4 100644
--- a/en/application-dev/media/video-playback.md
+++ b/en/application-dev/media/video-playback.md
@@ -51,7 +51,7 @@ For details about how to create an XComponent, see [XComponent](../reference/ark
```js
import media from '@ohos.multimedia.media'
-import fileIO from '@ohos.fileio'
+import fs from '@ohos.file.fs'
export class VideoPlayerDemo {
// Report an error in the case of a function invocation failure.
failureCallback(error) {
@@ -82,14 +82,8 @@ export class VideoPlayerDemo {
let fdPath = 'fd://'
// The stream in the path can be pushed to the device by running the "hdc file send D:\xxx\H264_AAC.mp4 /data/app/el1/bundle/public/ohos.acts.multimedia.video.videoplayer/ohos.acts.multimedia.video.videoplayer/assets/entry/resources/rawfile" command.
let path = '/data/app/el1/bundle/public/ohos.acts.multimedia.video.videoplayer/ohos.acts.multimedia.video.videoplayer/assets/entry/resources/rawfile/H264_AAC.mp4';
- await fileIO.open(path).then((fdNumber) => {
- fdPath = fdPath + '' + fdNumber;
- console.info('open fd success fd is' + fdPath);
- }, (err) => {
- console.info('open fd failed err is' + err);
- }).catch((err) => {
- console.info('open fd failed err is' + err);
- });
+ let file = await fs.open(path);
+ fdPath = fdPath + '' + file.fd;
// Call createVideoPlayer to create a VideoPlayer instance.
await media.createVideoPlayer().then((video) => {
if (typeof (video) != 'undefined') {
@@ -180,7 +174,7 @@ export class VideoPlayerDemo {
```js
import media from '@ohos.multimedia.media'
-import fileIO from '@ohos.fileio'
+import fs from '@ohos.file.fs'
export class VideoPlayerDemo {
// Report an error in the case of a function invocation failure.
failureCallback(error) {
@@ -211,14 +205,8 @@ export class VideoPlayerDemo {
let fdPath = 'fd://'
// The stream in the path can be pushed to the device by running the "hdc file send D:\xxx\H264_AAC.mp4 /data/app/el1/bundle/public/ohos.acts.multimedia.video.videoplayer/ohos.acts.multimedia.video.videoplayer/assets/entry/resources/rawfile" command.
let path = '/data/app/el1/bundle/public/ohos.acts.multimedia.video.videoplayer/ohos.acts.multimedia.video.videoplayer/assets/entry/resources/rawfile/H264_AAC.mp4';
- await fileIO.open(path).then((fdNumber) => {
- fdPath = fdPath + '' + fdNumber;
- console.info('open fd success fd is' + fdPath);
- }, (err) => {
- console.info('open fd failed err is' + err);
- }).catch((err) => {
- console.info('open fd failed err is' + err);
- });
+ let file = await fs.open(path);
+ fdPath = fdPath + '' + file.fd;
// Call createVideoPlayer to create a VideoPlayer instance.
await media.createVideoPlayer().then((video) => {
if (typeof (video) != 'undefined') {
@@ -267,7 +255,7 @@ export class VideoPlayerDemo {
```js
import media from '@ohos.multimedia.media'
-import fileIO from '@ohos.fileio'
+import fs from '@ohos.file.fs'
export class VideoPlayerDemo {
// Report an error in the case of a function invocation failure.
failureCallback(error) {
@@ -299,14 +287,8 @@ export class VideoPlayerDemo {
// The stream in the path can be pushed to the device by running the "hdc file send D:\xxx\H264_AAC.mp4 /data/app/el1/bundle/public/ohos.acts.multimedia.video.videoplayer/ohos.acts.multimedia.video.videoplayer/assets/entry/resources/rawfile" command.
let path = '/data/app/el1/bundle/public/ohos.acts.multimedia.video.videoplayer/ohos.acts.multimedia.video.videoplayer/assets/entry/resources/rawfile/H264_AAC.mp4';
let nextPath = '/data/app/el1/bundle/public/ohos.acts.multimedia.video.videoplayer/ohos.acts.multimedia.video.videoplayer/assets/entry/resources/rawfile/MP4_AAC.mp4';
- await fileIO.open(path).then((fdNumber) => {
- fdPath = fdPath + '' + fdNumber;
- console.info('open fd success fd is' + fdPath);
- }, (err) => {
- console.info('open fd failed err is' + err);
- }).catch((err) => {
- console.info('open fd failed err is' + err);
- });
+ let file = await fs.open(path);
+ fdPath = fdPath + '' + file.fd;
// Call createVideoPlayer to create a VideoPlayer instance.
await media.createVideoPlayer().then((video) => {
if (typeof (video) != 'undefined') {
@@ -341,14 +323,8 @@ export class VideoPlayerDemo {
// Obtain the next video FD address.
fdPath = 'fd://'
- await fileIO.open(nextPath).then((fdNumber) => {
- fdPath = fdPath + '' + fdNumber;
- console.info('open fd success fd is' + fdPath);
- }, (err) => {
- console.info('open fd failed err is' + err);
- }).catch((err) => {
- console.info('open fd failed err is' + err);
- });
+ let nextFile = await fs.open(nextPath);
+ fdPath = fdPath + '' + nextFile.fd;
// Set the second video playback source.
videoPlayer.url = fdPath;
@@ -378,7 +354,7 @@ export class VideoPlayerDemo {
```js
import media from '@ohos.multimedia.media'
-import fileIO from '@ohos.fileio'
+import fs from '@ohos.file.fs'
export class VideoPlayerDemo {
// Report an error in the case of a function invocation failure.
failureCallback(error) {
@@ -409,14 +385,8 @@ export class VideoPlayerDemo {
let fdPath = 'fd://'
// The stream in the path can be pushed to the device by running the "hdc file send D:\xxx\H264_AAC.mp4 /data/app/el1/bundle/public/ohos.acts.multimedia.video.videoplayer/ohos.acts.multimedia.video.videoplayer/assets/entry/resources/rawfile" command.
let path = '/data/app/el1/bundle/public/ohos.acts.multimedia.video.videoplayer/ohos.acts.multimedia.video.videoplayer/assets/entry/resources/rawfile/H264_AAC.mp4';
- await fileIO.open(path).then((fdNumber) => {
- fdPath = fdPath + '' + fdNumber;
- console.info('open fd success fd is' + fdPath);
- }, (err) => {
- console.info('open fd failed err is' + err);
- }).catch((err) => {
- console.info('open fd failed err is' + err);
- });
+ let file = await fs.open(path);
+ fdPath = fdPath + '' + file.fd;
// Call createVideoPlayer to create a VideoPlayer instance.
await media.createVideoPlayer().then((video) => {
if (typeof (video) != 'undefined') {
diff --git a/en/application-dev/media/video-recorder.md b/en/application-dev/media/video-recorder.md
index bef55899bcb51359a6b6d68ef6d7894d70e435ae..fd9de91b4bae0591e2a5dc4869455bdd4055943e 100644
--- a/en/application-dev/media/video-recorder.md
+++ b/en/application-dev/media/video-recorder.md
@@ -76,14 +76,14 @@ export class VideoRecorderDemo {
let surfaceID = null; // Used to save the surface ID returned by getInputSurface.
// Obtain the FD address of the video to be recorded.
await this.getFd('01.mp4');
- // Recording-related parameter settings
+ // Configure the parameters related to video recording based on those supported by the hardware device.
let videoProfile = {
audioBitrate : 48000,
audioChannels : 2,
audioCodec : 'audio/mp4a-latm',
audioSampleRate : 48000,
fileFormat : 'mp4',
- videoBitrate : 48000,
+ videoBitrate : 2000000,
videoCodec : 'video/mp4v-es',
videoFrameWidth : 640,
videoFrameHeight : 480,
diff --git a/en/application-dev/napi/napi-guidelines.md b/en/application-dev/napi/napi-guidelines.md
index 5113c413d523b9d58363b78ac94ba42cc1954e9d..4448869d84d51b0fb17836e69af14ad28433f395 100644
--- a/en/application-dev/napi/napi-guidelines.md
+++ b/en/application-dev/napi/napi-guidelines.md
@@ -4,9 +4,7 @@ OpenHarmony applications use JavaScript (JS) when calling native APIs. The nativ
## How to Develop
-The DevEco Studio has a default project that uses NAPIs.
-
-You can choose **File** > **New** > **Create Project** to create a **Native C++** project. The **cpp** directory is generated in the **main** directory. You can use the NAPIs provided by the **ace_napi** repository for development.
+The DevEco Studio has a default project that uses NAPIs. You can choose **File** > **New** > **Create Project** to create a **Native C++** project. The **cpp** directory is generated in the **main** directory. You can use the NAPIs provided by the **ace_napi** repository for development.
You can import the native .so that contains the JS processing logic. For example, **import hello from 'libhello.so'** to use the **libhello.so** capability. Then, the JS object created using the NAPI can be passed to the **hello** object of the application to call the native capability.
@@ -19,7 +17,10 @@ You can import the native .so that contains the JS processing logic. For example
### .so Naming Rules
-Each module has a .so file. For example, if the module name is **hello**, name the .so file **libhello.so**. The **nm_modname** field in **napi_module** must be **hello**, which is the same as the module name. The sample code for importing the .so file is **import hello from 'libhello.so'**.
+The .so file names must comply with the following rules:
+
+* Each module has a .so file.
+* The **nm_modname** field in **napi_module** must be the same as the module name. For example, if the module name is **hello**, name the .so file **libhello.so**. The sample code for importing the .so file is **import hello from 'libhello.so'**.
### JS Objects and Threads
diff --git a/en/application-dev/quick-start/app-structure.md b/en/application-dev/quick-start/app-structure.md
index 78d727f2df95b3bdacc025f4159e88b47abf804e..0a35eefb6bb65070878beddb90715f033e8007d8 100644
--- a/en/application-dev/quick-start/app-structure.md
+++ b/en/application-dev/quick-start/app-structure.md
@@ -13,6 +13,7 @@ The **app** tag contains application-wide configuration. The internal structure
| apiVersion | OpenHarmony API version on which the application depends.| Object| Yes (initial value: left empty)|
| smartWindowSize | Screen size used when the application runs in the emulator.| String| Yes (initial value: left empty)|
| smartWindowDeviceType | Types of emulated devcies on which the application can run.| String array| Yes (initial value: left empty)|
+| assanEnabled | Whether to enable AddressSanitizer (ASan) to detect memory corruption issues such as buffer overflows. - **true**: ASan is enabled. - **false**: ASan is disabled. Note that ASan is not available in the Release version.| Boolean| Yes (initial value: **false**)|
## Internal Structure of the version Atttribute
diff --git a/en/application-dev/quick-start/figures/hap-release.png b/en/application-dev/quick-start/figures/hap-release.png
index 527cefcf7e466e105f74065c3d8b59b18802d94b..9c7692a87e3975e01d125893fd276c247743c4e8 100644
Binary files a/en/application-dev/quick-start/figures/hap-release.png and b/en/application-dev/quick-start/figures/hap-release.png differ
diff --git a/en/application-dev/quick-start/module-configuration-file.md b/en/application-dev/quick-start/module-configuration-file.md
index 260d0cab1f9aa5b9365848e58bf070e1a70b4924..67361fccfd749495e2f5825d5ccac6efe1505ed9 100644
--- a/en/application-dev/quick-start/module-configuration-file.md
+++ b/en/application-dev/quick-start/module-configuration-file.md
@@ -22,19 +22,19 @@ This document gives an overview of the **module.json5** configuration file. To s
{
"name": "string",
"value": "string",
- "resource": "$profile:distrofilter_config"
+ "resource": "$profile:distributionFilter_config"
}
],
"abilities": [
{
"name": "EntryAbility",
- "srcEntrance": "./ets/entryability/EntryAbility.ts",
+ "srcEntry": "./ets/entryability/EntryAbility.ts",
"description": "$string:EntryAbility_desc",
"icon": "$media:icon",
"label": "$string:EntryAbility_label",
"startWindowIcon": "$media:icon",
"startWindowBackground": "$color:start_window_background",
- "visible": true,
+ "exported": true,
"skills": [
{
"entities": [
@@ -71,9 +71,9 @@ As shown above, the **module.json5** file contains several tags.
| Name| Description| Data Type| Initial Value Allowed|
| -------- | -------- | -------- | -------- |
-| name | Name of the module. The value is a string with a maximum of 31 bytes and must be unique in the entire application.| String| No|
+| name | Name of the module. The value is a string with a maximum of 31 bytes and must be unique in the entire application. Chinese characters are not allowed.| String| No|
| type | Type of the module. The value can be **entry** or **feature**. - **entry**: main module of the application. - **feature**: dynamic feature module of the application.| String| No|
-| srcEntrance | Code path corresponding to the module. The value is a string with a maximum of 127 bytes.| String| Yes (initial value: left empty)|
+| srcEntry | Code path corresponding to the module. The value is a string with a maximum of 127 bytes.| String| Yes (initial value: left empty)|
| description | Description of the module. The value is a string with a maximum of 255 bytes or a string resource index.| String| Yes (initial value: left empty)|
| process | Process name of the current module. The value is a string with a maximum of 31 bytes. If **process** is configured under **HAP**, all UIAbility, DataShareExtensionAbility, and ServiceExtensionAbility components of the application run in the specified process. **NOTE** This tag applies only to system applications and does not take effect for third-party applications.| String| Yes (initial value: value of **bundleName** under **app** in the **app.json5** file)|
| mainElement | Name of the entry UIAbility or ExtensionAbility of the module. The value is a string with a maximum of 255 bytes.| String| Yes (initial value: left empty)|
@@ -81,7 +81,6 @@ As shown above, the **module.json5** file contains several tags.
| deliveryWithInstall | Whether the HAP file of the module will be installed when the user installs the application. - **true**: The HAP file will be installed when the user installs the application. - **false**: The HAP file will not be installed when the user installs the application.| Boolean| No|
| installationFree | Whether the module supports the installation-free feature. - **true**: The module supports the installation-free feature and meets installation-free constraints. - **false**: The module does not support the installation-free feature. **NOTE** - If this tag is set to **true** for an entry-type module, it must also be set to **true** for feature-type modules of the same application. - If this tag is set to **false** for an entry-type module, it can be set to **true** or **false** for feature-type modules of the same application based on service requirements.| Boolean| No|
| virtualMachine | Type of the target virtual machine (VM) where the module runs. It is used for cloud distribution, such as distribution by the application market and distribution center. If the target VM type is ArkTS engine, the value is **ark**+*version number*.| String| Yes (initial value: automatically inserted when DevEco Studio builds the HAP file)|
-| uiSyntax (deprecated)| Syntax type of the component defined by the module syntax. This tag is deprecated since API version 9. - **"hml"**: The component is developed using HML, CSS, or JS. - **"ets"**: The component is developed using ArkTS.| String| Yes (initial value: **"hml"**)|
| [pages](#pages)| Profile that represents information about each page in the current module. The value can contain a maximum of 255 bytes.| String| No in the UIAbility scenario|
| [metadata](#metadata)| Custom metadata of the module. The setting is valid only for the current module, UIAbility, or ExtensionAbility.| Object array| Yes (initial value: left empty)|
| [abilities](#abilities) | UIAbility configuration of the module, which is valid only for the current UIAbility component.| Object| Yes (initial value: left empty)|
@@ -201,24 +200,85 @@ The **metadata** tag represents the custom metadata of the HAP file. The tag val
## abilities
-The **abilities** tag describes the UIAbility configuration of the component, which is valid only for the current UIAbility component. The tag value is an array.
+UIAbility configuration of the module, which is valid only for the current UIAbility component.
+
+**By default, application icons cannot be hidden from the home screen in OpenHarmony.**
+
+The OpenHarmony system imposes a strict rule on the presence of application icons. If no icon is configured in the HAP file of an application, the system uses the icon specified in the **app.json** file as the application icon and displays it on the home screen.
+
+Touching this icon will direct the user to the application details screen in **Settings**.
+
+To hide an application icon from the home screen, you must configure the **AllowAppDesktopIconHide** privilege. For details, see [Application Privilege Configuration Guide](../../device-dev/subsystems/subsys-app-privilege-config-guide.md).
+
+**Setting the application icon to be displayed on the home screen**:
+
+Set **icon**, **label**, and **skills** under **abilities** in the **module.json5** file. In addition, the **skills** configuration must contain **ohos.want.action.home **and **entity.system.home**.
+
+```
+{
+ "module":{
+
+ ...
+
+ "abilities": [{
+ "icon": "$media:icon",
+ "label": "Login",
+ "skills": [{
+ "actions": ["ohos.want.action.home"],
+ "entities": ["entity.system.home"],
+ "uris": []
+ }]
+ }],
+ ...
+
+ }
+}
+```
+
+**Querying an application icon:**
+* The HAP file contains ability configuration.
+ * The application icon is set under **abilities** in the **module.json5** file.
+ * The application does not have the privilege to hide its icon from the home screen.
+ * The returned home screen icon is the icon configured for the ability.
+ * The returned home screen label is the label configured for the ability. If no label is configured, the bundle name is returned.
+ * The returned component name is the component name of the ability.
+ * When the user touches the home screen icon, the home screen of the ability is displayed.
+ * The application has the privilege to hide its icon from the home screen.
+ * The information about the application is not returned during home screen information query, and the icon of the application is not displayed on the home screen.
+ * The application icon is not set under **abilities** in the **module.json5** file.
+ * The application does not have the privilege to hide its icon from the home screen.
+ * The returned home screen icon is the icon configured under **app**. (The **icon** parameter in the **app.json** file is mandatory.)
+ * The returned home screen label is the label configured under **app**. (The **label** parameter in the **app.json** file is mandatory.)
+ * The returned component name is the component name displayed on the application details screen (this component is built in the system).
+ * Touching the home screen icon will direct the user to the application details screen.
+ * The application has the privilege to hide its icon from the home screen.
+ * The information about the application is not returned during home screen information query, and the icon of the application is not displayed on the home screen.
+* The HAP file does not contain ability configuration.
+ * The application does not have the privilege to hide its icon from the home screen.
+ * The returned home screen icon is the icon configured under **app**. (The **icon** parameter in the **app.json** file is mandatory.)
+ * The returned home screen label is the label configured under **app**. (The **label** parameter in the **app.json** file is mandatory.)
+ * The returned component name is the component name displayed on the application details screen (this component is built in the system).
+ * Touching the home screen icon will direct the user to the application details screen.
+ * The application has the privilege to hide its icon from the home screen.
+ * The information about the application is not returned during home screen information query, and the icon of the application is not displayed on the home screen.
+
**Table 4** abilities
| Name| Description| Data Type| Initial Value Allowed|
| -------- | -------- | -------- | -------- |
-| name | Name of the UIAbility component, which must be unique in the entire application. The value is a string with a maximum of 127 bytes.| String| No|
-| srcEntrance | Code path of the entry UIAbility component. The value is a string with a maximum of 127 bytes.| String| No|
-| [launchType](../application-models/uiability-launch-type.md) | Launch type of the UIAbility component. The options are as follows: - **standard**: A new UIAbility instance is created each time the UIAbility component is started. - **singleton**: A new UIAbility instance is created only when the UIAbility component is started for the first time. - **specified**: You can determine whether to create a new UIAbility instance when the application is running.| String| Yes (initial value: **"singleton"**)|
+| name | Name of the UIAbility component, which must be unique in the entire application. The value is a string with a maximum of 127 bytes. Chinese characters are not allowed.| String| No|
+| srcEntry | Code path of the entry UIAbility component. The value is a string with a maximum of 127 bytes.| String| No|
+| [launchType](../application-models/uiability-launch-type.md) | Launch type of the UIAbility component. The options are as follows: - **multiton**: A new UIAbility instance is created each time the UIAbility component is started. - **singleton**: A new UIAbility instance is created only when the UIAbility component is started for the first time. - **specified**: You can determine whether to create a new UIAbility instance when the application is running.| String| Yes (initial value: **"singleton"**)|
| description | Description of the UIAbility component. The value is a string with a maximum of 255 bytes or a resource index to the description in multiple languages.| String| Yes (initial value: left empty)|
-| icon | Icon of the UIAbility component. The value is an icon resource index. If **UIAbility** is set to **MainElement**, this attribute is mandatory. | String| Yes (initial value: left empty) |
+| icon | Icon of the UIAbility component. The value is an icon resource index.| String| Yes (initial value: left empty) If **UIAbility** is set to **MainElement**, this attribute is mandatory.|
| label | Name of the UIAbility component displayed to users. The value is a string resource index. If **UIAbility** is set to **MainElement** of the current module, this attribute is mandatory and its value must be unique in the application.| String| No|
| permissions | Permissions required for another application to access the UIAbility component. The value is an array of permission names predefined by the system, generally in the reverse domain name notation. It contains a maximum of 255 bytes.| String array| Yes (initial value: left empty)|
| [metadata](#metadata)| Metadata information of the UIAbility component.| Object array| Yes (initial value: left empty)|
-| visible | Whether the UIAbility component can be called by other applications. - **true**: The UIAbility component can be called by other applications. - **false**: The UIAbility component cannot be called by other applications.| Boolean| Yes (initial value: **false**)|
+| exported | Whether the UIAbility component can be called by other applications. - **true**: The UIAbility component can be called by other applications. - **false**: The UIAbility component cannot be called by other applications.| Boolean| Yes (initial value: **false**)|
| continuable | Whether the UIAbility component can be [migrated](../application-models/hop-cross-device-migration.md). - **true**: The UIAbility component can be migrated. - **false**: The UIAbility component cannot be migrated.| Boolean| Yes (initial value: **false**)|
| [skills](#skills) | Feature set of [wants](../application-models/want-overview.md) that can be received by the current UIAbility or ExtensionAbility component. Configuring rule: - For HAPs of the entry type, you can configure multiple **skills** attributes with the entry capability for an OpenHarmony application. (A **skills** attribute with the entry capability is the one that has **ohos.want.action.home** and **entity.system.home** configured.) - For HAPs of the feature type, you can configure **skills** attributes with the entry capability for an OpenHarmony application, but not for an OpenHarmony service.| Object array| Yes (initial value: left empty)|
-| backgroundModes | Continuous tasks of the UIAbility component. Continuous tasks are classified into the following types: - **dataTransfer**: service for downloading, backing up, sharing, or transferring data from the network or peer devices. - **audioPlayback**: audio playback service. - **audioRecording**: audio recording service. - **location**: location and navigation services. - **bluetoothInteraction**: Bluetooth scanning, connection, and transmission services (wearables). - **multiDeviceConnection**: multi-device interconnection service. - **wifiInteraction**: Wi-Fi scanning, connection, and transmission services (as used in the Multi-screen Collaboration and clone features) - **voip**: voice/video call and VoIP services. - **taskKeeping**: computing service.| String array| Yes (initial value: left empty)|
+| backgroundModes | Continuous tasks of the UIAbility component. Continuous tasks are classified into the following types: - **dataTransfer**: service for downloading, backing up, sharing, or transferring data from the network or peer devices. - **audioPlayback**: audio playback service. - **audioRecording**: audio recording service. - **location**: location and navigation services. - **bluetoothInteraction**: Bluetooth scanning, connection, and transmission services (wearables). - **multiDeviceConnection**: multi-device interconnection service. - **wifiInteraction**: Wi-Fi scanning, connection, and transmission services (as used in the Multi-screen Collaboration and clone features) - **voip**: voice/video call and VoIP services. - **taskKeeping**: computing service.| String array| Yes (initial value: left empty)|
| startWindowIcon | Index to the icon file of the UIAbility component startup page. Example: **$media:icon**. The value is a string with a maximum of 255 bytes.| String| No|
| startWindowBackground | Index to the background color resource file of the UIAbility component startup page. Example: **$color:red**. The value is a string with a maximum of 255 bytes.| String| No|
| removeMissionAfterTerminate | Whether to remove the relevant task from the task list after the UIAbility component is destroyed. - **true**: Remove the relevant task from the task list after the UIAbility component is destroyed. - **false**: Do not remove the relevant task from the task list after the UIAbility component is destroyed.| Boolean| Yes (initial value: **false**)|
@@ -227,11 +287,12 @@ The **abilities** tag describes the UIAbility configuration of the component, wh
| priority | Priority of the UIAbility component. This attribute applies only to system applications and does not take effect for third-party applications. In the case of [implicit query](../application-models/explicit-implicit-want-mappings.md), UIAbility components with a higher priority are at the higher place of the returned list. The value is an integer ranging from 0 to 10. The greater the value, the higher the priority.| Number| Yes (initial value: **0**)|
| maxWindowRatio | Maximum aspect ratio supported by the UIAbility component. The minimum value is 0.| Number| Yes (initial value: maximum aspect ratio supported by the platform)|
| minWindowRatio | Minimum aspect ratio supported by the UIAbility component. The minimum value is 0.| Number| Yes (initial value: minimum aspect ratio supported by the platform)|
-| maxWindowWidth | Maximum window width supported by the UIAbility component, in vp. The minimum value is 0.| Number| Yes (initial value: maximum window width supported by the platform)|
-| minWindowWidth | Minimum window width supported by the UIAbility component, in vp. The minimum value is 0.| Number| Yes (initial value: minimum window width supported by the platform)|
-| maxWindowHeight | Maximum window height supported by the UIAbility component, in vp. The minimum value is 0.| Number| Yes (initial value: maximum window height supported by the platform)|
-| minWindowHeight | Minimum window height supported by the UIAbility component, in vp. The minimum value is 0.| Number| Yes (initial value: minimum window height supported by the platform)|
+| maxWindowWidth | Maximum window width supported by the UIAbility component, in vp. The minimum value is 0, and the value cannot be less than the value of **minWindowWidth** or greater than the maximum window width allowed by the platform. For details about the window size, see [Constraints](../windowmanager/window-overview.md#constraints).| Number| Yes (initial value: maximum window width supported by the platform)|
+| minWindowWidth | Minimum window width supported by the UIAbility component, in vp. The minimum value is 0, and the value cannot be less than the minimum window width allowed by the platform or greater than the value of **maxWindowWidth**. For details about the window size, see [Constraints](../windowmanager/window-overview.md#constraints).| Number| Yes (initial value: minimum window width supported by the platform)|
+| maxWindowHeight | Maximum window height supported by the UIAbility component, in vp. The minimum value is 0, and the value cannot be less than the value of **minWindowHeight** or greater than the maximum window height allowed by the platform. For details about the window size, see [Constraints](../windowmanager/window-overview.md#constraints).| Number| Yes (initial value: maximum window height supported by the platform)|
+| minWindowHeight | Minimum window height supported by the UIAbility component, in vp. The minimum value is 0, and the value cannot be less than the minimum window height allowed by the platform or greater than the value of **maxWindowHeight**. For details about the window size, see [Constraints](../windowmanager/window-overview.md#constraints).| Number| Yes (initial value: minimum window height supported by the platform)|
| excludeFromMissions | Whether the UIAbility component is displayed in the recent task list. - **true**: displayed in the recent task list. - **false**: not displayed in the recent task list. **NOTE** This tag applies only to system applications and does not take effect for third-party applications.| Boolean| Yes (initial value: **false**)|
+| recoverable | Whether the application can be recovered to its previous state in case of a detected fault. - **true**: The application can be recovered to its previous state in case of a detected fault. - **false**: The application cannot be recovered to its previous state in case of a detected fault.| Boolean| Yes (initial value: **false**)|
Example of the **abilities** structure:
@@ -240,14 +301,14 @@ Example of the **abilities** structure:
{
"abilities": [{
"name": "EntryAbility",
- "srcEntrance": "./ets/entryability/EntryAbility.ts",
- "launchType":"standard",
+ "srcEntry": "./ets/entryability/EntryAbility.ts",
+ "launchType":"singleton",
"description": "$string:description_main_ability",
"icon": "$media:icon",
"label": "Login",
"permissions": [],
"metadata": [],
- "visible": true,
+ "exported": true,
"continuable": true,
"skills": [{
"actions": ["ohos.want.action.home"],
@@ -335,6 +396,40 @@ Example of the **skills** structure:
}
```
+**Enhance implicit query**
+
+URI-level prefix matching is supported.
+When only **scheme** or a combination of **scheme** and **host** or **scheme**, **host**, and **port** are configured in the configuration file, the configuration is successful if the URI prefixed with the configuration file is passed in.
+
+
+ * The query enhancement involves the following APIs:
+ [@ohos.bundle.bundleManager](../reference/apis/js-apis-bundleManager.md#bundlemanagerqueryabilityinfo)
+ 1. function queryAbilityInfo(want: Want, abilityFlags: number, callback: AsyncCallback>): void;
+ 2. function queryAbilityInfo(want: Want, abilityFlags: number, userId: number, callback: AsyncCallback>): void;
+ 3. function queryAbilityInfo(want: Want, abilityFlags: number, userId?: number): Promise>;
+ * Configuration requirements
+ abilities -> skills -> uris object
+ Configuration 1: only **scheme = 'http'**
+ Configuration 2: only **(scheme = 'http' ) + ( host = 'example.com')**
+ Configuration 3: only **(scheme = 'http' ) + ( host = 'example.com' ) + ( port = '8080')**
+ * Prefix match
+ If the value of **uri** under [want](../application-models/want-overview.md) is obtained by calling the **queryAbilityInfo** API:
+ 1. uri = 'https://': No matches
+ 2. uri = 'http://': Matches configuration 1
+ 3. uri = 'https://example.com': No matches
+ 4. uri = 'https://exa.com': No matches
+ 5. uri = 'http://exa.com': Matches configuration 1
+ 6. uri = 'http://example.com': Matches configuration 1 and configuration 2
+ 7. uri = 'https://example.com:8080': No matches
+ 8. uri = 'http://exampleaa.com:8080': Matches configuration 1
+ 9. uri = 'http://example.com:9180': Matches configuration 1 and configuration 2
+ 10. uri = 'http://example.com:8080': Matches configuration 1, configuration 2, and configuration 3
+ 11. uri = 'https://example.com:9180/path': No matches
+ 12. uri = 'http://exampleap.com:8080/path': Matches configuration 1
+ 13. uri = 'http://example.com:9180/path': Matches configuration 1 and configuration 2
+ 14. uri = 'http://example.com:8080/path': Matches configuration 1, configuration 2, and configuration 3
+
+
## extensionAbilities
@@ -345,16 +440,16 @@ The **extensionAbilities** tag represents the configuration of extensionAbilitie
| Name| Description| Data Type| Initial Value Allowed|
| -------- | -------- | -------- | -------- |
| name | Name of the ExtensionAbility component. The value is a string with a maximum of 127 bytes. The name must be unique in the entire application.| String| No|
-| srcEntrance | Code path corresponding to the ExtensionAbility component. The value is a string with a maximum of 127 bytes.| String| No|
+| srcEntry | Code path corresponding to the ExtensionAbility component. The value is a string with a maximum of 127 bytes.| String| No|
| description | Description of the ExtensionAbility component. The value is a string with a maximum of 255 bytes or a resource index to the description.| String| Yes (initial value: left empty)|
| icon | Icon of the ExtensionAbility component. The value is an icon resource index. If **ExtensionAbility** is set to **MainElement** of the current module, this attribute is mandatory and its value must be unique in the application.| String| Yes (initial value: left empty)|
| label | Name of the ExtensionAbility component displayed to users. The value is a string resource index. **NOTE** If **ExtensionAbility** is set to **MainElement** of the current module, this attribute is mandatory and its value must be unique in the application.| String| No|
-| type | Type of the ExtensionAbility component. The options are as follows: - **form**: ExtensionAbility of a widget. - **workScheduler**: ExtensionAbility of a Work Scheduler task. - **inputMethod**: ExtensionAbility of an input method. - **service**: service component running in the background. - **accessibility**: ExtensionAbility of an accessibility feature. - **dataShare**: ExtensionAbility for data sharing. - **fileShare**: ExtensionAbility for file sharing. - **staticSubscriber**: ExtensionAbility for static broadcast. - **wallpaper**: ExtensionAbility of the wallpaper. - **backup**: ExtensionAbility for data backup. - **window**: ExtensionAbility of a window. This type of ExtensionAbility creates a window during startup for which you can develop the GUI. The window is then combined with other application windows through **abilityComponent**. - **thumbnail**: ExtensionAbility for obtaining file thumbnails. You can provide thumbnails for files of customized file types. - **preview**: ExtensionAbility for preview. This type of ExtensionAbility can parse the file and display it in a window. You can combine the window with other application windows. **NOTE** The **service** and **dataShare** types apply only to system applications and do not take effect for third-party applications. | String| No|
+| type | Type of the ExtensionAbility component. The options are as follows: - **form**: ExtensionAbility of a widget. - **workScheduler**: ExtensionAbility of a Work Scheduler task. - **inputMethod**: ExtensionAbility of an input method. - **service**: service component running in the background. - **accessibility**: ExtensionAbility of an accessibility feature. - **dataShare**: ExtensionAbility for data sharing. - **fileShare**: ExtensionAbility for file sharing. - **staticSubscriber**: ExtensionAbility for static broadcast. - **wallpaper**: ExtensionAbility of the wallpaper. - **backup**: ExtensionAbility for data backup. - **window**: ExtensionAbility of a window. This type of ExtensionAbility creates a window during startup for which you can develop the GUI. The window is then combined with other application windows through **abilityComponent**. - **thumbnail**: ExtensionAbility for obtaining file thumbnails. You can provide thumbnails for files of customized file types. - **preview**: ExtensionAbility for preview. This type of ExtensionAbility can parse the file and display it in a window. You can combine the window with other application windows. - **print**: ExtensionAbility for the print framework. **NOTE** The **service** and **dataShare** types apply only to system applications and do not take effect for third-party applications.| String| No|
| permissions | Permissions required for another application to access the ExtensionAbility component. The value is generally in the reverse domain name notation and contains a maximum of 255 bytes. It is an array of permission names predefined by the system or customized. The name of a customized permission must be the same as the **name** value of a permission defined in the **defPermissions** attribute.| String array| Yes (initial value: left empty)|
| uri | Data URI provided by the ExtensionAbility component. The value is a string with a maximum of 255 bytes, in the reverse domain name notation. **NOTE** This attribute is mandatory when **type** of the ExtensionAbility component is set to **dataShare**.| String| Yes (initial value: left empty)|
-|skills | Feature set of [wants](../application-models/want-overview.md) that can be received by the ExtensionAbility component. Configuration rule: In an entry package, you can configure multiple **skills** attributes with the entry capability. (A **skills** attribute with the entry capability is the one that has **ohos.want.action.home** and **entity.system.home** configured.) The **label** and **icon** in the first ExtensionAbility that has **skills** configured are used as the **label** and **icon** of the entire OpenHarmony service/application. **NOTE** The **skills** attribute with the entry capability can be configured for the feature-type package of an OpenHarmony application, but not for an OpenHarmony service. | Array| Yes (initial value: left empty)|
+|skills | Feature set of [wants](../application-models/want-overview.md) that can be received by the ExtensionAbility component. Configuration rule: In an entry package, you can configure multiple **skills** attributes with the entry capability. (A **skills** attribute with the entry capability is the one that has **ohos.want.action.home** and **entity.system.home** configured.) The **label** and **icon** in the first ExtensionAbility that has **skills** configured are used as the **label** and **icon** of the entire OpenHarmony service/application. **NOTE** The **skills** attribute with the entry capability can be configured for the feature-type package of an OpenHarmony application, but not for an OpenHarmony service.| Array| Yes (initial value: left empty)|
| [metadata](#metadata)| Metadata of the ExtensionAbility component.| Object| Yes (initial value: left empty)|
-| visible | Whether the ExtensionAbility component can be called by other applications. - **true**: The ExtensionAbility component can be called by other applications. - **false**: The UIAbility component cannot be called by other applications.| Boolean| Yes (initial value: **false**)|
+| exported | Whether the ExtensionAbility component can be called by other applications. - **true**: The ExtensionAbility component can be called by other applications. - **false**: The UIAbility component cannot be called by other applications.| Boolean| Yes (initial value: **false**)|
Example of the **extensionAbilities** structure:
@@ -364,7 +459,7 @@ Example of the **extensionAbilities** structure:
"extensionAbilities": [
{
"name": "FormName",
- "srcEntrance": "./form/MyForm.ts",
+ "srcEntry": "./form/MyForm.ts",
"icon": "$media:icon",
"label" : "$string:extension_name",
"description": "$string:form_description",
@@ -372,7 +467,7 @@ Example of the **extensionAbilities** structure:
"permissions": ["ohos.abilitydemo.permission.PROVIDER"],
"readPermission": "",
"writePermission": "",
- "visible": true,
+ "exported": true,
"uri":"scheme://authority/path/query",
"skills": [{
"actions": [],
@@ -395,12 +490,16 @@ Example of the **extensionAbilities** structure:
The **requestPermissions** tage represents a set of permissions that the application needs to request from the system for running correctly.
- **Table 8** requestPermissions
+> **NOTE**
+>
+> The permission settings configured in the **requestPermissions** tag apply to the entire application.
+
+**Table 8** requestPermissions
| Name| Description| Data Type| Value Range| Default Value|
| -------- | -------- | -------- | -------- | -------- |
| name | Permission name. This attribute is mandatory.| String| Custom| –|
-| reason | Reason for requesting the permission. This attribute is mandatory when the permission to request is **user_grant**. **NOTE** If the permission to request is **user_grant**, this attribute is required for the application to be released to the application market, and multi-language adaptation is required. | String| Resource reference of the string type in $string: \*\*\* format| A null value|
+| reason | Reason for requesting the permission. This attribute is mandatory when the permission to request is **user_grant**. **NOTE** If the permission to request is **user_grant**, this attribute is required for the application to be released to the application market, and multi-language adaptation is required.| String| Resource reference of the string type in $string: \*\*\* format| A null value|
| usedScene | Scene under which the permission is used. It consists of the **abilities** and **when** sub-attributes. Multiple abilities can be configured. **NOTE** This attribute is optional by default. If the permission to request is **user_grant**, the **abilities** sub-attribute is mandatory and **when** is optional.| **abilities**: string array **when**: string| **abilities**: array of names of UIAbility or ExtensionAbility components **when**: **inuse** or **always**| **abilities**: null **when**: null|
Example of the **requestPermissions** structure:
@@ -473,7 +572,7 @@ The **shortcut** information is identified in **metadata**, where:
"abilities": [
{
"name": "EntryAbility",
- "srcEntrance": "./ets/entryability/EntryAbility.ts",
+ "srcEntry": "./ets/entryability/EntryAbility.ts",
// ...
"skills": [
{
@@ -498,49 +597,42 @@ The **shortcut** information is identified in **metadata**, where:
```
-## distroFilter
+## distributionFilter
-The **distroFilter** tag defines the rules for distributing HAP files based on different device specifications, so that precise matching can be performed when the application market distributes applications. Distribution rules cover five factors: API version, screen shape, screen size, screen resolution, and country code. During distribution, a unique HAP is determined based on the mapping between **deviceType** and these five factors. This tag must be configured in the **/resource/profile resource** directory.
+The **distributionFilter** tag defines the rules for distributing HAP files based on different device specifications, so that precise matching can be performed when the application market distributes applications. Distribution rules cover five factors: API version, screen shape, screen size, screen resolution, and country code. During distribution, a unique HAP is determined based on the mapping between **deviceType** and these five factors. This tag must be configured in the **/resource/profile resource** directory. Its sub-tags are optional.
- **Table 9** distroFilter
+ **Table 9** distributionFilter
| Name| Description| Data Type| Initial Value Allowed|
| -------- | -------- | -------- | -------- |
-| apiVersion | Supported API versions.| Object array| Yes (initial value: left empty)|
| screenShape | Supported screen shapes.| Object array| Yes (initial value: left empty)|
| screenWindow | Supported window resolutions for when the application is running. This attribute applies only to the lite wearables.| Object array| Yes (initial value: left empty)|
| screenDensity | Pixel density of the screen, in dots per inch (DPI). This attribute is optional. The value options are as follows: - **sdpi**: small-scale DPI. This value is applicable to devices with a DPI range of (0, 120]. - **mdpi**: medium-scale DPI. This value is applicable to devices with a DPI range of (120, 160]. - **ldpi**: large-scale DPI. This value is applicable to devices with a DPI range of (160, 240]. - **xldpi**: extra-large-scale DPI. This value is applicable to devices with a DPI range of (240, 320]. - **xxldpi**: extra-extra-large-scale DPI. This value is applicable to devices with a DPI range of (320, 480]. - **xxxldpi**: extra-extra-extra-large-scale DPI. This value is applicable to devices with a DPI range of (480, 640].| Object array| Yes (initial value: left empty)|
| countryCode | Code of the country or region to which the application is to be distributed. The value is subject to the ISO-3166-1 standard. Enumerated definitions of multiple countries and regions are supported.| Object array| Yes (initial value: left empty)|
- **Table 10** apiVersion
-| Name| Description| Data Type| Initial Value Allowed|
-| -------- | -------- | -------- | -------- |
-| policy | Rule for the sub-attribute value. Set this attribute to **exclude** or **include**. - **exclude**: Exclude the matches of the sub-attribute value. - **include**: Include the matches of the sub-attribute value.| String| No|
-| value | API versions, for example, 4, 5, or 6. Example: If an application comes with two versions developed using API version 5 and API version 6 for the same device model, two installation packages of the entry type can be released for the application.| Array| No|
-
- **Table 11** screenShape
+ **Table 10** screenShape
| Name| Description| Data Type| Initial Value Allowed|
| -------- | -------- | -------- | -------- |
| policy | Rule for the sub-attribute value. Set this attribute to **exclude** or **include**. - **exclude**: Exclude the matches of the sub-attribute value. - **include**: Include the matches of the sub-attribute value.| String| No|
| value | Screen shapes. The value can be **circle**, **rect**, or both. Example: Different HAP files can be provided for a smart watch with a circular face and that with a rectangular face.| String array| No|
- **Table 12** screenWindow
+ **Table 11** screenWindow
| Name| Description| Data Type| Initial Value Allowed|
| -------- | -------- | -------- | -------- |
| policy | Rule for the sub-attribute value. Set this attribute to **exclude** or **include**. - **exclude**: Exclude the matches of the sub-attribute value. - **include**: Include the matches of the sub-attribute value.| String| No|
| value | Screen width and height, in pixels. The value an array of supported width and height pairs, each in the "width * height" format, for example, **"454 * 454"**.| String array| No|
- **Table 13** screenDensity
+ **Table 12** screenDensity
| Name| Description| Data Type| Initial Value Allowed|
| -------- | -------- | -------- | -------- |
| policy | Rule for the sub-attribute value. Set this attribute to **exclude** or **include**. - **exclude**: Exclude the matches of the sub-attribute value. - **include**: Include the matches of the sub-attribute value.| String| No|
| value | Pixel density of the screen, in DPI.| String array| No|
- **Table 14** countryCode
+ **Table 13** countryCode
| Name| Description| Data Type| Initial Value Allowed|
| -------- | -------- | -------- | -------- |
@@ -552,14 +644,7 @@ Configure the **distro_filter_config.json** file (this file name is customizable
```json
{
- "distroFilter": {
- "apiVersion": {
- "policy": "include",
- "value": [
- 3,
- 4
- ]
- },
+ "distributionFilter": {
"screenShape": {
"policy": "include",
"value": [
@@ -614,7 +699,7 @@ Configure **metadata** in the **module** tag in the **module.json5** file.
The **testRunner** tag represents the supported test runner.
- **Table 15** testRunner
+ **Table 14** testRunner
| Name| Description| Data Type| Initial Value Allowed|
| -------- | -------- | -------- | -------- |
diff --git a/en/application-dev/quick-start/multi-hap-build-view.md b/en/application-dev/quick-start/multi-hap-build-view.md
index 3266828fdbda2b969668410a98ce4b64cce54411..a2c2a530ce1e4edbb4681ff1400398f997c23daa 100644
--- a/en/application-dev/quick-start/multi-hap-build-view.md
+++ b/en/application-dev/quick-start/multi-hap-build-view.md
@@ -3,25 +3,27 @@
DevEco Studio allows you to develop and build multiple HAP files in one application project, as shown below.
+ **Figure 1** Multi-HAP build view
- **Figure 1** Multi-HAP build view

1. Development view in DevEco Studio
- - AppScope folder
- - [app.json5](app-configuration-file.md): application-wide configuration, such as the application bundle name, version number, application icon, application name, and dependent SDK version number.
+ - **AppScope** folder
+
+ - **[app.json5](app-configuration-file.md)**: stores application-wide configuration, such as the application bundle name, version number, application icon, application name, and dependent SDK version number.
- **resources** folder: stores application icon resources and application name string resources.
-
- **NOTE**
- - The folder is automatically generated by DevEco Studio and its name cannot be changed.
- - The file names in the **AppScope** folder cannot be the same as those in the entry- or feature-type module directories. Otherwise, DevEco Studio reports an error.
- - Entry- or feature-type module directories (the names are customizable)
- - You implement service logic of your application in these module directories. In this example, the module folders are **entry.hap** and **feature.hap**.
- - **resources** directory: stores the resources used by the module.
+
+ **NOTE**
+
+ - The folder is automatically generated by DevEco Studio and its name cannot be changed.
+ - The file names in the **AppScope** folder cannot be the same as those in the entry- or feature-type module folder. Otherwise, an error will be reported.
+ - **entry** or **feature** folder (whose name is customizable)
+ - A module folder created by the developer by following the creation wizard of DevEco Studio. It stores the service logic implementation of the application. Multiple module folders can be created. In the preceding figure, **entry** and **feature** are two created module folders.
+ - **resources** folder: stores the resources used by the module.
- **ets** folder: stores the service logic.
- - [module.json5](module-configuration-file.md): module configuration, such as the module name, entry code path of the module, and component information.
-
+ - **[module.json5](module-configuration-file.md)**: stores module configuration, such as the module name, entry code path of the module, and component information.
+
2. View after build and packaging
- After a module is built, a HAP file for deployment is generated. Each module corresponds to a HAP file.
- The **module.json** file in the HAP file is composed of the **app.json5** and **module.json5** files in the development view.
diff --git a/en/application-dev/quick-start/multi-hap-release-deployment.md b/en/application-dev/quick-start/multi-hap-release-deployment.md
index ec688879ebb61ceb595feb974f2276d700479ef5..b4587f2c2125c526b86bfa0646af4b1fcbc9e9d3 100644
--- a/en/application-dev/quick-start/multi-hap-release-deployment.md
+++ b/en/application-dev/quick-start/multi-hap-release-deployment.md
@@ -6,32 +6,40 @@ Below is the process of developing, debugging, releasing, and deploying multiple

## Development
-You can use [DevEco Studio](https://developer.harmonyos.com/en/develop/deveco-studio) to create multiple modules based on service requirements and develop services in independent modules.
+You can use [DevEco Studio](https://developer.harmonyos.com/en/develop/deveco-studio) to create multiple modules as needed and develop services in respective modules.
## Debugging
-You can use DevEco Studio to build code into one or more HAP files. Then, you can debug the HAP files.
+After building code into one or more HAP files and installing or updating these HAP files, you can debug them by using the methods:
* Using DevEco Studio for debugging
Follow the instructions in [Debugging Configuration](https://developer.harmonyos.com/en/docs/documentation/doc-guides/ohos-debugging-and-running-0000001263040487#section10491183521520).
-* Using [hdc_std](../../device-dev/subsystems/subsys-toolchain-hdc-guide.md) for debugging
+* Using [hdc](../../device-dev/subsystems/subsys-toolchain-hdc-guide.md) (which can be obtained in the **toolchains** directory of the OpenHarmony SDK) for debugging
+
+ Before debugging HAP files, install or update them using either of the methods:
+
+ 1. Use hdc to install and update the HAP files.
+
+ When specifying the HAP files, use the paths of the files on the operating system, for example, Windows.
- You can obtain the hdc_std tool from the **toolchains** directory of the SDK. When using this tool to install an HAP file, the HAP file path is the one on the operating platform. In this example, the Windows operating platform is used. The command reference is as follows:
```
// Installation and update: Multiple file paths can be specified.
- hdc_std install C:\entry.hap C:\feature.hap
+ hdc install C:\entry.hap C:\feature.hap
// The execution result is as follows:
install bundle successfully.
// Uninstall
- hdc_std uninstall com.example.myapplication
+ hdc uninstall com.example.myapplication
// The execution result is as follows:
uninstall bundle successfully.
```
+
+ 2. Run the hdc shell command, and then use the Bundle Manager (bm) tool to install and update the HAP files.
-* Using [Bundle Manager (bm)](../../application-dev/tools/bm-tool.md) for debugging
-
- When using bm to install or update an HAP file, the HAP file path is the one on the real device. The command reference is as follows:
+ When specifying the HAP files, use the paths of the files on the real device. The sample code is as follows:
+
```
+ // Run the hdc shell command before using the bm tool.
+ hdc shell
// Installation and update: Multiple file paths can be specified.
bm install -p /data/app/entry.hap /data/app/feature.hap
// The execution result is as follows:
@@ -41,6 +49,8 @@ You can use DevEco Studio to build code into one or more HAP files. Then, you ca
// The execution result is as follows:
uninstall bundle successfully.
```
+ After the HAP files are installed or updated, you can debug them by following the instructions in [Ability Assistant](https://docs.openharmony.cn/pages/v3.2Beta/en/application-dev/tools/aa-tool.md/).
+
## Release
When your application package meets the release requirements, you can package and build it into an App Pack and release it to the application market on the cloud. The application market verifies the signature of the App Pack. If the signature verification is successful, the application market obtains the HAP files from the App Pack, signs them, and distributes the signed HAP files.
diff --git a/en/application-dev/quick-start/multi-hap-rules.md b/en/application-dev/quick-start/multi-hap-rules.md
index 34b7824cb62b7e1ca73232faa9f58685df2077ac..7c2675325cfecd0bfd5a6e5595c947daa8e8085d 100644
--- a/en/application-dev/quick-start/multi-hap-rules.md
+++ b/en/application-dev/quick-start/multi-hap-rules.md
@@ -1,14 +1,14 @@
# Multi-HAP Usage Rules
-- The App Pack cannot be directly installed on the device. It is only a unit that is released to AppGallery.
+- The App Pack cannot be directly installed on a device. It is only used to be released to the application market.
- All HAP files in the App Pack must share the same **bundleName** value in the configuration files.
- All HAP files in the App Pack must share the same **versionCode** value in the configuration files.
-- In an application, each type of device supports only one HAP of the entry type. Each application can contain zero, one, or more HAP files of the feature type.
+- In an App Pack, each type of device supports only one HAP file of the entry type and zero, one, or more HAP files of the feature type.
-- Each HAP file in the App Pack must have **moduleName** configured. The **moduleName** value corresponding to all HAP files of the same device type must be unique.
+- Each HAP file in the App Pack must have **moduleName** configured. Among HAP files of the same device type, the **moduleName** value must be unique.
-- The signing certificates of all HAP files in the same application must be the same. Applications are released to the application market in the form of App Pack after being signed. Before distribution, the application market splits an App Pack into HAP files and resigns them to ensure the consistency of all HAP file signing certificates. Before installing HAP files on a device through the CLI or DevEco Studio for debugging, you must ensure that their signing certificates are the same. Otherwise, the installation will fail.
+- The signing certificates of all HAP files in the same application must be the same. Applications are released to the application market in the form of App Pack after being signed. Before distribution, the application market splits an App Pack into HAP files and resigns them to ensure the consistency of HAP file signing certificates. Before installing HAP files on a device through the CLI or DevEco Studio for debugging, ensure that their signing certificates are the same. Otherwise, the installation will fail.
diff --git a/en/application-dev/reference/apis/Readme-EN.md b/en/application-dev/reference/apis/Readme-EN.md
index 6945d995cd7ce04f6cfc86fd94a6cd6094845f81..0de7d46e88f8a4d568593616b1bf73bf4c44b95e 100644
--- a/en/application-dev/reference/apis/Readme-EN.md
+++ b/en/application-dev/reference/apis/Readme-EN.md
@@ -19,8 +19,6 @@
- [@ohos.application.DataShareExtensionAbility (DataShare Extension Ability)](js-apis-application-dataShareExtensionAbility.md)
- [@ohos.application.StaticSubscriberExtensionAbility (StaticSubscriberExtensionAbility)](js-apis-application-staticSubscriberExtensionAbility.md)
- Stage Model (To Be Deprecated Soon)
- - [@ohos.application.Ability (Ability)](js-apis-application-ability.md)
- - [@ohos.application.AbilityLifecycleCallback (AbilityLifecycleCallback)](js-apis-application-abilityLifecycleCallback.md)
- [@ohos.application.EnvironmentCallback (EnvironmentCallback)](js-apis-application-environmentCallback.md)
- FA Model
- [@ohos.ability.ability (Ability)](js-apis-ability-ability.md)
@@ -34,6 +32,7 @@
- [@ohos.app.ability.Configuration (Configuration)](js-apis-app-ability-configuration.md)
- [@ohos.app.ability.ConfigurationConstant (ConfigurationConstant)](js-apis-app-ability-configurationConstant.md)
- [@ohos.app.ability.dataUriUtils (DataUriUtils)](js-apis-app-ability-dataUriUtils.md)
+ - [@ohos.app.ability.dialogRequest (dialogRequest)](js-apis-app-ability-dialogRequest.md)
- [@ohos.app.ability.errorManager (ErrorManager)](js-apis-app-ability-errorManager.md)
- [@ohos.app.ability.missionManager (missionManager)](js-apis-app-ability-missionManager.md)
- [@ohos.app.ability.quickFixManager (quickFixManager)](js-apis-app-ability-quickFixManager.md)
@@ -53,7 +52,6 @@
- [@ohos.application.appManager (appManager)](js-apis-application-appManager.md)
- [@ohos.application.Configuration (Configuration)](js-apis-application-configuration.md)
- [@ohos.application.ConfigurationConstant (ConfigurationConstant)](js-apis-application-configurationConstant.md)
- - [@ohos.application.errorManager (ErrorManager)](js-apis-application-errorManager.md)
- [@ohos.application.formBindingData (formBindingData)](js-apis-application-formBindingData.md)
- [@ohos.application.formError (FormError)](js-apis-application-formError.md)
- [@ohos.application.formHost (FormHost)](js-apis-application-formHost.md)
@@ -76,7 +74,6 @@
- [context](js-apis-inner-app-context.md)
- [processInfo](js-apis-inner-app-processInfo.md)
- application
- - [AbilityContext](js-apis-ability-context.md)
- [abilityDelegator](js-apis-inner-application-abilityDelegator.md)
- [abilityDelegatorArgs](js-apis-inner-application-abilityDelegatorArgs.md)
- [abilityMonitor](js-apis-inner-application-abilityMonitor.md)
@@ -107,6 +104,7 @@
- [ServiceExtensionContext](js-apis-inner-application-serviceExtensionContext.md)
- [UIAbilityContext](js-apis-inner-application-uiAbilityContext.md)
- [shellCmdResult](js-apis-inner-application-shellCmdResult.md)
+ - [WindowExtensionContext](js-apis-inner-application-windowExtensionContext.md)
- wantAgent
- [triggerInfo](js-apis-inner-wantAgent-triggerInfo.md)
- [wantAgentInfo](js-apis-inner-wantAgent-wantAgentInfo.md)
@@ -117,10 +115,12 @@
- [continuationResult](js-apis-continuation-continuationResult.md)
- Common Event and Notification
+ - [System Common Events](commonEventManager-definitions.md)
- [@ohos.commonEventManager (Common Event) (Recommended)](js-apis-commonEventManager.md)
- [@ohos.events.emitter (Emitter)](js-apis-emitter.md)
- [@ohos.notificationManager (NotificationManager) (Recommended)](js-apis-notificationManager.md)
- [@ohos.notificationSubscribe (NotificationSubscribe) (Recommended)](js-apis-notificationSubscribe.md)
+ - [System Common Events (To Be Deprecated Soon)](commonEvent-definitions.md)
- [@ohos.commonEvent (Common Event) (To Be Deprecated Soon)](js-apis-commonEvent.md)
- [@ohos.notification (Notification) (To Be Deprecated Soon)](js-apis-notification.md)
- application
@@ -139,13 +139,13 @@
- [abilityInfo](js-apis-bundleManager-abilityInfo.md)
- [applicationInfo](js-apis-bundleManager-applicationInfo.md)
- [bundleInfo](js-apis-bundleManager-bundleInfo.md)
+ - [BundlePackInfo](js-apis-bundleManager-BundlePackInfo.md)
- [dispatchInfo](js-apis-bundleManager-dispatchInfo.md)
- [elementName](js-apis-bundleManager-elementName.md)
- [extensionAbilityInfo](js-apis-bundleManager-extensionAbilityInfo.md)
- [hapModuleInfo](js-apis-bundleManager-hapModuleInfo.md)
- [launcherAbilityInfo](js-apis-bundleManager-launcherAbilityInfo.md)
- [metadata](js-apis-bundleManager-metadata.md)
- - [packInfo](js-apis-bundleManager-packInfo.md)
- [permissionDef](js-apis-bundleManager-permissionDef.md)
- [remoteAbilityInfo](js-apis-bundleManager-remoteAbilityInfo.md)
- [shortcutInfo](js-apis-bundleManager-shortcutInfo.md)
@@ -185,6 +185,7 @@
- [@ohos.resourceschedule.workScheduler (Work Scheduler)](js-apis-resourceschedule-workScheduler.md)
- [@ohos.resourceschedule.usageStatistics (Device Usage Statistics)](js-apis-resourceschedule-deviceUsageStatistics.md)
- [@ohos.WorkSchedulerExtensionAbility (Work Scheduler Callbacks)](js-apis-WorkSchedulerExtensionAbility.md)
+
- Security
- [@ohos.abilityAccessCtrl (Ability Access Control)](js-apis-abilityAccessCtrl.md)
- [@ohos.privacyManager (Privacy Management)](js-apis-privacyManager.md)
@@ -216,10 +217,11 @@
- [@ohos.file.hash (File Hash Processing)](js-apis-file-hash.md)
- [@ohos.file.securityLabel (Data Label)](js-apis-file-securityLabel.md)
- [@ohos.file.statvfs (File System Space Statistics)](js-apis-file-statvfs.md)
- - [@ohos.filemanagement.userFileManager (User Data Management)](js-apis-userFileManager.md)
- - [@ohos.multimedia.medialibrary (Media Library Management)](js-apis-medialibrary.md)
- [@ohos.file.storageStatistics (Application Storage Statistics)](js-apis-file-storage-statistics.md)
- [@ohos.file.volumeManager (Volume Management)](js-apis-file-volumemanager.md)
+ - [@ohos.filemanagement.userFileManager (User Data Management)](js-apis-userFileManager.md)
+ - [@ohos.multimedia.medialibrary (Media Library Management)](js-apis-medialibrary.md)
+
- Telephony Service
- [@ohos.contact (Contacts)](js-apis-contact.md)
- [@ohos.telephony.call (Call)](js-apis-call.md)
@@ -271,7 +273,7 @@
- [@ohos.InputMethodSubtype (Input Method Subtype)](js-apis-inputmethod-subtype.md)
- [@ohos.pasteboard (Pasteboard)](js-apis-pasteboard.md)
- [@ohos.screenLock (Screenlock)](js-apis-screen-lock.md)
- - [@ohos.systemTime (System Time and Time Zone)](js-apis-system-time.md)
+ - [@ohos.systemDateTime (System Time and Time Zone)](js-apis-system-date-time.md)
- [@ohos.systemTimer (System Timer)](js-apis-system-timer.md)
- [@ohos.wallpaper (Wallpaper)](js-apis-wallpaper.md)
- [@ohos.web.webview (Webview)](js-apis-webview.md)
@@ -279,6 +281,9 @@
- [Timer](js-apis-timer.md)
- application
- [AccessibilityExtensionContext](js-apis-inner-application-accessibilityExtensionContext.md)
+ - imf
+ - [InputMethodCommon](js-apis-inputmethod-InputMethodCommon.md)
+
- Device Management
- [@ohos.batteryInfo (Battery Information)](js-apis-battery-info.md)
- [@ohos.batteryStatistics (Battery Statistics)](js-apis-batteryStatistics.md)
@@ -314,10 +319,11 @@
- [@ohos.account.osAccount (OS Account Management)](js-apis-osAccount.md)
- Custom Management
- [@ohos.configPolicy (Configuration Policy)](js-apis-configPolicy.md)
- - [@ohos.enterprise.deviceInfo (Device Information Management)](js-apis-enterprise-deviceInfo.md)
- - [@ohos.enterprise.EnterpriseAdminExtensionAbility (EnterpriseAdminExtensionAbility)](js-apis-EnterpriseAdminExtensionAbility.md)
- [@ohos.enterprise.adminManager (Enterprise Device Management)](js-apis-enterprise-adminManager.md)
- [@ohos.enterprise.dateTimeManager (System Time Management)](js-apis-enterprise-dateTimeManager.md)
+ - [@ohos.enterprise.deviceControl (Device Control Management)](js-apis-enterprise-deviceControl.md)
+ - [@ohos.enterprise.deviceInfo (Device Information Management)](js-apis-enterprise-deviceInfo.md)
+ - [@ohos.enterprise.EnterpriseAdminExtensionAbility (EnterpriseAdminExtensionAbility)](js-apis-EnterpriseAdminExtensionAbility.md)
- Language Base Class Library
- [@ohos.buffer (Buffer)](js-apis-buffer.md)
@@ -364,6 +370,7 @@
- [@ohos.reminderAgent (Reminder Agent)](js-apis-reminderAgent.md)
- [@ohos.statfs (statfs)](js-apis-statfs.md)
- [@ohos.systemParameter (System Parameter)](js-apis-system-parameter.md)
+ - [@ohos.systemTime (System Time and Time Zone)](js-apis-system-time.md)
- [@ohos.usb (USB Management)](js-apis-usb-deprecated.md)
- [@ohos.usbV9 (USB Management)](js-apis-usb.md)
- [@system.app (Application Context)](js-apis-system-app.md)
diff --git a/en/application-dev/reference/apis/figures/en-us_image_0000001219864133.PNG b/en/application-dev/reference/apis/figures/en-us_image_0000001219864133.PNG
index 14f81499ff0b1b8ef46257bc35a79e94775cd2ba..54be7ed38fa40349036e18b962ee52deb579a033 100644
Binary files a/en/application-dev/reference/apis/figures/en-us_image_0000001219864133.PNG and b/en/application-dev/reference/apis/figures/en-us_image_0000001219864133.PNG differ
diff --git a/en/application-dev/reference/apis/js-apis-Bundle.md b/en/application-dev/reference/apis/js-apis-Bundle.md
index 5908fc527c4d6f1c1a3391671a0ac9dcc4b41d6f..f537fc5fe11a199afab4821b29b199499faa6c97 100644
--- a/en/application-dev/reference/apis/js-apis-Bundle.md
+++ b/en/application-dev/reference/apis/js-apis-Bundle.md
@@ -1230,7 +1230,7 @@ SystemCapability.BundleManager.BundleFramework
| Name | Type | Mandatory| Description |
| -------- | -------------------------------------------- | ---- | ----------------------- |
| info | [AbilityInfo](js-apis-bundle-AbilityInfo.md) | Yes | Ability information. |
-| callback | AsyncCallback\ | Yes | Callback used to return the result. The value **true** means that the ability is enabled, and **false** means the opposite.|
+| callback | AsyncCallback\ | Yes | Callback used to return the result. If the ability is enabled, **true** will be returned; otherwise, **false** will be returned.|
**Example**
@@ -1603,7 +1603,7 @@ bundle.getNameForUid(uid, (err, data) => {
## bundle.getAbilityIcon8+deprecated
-> This API is deprecated since API version 9. You are advised to use [bundleManager.getAbilityIcon](js-apis-bundleManager.md#bundlemanagergetabilityicon) instead.
+> This API is deprecated since API version 9. You are advised to use [resourceManager.getMediaContent](js-apis-resource-manager.md#getmediacontent9) instead.
getAbilityIcon(bundleName: string, abilityName: string): Promise\;
@@ -1646,7 +1646,7 @@ bundle.getAbilityIcon(bundleName, abilityName)
## bundle.getAbilityIcon8+deprecated
-> This API is deprecated since API version 9. You are advised to use [bundleManager.getAbilityIcon](js-apis-bundleManager.md#bundlemanagergetabilityicon) instead.
+> This API is deprecated since API version 9. You are advised to use [resourceManager.getMediaContent](js-apis-resource-manager.md#getmediacontent9) instead.
getAbilityIcon(bundleName: string, abilityName: string, callback: AsyncCallback\): void;
diff --git a/en/application-dev/reference/apis/js-apis-WorkSchedulerExtensionAbility.md b/en/application-dev/reference/apis/js-apis-WorkSchedulerExtensionAbility.md
index a22f7b48a977066e085da4b9ddfcdeb24f21463f..33555ada83df3e20766793df3208f250ac612a00 100644
--- a/en/application-dev/reference/apis/js-apis-WorkSchedulerExtensionAbility.md
+++ b/en/application-dev/reference/apis/js-apis-WorkSchedulerExtensionAbility.md
@@ -16,6 +16,14 @@ When developing an application, you can override the APIs of this module and add
import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility'
```
+## Attributes
+
+**System capability**: SystemCapability.ResourceSchedule.WorkScheduler
+
+| Name| Type| Readable| Writable| Description|
+| -------- | -------- | -------- | -------- | -------- |
+| context | [WorkSchedulerExtensionContext](js-apis-inner-application-WorkSchedulerExtensionContext.md) | Yes| No| Context of the **WorkSchedulerExtension**. This context is inherited from **ExtensionContext**.|
+
## WorkSchedulerExtensionAbility.onWorkStart
onWorkStart(work: workScheduler.WorkInfo): void
diff --git a/en/application-dev/reference/apis/js-apis-ability-context.md b/en/application-dev/reference/apis/js-apis-ability-context.md
deleted file mode 100644
index d345bbb9db0739da16156ecfc0bd4fe344989149..0000000000000000000000000000000000000000
--- a/en/application-dev/reference/apis/js-apis-ability-context.md
+++ /dev/null
@@ -1,1921 +0,0 @@
-# AbilityContext
-
-The **AbilityContext** module, inherited from **Context**, implements the context for abilities.
-
-This module provides APIs for accessing ability-specific resources. You can use the APIs to start and terminate an ability, obtain the caller interface, and request permissions from users by displaying a dialog box.
-
-> **NOTE**
->
-> - The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
-> - The APIs of this module can be used only in the stage model.
-
-## Usage
-
-Before using the **AbilityContext** module, you must define a child class that inherits from **Ability**.
-
-```ts
-import UIAbility from '@ohos.app.ability.UIAbility';
-
-let context = undefined;
-class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage) {
- context = this.context;
- }
-}
-```
-
-## Attributes
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-| Name| Type| Readable| Writable| Description|
-| -------- | -------- | -------- | -------- | -------- |
-| abilityInfo | [AbilityInfo](js-apis-bundleManager-abilityInfo.md) | Yes| No| Ability information.|
-| currentHapModuleInfo | [HapModuleInfo](js-apis-bundleManager-hapModuleInfo.md) | Yes| No| Information about the current HAP.|
-| config | [Configuration](js-apis-application-configuration.md) | Yes| No| Configuration information.|
-
-## AbilityContext.startAbility
-
-startAbility(want: Want, callback: AsyncCallback<void>): void;
-
-Starts an ability. This API uses an asynchronous callback to return the result.
-
-Observe the following when using this API:
- - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission.
- - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission.
- - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md).
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-| callback | AsyncCallback<void> | Yes| Callback used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- bundleName: "com.example.myapplication",
- abilityName: "MyAbility"
- };
-
- try {
- this.context.startAbility(want, (error) => {
- if (error.code) {
- // Process service logic errors.
- console.log('startAbility failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- return;
- }
- // Carry out normal service processing.
- console.log('startAbility succeed');
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-
-## AbilityContext.startAbility
-
-startAbility(want: Want, options: StartOptions, callback: AsyncCallback<void>): void;
-
-Starts an ability with the start options specified. This API uses an asynchronous callback to return the result.
-
-Observe the following when using this API:
- - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission.
- - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission.
- - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md).
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-| options | [StartOptions](js-apis-application-startOptions.md) | Yes| Parameters used for starting the ability.|
-| callback | AsyncCallback<void> | Yes| Callback used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- deviceId: "",
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility"
- };
- var options = {
- windowMode: 0
- };
-
- try {
- this.context.startAbility(want, options, (error) => {
- if (error.code) {
- // Process service logic errors.
- console.log('startAbility failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- return;
- }
- // Carry out normal service processing.
- console.log('startAbility succeed');
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-## AbilityContext.startAbility
-
-startAbility(want: Want, options?: StartOptions): Promise<void>;
-
-Starts an ability. This API uses a promise to return the result.
-
-Observe the following when using this API:
- - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission.
- - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission.
- - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md).
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-| options | [StartOptions](js-apis-application-startOptions.md) | No| Parameters used for starting the ability.|
-
-**Return value**
-
-| Type| Description|
-| -------- | -------- |
-| Promise<void> | Promise used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- bundleName: "com.example.myapplication",
- abilityName: "MyAbility"
- };
- var options = {
- windowMode: 0,
- };
-
- try {
- this.context.startAbility(want, options)
- .then((data) => {
- // Carry out normal service processing.
- console.log('startAbility succeed');
- })
- .catch((error) => {
- // Process service logic errors.
- console.log('startAbility failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-
-## AbilityContext.startAbilityForResult
-
-startAbilityForResult(want: Want, callback: AsyncCallback<AbilityResult>): void;
-
-Starts an ability. After the ability is started, you can call [terminateSelfWithResult](#abilitycontextterminateselfwithresult) to terminate the ability and return the result to the caller. If an exception occurs, for example, the ability is killed, exception information is returned to the caller. This API uses an asynchronous callback to return the result.
-
-Observe the following when using this API:
- - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission.
- - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission.
- - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md).
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want |[Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-| callback | AsyncCallback<[AbilityResult](js-apis-inner-ability-abilityResult.md)> | Yes| Callback used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- deviceId: "",
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility"
- };
-
- try {
- this.context.startAbilityForResult(want, (error, result) => {
- if (error.code) {
- // Process service logic errors.
- console.log('startAbilityForResult failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- return;
- }
- // Carry out normal service processing.
- console.log("startAbilityForResult succeed, result.resultCode = " +
- result.resultCode)
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-## AbilityContext.startAbilityForResult
-
-startAbilityForResult(want: Want, options: StartOptions, callback: AsyncCallback<AbilityResult>): void;
-
-Starts an ability with the start options specified. After the ability is started, you can call [terminateSelfWithResult](#abilitycontextterminateselfwithresult) to terminate the ability and return the result to the caller. If an exception occurs, for example, the ability is killed, exception information is returned to the caller. This API uses an asynchronous callback to return the result.
-
-Observe the following when using this API:
- - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission.
- - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission.
- - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md).
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want |[Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-| options | [StartOptions](js-apis-application-startOptions.md) | Yes| Parameters used for starting the ability.|
-| callback | AsyncCallback<[AbilityResult](js-apis-inner-ability-abilityResult.md)> | Yes| Callback used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- deviceId: "",
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility"
- };
- var options = {
- windowMode: 0,
- };
-
- try {
- this.context.startAbilityForResult(want, options, (error, result) => {
- if (error.code) {
- // Process service logic errors.
- console.log('startAbilityForResult failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- return;
- }
- // Carry out normal service processing.
- console.log("startAbilityForResult succeed, result.resultCode = " +
- result.resultCode)
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-
-## AbilityContext.startAbilityForResult
-
-startAbilityForResult(want: Want, options?: StartOptions): Promise<AbilityResult>;
-
-Starts an ability. After the ability is started, you can call [terminateSelfWithResult](#abilitycontextterminateselfwithresult) to terminate the ability and return the result to the caller. If an exception occurs, for example, the ability is killed, exception information is returned to the caller. This API uses a promise to return the result.
-
-Observe the following when using this API:
- - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission.
- - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission.
- - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md).
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-| options | [StartOptions](js-apis-application-startOptions.md) | No| Parameters used for starting the ability.|
-
-
-**Return value**
-
-| Type| Description|
-| -------- | -------- |
-| Promise<[AbilityResult](js-apis-inner-ability-abilityResult.md)> | Promise used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- bundleName: "com.example.myapplication",
- abilityName: "MyAbility"
- };
- var options = {
- windowMode: 0,
- };
-
- try {
- this.context.startAbilityForResult(want, options)
- .then((result) => {
- // Carry out normal service processing.
- console.log("startAbilityForResult succeed, result.resultCode = " + result.resultCode);
- })
- .catch((error) => {
- // Process service logic errors.
- console.log('startAbilityForResult failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-## AbilityContext.startAbilityForResultWithAccount
-
-startAbilityForResultWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void;
-
-Starts an ability with the account ID specified. This API uses an asynchronous callback to return the result when the ability is terminated.
-
-Observe the following when using this API:
- - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission.
- - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission.
- - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md).
-
-**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user)
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**System API**: This is a system API and cannot be called by third-party applications.
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).|
-| callback | AsyncCallback\<[AbilityResult](js-apis-inner-ability-abilityResult.md)\> | Yes| Callback used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- deviceId: "",
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility"
- };
- var accountId = 100;
-
- try {
- this.context.startAbilityForResultWithAccount(want, accountId, (error, result) => {
- if (error.code) {
- // Process service logic errors.
- console.log('startAbilityForResultWithAccount failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- return;
- }
- // Carry out normal service processing.
- console.log("startAbilityForResultWithAccount succeed, result.resultCode = " +
- result.resultCode)
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-
-## AbilityContext.startAbilityForResultWithAccount
-
-startAbilityForResultWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback\): void;
-
-Starts an ability with the start options and account ID specified. This API uses an asynchronous callback to return the result when the ability is terminated.
-
-Observe the following when using this API:
- - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission.
- - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission.
- - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md).
-
-**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user)
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**System API**: This is a system API and cannot be called by third-party applications.
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).|
-| options | [StartOptions](js-apis-application-startOptions.md) | Yes| Parameters used for starting the ability.|
-| callback | AsyncCallback\ | Yes| Callback used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- deviceId: "",
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility"
- };
- var accountId = 100;
- var options = {
- windowMode: 0
- };
-
- try {
- this.context.startAbilityForResultWithAccount(want, accountId, options, (error, result) => {
- if (error.code) {
- // Process service logic errors.
- console.log('startAbilityForResultWithAccount failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- return;
- }
- // Carry out normal service processing.
- console.log("startAbilityForResultWithAccount succeed, result.resultCode = " +
- result.resultCode)
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-
-## AbilityContext.startAbilityForResultWithAccount
-
-startAbilityForResultWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\;
-
-Starts an ability with the account ID specified. This API uses a promise to return the result when the ability is terminated.
-
-Observe the following when using this API:
- - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission.
- - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission.
- - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md).
-
-**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user)
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**System API**: This is a system API and cannot be called by third-party applications.
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).|
-| options | [StartOptions](js-apis-application-startOptions.md) | No| Parameters used for starting the ability.|
-
-**Return value**
-
-| Type| Description|
-| -------- | -------- |
-| Promise<[AbilityResult](js-apis-inner-ability-abilityResult.md)> | Promise used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- deviceId: "",
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility"
- };
- var accountId = 100;
- var options = {
- windowMode: 0
- };
-
- try {
- this.context.startAbilityForResultWithAccount(want, accountId, options)
- .then((result) => {
- // Carry out normal service processing.
- console.log("startAbilityForResultWithAccount succeed, result.resultCode = " +
- result.resultCode)
- })
- .catch((error) => {
- // Process service logic errors.
- console.log('startAbilityForResultWithAccount failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-## AbilityContext.startServiceExtensionAbility
-
-startServiceExtensionAbility(want: Want, callback: AsyncCallback\): void;
-
-Starts a ServiceExtensionAbility. This API uses an asynchronous callback to return the result.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**System API**: This is a system API and cannot be called by third-party applications.
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-| callback | AsyncCallback\ | Yes| Callback used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- deviceId: "",
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility"
- };
-
- try {
- this.context.startServiceExtensionAbility(want, (error) => {
- if (error.code) {
- // Process service logic errors.
- console.log('startServiceExtensionAbility failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- return;
- }
- // Carry out normal service processing.
- console.log('startServiceExtensionAbility succeed');
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-## AbilityContext.startServiceExtensionAbility
-
-startServiceExtensionAbility(want: Want): Promise\;
-
-Starts a ServiceExtensionAbility. This API uses a promise to return the result.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**System API**: This is a system API and cannot be called by third-party applications.
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- deviceId: "",
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility"
- };
-
- try {
- this.context.startServiceExtensionAbility(want)
- .then((data) => {
- // Carry out normal service processing.
- console.log('startServiceExtensionAbility succeed');
- })
- .catch((error) => {
- // Process service logic errors.
- console.log('startServiceExtensionAbility failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-## AbilityContext.startServiceExtensionAbilityWithAccount
-
-startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void;
-
-Starts a ServiceExtensionAbility with the account ID specified. This API uses an asynchronous callback to return the result.
-
-**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user)
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**System API**: This is a system API and cannot be called by third-party applications.
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).|
-| callback | AsyncCallback\ | Yes| Callback used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- deviceId: "",
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility"
- };
- var accountId = 100;
-
- try {
- this.context.startServiceExtensionAbilityWithAccount(want, accountId, (error) => {
- if (error.code) {
- // Process service logic errors.
- console.log('startServiceExtensionAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- return;
- }
- // Carry out normal service processing.
- console.log('startServiceExtensionAbilityWithAccount succeed');
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-## AbilityContext.startServiceExtensionAbilityWithAccount
-
-startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\;
-
-Starts a ServiceExtensionAbility with the account ID specified. This API uses a promise to return the result.
-
-**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user)
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**System API**: This is a system API and cannot be called by third-party applications.
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- deviceId: "",
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility"
- };
- var accountId = 100;
-
- try {
- this.context.startServiceExtensionAbilityWithAccount(want, accountId)
- .then((data) => {
- // Carry out normal service processing.
- console.log('startServiceExtensionAbilityWithAccount succeed');
- })
- .catch((error) => {
- // Process service logic errors.
- console.log('startServiceExtensionAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-## AbilityContext.stopServiceExtensionAbility
-
-stopServiceExtensionAbility(want: Want, callback: AsyncCallback\): void;
-
-Stops a ServiceExtensionAbility in the same application. This API uses an asynchronous callback to return the result.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**System API**: This is a system API and cannot be called by third-party applications.
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-| callback | AsyncCallback\ | Yes| Callback used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- deviceId: "",
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility"
- };
-
- try {
- this.context.startAbility(want, (error) => {
- if (error.code != 0) {
- console.log("start ability fail, err: " + JSON.stringify(err));
- }
- })
-
- this.context.stopServiceExtensionAbility(want, (error) => {
- if (error.code != 0) {
- // Process service logic errors.
- console.log('stopServiceExtensionAbility failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- return;
- }
- // Carry out normal service processing.
- console.log('stopServiceExtensionAbility succeed');
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-## AbilityContext.stopServiceExtensionAbility
-
-stopServiceExtensionAbility(want: Want): Promise\;
-
-Stops a ServiceExtensionAbility in the same application. This API uses a promise to return the result.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**System API**: This is a system API and cannot be called by third-party applications.
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- deviceId: "",
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility"
- };
-
- try {
- this.context.startAbility(want, (error) => {
- if (error.code != 0) {
- console.log("start ability fail, err: " + JSON.stringify(err));
- }
- })
-
- this.context.stopServiceExtensionAbility(want)
- .then((data) => {
- // Carry out normal service processing.
- console.log('stopServiceExtensionAbility succeed');
- })
- .catch((error) => {
- // Process service logic errors.
- console.log('stopServiceExtensionAbility failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-## AbilityContext.stopServiceExtensionAbilityWithAccount
-
-stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void;
-
-Stops a ServiceExtensionAbility in the same application with the account ID specified. This API uses an asynchronous callback to return the result.
-
-**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user)
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**System API**: This is a system API and cannot be called by third-party applications.
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).|
-| callback | AsyncCallback\ | Yes| Callback used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- deviceId: "",
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility"
- };
- var accountId = 100;
-
- try {
- this.context.startAbilityWithAccount(want, accountId, (error) => {
- if (error.code != 0) {
- console.log("start ability fail, err: " + JSON.stringify(err));
- }
- })
-
- this.context.stopServiceExtensionAbilityWithAccount(want, accountId, (error) => {
- if (error.code) {
- // Process service logic errors.
- console.log('stopServiceExtensionAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- return;
- }
- // Carry out normal service processing.
- console.log('stopServiceExtensionAbilityWithAccount succeed');
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-## AbilityContext.stopServiceExtensionAbilityWithAccount
-
-stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\;
-
-Stops a ServiceExtensionAbility in the same application with the account ID specified. This API uses a promise to return the result.
-
-**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user)
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**System API**: This is a system API and cannot be called by third-party applications.
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- deviceId: "",
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility"
- };
- var accountId = 100;
-
- try {
- this.context.startAbilityWithAccount(want, accountId, (error) => {
- if (error.code != 0) {
- console.log("start ability fail, err: " + JSON.stringify(err));
- }
- })
-
- this.context.stopServiceExtensionAbilityWithAccount(want, accountId)
- .then((data) => {
- // Carry out normal service processing.
- console.log('stopServiceExtensionAbilityWithAccount succeed');
- })
- .catch((error) => {
- // Process service logic errors.
- console.log('stopServiceExtensionAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-## AbilityContext.terminateSelf
-
-terminateSelf(callback: AsyncCallback<void>): void;
-
-Terminates this ability. This API uses an asynchronous callback to return the result.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| callback | AsyncCallback<void> | Yes| Callback used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- this.context.terminateSelf((error) => {
- if (error.code) {
- // Process service logic errors.
- console.log('terminateSelf failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- return;
- }
- // Carry out normal service processing.
- console.log('terminateSelf succeed');
- });
- ```
-
-
-## AbilityContext.terminateSelf
-
-terminateSelf(): Promise<void>;
-
-Terminates this ability. This API uses a promise to return the result.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**Return value**
-
-| Type| Description|
-| -------- | -------- |
-| Promise<void> | Promise used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- this.context.terminateSelf().then((data) => {
- // Carry out normal service processing.
- console.log('terminateSelf succeed');
- }).catch((error) => {
- // Process service logic errors.
- console.log('terminateSelf failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- });
- ```
-
-
-## AbilityContext.terminateSelfWithResult
-
-terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback<void>): void;
-
-Terminates this ability. If the ability is started by calling [startAbilityForResult](#abilitycontextstartabilityforresult), the result is returned to the caller in the form of a callback when **terminateSelfWithResult** is called. Otherwise, no result is returned to the caller when **terminateSelfWithResult** is called.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| parameter | [AbilityResult](js-apis-inner-ability-abilityResult.md) | Yes| Information returned to the caller.|
-| callback | AsyncCallback<void> | Yes| Callback used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- bundleName: "com.extreme.myapplication",
- abilityName: "SecondAbility"
- }
- var resultCode = 100;
- // AbilityResult information returned to the caller.
- var abilityResult = {
- want,
- resultCode
- }
-
- try {
- this.context.terminateSelfWithResult(abilityResult, (error) => {
- if (error.code) {
- // Process service logic errors.
- console.log('terminateSelfWithResult failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- return;
- }
- // Carry out normal service processing.
- console.log('terminateSelfWithResult succeed');
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-
-## AbilityContext.terminateSelfWithResult
-
-terminateSelfWithResult(parameter: AbilityResult): Promise<void>;
-Terminates this ability. If the ability is started by calling [startAbilityForResult](#abilitycontextstartabilityforresult), the result is returned to the caller in the form of a promise when **terminateSelfWithResult** is called. Otherwise, no result is returned to the caller when **terminateSelfWithResult** is called.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| parameter | [AbilityResult](js-apis-inner-ability-abilityResult.md) | Yes| Information returned to the caller.|
-
-**Return value**
-
-| Type| Description|
-| -------- | -------- |
-| Promise<void> | Promise used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-
-**Example**
-
- ```ts
- var want = {
- bundleName: "com.extreme.myapplication",
- abilityName: "SecondAbility"
- }
- var resultCode = 100;
- // AbilityResult information returned to the caller.
- var abilityResult = {
- want,
- resultCode
- }
-
- try {
- this.context.terminateSelfWithResult(abilityResult)
- .then((data) => {
- // Carry out normal service processing.
- console.log('terminateSelfWithResult succeed');
- })
- .catch((error) => {
- // Process service logic errors.
- console.log('terminateSelfWithResult failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-## AbilityContext.connectServiceExtensionAbility
-
-connectServiceExtensionAbility(want: Want, options: ConnectOptions): number;
-
-Uses the **AbilityInfo.AbilityType.SERVICE** template to connect this ability to another ability.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**System API**: This is a system API and cannot be called by third-party applications.
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-| options | [ConnectOptions](js-apis-inner-ability-connectOptions.md) | Yes| Parameters for the connection.|
-
-**Return value**
-
-| Type| Description|
-| -------- | -------- |
-| number | Result code of the ability connection.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- deviceId: "",
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility"
- };
- var options = {
- onConnect(elementName, remote) { console.log('----------- onConnect -----------') },
- onDisconnect(elementName) { console.log('----------- onDisconnect -----------') },
- onFailed(code) { console.log('----------- onFailed -----------') }
- }
-
- var connection = null;
- try {
- connection = this.context.connectServiceExtensionAbility(want, options);
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-
-## AbilityContext.connectServiceExtensionAbilityWithAccount
-
-connectServiceExtensionAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions): number;
-
-Uses the **AbilityInfo.AbilityType.SERVICE** template to connect this ability to another ability with the account ID specified.
-
-**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user)
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**System API**: This is a system API and cannot be called by third-party applications.
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).|
-| options | [ConnectOptions](js-apis-inner-ability-connectOptions.md) | Yes| Parameters for the connection.|
-
-**Return value**
-
-| Type| Description|
-| -------- | -------- |
-| number | Result code of the ability connection.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- deviceId: "",
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility"
- };
- var accountId = 100;
- var options = {
- onConnect(elementName, remote) { console.log('----------- onConnect -----------') },
- onDisconnect(elementName) { console.log('----------- onDisconnect -----------') },
- onFailed(code) { console.log('----------- onFailed -----------') }
- }
-
- var connection = null;
- try {
- connection = this.context.connectServiceExtensionAbilityWithAccount(want, accountId, options);
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-## AbilityContext.disconnectServiceExtensionAbility
-
-disconnectServiceExtensionAbility(connection: number): Promise\;
-
-Disconnects a connection. This API uses a promise to return the result.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| connection | number | Yes| Result code of the ability connection.|
-
-**Return value**
-
-| Type| Description|
-| -------- | -------- |
-| Promise\ | Promise used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- // connection is the return value of connectServiceExtensionAbility.
- var connection = 1;
-
- try {
- this.context.disconnectServiceExtensionAbility(connection)
- .then((data) => {
- // Carry out normal service processing.
- console.log('disconnectServiceExtensionAbility succeed');
- })
- .catch((error) => {
- // Process service logic errors.
- console.log('disconnectServiceExtensionAbility failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-## AbilityContext.disconnectServiceExtensionAbility
-
-disconnectServiceExtensionAbility(connection: number, callback:AsyncCallback\): void;
-
-Disconnects a connection. This API uses an asynchronous callback to return the result.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| connection | number | Yes| Result code of the ability connection.|
-| callback | AsyncCallback\ | Yes| Callback used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- // connection is the return value of connectServiceExtensionAbility.
- var connection = 1;
-
- try {
- this.context.disconnectServiceExtensionAbility(connection, (error) => {
- if (error.code) {
- // Process service logic errors.
- console.log('disconnectServiceExtensionAbility failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- return;
- }
- // Carry out normal service processing.
- console.log('disconnectServiceExtensionAbility succeed');
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-## AbilityContext.startAbilityByCall
-
-startAbilityByCall(want: Want): Promise<Caller>;
-
-Starts an ability in the foreground or background and obtains the caller object for communicating with the ability.
-
-Observe the following when using this API:
- - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission.
- - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission.
- - The rules for using this API in the same-device and cross-device scenarios are different. For details, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md).
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**System API**: This is a system API and cannot be called by third-party applications.
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Information about the ability to start, including **abilityName**, **moduleName**, **bundleName**, **deviceId** (optional), and **parameters** (optional). If **deviceId** is left blank or null, the local ability is started. If **parameters** is left blank or null, the ability is started in the background.|
-
-**Return value**
-
-| Type| Description|
-| -------- | -------- |
-| Promise<Caller> | Promise used to return the caller object to communicate with.|
-
-**Example**
-
- Start an ability in the background.
-
- ```ts
- var caller = undefined;
-
- // Start an ability in the background by not passing parameters.
- var wantBackground = {
- bundleName: "com.example.myservice",
- moduleName: "entry",
- abilityName: "EntryAbility",
- deviceId: ""
- };
-
- try {
- this.context.startAbilityByCall(wantBackground)
- .then((obj) => {
- // Carry out normal service processing.
- caller = obj;
- console.log('startAbilityByCall succeed');
- }).catch((error) => {
- // Process service logic errors.
- console.log('startAbilityByCall failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
- Start an ability in the foreground.
-
- ```ts
- var caller = undefined;
-
- // Start an ability in the foreground with ohos.aafwk.param.callAbilityToForeground in parameters set to true.
- var wantForeground = {
- bundleName: "com.example.myservice",
- moduleName: "entry",
- abilityName: "EntryAbility",
- deviceId: "",
- parameters: {
- "ohos.aafwk.param.callAbilityToForeground": true
- }
- };
-
- try {
- this.context.startAbilityByCall(wantForeground)
- .then((obj) => {
- // Carry out normal service processing.
- caller = obj;
- console.log('startAbilityByCall succeed');
- }).catch((error) => {
- // Process service logic errors.
- console.log('startAbilityByCall failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-## AbilityContext.startAbilityWithAccount
-
-startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void;
-
-Starts an ability with the account ID specified. This API uses an asynchronous callback to return the result.
-
-Observe the following when using this API:
- - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission.
- - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission.
- - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md).
-
-**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user)
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**System API**: This is a system API and cannot be called by third-party applications.
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).|
-| callback | AsyncCallback\ | Yes| Callback used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- deviceId: "",
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility"
- };
- var accountId = 100;
-
- try {
- this.context.startAbilityWithAccount(want, accountId, (error) => {
- if (error.code) {
- // Process service logic errors.
- console.log('startAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- return;
- }
- // Carry out normal service processing.
- console.log('startAbilityWithAccount succeed');
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-
-## AbilityContext.startAbilityWithAccount
-
-startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback\): void;
-
-Starts an ability with the account ID and start options specified. This API uses an asynchronous callback to return the result.
-
-Observe the following when using this API:
- - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission.
- - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission.
- - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md).
-
-**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user)
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**System API**: This is a system API and cannot be called by third-party applications.
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).|
-| options | [StartOptions](js-apis-application-startOptions.md) | Yes| Parameters used for starting the ability.|
-| callback | AsyncCallback\ | Yes| Callback used to return the result.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- deviceId: "",
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility"
- };
- var accountId = 100;
- var options = {
- windowMode: 0
- };
-
- try {
- this.context.startAbilityWithAccount(want, accountId, options, (error) => {
- if (error.code) {
- // Process service logic errors.
- console.log('startAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- return;
- }
- // Carry out normal service processing.
- console.log('startAbilityWithAccount succeed');
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-
-## AbilityContext.startAbilityWithAccount
-
-startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\;
-
-Starts an ability with the account ID specified. This API uses a promise to return the result.
-
-Observe the following when using this API:
- - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission.
- - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission.
- - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md).
-
-**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user)
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**System API**: This is a system API and cannot be called by third-party applications.
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.|
-| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).|
-| options | [StartOptions](js-apis-application-startOptions.md) | No| Parameters used for starting the ability.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | If the input parameter is not valid parameter. |
-
-For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md).
-
-**Example**
-
- ```ts
- var want = {
- deviceId: "",
- bundleName: "com.example.myapplication",
- abilityName: "EntryAbility"
- };
- var accountId = 100;
- var options = {
- windowMode: 0
- };
-
- try {
- this.context.startAbilityWithAccount(want, accountId, options)
- .then((data) => {
- // Carry out normal service processing.
- console.log('startAbilityWithAccount succeed');
- })
- .catch((error) => {
- // Process service logic errors.
- console.log('startAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- });
- } catch (paramError) {
- // Process input parameter errors.
- console.log('error.code: ' + JSON.stringify(paramError.code) +
- ' error.message: ' + JSON.stringify(paramError.message));
- }
- ```
-
-## AbilityContext.setMissionLabel
-
-setMissionLabel(label: string, callback:AsyncCallback<void>): void;
-
-Sets a label for this ability in the mission. This API uses an asynchronous callback to return the result.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| label | string | Yes| Label of the ability to set.|
-| callback | AsyncCallback<void> | Yes| Callback used to return the result.|
-
-**Example**
-
- ```ts
- this.context.setMissionLabel("test",(result) => {
- console.log('setMissionLabel result:' + JSON.stringify(result));
- });
- ```
-
-
-## AbilityContext.setMissionLabel
-
-setMissionLabel(label: string): Promise<void>;
-
-Sets a label for this ability in the mission. This API uses a promise to return the result.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| label | string | Yes| Label of the ability to set.|
-
-**Return value**
-
-| Type| Description|
-| -------- | -------- |
-| Promise<void> | Promise used to return the result.|
-
-**Example**
-
- ```ts
- this.context.setMissionLabel("test").then(() => {
- console.log('success');
- }).catch((error) => {
- console.log('failed:' + JSON.stringify(error));
- });
- ```
-## AbilityContext.setMissionIcon
-
-setMissionIcon(icon: image.PixelMap, callback:AsyncCallback\): void;
-
-Sets an icon for this ability in the mission. This API uses an asynchronous callback to return the result.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**System API**: This is a system API and cannot be called by third-party applications.
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| icon | [image.PixelMap](js-apis-image.md#pixelmap7) | Yes| Icon of the ability to set.|
-| callback | AsyncCallback\ | Yes| Callback used to return the result.|
-
-**Example**
-
- ```ts
- import image from '@ohos.multimedia.image';
- var imagePixelMap;
- var color = new ArrayBuffer(0);
- var initializationOptions = {
- size: {
- height: 100,
- width: 100
- }
- };
- image.createPixelMap(color, initializationOptions)
- .then((data) => {
- imagePixelMap = data;
- })
- .catch((err) => {
- console.log('--------- createPixelMap fail, err: ---------', err)
- });
- this.context.setMissionIcon(imagePixelMap, (err) => {
- console.log('---------- setMissionIcon fail, err: -----------', err);
- })
- ```
-
-
-## AbilityContext.setMissionIcon
-
-setMissionIcon(icon: image.PixelMap): Promise\;
-
-Sets an icon for this ability in the mission. This API uses a promise to return the result.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**System API**: This is a system API and cannot be called by third-party applications.
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| icon | [image.PixelMap](js-apis-image.md#pixelmap7) | Yes| Icon of the ability to set.|
-
-**Return value**
-
-| Type| Description|
-| -------- | -------- |
-| Promise<void> | Promise used to return the result.|
-
-**Example**
-
- ```ts
- import image from '@ohos.multimedia.image';
- var imagePixelMap;
- var color = new ArrayBuffer(0);
- var initializationOptions = {
- size: {
- height: 100,
- width: 100
- }
- };
- image.createPixelMap(color, initializationOptions)
- .then((data) => {
- imagePixelMap = data;
- })
- .catch((err) => {
- console.log('--------- createPixelMap fail, err: ---------', err)
- });
- this.context.setMissionIcon(imagePixelMap)
- .then(() => {
- console.log('-------------- setMissionIcon success -------------');
- })
- .catch((err) => {
- console.log('-------------- setMissionIcon fail, err: -------------', err);
- });
- ```
-## AbilityContext.restoreWindowStage
-
-restoreWindowStage(localStorage: LocalStorage) : void;
-
-Restores the window stage data for this ability.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| localStorage | LocalStorage | Yes| Storage used to store the restored window stage.|
-
-**Example**
-
- ```ts
- var storage = new LocalStorage();
- this.context.restoreWindowStage(storage);
- ```
-
-## AbilityContext.isTerminating
-
-isTerminating(): boolean;
-
-Checks whether this ability is in the terminating state.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**Return value**
-
-| Type| Description|
-| -------- | -------- |
-| boolean| The value **true** means that the ability is in the terminating state, and **false** means the opposite.|
-
-**Example**
-
- ```ts
- var isTerminating = this.context.isTerminating();
- console.log('ability state :' + isTerminating);
- ```
diff --git a/en/application-dev/reference/apis/js-apis-app-ability-abilityManager.md b/en/application-dev/reference/apis/js-apis-app-ability-abilityManager.md
index 786b63cbf302cfe869c6b81eab65096fd5cc2517..3bfd14ef61cbd5995d4d5b8a0e93a08cfbeaaac5 100644
--- a/en/application-dev/reference/apis/js-apis-app-ability-abilityManager.md
+++ b/en/application-dev/reference/apis/js-apis-app-ability-abilityManager.md
@@ -72,13 +72,13 @@ const config = {
try {
abilityManager.updateConfiguration(config, (err) => {
if (err && err.code !== 0) {
- console.log('updateConfiguration fail, err: ${JSON.stringify(err)}');
+ console.error('updateConfiguration fail, err: ${JSON.stringify(err)}');
} else {
console.log('updateConfiguration success.');
}
});
} catch (paramError) {
- console.log('error.code: ${JSON.stringify(paramError.code)}, error.message: ${JSON.stringify(paramError.message)}');
+ console.error('error.code: ${JSON.stringify(paramError.code)}, error.message: ${JSON.stringify(paramError.message)}');
}
```
@@ -130,10 +130,10 @@ try {
abilityManager.updateConfiguration(config).then(() => {
console.log('updateConfiguration success.');
}).catch((err) => {
- console.log('updateConfiguration fail, err: ${JSON.stringify(err)}');
+ console.error('updateConfiguration fail, err: ${JSON.stringify(err)}');
});
} catch (paramError) {
- console.log('error.code: ${JSON.stringify(paramError.code)}, error.message: ${JSON.stringify(paramError.message)}');
+ console.error('error.code: ${JSON.stringify(paramError.code)}, error.message: ${JSON.stringify(paramError.message)}');
}
```
@@ -169,13 +169,13 @@ import abilityManager from '@ohos.app.ability.abilityManager';
try {
abilityManager.getAbilityRunningInfos((err, data) => {
if (err && err.code !== 0) {
- console.log('getAbilityRunningInfos fail, error: ${JSON.stringify(err)}');
+ console.error('getAbilityRunningInfos fail, error: ${JSON.stringify(err)}');
} else {
console.log('getAbilityRunningInfos success, data: ${JSON.stringify(data)}');
}
});
} catch (paramError) {
- console.log('error.code: ${JSON.stringify(paramError.code)}, error.message: ${JSON.stringify(paramError.message)}');
+ console.error('error.code: ${JSON.stringify(paramError.code)}, error.message: ${JSON.stringify(paramError.message)}');
}
```
@@ -212,10 +212,10 @@ try {
abilityManager.getAbilityRunningInfos().then((data) => {
console.log('getAbilityRunningInfos success, data: ${JSON.stringify(data)}');
}).catch((err) => {
- console.log('getAbilityRunningInfos fail, err: ${JSON.stringify(err)}');
+ console.error('getAbilityRunningInfos fail, err: ${JSON.stringify(err)}');
});
} catch (paramError) {
- console.log('error.code: ${JSON.stringify(paramError.code)}, error.message: ${JSON.stringify(paramError.message)}');
+ console.error('error.code: ${JSON.stringify(paramError.code)}, error.message: ${JSON.stringify(paramError.message)}');
}
```
@@ -254,13 +254,13 @@ let upperLimit = 10;
try {
abilityManager.getExtensionRunningInfos(upperLimit, (err, data) => {
if (err && err.code !== 0) {
- console.log('getExtensionRunningInfos fail, err: ${JSON.stringify(err)}');
+ console.error('getExtensionRunningInfos fail, err: ${JSON.stringify(err)}');
} else {
console.log('getExtensionRunningInfos success, data: ${JSON.stringify(data)}');
}
});
} catch (paramError) {
- console.log('error.code: ${JSON.stringify(paramError.code)}, error.message: ${JSON.stringify(paramError.message)}');
+ console.error('error.code: ${JSON.stringify(paramError.code)}, error.message: ${JSON.stringify(paramError.message)}');
}
```
@@ -305,10 +305,10 @@ try {
abilityManager.getExtensionRunningInfos(upperLimit).then((data) => {
console.log('getExtensionRunningInfos success, data: ${JSON.stringify(data)}');
}).catch((err) => {
- console.log('getExtensionRunningInfos fail, err: ${JSON.stringify(err)}');
+ console.error('getExtensionRunningInfos fail, err: ${JSON.stringify(err)}');
});
} catch (paramError) {
- console.log('error.code: ${JSON.stringify(paramError.code)}, error.message: ${JSON.stringify(paramError.message)}');
+ console.error('error.code: ${JSON.stringify(paramError.code)}, error.message: ${JSON.stringify(paramError.message)}');
}
```
@@ -341,7 +341,7 @@ import abilityManager from '@ohos.app.ability.abilityManager';
abilityManager.getTopAbility((err, data) => {
if (err && err.code !== 0) {
- console.log('getTopAbility fail, err: ${JSON.stringify(err)}');
+ console.error('getTopAbility fail, err: ${JSON.stringify(err)}');
} else {
console.log('getTopAbility success, data: ${JSON.stringify(data)}');
}
@@ -378,6 +378,6 @@ import abilityManager from '@ohos.app.ability.abilityManager';
abilityManager.getTopAbility().then((data) => {
console.log('getTopAbility success, data: ${JSON.stringify(data)}');
}).catch((err) => {
- console.log('getTopAbility fail, err: ${JSON.stringify(err)}');
+ console.error('getTopAbility fail, err: ${JSON.stringify(err)}');
});
```
diff --git a/en/application-dev/reference/apis/js-apis-app-ability-appManager.md b/en/application-dev/reference/apis/js-apis-app-ability-appManager.md
index 419680548f17ca6bb59830ab4a540065e31067a9..c3d5a93c0f73f2b4e2e06caf8d1f45d9fd637f9f 100644
--- a/en/application-dev/reference/apis/js-apis-app-ability-appManager.md
+++ b/en/application-dev/reference/apis/js-apis-app-ability-appManager.md
@@ -41,7 +41,7 @@ import appManager from '@ohos.app.ability.appManager';
appManager.isRunningInStabilityTest((err, flag) => {
if (err && err.code !== 0) {
- console.log('isRunningInStabilityTest fail, err: ${JSON.stringify(err)}');
+ console.error('isRunningInStabilityTest fail, err: ${JSON.stringify(err)}');
} else {
console.log('The result of isRunningInStabilityTest is: ${JSON.stringify(flag)}');
}
@@ -79,7 +79,7 @@ import appManager from '@ohos.app.ability.appManager';
appManager.isRunningInStabilityTest().then((flag) => {
console.log('The result of isRunningInStabilityTest is: ${JSON.stringify(flag)}');
}).catch((error) => {
- console.log('error: ${JSON.stringify(error)}');
+ console.error('error: ${JSON.stringify(error)}');
});
```
@@ -114,7 +114,7 @@ import appManager from '@ohos.app.ability.appManager';
appManager.isRamConstrainedDevice().then((data) => {
console.log('The result of isRamConstrainedDevice is: ${JSON.stringify(data)}');
}).catch((error) => {
- console.log('error: ${JSON.stringify(error)}');
+ console.error('error: ${JSON.stringify(error)}');
});
```
@@ -147,7 +147,7 @@ import appManager from '@ohos.app.ability.appManager';
appManager.isRamConstrainedDevice((err, data) => {
if (err && err.code !== 0) {
- console.log('isRamConstrainedDevice fail, err: ${JSON.stringify(err)}');
+ console.error('isRamConstrainedDevice fail, err: ${JSON.stringify(err)}');
} else {
console.log('The result of isRamConstrainedDevice is: ${JSON.stringify(data)}');
}
@@ -184,7 +184,7 @@ import appManager from '@ohos.app.ability.appManager';
appManager.getAppMemorySize().then((data) => {
console.log('The size of app memory is: ${JSON.stringify(data)}');
}).catch((error) => {
- console.log('error: ${JSON.stringify(error)}');
+ console.error('error: ${JSON.stringify(error)}');
});
```
@@ -217,7 +217,7 @@ import appManager from '@ohos.app.ability.appManager';
appManager.getAppMemorySize((err, data) => {
if (err && err.code !== 0) {
- console.log('getAppMemorySize fail, err: ${JSON.stringify(err)}');
+ console.error('getAppMemorySize fail, err: ${JSON.stringify(err)}');
} else {
console.log('The size of app memory is: ${JSON.stringify(data)}');
}
@@ -256,7 +256,7 @@ import appManager from '@ohos.app.ability.appManager';
appManager.getRunningProcessInformation().then((data) => {
console.log('The running process information is: ${JSON.stringify(data)}');
}).catch((error) => {
- console.log('error: ${JSON.stringify(error)}');
+ console.error('error: ${JSON.stringify(error)}');
});
```
@@ -291,7 +291,7 @@ import appManager from '@ohos.app.ability.appManager';
appManager.getRunningProcessInformation((err, data) => {
if (err && err.code !== 0) {
- console.log('getRunningProcessInformation fail, err: ${JSON.stringify(err)}');
+ console.error('getRunningProcessInformation fail, err: ${JSON.stringify(err)}');
} else {
console.log('The process running information is: ${JSON.stringify(data)}');
}
@@ -357,7 +357,7 @@ try {
const observerId = appManager.on('applicationState', applicationStateObserver);
console.log(`[appManager] observerCode: ${observerId}`);
} catch (paramError) {
- console.log(`[appManager] error: ${paramError.code}, ${paramError.message} `);
+ console.error(`[appManager] error: ${paramError.code}, ${paramError.message} `);
}
```
@@ -422,7 +422,7 @@ try {
const observerId = appManager.on('applicationState', applicationStateObserver, bundleNameList);
console.log(`[appManager] observerCode: ${observerId}`);
} catch (paramError) {
- console.log(`[appManager] error: ${paramError.code}, ${paramError.message} `);
+ console.error(`[appManager] error: ${paramError.code}, ${paramError.message} `);
}
```
@@ -484,13 +484,13 @@ try {
observerId = appManager.on('applicationState', applicationStateObserver, bundleNameList);
console.log(`[appManager] observerCode: ${observerId}`);
} catch (paramError) {
- console.log(`[appManager] error: ${paramError.code}, ${paramError.message} `);
+ console.error(`[appManager] error: ${paramError.code}, ${paramError.message} `);
}
// 2. Deregister the application state observer.
function unregisterApplicationStateObserverCallback(err) {
if (err && err.code !== 0) {
- console.log('unregisterApplicationStateObserverCallback fail, err: ${JSON.stringify(err)}');
+ console.error('unregisterApplicationStateObserverCallback fail, err: ${JSON.stringify(err)}');
} else {
console.log('unregisterApplicationStateObserverCallback success.');
}
@@ -498,7 +498,7 @@ function unregisterApplicationStateObserverCallback(err) {
try {
appManager.off('applicationState', observerId, unregisterApplicationStateObserverCallback);
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
```
@@ -565,7 +565,7 @@ try {
observerId = appManager.on('applicationState', applicationStateObserver, bundleNameList);
console.log(`[appManager] observerCode: ${observerId}`);
} catch (paramError) {
- console.log(`[appManager] error: ${paramError.code}, ${paramError.message} `);
+ console.error(`[appManager] error: ${paramError.code}, ${paramError.message} `);
}
// 2. Deregister the application state observer.
@@ -573,10 +573,10 @@ try {
appManager.off('applicationState', observerId).then((data) => {
console.log('unregisterApplicationStateObserver success, data: ${JSON.stringify(data)}');
}).catch((err) => {
- console.log('unregisterApplicationStateObserver fail, err: ${JSON.stringify(err)}');
+ console.error('unregisterApplicationStateObserver fail, err: ${JSON.stringify(err)}');
});
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
```
@@ -613,7 +613,7 @@ import appManager from '@ohos.app.ability.appManager';
function getForegroundApplicationsCallback(err, data) {
if (err && err.code !== 0) {
- console.log('getForegroundApplicationsCallback fail, err: ${JSON.stringify(err)}');
+ console.error('getForegroundApplicationsCallback fail, err: ${JSON.stringify(err)}');
} else {
console.log('getForegroundApplicationsCallback success, data: ${JSON.stringify(data)}');
}
@@ -621,7 +621,7 @@ function getForegroundApplicationsCallback(err, data) {
try {
appManager.getForegroundApplications(getForegroundApplicationsCallback);
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
```
@@ -659,7 +659,7 @@ import appManager from '@ohos.app.ability.appManager';
appManager.getForegroundApplications().then((data) => {
console.log('getForegroundApplications success, data: ${JSON.stringify(data)}');
}).catch((err) => {
- console.log('getForegroundApplications fail, err: ${JSON.stringify(err)}');
+ console.error('getForegroundApplications fail, err: ${JSON.stringify(err)}');
});
```
@@ -746,7 +746,7 @@ let bundleName = 'bundleName';
let accountId = 0;
function killProcessWithAccountCallback(err, data) {
if (err && err.code !== 0) {
- console.log('killProcessWithAccountCallback fail, err: ${JSON.stringify(err)}');
+ console.error('killProcessWithAccountCallback fail, err: ${JSON.stringify(err)}');
} else {
console.log('killProcessWithAccountCallback success.');
}
@@ -789,7 +789,7 @@ import appManager from '@ohos.app.ability.appManager';
let bundleName = 'bundleName';
function killProcessesByBundleNameCallback(err, data) {
if (err && err.code !== 0) {
- console.log('killProcessesByBundleNameCallback fail, err: ${JSON.stringify(err)}');
+ console.error('killProcessesByBundleNameCallback fail, err: ${JSON.stringify(err)}');
} else {
console.log('killProcessesByBundleNameCallback success.');
}
@@ -797,7 +797,7 @@ function killProcessesByBundleNameCallback(err, data) {
try {
appManager.killProcessesByBundleName(bundleName, killProcessesByBundleNameCallback);
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
```
@@ -843,10 +843,10 @@ try {
appManager.killProcessesByBundleName(bundleName).then((data) => {
console.log('killProcessesByBundleName success.');
}).catch((err) => {
- console.log('killProcessesByBundleName fail, err: ${JSON.stringify(err)}');
+ console.error('killProcessesByBundleName fail, err: ${JSON.stringify(err)}');
});
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
```
@@ -885,7 +885,7 @@ import appManager from '@ohos.app.ability.appManager';
let bundleName = 'bundleName';
function clearUpApplicationDataCallback(err, data) {
if (err && err.code !== 0) {
- console.log('clearUpApplicationDataCallback fail, err: ${JSON.stringify(err)}');
+ console.error('clearUpApplicationDataCallback fail, err: ${JSON.stringify(err)}');
} else {
console.log('clearUpApplicationDataCallback success.');
}
@@ -893,7 +893,7 @@ function clearUpApplicationDataCallback(err, data) {
try {
appManager.clearUpApplicationData(bundleName, clearUpApplicationDataCallback);
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
```
@@ -939,10 +939,10 @@ try {
appManager.clearUpApplicationData(bundleName).then((data) => {
console.log('clearUpApplicationData success.');
}).catch((err) => {
- console.log('clearUpApplicationData fail, err: ${JSON.stringify(err)}');
+ console.error('clearUpApplicationData fail, err: ${JSON.stringify(err)}');
});
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
```
diff --git a/en/application-dev/reference/apis/js-apis-app-ability-configuration.md b/en/application-dev/reference/apis/js-apis-app-ability-configuration.md
index bf4f5afd632fa2fd0b7c380e3781a854c7676460..5021fffdc2722182651b84ee215b5ba3e71ee6cf 100644
--- a/en/application-dev/reference/apis/js-apis-app-ability-configuration.md
+++ b/en/application-dev/reference/apis/js-apis-app-ability-configuration.md
@@ -42,7 +42,7 @@ export default class EntryAbility extends UIAbility {
let callbackId = applicationContext.on('environment', envCallback);
console.log('callbackId: ${callbackId}');
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
}
}
diff --git a/en/application-dev/reference/apis/js-apis-app-ability-environmentCallback.md b/en/application-dev/reference/apis/js-apis-app-ability-environmentCallback.md
index a852da75d0192dfcfc7f977dcd0635a08d214389..96c67de7c5cc52b781f55add22b59859560ee9d5 100644
--- a/en/application-dev/reference/apis/js-apis-app-ability-environmentCallback.md
+++ b/en/application-dev/reference/apis/js-apis-app-ability-environmentCallback.md
@@ -73,7 +73,11 @@ export default class MyAbility extends UIAbility {
onDestroy() {
let applicationContext = globalThis.applicationContext;
applicationContext.unregisterEnvironmentCallback(callbackId, (error, data) => {
- console.log('unregisterEnvironmentCallback success, err: ${JSON.stringify(error)}');
+ if (error && error.code !== 0) {
+ console.error('unregisterEnvironmentCallback fail, error: ${JSON.stringify(error)}');
+ } else {
+ console.log('unregisterEnvironmentCallback success, data: ${JSON.stringify(data)}');
+ }
});
}
}
diff --git a/en/application-dev/reference/apis/js-apis-app-ability-errorManager.md b/en/application-dev/reference/apis/js-apis-app-ability-errorManager.md
index 4c1a2e693f7f08a80541c5bd124a3dd20869adc2..3a4ed4c5017aa7798d7df6c6bfbd1d95d8401536 100644
--- a/en/application-dev/reference/apis/js-apis-app-ability-errorManager.md
+++ b/en/application-dev/reference/apis/js-apis-app-ability-errorManager.md
@@ -44,7 +44,7 @@ let observerId = -1;
try {
observerId = errorManager.on('error', observer);
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
```
@@ -71,13 +71,13 @@ let observerId = 100;
function unregisterErrorObserverCallback(err) {
if (err) {
- console.log('------------ unregisterErrorObserverCallback ------------', err);
+ console.error('------------ unregisterErrorObserverCallback ------------', err);
}
}
try {
errorManager.off('error', observerId, unregisterErrorObserverCallback);
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
```
@@ -112,10 +112,10 @@ try {
console.log('----------- unregisterErrorObserver success ----------', data);
})
.catch((err) => {
- console.log('----------- unregisterErrorObserver fail ----------', err);
+ console.error('----------- unregisterErrorObserver fail ----------', err);
});
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
```
diff --git a/en/application-dev/reference/apis/js-apis-app-ability-missionManager.md b/en/application-dev/reference/apis/js-apis-app-ability-missionManager.md
index 183b3cd82c31d983e8458baee75105ac2025b52e..1224636ae4c0aa4ceb8634b244cd088257b64331 100644
--- a/en/application-dev/reference/apis/js-apis-app-ability-missionManager.md
+++ b/en/application-dev/reference/apis/js-apis-app-ability-missionManager.md
@@ -73,7 +73,7 @@ export default class EntryAbility extends UIAbility {
});
}
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
console.log('[Demo] EntryAbility onDestroy');
}
@@ -84,7 +84,7 @@ export default class EntryAbility extends UIAbility {
try {
listenerId = missionManager.on('mission', listener);
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
windowStage.loadContent('pages/index', (err, data) => {
@@ -155,7 +155,7 @@ export default class EntryAbility extends UIAbility {
});
}
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
console.log('[Demo] EntryAbility onDestroy');
}
@@ -166,7 +166,7 @@ export default class EntryAbility extends UIAbility {
try {
listenerId = missionManager.on('mission', listener);
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
windowStage.loadContent('pages/index', (err, data) => {
@@ -242,7 +242,7 @@ export default class EntryAbility extends UIAbility {
});
}
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
console.log('[Demo] EntryAbility onDestroy');
}
@@ -253,7 +253,7 @@ export default class EntryAbility extends UIAbility {
try {
listenerId = missionManager.on('mission', listener);
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
windowStage.loadContent('pages/index', (err, data) => {
@@ -306,7 +306,7 @@ Obtains the information about a given mission. This API uses an asynchronous cal
missionManager.getMissionInfo('', testMissionId, (error, mission) => {
if (error) {
- console.log('getMissionInfo failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
+ console.error('getMissionInfo failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
} else {
console.log('mission.missionId = ${mission.missionId}');
console.log('mission.runningState = ${mission.runningState}');
@@ -317,7 +317,7 @@ Obtains the information about a given mission. This API uses an asynchronous cal
}
});
} catch (paramError) {
- console.log('error.code: ${paramError.code}, error.message: ${paramError.message}');
+ console.error('error.code: ${paramError.code}, error.message: ${paramError.message}');
}
```
@@ -392,14 +392,14 @@ Obtains information about all missions. This API uses an asynchronous callback t
try {
missionManager.getMissionInfos('', 10, (error, missions) => {
if (error) {
- console.log('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
+ console.error('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
} else {
console.log('size = ${missions.length}');
console.log('missions = ${JSON.stringify(missions)}');
}
});
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
```
diff --git a/en/application-dev/reference/apis/js-apis-app-ability-quickFixManager.md b/en/application-dev/reference/apis/js-apis-app-ability-quickFixManager.md
index df6469b18033a3405101d904209f1ecef534fd99..c7a4b185eba559adfde134dd38793d475bf724a0 100644
--- a/en/application-dev/reference/apis/js-apis-app-ability-quickFixManager.md
+++ b/en/application-dev/reference/apis/js-apis-app-ability-quickFixManager.md
@@ -57,10 +57,10 @@ Applies a quick fix patch. This API uses an asynchronous callback to return the
**Parameters**
-| Parameter| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| hapModuleQuickFixFiles | Array\ | Yes| Quick fix patch files, each of which must contain a valid file path.|
-| callback | AsyncCallback\ | Yes| Callback used to return the result.|
+ | Parameter| Type| Mandatory| Description|
+ | -------- | -------- | -------- | -------- |
+ | hapModuleQuickFixFiles | Array\ | Yes| Quick fix patch files, each of which must contain a valid file path.|
+ | callback | AsyncCallback\ | Yes| Callback used to return the result.|
> **NOTE**
>
@@ -73,13 +73,13 @@ Applies a quick fix patch. This API uses an asynchronous callback to return the
let hapModuleQuickFixFiles = ['/data/storage/el2/base/entry.hqf'];
quickFixManager.applyQuickFix(hapModuleQuickFixFiles, (error) => {
if (error) {
- console.info( `applyQuickFix failed with error: ${error}`);
+ console.error( `applyQuickFix failed with error: ${error}`);
} else {
console.info( 'applyQuickFix success');
}
});
} catch (paramError) {
- console.log('error.code: ${paramError.code}, error.message: ${paramError.message}');
+ console.error('error.code: ${paramError.code}, error.message: ${paramError.message}');
}
```
@@ -97,15 +97,15 @@ Applies a quick fix patch. This API uses a promise to return the result.
**Parameters**
-| Parameter| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| hapModuleQuickFixFiles | Array\ | Yes| Quick fix patch files, each of which must contain a valid file path.|
+ | Parameter| Type| Mandatory| Description|
+ | -------- | -------- | -------- | -------- |
+ | hapModuleQuickFixFiles | Array\ | Yes| Quick fix patch files, each of which must contain a valid file path.|
**Return value**
-| Type| Description|
-| -------- | -------- |
-| Promise\ | Promise used to return the result.|
+ | Type| Description|
+ | -------- | -------- |
+ | Promise\ | Promise used to return the result.|
**Example**
@@ -115,10 +115,10 @@ Applies a quick fix patch. This API uses a promise to return the result.
quickFixManager.applyQuickFix(hapModuleQuickFixFiles).then(() => {
console.info('applyQuickFix success');
}).catch((error) => {
- console.info(`applyQuickFix err: ${error}`);
+ console.error(`applyQuickFix err: ${error}`);
});
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
```
@@ -148,13 +148,13 @@ Obtains the quick fix information of the application. This API uses an asynchron
let bundleName = 'bundleName';
quickFixManager.getApplicationQuickFixInfo(bundleName, (error, data) => {
if (error) {
- console.info(`getApplicationQuickFixInfo error: ${error}`);
+ console.error(`getApplicationQuickFixInfo error: ${error}`);
} else {
console.info(`getApplicationQuickFixInfo success: ${data}`);
}
});
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
```
@@ -178,9 +178,9 @@ Obtains the quick fix information of the application. This API uses a promise to
**Return value**
-| Type| Description|
-| -------- | -------- |
-| Promise\<[ApplicationQuickFixInfo](#applicationquickfixinfo)> | Promise used to return the quick fix information.|
+ | Type| Description|
+ | -------- | -------- |
+ | Promise\<[ApplicationQuickFixInfo](#applicationquickfixinfo)> | Promise used to return the quick fix information.|
**Example**
@@ -190,9 +190,9 @@ Obtains the quick fix information of the application. This API uses a promise to
quickFixManager.getApplicationQuickFixInfo(bundleName).then((data) => {
console.info(`getApplicationQuickFixInfo success: ${data}`);
}).catch((error) => {
- console.info(`getApplicationQuickFixInfo err: ${error}`);
+ console.error(`getApplicationQuickFixInfo err: ${error}`);
});
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
```
diff --git a/en/application-dev/reference/apis/js-apis-app-ability-wantAgent.md b/en/application-dev/reference/apis/js-apis-app-ability-wantAgent.md
index 11ac3b8a692f8e67d33d090b78542b40c155c1eb..c7fd0b0f4a3f21eec8dbf66c51f890d6436b08f0 100644
--- a/en/application-dev/reference/apis/js-apis-app-ability-wantAgent.md
+++ b/en/application-dev/reference/apis/js-apis-app-ability-wantAgent.md
@@ -186,10 +186,10 @@ try {
WantAgent.getWantAgent(wantAgentInfo).then((data) => {
wantAgent = data;
}).catch((err) => {
- console.info('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
});
} catch (err) {
- console.info('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
```
@@ -275,12 +275,12 @@ function getWantAgentCallback(err, data) {
if (err === undefined) {
wantAgent = data;
} else {
- console.info('getWantAgent failed ${JSON.stringify(wantAgent)}');
+ console.error('getWantAgent failed ${JSON.stringify(wantAgent)}');
}
// getBundleName callback
function getBundleNameCallback(err, data) {
if(err) {
- console.info('getBundleName failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getBundleName failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
} else {
console.info('getBundleName ok! ${JSON.stringify(data)}');
}
@@ -288,13 +288,13 @@ function getWantAgentCallback(err, data) {
try {
WantAgent.getBundleName(wantAgent, getBundleNameCallback);
} catch(err) {
- console.info('getBundleName failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getBundleName failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
}
try {
WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch(err) {
- console.info('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
```
@@ -385,22 +385,22 @@ function getWantAgentCallback(err, data) {
if (err === undefined) {
wantAgent = data;
} else {
- console.info('getWantAgent failed! ${JSON.stringify(wantAgent)}');
+ console.error('getWantAgent failed! ${JSON.stringify(wantAgent)}');
}
try {
WantAgent.getBundleName(wantAgent).then((data)=>{
console.info('getBundleName ok! ${JSON.stringify(data)}');
}).catch((err)=>{
- console.info('getBundleName failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getBundleName failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
});
} catch(err){
- console.info('getBundleName failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getBundleName failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
}
try {
WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch(err) {
- console.info('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
```
@@ -492,7 +492,7 @@ function getWantAgentCallback(err, data) {
// getUid callback
function getUidCallback(err, data) {
if(err) {
- console.info('getUid failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getUid failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
} else {
console.info('getUid ok! ${JSON.stringify(data)}');
}
@@ -500,13 +500,13 @@ function getWantAgentCallback(err, data) {
try {
WantAgent.getUid(wantAgent, getUidCallback);
} catch(err) {
- console.info('getUid failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getUid failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
}
try {
WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch(err) {
- console.info('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
```
@@ -597,22 +597,22 @@ function getWantAgentCallback(err, data) {
if (err === undefined) {
wantAgent = data;
} else {
- console.info('getWantAgent failed! ${JSON.stringify(wantAgent)}');
+ console.error('getWantAgent failed! ${JSON.stringify(wantAgent)}');
}
try {
WantAgent.getUid(wantAgent).then((data)=>{
console.info('getUid ok! ${JSON.stringify(data)}');
}).catch((err)=>{
- console.info('getUid failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getUid failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
});
} catch(err){
- console.info('getUid failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getUid failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
}
try {
WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch(err) {
- console.info('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
```
@@ -699,12 +699,12 @@ function getWantAgentCallback(err, data) {
if (err === undefined) {
wantAgent = data;
} else {
- console.info('getWantAgent failed ${JSON.stringify(wantAgent)}');
+ console.error('getWantAgent failed ${JSON.stringify(wantAgent)}');
}
// getWant callback
function getWantCallback(err, data) {
if(err) {
- console.info('getWant failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getWant failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
} else {
console.info('getWant ok! ${JSON.stringify(data)}');
}
@@ -712,13 +712,13 @@ function getWantAgentCallback(err, data) {
try {
WantAgent.getWant(wantAgent, getWantCallback);
} catch(err) {
- console.info('getWant failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getWant failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
}
try {
WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch(err) {
- console.info('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
```
@@ -811,22 +811,22 @@ function getWantAgentCallback(err, data) {
if (err === undefined) {
wantAgent = data;
} else {
- console.info('getWantAgent failed! ${JSON.stringify(wantAgent)}');
+ console.error('getWantAgent failed! ${JSON.stringify(wantAgent)}');
}
try {
WantAgent.getUid(wantAgent).then((data)=>{
console.info('getUid ok! ${JSON.stringify(data)}');
}).catch((err)=>{
- console.info('getUid failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getUid failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
});
} catch(err){
- console.info('getUid failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getUid failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
}
try {
WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch(err) {
- console.info('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
```
@@ -912,12 +912,12 @@ function getWantAgentCallback(err, data) {
if (err === undefined) {
wantAgent = data;
} else {
- console.info('getWantAgent failed ${JSON.stringify(wantAgent)}');
+ console.error('getWantAgent failed ${JSON.stringify(wantAgent)}');
}
// cancel callback
function cancelCallback(err, data) {
if(err) {
- console.info('cancel failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('cancel failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
} else {
console.info('cancel ok!');
}
@@ -925,13 +925,13 @@ function getWantAgentCallback(err, data) {
try {
WantAgent.cancel(wantAgent, cancelCallback);
} catch(err) {
- console.info('cancel failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('cancel failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
}
try {
WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch(err) {
- console.info('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
```
@@ -1022,22 +1022,22 @@ function getWantAgentCallback(err, data) {
if (err === undefined) {
wantAgent = data;
} else {
- console.info('getWantAgent failed! ${JSON.stringify(wantAgent)}');
+ console.error('getWantAgent failed! ${JSON.stringify(wantAgent)}');
}
try {
WantAgent.cancel(wantAgent).then((data)=>{
console.info('cancel ok!');
}).catch((err)=>{
- console.info('cancel failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('cancel failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
});
} catch(err){
- console.info('cancel failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('cancel failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
}
try {
WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch(err) {
- console.info('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
```
@@ -1126,12 +1126,12 @@ function getWantAgentCallback(err, data) {
if (err === undefined) {
wantAgent = data;
} else {
- console.info('getWantAgent failed ${JSON.stringify(wantAgent)}');
+ console.error('getWantAgent failed ${JSON.stringify(wantAgent)}');
}
// trigger callback
function triggerCallback(err, data) {
if(err) {
- console.info('getUid failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getUid failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
} else {
console.info('getUid ok! ${JSON.stringify(data)}');
}
@@ -1139,13 +1139,13 @@ function getWantAgentCallback(err, data) {
try {
WantAgent.trigger(wantAgent, triggerInfo, triggerCallback);
} catch(err) {
- console.info('getUid failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getUid failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
}
try {
WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch(err) {
- console.info('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
```
@@ -1234,12 +1234,12 @@ function getWantAgentCallback(err, data) {
wantAgent1 = data;
wantAgent2 = data;
} else {
- console.info('getWantAgent failed ${JSON.stringify(wantAgent)}');
+ console.error('getWantAgent failed ${JSON.stringify(wantAgent)}');
}
// equal callback
function equalCallback(err, data) {
if(err) {
- console.info('equal failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('equal failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
} else {
console.info('equal ok! ${JSON.stringify(data)}');
}
@@ -1247,13 +1247,13 @@ function getWantAgentCallback(err, data) {
try {
WantAgent.equal(wantAgent1,wantAgent2,equalCallback);
} catch(err) {
- console.info('equal failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('equal failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
}
try {
WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch(err) {
- console.info('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
```
@@ -1347,22 +1347,22 @@ function getWantAgentCallback(err, data) {
wantAgent1 = data;
wantAgent2 = data;
} else {
- console.info('getWantAgent failed! ${JSON.stringify(wantAgent)}');
+ console.error('getWantAgent failed! ${JSON.stringify(wantAgent)}');
}
try {
WantAgent.equal(wantAgent1,wantAgent2).then((data)=>{
console.info('equal ok! ${JSON.stringify(data)}');
}).catch((err)=>{
- console.info('equal failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('equal failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
})
} catch(err){
- console.info('equal failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('equal failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
}
try {
WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch(err) {
- console.info('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
```
@@ -1446,12 +1446,12 @@ function getWantAgentCallback(err, data) {
if (err === undefined) {
wantAgent = data;
} else {
- console.info('getWantAgent failed ${JSON.stringify(wantAgent)}');
+ console.error('getWantAgent failed ${JSON.stringify(wantAgent)}');
}
// getOperationTypeCallback callback
function getOperationTypeCallback(err, data) {
if(err) {
- console.info('getOperationType failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getOperationType failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
} else {
console.info('getOperationType ok! ${JSON.stringify(data)}');
}
@@ -1459,13 +1459,13 @@ function getWantAgentCallback(err, data) {
try {
WantAgent.getOperationTypeCallback(wantAgent, getOperationTypeCallback);
} catch(err) {
- console.info('getOperationTypeCallback failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getOperationTypeCallback failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
}
try {
WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch(err) {
- console.info('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
```
@@ -1554,22 +1554,22 @@ function getWantAgentCallback(err, data) {
if (err === undefined) {
wantAgent = data;
} else {
- console.info('getWantAgent failed! ${JSON.stringify(wantAgent)}');
+ console.error('getWantAgent failed! ${JSON.stringify(wantAgent)}');
}
try {
WantAgent.getOperationType(wantAgent).then((data)=>{
console.info('getOperationType ok! ${JSON.stringify(data)}');
}).catch((err)=>{
- console.info('getOperationType failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getOperationType failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
});
} catch(err){
- console.info('getOperationType failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getOperationType failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
}
try {
WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback);
} catch(err) {
- console.info('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
+ console.error('getWantAgent failed! ${JSON.stringify(err.code)} ${JSON.stringify(err.message)}');
}
```
diff --git a/en/application-dev/reference/apis/js-apis-appAccount.md b/en/application-dev/reference/apis/js-apis-appAccount.md
index e48f7440149566926e3700c1885c61596e36eb9e..5b2b923deeb737e90cd173b822e65a35b00e741a 100644
--- a/en/application-dev/reference/apis/js-apis-appAccount.md
+++ b/en/application-dev/reference/apis/js-apis-appAccount.md
@@ -1,4 +1,4 @@
-# @ohos.account.appAccount (App Account Management)
+# @ohos.account.appAccount (App Account Management)
The **appAccount** module provides APIs for adding, deleting, modifying, and querying app account information, and supports inter-app authentication and distributed data synchronization.
@@ -1685,7 +1685,7 @@ Deletes the authorization token of the specified authentication type for an app
| name | string | Yes | Name of the target app account. |
| owner | string | Yes | Owner of the app account. The value is the bundle name of the app. |
| authType | string | Yes | Authentication type. |
-| token | string | Yes | Token to delete.|
+| token | string | Yes | Authorization token to delete.|
**Return value**
@@ -4561,8 +4561,8 @@ Enumerates the constants.
Enumerates the result codes.
-> **NOTE**
-> This enum is supported since API version 8 and deprecated since API version 9. From API version 9, error codes are used. For details about the error codes, see [App Account Error Codes](../errorcodes/errorcode-app-account.md).
+> **NOTE**
+> This enum is supported since API version 8 and deprecated since API version 9. Error codes are used from API version 9. For details, see [Account Management Error Codes](../errorcodes/errorcode-account.md).
**System capability**: SystemCapability.Account.AppAccount
@@ -4910,9 +4910,9 @@ Checks the account labels. This API uses an asynchronous callback to return the
| labels | Array<string> | Yes | Labels to check. |
| callback | [AuthCallback](#authcallback9) | Yes | Authenticator callback invoked to return the check result.|
-### isAccountRemovable9+
+### checkAccountRemovable9+
-isAccountRemovable(name: string, callback: AuthCallback): void;
+checkAccountRemovable(name: string, callback: AuthCallback): void;
Checks whether an app account can be deleted. This API uses an asynchronous callback to return the result.
@@ -4970,7 +4970,7 @@ Obtains the remote object of an authenticator. This API cannot be overloaded.
callback.onResult(account_appAccount.ResultCode.SUCCESS, result);
}
- isAccountRemovable(name, callback) {
+ checkAccountRemovable(name, callback) {
var result = {[account_appAccount.Constants.KEY_BOOLEAN_RESULT]: true};
callback.onResult(account_appAccount.ResultCode.SUCCESS, result);
}
diff --git a/en/application-dev/reference/apis/js-apis-application-ability.md b/en/application-dev/reference/apis/js-apis-application-ability.md
deleted file mode 100644
index 6e96d0194a712340cd63a5510a190ea971d04e01..0000000000000000000000000000000000000000
--- a/en/application-dev/reference/apis/js-apis-application-ability.md
+++ /dev/null
@@ -1,756 +0,0 @@
-# @ohos.application.Ability (Ability)
-
-The **Ability** module manages the ability lifecycle and context, such as creating and destroying an ability, and dumping client information.
-
-This module provides the following common ability-related functions:
-
-- [Caller](#caller): implements sending of sequenceable data to the target ability when an ability (caller ability) invokes the target ability (callee ability).
-- [Callee](#callee): implements callbacks for registration and deregistration of caller notifications.
-
-> **NOTE**
->
-> The APIs of this module are deprecated since API version 9. You are advised to use [@ohos.app.ability.UIAbility (UIAbility)](js-apis-app-ability-uiAbility.md) instead.
->
-> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
->
-> The APIs of this module can be used only in the stage model.
-
-## Modules to Import
-
-```ts
-import UIAbility from '@ohos.application.Ability';
-```
-
-## Attributes
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-| Name| Type| Readable| Writable| Description|
-| -------- | -------- | -------- | -------- | -------- |
-| context | [UIAbilityContext](js-apis-inner-application-uiAbilityContext.md) | Yes| No| Context of an ability.|
-| launchWant | [Want](js-apis-app-ability-want.md) | Yes| No| Parameters for starting the ability.|
-| lastRequestWant | [Want](js-apis-app-ability-want.md) | Yes| No| Parameters used when the ability was started last time.|
-| callee | [Callee](#callee) | Yes| No| Object that invokes the stub service.|
-
-## Ability.onCreate
-
-onCreate(want: Want, param: AbilityConstant.LaunchParam): void;
-
-Called to initialize the service logic when an ability is created.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
- | Name| Type| Mandatory| Description|
- | -------- | -------- | -------- | -------- |
- | want | [Want](js-apis-app-ability-want.md) | Yes| Information related to this ability, including the ability name and bundle name.|
- | param | AbilityConstant.LaunchParam | Yes| Parameters for starting the ability, and the reason for the last abnormal exit.|
-
-**Example**
-
- ```ts
- export default class EntryAbility extends UIAbility {
- onCreate(want, param) {
- console.log('onCreate, want:' + want.abilityName);
- }
- }
- ```
-
-
-## Ability.onWindowStageCreate
-
-onWindowStageCreate(windowStage: window.WindowStage): void
-
-Called when a **WindowStage** is created for this ability.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
- | Name| Type| Mandatory| Description|
- | -------- | -------- | -------- | -------- |
- | windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** information.|
-
-**Example**
-
- ```ts
- export default class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage) {
- console.log('onWindowStageCreate');
- }
- }
- ```
-
-
-## Ability.onWindowStageDestroy
-
-onWindowStageDestroy(): void
-
-Called when the **WindowStage** is destroyed for this ability.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Example**
-
- ```ts
- export default class EntryAbility extends UIAbility {
- onWindowStageDestroy() {
- console.log('onWindowStageDestroy');
- }
- }
- ```
-
-
-## Ability.onWindowStageRestore
-
-onWindowStageRestore(windowStage: window.WindowStage): void
-
-Called when the **WindowStage** is restored during the migration of this ability, which is a multi-instance ability.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
- | Name| Type| Mandatory| Description|
- | -------- | -------- | -------- | -------- |
- | windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** information.|
-
-**Example**
-
- ```ts
- export default class EntryAbility extends UIAbility {
- onWindowStageRestore(windowStage) {
- console.log('onWindowStageRestore');
- }
- }
- ```
-
-
-## Ability.onDestroy
-
-onDestroy(): void;
-
-Called when this ability is destroyed to clear resources.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Example**
-
- ```ts
- export default class EntryAbility extends UIAbility {
- onDestroy() {
- console.log('onDestroy');
- }
- }
- ```
-
-
-## Ability.onForeground
-
-onForeground(): void;
-
-Called when this ability is switched from the background to the foreground.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Example**
-
- ```ts
- export default class EntryAbility extends UIAbility {
- onForeground() {
- console.log('onForeground');
- }
- }
- ```
-
-
-## Ability.onBackground
-
-onBackground(): void;
-
-Called when this ability is switched from the foreground to the background.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Example**
-
- ```ts
- export default class EntryAbility extends UIAbility {
- onBackground() {
- console.log('onBackground');
- }
- }
- ```
-
-
-## Ability.onContinue
-
-onContinue(wantParam : {[key: string]: any}): AbilityConstant.OnContinueResult;
-
-Called to save data during the ability migration preparation process.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
- | Name| Type| Mandatory| Description|
- | -------- | -------- | -------- | -------- |
- | wantParam | {[key: string]: any} | Yes| **want** parameter.|
-
-**Return value**
-
- | Type| Description|
- | -------- | -------- |
- | AbilityConstant.OnContinueResult | Continuation result.|
-
-**Example**
-
- ```ts
- import AbilityConstant from "@ohos.app.ability.AbilityConstant";
-
- export default class EntryAbility extends UIAbility {
- onContinue(wantParams) {
- console.log('onContinue');
- wantParams["myData"] = "my1234567";
- return AbilityConstant.OnContinueResult.AGREE;
- }
- }
- ```
-
-
-## Ability.onNewWant
-
-onNewWant(want: Want, launchParams: AbilityConstant.LaunchParam): void;
-
-Called when a new Want is passed in and this UIAbility is started again.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| want | [Want](js-apis-application-want.md) | Yes| Want information, such as the ability name and bundle name.|
-| launchParams | AbilityConstant.LaunchParam | Yes| Reason for the ability startup and the last abnormal exit.|
-
-**Example**
-
- ```ts
- export default class EntryAbility extends UIAbility {
- onNewWant(want, launchParams) {
- console.log('onNewWant, want:' + want.abilityName);
- console.log('onNewWant, launchParams:' + JSON.stringify(launchParams));
- }
- }
- ```
-
-## Ability.onConfigurationUpdated
-
-onConfigurationUpdated(config: Configuration): void;
-
-Called when the global configuration is updated.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**Parameters**
-
- | Name| Type| Mandatory| Description|
- | -------- | -------- | -------- | -------- |
- | config | [Configuration](js-apis-application-configuration.md) | Yes| Callback invoked when the global configuration is updated. The global configuration indicates the configuration of the environment where the application is running and includes the language and color mode.|
-
-**Example**
-
- ```ts
- export default class EntryAbility extends UIAbility {
- onConfigurationUpdated(config) {
- console.log('onConfigurationUpdated, language:' + config.language);
- }
- }
- ```
-
-## Ability.dump
-
-dump(params: Array\): Array\;
-
-Dumps client information.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
- | Name| Type| Mandatory| Description|
- | -------- | -------- | -------- | -------- |
- | params | Array\ | Yes| Parameters in the form of a command.|
-
-**Example**
-
- ```ts
- export default class EntryAbility extends UIAbility {
- dump(params) {
- console.log('dump, params:' + JSON.stringify(params));
- return ["params"]
- }
- }
- ```
-
-## Ability.onMemoryLevel
-
-onMemoryLevel(level: AbilityConstant.MemoryLevel): void;
-
-Called when the system has decided to adjust the memory level. For example, this API can be used when there is not enough memory to run as many background processes as possible.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
- | Name| Type| Mandatory| Description|
- | -------- | -------- | -------- | -------- |
- | level | [AbilityConstant.MemoryLevel](js-apis-application-abilityConstant.md#abilityconstantmemorylevel) | Yes| Memory level that indicates the memory usage status. When the specified memory level is reached, a callback will be invoked and the system will start adjustment.|
-
-**Example**
-
- ```ts
- export default class EntryAbility extends UIAbility {
- onMemoryLevel(level) {
- console.log('onMemoryLevel, level:' + JSON.stringify(level));
- }
- }
- ```
-
-## Ability.onSaveState
-
-onSaveState(reason: AbilityConstant.StateType, wantParam : {[key: string]: any}): AbilityConstant.OnSaveResult;
-
-Called when the framework automatically saves the ability state in the case of an application fault. This API is used together with [appRecovery](js-apis-app-ability-appRecovery.md).
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
- | Name| Type| Mandatory| Description|
- | -------- | -------- | -------- | -------- |
- | reason | [AbilityConstant.StateType](js-apis-application-abilityConstant.md#abilityconstantstatetype) | Yes| Reason for triggering the callback to save the ability state.|
- | wantParam | {[key: string]: any} | Yes| **want** parameter.|
-
-**Return value**
-
- | Type| Description|
- | -------- | -------- |
- | AbilityConstant.OnSaveResult | Whether the ability state is saved.|
-
-**Example**
-
- ```ts
-import AbilityConstant from '@ohos.app.ability.AbilityConstant';
-
-export default class EntryAbility extends UIAbility {
- onSaveState(reason, wantParam) {
- console.log('onSaveState');
- wantParam["myData"] = "my1234567";
- return AbilityConstant.OnSaveResult.RECOVERY_AGREE;
- }
-}
- ```
-
-## Caller
-
-Implements sending of sequenceable data to the target ability when an ability (caller ability) invokes the target ability (callee ability).
-
-## Caller.call
-
-call(method: string, data: rpc.Sequenceable): Promise<void>;
-
-Sends sequenceable data to the target ability.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
- | Name| Type| Mandatory| Description|
- | -------- | -------- | -------- | -------- |
- | method | string | Yes| Notification message string negotiated between the two abilities. The message is used to instruct the callee to register a function to receive the sequenceable data.|
- | data | rpc.Sequenceable | Yes| Sequenceable data. You need to customize the data.|
-
-**Return value**
-
- | Type| Description|
- | -------- | -------- |
- | Promise<void> | Promise used to return a response.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 201 | The application does not have permission to call the interface. |
-| 401 | Invalid input parameter. |
-| 16200001 | Caller released. The caller has been released. |
-| 16200002 | Callee invalid. The callee does not exist. |
-| 16000050 | Internal Error. |
-
-**Example**
-
- ```ts
- import UIAbility from '@ohos.app.ability.UIAbility';
-
- class MyMessageAble{ // Custom sequenceable data structure.
- name:""
- str:""
- num: 1
- constructor(name, str) {
- this.name = name;
- this.str = str;
- }
- marshalling(messageParcel) {
- messageParcel.writeInt(this.num);
- messageParcel.writeString(this.str);
- console.log('MyMessageAble marshalling num[' + this.num + '] str[' + this.str + ']');
- return true;
- }
- unmarshalling(messageParcel) {
- this.num = messageParcel.readInt();
- this.str = messageParcel.readString();
- console.log('MyMessageAble unmarshalling num[' + this.num + '] str[' + this.str + ']');
- return true;
- }
- };
- var method = 'call_Function'; // Notification message string negotiated by the two abilities
- var caller;
- export default class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage) {
- this.context.startAbilityByCall({
- bundleName: "com.example.myservice",
- abilityName: "EntryAbility",
- deviceId: ""
- }).then((obj) => {
- caller = obj;
- let msg = new MyMessageAble("msg", "world"); // See the definition of Sequenceable.
- caller.call(method, msg)
- .then(() => {
- console.log('Caller call() called');
- })
- .catch((callErr) => {
- console.log('Caller.call catch error, error.code: ' + JSON.stringify(callErr.code) +
- ' error.message: ' + JSON.stringify(callErr.message));
- });
- }).catch((err) => {
- console.log('Caller GetCaller error, error.code: ' + JSON.stringify(err.code) +
- ' error.message: ' + JSON.stringify(err.message));
- });
- }
- }
- ```
-
-
-## Caller.callWithResult
-
-callWithResult(method: string, data: rpc.Sequenceable): Promise<rpc.MessageParcel>;
-
-Sends sequenceable data to the target ability and obtains the sequenceable data returned by the target ability.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
- | Name| Type| Mandatory| Description|
- | -------- | -------- | -------- | -------- |
- | method | string | Yes| Notification message string negotiated between the two abilities. The message is used to instruct the callee to register a function to receive the sequenceable data.|
- | data | rpc.Sequenceable | Yes| Sequenceable data. You need to customize the data.|
-
-**Return value**
-
- | Type| Description|
- | -------- | -------- |
- | Promise<rpc.MessageParcel> | Promise used to return the sequenceable data from the target ability.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 201 | The application does not have permission to call the interface. |
-| 401 | Invalid input parameter. |
-| 16200001 | Caller released. The caller has been released. |
-| 16200002 | Callee invalid. The callee does not exist. |
-| 16000050 | Internal Error. |
-
-**Example**
-
- ```ts
- import UIAbility from '@ohos.app.ability.UIAbility';
-
- class MyMessageAble{
- name:""
- str:""
- num: 1
- constructor(name, str) {
- this.name = name;
- this.str = str;
- }
- marshalling(messageParcel) {
- messageParcel.writeInt(this.num);
- messageParcel.writeString(this.str);
- console.log('MyMessageAble marshalling num[' + this.num + '] str[' + this.str + ']');
- return true;
- }
- unmarshalling(messageParcel) {
- this.num = messageParcel.readInt();
- this.str = messageParcel.readString();
- console.log('MyMessageAble unmarshalling num[' + this.num + '] str[' + this.str + ']');
- return true;
- }
- };
- var method = 'call_Function';
- var caller;
- export default class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage) {
- this.context.startAbilityByCall({
- bundleName: "com.example.myservice",
- abilityName: "EntryAbility",
- deviceId: ""
- }).then((obj) => {
- caller = obj;
- let msg = new MyMessageAble(1, "world");
- caller.callWithResult(method, msg)
- .then((data) => {
- console.log('Caller callWithResult() called');
- let retmsg = new MyMessageAble(0, "");
- data.readSequenceable(retmsg);
- })
- .catch((callErr) => {
- console.log('Caller.callWithResult catch error, error.code: ' + JSON.stringify(callErr.code) +
- ' error.message: ' + JSON.stringify(callErr.message));
- });
- }).catch((err) => {
- console.log('Caller GetCaller error, error.code: ' + JSON.stringify(err.code) +
- ' error.message: ' + JSON.stringify(err.message));
- });
- }
- }
- ```
-
-
-## Caller.release
-
-release(): void;
-
-Releases the caller interface of the target ability.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | Invalid input parameter. |
-| 16200001 | Caller released. The caller has been released. |
-| 16200002 | Callee invalid. The callee does not exist. |
-| 16000050 | Internal Error. |
-
-**Example**
-
- ```ts
- import UIAbility from '@ohos.app.ability.UIAbility';
-
- var caller;
-
- export default class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage) {
- this.context.startAbilityByCall({
- bundleName: "com.example.myservice",
- abilityName: "EntryAbility",
- deviceId: ""
- }).then((obj) => {
- caller = obj;
- try {
- caller.release();
- } catch (releaseErr) {
- console.log('Caller.release catch error, error.code: ' + JSON.stringify(releaseErr.code) +
- ' error.message: ' + JSON.stringify(releaseErr.message));
- }
- }).catch((err) => {
- console.log('Caller GetCaller error, error.code: ' + JSON.stringify(err.code) +
- ' error.message: ' + JSON.stringify(err.message));
- });
- }
- }
- ```
-
-## Caller.onRelease
-
- onRelease(callback: OnReleaseCallBack): void;
-
-Registers a callback that is invoked when the stub on the target ability is disconnected.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
- | Name| Type| Mandatory| Description|
- | -------- | -------- | -------- | -------- |
- | callback | OnReleaseCallBack | Yes| Callback used for the **onRelease** API.|
-
-**Example**
-
- ```ts
- import UIAbility from '@ohos.app.ability.UIAbility';
-
- var caller;
-
- export default class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage) {
- this.context.startAbilityByCall({
- bundleName: "com.example.myservice",
- abilityName: "EntryAbility",
- deviceId: ""
- }).then((obj) => {
- caller = obj;
- try {
- caller.onRelease((str) => {
- console.log(' Caller OnRelease CallBack is called ' + str);
- });
- } catch (error) {
- console.log('Caller.on catch error, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- }
- }).catch((err) => {
- console.log('Caller GetCaller error, error.code: ' + JSON.stringify(err.code) +
- ' error.message: ' + JSON.stringify(err.message));
- });
- }
- }
- ```
-
-
-## Callee
-
-Implements callbacks for caller notification registration and deregistration.
-
-## Callee.on
-
-on(method: string, callback: CalleeCallBack): void;
-
-Registers a caller notification callback, which is invoked when the target ability registers a function.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
- | Name| Type| Mandatory| Description|
- | -------- | -------- | -------- | -------- |
- | method | string | Yes| Notification message string negotiated between the two abilities.|
- | callback | CalleeCallBack | Yes| JS notification synchronization callback of the **rpc.MessageParcel** type. The callback must return at least one empty **rpc.Sequenceable** object. Otherwise, the function execution fails.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | Invalid input parameter. |
-| 16200004 | Method registered. The method has registered. |
-| 16000050 | Internal Error. |
-
-**Example**
-
- ```ts
- import UIAbility from '@ohos.app.ability.UIAbility';
- class MyMessageAble{
- name:""
- str:""
- num: 1
- constructor(name, str) {
- this.name = name;
- this.str = str;
- }
- marshalling(messageParcel) {
- messageParcel.writeInt(this.num);
- messageParcel.writeString(this.str);
- console.log('MyMessageAble marshalling num[' + this.num + '] str[' + this.str + ']');
- return true;
- }
- unmarshalling(messageParcel) {
- this.num = messageParcel.readInt();
- this.str = messageParcel.readString();
- console.log('MyMessageAble unmarshalling num[' + this.num + '] str[' + this.str + ']');
- return true;
- }
- };
- var method = 'call_Function';
- function funcCallBack(pdata) {
- console.log('Callee funcCallBack is called ' + pdata);
- let msg = new MyMessageAble("test", "");
- pdata.readSequenceable(msg);
- return new MyMessageAble("test1", "Callee test");
- }
- export default class EntryAbility extends UIAbility {
- onCreate(want, launchParam) {
- console.log('Callee onCreate is called');
- try {
- this.callee.on(method, funcCallBack);
- } catch (error) {
- console.log('Callee.on catch error, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- }
- }
- }
- ```
-
-## Callee.off
-
-off(method: string): void;
-
-Deregisters a caller notification callback, which is invoked when the target ability registers a function.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
- | Name| Type| Mandatory| Description|
- | -------- | -------- | -------- | -------- |
- | method | string | Yes| Registered notification message string.|
-
-**Error codes**
-
-| ID| Error Message|
-| ------- | -------------------------------- |
-| 401 | Invalid input parameter. |
-| 16200005 | Method not registered. The method has not registered. |
-| 16000050 | Internal Error. |
-
-
-**Example**
- ```ts
- import UIAbility from '@ohos.app.ability.UIAbility';
-
- var method = 'call_Function';
-
- export default class EntryAbility extends UIAbility {
- onCreate(want, launchParam) {
- console.log('Callee onCreate is called');
- try {
- this.callee.off(method);
- } catch (error) {
- console.log('Callee.off catch error, error.code: ' + JSON.stringify(error.code) +
- ' error.message: ' + JSON.stringify(error.message));
- }
- }
- }
- ```
-
-## OnReleaseCallBack
-
-(msg: string): void;
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-| Name| Type| Readable| Writable| Description|
-| -------- | -------- | -------- | -------- | -------- |
-| (msg: string) | function | Yes| No| Prototype of the listener function registered by the caller.|
-
-## CalleeCallBack
-
-(indata: rpc.MessageParcel): rpc.Sequenceable;
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-| Name| Type| Readable| Writable| Description|
-| -------- | -------- | -------- | -------- | -------- |
-| (indata: rpc.MessageParcel) | rpc.Sequenceable | Yes| No| Prototype of the listener function registered by the callee.|
diff --git a/en/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md b/en/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md
deleted file mode 100644
index 5e29491014719ab9e5cf09dd976ed71f2b449c6e..0000000000000000000000000000000000000000
--- a/en/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md
+++ /dev/null
@@ -1,213 +0,0 @@
-# @ohos.application.AbilityLifecycleCallback (AbilityLifecycleCallback)
-
-The **AbilityLifecycleCallback** module provides callbacks, such as **onAbilityCreate**, **onWindowStageCreate**, and **onWindowStageDestroy**, to receive lifecycle state changes in the application context. These callbacks can be used as an input parameter of [registerAbilityLifecycleCallback](js-apis-inner-application-applicationContext.md#applicationcontextregisterabilitylifecyclecallback).
-
-> **NOTE**
->
-> The APIs of this module are supported since API version 9 and are deprecated in versions later than API version 9. You are advised to use [@ohos.app.ability.AbilityLifecycleCallback](js-apis-app-ability-abilityLifecycleCallback.md) instead. Newly added APIs will be marked with a superscript to indicate their earliest API version.
-> The APIs of this module can be used only in the stage model.
-
-
-## Modules to Import
-
-```ts
-import AbilityLifecycleCallback from "@ohos.application.AbilityLifecycleCallback";
-```
-
-
-## AbilityLifecycleCallback.onAbilityCreate
-
-onAbilityCreate(ability: Ability): void;
-
-Called when an ability is created.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.|
-
-
-## AbilityLifecycleCallback.onWindowStageCreate
-
-onWindowStageCreate(ability: Ability, windowStage: window.WindowStage): void;
-
-Called when the window stage of an ability is created.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.|
-| windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** object.|
-
-
-## AbilityLifecycleCallback.onWindowStageActive
-
-onWindowStageActive(ability: Ability, windowStage: window.WindowStage): void;
-
-Called when the window stage of an ability gains focus.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.|
-| windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** object.|
-
-
-## AbilityLifecycleCallback.onWindowStageInactive
-
-onWindowStageInactive(ability: Ability, windowStage: window.WindowStage): void;
-
-Called when the window stage of an ability loses focus.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.|
-| windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** object.|
-
-
-## AbilityLifecycleCallback.onWindowStageDestroy
-
-onWindowStageDestroy(ability: Ability, windowStage: window.WindowStage): void;
-
-Called when the window stage of an ability is destroyed.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.|
-| windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** object.|
-
-
-## AbilityLifecycleCallback.onAbilityDestroy
-
-onAbilityDestroy(ability: Ability): void;
-
-Called when an ability is destroyed.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.|
-
-
-## AbilityLifecycleCallback.onAbilityForeground
-
-onAbilityForeground(ability: Ability): void;
-
-Called when an ability is switched from the background to the foreground.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.|
-
-
-## AbilityLifecycleCallback.onAbilityBackground
-
-onAbilityBackground(ability: Ability): void;
-
-Called when an ability is switched from the foreground to the background.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.|
-
-
-## AbilityLifecycleCallback.onAbilityContinue
-
-onAbilityContinue(ability: Ability): void;
-
-Called when an ability is continued on another device.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.|
-
-**Example**
-
-```ts
-import AbilityStage from "@ohos.app.ability.AbilityStage";
-
-var lifecycleId;
-
-export default class MyAbilityStage extends AbilityStage {
- onCreate() {
- console.log("MyAbilityStage onCreate")
- let AbilityLifecycleCallback = {
- onAbilityCreate(ability) {
- console.log("onAbilityCreate ability:" + JSON.stringify(ability));
- },
- onWindowStageCreate(ability, windowStage) {
- console.log("onWindowStageCreate ability:" + JSON.stringify(ability));
- console.log("onWindowStageCreate windowStage:" + JSON.stringify(windowStage));
- },
- onWindowStageActive(ability, windowStage) {
- console.log("onWindowStageActive ability:" + JSON.stringify(ability));
- console.log("onWindowStageActive windowStage:" + JSON.stringify(windowStage));
- },
- onWindowStageInactive(ability, windowStage) {
- console.log("onWindowStageInactive ability:" + JSON.stringify(ability));
- console.log("onWindowStageInactive windowStage:" + JSON.stringify(windowStage));
- },
- onWindowStageDestroy(ability, windowStage) {
- console.log("onWindowStageDestroy ability:" + JSON.stringify(ability));
- console.log("onWindowStageDestroy windowStage:" + JSON.stringify(windowStage));
- },
- onAbilityDestroy(ability) {
- console.log("onAbilityDestroy ability:" + JSON.stringify(ability));
- },
- onAbilityForeground(ability) {
- console.log("onAbilityForeground ability:" + JSON.stringify(ability));
- },
- onAbilityBackground(ability) {
- console.log("onAbilityBackground ability:" + JSON.stringify(ability));
- },
- onAbilityContinue(ability) {
- console.log("onAbilityContinue ability:" + JSON.stringify(ability));
- }
- }
- // 1. Obtain applicationContext through the context attribute.
- let applicationContext = this.context.getApplicationContext();
- // 2. Use applicationContext to register a listener for the ability lifecycle in the application.
- lifecycleId = applicationContext.registerAbilityLifecycleCallback(AbilityLifecycleCallback);
- console.log("registerAbilityLifecycleCallback number: " + JSON.stringify(lifecycleId));
- }
-
- onDestroy() {
- let applicationContext = this.context.getApplicationContext();
- applicationContext.unregisterAbilityLifecycleCallback(lifecycleId, (error, data) => {
- console.log("unregisterAbilityLifecycleCallback success, err: " + JSON.stringify(error));
- });
- }
-}
-```
diff --git a/en/application-dev/reference/apis/js-apis-application-appManager.md b/en/application-dev/reference/apis/js-apis-application-appManager.md
index da884686b0782d74836421a915521c8882639d74..f32952bbbf73311db85ce014fbd4c8892f3b1d56 100644
--- a/en/application-dev/reference/apis/js-apis-application-appManager.md
+++ b/en/application-dev/reference/apis/js-apis-application-appManager.md
@@ -29,9 +29,12 @@ Checks whether this application is undergoing a stability test. This API uses an
**Example**
```ts
- appManager.isRunningInStabilityTest((err, flag) => {
- console.log('error: ${JSON.stringify(err)}');
- console.log('The result of isRunningInStabilityTest is: ${JSON.stringify(flag)}');
+ appManager.isRunningInStabilityTest((error, flag) => {
+ if (error && error.code !== 0) {
+ console.error('isRunningInStabilityTest fail, error: ${JSON.stringify(error)}');
+ } else {
+ console.log('isRunningInStabilityTest success, the result is: ${JSON.stringify(flag)}');
+ }
});
```
@@ -56,7 +59,7 @@ Checks whether this application is undergoing a stability test. This API uses a
appManager.isRunningInStabilityTest().then((flag) => {
console.log('The result of isRunningInStabilityTest is: ${JSON.stringify(flag)}');
}).catch((error) => {
- console.log('error: ${JSON.stringify(error)}');
+ console.error('error: ${JSON.stringify(error)}');
});
```
@@ -81,7 +84,7 @@ Checks whether this application is running on a RAM constrained device. This API
appManager.isRamConstrainedDevice().then((data) => {
console.log('The result of isRamConstrainedDevice is: ${JSON.stringify(data)}');
}).catch((error) => {
- console.log('error: ${JSON.stringify(error)}');
+ console.error('error: ${JSON.stringify(error)}');
});
```
@@ -102,9 +105,12 @@ Checks whether this application is running on a RAM constrained device. This API
**Example**
```ts
- appManager.isRamConstrainedDevice((err, data) => {
- console.log('error: ${JSON.stringify(err)}');
- console.log('The result of isRamConstrainedDevice is: ${JSON.stringify(data)}');
+ appManager.isRamConstrainedDevice((error, data) => {
+ if (error && error.code !== 0) {
+ console.error('isRamConstrainedDevice fail, error: ${JSON.stringify(error)}');
+ } else {
+ console.log('The result of isRamConstrainedDevice is: ${JSON.stringify(data)}');
+ }
});
```
@@ -128,7 +134,7 @@ Obtains the memory size of this application. This API uses a promise to return t
appManager.getAppMemorySize().then((data) => {
console.log('The size of app memory is: ${JSON.stringify(data)}');
}).catch((error) => {
- console.log('error: ${JSON.stringify(error)}');
+ console.error('error: ${JSON.stringify(error)}');
});
```
@@ -149,9 +155,12 @@ Obtains the memory size of this application. This API uses an asynchronous callb
**Example**
```ts
- appManager.getAppMemorySize((err, data) => {
- console.log('error: ${JSON.stringify(err)}');
- console.log('The size of app memory is: ${JSON.stringify(data)}');
+ appManager.getAppMemorySize((error, data) => {
+ if (error && error.code !== 0) {
+ console.error('getAppMemorySize fail, error: ${JSON.stringify(error)}');
+ } else {
+ console.log('The size of app memory is: ${JSON.stringify(data)}');
+ }
});
```
## appManager.getProcessRunningInfos(deprecated)
@@ -178,7 +187,7 @@ Obtains information about the running processes. This API uses a promise to retu
appManager.getProcessRunningInfos().then((data) => {
console.log('The process running infos is: ${JSON.stringify(data)}');
}).catch((error) => {
- console.log('error: ${JSON.stringify(error)}');
+ console.error('error: ${JSON.stringify(error)}');
});
```
@@ -203,9 +212,12 @@ Obtains information about the running processes. This API uses an asynchronous c
**Example**
```ts
- appManager.getProcessRunningInfos((err, data) => {
- console.log('error: ${JSON.stringify(err)}');
- console.log('The process running infos is: ${JSON.stringify(data)}');
+ appManager.getProcessRunningInfos((error, data) => {
+ if (error && error.code !== 0) {
+ console.error('getProcessRunningInfos fail, error: ${JSON.stringify(error)}');
+ } else {
+ console.log('getProcessRunningInfos success, data: ${JSON.stringify(data)}');
+ }
});
```
@@ -320,7 +332,7 @@ Deregisters the application state observer. This API uses an asynchronous callba
function unregisterApplicationStateObserverCallback(err) {
if (err) {
- console.log('------------ unregisterApplicationStateObserverCallback ------------', err);
+ console.error('------------ unregisterApplicationStateObserverCallback ------------', err);
}
}
appManager.unregisterApplicationStateObserver(observerId, unregisterApplicationStateObserverCallback);
@@ -360,7 +372,7 @@ Deregisters the application state observer. This API uses a promise to return th
console.log('----------- unregisterApplicationStateObserver success ----------', data);
})
.catch((err) => {
- console.log('----------- unregisterApplicationStateObserver fail ----------', err);
+ console.error('----------- unregisterApplicationStateObserver fail ----------', err);
});
```
@@ -387,7 +399,7 @@ Obtains information about the applications that are running in the foreground. T
```ts
function getForegroundApplicationsCallback(err, data) {
if (err) {
- console.log('--------- getForegroundApplicationsCallback fail ---------', err);
+ console.error('--------- getForegroundApplicationsCallback fail ---------', err);
} else {
console.log('--------- getForegroundApplicationsCallback success ---------', data);
}
@@ -421,7 +433,7 @@ Obtains information about the applications that are running in the foreground. T
console.log('--------- getForegroundApplications success -------', data);
})
.catch((err) => {
- console.log('--------- getForegroundApplications fail -------', err);
+ console.error('--------- getForegroundApplications fail -------', err);
});
```
@@ -454,7 +466,7 @@ appManager.killProcessWithAccount(bundleName, accountId)
console.log('------------ killProcessWithAccount success ------------', data);
})
.catch((err) => {
- console.log('------------ killProcessWithAccount fail ------------', err);
+ console.error('------------ killProcessWithAccount fail ------------', err);
});
```
@@ -486,7 +498,7 @@ let bundleName = 'bundleName';
let accountId = 0;
function killProcessWithAccountCallback(err, data) {
if (err) {
- console.log('------------- killProcessWithAccountCallback fail, err: --------------', err);
+ console.error('------------- killProcessWithAccountCallback fail, err: --------------', err);
} else {
console.log('------------- killProcessWithAccountCallback success, data: --------------', data);
}
@@ -519,7 +531,7 @@ Kills a process by bundle name. This API uses an asynchronous callback to return
let bundleName = 'bundleName';
function killProcessesByBundleNameCallback(err, data) {
if (err) {
- console.log('------------- killProcessesByBundleNameCallback fail, err: --------------', err);
+ console.error('------------- killProcessesByBundleNameCallback fail, err: --------------', err);
} else {
console.log('------------- killProcessesByBundleNameCallback success, data: --------------', data);
}
@@ -560,7 +572,7 @@ Kills a process by bundle name. This API uses a promise to return the result.
console.log('------------ killProcessesByBundleName success ------------', data);
})
.catch((err) => {
- console.log('------------ killProcessesByBundleName fail ------------', err);
+ console.error('------------ killProcessesByBundleName fail ------------', err);
});
```
@@ -589,7 +601,7 @@ Clears application data by bundle name. This API uses an asynchronous callback t
let bundleName = 'bundleName';
function clearUpApplicationDataCallback(err, data) {
if (err) {
- console.log('------------- clearUpApplicationDataCallback fail, err: --------------', err);
+ console.error('------------- clearUpApplicationDataCallback fail, err: --------------', err);
} else {
console.log('------------- clearUpApplicationDataCallback success, data: --------------', data);
}
@@ -630,6 +642,6 @@ Clears application data by bundle name. This API uses a promise to return the re
console.log('------------ clearUpApplicationData success ------------', data);
})
.catch((err) => {
- console.log('------------ clearUpApplicationData fail ------------', err);
+ console.error('------------ clearUpApplicationData fail ------------', err);
});
```
diff --git a/en/application-dev/reference/apis/js-apis-application-configuration.md b/en/application-dev/reference/apis/js-apis-application-configuration.md
index ea31ed6a6b019ef446e94c9ee07407ff1f9d3ae1..624d5946bdb8988dccc8709701d44ae1c9addd96 100644
--- a/en/application-dev/reference/apis/js-apis-application-configuration.md
+++ b/en/application-dev/reference/apis/js-apis-application-configuration.md
@@ -41,10 +41,10 @@ export default class EntryAbility extends UIAbility {
windowStage.loadContent('pages/index', (err, data) => {
if (err.code) {
- console.error('failed to load the content, error: + ${JSON.stringify(err)}');
+ console.error('failed to load the content, error: ${JSON.stringify(err)}');
return;
}
- console.info('Succeeded in loading the content, data: + ${JSON.stringify(data)}');
+ console.info('Succeeded in loading the content, data: ${JSON.stringify(data)}');
});
}
}
diff --git a/en/application-dev/reference/apis/js-apis-application-environmentCallback.md b/en/application-dev/reference/apis/js-apis-application-environmentCallback.md
index 257c83a9f99821e77191a69f89ef9a25e457b982..00396ca388d9145f2b3905166b2ef317959f2744 100644
--- a/en/application-dev/reference/apis/js-apis-application-environmentCallback.md
+++ b/en/application-dev/reference/apis/js-apis-application-environmentCallback.md
@@ -54,7 +54,7 @@ export default class EntryAbility extends UIAbility {
onCreate() {
console.log('MyAbility onCreate');
globalThis.applicationContext = this.context.getApplicationContext();
- let EnvironmentCallback = {
+ let environmentCallback = {
onConfigurationUpdated(config){
console.log('onConfigurationUpdated config: ${JSON.stringify(config)}');
},
@@ -65,13 +65,17 @@ export default class EntryAbility extends UIAbility {
// 1. Obtain an applicationContext object.
let applicationContext = globalThis.applicationContext;
// 2. Register a listener for the environment changes through the applicationContext object.
- callbackId = applicationContext.registerEnvironmentCallback(EnvironmentCallback);
+ callbackId = applicationContext.registerEnvironmentCallback(environmentCallback);
console.log('registerEnvironmentCallback number: ${JSON.stringify(callbackId)}');
}
onDestroy() {
let applicationContext = globalThis.applicationContext;
applicationContext.unregisterEnvironmentCallback(callbackId, (error, data) => {
- console.log('unregisterEnvironmentCallback success, err: ${JSON.stringify(error)}');
+ if (error && error.code !== 0) {
+ console.error('unregisterEnvironmentCallback fail, error: ${JSON.stringify(error)}');
+ } else {
+ console.log('unregisterEnvironmentCallback success, data: ${JSON.stringify(data)}');
+ }
});
}
}
diff --git a/en/application-dev/reference/apis/js-apis-application-errorManager.md b/en/application-dev/reference/apis/js-apis-application-errorManager.md
deleted file mode 100644
index 2fbd840782cefe200f53d6df090bff9220b52c49..0000000000000000000000000000000000000000
--- a/en/application-dev/reference/apis/js-apis-application-errorManager.md
+++ /dev/null
@@ -1,100 +0,0 @@
-# @ohos.application.errorManager (ErrorManager)
-
-The **ErrorManager** module provides APIs for registering and deregistering error observers.
-
-> **NOTE**
->
-> The APIs of this module are supported since API version 9 and are deprecated in versions later than API version 9. You are advised to use [@ohos.app.ability.errorManager](js-apis-app-ability-errorManager.md) instead. Newly added APIs will be marked with a superscript to indicate their earliest API version.
-
-## Modules to Import
-```ts
-import errorManager from '@ohos.application.errorManager';
-```
-
-## ErrorManager.registerErrorObserver
-
-registerErrorObserver(observer: ErrorObserver): number;
-
-Registers an error observer.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| observer | [ErrorObserver](js-apis-inner-application-errorObserver.md) | Yes| Numeric code of the observer.|
-
-**Example**
-
-```ts
-var observer = {
- onUnhandledException(errorMsg) {
- console.log('onUnhandledException, errorMsg: ', errorMsg)
- }
-}
-errorManager.registerErrorObserver(observer)
-```
-
-## ErrorManager.unregisterErrorObserver
-
-unregisterErrorObserver(observerId: number, callback: AsyncCallback\): void;
-
-Deregisters an error observer. This API uses an asynchronous callback to return the result.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| observerId | number | Yes| Numeric code of the observer.|
-| callback | AsyncCallback\ | Yes| Callback used to return the result.|
-
-**Example**
-
-```ts
-var observerId = 100;
-
-function unregisterErrorObserverCallback(err) {
- if (err) {
- console.log('------------ unregisterErrorObserverCallback ------------', err);
- }
-}
-errorManager.unregisterErrorObserver(observerId, unregisterErrorObserverCallback);
-
-```
-
-## ErrorManager.unregisterErrorObserver
-
-unregisterErrorObserver(observerId: number): Promise\;
-
-Deregisters an error observer. This API uses a promise to return the result.
-
-**System capability**: SystemCapability.Ability.AbilityRuntime.Core
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| observerId | number | Yes| Numeric code of the observer.|
-
-**Return value**
-
-| Type| Description|
-| -------- | -------- |
-| Promise\ | Promise used to return the result.|
-
-**Example**
-
-```ts
-var observerId = 100;
-errorManager.unregisterErrorObserver(observerId)
-.then((data) => {
- console.log('----------- unregisterErrorObserver success ----------', data);
-})
-.catch((err) => {
- console.log('----------- unregisterErrorObserver fail ----------', err);
-})
-
-```
diff --git a/en/application-dev/reference/apis/js-apis-application-missionManager.md b/en/application-dev/reference/apis/js-apis-application-missionManager.md
index 8e180f9286a98e8c04ef41505c2e3439f866d01e..c09b0387f8aa1bff0b9f084136ad6ed70859c71f 100644
--- a/en/application-dev/reference/apis/js-apis-application-missionManager.md
+++ b/en/application-dev/reference/apis/js-apis-application-missionManager.md
@@ -92,7 +92,7 @@ Deregisters a mission status listener. This API uses an asynchronous callback to
let listenerid = missionManager.registerMissionListener(listener);
missionManager.unregisterMissionListener(listenerid, (error) => {
- console.log('unregisterMissionListener');
+ console.error('unregisterMissionListener fail, error: ${error}');
});
```
@@ -136,8 +136,8 @@ Deregisters a mission status listener. This API uses a promise to return the res
console.log('registerMissionListener');
let listenerid = missionManager.registerMissionListener(listener);
- missionManager.unregisterMissionListener(listenerid).catch(function (err) {
- console.log(err);
+ missionManager.unregisterMissionListener(listenerid).catch(function (error) {
+ console.error('unregisterMissionListener fail, error: ${error}');
});
```
@@ -170,7 +170,7 @@ Obtains the information about a given mission. This API uses an asynchronous cal
let allMissions=missionManager.getMissionInfos('',10).catch(function(err){console.log(err);});
missionManager.getMissionInfo('', allMissions[0].missionId, (error, mission) => {
if (error.code) {
- console.log('getMissionInfo failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
+ console.error('getMissionInfo failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
return;
}
@@ -214,8 +214,8 @@ Obtains the information about a given mission. This API uses a promise to return
```ts
import missionManager from '@ohos.application.missionManager';
- let mission = missionManager.getMissionInfo('', 10).catch(function (err){
- console.log(err);
+ let mission = missionManager.getMissionInfo('', 10).catch(function (error){
+ console.error('getMissionInfo fail, error: ${error}');
});
```
@@ -247,7 +247,7 @@ Obtains information about all missions. This API uses an asynchronous callback t
missionManager.getMissionInfos('', 10, (error, missions) => {
if (error.code) {
- console.log('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
+ console.error('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
return;
}
console.log('size = ${missions.length}');
@@ -286,8 +286,8 @@ Obtains information about all missions. This API uses a promise to return the re
```ts
import missionManager from '@ohos.application.missionManager';
- let allMissions = missionManager.getMissionInfos('', 10).catch(function (err){
- console.log(err);
+ let allMissions = missionManager.getMissionInfos('', 10).catch(function (error){
+ console.error('getMissionInfos fail, error: ${error}');
});
```
@@ -319,7 +319,7 @@ Obtains the snapshot of a given mission. This API uses an asynchronous callback
missionManager.getMissionInfos('', 10, (error, missions) => {
if (error.code) {
- console.log('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
+ console.error('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
return;
}
console.log('size = ${missions.length}');
@@ -328,7 +328,7 @@ Obtains the snapshot of a given mission. This API uses an asynchronous callback
missionManager.getMissionSnapShot('', id, (error, snapshot) => {
if (error.code) {
- console.log('getMissionSnapShot failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
+ console.error('getMissionSnapShot failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
return;
}
console.log('bundleName = ${snapshot.ability.bundleName}');
@@ -370,13 +370,15 @@ Obtains the snapshot of a given mission. This API uses a promise to return the r
let allMissions;
missionManager.getMissionInfos('',10).then(function(res){
allMissions=res;
- }).catch(function(err){console.log(err);});
+ }).catch(function(error) {
+ console.error('getMissionInfos fail, error: ${error}');
+ });
console.log('size = ${allMissions.length}');
console.log('missions = ${JSON.stringify(allMissions)}');
let id = allMissions[0].missionId;
- let snapshot = missionManager.getMissionSnapShot('', id).catch(function (err){
- console.log(err);
+ let snapshot = missionManager.getMissionSnapShot('', id).catch(function (error){
+ console.error('getMissionSnapShot fail, error: ${error}');
});
```
@@ -407,7 +409,7 @@ Obtains the low-resolution snapshot of a given mission. This API uses an asynchr
missionManager.getMissionInfos('', 10, (error, missions) => {
if (error.code) {
- console.log('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
+ console.error('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
return;
}
console.log('size = ${missions.length}');
@@ -416,8 +418,7 @@ Obtains the low-resolution snapshot of a given mission. This API uses an asynchr
missionManager.getLowResolutionMissionSnapShot('', id, (error, snapshot) => {
if (error.code) {
- console.log('getLowResolutionMissionSnapShot failed, error.code: ${JSON.stringify(error.code)}
- 'error.message: ${JSON.stringify(error.message)}');
+ console.error('getLowResolutionMissionSnapShot failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
return;
}
console.log('bundleName = ${snapshot.ability.bundleName}');
@@ -459,13 +460,15 @@ Obtains the low-resolution snapshot of a given mission. This API uses a promise
let allMissions;
missionManager.getMissionInfos('',10).then(function(res){
allMissions=res;
- }).catch(function(err){console.log(err);});
+ }).catch(function(error) {
+ console.error('getMissionInfos fail, error: ${error}');
+ });
console.log('size = ${allMissions.length}');
console.log('missions = ${JSON.stringify(allMissions)}');
let id = allMissions[0].missionId;
- let snapshot = missionManager.getLowResolutionMissionSnapShot('', id).catch(function (err){
- console.log(err);
+ let snapshot = missionManager.getLowResolutionMissionSnapShot('', id).catch(function (error){
+ console.error('getLowResolutionMissionSnapShot fail, error: ${error}');
});
```
@@ -496,8 +499,7 @@ Locks a given mission. This API uses an asynchronous callback to return the resu
missionManager.getMissionInfos('', 10, (error, missions) => {
if (error.code) {
- console.log('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}
- 'error.message: ${JSON.stringify(error.message)}');
+ console.error('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
return;
}
console.log('size = ${missions.length}');
@@ -542,13 +544,15 @@ Locks a given mission. This API uses a promise to return the result.
let allMissions;
missionManager.getMissionInfos('',10).then(function(res){
allMissions=res;
- }).catch(function(err){console.log(err);});
+ }).catch(function(error) {
+ console.error('getMissionInfos fail, error: ${error}');
+ });
console.log('size = ${allMissions.length}');
console.log('missions = ${JSON.stringify(allMissions)}');
let id = allMissions[0].missionId;
- missionManager.lockMission(id).catch(function (err){
- console.log(err);
+ missionManager.lockMission(id).catch(function (error){
+ console.error('lockMission fail, error: ${error}');
});
```
@@ -579,7 +583,7 @@ Unlocks a given mission. This API uses an asynchronous callback to return the re
missionManager.getMissionInfos('', 10, (error, missions) => {
if (error.code) {
- console.log('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
+ console.error('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
return;
}
console.log('size = ${missions.length}');
@@ -625,16 +629,18 @@ Unlocks a given mission. This API uses a promise to return the result.
let allMissions;
missionManager.getMissionInfos('',10).then(function(res){
allMissions=res;
- }).catch(function(err){console.log(err);});
+ }).catch(function(error) {
+ console.error('getMissionInfos fail, error: ${error}');
+ });
console.log('size = ${allMissions.length}');
console.log('missions = ${JSON.stringify(allMissions)}');
let id = allMissions[0].missionId;
- missionManager.lockMission(id).catch(function (err){
- console.log(err);
+ missionManager.lockMission(id).catch(function (error){
+ console.error('lockMission fail, error: ${error}');
});
- missionManager.unlockMission(id).catch(function (err){
- console.log(err);
+ missionManager.unlockMission(id).catch(function (error){
+ console.error('unlockMission fail, error: ${error}');
});
```
@@ -665,7 +671,7 @@ Clears a given mission, regardless of whether it is locked. This API uses an asy
missionManager.getMissionInfos('', 10, (error, missions) => {
if (error.code) {
- console.log('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
+ console.error('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
return;
}
console.log('size = ${missions.length}');
@@ -711,13 +717,15 @@ Clears a given mission, regardless of whether it is locked. This API uses a prom
let allMissions;
missionManager.getMissionInfos('',10).then(function(res){
allMissions=res;
- }).catch(function(err){console.log(err);});
+ }).catch(function(error) {
+ console.error('getMissionInfos fail, error: ${error}');
+ });
console.log('size = ${allMissions.length}');
console.log('missions = ${JSON.stringify(allMissions)}');
let id = allMissions[0].missionId;
- missionManager.clearMission(id).catch(function (err){
- console.log(err);
+ missionManager.clearMission(id).catch(function (error){
+ console.error('clearMission fail, error: ${error}');
});
```
@@ -767,8 +775,8 @@ Clears all unlocked missions. This API uses a promise to return the result.
```ts
import missionManager from '@ohos.application.missionManager';
- missionManager.clearAllMissions().catch(function (err){
- console.log(err);
+ missionManager.clearAllMissions().catch(function (error){
+ console.error('clearAllMissions fail, error: ${error}');
});
```
@@ -799,7 +807,7 @@ Switches a given mission to the foreground. This API uses an asynchronous callba
missionManager.getMissionInfos('', 10, (error, missions) => {
if (error.code) {
- console.log('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
+ console.error('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
return;
}
console.log('size = ${missions.length}');
@@ -840,7 +848,7 @@ Switches a given mission to the foreground, with the startup parameters for the
missionManager.getMissionInfos('', 10, (error, missions) => {
if (error.code) {
- console.log('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
+ console.error('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
return;
}
console.log('size = ${missions.length}');
@@ -887,12 +895,14 @@ Switches a given mission to the foreground, with the startup parameters for the
let allMissions;
missionManager.getMissionInfos('',10).then(function(res){
allMissions=res;
- }).catch(function(err){console.log(err);});
+ }).catch(function(error) {
+ console.error('getMissionInfos fail, error: ${error}');
+ });
console.log('size = ${allMissions.length}');
console.log('missions = ${JSON.stringify(allMissions)}');
let id = allMissions[0].missionId;
- missionManager.moveMissionToFront(id).catch(function (err){
- console.log(err);
+ missionManager.moveMissionToFront(id).catch(function (error){
+ console.error('moveMissionToFront fail, error: ${error}');
});
```
diff --git a/en/application-dev/reference/apis/js-apis-arraylist.md b/en/application-dev/reference/apis/js-apis-arraylist.md
index ebf538d3b5508c1ee26aa77d4db01aa995239c3b..283786a82fd1ce50d7632b9354b99f32ff4419fb 100644
--- a/en/application-dev/reference/apis/js-apis-arraylist.md
+++ b/en/application-dev/reference/apis/js-apis-arraylist.md
@@ -404,11 +404,9 @@ arrayList.add(2);
arrayList.add(4);
arrayList.add(5);
arrayList.add(4);
-arrayList.replaceAllElements((value: number, index: number)=> {
- return value = 2 * value;
-});
-arrayList.replaceAllElements((value: number, index: number) => {
- return value = value - 2;
+arrayList.replaceAllElements((value) => {
+ // Add the user operation logic based on the actual scenario.
+ return value;
});
```
@@ -453,7 +451,7 @@ arrayList.add(4);
arrayList.add(5);
arrayList.add(4);
arrayList.forEach((value, index) => {
- console.log(`value:${value}`, index);
+ console.log("value:" + value, "index:" + index);
});
```
@@ -796,14 +794,14 @@ arrayList.add(4);
// Method 1:
for (let item of arrayList) {
- console.log(`value:${item}`);
+ console.log(`value:${item}`);
}
// Method 2:
let iter = arrayList[Symbol.iterator]();
let temp = iter.next().value;
while(temp != undefined) {
- console.log(`value:${temp}`);
- temp = iter.next().value;
+ console.log(`value:${temp}`);
+ temp = iter.next().value;
}
```
diff --git a/en/application-dev/reference/apis/js-apis-audio.md b/en/application-dev/reference/apis/js-apis-audio.md
index a992de969d6b6e673b89eff8f14f28f5328ce017..4abed77e24d5c6cf16d7fd84ce36cf806d06ce4e 100644
--- a/en/application-dev/reference/apis/js-apis-audio.md
+++ b/en/application-dev/reference/apis/js-apis-audio.md
@@ -75,7 +75,7 @@ Creates an **AudioRenderer** instance. This API uses an asynchronous callback to
```js
import featureAbility from '@ohos.ability.featureAbility';
-import fileio from '@ohos.fileio';
+import fs from '@ohos.file.fs';
import audio from '@ohos.multimedia.audio';
let audioStreamInfo = {
@@ -130,7 +130,7 @@ Creates an **AudioRenderer** instance. This API uses a promise to return the res
```js
import featureAbility from '@ohos.ability.featureAbility';
-import fileio from '@ohos.fileio';
+import fs from '@ohos.file.fs';
import audio from '@ohos.multimedia.audio';
let audioStreamInfo = {
@@ -349,7 +349,10 @@ Enumerates the audio stream types.
| VOICE_CALL8+ | 0 | Audio stream for voice calls.|
| RINGTONE | 2 | Audio stream for ringtones. |
| MEDIA | 3 | Audio stream for media purpose. |
+| ALARM10+ | 4 | Audio stream for alarming. |
+| ACCESSIBILITY10+ | 5 | Audio stream for accessibility. |
| VOICE_ASSISTANT8+ | 9 | Audio stream for voice assistant.|
+| ULTRASONIC10+ | 10 | Audio stream for ultrasonic. This is a system API.|
| ALL9+ | 100 | All public audio streams. This is a system API.|
## InterruptRequestResultType9+
@@ -457,7 +460,7 @@ Enumerates the audio sample formats.
| SAMPLE_FORMAT_S16LE | 1 | Signed 16-bit integer, little endian.|
| SAMPLE_FORMAT_S24LE | 2 | Signed 24-bit integer, little endian. Due to system restrictions, only some devices support this sampling format.|
| SAMPLE_FORMAT_S32LE | 3 | Signed 32-bit integer, little endian. Due to system restrictions, only some devices support this sampling format.|
-| SAMPLE_FORMAT_F32LE9+ | 4 | Signed 32-bit integer, little endian. Due to system restrictions, only some devices support this sampling format.|
+| SAMPLE_FORMAT_F32LE9+ | 4 | Signed 32-bit floating point number, little endian. Due to system restrictions, only some devices support this sampling format.|
## AudioErrors9+
@@ -529,9 +532,9 @@ Enumerates the audio content types.
| CONTENT_TYPE_SPEECH | 1 | Speech. |
| CONTENT_TYPE_MUSIC | 2 | Music. |
| CONTENT_TYPE_MOVIE | 3 | Movie. |
-| CONTENT_TYPE_SONIFICATION | 4 | Sonification content.|
+| CONTENT_TYPE_SONIFICATION | 4 | Notification tone. |
| CONTENT_TYPE_RINGTONE8+ | 5 | Ringtone. |
-
+| CONTENT_TYPE_ULTRASONIC10+| 9 | Ultrasonic. This is a system API.|
## StreamUsage
Enumerates the audio stream usage.
@@ -544,7 +547,10 @@ Enumerates the audio stream usage.
| STREAM_USAGE_MEDIA | 1 | Used for media. |
| STREAM_USAGE_VOICE_COMMUNICATION | 2 | Used for voice communication.|
| STREAM_USAGE_VOICE_ASSISTANT9+ | 3 | Used for voice assistant.|
+| STREAM_USAGE_ALARM10+ | 4 | Used for alarming. |
| STREAM_USAGE_NOTIFICATION_RINGTONE | 6 | Used for notification.|
+| STREAM_USAGE_ACCESSIBILITY10+ | 8 | Used for accessibility. |
+| STREAM_USAGE_SYSTEM10+ | 9 | System tone (such as screen lock or keypad tone). This is a system API.|
## InterruptRequestType9+
@@ -1757,7 +1763,7 @@ Sets a device to the active state. This API uses an asynchronous callback to ret
| Name | Type | Mandatory| Description |
| ---------- | ------------------------------------- | ---- | ------------------------ |
-| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | Yes | Audio device type. |
+| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | Yes | Active audio device type. |
| active | boolean | Yes | Active state to set. The value **true** means to set the device to the active state, and **false** means the opposite. |
| callback | AsyncCallback<void> | Yes | Callback used to return the result.|
@@ -1789,7 +1795,7 @@ Sets a device to the active state. This API uses a promise to return the result.
| Name | Type | Mandatory| Description |
| ---------- | ------------------------------------- | ---- | ------------------ |
-| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | Yes | Audio device type.|
+| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | Yes | Active audio device type. |
| active | boolean | Yes | Active state to set. The value **true** means to set the device to the active state, and **false** means the opposite. |
**Return value**
@@ -1823,7 +1829,7 @@ Checks whether a device is active. This API uses an asynchronous callback to ret
| Name | Type | Mandatory| Description |
| ---------- | ------------------------------------- | ---- | ------------------------ |
-| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | Yes | Audio device type. |
+| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | Yes | Active audio device type. |
| callback | AsyncCallback<boolean> | Yes | Callback used to return the active state of the device.|
**Example**
@@ -1854,7 +1860,7 @@ Checks whether a device is active. This API uses a promise to return the result.
| Name | Type | Mandatory| Description |
| ---------- | ------------------------------------- | ---- | ------------------ |
-| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | Yes | Audio device type.|
+| deviceType | [ActiveDeviceType](#activedevicetypedeprecated) | Yes | Active audio device type. |
**Return value**
@@ -4054,7 +4060,7 @@ Describes an audio device.
| ----------------------------- | ------------------------- | -------- | -------- | ------------------------------------------------------------ |
| deviceRole | [DeviceRole](#devicerole) | Yes | No | Device role. |
| deviceType | [DeviceType](#devicetype) | Yes | No | Device type. |
-| id9+ | number | Yes | No | Device ID. |
+| id9+ | number | Yes | No | Device ID, which is unique. |
| name9+ | string | Yes | No | Device name. |
| address9+ | string | Yes | No | Device address. |
| sampleRates9+ | Array<number> | Yes | No | Supported sampling rates. |
@@ -4577,16 +4583,27 @@ async function getCacheDir(){
path = await context.getCacheDir();
}
let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
-let ss = fileio.createStreamSync(filePath, 'r');
+let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
+let stat = await fs.stat(path);
let buf = new ArrayBuffer(bufferSize);
-ss.readSync(buf);
-audioRenderer.write(buf, (err, writtenbytes) => {
- if (writtenbytes < 0) {
- console.error('write failed.');
- } else {
- console.info(`Actual written bytes: ${writtenbytes}`);
- }
-});
+let len = stat.size % this.bufferSize == 0 ? Math.floor(stat.size / this.bufferSize) : Math.floor(stat.size / this.bufferSize + 1);
+for (let i = 0;i < len; i++) {
+ let options = {
+ offset: i * this.bufferSize,
+ length: this.bufferSize
+ }
+ let readsize = await fs.read(file.fd, buf, options)
+ let writeSize = await new Promise((resolve,reject)=>{
+ this.audioRenderer.write(buf,(err,writeSize)=>{
+ if(err){
+ reject(err)
+ }else{
+ resolve(writeSize)
+ }
+ })
+ })
+}
+
```
@@ -4621,18 +4638,22 @@ async function getCacheDir(){
path = await context.getCacheDir();
}
let filePath = path + '/StarWars10s-2C-48000-4SW.wav';
-let ss = fileio.createStreamSync(filePath, 'r');
+let file = fs.openSync(filePath, fs.OpenMode.READ_ONLY);
+let stat = await fs.stat(path);
let buf = new ArrayBuffer(bufferSize);
-ss.readSync(buf);
-audioRenderer.write(buf).then((writtenbytes) => {
- if (writtenbytes < 0) {
- console.error('write failed.');
- } else {
- console.info(`Actual written bytes: ${writtenbytes}`);
- }
-}).catch((err) => {
- console.error(`ERROR: ${err}`);
-});
+let len = stat.size % this.bufferSize == 0 ? Math.floor(stat.size / this.bufferSize) : Math.floor(stat.size / this.bufferSize + 1);
+for (let i = 0;i < len; i++) {
+ let options = {
+ offset: i * this.bufferSize,
+ length: this.bufferSize
+ }
+ let readsize = await fs.read(file.fd, buf, options)
+ try{
+ let writeSize = await this.audioRenderer.write(buf);
+ } catch(err) {
+ console.error(`audioRenderer.write err: ${err}`);
+ }
+}
```
diff --git a/en/application-dev/reference/apis/js-apis-bundleManager-packInfo.md b/en/application-dev/reference/apis/js-apis-bundleManager-BundlePackInfo.md
similarity index 95%
rename from en/application-dev/reference/apis/js-apis-bundleManager-packInfo.md
rename to en/application-dev/reference/apis/js-apis-bundleManager-BundlePackInfo.md
index a9e4c359659c55169acdbf0e3bc8f583b67febe9..e6fd8bd2c8cd018a0ed0fe0d5cfdb226f542b438 100644
--- a/en/application-dev/reference/apis/js-apis-bundleManager-packInfo.md
+++ b/en/application-dev/reference/apis/js-apis-bundleManager-BundlePackInfo.md
@@ -1,6 +1,6 @@
-# PackInfo
+# BundlePackInfo
-The **PackInfo** module provides information in the **pack.info** file. The information can be obtained using [freeInstall.getBundlePackInfo](js-apis-freeInstall.md).
+The **BundlePackInfo** module provides information in the **pack.info** file. The information can be obtained using [freeInstall.getBundlePackInfo](js-apis-freeInstall.md).
> **NOTE**
>
@@ -91,7 +91,7 @@ The **PackInfo** module provides information in the **pack.info** file. The info
| ------- | ------------------------------------------- | ---- | ---- | ------------------------------------------------------------ |
| name | string | Yes | No | Name of the ability. The name must be unique in the bundle. |
| label | string | Yes | No | Name of the ability displayed to users. The value is a resource index to names in multiple languages.|
-| visible | boolean | Yes | No | Whether the ability can be called by other bundles. The value **true** means that the ability can be called by other bundles, and **false** means the opposite.|
+| exported | boolean | Yes | No | Whether the ability can be called by other bundles. The value **true** means that the ability can be called by other bundles, and **false** means the opposite.|
| forms | Array\<[AbilityFormInfo](#abilityforminfo)> | Yes | No | Widget information. |
## ExtensionAbility
diff --git a/en/application-dev/reference/apis/js-apis-bundleManager-abilityInfo.md b/en/application-dev/reference/apis/js-apis-bundleManager-abilityInfo.md
index cacab28b20157441ee4f64bc69261c7f37f0809f..b15708816fdcaf8293209bcb008e2119979817f3 100644
--- a/en/application-dev/reference/apis/js-apis-bundleManager-abilityInfo.md
+++ b/en/application-dev/reference/apis/js-apis-bundleManager-abilityInfo.md
@@ -22,7 +22,7 @@ The **AbilityInfo** module defines the ability information. A system application
| icon | string | Yes | No | Index of the ability icon resource file. |
| iconId | number | Yes | No | ID of the ability icon. |
| process | string | Yes | No | Process in which the ability runs. If this parameter is not set, the bundle name is used.|
-| isVisible | boolean | Yes | No | Whether the ability can be called by other bundles. |
+| exported | boolean | Yes | No | Whether the ability can be called by other bundles. |
| type | [AbilityType](js-apis-bundleManager.md#abilitytype) | Yes | No | Ability type. This attribute can be used only in the FA model.|
| orientation | [DisplayOrientation](js-apis-bundleManager.md#displayorientation) | Yes | No | Ability display orientation. |
| launchType | [LaunchType](js-apis-bundleManager.md#launchtype) | Yes | No | Ability launch mode. |
diff --git a/en/application-dev/reference/apis/js-apis-bundleManager-applicationInfo.md b/en/application-dev/reference/apis/js-apis-bundleManager-applicationInfo.md
index 2537274b8d5bd50d6c47258be2770bd5d51a9733..8997e94099071ce9b4e806f06b008477352af187 100644
--- a/en/application-dev/reference/apis/js-apis-bundleManager-applicationInfo.md
+++ b/en/application-dev/reference/apis/js-apis-bundleManager-applicationInfo.md
@@ -9,16 +9,15 @@ The **ApplicationInfo** module defines the application information. A system app
## ApplicationInfo
**System capability**: SystemCapability.BundleManager.BundleFramework.Core
-
| Name | Type | Readable| Writable| Description |
| -------------------------- | ------------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ |
| name | string | Yes | No | Application name. |
-| description | string | Yes | No | Application description. |
+| description | string | Yes | No | Description of the application, for example, "description": $string: mainability_description". |
| descriptionId | number | Yes | No | ID of the application description. |
| enabled | boolean | Yes | No | Whether the application is enabled. The default value is **true**. |
-| label | string | Yes | No | Application label. |
+| label | string | Yes | No | Application name, for example, "label": "$string: mainability_description".|
| labelId | number | Yes | No | ID of the application label. |
-| icon | string | Yes | No | Application icon. |
+| icon | string | Yes | No | Application icon, for example, "icon": "$media:icon". |
| iconId | number | Yes | No | ID of the application icon. |
| process | string | Yes | No | Process in which the application runs. If this parameter is not set, the bundle name is used. |
| permissions | Array\ | Yes | No | Permissions required for accessing the application. The permissions can be obtained by passing in **GET_APPLICATION_INFO_WITH_PERMISSION** to the **appFlags** parameter of [bundleManager.getApplicationInfo](js-apis-bundleManager.md#bundlemanagergetapplicationinfo).|
@@ -27,9 +26,9 @@ The **ApplicationInfo** module defines the application information. A system app
| removable | boolean | Yes | No | Whether the application is removable. |
| accessTokenId | number | Yes | No | Access token ID of the application. |
| uid | number | Yes | No | UID of the application. |
-| iconResource | [Resource](js-apis-resource-manager.md#resource9) | Yes| No| Icon resource of the application. |
-| labelResource | [Resource](js-apis-resource-manager.md#resource9) | Yes| No| Label resource of the application. |
-| descriptionResource | [Resource](js-apis-resource-manager.md#resource9) | Yes| No| Description resource of the application. |
+| iconResource | [Resource](js-apis-resource-manager.md#resource9) | Yes| No| Resource information of the application icon. The resource information obtained contains the bundle name, module name, and ID of the resource. You can call **getMediaContent** in [@ohos.resourceManager.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.resourceManager.d.ts) to obtain the resource details. |
+| labelResource | [Resource](js-apis-resource-manager.md#resource9) | Yes| No| Resource information of the application label. The resource information obtained contains the bundle name, module name, and ID of the resource. You can call **getMediaContent** in [@ohos.resourceManager.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.resourceManager.d.ts) to obtain the resource details. |
+| descriptionResource | [Resource](js-apis-resource-manager.md#resource9) | Yes| No| Resource information of the application description. The resource information obtained contains the bundle name, module name, and ID of the resource. You can call **getMediaContent** in [@ohos.resourceManager.d.ts](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.resourceManager.d.ts) to obtain the resource details.|
| appDistributionType | string | Yes | No | Distribution type of the application signing certificate. The options are **app_gallery**, **enterprise**, **os_integration**, and **crowdtesting**. |
| appProvisionType | string | Yes | No | Type of the application signing certificate file. The options are **debug** and **release**. |
| systemApp | boolean | Yes | No | Whether the application is a system application. |
diff --git a/en/application-dev/reference/apis/js-apis-convertxml.md b/en/application-dev/reference/apis/js-apis-convertxml.md
index 70d35b6cb168e6f10b847a42bdefa8fd53eb3d40..4c66c928fb7ee6c5482d39db7b39acaa6793691e 100644
--- a/en/application-dev/reference/apis/js-apis-convertxml.md
+++ b/en/application-dev/reference/apis/js-apis-convertxml.md
@@ -47,21 +47,27 @@ For details about the error codes, see [Utils Error Codes](../errorcodes/errorco
**Example**
```js
-let xml =
- '' +
- '' +
- ' Happy' +
- ' Work' +
- ' Play' +
- '';
-let conv = new convertxml.ConvertXML()
-let options = {trim : false, declarationKey:"_declaration",
- instructionKey : "_instruction", attributesKey : "_attributes",
- textKey : "_text", cdataKey:"_cdata", doctypeKey : "_doctype",
- commentKey : "_comment", parentKey : "_parent", typeKey : "_type",
- nameKey : "_name", elementsKey : "_elements"}
-let result = JSON.stringify(conv.convertToJSObject(xml, options));
-console.log(result);
+try {
+ let xml =
+ '' +
+ '' +
+ ' Happy' +
+ ' Work' +
+ ' Play' +
+ '';
+ let conv = new convertxml.ConvertXML()
+ let options = {
+ trim: false, declarationKey: "_declaration",
+ instructionKey: "_instruction", attributesKey: "_attributes",
+ textKey: "_text", cdataKey: "_cdata", doctypeKey: "_doctype",
+ commentKey: "_comment", parentKey: "_parent", typeKey: "_type",
+ nameKey: "_name", elementsKey: "_elements"
+ }
+ let result = JSON.stringify(conv.convertToJSObject(xml, options));
+ console.log(result);
+} catch (e) {
+ console.log(e.toString());
+}
// Output (non-compact)
// {"_declaration":{"_attributes":{"version":"1.0","encoding":"utf-8"}},"_elements":[{"_type":"element","_name":"note","_attributes":{"importance":"high","logged":"true"},"_elements":[{"_type":"element","_name":"title","_elements":[{"_type":"text","_text":"Happy"}]},{"_type":"element","_name":"todo","_elements":[{"_type":"text","_text":"Work"}]},{"_type":"element","_name":"todo","_elements":[{"_type":"text","_text":"Play"}]}]}]}
```
diff --git a/en/application-dev/reference/apis/js-apis-data-distributedobject.md b/en/application-dev/reference/apis/js-apis-data-distributedobject.md
index d3285fa80427790ba723737e20bc5559f0cc85ab..5c27d183e38680ec392471f55e374a5127714e82 100644
--- a/en/application-dev/reference/apis/js-apis-data-distributedobject.md
+++ b/en/application-dev/reference/apis/js-apis-data-distributedobject.md
@@ -15,7 +15,7 @@ import distributedObject from '@ohos.data.distributedDataObject';
## distributedObject.create9+
-create(context: Context, source: object): DistributedObjectV9
+create(context: Context, source: object): DataObject
Creates a distributed data object.
@@ -25,14 +25,14 @@ Creates a distributed data object.
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
-| context | Context | Yes| Application context. For details about the application context of the FA model, see [Context](js-apis-inner-app-context.md). For details about the application context of the stage model, see [Context](js-apis-ability-context.md).|
+| context | Context | Yes| Application context. For details about the application context of the FA model, see [Context](js-apis-inner-app-context.md). For details about the application context of the stage model, see [Context](js-apis-inner-application-uiAbilityContext.md).|
| source | object | Yes| Attributes of the distributed data object.|
**Return value**
| Type| Description|
| -------- | -------- |
-| [DistributedObjectV9](#distributedobjectv9) | Distributed data object created.|
+| [DataObject](#dataobject) | Distributed data object created.|
**Example**
@@ -55,15 +55,14 @@ Stage model:
import distributedObject from '@ohos.data.distributedDataObject';
import UIAbility from '@ohos.app.ability.UIAbility';
-// Obtain the context.
-let context;
+let g_object = null;
+
class EntryAbility extends UIAbility {
onWindowStageCreate(windowStage){
- context = this.context
+ // Create a distributed data object, which has attributes of the string, number, boolean, and object types.
+ g_object = distributedObject.create(this.context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
}
}
-// Create a distributed data object, which contains attributes of the string, number, boolean, and object types.
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
```
## distributedObject.genSessionId
@@ -109,9 +108,9 @@ Called when the **revokeSave()** API is successfully called.
| -------- | -------- | -------- | -------- |
| sessionId | string | Yes| Unique ID for multi-device collaboration.|
-## DistributedObjectV9
+## DataObject
-Provides APIs for managing a distributed data object.
+Provides APIs for managing a distributed data object. Before using any API of this class, use [create()](#distributedobjectcreate9) to create a **DataObject** object.
### setSessionId9+
@@ -132,7 +131,7 @@ Sets a session ID for synchronization. Automatic synchronization is performed fo
**Error codes**
- For details about the error codes, see [Distributed Data Object Error Codes] (../errorcodes/errorcode-distributed-dataObject.md).
+For details about the error codes, see [Distributed Data Object Error Codes](../errorcodes/errorcode-distributed-dataObject.md).
| ID| Error Message|
| -------- | -------- |
@@ -140,36 +139,10 @@ Sets a session ID for synchronization. Automatic synchronization is performed fo
**Example**
-FA model:
-
```js
-import distributedObject from '@ohos.data.distributedDataObject';
-import featureAbility from '@ohos.ability.featureAbility';
-// Obtain the context.
-let context = featureAbility.getContext();
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
-// Add g_object to the distributed network.
-g_object.setSessionId(distributedObject.genSessionId(), ()=>{
- console.log("join session");
-});
-```
-Stage model:
-
-```ts
-import distributedObject from '@ohos.data.distributedDataObject';
-import UIAbility from '@ohos.app.ability.UIAbility';
-
-// Obtain the context.
-let context;
-class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage){
- context = this.context
- }
-}
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
// Add g_object to the distributed network.
g_object.setSessionId(distributedObject.genSessionId(), ()=>{
- console.log("join session");
+ console.info("join session");
});
```
@@ -191,7 +164,7 @@ Exits all joined sessions.
**Error codes**
- For details about the error codes, see [Distributed Data Object Error Codes] (../errorcodes/errorcode-distributed-dataObject.md).
+ For details about the error codes, see [Distributed Data Object Error Codes](../errorcodes/errorcode-distributed-dataObject.md).
| ID| Error Message|
| -------- | -------- |
@@ -199,44 +172,14 @@ Exits all joined sessions.
**Example**
-FA model:
-
```js
-import distributedObject from '@ohos.data.distributedDataObject';
-import featureAbility from '@ohos.ability.featureAbility';
-// Obtain the context.
-let context = featureAbility.getContext();
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
// Add g_object to the distributed network.
g_object.setSessionId(distributedObject.genSessionId(), ()=>{
- console.log("join session");
+ console.info("join session");
});
// Exit the distributed network.
g_object.setSessionId(() => {
- console.log("leave all lession.");
-});
-```
-Stage model:
-
-```ts
-import distributedObject from '@ohos.data.distributedDataObject';
-import UIAbility from '@ohos.app.ability.UIAbility';
-
-// Obtain the context.
-let context;
-class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage){
- context = this.context
- }
-}
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
-// Add g_object to the distributed network.
-g_object.setSessionId(distributedObject.genSessionId(), ()=>{
- console.log("join session");
-});
-// Exit the distributed network.
-g_object.setSessionId(() => {
- console.log("leave all lession.");
+ console.info("leave all lession.");
});
```
@@ -264,7 +207,7 @@ Sets a session ID for synchronization. Automatic synchronization is performed fo
**Error codes**
- For details about the error codes, see [Distributed Data Object Error Codes] (../errorcodes/errorcode-distributed-dataObject.md).
+ For details about the error codes, see [Distributed Data Object Error Codes](../errorcodes/errorcode-distributed-dataObject.md).
| ID| Error Message|
| -------- | -------- |
@@ -272,41 +215,7 @@ Sets a session ID for synchronization. Automatic synchronization is performed fo
**Example**
-FA model:
-
```js
-import distributedObject from '@ohos.data.distributedDataObject';
-import featureAbility from '@ohos.ability.featureAbility';
-// Obtain the context.
-let context = featureAbility.getContext();
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
-// Add g_object to the distributed network.
-g_object.setSessionId(distributedObject.genSessionId()).then (()=>{
- console.log("join session.");
- }).catch((error)=>{
- console.info("error:" + error.code + error.message);
-});
-// Exit the distributed network.
-g_object.setSessionId().then (()=>{
- console.log("leave all lession.");
- }).catch((error)=>{
- console.info("error:" + error.code + error.message);
-});
-```
-Stage model:
-
-```ts
-import distributedObject from '@ohos.data.distributedDataObject';
-import UIAbility from '@ohos.app.ability.UIAbility';
-
-// Obtain the context.
-let context;
-class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage){
- context = this.context
- }
-}
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
// Add g_object to the distributed network.
g_object.setSessionId(distributedObject.genSessionId()).then (()=>{
console.info("join session.");
@@ -315,7 +224,7 @@ g_object.setSessionId(distributedObject.genSessionId()).then (()=>{
});
// Exit the distributed network.
g_object.setSessionId().then (()=>{
- console.log("leave all lession.");
+ console.info("leave all lession.");
}).catch((error)=>{
console.info("error:" + error.code + error.message);
});
@@ -338,39 +247,7 @@ Subscribes to data changes of this distributed data object.
**Example**
-FA model:
-
```js
-import distributedObject from '@ohos.data.distributedDataObject';
-import featureAbility from '@ohos.ability.featureAbility';
-// Obtain the context.
-let context = featureAbility.getContext();
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
-globalThis.changeCallback = (sessionId, changeData) => {
- console.info("change" + sessionId);
- if (changeData != null && changeData != undefined) {
- changeData.forEach(element => {
- console.info("changed !" + element + " " + g_object[element]);
- });
- }
-}
-g_object.on("change", globalThis.changeCallback);
-```
-
-Stage model:
-
-```ts
-import distributedObject from '@ohos.data.distributedDataObject';
-import UIAbility from '@ohos.app.ability.UIAbility';
-
-// Obtain the context.
-let context;
-class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage){
- context = this.context
- }
-}
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
globalThis.changeCallback = (sessionId, changeData) => {
console.info("change" + sessionId);
if (changeData != null && changeData != undefined) {
@@ -394,40 +271,13 @@ Unsubscribes from the data changes of this distributed data object.
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
-| type | string | Yes| Event type to unsubscribe from. The value is **change**, which indicates data changes. |
+| type | string | Yes| Event type to unsubscribe from. The value is **change**, which indicates data changes.|
| callback | Callback<{ sessionId: string, fields: Array<string> }> | No| Callback for data changes. If this parameter is not specified, all data change callbacks of this distributed data object will be unregistered. **sessionId** indicates the session ID of the distributed data object. **fields** indicates the changed attributes of the distributed data object.|
**Example**
-FA model:
-
```js
-import distributedObject from '@ohos.data.distributedDataObject';
-import featureAbility from '@ohos.ability.featureAbility';
-// Obtain the context.
-let context = featureAbility.getContext();
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
-// Unregister the specified data change callback.
-g_object.off("change", globalThis.changeCallback);
-// Unregister all data change callbacks.
-g_object.off("change");
-```
-
-Stage model:
-
-```ts
-import distributedObject from '@ohos.data.distributedDataObject';
-import UIAbility from '@ohos.app.ability.UIAbility';
-
-// Obtain the context.
-let context;
-class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage){
- context = this.context
- }
-}
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
// Unregister the specified data change callback.
g_object.off("change", globalThis.changeCallback);
// Unregister all data change callbacks.
@@ -451,37 +301,10 @@ Subscribes to statue changes of this distributed data object.
**Example**
-FA model:
-
```js
-import distributedObject from '@ohos.data.distributedDataObject';
-import featureAbility from '@ohos.ability.featureAbility';
-// Obtain the context.
-let context = featureAbility.getContext();
-globalThis.statusCallback = (sessionId, networkId, status) => {
- globalThis.response += "status changed " + sessionId + " " + status + " " + networkId;
-}
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
-g_object.on("status", globalThis.statusCallback);
-```
-
-Stage model:
-
-```ts
-import distributedObject from '@ohos.data.distributedDataObject';
-import UIAbility from '@ohos.app.ability.UIAbility';
-
-// Obtain the context.
-let context;
-class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage){
- context = this.context
- }
-}
globalThis.statusCallback = (sessionId, networkId, status) => {
globalThis.response += "status changed " + sessionId + " " + status + " " + networkId;
}
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
g_object.on("status", globalThis.statusCallback);
```
@@ -503,37 +326,7 @@ Unsubscribes from the status change of this distributed data object.
**Example**
-FA model:
-
```js
-import distributedObject from '@ohos.data.distributedDataObject';
-import featureAbility from '@ohos.ability.featureAbility';
-// Obtain the context.
-let context = featureAbility.getContext();
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
-globalThis.statusCallback = (sessionId, networkId, status) => {
- globalThis.response += "status changed " + sessionId + " " + status + " " + networkId;
-}
-// Unregister the specified status change callback.
-g_object.off("status",globalThis.statusCallback);
-// Unregister all status change callbacks.
-g_object.off("status");
-```
-
-Stage model:
-
-```ts
-import distributedObject from '@ohos.data.distributedDataObject';
-import UIAbility from '@ohos.app.ability.UIAbility';
-
-// Obtain the context.
-let context;
-class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage){
- context = this.context
- }
-}
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false, parent:{mother:"jack mom",father:"jack Dad"}});
globalThis.statusCallback = (sessionId, networkId, status) => {
globalThis.response += "status changed " + sessionId + " " + status + " " + networkId;
}
@@ -568,38 +361,10 @@ The saved data will be released in the following cases:
**Example**
-FA model:
```ts
-import distributedObject from '@ohos.data.distributedDataObject';
-import featureAbility from '@ohos.ability.featureAbility';
-// Obtain the context.
-let context = featureAbility.getContext();
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false});
g_object.setSessionId("123456");
g_object.save("local", (result) => {
- console.log("save callback");
- console.info("save sessionId: " + result.sessionId);
- console.info("save version: " + result.version);
- console.info("save deviceId: " + result.deviceId);
-});
-```
-
-Stage model:
-```ts
-import distributedObject from '@ohos.data.distributedDataObject';
-import UIAbility from '@ohos.app.ability.UIAbility';
-
-// Obtain the context.
-let context;
-class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage){
- context = this.context
- }
-}
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false});
-g_object.setSessionId("123456");
-g_object.save("local", (result) => {
- console.log("save callback");
+ console.info("save callback");
console.info("save sessionId: " + result.sessionId);
console.info("save version: " + result.version);
console.info("save deviceId: " + result.deviceId);
@@ -637,37 +402,9 @@ The saved data will be released in the following cases:
**Example**
```js
-import distributedObject from '@ohos.data.distributedDataObject';
-import featureAbility from '@ohos.ability.featureAbility';
-// Obtain the context.
-let context = featureAbility.getContext();
-let g_object = distributedObject.create(context,{name:"Amy", age:18, isVis:false});
g_object.setSessionId("123456");
g_object.save("local").then((result) => {
- console.log("save callback");
- console.info("save sessionId " + result.sessionId);
- console.info("save version " + result.version);
- console.info("save deviceId " + result.deviceId);
-}, () => {
- console.error("save failed");
-});
-```
-
-```js
-import distributedObject from '@ohos.data.distributedDataObject';
-import UIAbility from '@ohos.app.ability.UIAbility';
-
-// Obtain the context.
-let context;
-class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage){
- context = this.context
- }
-}
-let g_object = distributedObject.create(context,{name:"Amy", age:18, isVis:false});
-g_object.setSessionId("123456");
-g_object.save("local").then((result) => {
- console.log("save callback");
+ console.info("save callback");
console.info("save sessionId " + result.sessionId);
console.info("save version " + result.version);
console.info("save deviceId " + result.deviceId);
@@ -680,7 +417,7 @@ g_object.save("local").then((result) => {
revokeSave(callback: AsyncCallback<RevokeSaveSuccessResponse>): void
-Revokes the saving operation of a distributed data object. This API uses an asynchronous callback to return the result.
+Revokes the saving operation of this distributed data object. This API uses an asynchronous callback to return the result.
If the object is saved on the local device, the data saved on all trusted devices will be deleted.
If the object is stored on another device, the data on the local device will be deleted.
@@ -695,55 +432,19 @@ If the object is stored on another device, the data on the local device will be
**Example**
-FA model:
-
```js
-import distributedObject from '@ohos.data.distributedDataObject';
-import featureAbility from '@ohos.ability.featureAbility';
-// Obtain the context.
-let context = featureAbility.getContext();
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false});
g_object.setSessionId("123456");
// Save data for persistence.
g_object.save("local", (result) => {
- console.log("save callback");
- console.info("save sessionId " + result.sessionId);
- console.info("save version " + result.version);
- console.info("save deviceId " + result.deviceId);
-});
-// Delete the persistence data.
-g_object.revokeSave((result) => {
- console.log("revokeSave callback");
- console.log("revokeSave sessionId " + result.sessionId);
-});
-```
-
-Stage model:
-
-```ts
-import distributedObject from '@ohos.data.distributedDataObject';
-import UIAbility from '@ohos.app.ability.UIAbility';
-
-// Obtain the context.
-let context;
-class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage) {
- context = this.context
- }
-}
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false});
-g_object.setSessionId("123456");
-// Save data for persistence.
-g_object.save("local", (result) => {
- console.log("save callback");
+ console.info("save callback");
console.info("save sessionId " + result.sessionId);
console.info("save version " + result.version);
console.info("save deviceId " + result.deviceId);
});
// Delete the persistence data.
g_object.revokeSave((result) => {
- console.log("revokeSave callback");
- console.log("revokeSave sessionId " + result.sessionId);
+ console.info("revokeSave callback");
+ console.info("revokeSave sessionId " + result.sessionId);
});
```
@@ -751,7 +452,7 @@ g_object.revokeSave((result) => {
revokeSave(): Promise<RevokeSaveSuccessResponse>
-Revokes the saving operation of a distributed data object. This API uses a promise to return the result.
+Revokes the saving operation of this distributed data object. This API uses a promise to return the result.
If the object is saved on the local device, the data saved on all trusted devices will be deleted.
If the object is stored on another device, the data on the local device will be deleted.
@@ -766,18 +467,11 @@ If the object is stored on another device, the data on the local device will be
**Example**
-FA model:
-
```ts
-import distributedObject from '@ohos.data.distributedDataObject';
-import featureAbility from '@ohos.ability.featureAbility';
-// Obtain the context.
-let context = featureAbility.getContext();
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false});
g_object.setSessionId("123456");
// Save data for persistence.
g_object.save("local").then((result) => {
- console.log("save callback");
+ console.info("save callback");
console.info("save sessionId " + result.sessionId);
console.info("save version " + result.version);
console.info("save deviceId " + result.deviceId);
@@ -786,41 +480,8 @@ g_object.save("local").then((result) => {
});
// Delete the persistence data.
g_object.revokeSave().then((result) => {
- console.log("revokeSave callback");
- console.log("sessionId" + result.sessionId);
-}, () => {
- console.error("revokeSave failed");
-});
-```
-
-Stage model:
-
-```ts
-import distributedObject from '@ohos.data.distributedDataObject';
-import UIAbility from '@ohos.app.ability.UIAbility';
-
-// Obtain the context.
-let context;
-class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage) {
- context = this.context
- }
-}
-let g_object = distributedObject.create(context, {name:"Amy", age:18, isVis:false});
-g_object.setSessionId("123456");
-g_object.save("local").then((result) => {
- console.log("save callback");
- console.info("save sessionId " + result.sessionId);
- console.info("save version " + result.version);
- console.info("save deviceId " + result.deviceId);
-}, () => {
- console.error("save failed");
-});
-
-// Delete the persistence data.
-g_object.revokeSave().then((result) => {
- console.log("revokeSave callback");
- console.log("sessionId" + result.sessionId);
+ console.info("revokeSave callback");
+ console.info("sessionId" + result.sessionId);
}, () => {
console.error("revokeSave failed");
});
@@ -861,7 +522,7 @@ let g_object = distributedObject.createDistributedObject({name:"Amy", age:18, is
## DistributedObject(deprecated)
-Provides APIs for managing a distributed data object.
+Provides APIs for managing a distributed data object. Before using any API of this class, use [createDistributedObject()](#distributedobjectcreatedistributedobjectdeprecated) to create a **DistributedObject** object.
### setSessionId(deprecated)
@@ -1004,7 +665,7 @@ Unsubscribes from the status change of this distributed data object.
> **NOTE**
>
-> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [off('status')](#offstatus9) instead.
+> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [off('status')](#offstatus9).
**System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject
diff --git a/en/application-dev/reference/apis/js-apis-data-preferences.md b/en/application-dev/reference/apis/js-apis-data-preferences.md
index b279dfcd4e2938efb33a33a70a35228a9de89b4d..b14256c20d12c8fedd2bb6d8f0b7f38091bbc8d5 100644
--- a/en/application-dev/reference/apis/js-apis-data-preferences.md
+++ b/en/application-dev/reference/apis/js-apis-data-preferences.md
@@ -22,8 +22,8 @@ import data_preferences from '@ohos.data.preferences';
| Name | Type| Readable| Writable| Description |
| ---------------- | -------- | ---- | ---- | --------------------------------------- |
-| MAX_KEY_LENGTH | number | Yes | No | Maximum length of a key. The key must be less than 80 bytes. |
-| MAX_VALUE_LENGTH | number | Yes | No | Maximum length of a value. The value must be less than 8192 bytes.|
+| MAX_KEY_LENGTH | number | Yes | No | Maximum length of a key. The maximum key length is 80 bytes. |
+| MAX_VALUE_LENGTH | number | Yes | No | Maximum length of a value. The maximum value length is 8192 bytes.|
## data_preferences.getPreferences
@@ -38,7 +38,7 @@ Obtains a **Preferences** instance. This API uses an asynchronous callback to re
| Name | Type | Mandatory| Description |
| -------- | ------------------------------------------------ | ---- | ------------------------------------------------------------ |
-| context | Context | Yes | Application context. For details about the application context of the FA model, see [Context](js-apis-inner-app-context.md). For details about the application context of the stage model, see [Context](js-apis-ability-context.md). |
+| context | Context | Yes | Application context. For details about the application context of the FA model, see [Context](js-apis-inner-app-context.md). For details about the application context of the stage model, see [Context](js-apis-inner-application-uiAbilityContext.md). |
| name | string | Yes | Name of the **Preferences** instance.|
| callback | AsyncCallback<[Preferences](#preferences)> | Yes | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **object** is the **Preferences** instance obtained. Otherwise, **err** is an error code.|
@@ -55,42 +55,40 @@ let preferences = null;
try {
data_preferences.getPreferences(context, 'mystore', function (err, val) {
if (err) {
- console.info("Failed to get the preferences. code =" + err.code + ", message =" + err.message);
+ console.info("Failed to obtain the preferences. code =" + err.code + ", message =" + err.message);
return;
}
- console.info("Got the preferences successfully.");
+ preferences = val;
+ console.info("Obtained the preferences successfully.");
})
} catch (err) {
- console.info("Failed to get the preferences. code =" + err.code + ", message =" + err.message);
+ console.info("Failed to obtain the preferences. code =" + err.code + ", message =" + err.message);
}
```
Stage model:
```ts
-// Obtain the context.
import UIAbility from '@ohos.app.ability.UIAbility';
-let context = null;
+let preferences = null;
class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage){
- context = this.context;
+ onWindowStageCreate(windowStage) {
+ try {
+ data_preferences.getPreferences(this.context, 'mystore', function (err, val) {
+ if (err) {
+ console.info("Failed to obtain the preferences. code =" + err.code + ", message =" + err.message);
+ return;
+ }
+ preferences = val;
+ console.info("Obtained the preferences successfully.");
+ })
+ } catch (err) {
+ console.info("Failed to obtain the preferences. code =" + err.code + ", message =" + err.message);
+ }
}
}
-
-let preferences = null;
-try {
- data_preferences.getPreferences(context, 'mystore', function (err, val) {
- if (err) {
- console.info("Failed to get the preferences. code =" + err.code + ", message =" + err.message);
- return;
- }
- console.info("Got the preferences successfully.");
- })
-} catch (err) {
- console.info("Failed to get the preferences. code =" + err.code + ", message =" + err.message);
-}
```
## data_preferences.getPreferences
@@ -105,7 +103,7 @@ Obtains a **Preferences** instance. This API uses a promise to return the result
| Name | Type | Mandatory| Description |
| ------- | ------------------------------------- | ---- | ----------------------- |
-| context | Context | Yes | Application context. For details about the application context of the FA model, see [Context](js-apis-inner-app-context.md). For details about the application context of the stage model, see [Context](js-apis-ability-context.md). |
+| context | Context | Yes | Application context. For details about the application context of the FA model, see [Context](js-apis-inner-app-context.md). For details about the application context of the stage model, see [Context](js-apis-inner-application-uiAbilityContext.md). |
| name | string | Yes | Name of the **Preferences** instance.|
**Return value**
@@ -128,41 +126,37 @@ try {
let promise = data_preferences.getPreferences(context, 'mystore');
promise.then((object) => {
preferences = object;
- console.info("Got the preferences successfully.");
+ console.info("Obtained the preferences successfully.");
}).catch((err) => {
- console.log("Failed to get the preferences. code =" + err.code + ", message =" + err.message);
+ console.info("Failed to obtain the preferences. code =" + err.code + ", message =" + err.message);
})
} catch(err) {
- console.log("Failed to get the preferences. code =" + err.code + ", message =" + err.message);
+ console.info("Failed to obtain the preferences. code =" + err.code + ", message =" + err.message);
}
```
Stage model:
```ts
-// Obtain the context.
import UIAbility from '@ohos.app.ability.UIAbility';
-let context = null;
+let preferences = null;
class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage){
- context = this.context;
+ onWindowStageCreate(windowStage) {
+ try {
+ let promise = data_preferences.getPreferences(this.context, 'mystore');
+ promise.then((object) => {
+ preferences = object;
+ console.info("Obtained the preferences successfully.");
+ }).catch((err) => {
+ console.info("Failed to obtain the preferences. code =" + err.code + ", message =" + err.message);
+ })
+ } catch(err) {
+ console.info("Failed to obtain the preferences. code =" + err.code + ", message =" + err.message);
+ }
}
}
-
-let preferences = null;
-try {
- let promise = data_preferences.getPreferences(context, 'mystore');
- promise.then((object) => {
- preferences = object;
- console.info("Got the preferences successfully.");
- }).catch((err) => {
- console.log("Failed to get the preferences. code =" + err.code + ", message =" + err.message);
- })
-} catch(err) {
- console.log("Failed to get the preferences. code =" + err.code + ", message =" + err.message);
-}
```
## data_preferences.deletePreferences
@@ -181,7 +175,7 @@ The deleted **Preferences** instance cannot be used for data operations. Otherwi
| Name | Type | Mandatory| Description |
| -------- | ------------------------------------- | ---- | ---------------------------------------------------- |
-| context | Context | Yes | Application context. For details about the application context of the FA model, see [Context](js-apis-inner-app-context.md). For details about the application context of the stage model, see [Context](js-apis-ability-context.md). |
+| context | Context | Yes | Application context. For details about the application context of the FA model, see [Context](js-apis-inner-app-context.md). For details about the application context of the stage model, see [Context](js-apis-inner-application-uiAbilityContext.md). |
| name | string | Yes | Name of the **Preferences** instance to delete. |
| callback | AsyncCallback<void> | Yes | Callback invoked to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error code.|
@@ -218,27 +212,22 @@ try {
Stage model:
```ts
-// Obtain the context.
import UIAbility from '@ohos.app.ability.UIAbility';
-let context = null;
-
class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage){
- context = this.context;
- }
-}
-
-try {
- data_preferences.deletePreferences(context, 'mystore', function (err, val) {
- if (err) {
+ onWindowStageCreate(windowStage) {
+ try {
+ data_preferences.deletePreferences(this.context, 'mystore', function (err, val) {
+ if (err) {
+ console.info("Failed to delete the preferences. code =" + err.code + ", message =" + err.message);
+ return;
+ }
+ console.info("Deleted the preferences successfully." );
+ })
+ } catch (err) {
console.info("Failed to delete the preferences. code =" + err.code + ", message =" + err.message);
- return;
}
- console.info("Deleted the preferences successfully." );
- })
-} catch (err) {
- console.info("Failed to delete the preferences. code =" + err.code + ", message =" + err.message);
+ }
}
```
@@ -258,7 +247,7 @@ The deleted **Preferences** instance cannot be used for data operations. Otherwi
| Name | Type | Mandatory| Description |
| ------- | ------------------------------------- | ---- | ----------------------- |
-| context | Context | Yes | Application context. For details about the application context of the FA model, see [Context](js-apis-inner-app-context.md). For details about the application context of the stage model, see [Context](js-apis-ability-context.md). |
+| context | Context | Yes | Application context. For details about the application context of the FA model, see [Context](js-apis-inner-app-context.md). For details about the application context of the stage model, see [Context](js-apis-inner-application-uiAbilityContext.md). |
| name | string | Yes | Name of the **Preferences** instance to delete.|
**Return value**
@@ -299,27 +288,22 @@ try {
Stage model:
```ts
-// Obtain the context.
import UIAbility from '@ohos.app.ability.UIAbility';
-let context = null;
-
class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage){
- context = this.context;
+ onWindowStageCreate(windowStage) {
+ try{
+ let promise = data_preferences.deletePreferences(this.context, 'mystore');
+ promise.then(() => {
+ console.info("Deleted the preferences successfully.");
+ }).catch((err) => {
+ console.info("Failed to delete the preferences. code =" + err.code + ", message =" + err.message);
+ })
+ } catch(err) {
+ console.info("Failed to delete the preferences. code =" + err.code + ", message =" + err.message);
+ }
}
}
-
-try{
- let promise = data_preferences.deletePreferences(context, 'mystore');
- promise.then(() => {
- console.info("Deleted the preferences successfully.");
- }).catch((err) => {
- console.info("Failed to delete the preferences. code =" + err.code + ", message =" + err.message);
- })
-} catch(err) {
- console.info("Failed to delete the preferences. code =" + err.code + ", message =" + err.message);
-}
```
## data_preferences.removePreferencesFromCache
@@ -336,7 +320,7 @@ The removed **Preferences** instance cannot be used for data operations. Otherwi
| Name | Type | Mandatory| Description |
| -------- | ------------------------------------- | ---- | ---------------------------------------------------- |
-| context | Context | Yes | Application context. For details about the application context of the FA model, see [Context](js-apis-inner-app-context.md). For details about the application context of the stage model, see [Context](js-apis-ability-context.md). |
+| context | Context | Yes | Application context. For details about the application context of the FA model, see [Context](js-apis-inner-app-context.md). For details about the application context of the stage model, see [Context](js-apis-inner-application-uiAbilityContext.md). |
| name | string | Yes | Name of the **Preferences** instance to remove. |
| callback | AsyncCallback<void> | Yes | Callback invoked to return the result. If the operation is successful, **err** is **undefined**. Otherwise, **err** is an error code.|
@@ -365,27 +349,22 @@ try {
Stage model:
```ts
-// Obtain the context.
import UIAbility from '@ohos.app.ability.UIAbility';
-let context = null;
-
class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage){
- context = this.context;
- }
-}
-
-try {
- data_preferences.removePreferencesFromCache(context, 'mystore', function (err, val) {
- if (err) {
+ onWindowStageCreate(windowStage) {
+ try {
+ data_preferences.removePreferencesFromCache(this.context, 'mystore', function (err, val) {
+ if (err) {
+ console.info("Failed to remove the preferences. code =" + err.code + ", message =" + err.message);
+ return;
+ }
+ console.info("Removed the preferences successfully.");
+ })
+ } catch (err) {
console.info("Failed to remove the preferences. code =" + err.code + ", message =" + err.message);
- return;
}
- console.info("Removed the preferences successfully.");
- })
-} catch (err) {
- console.info("Failed to remove the preferences. code =" + err.code + ", message =" + err.message);
+ }
}
```
@@ -404,7 +383,7 @@ The removed **Preferences** instance cannot be used for data operations. Otherwi
| Name | Type | Mandatory| Description |
| ------- | ------------------------------------- | ---- | ----------------------- |
-| context | Context | Yes | Application context. For details about the application context of the FA model, see [Context](js-apis-inner-app-context.md). For details about the application context of the stage model, see [Context](js-apis-ability-context.md). |
+| context | Context | Yes | Application context. For details about the application context of the FA model, see [Context](js-apis-inner-app-context.md). For details about the application context of the stage model, see [Context](js-apis-inner-application-uiAbilityContext.md). |
| name | string | Yes | Name of the **Preferences** instance to remove.|
**Return value**
@@ -437,25 +416,22 @@ try {
Stage model:
```ts
-// Obtain the context.
import UIAbility from '@ohos.app.ability.UIAbility';
-let context = null;
+
class EntryAbility extends UIAbility {
- onWindowStageCreate(windowStage){
- context = this.context;
+ onWindowStageCreate(windowStage) {
+ try {
+ let promise = data_preferences.removePreferencesFromCache(this.context, 'mystore');
+ promise.then(() => {
+ console.info("Removed the preferences successfully.");
+ }).catch((err) => {
+ console.info("Failed to remove the preferences. code =" + err.code + ", message =" + err.message);
+ })
+ } catch(err) {
+ console.info("Failed to remove the preferences. code =" + err.code + ", message =" + err.message);
+ }
}
}
-
-try {
- let promise = data_preferences.removePreferencesFromCache(context, 'mystore');
- promise.then(() => {
- console.info("Removed the preferences successfully.");
- }).catch((err) => {
- console.info("Failed to remove the preferences. code =" + err.code + ", message =" + err.message);
- })
-} catch(err) {
- console.info("Failed to remove the preferences. code =" + err.code + ", message =" + err.message);
-}
```
## Preferences
@@ -469,7 +445,7 @@ Before calling any method of **Preferences**, you must obtain a **Preferences**
get(key: string, defValue: ValueType, callback: AsyncCallback<ValueType>): void
-Obtains the value of a key. This API uses an asynchronous callback to return the result. If the value is **null** or is not the type of the default value, the default value is returned.
+Obtains the value of a key. This API uses an asynchronous callback to return the result. If the value is **null** or is not of the default value type, **defValue** is returned.
**System capability**: SystemCapability.DistributedDataManager.Preferences.Core
@@ -487,13 +463,13 @@ Obtains the value of a key. This API uses an asynchronous callback to return the
try {
preferences.get('startup', 'default', function (err, val) {
if (err) {
- console.info("Failed to get the value of 'startup'. code =" + err.code + ", message =" + err.message);
+ console.info("Failed to obtain the value of 'startup'. code =" + err.code + ", message =" + err.message);
return;
}
console.info("Obtained the value of 'startup' successfully. val: " + val);
})
} catch (err) {
- console.info("Failed to get the value of 'startup'. code =" + err.code + ", message =" + err.message);
+ console.info("Failed to obtain the value of 'startup'. code =" + err.code + ", message =" + err.message);
}
```
@@ -502,7 +478,7 @@ try {
get(key: string, defValue: ValueType): Promise<ValueType>
-Obtains the value of a key. This API uses a promise to return the result. If the value is **null** or is not the type of the default value, the default value is returned.
+Obtains the value of a key. This API uses a promise to return the result. If the value is **null** or is not of the default value type, **defValue** is returned.
**System capability**: SystemCapability.DistributedDataManager.Preferences.Core
@@ -530,7 +506,7 @@ try {
console.info("Failed to get value of 'startup'. code =" + err.code + ", message =" + err.message);
})
} catch(err) {
- console.info("Failed to get the value of 'startup'. code =" + err.code + ", message =" + err.message);
+ console.info("Failed to obtain the value of 'startup'. code =" + err.code + ", message =" + err.message);
}
```
@@ -672,7 +648,7 @@ try {
has(key: string, callback: AsyncCallback<boolean>): void
-Checks whether this **Preferences** instance contains a KV pair with the given key. This API uses an asynchronous callback to return the result..
+Checks whether this **Preferences** instance contains a KV pair with the given key. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.DistributedDataManager.Preferences.Core
@@ -708,7 +684,7 @@ try {
has(key: string): Promise<boolean>
-Checks whether this **Preferences** instance contains a KV pair with the given key. This API uses a promise to return the result..
+Checks whether this **Preferences** instance contains a KV pair with the given key. This API uses a promise to return the result.
**System capability**: SystemCapability.DistributedDataManager.Preferences.Core
@@ -804,10 +780,10 @@ try {
promise.then(() => {
console.info("Deleted the key 'startup'.");
}).catch((err) => {
- console.log("Failed to delete the key 'startup'. code =" + err.code +", message =" + err.message);
+ console.info("Failed to delete the key 'startup'. code =" + err.code +", message =" + err.message);
})
} catch(err) {
- console.log("Failed to delete the key 'startup'. code =" + err.code +", message =" + err.message);
+ console.info("Failed to delete the key 'startup'. code =" + err.code +", message =" + err.message);
}
```
@@ -955,7 +931,7 @@ Subscribes to data changes. A callback will be triggered to return the new value
try {
data_preferences.getPreferences(this.context, 'mystore', function (err, preferences) {
if (err) {
- console.info("Failed to get the preferences.");
+ console.info("Failed to obtain the preferences.");
return;
}
let observer = function (key) {
@@ -1005,7 +981,7 @@ Unsubscribes from data changes.
try {
data_preferences.getPreferences(this.context, 'mystore', function (err, preferences) {
if (err) {
- console.info("Failed to get the preferences.");
+ console.info("Failed to obtain the preferences.");
return;
}
let observer = function (key) {
diff --git a/en/application-dev/reference/apis/js-apis-data-storage.md b/en/application-dev/reference/apis/js-apis-data-storage.md
index 63e6decf149d62da32381aefbee2707dab29c632..75e9293eadcd0a25fc923146b92246a885829df6 100644
--- a/en/application-dev/reference/apis/js-apis-data-storage.md
+++ b/en/application-dev/reference/apis/js-apis-data-storage.md
@@ -367,7 +367,7 @@ Provides APIs for obtaining and modifying storage data.
getSync(key: string, defValue: ValueType): ValueType
-Obtains the value corresponding to a key. If the value is null or not in the default value format, the default value is returned.
+Obtains the value corresponding to a key. If the value is null or not of the default value type, **defValue** is returned.
**System capability**: SystemCapability.DistributedDataManager.Preferences.Core
@@ -396,7 +396,7 @@ console.info("The value of startup is " + value);
get(key: string, defValue: ValueType, callback: AsyncCallback<ValueType>): void
-Obtains the value corresponding to a key. If the value is null or not in the default value format, the default value is returned. This API uses an asynchronous callback to return the result.
+Obtains the value corresponding to a key. If the value is null or not of the default value type, **defValue** is returned. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.DistributedDataManager.Preferences.Core
@@ -425,7 +425,7 @@ storage.get('startup', 'default', function(err, value) {
get(key: string, defValue: ValueType): Promise<ValueType>
-Obtains the value corresponding to a key. If the value is null or not in the default value format, the default value is returned. This API uses a promise to return the result.
+Obtains the value corresponding to a key. If the value is null or not of the default value type, **defValue** is returned. This API uses a promise to return the result.
**System capability**: SystemCapability.DistributedDataManager.Preferences.Core
diff --git a/en/application-dev/reference/apis/js-apis-deque.md b/en/application-dev/reference/apis/js-apis-deque.md
index 274836333aa773d32a386ad22b03706e890859c7..46d97bd96c27c9d3f05d519ebde6ff1ed8d3e4c5 100644
--- a/en/application-dev/reference/apis/js-apis-deque.md
+++ b/en/application-dev/reference/apis/js-apis-deque.md
@@ -1,9 +1,5 @@
# @ohos.util.Deque (Linear Container Deque)
-> **NOTE**
->
-> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
-
Double-ended queue (deque) is a sequence container implemented based on the queue data structure that follows the principles of First In First Out (FIFO) and Last In First Out (LIFO). It allows insertion and removal of elements at both the ends. **Deque** can dynamically adjust the capacity based on project requirements. It doubles the capacity each time. **Deque** differs from **[Queue](js-apis-queue.md)** and **[Vector](js-apis-vector.md)** mainly in the following aspects:
**Queue** follows the principle of FIFO only and allows element removal at the front and insertion at the rear.
@@ -15,6 +11,11 @@ Double-ended queue (deque) is a sequence container implemented based on the queu
This topic uses the following to identify the use of generics:
- T: Type
+> **NOTE**
+>
+> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
+
## Modules to Import
```ts
@@ -269,7 +270,7 @@ deque.insertEnd(4);
deque.insertFront(5);
deque.insertEnd(4);
deque.forEach((value, index) => {
- console.log("value:" + value, index);
+ console.log("value:" + value, "index:" + index);
});
```
diff --git a/en/application-dev/reference/apis/js-apis-file-fs.md b/en/application-dev/reference/apis/js-apis-file-fs.md
index 19ab5a4812762f0c812a843ad0db452801497dbe..806f2178ad1017606abfcbdbaa6edeefecbf07b4 100644
--- a/en/application-dev/reference/apis/js-apis-file-fs.md
+++ b/en/application-dev/reference/apis/js-apis-file-fs.md
@@ -60,9 +60,9 @@ Obtains detailed file information. This API uses a promise to return the result.
**Return value**
-| Type | Description |
-| ---------------------------- | ---------- |
-| Promise<[Stat](#stat)> | Promise used to return the file information obtained.|
+ | Type | Description |
+ | ---------------------------- | ---------- |
+ | Promise<[Stat](#stat)> | Promise used to return the file information obtained.|
**Example**
@@ -119,9 +119,9 @@ Obtains detailed file information synchronously.
**Return value**
-| Type | Description |
-| ------------- | ---------- |
-| [Stat](#stat) | File information obtained.|
+ | Type | Description |
+ | ------------- | ---------- |
+ | [Stat](#stat) | File information obtained.|
**Example**
@@ -146,9 +146,9 @@ Checks whether a file exists. This API uses a promise to return the result.
**Return value**
-| Type | Description |
-| ------------------- | ---------------------------- |
-| Promise<boolean> | Promise used to return a Boolean value.|
+ | Type | Description |
+ | ------------------- | ---------------------------- |
+ | Promise<boolean> | Promise used to return a Boolean value.|
**Example**
@@ -233,15 +233,15 @@ Closes a file. This API uses a promise to return the result.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---- | ------ | ---- | ------------ |
-| file | [File](#file)\|number | Yes | File object or FD of the file to close.|
+ | Name | Type | Mandatory | Description |
+ | ---- | ------ | ---- | ------------ |
+ | file | [File](#file)\|number | Yes | File object or FD of the file to close.|
**Return value**
-| Type | Description |
-| ------------------- | ---------------------------- |
-| Promise<void> | Promise that returns no value.|
+ | Type | Description |
+ | ------------------- | ---------------------------- |
+ | Promise<void> | Promise that returns no value.|
**Example**
@@ -266,10 +266,10 @@ Closes a file. This API uses an asynchronous callback to return the result.
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | ------------------------- | ---- | ------------ |
-| file | [File](#file)\|number | Yes | File object or FD of the file to close.|
-| callback | AsyncCallback<void> | Yes | Callback invoked when the file is closed asynchronously.|
+ | Name | Type | Mandatory | Description |
+ | -------- | ------------------------- | ---- | ------------ |
+ | file | [File](#file)\|number | Yes | File object or FD of the file to close.|
+ | callback | AsyncCallback<void> | Yes | Callback invoked when the file is closed asynchronously.|
**Example**
@@ -295,9 +295,9 @@ Synchronously closes a file.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---- | ------ | ---- | ------------ |
-| file | [File](#file)\|number | Yes | File object or FD of the file to close.|
+ | Name | Type | Mandatory | Description |
+ | ---- | ------ | ---- | ------------ |
+ | file | [File](#file)\|number | Yes | File object or FD of the file to close.|
**Example**
@@ -317,17 +317,17 @@ Copies a file. This API uses a promise to return the result.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---- | -------------------------- | ---- | ---------------------------------------- |
-| src | string\|number | Yes | Path or FD of the file to copy. |
-| dest | string\|number | Yes | Destination path of the file or FD of the file created. |
-| mode | number | No | Whether to overwrite the file of the same name in the destination path. The default value is **0**, which is the only value supported. **0**: overwrite the file of the same name.|
+ | Name | Type | Mandatory | Description |
+ | ---- | -------------------------- | ---- | ---------------------------------------- |
+ | src | string\|number | Yes | Path or FD of the file to copy. |
+ | dest | string\|number | Yes | Destination path of the file or FD of the file created. |
+ | mode | number | No | Whether to overwrite the file of the same name in the destination path. The default value is **0**, which is the only value supported. **0**: overwrite the file of the same name.|
**Return value**
-| Type | Description |
-| ------------------- | ---------------------------- |
-| Promise<void> | Promise that returns no value.|
+ | Type | Description |
+ | ------------------- | ---------------------------- |
+ | Promise<void> | Promise that returns no value.|
**Example**
@@ -351,12 +351,12 @@ Copies a file. This API uses an asynchronous callback to return the result.
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | -------------------------- | ---- | ---------------------------------------- |
-| src | string\|number | Yes | Path or FD of the file to copy. |
-| dest | string\|number | Yes | Destination path of the file or FD of the file created. |
-| mode | number | No | Whether to overwrite the file of the same name in the destination path. The default value is **0**, which is the only value supported. **0**: overwrite the file with the same name and truncate the part that is not overwritten.|
-| callback | AsyncCallback<void> | Yes | Callback invoked when the file is copied asynchronously. |
+ | Name | Type | Mandatory | Description |
+ | -------- | -------------------------- | ---- | ---------------------------------------- |
+ | src | string\|number | Yes | Path or FD of the file to copy. |
+ | dest | string\|number | Yes | Destination path of the file or FD of the file created. |
+ | mode | number | No | Whether to overwrite the file of the same name in the destination path. The default value is **0**, which is the only value supported. **0**: overwrite the file with the same name and truncate the part that is not overwritten.|
+ | callback | AsyncCallback<void> | Yes | Callback invoked when the file is copied asynchronously. |
**Example**
@@ -383,11 +383,11 @@ Synchronously copies a file.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---- | -------------------------- | ---- | ---------------------------------------- |
-| src | string\|number | Yes | Path or FD of the file to copy. |
-| dest | string\|number | Yes | Destination path of the file or FD of the file created. |
-| mode | number | No | Whether to overwrite the file of the same name in the destination path. The default value is **0**, which is the only value supported. **0**: overwrite the file with the same name and truncate the part that is not overwritten.|
+ | Name | Type | Mandatory | Description |
+ | ---- | -------------------------- | ---- | ---------------------------------------- |
+ | src | string\|number | Yes | Path or FD of the file to copy. |
+ | dest | string\|number | Yes | Destination path of the file or FD of the file created. |
+ | mode | number | No | Whether to overwrite the file of the same name in the destination path. The default value is **0**, which is the only value supported. **0**: overwrite the file with the same name and truncate the part that is not overwritten.|
**Example**
@@ -414,9 +414,9 @@ Creates a directory. This API uses a promise to return the result.
**Return value**
-| Type | Description |
-| ------------------- | ---------------------------- |
-| Promise<void> | Promise that returns no value.|
+ | Type | Description |
+ | ------------------- | ---------------------------- |
+ | Promise<void> | Promise that returns no value.|
**Example**
@@ -498,9 +498,9 @@ Opens a file. This API uses a promise to return the result. File uniform resourc
**Return value**
-| Type | Description |
-| --------------------- | ----------- |
-| Promise<[File](#file)> | Promise used to return the file object.|
+ | Type | Description |
+ | --------------------- | ----------- |
+ | Promise<[File](#file)> | Promise used to return the file object.|
**Example**
@@ -559,9 +559,9 @@ Synchronously opens a file. File URIs are supported.
**Return value**
-| Type | Description |
-| ------ | ----------- |
-| [File](#file) | File object opened.|
+ | Type | Description |
+ | ------ | ----------- |
+ | [File](#file) | File object opened.|
**Example**
@@ -590,9 +590,9 @@ Reads data from a file. This API uses a promise to return the result.
**Return value**
-| Type | Description |
-| ---------------------------------- | ------ |
-| Promise<number> | Promise used to return the data read.|
+ | Type | Description |
+ | ---------------------------------- | ------ |
+ | Promise<number> | Promise used to return the data read.|
**Example**
@@ -619,12 +619,12 @@ Reads data from a file. This API uses an asynchronous callback to return the res
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | ---------------------------------------- | ---- | ---------------------------------------- |
-| fd | number | Yes | FD of the file. |
-| buffer | ArrayBuffer | Yes | Buffer used to store the file data read. |
-| options | Object | No | The options are as follows: - **offset** (number): position of the data to read in the file. This parameter is optional. By default, data is read from the current position. - **length** (number): length of the data to read. This parameter is optional. The default value is the buffer length.|
-| callback | AsyncCallback<number> | Yes | Callback invoked when the data is read asynchronously. |
+ | Name | Type | Mandatory | Description |
+ | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
+ | fd | number | Yes | FD of the file. |
+ | buffer | ArrayBuffer | Yes | Buffer used to store the file data read. |
+ | options | Object | No | The options are as follows: - **offset** (number): position of the data to read in the file. This parameter is optional. By default, data is read from the current position. - **length** (number): length of the data to read. This parameter is optional. The default value is the buffer length.|
+ | callback | AsyncCallback<number> | Yes | Callback invoked when the data is read asynchronously. |
**Example**
@@ -654,17 +654,17 @@ Synchronously reads data from a file.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ------- | ----------- | ---- | ---------------------------------------- |
-| fd | number | Yes | FD of the file. |
-| buffer | ArrayBuffer | Yes | Buffer used to store the file data read. |
-| options | Object | No | The options are as follows: - **offset** (number): position of the data to read in the file. This parameter is optional. By default, data is read from the current position. - **length** (number): length of the data to read. This parameter is optional. The default value is the buffer length.|
+ | Name | Type | Mandatory | Description |
+ | ------- | ----------- | ---- | ---------------------------------------- |
+ | fd | number | Yes | FD of the file. |
+ | buffer | ArrayBuffer | Yes | Buffer used to store the file data read. |
+ | options | Object | No | The options are as follows: - **offset** (number): position of the data to read in the file. This parameter is optional. By default, data is read from the current position. - **length** (number): length of the data to read. This parameter is optional. The default value is the buffer length.|
**Return value**
-| Type | Description |
-| ------ | -------- |
-| number | Length of the data read.|
+ | Type | Description |
+ | ------ | -------- |
+ | number | Length of the data read.|
**Example**
@@ -693,9 +693,9 @@ Deletes a directory. This API uses a promise to return the result.
**Return value**
-| Type | Description |
-| ------------------- | ---------------------------- |
-| Promise<void> | Promise that returns no value.|
+ | Type | Description |
+ | ------------------- | ---------------------------- |
+ | Promise<void> | Promise that returns no value.|
**Example**
@@ -776,9 +776,9 @@ Deletes a file. This API uses a promise to return the result.
**Return value**
-| Type | Description |
-| ------------------- | ---------------------------- |
-| Promise<void> | Promise that returns no value.|
+ | Type | Description |
+ | ------------------- | ---------------------------- |
+ | Promise<void> | Promise that returns no value.|
**Example**
@@ -853,17 +853,17 @@ Writes data into a file. This API uses a promise to return the result.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ------- | ------------------------------- | ---- | ---------------------------------------- |
-| fd | number | Yes | FD of the file. |
-| buffer | ArrayBuffer\|string | Yes | Data to write. It can be a string or data from a buffer. |
-| options | Object | No | The options are as follows: - **offset** (number): start position to write the data in the file. This parameter is optional. By default, data is written from the current position. - **length** (number): length of the data to write. This parameter is optional. The default value is the buffer length. - **encoding** (string): format of the data to be encoded when the data is a string. The default value is **'utf-8'**, which is the only value supported.|
+ | Name | Type | Mandatory | Description |
+ | ------- | ------------------------------- | ---- | ---------------------------------------- |
+ | fd | number | Yes | FD of the file. |
+ | buffer | ArrayBuffer\|string | Yes | Data to write. It can be a string or data from a buffer. |
+ | options | Object | No | The options are as follows: - **offset** (number): start position to write the data in the file. This parameter is optional. By default, data is written from the current position. - **length** (number): length of the data to write. This parameter is optional. The default value is the buffer length. - **encoding** (string): format of the data to be encoded when the data is a string. The default value is **'utf-8'**, which is the only value supported.|
**Return value**
-| Type | Description |
-| --------------------- | -------- |
-| Promise<number> | Promise used to return the length of the data written.|
+ | Type | Description |
+ | --------------------- | -------- |
+ | Promise<number> | Promise used to return the length of the data written.|
**Example**
@@ -889,12 +889,12 @@ Writes data into a file. This API uses an asynchronous callback to return the re
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | ------------------------------- | ---- | ---------------------------------------- |
-| fd | number | Yes | FD of the file. |
-| buffer | ArrayBuffer\|string | Yes | Data to write. It can be a string or data from a buffer. |
-| options | Object | No | The options are as follows: - **offset** (number): start position to write the data in the file. This parameter is optional. By default, data is written from the current position. - **length** (number): length of the data to write. This parameter is optional. The default value is the buffer length. - **encoding** (string): format of the data to be encoded when the data is a string. The default value is **'utf-8'**, which is the only value supported.|
-| callback | AsyncCallback<number> | Yes | Callback invoked when the data is written asynchronously. |
+ | Name | Type | Mandatory | Description |
+ | -------- | ------------------------------- | ---- | ---------------------------------------- |
+ | fd | number | Yes | FD of the file. |
+ | buffer | ArrayBuffer\|string | Yes | Data to write. It can be a string or data from a buffer. |
+ | options | Object | No | The options are as follows: - **offset** (number): start position to write the data in the file. This parameter is optional. By default, data is written from the current position. - **length** (number): length of the data to write. This parameter is optional. The default value is the buffer length. - **encoding** (string): format of the data to be encoded when the data is a string. The default value is **'utf-8'**, which is the only value supported.|
+ | callback | AsyncCallback<number> | Yes | Callback invoked when the data is written asynchronously. |
**Example**
@@ -922,17 +922,17 @@ Synchronously writes data into a file.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ------- | ------------------------------- | ---- | ---------------------------------------- |
-| fd | number | Yes | FD of the file. |
-| buffer | ArrayBuffer\|string | Yes | Data to write. It can be a string or data from a buffer. |
-| options | Object | No | The options are as follows: - **offset** (number): start position to write the data in the file. This parameter is optional. By default, data is written from the current position. - **length** (number): length of the data to write. This parameter is optional. The default value is the buffer length. - **encoding** (string): format of the data to be encoded when the data is a string. The default value is **'utf-8'**, which is the only value supported.|
+ | Name | Type | Mandatory | Description |
+ | ------- | ------------------------------- | ---- | ---------------------------------------- |
+ | fd | number | Yes | FD of the file. |
+ | buffer | ArrayBuffer\|string | Yes | Data to write. It can be a string or data from a buffer. |
+ | options | Object | No | The options are as follows: - **offset** (number): start position to write the data in the file. This parameter is optional. By default, data is written from the current position. - **length** (number): length of the data to write. This parameter is optional. The default value is the buffer length. - **encoding** (string): format of the data to be encoded when the data is a string. The default value is **'utf-8'**, which is the only value supported.|
**Return value**
-| Type | Description |
-| ------ | -------- |
-| number | Length of the data written in the file.|
+ | Type | Description |
+ | ------ | -------- |
+ | number | Length of the data written in the file.|
**Example**
@@ -961,9 +961,9 @@ Truncates a file. This API uses a promise to return the result.
**Return value**
-| Type | Description |
-| ------------------- | ---------------------------- |
-| Promise<void> | Promise that returns no value.|
+ | Type | Description |
+ | ------------------- | ---------------------------- |
+ | Promise<void> | Promise that returns no value.|
**Example**
@@ -1050,9 +1050,9 @@ Reads the text content of a file. This API uses a promise to return the result.
**Return value**
-| Type | Description |
-| --------------------- | ---------- |
-| Promise<string> | Promise used to return the content read.|
+ | Type | Description |
+ | --------------------- | ---------- |
+ | Promise<string> | Promise used to return the content read.|
**Example**
@@ -1113,9 +1113,9 @@ Synchronously reads the text of a file.
**Return value**
-| Type | Description |
-| ------ | -------------------- |
-| string | Promise used to return the content of the file read.|
+ | Type | Description |
+ | ------ | -------------------- |
+ | string | Promise used to return the content of the file read.|
**Example**
@@ -1141,9 +1141,9 @@ Obtains information about a symbolic link. This API uses a promise to return the
**Return value**
-| Type | Description |
-| ---------------------------- | ---------- |
-| Promise<[Stat](#stat)> | Promise used to return the symbolic link information obtained. For details, see **stat**.|
+ | Type | Description |
+ | ---------------------------- | ---------- |
+ | Promise<[Stat](#stat)> | Promise used to return the symbolic link information obtained. For details, see **stat**.|
**Example**
@@ -1201,9 +1201,9 @@ Obtains information about a symbolic link synchronously.
**Return value**
-| Type | Description |
-| ------------- | ---------- |
-| [Stat](#stat) | File information obtained.|
+ | Type | Description |
+ | ------------- | ---------- |
+ | [Stat](#stat) | File information obtained.|
**Example**
@@ -1229,9 +1229,9 @@ Renames a file or directory. This API uses a promise to return the result.
**Return value**
-| Type | Description |
-| ------------------- | ---------------------------- |
-| Promise<void> | Promise that returns no value.|
+ | Type | Description |
+ | ------------------- | ---------------------------- |
+ | Promise<void> | Promise that returns no value.|
**Example**
@@ -1309,15 +1309,15 @@ Flushes data of a file to disk. This API uses a promise to return the result.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---- | ------ | ---- | ------------ |
-| fd | number | Yes | FD of the file.|
+ | Name | Type | Mandatory | Description |
+ | ---- | ------ | ---- | ------------ |
+ | fd | number | Yes | FD of the file.|
**Return value**
-| Type | Description |
-| ------------------- | ---------------------------- |
-| Promise<void> | Promise that returns no value.|
+ | Type | Description |
+ | ------------------- | ---------------------------- |
+ | Promise<void> | Promise that returns no value.|
**Example**
@@ -1342,10 +1342,10 @@ Flushes data of a file to disk. This API uses an asynchronous callback to return
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | ------------------------- | ---- | --------------- |
-| fd | number | Yes | FD of the file. |
-| Callback | AsyncCallback<void> | Yes | Callback invoked when the file data is synchronized in asynchronous mode.|
+ | Name | Type | Mandatory | Description |
+ | -------- | ------------------------- | ---- | --------------- |
+ | fd | number | Yes | FD of the file. |
+ | Callback | AsyncCallback<void> | Yes | Callback invoked when the file data is synchronized in asynchronous mode.|
**Example**
@@ -1373,9 +1373,9 @@ Flushes data of a file to disk synchronously.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---- | ------ | ---- | ------------ |
-| fd | number | Yes | FD of the file.|
+ | Name | Type | Mandatory | Description |
+ | ---- | ------ | ---- | ------------ |
+ | fd | number | Yes | FD of the file.|
**Example**
@@ -1397,15 +1397,15 @@ Flushes data of a file to disk. This API uses a promise to return the result. **
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---- | ------ | ---- | ------------ |
-| fd | number | Yes | FD of the file.|
+ | Name | Type | Mandatory | Description |
+ | ---- | ------ | ---- | ------------ |
+ | fd | number | Yes | FD of the file.|
**Return value**
-| Type | Description |
-| ------------------- | ---------------------------- |
-| Promise<void> | Promise that returns no value.|
+ | Type | Description |
+ | ------------------- | ---------------------------- |
+ | Promise<void> | Promise that returns no value.|
**Example**
@@ -1431,10 +1431,10 @@ Flushes data of a file to disk. This API uses an asynchronous callback to return
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | ------------------------------- | ---- | ----------------- |
-| fd | number | Yes | FD of the file. |
-| callback | AsyncCallback<void> | Yes | Callback invoked when the file data is synchronized in asynchronous mode.|
+ | Name | Type | Mandatory | Description |
+ | -------- | ------------------------------- | ---- | ----------------- |
+ | fd | number | Yes | FD of the file. |
+ | callback | AsyncCallback<void> | Yes | Callback invoked when the file data is synchronized in asynchronous mode.|
**Example**
@@ -1461,9 +1461,9 @@ Synchronizes data in a file synchronously.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---- | ------ | ---- | ------------ |
-| fd | number | Yes | FD of the file.|
+ | Name | Type | Mandatory | Description |
+ | ---- | ------ | ---- | ------------ |
+ | fd | number | Yes | FD of the file.|
**Example**
@@ -1492,9 +1492,9 @@ Creates a symbolic link based on a file path. This API uses a promise to return
**Return value**
-| Type | Description |
-| ------------------- | ---------------------------- |
-| Promise<void> | Promise that returns no value.|
+ | Type | Description |
+ | ------------------- | ---------------------------- |
+ | Promise<void> | Promise that returns no value.|
**Example**
@@ -1574,24 +1574,24 @@ Lists all files in a directory. This API uses a promise to return the result. ;
@@ -1726,11 +1726,11 @@ Moves a file. This API uses a promise to return the result.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ------ | ------ | ---- | --------------------------- |
-| src | string | Yes | Path of the file to move in the application sandbox.|
-| dest | string | Yes | Destination path of the file in the application sandbox.|
-| mode | number | No | Whether to overwrite the file of the same name in the destination directory. The value **0** means to overwrite the file of the same name in the destination directory. The value **1** means to throw an exception if a file of the same name exists in the destination directory. The default value is **0**.|
+ | Name | Type | Mandatory | Description |
+ | ------ | ------ | ---- | --------------------------- |
+ | src | string | Yes | Path of the file to move in the application sandbox.|
+ | dest | string | Yes | Destination path of the file in the application sandbox.|
+ | mode | number | No | Whether to overwrite the file of the same name in the destination directory. The value **0** means to overwrite the file of the same name in the destination directory. The value **1** means to throw an exception if a file of the same name exists in the destination directory. The default value is **0**.|
**Example**
@@ -1742,7 +1742,7 @@ Moves a file. This API uses a promise to return the result.
});
```
-## moveFile
+## fs.moveFile
moveFile(src: string, dest: string, mode?: number, callback: AsyncCallback): void;
@@ -1752,12 +1752,12 @@ Moves a file. This API uses an asynchronous callback to return the result.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ------ | ------ | ---- | --------------------------- |
-| src | string | Yes | Path of the file to move in the application sandbox.|
-| dest | string | Yes | Destination path of the file in the application sandbox.|
-| mode | number | No | Whether to overwrite the file of the same name in the destination directory. The value **0** means to overwrite the file of the same name in the destination directory. The value **1** means to throw an exception if a file of the same name exists in the destination directory. The default value is **0**.|
-| callback | AsyncCallback<void> | Yes | Callback invoked when the file is moved. |
+ | Name | Type | Mandatory | Description |
+ | ------ | ------ | ---- | --------------------------- |
+ | src | string | Yes | Path of the file to move in the application sandbox.|
+ | dest | string | Yes | Destination path of the file in the application sandbox.|
+ | mode | number | No | Whether to overwrite the file of the same name in the destination directory. The value **0** means to overwrite the file of the same name in the destination directory. The value **1** means to throw an exception if a file of the same name exists in the destination directory. The default value is **0**.|
+ | callback | AsyncCallback<void> | Yes | Callback invoked when the file is moved. |
**Example**
@@ -1771,7 +1771,7 @@ Moves a file. This API uses an asynchronous callback to return the result.
});
```
-## moveFileSync
+## fs.moveFileSync
moveFile(src: string, dest: string, mode?: number): void;
@@ -1781,11 +1781,11 @@ Moves a file synchronously.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ------ | ------ | ---- | --------------------------- |
-| src | string | Yes | Path of the file to move in the application sandbox.|
-| dest | string | Yes | Destination path of the file in the application sandbox.|
-| mode | number | No | Whether to overwrite the file of the same name in the destination directory. The value **0** means to overwrite the file of the same name in the destination directory. The value **1** means to throw an exception if a file of the same name exists in the destination directory. The default value is **0**.|
+ | Name | Type | Mandatory | Description |
+ | ------ | ------ | ---- | --------------------------- |
+ | src | string | Yes | Path of the file to move in the application sandbox.|
+ | dest | string | Yes | Destination path of the file in the application sandbox.|
+ | mode | number | No | Whether to overwrite the file of the same name in the destination directory. The value **0** means to overwrite the file of the same name in the destination directory. The value **1** means to throw an exception if a file of the same name exists in the destination directory. The default value is **0**.|
**Example**
@@ -1804,15 +1804,15 @@ Creates a temporary directory. This API uses a promise to return the result.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ------ | ------ | ---- | --------------------------- |
-| prefix | string | Yes | A randomly generated string used to replace "XXXXXX" in a directory.|
+ | Name | Type | Mandatory | Description |
+ | ------ | ------ | ---- | --------------------------- |
+ | prefix | string | Yes | A randomly generated string used to replace "XXXXXX" in a directory.|
**Return value**
-| Type | Description |
-| --------------------- | ---------- |
-| Promise<string> | Promise used to return the unique directory generated.|
+ | Type | Description |
+ | --------------------- | ---------- |
+ | Promise<string> | Promise used to return the unique directory generated.|
**Example**
@@ -1835,10 +1835,10 @@ Creates a temporary directory. This API uses an asynchronous callback to return
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | --------------------------- | ---- | --------------------------- |
-| prefix | string | Yes | A randomly generated string used to replace "XXXXXX" in a directory.|
-| callback | AsyncCallback<string> | Yes | Callback invoked when a temporary directory is created asynchronously. |
+ | Name | Type | Mandatory | Description |
+ | -------- | --------------------------- | ---- | --------------------------- |
+ | prefix | string | Yes | A randomly generated string used to replace "XXXXXX" in a directory.|
+ | callback | AsyncCallback<string> | Yes | Callback invoked when a temporary directory is created asynchronously. |
**Example**
@@ -1862,21 +1862,21 @@ Synchronously creates a temporary directory.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ------ | ------ | ---- | --------------------------- |
-| prefix | string | Yes | A randomly generated string used to replace "XXXXXX" in a directory.|
+ | Name | Type | Mandatory | Description |
+ | ------ | ------ | ---- | --------------------------- |
+ | prefix | string | Yes | A randomly generated string used to replace "XXXXXX" in a directory.|
**Return value**
-| Type | Description |
-| ------ | ---------- |
-| string | Unique path generated.|
+ | Type | Description |
+ | ------ | ---------- |
+ | string | Unique path generated.|
**Example**
```js
let res = fs.mkdtempSync(pathDir + "/XXXXXX");
- ```
+ ```
## fs.createStream
@@ -1895,9 +1895,9 @@ Opens a file stream based on the file path. This API uses a promise to return th
**Return value**
-| Type | Description |
-| --------------------------------- | --------- |
-| Promise<[Stream](#stream)> | Promise used to return the result.|
+ | Type | Description |
+ | --------------------------------- | --------- |
+ | Promise<[Stream](#stream)> | Promise used to return the result.|
**Example**
@@ -1957,9 +1957,9 @@ Synchronously opens a stream based on the file path.
**Return value**
-| Type | Description |
-| ------------------ | --------- |
-| [Stream](#stream) | Stream opened.|
+ | Type | Description |
+ | ------------------ | --------- |
+ | [Stream](#stream) | Stream opened.|
**Example**
@@ -1979,16 +1979,16 @@ Opens a file stream based on the file descriptor. This API uses a promise to ret
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---- | ------ | ---- | ---------------------------------------- |
-| fd | number | Yes | FD of the file. |
-| mode | string | Yes | - **r**: Open a file for reading. The file must exist. - **r+**: Open a file for both reading and writing. The file must exist. - **w**: Open a file for writing. If the file exists, clear its content. If the file does not exist, create a file. - **w+**: Open a file for both reading and writing. If the file exists, clear its content. If the file does not exist, create a file. - **a**: Open a file in append mode for writing at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved). - **a+**: Open a file in append mode for reading or updating at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved).|
+ | Name | Type | Mandatory | Description |
+ | ---- | ------ | ---- | ---------------------------------------- |
+ | fd | number | Yes | FD of the file. |
+ | mode | string | Yes | - **r**: Open a file for reading. The file must exist. - **r+**: Open a file for both reading and writing. The file must exist. - **w**: Open a file for writing. If the file exists, clear its content. If the file does not exist, create a file. - **w+**: Open a file for both reading and writing. If the file exists, clear its content. If the file does not exist, create a file. - **a**: Open a file in append mode for writing at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved). - **a+**: Open a file in append mode for reading or updating at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved).|
**Return value**
-| Type | Description |
-| --------------------------------- | --------- |
-| Promise<[Stream](#stream)> | Promise used to return the result.|
+ | Type | Description |
+ | --------------------------------- | --------- |
+ | Promise<[Stream](#stream)> | Promise used to return the result.|
**Example**
@@ -2014,11 +2014,11 @@ Opens a file stream based on the file descriptor. This API uses an asynchronous
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | ---------------------------------------- | ---- | ---------------------------------------- |
-| fd | number | Yes | FD of the file. |
-| mode | string | Yes | - **r**: Open a file for reading. The file must exist. - **r+**: Open a file for both reading and writing. The file must exist. - **w**: Open a file for writing. If the file exists, clear its content. If the file does not exist, create a file. - **w+**: Open a file for both reading and writing. If the file exists, clear its content. If the file does not exist, create a file. - **a**: Open a file in append mode for writing at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved). - **a+**: Open a file in append mode for reading or updating at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved).|
-| callback | AsyncCallback<[Stream](#stream)> | Yes | Callback invoked when the stream is open asynchronously. |
+ | Name | Type | Mandatory | Description |
+ | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
+ | fd | number | Yes | FD of the file. |
+ | mode | string | Yes | - **r**: Open a file for reading. The file must exist. - **r+**: Open a file for both reading and writing. The file must exist. - **w**: Open a file for writing. If the file exists, clear its content. If the file does not exist, create a file. - **w+**: Open a file for both reading and writing. If the file exists, clear its content. If the file does not exist, create a file. - **a**: Open a file in append mode for writing at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved). - **a+**: Open a file in append mode for reading or updating at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved).|
+ | callback | AsyncCallback<[Stream](#stream)> | Yes | Callback invoked when the stream is open asynchronously. |
**Example**
@@ -2045,16 +2045,16 @@ Synchronously opens a stream based on the file descriptor.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ---- | ------ | ---- | ---------------------------------------- |
-| fd | number | Yes | FD of the file. |
-| mode | string | Yes | - **r**: Open a file for reading. The file must exist. - **r+**: Open a file for both reading and writing. The file must exist. - **w**: Open a file for writing. If the file exists, clear its content. If the file does not exist, create a file. - **w+**: Open a file for both reading and writing. If the file exists, clear its content. If the file does not exist, create a file. - **a**: Open a file in append mode for writing at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved). - **a+**: Open a file in append mode for reading or updating at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved).|
+ | Name | Type | Mandatory | Description |
+ | ---- | ------ | ---- | ---------------------------------------- |
+ | fd | number | Yes | FD of the file. |
+ | mode | string | Yes | - **r**: Open a file for reading. The file must exist. - **r+**: Open a file for both reading and writing. The file must exist. - **w**: Open a file for writing. If the file exists, clear its content. If the file does not exist, create a file. - **w+**: Open a file for both reading and writing. If the file exists, clear its content. If the file does not exist, create a file. - **a**: Open a file in append mode for writing at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved). - **a+**: Open a file in append mode for reading or updating at the end of the file. If the file does not exist, create a file. If the file exists, write data to the end of the file (the original content of the file is reserved).|
**Return value**
-| Type | Description |
-| ------------------ | --------- |
-| [Stream](#stream) | Stream opened.|
+ | Type | Description |
+ | ------------------ | --------- |
+ | [Stream](#stream) | Stream opened.|
**Example**
@@ -2074,7 +2074,7 @@ Represents detailed file information. Before calling any API of the **Stat()** c
### Attributes
| Name | Type | Readable | Writable | Description |
-| ------ | ------ | ---- | ---- | ---------------------------------------- |
+| ------ | ------ | ---- | ---- | ---------------------------------------- |
| ino | number | Yes | No | File ID. Different files on the same device have different **ino**s.| |
| mode | number | Yes | No | File permissions. The meaning of each bit is as follows: - **0o400**: The owner has the read permission on a regular file or a directory entry. - **0o200**: The owner has the permission to write a regular file or create and delete a directory entry. - **0o100**: The owner has the permission to execute a regular file or search for the specified path in a directory. - **0o040**: The user group has the read permission on a regular file or a directory entry. - **0o020**: The user group has the permission to write a regular file or create and delete a directory entry. - **0o010**: The user group has the permission to execute a regular file or search for the specified path in a directory. - **0o004**: Other users have the permission to read a regular file or read a directory entry. - **0o002**: Other users have the permission to write a regular file or create and delete a directory entry. - **0o001**: Other users have the permission to execute a regular file or search for the specified path in a directory.|
| uid | number | Yes | No | ID of the file owner.|
@@ -2095,9 +2095,9 @@ Checks whether this file is a block special file. A block special file supports
**Return value**
-| Type | Description |
-| ------- | ---------------- |
-| boolean | Whether the file is a block special file.|
+ | Type | Description |
+ | ------- | ---------------- |
+ | boolean | Whether the file is a block special file.|
**Example**
@@ -2116,9 +2116,9 @@ Checks whether this file is a character special file. A character special file s
**Return value**
-| Type | Description |
-| ------- | ----------------- |
-| boolean | Whether the file is a character special file.|
+ | Type | Description |
+ | ------- | ----------------- |
+ | boolean | Whether the file is a character special file.|
**Example**
@@ -2138,9 +2138,9 @@ Checks whether this file is a directory.
**Return value**
-| Type | Description |
-| ------- | ------------- |
-| boolean | Whether the file is a directory.|
+ | Type | Description |
+ | ------- | ------------- |
+ | boolean | Whether the file is a directory.|
**Example**
@@ -2160,9 +2160,9 @@ Checks whether this file is a named pipe (or FIFO). Named pipes are used for int
**Return value**
-| Type | Description |
-| ------- | --------------------- |
-| boolean | Whether the file is a FIFO.|
+ | Type | Description |
+ | ------- | --------------------- |
+ | boolean | Whether the file is a FIFO.|
**Example**
@@ -2182,9 +2182,9 @@ Checks whether this file is a regular file.
**Return value**
-| Type | Description |
-| ------- | --------------- |
-| boolean | Whether the file is a regular file.|
+ | Type | Description |
+ | ------- | --------------- |
+ | boolean | Whether the file is a regular file.|
**Example**
@@ -2204,9 +2204,9 @@ Checks whether this file is a socket.
**Return value**
-| Type | Description |
-| ------- | -------------- |
-| boolean | Whether the file is a socket.|
+ | Type | Description |
+ | ------- | -------------- |
+ | boolean | Whether the file is a socket.|
**Example**
@@ -2226,9 +2226,9 @@ Checks whether this file is a symbolic link.
**Return value**
-| Type | Description |
-| ------- | --------------- |
-| boolean | Whether the file is a symbolic link.|
+ | Type | Description |
+ | ------- | --------------- |
+ | boolean | Whether the file is a symbolic link.|
**Example**
@@ -2252,9 +2252,9 @@ Closes the stream. This API uses a promise to return the result.
**Return value**
-| Type | Description |
-| ------------------- | ------------- |
-| Promise<void> | Promise used to return the stream close result.|
+ | Type | Description |
+ | ------------------- | ------------- |
+ | Promise<void> | Promise used to return the stream close result.|
**Example**
@@ -2279,9 +2279,9 @@ Closes the stream. This API uses an asynchronous callback to return the result.
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | ------------------------- | ---- | ------------- |
-| callback | AsyncCallback<void> | Yes | Callback invoked when the stream is closed asynchronously.|
+ | Name | Type | Mandatory | Description |
+ | -------- | ------------------------- | ---- | ------------- |
+ | callback | AsyncCallback<void> | Yes | Callback invoked when the stream is closed asynchronously.|
**Example**
@@ -2323,9 +2323,9 @@ Flushes the stream. This API uses a promise to return the result.
**Return value**
-| Type | Description |
-| ------------------- | ------------- |
-| Promise<void> | Promise used to return the stream flushing result.|
+ | Type | Description |
+ | ------------------- | ------------- |
+ | Promise<void> | Promise used to return the stream flushing result.|
**Example**
@@ -2350,9 +2350,9 @@ Flushes the stream. This API uses an asynchronous callback to return the result.
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | ------------------------- | ---- | -------------- |
-| callback | AsyncCallback<void> | Yes | Callback invoked when the stream is asynchronously flushed.|
+ | Name | Type | Mandatory | Description |
+ | -------- | ------------------------- | ---- | -------------- |
+ | callback | AsyncCallback<void> | Yes | Callback invoked when the stream is asynchronously flushed.|
**Example**
@@ -2394,16 +2394,16 @@ Writes data into the stream. This API uses a promise to return the result.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ------- | ------------------------------- | ---- | ---------------------------------------- |
-| buffer | ArrayBuffer\|string | Yes | Data to write. It can be a string or data from a buffer. |
-| options | Object | No | The options are as follows: - **length** (number): length of the data to write. The default value is the buffer length. - **offset** (number): start position to write the data in the file. This parameter is optional. By default, data is written from the current position. - **encoding** (string): format of the data to be encoded when the data is a string. The default value is **'utf-8'**, which is the only value supported.|
+ | Name | Type | Mandatory | Description |
+ | ------- | ------------------------------- | ---- | ---------------------------------------- |
+ | buffer | ArrayBuffer\|string | Yes | Data to write. It can be a string or data from a buffer. |
+ | options | Object | No | The options are as follows: - **length** (number): length of the data to write. The default value is the buffer length. - **offset** (number): start position to write the data in the file. This parameter is optional. By default, data is written from the current position. - **encoding** (string): format of the data to be encoded when the data is a string. The default value is **'utf-8'**, which is the only value supported.|
**Return value**
-| Type | Description |
-| --------------------- | -------- |
-| Promise<number> | Promise used to return the length of the data written.|
+ | Type | Description |
+ | --------------------- | -------- |
+ | Promise<number> | Promise used to return the length of the data written.|
**Example**
@@ -2428,11 +2428,11 @@ Writes data into the stream. This API uses an asynchronous callback to return th
**Parameters**
-| Name | Type | Mandatory| Description |
-| -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
-| buffer | ArrayBuffer\|string | Yes | Data to write. It can be a string or data from a buffer. |
-| options | Object | No | The options are as follows: - **length** (number): length of the data to write. This parameter is optional. The default value is the buffer length. - **offset** (number): start position to write the data in the file. This parameter is optional. By default, data is written from the current position. - **encoding** (string): format of the data to be encoded when the data is a string. The default value is **'utf-8'**, which is the only value supported.|
-| callback | AsyncCallback<number> | Yes | Callback invoked when the data is written asynchronously. |
+ | Name | Type | Mandatory| Description |
+ | -------- | ------------------------------- | ---- | ------------------------------------------------------------ |
+ | buffer | ArrayBuffer\|string | Yes | Data to write. It can be a string or data from a buffer. |
+ | options | Object | No | The options are as follows: - **length** (number): length of the data to write. This parameter is optional. The default value is the buffer length. - **offset** (number): start position to write the data in the file. This parameter is optional. By default, data is written from the current position. - **encoding** (string): format of the data to be encoded when the data is a string. The default value is **'utf-8'**, which is the only value supported.|
+ | callback | AsyncCallback<number> | Yes | Callback invoked when the data is written asynchronously. |
**Example**
@@ -2460,16 +2460,16 @@ Synchronously writes data into the stream.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ------- | ------------------------------- | ---- | ---------------------------------------- |
-| buffer | ArrayBuffer\|string | Yes | Data to write. It can be a string or data from a buffer. |
-| options | Object | No | The options are as follows: - **length** (number): length of the data to write. This parameter is optional. The default value is the buffer length. - **offset** (number): start position to write the data in the file. This parameter is optional. By default, data is written from the current position. - **encoding** (string): format of the data to be encoded when the data is a string. The default value is **'utf-8'**, which is the only value supported.|
+ | Name | Type | Mandatory | Description |
+ | ------- | ------------------------------- | ---- | ---------------------------------------- |
+ | buffer | ArrayBuffer\|string | Yes | Data to write. It can be a string or data from a buffer. |
+ | options | Object | No | The options are as follows: - **length** (number): length of the data to write. This parameter is optional. The default value is the buffer length. - **offset** (number): start position to write the data in the file. This parameter is optional. By default, data is written from the current position. - **encoding** (string): format of the data to be encoded when the data is a string. The default value is **'utf-8'**, which is the only value supported.|
**Return value**
-| Type | Description |
-| ------ | -------- |
-| number | Length of the data written in the file.|
+ | Type | Description |
+ | ------ | -------- |
+ | number | Length of the data written in the file.|
**Example**
@@ -2489,16 +2489,16 @@ Reads data from the stream. This API uses a promise to return the result.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ------- | ----------- | ---- | ---------------------------------------- |
-| buffer | ArrayBuffer | Yes | Buffer used to store the file read. |
-| options | Object | No | The options are as follows: - **length** (number): length of the data to read. This parameter is optional. The default value is the buffer length. - **offset** (number): position of the data to read in the file. By default, data is read from the current position.|
+ | Name | Type | Mandatory | Description |
+ | ------- | ----------- | ---- | ---------------------------------------- |
+ | buffer | ArrayBuffer | Yes | Buffer used to store the file read. |
+ | options | Object | No | The options are as follows: - **length** (number): length of the data to read. This parameter is optional. The default value is the buffer length. - **offset** (number): position of the data to read in the file. By default, data is read from the current position.|
**Return value**
-| Type | Description |
-| ---------------------------------- | ------ |
-| Promise<number> | Promise used to return the data read.|
+ | Type | Description |
+ | ---------------------------------- | ------ |
+ | Promise<number> | Promise used to return the data read.|
**Example**
@@ -2525,11 +2525,11 @@ Reads data from the stream. This API uses an asynchronous callback to return the
**Parameters**
-| Name | Type | Mandatory | Description |
-| -------- | ---------------------------------------- | ---- | ---------------------------------------- |
-| buffer | ArrayBuffer | Yes | Buffer used to store the file read. |
-| options | Object | No | The options are as follows: - **length** (number): length of the data to read. This parameter is optional. The default value is the buffer length. - **offset** (number): position of the data to read in the file. This parameter is optional. By default, data is read from the current position.|
-| callback | AsyncCallback<number> | Yes | Callback invoked when data is read asynchronously from the stream. |
+ | Name | Type | Mandatory | Description |
+ | -------- | ---------------------------------------- | ---- | ---------------------------------------- |
+ | buffer | ArrayBuffer | Yes | Buffer used to store the file read. |
+ | options | Object | No | The options are as follows: - **length** (number): length of the data to read. This parameter is optional. The default value is the buffer length. - **offset** (number): position of the data to read in the file. This parameter is optional. By default, data is read from the current position.|
+ | callback | AsyncCallback<number> | Yes | Callback invoked when data is read asynchronously from the stream. |
**Example**
@@ -2557,16 +2557,16 @@ Synchronously reads data from the stream.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ------- | ----------- | ---- | ---------------------------------------- |
-| buffer | ArrayBuffer | Yes | Buffer used to store the file read. |
-| options | Object | No | The options are as follows: - **length** (number): length of the data to read. This parameter is optional. The default value is the buffer length. - **offset** (number): position of the data to read in the file. This parameter is optional. By default, data is read from the current position. |
+ | Name | Type | Mandatory | Description |
+ | ------- | ----------- | ---- | ---------------------------------------- |
+ | buffer | ArrayBuffer | Yes | Buffer used to store the file read. |
+ | options | Object | No | The options are as follows: - **length** (number): length of the data to read. This parameter is optional. The default value is the buffer length. - **offset** (number): position of the data to read in the file. This parameter is optional. By default, data is read from the current position. |
**Return value**
-| Type | Description |
-| ------ | -------- |
-| number | Length of the data read.|
+ | Type | Description |
+ | ------ | -------- |
+ | number | Length of the data read.|
**Example**
@@ -2598,15 +2598,15 @@ Applies an exclusive lock or a shared lock on this file in blocking mode. This A
**Parameters**
-| Name | Type | Mandatory | Description |
-| ------- | ----------- | ---- | ---------------------------------------- |
-| exclusive | boolean | No | Lock to apply. The value **true** means an exclusive lock, and the value **false** (default) means a shared lock. |
+ | Name | Type | Mandatory | Description |
+ | ------- | ----------- | ---- | ---------------------------------------- |
+ | exclusive | boolean | No | Lock to apply. The value **true** means an exclusive lock, and the value **false** (default) means a shared lock. |
**Return value**
-| Type | Description |
-| ---------------------------------- | ------ |
-| Promise<void> | Promise that returns no value.|
+ | Type | Description |
+ | ---------------------------------- | ------ |
+ | Promise<void> | Promise that returns no value.|
**Example**
@@ -2629,10 +2629,10 @@ Applies an exclusive lock or a shared lock on this file in blocking mode. This A
**Parameters**
-| Name | Type | Mandatory | Description |
-| ------- | ----------- | ---- | ---------------------------------------- |
-| exclusive | boolean | No | Lock to apply. The value **true** means an exclusive lock, and the value **false** (default) means a shared lock. |
-| callback | AsyncCallback<void> | Yes | Callback invoked when the file is locked. |
+ | Name | Type | Mandatory | Description |
+ | ------- | ----------- | ---- | ---------------------------------------- |
+ | exclusive | boolean | No | Lock to apply. The value **true** means an exclusive lock, and the value **false** (default) means a shared lock. |
+ | callback | AsyncCallback<void> | Yes | Callback invoked when the file is locked. |
**Example**
@@ -2657,9 +2657,9 @@ Applies an exclusive lock or a shared lock on this file in non-blocking mode.
**Parameters**
-| Name | Type | Mandatory | Description |
-| ------- | ----------- | ---- | ---------------------------------------- |
-| exclusive | boolean | No | Lock to apply. The value **true** means an exclusive lock, and the value **false** (default) means a shared lock. |
+ | Name | Type | Mandatory | Description |
+ | ------- | ----------- | ---- | ---------------------------------------- |
+ | exclusive | boolean | No | Lock to apply. The value **true** means an exclusive lock, and the value **false** (default) means a shared lock. |
**Example**
diff --git a/en/application-dev/reference/apis/js-apis-fileAccess.md b/en/application-dev/reference/apis/js-apis-fileAccess.md
index 1532556e3516f3fa91b911ac74dd33e72caff7bb..6238db4bd28dd10cb7ac75014778827eda399f4f 100644
--- a/en/application-dev/reference/apis/js-apis-fileAccess.md
+++ b/en/application-dev/reference/apis/js-apis-fileAccess.md
@@ -211,7 +211,6 @@ Obtains information about the device root nodes of the file management service t
getRoots(callback:AsyncCallback<RootIterator>) : void;
Obtains information about the device root nodes of the file management service type connected to the **Helper** object. This API uses an asynchronous callback to return the result.
-
The callback has a **RootIterator** object, which returns [RootInfo](#rootinfo) through [next()](#rootiteratornext).
**System capability**: SystemCapability.FileManagement.UserFileService
@@ -255,7 +254,7 @@ The callback has a **RootIterator** object, which returns [RootInfo](#rootinfo)
listFile(filter?: Filter) : FileIterator
-Synchronously obtains the **FileIterator** object of the first-level files (file directory) matching the conditions of the filter from the device root node. The **FileIterator** object then returns [FileInfo](#fileinfo) by using [next()](#fileiteratornext).
+Synchronously obtains the **FileIterator** object of the first-level files (directory) matching the conditions of the filter from the device root node. The **FileIterator** object then returns [FileInfo](#fileinfo) by using [next()](#fileiteratornext).
**System capability**: SystemCapability.FileManagement.UserFileService
@@ -356,7 +355,7 @@ Recursively obtains the **FileIterator** object of the files matching the condit
listFile(filter?: Filter) : FileIterator
-Synchronously obtains the **FileIterator** object of the next-level files (file directories) matching the conditions of the filter from a directory. The **FileIterator** object then returns [FileInfo](#fileinfo) by using [next()](#fileiteratornext).
+Synchronously obtains the **FileIterator** object of the next-level files (directories) matching the conditions of the filter from a directory. The **FileIterator** object then returns [FileInfo](#fileinfo) by using [next()](#fileiteratornext).
**System capability**: SystemCapability.FileManagement.UserFileService
diff --git a/en/application-dev/reference/apis/js-apis-freeInstall.md b/en/application-dev/reference/apis/js-apis-freeInstall.md
index 73d618e2f6eeed9df97b72dd4df8ba5839b1864c..937cc8437c21d80b54b241d746803e0aae9d4f18 100644
--- a/en/application-dev/reference/apis/js-apis-freeInstall.md
+++ b/en/application-dev/reference/apis/js-apis-freeInstall.md
@@ -267,7 +267,7 @@ Obtains **bundlePackInfo** based on **bundleName** and **bundlePackFlag**. This
| -------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
| bundleName | string | Yes | Bundle name. |
| bundlePackFlag | [BundlePackFlag](#bundlepackflag) | Yes | Flag of the bundle package. |
-| callback | AsyncCallback<[BundlePackInfo](js-apis-bundleManager-packInfo.md)> | Yes | Callback used to return the result. If the operation is successful, **err** is **null** and **data** is the **BundlePackInfo** object obtained; otherwise, **err** is an error object.|
+| callback | AsyncCallback<[BundlePackInfo](js-apis-bundleManager-BundlePackInfo.md)> | Yes | Callback used to return the result. If the operation is successful, **err** is **null** and **data** is the **BundlePackInfo** object obtained; otherwise, **err** is an error object.|
**Error codes**
@@ -318,7 +318,7 @@ Obtains **bundlePackInfo** based on **bundleName** and **bundleFlag**. This API
| Type | Description |
| ---------------------------------------------------------- | ----------------------------------- |
-| Promise<[BundlePackInfo](js-apis-bundleManager-packInfo.md)> | Promise used to return the **BundlePackInfo** object obtained.|
+| Promise<[BundlePackInfo](js-apis-bundleManager-BundlePackInfo.md)> | Promise used to return the **BundlePackInfo** object obtained.|
**Error codes**
diff --git a/en/application-dev/reference/apis/js-apis-hashmap.md b/en/application-dev/reference/apis/js-apis-hashmap.md
index d39dbd1e6649359d5e6433fe11b0a2d68febf953..807394ad4538e34997ac5b5eb917e47aad295161 100644
--- a/en/application-dev/reference/apis/js-apis-hashmap.md
+++ b/en/application-dev/reference/apis/js-apis-hashmap.md
@@ -1,8 +1,5 @@
# @ohos.util.HashMap (Nonlinear Container HashMap)
-> **NOTE**
-> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
-
**HashMap** is a map implemented based on the array, linked list, and red-black tree. It provides efficient data query, insertion, and removal. The elements in a **HashMap** instance are mappings of key-value pairs. Each key must be unique and have only one value.
**HashMap** is faster in accessing data than **[TreeMap](js-apis-treemap.md)**, because the former accesses the keys based on the hash codes, whereas the latter stores and accesses the keys in sorted order.
@@ -15,6 +12,11 @@ This topic uses the following to identify the use of generics:
- K: Key
- V: Value
+> **NOTE**
+>
+> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
+
## Modules to Import
```ts
@@ -482,7 +484,7 @@ let hashMap = new HashMap();
hashMap.set("sparrow", 123);
hashMap.set("gull", 357);
hashMap.forEach((value, key) => {
- console.log("value:" + value, key);
+ console.log("value:" + value, "key:" + key);
});
```
diff --git a/en/application-dev/reference/apis/js-apis-hashset.md b/en/application-dev/reference/apis/js-apis-hashset.md
index f2ece05248321395e2ca3f651ff32a462503d5c4..8d21ef6d1994144aeb89be8d226ef041bdbdb95a 100644
--- a/en/application-dev/reference/apis/js-apis-hashset.md
+++ b/en/application-dev/reference/apis/js-apis-hashset.md
@@ -305,7 +305,7 @@ let hashSet = new HashSet();
hashSet.add("sparrow");
hashSet.add("squirrel");
hashSet.forEach((value, key) => {
- console.log("value:" + value, key);
+ console.log("value:" + value, "key:" + key);
});
```
diff --git a/en/application-dev/reference/apis/js-apis-http.md b/en/application-dev/reference/apis/js-apis-http.md
index 3735792dd3f5ce66569fbebf3a1036019e7457ed..1a78a92b3269530da9ccf5794254f4a07ea326ed 100644
--- a/en/application-dev/reference/apis/js-apis-http.md
+++ b/en/application-dev/reference/apis/js-apis-http.md
@@ -581,6 +581,8 @@ httpResponseCache.delete().then(() => {
| 6 | Unable to resolve the host because of a failure to resolve the specified remote host. You are advised perform the following: 1. Check whether the URL is correct. 2. Check whether the network connection is normal and whether the network can communicate with external networks. 3. Check whether the network access permission is available. |
| 7 | Unable to connect to the proxy or host. You are advised perform the following: 1. Check whether the port number is correct. 2. Check whether the HTTP proxy is enabled on the local host. |
+For details about the error codes, see [Curl Error Codes] (https://curl.se/libcurl/c/libcurl-errors.html).
+
## HttpDataType9+
Enumerates HTTP data types.
diff --git a/en/application-dev/reference/apis/js-apis-i18n.md b/en/application-dev/reference/apis/js-apis-i18n.md
index cda33f5434360fe5ca3f21f9f2c0a04ad5b50474..02cebd741ce26bd61dd4a4282efcf2cc6d89ad08 100644
--- a/en/application-dev/reference/apis/js-apis-i18n.md
+++ b/en/application-dev/reference/apis/js-apis-i18n.md
@@ -1,6 +1,6 @@
# @ohos.i18n (Internationalization)
-The **i18n** module provides system-related or enhanced i18n capabilities, such as locale management, phone number formatting, and calendar, through supplementary i18n APIs that are not defined in ECMA 402.
+ The **i18n** module provides system-related or enhanced i18n capabilities, such as locale management, phone number formatting, and calendar, through supplementary i18n APIs that are not defined in ECMA 402.
The [intl](js-apis-intl.md) module provides basic i18n capabilities through the standard i18n APIs defined in ECMA 402. It works with the i18n module to provide a complete suite of i18n capabilities.
> **NOTE**
@@ -53,7 +53,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
try {
let displayCountry = I18n.System.getDisplayCountry("zh-CN", "en-GB"); // displayCountry = "China"
} catch(error) {
- console.error(`call System.getDisplayCountry failed, error code: ${error.code}, message: ${error.message}.`)
+ console.error(`call System.getDisplayCountry failed, error code: ${error.code}, message: ${error.message}.`);
}
```
@@ -92,7 +92,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
try {
let displayLanguage = I18n.System.getDisplayLanguage("zh", "en-GB"); // displayLanguage = Chinese
} catch(error) {
- console.error(`call System.getDisplayLanguage failed, error code: ${error.code}, message: ${error.message}.`)
+ console.error(`call System.getDisplayLanguage failed, error code: ${error.code}, message: ${error.message}.`);
}
```
@@ -100,7 +100,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
static getSystemLanguages(): Array<string>
-Obtains the list of system languages.
+Obtains the list of system languages. For details about languages, see [Instantiating the Locale Object](../../internationalization/intl-guidelines.md#how-to-develop).
**System capability**: SystemCapability.Global.I18n
@@ -123,7 +123,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
try {
let systemLanguages = I18n.System.getSystemLanguages(); // [ "en-Latn-US", "zh-Hans" ]
} catch(error) {
- console.error(`call System.getSystemLanguages failed, error code: ${error.code}, message: ${error.message}.`)
+ console.error(`call System.getSystemLanguages failed, error code: ${error.code}, message: ${error.message}.`);
}
```
@@ -131,7 +131,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
static getSystemCountries(language: string): Array<string>
-Obtains the list of countries and regions supported for the specified language.
+Obtains the list of countries and regions supported for the specified language. For details about countries or regions, see [Instantiating the Locale Object](../../internationalization/intl-guidelines.md#how-to-develop).
**System capability**: SystemCapability.Global.I18n
@@ -160,7 +160,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
try {
let systemCountries = I18n.System.getSystemCountries('zh'); // systemCountries = [ "ZW", "YT", "YE", ..., "ER", "CN", "DE" ], 240 countries or regions in total
} catch(error) {
- console.error(`call System.getSystemCountries failed, error code: ${error.code}, message: ${error.message}.`)
+ console.error(`call System.getSystemCountries failed, error code: ${error.code}, message: ${error.message}.`);
}
```
@@ -198,7 +198,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
try {
let res = I18n.System.isSuggested('zh', 'CN'); // res = true
} catch(error) {
- console.error(`call System.isSuggested failed, error code: ${error.code}, message: ${error.message}.`)
+ console.error(`call System.isSuggested failed, error code: ${error.code}, message: ${error.message}.`);
}
```
@@ -206,7 +206,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
static getSystemLanguage(): string
-Obtains the system language.
+Obtains the system language. For details about languages, see [Instantiating the Locale Object](../../internationalization/intl-guidelines.md#how-to-develop).
**System capability**: SystemCapability.Global.I18n
@@ -229,7 +229,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
try {
let systemLanguage = I18n.System.getSystemLanguage(); // systemLanguage indicates the current system language.
} catch(error) {
- console.error(`call System.getSystemLanguage failed, error code: ${error.code}, message: ${error.message}.`)
+ console.error(`call System.getSystemLanguage failed, error code: ${error.code}, message: ${error.message}.`);
}
```
@@ -264,7 +264,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
try {
I18n.System.setSystemLanguage('zh'); // Set the current system language to zh.
} catch(error) {
- console.error(`call System.setSystemLanguage failed, error code: ${error.code}, message: ${error.message}.`)
+ console.error(`call System.setSystemLanguage failed, error code: ${error.code}, message: ${error.message}.`);
}
```
@@ -272,7 +272,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
static getSystemRegion(): string
-Obtains the system region.
+Obtains the system region. For details about system regions, see [Instantiating the Locale Object](../../internationalization/intl-guidelines.md#how-to-develop).
**System capability**: SystemCapability.Global.I18n
@@ -295,7 +295,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
try {
let systemRegion = I18n.System.getSystemRegion(); // Obtain the current system region.
} catch(error) {
- console.error(`call System.getSystemRegion failed, error code: ${error.code}, message: ${error.message}.`)
+ console.error(`call System.getSystemRegion failed, error code: ${error.code}, message: ${error.message}.`);
}
```
@@ -330,7 +330,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
try {
I18n.System.setSystemRegion('CN'); // Set the current system region to CN.
} catch(error) {
- console.error(`call System.setSystemRegion failed, error code: ${error.code}, message: ${error.message}.`)
+ console.error(`call System.setSystemRegion failed, error code: ${error.code}, message: ${error.message}.`);
}
```
@@ -338,7 +338,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
static getSystemLocale(): string
-Obtains the system locale.
+Obtains the system locale. For details about system locales, see [Instantiating the Locale Object](../../internationalization/intl-guidelines.md#how-to-develop).
**System capability**: SystemCapability.Global.I18n
@@ -361,7 +361,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
try {
let systemLocale = I18n.System.getSystemLocale(); // Obtain the current system locale.
} catch(error) {
- console.error(`call System.getSystemLocale failed, error code: ${error.code}, message: ${error.message}.`)
+ console.error(`call System.getSystemLocale failed, error code: ${error.code}, message: ${error.message}.`);
}
```
@@ -396,7 +396,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
try {
I18n.System.setSystemLocale('zh-CN'); // Set the current system locale to zh-CN.
} catch(error) {
- console.error(`call System.setSystemLocale failed, error code: ${error.code}, message: ${error.message}.`)
+ console.error(`call System.setSystemLocale failed, error code: ${error.code}, message: ${error.message}.`);
}
```
@@ -427,7 +427,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
try {
let is24HourClock = I18n.System.is24HourClock(); // Check whether the 24-hour clock is enabled.
} catch(error) {
- console.error(`call System.is24HourClock failed, error code: ${error.code}, message: ${error.message}.`)
+ console.error(`call System.is24HourClock failed, error code: ${error.code}, message: ${error.message}.`);
}
```
@@ -463,7 +463,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
try {
I18n.System.set24HourClock(true);
} catch(error) {
- console.error(`call System.set24HourClock failed, error code: ${error.code}, message: ${error.message}.`)
+ console.error(`call System.set24HourClock failed, error code: ${error.code}, message: ${error.message}.`);
}
```
@@ -502,7 +502,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
try {
I18n.System.addPreferredLanguage(language, index); // Add zh-CN to the first place in the preferred language list.
} catch(error) {
- console.error(`call System.addPreferredLanguage failed, error code: ${error.code}, message: ${error.message}.`)
+ console.error(`call System.addPreferredLanguage failed, error code: ${error.code}, message: ${error.message}.`);
}
```
@@ -539,7 +539,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
try {
I18n.System.removePreferredLanguage(index);
} catch(error) {
- console.error(`call System.removePreferredLanguage failed, error code: ${error.code}, message: ${error.message}.`)
+ console.error(`call System.removePreferredLanguage failed, error code: ${error.code}, message: ${error.message}.`);
}
```
@@ -570,7 +570,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
try {
let preferredLanguageList = I18n.System.getPreferredLanguageList(); // Obtain the current preferred language list.
} catch(error) {
- console.error(`call System.getPreferredLanguageList failed, error code: ${error.code}, message: ${error.message}.`)
+ console.error(`call System.getPreferredLanguageList failed, error code: ${error.code}, message: ${error.message}.`);
}
```
@@ -601,7 +601,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
try {
let firstPreferredLanguage = I18n.System.getFirstPreferredLanguage(); // Obtain the first language in the preferred language list.
} catch(error) {
- console.error(`call System.getFirstPreferredLanguage failed, error code: ${error.code}, message: ${error.message}.`)
+ console.error(`call System.getFirstPreferredLanguage failed, error code: ${error.code}, message: ${error.message}.`);
}
```
@@ -632,7 +632,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
try {
let appPreferredLanguage = I18n.System.getAppPreferredLanguage(); // Obtain the preferred language of an application.
} catch(error) {
- console.error(`call System.getAppPreferredLanguage failed, error code: ${error.code}, message: ${error.message}.`)
+ console.error(`call System.getAppPreferredLanguage failed, error code: ${error.code}, message: ${error.message}.`);
}
```
@@ -640,7 +640,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
static setUsingLocalDigit(flag: boolean): void
-Sets whether to enable the local digit switch.
+Specifies whether to enable use of local digits.
**System API**: This is a system API.
@@ -667,7 +667,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
try {
I18n.System.setUsingLocalDigit(true); // Enable the local digit switch.
} catch(error) {
- console.error(`call System.setUsingLocalDigit failed, error code: ${error.code}, message: ${error.message}.`)
+ console.error(`call System.setUsingLocalDigit failed, error code: ${error.code}, message: ${error.message}.`);
}
```
@@ -675,7 +675,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
static getUsingLocalDigit(): boolean
-Checks whether the local digit switch is turned on.
+Checks whether use of local digits is enabled.
**System capability**: SystemCapability.Global.I18n
@@ -698,7 +698,7 @@ For details about the error codes, see [i18n Error Codes](../errorcodes/errorcod
try {
let status = I18n.System.getUsingLocalDigit(); // Check whether the local digit switch is enabled.
} catch(error) {
- console.error(`call System.getUsingLocalDigit failed, error code: ${error.code}, message: ${error.message}.`)
+ console.error(`call System.getUsingLocalDigit failed, error code: ${error.code}, message: ${error.message}.`);
}
```
@@ -1025,7 +1025,7 @@ Checks whether the specified date in this **Calendar** object is a weekend.
| Name | Type | Mandatory | Description |
| ---- | ---- | ---- | ---------------------------------------- |
-| date | Date | No | Specified date in this **Calendar** object. If this parameter is left unspecified, the system checks whether the current date in the **Calendar** object is a weekend.|
+| date | Date | No | Specified date in this **Calendar** object. If the **date** parameter is not specified, the system checks whether the current date is a weekend.|
**Return value**
diff --git a/en/application-dev/reference/apis/js-apis-inner-ability-want.md b/en/application-dev/reference/apis/js-apis-inner-ability-want.md
index dd1a489ac590c1be8c182532aa875ef13b1e6103..c71633638b2339f0457234c4d49a28330969a483 100644
--- a/en/application-dev/reference/apis/js-apis-inner-ability-want.md
+++ b/en/application-dev/reference/apis/js-apis-inner-ability-want.md
@@ -15,10 +15,10 @@ Want is a carrier for information transfer between objects (application componen
| abilityName | string | No | Name of the ability. If both **bundleName** and **abilityName** are specified in a **Want** object, the **Want** object can match a specific ability. The value of **abilityName** must be unique in an application.|
| uri | string | No | URI. If **uri** is specified in a **Want** object, the **Want** object will match the specified URI information, including **scheme**, **schemeSpecificPart**, **authority**, and **path**.|
| type | string | No | MIME type, that is, the type of the file to open, for example, **'text/xml'** and **'image/*'**. For details about the MIME type definition, see https://www.iana.org/assignments/media-types/media-types.xhtml?utm_source=ld246.com. |
-| flags | number | No | How the **Want** object will be handled. By default, numbers are passed in. For details, see [flags](js-apis-ability-wantConstant.md#wantconstantflags). |
-| action | string | No | Action to take, such as viewing and sharing application details. In implicit Want, you can define this field and use it together with **uri** or **parameters** to specify the operation to be performed on the data. For details, see [action](js-apis-app-ability-wantConstant.md#wantconstantaction). For details about the definition and matching rules of implicit Want, see [Matching Rules of Explicit Want and Implicit Want](application-models/explicit-implicit-want-mappings.md). |
+| flags | number | No | How the **Want** object will be handled. By default, numbers are passed in. For details, see [flags](js-apis-ability-wantConstant.md#wantConstant.Flags).|
+| action | string | No | Action to take, such as viewing and sharing application details. In implicit Want, you can define this field and use it together with **uri** or **parameters** to specify the operation to be performed on the data. For details, see [action](js-apis-app-ability-wantConstant.md#wantConstant.Action). For details about the definition and matching rules of implicit Want, see [Matching Rules of Explicit Want and Implicit Want](application-models/explicit-implicit-want-mappings.md). |
| parameters | {[key: string]: any} | No | Want parameters in the form of custom key-value (KV) pairs. By default, the following keys are carried: **ohos.aafwk.callerPid**: PID of the caller. **ohos.aafwk.param.callerToken**: token of the caller. **ohos.aafwk.param.callerUid**: UID in [bundleInfo](js-apis-bundle-BundleInfo.md#bundleinfo-1), that is, the application UID in the bundle information. - **component.startup.newRules**: whether to enable the new control rule. - **moduleName**: module name of the caller. No matter what this field is set to, the correct module name will be sent to the peer. - **ohos.dlp.params.sandbox**: available only for DLP files. |
-| entities | Array\ | No | Additional category information (such as browser and video player) of the target ability. It is a supplement to **action** in implicit Want and is used to filter ability types. For details, see [entity](js-apis-app-ability-wantConstant.md#wantconstantentity). |
+| entities | Array\ | No | Additional category information (such as browser and video player) of the target ability. It is a supplement to **action** in implicit Want and is used to filter ability types. For details, see [entity](js-apis-app-ability-wantConstant.md#wantConstant.Entity). |
| moduleName9+ | string | No | Module to which the ability belongs.|
**Example**
@@ -34,7 +34,7 @@ Want is a carrier for information transfer between objects (application componen
};
this.context.startAbility(want, (error) => {
// Start an ability explicitly. The bundleName, abilityName, and moduleName parameters work together to uniquely identify an ability.
- console.log('error.code = ${error.code}');
+ console.error('error.code = ${error.code}');
});
```
@@ -48,7 +48,7 @@ Want is a carrier for information transfer between objects (application componen
try {
fd = fileio.openSync('/data/storage/el2/base/haps/pic.png');
} catch(e) {
- console.log('openSync fail: ${JSON.stringify(e)}');
+ console.error('openSync fail: ${JSON.stringify(e)}');
}
let want = {
'deviceId': '', // An empty deviceId indicates the local device.
@@ -61,11 +61,11 @@ Want is a carrier for information transfer between objects (application componen
};
this.context.startAbility(want, (error) => {
// Start an ability explicitly. The bundleName, abilityName, and moduleName parameters work together to uniquely identify an ability.
- console.log('error.code = ${error.code}');
+ console.error('error.code = ${error.code}');
});
// ...
```
- For more details and examples, see [Want](../../application-models/want-overview.md).
-
+
diff --git a/en/application-dev/reference/apis/js-apis-inner-application-WorkSchedulerExtensionContext.md b/en/application-dev/reference/apis/js-apis-inner-application-WorkSchedulerExtensionContext.md
new file mode 100644
index 0000000000000000000000000000000000000000..ff2ca7a3df236c2bf50ab883de28cae0b0599259
--- /dev/null
+++ b/en/application-dev/reference/apis/js-apis-inner-application-WorkSchedulerExtensionContext.md
@@ -0,0 +1,24 @@
+# WorkSchedulerExtensionContext
+
+The **WorkSchedulerExtensionContext** module, inherited from [ExtensionContext](js-apis-inner-application-extensionContext.md), is the context environment of the WorkSchedulerExtensionAbility.
+
+This module provides APIs for accessing the resources of a WorkSchedulerExtensionAbility.
+
+> **NOTE**
+>
+> The initial APIs of this module are supported since API version 10. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+> The APIs of this module can be used only in the stage model.
+
+## Usage
+
+The context is obtained through a WorkSchedulerExtensionAbility child class instance.
+
+```ts
+import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility';
+
+class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility {
+ onWorkStart(workInfo) {
+ let WorkSchedulerExtensionContext = this.context; // Obtain the WorkSchedulerExtensionContext.
+ }
+}
+```
diff --git a/en/application-dev/reference/apis/js-apis-inner-application-abilityDelegator.md b/en/application-dev/reference/apis/js-apis-inner-application-abilityDelegator.md
index 24aef5e428f373b57d1c1208d9005eba1f3b689d..051aa07c40253bc6805c57fcdf65aad84f401713 100644
--- a/en/application-dev/reference/apis/js-apis-inner-application-abilityDelegator.md
+++ b/en/application-dev/reference/apis/js-apis-inner-application-abilityDelegator.md
@@ -38,7 +38,7 @@ Adds an **AbilityMonitor** instance. This API uses an asynchronous callback to r
let abilityDelegator;
function onAbilityCreateCallback(data) {
- console.info('onAbilityCreateCallback');
+ console.info('onAbilityCreateCallback, data: ${JSON.stringify(data)}');
}
let monitor = {
@@ -47,8 +47,8 @@ let monitor = {
};
abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator();
-abilityDelegator.addAbilityMonitor(monitor, (err : any) => {
- console.info('addAbilityMonitor callback');
+abilityDelegator.addAbilityMonitor(monitor, (error : any) => {
+ console.error('addAbilityMonitor fail, error: ${JSON.stringify(error)}');
});
```
@@ -122,8 +122,8 @@ let monitor = {
};
abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator();
-abilityDelegator.removeAbilityMonitor(monitor, (err : any) => {
- console.info('removeAbilityMonitor callback');
+abilityDelegator.removeAbilityMonitor(monitor, (error : any) => {
+ console.error('removeAbilityMonitor fail, error: ${JSON.stringify(error)}');
});
```
@@ -197,8 +197,12 @@ let monitor = {
};
abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator();
-abilityDelegator.waitAbilityMonitor(monitor, (err : any, data : any) => {
- console.info('waitAbilityMonitor callback');
+abilityDelegator.waitAbilityMonitor(monitor, (error : any, data : any) => {
+ if (error && error.code !== 0) {
+ console.error('waitAbilityMonitor fail, error: ${JSON.stringify(error)}');
+ } else {
+ console.log('waitAbilityMonitor success, data: ${JSON.stringify(data)}');
+ }
});
```
@@ -234,8 +238,12 @@ let monitor = {
};
abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator();
-abilityDelegator.waitAbilityMonitor(monitor, timeout, (err : any, data : any) => {
- console.info('waitAbilityMonitor callback');
+abilityDelegator.waitAbilityMonitor(monitor, timeout, (error : any, data : any) => {
+ if (error && error.code !== 0) {
+ console.error('waitAbilityMonitor fail, error: ${JSON.stringify(error)}');
+ } else {
+ console.log('waitAbilityMonitor success, data: ${JSON.stringify(data)}');
+ }
});
```
diff --git a/en/application-dev/reference/apis/js-apis-inner-application-accessibilityExtensionContext.md b/en/application-dev/reference/apis/js-apis-inner-application-accessibilityExtensionContext.md
index 1263f44e2db490c648decd54b93ba831a9a57e72..a24262809348f1a94ce0a8598fdd25e08d7e9302 100644
--- a/en/application-dev/reference/apis/js-apis-inner-application-accessibilityExtensionContext.md
+++ b/en/application-dev/reference/apis/js-apis-inner-application-accessibilityExtensionContext.md
@@ -703,10 +703,10 @@ try {
console.log('get attribute value by name success');
attributeValue = data;
}).catch((err) => {
- console.log('failed to get attribute value, because ${JSON.stringify(err)}');
+ console.error('failed to get attribute value, because ${JSON.stringify(err)}');
});
} catch (exception) {
- console.log('failed to get attribute value, because ${JSON.stringify(exception)}');
+ console.error('failed to get attribute value, because ${JSON.stringify(exception)}');
}
```
## AccessibilityElement.attributeValue
@@ -749,7 +749,7 @@ try {
console.info('get attribute value success');
});
} catch (exception) {
- console.log('failed to get attribute value, because ${JSON.stringify(exception)}');
+ console.error('failed to get attribute value, because ${JSON.stringify(exception)}');
}
```
## actionNames
@@ -775,7 +775,7 @@ rootElement.actionNames().then((data) => {
console.log('get action names success');
actionNames = data;
}).catch((err) => {
- console.log('failed to get action names because ${JSON.stringify(err)}');
+ console.error('failed to get action names because ${JSON.stringify(err)}');
});
```
## actionNames
@@ -843,10 +843,10 @@ try {
rootElement.performAction('action').then((data) => {
console.info('perform action success');
}).catch((err) => {
- console.log('failed to perform action, because ${JSON.stringify(err)}');
+ console.error('failed to perform action, because ${JSON.stringify(err)}');
});
} catch (exception) {
- console.log('failed to perform action, because ${JSON.stringify(exception)}');
+ console.error('failed to perform action, because ${JSON.stringify(exception)}');
}
```
## performAction
@@ -885,7 +885,7 @@ try {
console.info('perform action success');
});
} catch (exception) {
- console.log('failed to perform action, because ${JSON.stringify(exception)}');
+ console.error('failed to perform action, because ${JSON.stringify(exception)}');
}
```
## performAction
@@ -929,7 +929,7 @@ try {
console.info('perform action success');
});
} catch (exception) {
- console.log('failed to perform action, because ${JSON.stringify(exception)}');
+ console.error('failed to perform action, because ${JSON.stringify(exception)}');
}
```
## findElement('content')
@@ -965,10 +965,10 @@ try {
elements = data;
console.log('find element success');
}).catch((err) => {
- console.log('failed to find element, because ${JSON.stringify(err)}');
+ console.error('failed to find element, because ${JSON.stringify(err)}');
});
} catch (exception) {
- console.log('failed to find element, because ${JSON.stringify(exception)}');
+ console.error('failed to find element, because ${JSON.stringify(exception)}');
}
```
## findElement('content')
@@ -1004,7 +1004,7 @@ try {
console.info('find element success');
});
} catch (exception) {
- console.log('failed to find element, because ${JSON.stringify(exception)}');
+ console.error('failed to find element, because ${JSON.stringify(exception)}');
}
```
## findElement('focusType')
@@ -1040,10 +1040,10 @@ try {
element = data;
console.log('find element success');
}).catch((err) => {
- console.log('failed to find element, because ${JSON.stringify(err)}');
+ console.error('failed to find element, because ${JSON.stringify(err)}');
});
} catch (exception) {
- console.log('failed to find element, because ${JSON.stringify(exception)}');
+ console.error('failed to find element, because ${JSON.stringify(exception)}');
}
```
## findElement('focusType')
@@ -1079,7 +1079,7 @@ try {
console.info('find element success');
});
} catch (exception) {
- console.log('failed to find element, because ${JSON.stringify(exception)}');
+ console.error('failed to find element, because ${JSON.stringify(exception)}');
}
```
## findElement('focusDirection')
@@ -1115,10 +1115,10 @@ try {
element = data;
console.log('find element success');
}).catch((err) => {
- console.log('failed to find element, because ${JSON.stringify(err)}');
+ console.error('failed to find element, because ${JSON.stringify(err)}');
});
} catch (exception) {
- console.log('failed to find element, because ${JSON.stringify(exception)}');
+ console.error('failed to find element, because ${JSON.stringify(exception)}');
}
```
## findElement('focusDirection')
@@ -1154,6 +1154,6 @@ try {
console.info('find element success');
});
} catch (exception) {
- console.log('failed to find element, because ${JSON.stringify(exception)}');
+ console.error('failed to find element, because ${JSON.stringify(exception)}');
}
```
diff --git a/en/application-dev/reference/apis/js-apis-inner-application-missionSnapshot.md b/en/application-dev/reference/apis/js-apis-inner-application-missionSnapshot.md
index 6176bd77631cff48db82b5463fe8f55452736cb6..cafe6d2675bfd9fe1deae8d548f4d07dc78f2e9b 100644
--- a/en/application-dev/reference/apis/js-apis-inner-application-missionSnapshot.md
+++ b/en/application-dev/reference/apis/js-apis-inner-application-missionSnapshot.md
@@ -27,7 +27,7 @@ The mission snapshot information can be obtained by using **getMissionSnapShot**
try {
missionManager.getMissionInfos('', 10, (error, missions) => {
if (error.code) {
- console.log('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
+ console.error('getMissionInfos failed, error.code: ${JSON.stringify(error.code)}, error.message: ${JSON.stringify(error.message)}');
return;
}
console.log('size = ${missions.length}');
@@ -36,7 +36,7 @@ The mission snapshot information can be obtained by using **getMissionSnapShot**
missionManager.getMissionSnapShot('', id, (err, snapshot) => {
if (err.code) {
- console.log('getMissionInfos failed, err.code: ${JSON.stringify(err.code)}, err.message: ${JSON.stringify(err.message)}');
+ console.error('getMissionInfos failed, err.code: ${JSON.stringify(err.code)}, err.message: ${JSON.stringify(err.message)}');
return;
}
@@ -45,6 +45,6 @@ The mission snapshot information can be obtained by using **getMissionSnapShot**
});
});
} catch (paramError) {
- console.log('error: ${paramError.code}, ${paramError.message}');
+ console.error('error: ${paramError.code}, ${paramError.message}');
}
```
diff --git a/en/application-dev/reference/apis/js-apis-lightweightmap.md b/en/application-dev/reference/apis/js-apis-lightweightmap.md
index 89893c1c97d183c69765535141b2012fae9e080a..057dc7e3f1f52f8d491ed1edf35037d42c7ee337 100644
--- a/en/application-dev/reference/apis/js-apis-lightweightmap.md
+++ b/en/application-dev/reference/apis/js-apis-lightweightmap.md
@@ -747,7 +747,7 @@ let lightWeightMap = new LightWeightMap();
lightWeightMap.set("sparrow", 123);
lightWeightMap.set("gull", 357);
lightWeightMap.forEach((value, key) => {
- console.log("value:" + value, key);
+ console.log("value:" + value, "key:" + key);
});
```
diff --git a/en/application-dev/reference/apis/js-apis-lightweightset.md b/en/application-dev/reference/apis/js-apis-lightweightset.md
index 25c7950dc4968bc3f9f33ad6b277ecdc68a6ea09..47295b0dd86d5b805607850b92a9692f71940dc7 100644
--- a/en/application-dev/reference/apis/js-apis-lightweightset.md
+++ b/en/application-dev/reference/apis/js-apis-lightweightset.md
@@ -611,7 +611,7 @@ let lightWeightSet = new LightWeightSet();
lightWeightSet.add("sparrow");
lightWeightSet.add("gull");
lightWeightSet.forEach((value, key) => {
- console.log("value:" + value, key);
+ console.log("value:" + value, "key:" + key);
});
```
diff --git a/en/application-dev/reference/apis/js-apis-linkedlist.md b/en/application-dev/reference/apis/js-apis-linkedlist.md
index bc51f25fbb6c54f7fadc6bdd05533113a1c7254c..ceb144301277ac8cdd08f52713ae6cf576817a18 100644
--- a/en/application-dev/reference/apis/js-apis-linkedlist.md
+++ b/en/application-dev/reference/apis/js-apis-linkedlist.md
@@ -1,8 +1,5 @@
# @ohos.util.LinkedList (Linear Container LinkedList)
-> **NOTE**
-> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
-
**LinkedList** is implemented based on the doubly linked list. Each node of the doubly linked list has references pointing to the previous element and the next element. When querying an element, the system traverses the list from the beginning or end. **LinkedList** offers efficient insertion and removal operations but supports low query efficiency. **LinkedList** allows null elements.
Unlike **[List](js-apis-list.md)**, which is a singly linked list, **LinkedList** is a doubly linked list that supports insertion and removal at both ends.
@@ -14,6 +11,11 @@ Unlike **[List](js-apis-list.md)**, which is a singly linked list, **LinkedList*
This topic uses the following to identify the use of generics:
- T: Type
+> **NOTE**
+>
+> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
+
## Modules to Import
```ts
@@ -505,6 +507,7 @@ For details about the error codes, see [Utils Error Codes](../errorcodes/errorco
| -------- | -------- |
| 10200011 | The removeFirstFound method cannot be bound. |
| 10200010 | Container is empty. |
+| 10200017 | The element does not exist in this container. |
**Example**
@@ -545,6 +548,7 @@ For details about the error codes, see [Utils Error Codes](../errorcodes/errorco
| -------- | -------- |
| 10200011 | The removeLastFound method cannot be bound. |
| 10200010 | Container is empty. |
+| 10200017 | The element does not exist in this container. |
**Example**
@@ -631,7 +635,7 @@ linkedList.add(4);
linkedList.add(5);
linkedList.add(4);
linkedList.forEach((value, index) => {
- console.log("value:" + value, index);
+ console.log("value:" + value, "index:" + index);
});
```
diff --git a/en/application-dev/reference/apis/js-apis-list.md b/en/application-dev/reference/apis/js-apis-list.md
index bd1272f3a7a48a47f30ba689ff9df972932727d6..295824f50139aca548f3dcd5952ce75c2bec7cfc 100644
--- a/en/application-dev/reference/apis/js-apis-list.md
+++ b/en/application-dev/reference/apis/js-apis-list.md
@@ -1,8 +1,5 @@
# @ohos.util.List (Linear Container List)
-> **NOTE**
-> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
-
**List** is implemented based on the singly linked list. Each node has a reference pointing to the next element. When querying an element, the system traverses the list from the beginning. **List** offers efficient insertion and removal operations but supports low query efficiency. **List** allows null elements.
Unlike [LinkedList](js-apis-linkedlist.md), which is a doubly linked list, **List** is a singly linked list that does not support insertion or removal at both ends.
@@ -12,6 +9,10 @@ Unlike [LinkedList](js-apis-linkedlist.md), which is a doubly linked list, **Lis
This topic uses the following to identify the use of generics:
- T: Type
+> **NOTE**
+>
+> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
## Modules to Import
```ts
@@ -505,7 +506,7 @@ list.add(4);
list.add(5);
list.add(4);
list.forEach((value, index) => {
- console.log("value: " + value, index);
+ console.log("value:" + value, "index:" + index);
});
```
diff --git a/en/application-dev/reference/apis/js-apis-matrix4.md b/en/application-dev/reference/apis/js-apis-matrix4.md
index 057e05ac3fd59f22e9bcea5b0fd6064142e95602..123602526ffa59a7af9f20c7ee7eb0775ffae0e6 100644
--- a/en/application-dev/reference/apis/js-apis-matrix4.md
+++ b/en/application-dev/reference/apis/js-apis-matrix4.md
@@ -19,7 +19,7 @@ import matrix4 from '@ohos.matrix4'
init(array: Array<number>): Matrix4Transit
-Matrix constructor, which is used to create a 4x4 matrix by using the input parameter. Column-major order is used.
+Matrix constructor, which is used to create a 4 x 4 matrix by using the input parameter. Column-major order is used.
**System capability**: SystemCapability.ArkUI.ArkUI.Full
@@ -33,7 +33,7 @@ Matrix constructor, which is used to create a 4x4 matrix by using the input para
| Type | Description |
| -------------- | ---------------------------- |
-| Matrix4Transit | 4x4 matrix object created based on the input parameter.|
+| Matrix4Transit | 4 x 4 matrix object created based on the input parameter.|
**array** parameters
@@ -458,7 +458,7 @@ struct Test {
.width('600px')
.height('300px')
.margin({ top: 50 })
- Text(`Coordinates before matrix transformation: [${this.transformPoint}]`)
+ Text(`Coordinates after matrix transformation: [${this.transformPoint}]`)
.fontSize(16)
.margin({ top: 100 })
Image($r("app.media.image"))
diff --git a/en/application-dev/reference/apis/js-apis-media.md b/en/application-dev/reference/apis/js-apis-media.md
index 5a1dcff96d3f5d3c7e2dc1beeb8038e3b68bb46c..3d29422be8cb7f4c363d3272fa1d00dae4019bc9 100644
--- a/en/application-dev/reference/apis/js-apis-media.md
+++ b/en/application-dev/reference/apis/js-apis-media.md
@@ -1162,7 +1162,7 @@ Unsubscribes from the event that checks whether the bit rate is successfully set
| Name| Type | Mandatory| Description |
| ------ | ------ | ---- | ------------------------------------------------------------ |
-| type | string | Yes | Event type, which is **'bitrateDone'** in this case|
+| type | string | Yes | Event type, which is **'bitrateDone'** in this case.|
**Example**
@@ -1720,13 +1720,14 @@ For details about the error codes, see [Media Error Codes](../errorcodes/errorco
**Example**
```js
+// Configure the parameters based on those supported by the hardware device.
let AVRecorderProfile = {
audioBitrate : 48000,
audioChannels : 2,
audioCodec : media.CodecMimeType.AUDIO_AAC,
audioSampleRate : 48000,
fileFormat : media.ContainerFormatType.CFT_MPEG_4,
- videoBitrate : 48000,
+ videoBitrate : 2000000,
videoCodec : media.CodecMimeType.VIDEO_MPEG4,
videoFrameWidth : 640,
videoFrameHeight : 480,
@@ -1790,13 +1791,14 @@ For details about the error codes, see [Media Error Codes](../errorcodes/errorco
**Example**
```js
+// Configure the parameters based on those supported by the hardware device.
let AVRecorderProfile = {
audioBitrate : 48000,
audioChannels : 2,
audioCodec : media.CodecMimeType.AUDIO_AAC,
audioSampleRate : 48000,
fileFormat : media.ContainerFormatType.CFT_MPEG_4,
- videoBitrate : 48000,
+ videoBitrate : 2000000,
videoCodec : media.CodecMimeType.VIDEO_MPEG4,
videoFrameWidth : 640,
videoFrameHeight : 480,
@@ -2484,7 +2486,7 @@ Describes the audio and video recording parameters.
| audioSourceType | [AudioSourceType](#audiosourcetype9) | No | Type of the audio source to record. This parameter is mandatory for audio recording. |
| videoSourceType | [VideoSourceType](#videosourcetype9) | No | Type of the video source to record. This parameter is mandatory for video recording. |
| profile | [AVRecorderProfile](#avrecorderprofile9) | Yes | Recording profile. This parameter is mandatory. |
-| url | string | Yes | Recording output URL: fd://xx (fd number).  This parameter is mandatory. |
+| url | string | Yes | Recording output URL: fd://xx (fd number).  This parameter is mandatory. |
| rotation | number | No | Rotation angle of the recorded video. The value can only be 0, 90, 180, or 270. |
| location | [Location](#location) | No | Geographical location of the recorded video. |
@@ -2606,13 +2608,14 @@ For details about the error codes, see [Media Error Codes](../errorcodes/errorco
**Example**
```js
+// Configure the parameters based on those supported by the hardware device.
let videoProfile = {
audioBitrate : 48000,
audioChannels : 2,
audioCodec : 'audio/mp4a-latm',
audioSampleRate : 48000,
fileFormat : 'mp4',
- videoBitrate : 48000,
+ videoBitrate : 2000000,
videoCodec : 'video/mp4v-es',
videoFrameWidth : 640,
videoFrameHeight : 480,
@@ -2676,13 +2679,14 @@ For details about the error codes, see [Media Error Codes](../errorcodes/errorco
**Example**
```js
+// Configure the parameters based on those supported by the hardware device.
let videoProfile = {
audioBitrate : 48000,
audioChannels : 2,
audioCodec : 'audio/mp4a-latm',
audioSampleRate : 48000,
fileFormat : 'mp4',
- videoBitrate : 48000,
+ videoBitrate : 2000000,
videoCodec : 'video/mp4v-es',
videoFrameWidth : 640,
videoFrameHeight : 480,
@@ -3801,7 +3805,7 @@ audioPlayer.on('error', (error) => { // Set the 'error' event callback
console.info(`audio error called, error: ${error}`);
});
-// Set the FD (local playback) of the video file selected by the user.
+// Set the FD (local playback) of the audio file selected by the user.
let fdPath = 'fd://';
// The stream in the path can be pushed to the device by running the "hdc file send D:\xxx\01.mp3 /data/accounts/account_0/appdata" command.
let path = '/data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/01.mp3';
diff --git a/en/application-dev/reference/apis/js-apis-medialibrary.md b/en/application-dev/reference/apis/js-apis-medialibrary.md
index 0ee9b746e29fd8bb0473b664a1acabd0f2f157ae..cd52a40c909762b31e033274b2b5193ecf34e6f6 100644
--- a/en/application-dev/reference/apis/js-apis-medialibrary.md
+++ b/en/application-dev/reference/apis/js-apis-medialibrary.md
@@ -34,6 +34,7 @@ This API can be used only in the stage model.
**Example (from API version 9)**
```ts
+// Obtain a MediaLibrary instance. The instance obtained here is used in later.
const context = getContext(this);
let media = mediaLibrary.getMediaLibrary(context);
```
@@ -92,46 +93,59 @@ Obtains file assets (also called files). This API uses an asynchronous callback
**Example**
```js
-let fileKeyObj = mediaLibrary.FileKey;
-let imageType = mediaLibrary.MediaType.IMAGE;
-let imagesFetchOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
-};
-media.getFileAssets(imagesFetchOp, (error, fetchFileResult) => {
- if (fetchFileResult == undefined) {
- console.error('Failed to get fetchFileResult: ' + error);
- return;
- }
- const count = fetchFileResult.getCount();
- if (count < 0) {
- console.error('Failed to get count from fetchFileResult: count: ' + count);
- return;
- }
- if (count == 0) {
- console.info('The count of fetchFileResult is zero');
- return;
- }
-
- console.info('Get fetchFileResult success, count: ' + count);
- fetchFileResult.getFirstObject((err, fileAsset) => {
- if (fileAsset == undefined) {
- console.error('Failed to get first object: ' + err);
+async function example() {
+ let fileKeyObj = mediaLibrary.FileKey;
+ let imageType = mediaLibrary.MediaType.IMAGE;
+ // Create options for fetching the files. The options are used to obtain files of the image type.
+ let imagesFetchOp = {
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ };
+ // Obtain the files in asynchronous callback mode.
+ media.getFileAssets(imagesFetchOp, (error, fetchFileResult) => {
+ // Check whether the result set of the obtained files is undefined. If yes, the API call fails.
+ if (fetchFileResult == undefined) {
+ console.error('get fetchFileResult failed with error: ' + error);
return;
}
- console.info('fileAsset.displayName ' + ': ' + fileAsset.displayName);
- for (let i = 1; i < count; i++) {
- fetchFileResult.getNextObject((err, fileAsset) => {
- if (fileAsset == undefined) {
- console.error('Failed to get next object: ' + err);
- return;
- }
- console.info('fileAsset.displayName ' + i + ': ' + fileAsset.displayName);
- })
+ // Obtain the total number of files in the result set.
+ const count = fetchFileResult.getCount();
+ // Check whether the number is less than 0. If yes, the API call fails.
+ if (count < 0) {
+ console.error('get count from fetchFileResult failed, count: ' + count);
+ return;
}
+ // Check whether the number is 0. If yes, the API call is successful, but the result set is empty. Check whether the options for fetching the files are correctly set and whether the corresponding files exist on the device.
+ if (count == 0) {
+ console.info('The count of fetchFileResult is zero');
+ return;
+ }
+ console.info('Get fetchFileResult successfully, count: ' + count);
+ // Obtain the first file in the result set in asynchronous callback mode.
+ fetchFileResult.getFirstObject((error, fileAsset) => {
+ // Check whether the first file is undefined. If yes, the API call fails.
+ if (fileAsset == undefined) {
+ console.error('get first object failed with error: ' + error);
+ return;
+ }
+ console.info('fileAsset.displayName ' + '0 : ' + fileAsset.displayName);
+ // Call getNextObject to obtain the next file until the last one.
+ for (let i = 1; i < count; i++) {
+ fetchFileResult.getNextObject((error, fileAsset) => {
+ if (fileAsset == undefined) {
+ console.error('get next object failed with error: ' + error);
+ return;
+ }
+ console.info('fileAsset.displayName ' + i + ': ' + fileAsset.displayName);
+ })
+ }
+ });
+ // Release the FetchFileResult instance and invalidate it. Other APIs can no longer be called.
+ fetchFileResult.close();
});
-});
+}
```
+
### getFileAssets7+
getFileAssets(options: MediaFetchOptions): Promise<FetchFileResult>
@@ -157,38 +171,51 @@ Obtains file assets. This API uses a promise to return the result.
**Example**
```js
-let fileKeyObj = mediaLibrary.FileKey;
-let imageType = mediaLibrary.MediaType.IMAGE;
-let imagesFetchOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
-};
-media.getFileAssets(imagesFetchOp).then(function(fetchFileResult) {
- const count = fetchFileResult.getCount();
- if (count < 0) {
- console.error('Failed to get count from fetchFileResult: count: ' + count);
- return;
- }
- if (count == 0) {
- console.info('The count of fetchFileResult is zero');
- return;
- }
- console.info('Get fetchFileResult success, count: ' + count);
- fetchFileResult.getFirstObject().then(function(fileAsset) {
- console.info('fileAsset.displayName ' + ': ' + fileAsset.displayName);
- for (let i = 1; i < count; i++) {
- fetchFileResult.getNextObject().then(function(fileAsset) {
- console.info('fileAsset.displayName ' + ': ' + fileAsset.displayName);
- }).catch(function(err) {
- console.error('Failed to get next object: ' + err);
- })
+async function example() {
+ let fileKeyObj = mediaLibrary.FileKey;
+ let imageType = mediaLibrary.MediaType.IMAGE;
+ // Create options for fetching the files. The options are used to obtain files of the image type.
+ let imagesFetchOp = {
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ };
+ // Obtain the files in promise mode.
+ media.getFileAssets(imagesFetchOp).then((fetchFileResult) => {
+ // Obtain the total number of files in the result set.
+ const count = fetchFileResult.getCount();
+ // Check whether the number is less than 0. If yes, the API call fails.
+ if (count < 0) {
+ console.error('get count from fetchFileResult failed, count: ' + count);
+ return;
}
- }).catch(function(err) {
- console.error('Failed to get first object: ' + err);
+ // Check whether the number is 0. If yes, the API call is successful, but the result set is empty. Check whether the options for fetching the files are correctly set and whether the corresponding files exist on the device.
+ if (count == 0) {
+ console.info('The count of fetchFileResult is zero');
+ return;
+ }
+ console.info('Get fetchFileResult successfully, count: ' + count);
+ // Obtain the first file in the result set in promise mode.
+ fetchFileResult.getFirstObject().then((fileAsset) => {
+ console.info('fileAsset.displayName ' + '0 : ' + fileAsset.displayName);
+ // Call getNextObject to obtain the next file until the last one.
+ for (let i = 1; i < count; i++) {
+ fetchFileResult.getNextObject().then((fileAsset) => {
+ console.info('fileAsset.displayName ' + i + ': ' + fileAsset.displayName);
+ }).catch((error) => {
+ console.error('get next object failed with error: ' + error);
+ })
+ }
+ }).catch((error) => {
+ // Calling getFirstObject fails.
+ console.error('get first object failed with error: ' + error);
+ });
+ // Release the FetchFileResult instance and invalidate it. Other APIs can no longer be called.
+ fetchFileResult.close();
+ }).catch((error) => {
+ // Calling getFileAssets fails.
+ console.error('get file assets failed with error: ' + error);
});
-}).catch(function(err){
- console.error("Failed to get file assets: " + err);
-});
+}
```
### on8+
@@ -232,7 +259,7 @@ Unsubscribes from the media library changes. This API uses an asynchronous callb
```js
media.off('imageChange', () => {
- // stop listening success
+ // Stop listening successfully.
})
```
@@ -263,11 +290,11 @@ async function example() {
let mediaType = mediaLibrary.MediaType.IMAGE;
let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
const path = await media.getPublicDirectory(DIR_IMAGE);
- media.createAsset(mediaType, 'imageCallBack.jpg', path + 'myPicture/', (err, fileAsset) => {
+ media.createAsset(mediaType, 'imageCallBack.jpg', path + 'myPicture/', (error, fileAsset) => {
if (fileAsset != undefined) {
console.info('createAsset successfully, message');
} else {
- console.error('createAsset failed, message = ' + err);
+ console.error('createAsset failed with error: ' + error);
}
});
}
@@ -307,8 +334,8 @@ async function example() {
const path = await media.getPublicDirectory(DIR_IMAGE);
media.createAsset(mediaType, 'imagePromise.jpg', path + 'myPicture/').then((fileAsset) => {
console.info('createAsset successfully, message = ' + JSON.stringify(fileAsset));
- }).catch((err) => {
- console.error('createAsset failed, message = ' + err);
+ }).catch((error) => {
+ console.error('createAsset failed with error: ' + error);
});
}
```
@@ -349,14 +376,15 @@ async function example() {
const fetchFileResult = await media.getFileAssets(option);
let asset = await fetchFileResult.getFirstObject();
if (asset == undefined) {
- console.error('asset not exist')
- return
+ console.error('asset not exist');
+ return;
}
media.deleteAsset(asset.uri).then(() => {
- console.info("deleteAsset successfully");
- }).catch((err) => {
- console.error("deleteAsset failed with error:"+ err);
+ console.info('deleteAsset successfully');
+ }).catch((error) => {
+ console.error('deleteAsset failed with error: ' + error);
});
+ fetchFileResult.close();
}
```
@@ -391,16 +419,17 @@ async function example() {
const fetchFileResult = await media.getFileAssets(option);
let asset = await fetchFileResult.getFirstObject();
if (asset == undefined) {
- console.error('asset not exist')
- return
+ console.error('asset not exist');
+ return;
}
- media.deleteAsset(asset.uri, (err) => {
- if (err != undefined) {
- console.info("deleteAsset successfully");
+ media.deleteAsset(asset.uri, (error) => {
+ if (error != undefined) {
+ console.error('deleteAsset failed with error: ' + error);
} else {
- console.error("deleteAsset failed with error:"+ err);
+ console.info('deleteAsset successfully');
}
});
+ fetchFileResult.close();
}
```
@@ -423,11 +452,11 @@ Obtains a public directory. This API uses an asynchronous callback to return the
```js
let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA;
-media.getPublicDirectory(DIR_CAMERA, (err, dicResult) => {
+media.getPublicDirectory(DIR_CAMERA, (error, dicResult) => {
if (dicResult == 'Camera/') {
- console.info('mediaLibraryTest : getPublicDirectory passed');
+ console.info('getPublicDirectory DIR_CAMERA successfully');
} else {
- console.error('mediaLibraryTest : getPublicDirectory failed');
+ console.error('getPublicDirectory DIR_CAMERA failed with error: ' + error);
}
});
```
@@ -457,12 +486,15 @@ Obtains a public directory. This API uses a promise to return the result.
```js
async function example() {
let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA;
- const dicResult = await media.getPublicDirectory(DIR_CAMERA);
- if (dicResult == 'Camera/') {
- console.info('MediaLibraryTest : getPublicDirectory');
- } else {
- console.error('MediaLibraryTest : getPublicDirectory failed');
- }
+ media.getPublicDirectory(DIR_CAMERA).then((dicResult) => {
+ if (dicResult == 'Camera/') {
+ console.info('getPublicDirectory DIR_CAMERA successfully');
+ } else {
+ console.error('getPublicDirectory DIR_CAMERA failed');
+ }
+ }).catch((error) => {
+ console.error('getPublicDirectory failed with error: ' + error);
+ });
}
```
@@ -486,19 +518,19 @@ Obtains the albums. This API uses an asynchronous callback to return the result.
**Example**
```js
-let AlbumNoArgsfetchOp = {
- selections: '',
- selectionArgs: [],
-};
-media.getAlbums(AlbumNoArgsfetchOp, (err, albumList) => {
- if (albumList != undefined) {
- const album = albumList[0];
- console.info('album.albumName = ' + album.albumName);
- console.info('album.count = ' + album.count);
- } else {
- console.error('getAlbum fail, message = ' + err);
- }
-})
+async function example() {
+ let AlbumNoArgsfetchOp = {
+ selections: '',
+ selectionArgs: [],
+ };
+ media.getAlbums(AlbumNoArgsfetchOp, (error, albumList) => {
+ if (albumList != undefined) {
+ console.info('getAlbums successfully: ' + JSON.stringify(albumList));
+ } else {
+ console.error('getAlbums failed with error: ' + error);
+ }
+ })
+}
```
### getAlbums7+
@@ -526,15 +558,17 @@ Obtains the albums. This API uses a promise to return the result.
**Example**
```js
-let AlbumNoArgsfetchOp = {
- selections: '',
- selectionArgs: [],
-};
-media.getAlbums(AlbumNoArgsfetchOp).then(function(albumList){
- console.info("getAlbums successfully:"+ JSON.stringify(albumList));
-}).catch(function(err){
- console.error("getAlbums failed with error: " + err);
-});
+async function example() {
+ let AlbumNoArgsfetchOp = {
+ selections: '',
+ selectionArgs: [],
+ };
+ media.getAlbums(AlbumNoArgsfetchOp).then((albumList) => {
+ console.info('getAlbums successfully: ' + JSON.stringify(albumList));
+ }).catch((error) => {
+ console.error('getAlbums failed with error: ' + error);
+ });
+}
```
### release8+
@@ -550,12 +584,12 @@ Call this API when you no longer need to use the APIs in the **MediaLibrary** in
| Name | Type | Mandatory | Description |
| -------- | ------------------------- | ---- | ---------- |
-| callback | AsyncCallback<void> | Yes | Callback used to return the execution result.|
+| callback | AsyncCallback<void> | Yes | Callback that returns no value.|
**Example**
```js
-media.release((err) => {
+media.release(() => {
// do something
});
```
@@ -604,16 +638,16 @@ Stores a media asset. This API uses an asynchronous callback to return the URI t
```js
let option = {
- src : "/data/storage/el2/base/haps/entry/image.png",
- mimeType : "image/*",
- relativePath : "Pictures/"
+ src : '/data/storage/el2/base/haps/entry/image.png',
+ mimeType : 'image/*',
+ relativePath : 'Pictures/'
};
-mediaLibrary.getMediaLibrary().storeMediaAsset(option, (err, value) => {
- if (err) {
- console.error("An error occurred when storing media resources.");
+mediaLibrary.getMediaLibrary().storeMediaAsset(option, (error, value) => {
+ if (error) {
+ console.error('storeMediaAsset failed with error: ' + error);
return;
}
- console.info("Media resources stored. ");
+ console.info('Media resources stored. ');
// Obtain the URI that stores the media asset.
});
```
@@ -647,15 +681,15 @@ Stores a media asset. This API uses a promise to return the URI that stores the
```js
let option = {
- src : "/data/storage/el2/base/haps/entry/image.png",
- mimeType : "image/*",
- relativePath : "Pictures/"
+ src : '/data/storage/el2/base/haps/entry/image.png',
+ mimeType : 'image/*',
+ relativePath : 'Pictures/'
};
mediaLibrary.getMediaLibrary().storeMediaAsset(option).then((value) => {
- console.info("Media resources stored.");
+ console.info('Media resources stored.');
// Obtain the URI that stores the media asset.
-}).catch((err) => {
- console.error("An error occurred when storing media resources.");
+}).catch((error) => {
+ console.error('storeMediaAsset failed with error: ' + error);
});
```
@@ -676,7 +710,7 @@ Starts image preview, with the first image to preview specified. This API can be
| Name | Type | Mandatory | Description |
| -------- | ------------------------- | ---- | ---------------------------------------- |
-| images | Array<string> | Yes | URIs of the images to preview. The value can start with either **https://** or **datashare://**.|
+| images | Array<string> | Yes | URIs of the images to preview. The value can start with either **'https://'** or **'datashare://'**.|
| index | number | Yes | Index of the first image to preview. |
| callback | AsyncCallback<void> | Yes | Callback used to return the image preview result. If the preview fails, an error message is returned. |
@@ -684,22 +718,22 @@ Starts image preview, with the first image to preview specified. This API can be
```js
let images = [
- "datashare:///media/xxxx/2",
- "datashare:///media/xxxx/3"
+ 'datashare:///media/xxxx/2',
+ 'datashare:///media/xxxx/3'
];
/* Preview online images.
let images = [
- "https://media.xxxx.com/image1.jpg",
- "https://media.xxxx.com/image2.jpg"
+ 'https://media.xxxx.com/image1.jpg',
+ 'https://media.xxxx.com/image2.jpg'
];
*/
let index = 1;
-mediaLibrary.getMediaLibrary().startImagePreview(images, index, (err) => {
- if (err) {
- console.error("An error occurred when previewing the images.");
+mediaLibrary.getMediaLibrary().startImagePreview(images, index, (error) => {
+ if (error) {
+ console.error('startImagePreview failed with error: ' + error);
return;
}
- console.info("Succeeded in previewing the images.");
+ console.info('Succeeded in previewing the images.');
});
```
@@ -720,28 +754,28 @@ Starts image preview. This API can be used to preview local images whose URIs st
| Name | Type | Mandatory | Description |
| -------- | ------------------------- | ---- | ---------------------------------------- |
-| images | Array<string> | Yes | URIs of the images to preview. The value can start with either **https://** or **datashare://**.|
+| images | Array<string> | Yes | URIs of the images to preview. The value can start with either **'https://'** or **'datashare://'**.|
| callback | AsyncCallback<void> | Yes | Callback used to return the image preview result. If the preview fails, an error message is returned. |
**Example**
```js
let images = [
- "datashare:///media/xxxx/2",
- "datashare:///media/xxxx/3"
+ 'datashare:///media/xxxx/2',
+ 'datashare:///media/xxxx/3'
];
/* Preview online images.
let images = [
- "https://media.xxxx.com/image1.jpg",
- "https://media.xxxx.com/image2.jpg"
+ 'https://media.xxxx.com/image1.jpg',
+ 'https://media.xxxx.com/image2.jpg'
];
*/
-mediaLibrary.getMediaLibrary().startImagePreview(images, (err) => {
- if (err) {
- console.error("An error occurred when previewing the images.");
+mediaLibrary.getMediaLibrary().startImagePreview(images, (error) => {
+ if (error) {
+ console.error('startImagePreview failed with error: ' + error);
return;
}
- console.info("Succeeded in previewing the images.");
+ console.info('Succeeded in previewing the images.');
});
```
@@ -762,7 +796,7 @@ Starts image preview, with the first image to preview specified. This API can be
| Name | Type | Mandatory | Description |
| ------ | ------------------- | ---- | ---------------------------------------- |
-| images | Array<string> | Yes | URIs of the images to preview. The value can start with either **https://** or **datashare://**.|
+| images | Array<string> | Yes | URIs of the images to preview. The value can start with either **'https://'** or **'datashare://'**.|
| index | number | No | Index of the first image to preview. If this parameter is not specified, the default value **0** is used. |
**Return value**
@@ -775,20 +809,20 @@ Starts image preview, with the first image to preview specified. This API can be
```js
let images = [
- "datashare:///media/xxxx/2",
- "datashare:///media/xxxx/3"
+ 'datashare:///media/xxxx/2',
+ 'datashare:///media/xxxx/3'
];
/* Preview online images.
let images = [
- "https://media.xxxx.com/image1.jpg",
- "https://media.xxxx.com/image2.jpg"
+ 'https://media.xxxx.com/image1.jpg',
+ 'https://media.xxxx.com/image2.jpg'
];
*/
let index = 1;
mediaLibrary.getMediaLibrary().startImagePreview(images, index).then(() => {
- console.info("Succeeded in previewing the images.");
-}).catch((err) => {
- console.error("An error occurred when previewing the images.");
+ console.info('Succeeded in previewing the images.');
+}).catch((error) => {
+ console.error('startImagePreview failed with error: ' + error);
});
```
@@ -816,15 +850,15 @@ Starts media selection. This API uses an asynchronous callback to return the lis
```js
let option : mediaLibrary.MediaSelectOption = {
- type : "media",
+ type : 'media',
count : 2
};
-mediaLibrary.getMediaLibrary().startMediaSelect(option, (err, value) => {
- if (err) {
- console.error("An error occurred when selecting media resources.");
+mediaLibrary.getMediaLibrary().startMediaSelect(option, (error, value) => {
+ if (error) {
+ console.error('startMediaSelect failed with error: ' + error);
return;
}
- console.info("Media resources selected.");
+ console.info('Media resources selected.');
// Obtain the media selection value.
});
```
@@ -858,14 +892,14 @@ Starts media selection. This API uses a promise to return the list of URIs that
```js
let option : mediaLibrary.MediaSelectOption = {
- type : "media",
+ type : 'media',
count : 2
};
mediaLibrary.getMediaLibrary().startMediaSelect(option).then((value) => {
- console.info("Media resources selected.");
+ console.info('Media resources selected.');
// Obtain the media selection value.
-}).catch((err) => {
- console.error("An error occurred when selecting media resources.");
+}).catch((error) => {
+ console.error('startMediaSelect failed with error: ' + error);
});
```
@@ -893,14 +927,12 @@ Obtains information about online peer devices. This API uses a promise to return
async function example() {
media.getActivePeers().then((devicesInfo) => {
if (devicesInfo != undefined) {
- for (let i = 0; i < devicesInfo.length; i++) {
- console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId);
- }
+ console.info('get distributed info ' + JSON.stringify(devicesInfo));
} else {
- console.info('get distributed info is undefined!')
+ console.info('get distributed info is undefined!');
}
- }).catch((err) => {
- console.error("get distributed info failed with error:" + err);
+ }).catch((error) => {
+ console.error('get distributed info failed with error: ' + error);
});
}
```
@@ -927,15 +959,13 @@ Obtains information about online peer devices. This API uses an asynchronous cal
```js
async function example() {
- media.getActivePeers((err, devicesInfo) => {
+ media.getActivePeers((error, devicesInfo) => {
if (devicesInfo != undefined) {
- for (let i = 0; i < devicesInfo.length; i++) {
- console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId);
- }
+ console.info('get distributed info ' + JSON.stringify(devicesInfo));
} else {
- console.error('get distributed fail, message = ' + err)
+ console.error('get distributed failed with error: ' + error);
}
- })
+ });
}
```
@@ -964,14 +994,12 @@ Obtains information about all peer devices. This API uses a promise to return th
async function example() {
media.getAllPeers().then((devicesInfo) => {
if (devicesInfo != undefined) {
- for (let i = 0; i < devicesInfo.length; i++) {
- console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId);
- }
+ console.info('get distributed info ' + JSON.stringify(devicesInfo));
} else {
- console.info('get distributed info is undefined!')
+ console.info('get distributed info is undefined!');
}
- }).catch((err) => {
- console.error("get distributed info failed with error: " + err);
+ }).catch((error) => {
+ console.error('get distributed info failed with error: ' + error);
});
}
```
@@ -998,15 +1026,13 @@ Obtains information about online peer devices. This API uses an asynchronous cal
```js
async function example() {
- media.getAllPeers((err, devicesInfo) => {
+ media.getAllPeers((error, devicesInfo) => {
if (devicesInfo != undefined) {
- for (let i = 0; i < devicesInfo.length; i++) {
- console.info('get distributed info ' + devicesInfo[i].deviceName + devicesInfo[i].networkId);
- }
+ console.info('get distributed info ' + JSON.stringify(devicesInfo));
} else {
- console.error('get distributed fail, message = ' + err)
+ console.error('get distributed failed with error: ' + error);
}
- })
+ });
}
```
@@ -1068,19 +1094,23 @@ Checks whether this file asset is a directory. This API uses an asynchronous cal
```js
async function example() {
- let fileKeyObj = mediaLibrary.FileKey
+ let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
const fetchFileResult = await media.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
- asset.isDirectory((err, isDirectory) => {
- // do something
+ asset.isDirectory((error, isDirectory) => {
+ if (error) {
+ console.error('isDirectory failed with error: ' + error);
+ } else {
+ console.info('isDirectory result:' + isDirectory);
+ }
});
+ fetchFileResult.close();
}
```
@@ -1104,21 +1134,21 @@ Checks whether this file asset is a directory. This API uses a promise to return
```js
async function example() {
- let fileKeyObj = mediaLibrary.FileKey
+ let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
const fetchFileResult = await media.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
- asset.isDirectory().then(function(isDirectory){
- console.info("isDirectory result:"+ isDirectory);
- }).catch(function(err){
- console.error("isDirectory failed with error: " + err);
+ asset.isDirectory().then((isDirectory) => {
+ console.info('isDirectory result:' + isDirectory);
+ }).catch((error) => {
+ console.error('isDirectory failed with error: ' + error);
});
+ fetchFileResult.close();
}
```
@@ -1142,20 +1172,20 @@ Commits the modification in this file asset to the database. This API uses an as
```js
async function example() {
- let fileKeyObj = mediaLibrary.FileKey
+ let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
const fetchFileResult = await media.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
asset.title = 'newtitle';
asset.commitModify(() => {
- console.info('commitModify success');
+ console.info('commitModify successfully');
});
+ fetchFileResult.close();
}
```
@@ -1179,18 +1209,18 @@ Commits the modification in this file asset to the database. This API uses a pro
```js
async function example() {
- let fileKeyObj = mediaLibrary.FileKey
+ let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
const fetchFileResult = await media.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
asset.title = 'newtitle';
- asset.commitModify();
+ await asset.commitModify();
+ fetchFileResult.close();
}
```
@@ -1200,9 +1230,7 @@ open(mode: string, callback: AsyncCallback<number>): void
Opens this file asset. This API uses an asynchronous callback to return the result.
-> **NOTE**
->
-> Currently, the write operations are mutually exclusive. After the write operation is complete, you must call **close** to release the resource.
+**NOTE**: When a file is opened in 'w' mode, the returned FD cannot be read. However, due to the implementation differences of file systems, some user-mode files opened in 'w' mode can be read by using FD. To perform the read or write operation on a file by using FD, you are advised to open the file in 'rw' mode. The write operations are mutually exclusive. After a write operation is complete, you must call **close** to release the resource.
**Required permissions**: ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA
@@ -1222,13 +1250,13 @@ async function example() {
let mediaType = mediaLibrary.MediaType.IMAGE;
let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
const path = await media.getPublicDirectory(DIR_IMAGE);
- const asset = await media.createAsset(mediaType, "image00003.jpg", path);
- asset.open('rw', (openError, fd) => {
- if(fd > 0){
- asset.close(fd);
- }else{
- console.error('File Open Failed!' + openError);
- }
+ const asset = await media.createAsset(mediaType, 'image00003.jpg', path);
+ asset.open('rw', (error, fd) => {
+ if (fd > 0) {
+ asset.close(fd);
+ } else {
+ console.error('File Open failed with error: ' + error);
+ }
});
}
```
@@ -1239,9 +1267,7 @@ open(mode: string): Promise<number>
Opens this file asset. This API uses a promise to return the result.
-> **NOTE**
->
-> Currently, the write operations are mutually exclusive. After the write operation is complete, you must call **close** to release the resource.
+**NOTE**: When a file is opened in 'w' mode, the returned FD cannot be read. However, due to the implementation differences of file systems, some user-mode files opened in 'w' mode can be read by using FD. To perform the read or write operation on a file by using FD, you are advised to open the file in 'rw' mode. The write operations are mutually exclusive. After a write operation is complete, you must call **close** to release the resource.
**Required permissions**: ohos.permission.READ_MEDIA or ohos.permission.WRITE_MEDIA
@@ -1266,14 +1292,12 @@ async function example() {
let mediaType = mediaLibrary.MediaType.IMAGE;
let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE;
const path = await media.getPublicDirectory(DIR_IMAGE);
- const asset = await media.createAsset(mediaType, "image00003.jpg", path);
- asset.open('rw')
- .then((fd) => {
- console.info('File fd!' + fd);
- })
- .catch((err) => {
- console.error('File err!' + err);
- });
+ const asset = await media.createAsset(mediaType, 'image00003.jpg', path);
+ asset.open('rw').then((fd) => {
+ console.info('File open fd: ' + fd);
+ }).catch((error) => {
+ console.error('File open failed with error: ' + error);
+ });
}
```
@@ -1298,30 +1322,28 @@ Closes this file asset. This API uses an asynchronous callback to return the res
```js
async function example() {
- let fileKeyObj = mediaLibrary.FileKey
+ let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
const fetchFileResult = await media.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
asset.open('rw').then((fd) => {
- console.info('File fd!' + fd);
- asset.close(fd, (closeErr) => {
- if (closeErr != undefined) {
- console.error('mediaLibraryTest : close : FAIL ' + closeErr);
- console.error('mediaLibraryTest : ASSET_CALLBACK : FAIL');
+ console.info('File open fd: ' + fd);
+ asset.close(fd, (error) => {
+ if (error) {
+ console.error('asset.close failed with error: ' + error);
} else {
- console.info("=======asset.close success====>");
+ console.info('asset.close successfully');
}
});
- })
- .catch((err) => {
- console.error('File err!' + err);
+ }).catch((error) => {
+ console.error('File open failed with error: ' + error);
});
+ fetchFileResult.close();
}
```
@@ -1351,31 +1373,26 @@ Closes this file asset. This API uses a promise to return the result.
```js
async function example() {
- let fileKeyObj = mediaLibrary.FileKey
+ let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
const fetchFileResult = await media.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
asset.open('rw').then((fd) => {
console.info('File fd!' + fd);
- asset.close(fd).then((closeErr) => {
- if (closeErr != undefined) {
- console.error('mediaLibraryTest : close : FAIL ' + closeErr);
- console.error('mediaLibraryTest : ASSET_CALLBACK : FAIL');
-
- } else {
- console.info("=======asset.close success====>");
- }
+ asset.close(fd).then(() => {
+ console.info('asset.close successfully');
+ }).catch((closeErr) => {
+ console.error('asset.close fail, closeErr: ' + closeErr);
});
- })
- .catch((err) => {
- console.error('File err!' + err);
+ }).catch((error) => {
+ console.error('open File failed with error: ' + error);
});
+ fetchFileResult.close();
}
```
@@ -1399,19 +1416,23 @@ Obtains the thumbnail of this file asset. This API uses an asynchronous callback
```js
async function example() {
- let fileKeyObj = mediaLibrary.FileKey
+ let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
const fetchFileResult = await media.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
- asset.getThumbnail((err, pixelmap) => {
- console.info('mediaLibraryTest : getThumbnail Successful '+ pixelmap);
+ asset.getThumbnail((error, pixelmap) => {
+ if (error) {
+ console.error('mediaLibrary getThumbnail failed with error: ' + error);
+ } else {
+ console.info('mediaLibrary getThumbnail Successful, pixelmap ' + JSON.stringify(pixelmap));
+ }
});
+ fetchFileResult.close();
}
```
@@ -1439,17 +1460,21 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
let size = { width: 720, height: 720 };
const fetchFileResult = await media.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
- asset.getThumbnail(size, (err, pixelmap) => {
- console.info('mediaLibraryTest : getThumbnail Successful '+ pixelmap);
+ asset.getThumbnail(size, (error, pixelmap) => {
+ if (error) {
+ console.error('mediaLibrary getThumbnail failed with error: ' + error);
+ } else {
+ console.info('mediaLibrary getThumbnail Successful, pixelmap ' + JSON.stringify(pixelmap));
+ }
});
+ fetchFileResult.close();
}
```
@@ -1484,19 +1509,17 @@ async function example() {
let getImageOp = {
selections: fileKeyObj.MEDIA_TYPE + '= ?',
selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
let size = { width: 720, height: 720 };
const fetchFileResult = await media.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
- asset.getThumbnail(size)
- .then((pixelmap) => {
- console.info('mediaLibraryTest : getThumbnail Successful '+ pixelmap);
- })
- .catch((err) => {
- console.error('mediaLibraryTest : getThumbnail fail, err: ' + err);
+ asset.getThumbnail(size).then((pixelmap) => {
+ console.info('mediaLibrary getThumbnail Successful, pixelmap ' + JSON.stringify(pixelmap));
+ }).catch((error) => {
+ console.error('mediaLibrary getThumbnail failed with error: ' + error);
});
+ fetchFileResult.close();
}
```
@@ -1524,16 +1547,20 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
const fetchFileResult = await media.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
- asset.favorite(true,function(err){
- // do something
+ asset.favorite(true,(error) => {
+ if (error) {
+ console.error('mediaLibrary favorite failed with error: ' + error);
+ } else {
+ console.info('mediaLibrary favorite Successful');
+ }
});
+ fetchFileResult.close();
}
```
@@ -1566,18 +1593,18 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
const fetchFileResult = await media.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
- asset.favorite(true).then(function() {
- console.info("favorite successfully");
- }).catch(function(err){
- console.error("favorite failed with error: " + err);
+ asset.favorite(true).then(() => {
+ console.info('mediaLibrary favorite Successful');
+ }).catch((error) => {
+ console.error('mediaLibrary favorite failed with error: ' + error);
});
+ fetchFileResult.close();
}
```
@@ -1604,20 +1631,20 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
const fetchFileResult = await media.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
- asset.isFavorite((err, isFavorite) => {
- if (isFavorite) {
- console.info('FileAsset is favorite');
- }else{
- console.info('FileAsset is not favorite');
+ asset.isFavorite((error, isFavorite) => {
+ if (error) {
+ console.error('mediaLibrary favoriisFavoritete failed with error: ' + error);
+ } else {
+ console.info('mediaLibrary isFavorite Successful, isFavorite result: ' + isFavorite);
}
});
+ fetchFileResult.close();
}
```
@@ -1644,18 +1671,18 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
const fetchFileResult = await media.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
- asset.isFavorite().then(function(isFavorite){
- console.info("isFavorite result:"+ isFavorite);
- }).catch(function(err){
- console.error("isFavorite failed with error: " + err);
+ asset.isFavorite().then((isFavorite) => {
+ console.info('mediaLibrary isFavorite Successful, isFavorite result: ' + isFavorite);
+ }).catch((error) => {
+ console.error('mediaLibrary favoriisFavoritete failed with error: ' + error);
});
+ fetchFileResult.close();
}
```
@@ -1685,17 +1712,20 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
const fetchFileResult = await media.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
- asset.trash(true, trashCallBack);
- function trashCallBack(err, trash) {
- console.info('mediaLibraryTest : ASSET_CALLBACK ASSET_CALLBACK trash');
- }
+ asset.trash(true, (error) => {
+ if (error) {
+ console.error('mediaLibrary trash failed with error: ' + error);
+ } else {
+ console.info('mediaLibrary trash Successful');
+ }
+ });
+ fetchFileResult.close();
}
```
@@ -1730,18 +1760,18 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
const fetchFileResult = await media.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
- asset.trash(true).then(function() {
- console.info("trash successfully");
- }).catch(function(err){
- console.error("trash failed with error: " + err);
+ asset.trash(true).then(() => {
+ console.info('trash successfully');
+ }).catch((error) => {
+ console.error('trash failed with error: ' + error);
});
+ fetchFileResult.close();
}
```
@@ -1768,20 +1798,20 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
const fetchFileResult = await media.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
- asset.isTrash((err, isTrash) => {
- if (isTrash == undefined) {
- console.error('Failed to get trash state: ' + err);
- return;
- }
- console.info('Get trash state success: ' + isTrash);
+ asset.isTrash((error, isTrash) => {
+ if (error) {
+ console.error('Failed to get trash state failed with error: ' + error);
+ return;
+ }
+ console.info('Get trash state successfully, isTrash result: ' + isTrash);
});
+ fetchFileResult.close();
}
```
@@ -1808,17 +1838,18 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
const fetchFileResult = await media.getFileAssets(getImageOp);
const asset = await fetchFileResult.getFirstObject();
- asset.isTrash().then(function(isTrash){
- console.info("isTrash result: " + isTrash);
- }).catch(function(err){
- console.error("isTrash failed with error: " + err);
+ asset.isTrash().then((isTrash) => {
+ console.info('isTrash result: ' + isTrash);
+ }).catch((error) => {
+ console.error('isTrash failed with error: ' + error);
});
+ fetchFileResult.close();
}
```
@@ -1849,11 +1880,12 @@ async function example() {
let getFileCountOneOp = {
selections: fileKeyObj.MEDIA_TYPE + '= ?',
selectionArgs: [fileType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
let fetchFileResult = await media.getFileAssets(getFileCountOneOp);
const fetchCount = fetchFileResult.getCount();
+ console.info('fetchCount result: ' + fetchCount);
+ fetchFileResult.close();
}
```
@@ -1878,25 +1910,22 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
let fetchFileResult = await media.getFileAssets(getImageOp);
const fetchCount = fetchFileResult.getCount();
- console.info('mediaLibraryTest : count:' + fetchCount);
+ console.info('mediaLibrary fetchFileResult.getCount, count:' + fetchCount);
let fileAsset = await fetchFileResult.getFirstObject();
for (var i = 1; i < fetchCount; i++) {
- fileAsset = await fetchFileResult.getNextObject();
- if(i == fetchCount - 1) {
- console.info('mediaLibraryTest : isLast');
- var result = fetchFileResult.isAfterLast();
- console.info('mediaLibraryTest : isAfterLast:' + result);
- console.info('mediaLibraryTest : isAfterLast end');
- fetchFileResult.close();
- }
+ fileAsset = await fetchFileResult.getNextObject();
+ if(i == fetchCount - 1) {
+ var result = fetchFileResult.isAfterLast();
+ console.info('mediaLibrary fileAsset isAfterLast result: ' + result);
+ }
}
+ fetchFileResult.close();
}
```
@@ -1915,10 +1944,9 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
let fetchFileResult = await media.getFileAssets(getImageOp);
fetchFileResult.close();
@@ -1946,19 +1974,19 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
let fetchFileResult = await media.getFileAssets(getImageOp);
- fetchFileResult.getFirstObject((err, fileAsset) => {
- if (err) {
- console.error('Failed ');
- return;
- }
- console.info('fileAsset.displayName : ' + fileAsset.displayName);
+ fetchFileResult.getFirstObject((error, fileAsset) => {
+ if (error) {
+ console.error('fetchFileResult getFirstObject failed with error: ' + error);
+ return;
+ }
+ console.info('getFirstObject successfully, displayName : ' + fileAsset.displayName);
})
+ fetchFileResult.close();
}
```
@@ -1983,17 +2011,17 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
let fetchFileResult = await media.getFileAssets(getImageOp);
- fetchFileResult.getFirstObject().then(function(fileAsset){
- console.info("getFirstObject successfully:"+ JSON.stringify(fileAsset));
- }).catch(function(err){
- console.error("getFirstObject failed with error: " + err);
+ fetchFileResult.getFirstObject().then((fileAsset) => {
+ console.info('getFirstObject successfully, displayName: ' + fileAsset.displayName);
+ }).catch((error) => {
+ console.error('getFirstObject failed with error: ' + error);
});
+ fetchFileResult.close();
}
```
@@ -2002,6 +2030,9 @@ async function example() {
getNextObject(callback: AsyncCallback<FileAsset>): void
Obtains the next file asset in the result set. This API uses an asynchronous callback to return the result.
+> **NOTE**
+>
+> Before using this API, you must use [getFirstObject](#getfirstobject7) to obtain the first file asset and then use [isAfterLast](#isafterlast7) to ensure that the cursor does not point to the last file asset in the result set.
**System capability**: SystemCapability.Multimedia.MediaLibrary.Core
@@ -2018,20 +2049,24 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
let fetchFileResult = await media.getFileAssets(getImageOp);
- fetchFileResult.getNextObject((err, fileAsset) => {
- if (err) {
- console.error('Failed ');
- return;
- }
- console.log('fileAsset.displayName : ' + fileAsset.displayName);
- })
+ let fileAsset = await fetchFileResult.getFirstObject();
+ if (! fetchFileResult.isAfterLast) {
+ fetchFileResult.getNextObject((error, fileAsset) => {
+ if (error) {
+ console.error('fetchFileResult getNextObject failed with error: ' + error);
+ return;
+ }
+ console.log('fetchFileResult getNextObject successfully, displayName: ' + fileAsset.displayName);
+ })
+ }
+ fetchFileResult.close();
}
+
```
### getNextObject7+
@@ -2039,6 +2074,9 @@ async function example() {
getNextObject(): Promise<FileAsset>
Obtains the next file asset in the result set. This API uses a promise to return the result.
+> **NOTE**
+>
+> Before using this API, you must use [getFirstObject](#getfirstobject7) to obtain the first file asset and then use [isAfterLast](#isafterlast7) to ensure that the cursor does not point to the last file asset in the result set.
**System capability**: SystemCapability.Multimedia.MediaLibrary.Core
@@ -2055,15 +2093,20 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
let fetchFileResult = await media.getFileAssets(getImageOp);
- const fetchCount = fetchFileResult.getCount();
- console.info('mediaLibraryTest : count:' + fetchCount);
- let fileAsset = await fetchFileResult.getNextObject();
+ let fileAsset = await fetchFileResult.getFirstObject();
+ if (! fetchFileResult.isAfterLast) {
+ fetchFileResult.getNextObject().then((fileAsset) => {
+ console.info('fetchFileResult getNextObject successfully, displayName: ' + fileAsset.displayName);
+ }).catch((error) => {
+ console.error('fetchFileResult getNextObject failed with error: ' + error);
+ })
+ }
+ fetchFileResult.close();
}
```
@@ -2088,19 +2131,19 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
let fetchFileResult = await media.getFileAssets(getImageOp);
- fetchFileResult.getLastObject((err, fileAsset) => {
- if (err) {
- console.error('Failed ');
- return;
- }
- console.info('fileAsset.displayName : ' + fileAsset.displayName);
+ fetchFileResult.getLastObject((error, fileAsset) => {
+ if (error) {
+ console.error('getLastObject failed with error: ' + error);
+ return;
+ }
+ console.info('getLastObject successfully, displayName: ' + fileAsset.displayName);
})
+ fetchFileResult.close();
}
```
@@ -2125,13 +2168,17 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
let fetchFileResult = await media.getFileAssets(getImageOp);
- let lastObject = await fetchFileResult.getLastObject();
+ fetchFileResult.getLastObject().then((fileAsset) => {
+ console.info('getLastObject successfully, displayName: ' + fileAsset.displayName);
+ }).catch((error) => {
+ console.error('getLastObject failed with error: ' + error);
+ });
+ fetchFileResult.close();
}
```
@@ -2147,7 +2194,7 @@ Obtains a file asset with the specified index in the result set. This API uses a
| Name | Type | Mandatory | Description |
| -------- | ---------------------------------------- | ---- | ------------------ |
-| index | number | Yes | Index of the file asset to obtain. The value starts from **0**. |
+| index | number | Yes | Index of the file to obtain. The value starts from 0 and must be smaller than the **count** value of the result set. |
| callback | AsyncCallback<[FileAsset](#fileasset7)> | Yes | Callback used to return the last file asset.|
**Example**
@@ -2157,19 +2204,19 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
let fetchFileResult = await media.getFileAssets(getImageOp);
- fetchFileResult.getPositionObject(0, (err, fileAsset) => {
- if (err) {
- console.error('Failed ');
- return;
- }
- console.info('fileAsset.displayName : ' + fileAsset.displayName);
+ fetchFileResult.getPositionObject(0, (error, fileAsset) => {
+ if (error) {
+ console.error('getPositionObject failed with error: ' + error);
+ return;
+ }
+ console.info('getPositionObject successfully, displayName: ' + fileAsset.displayName);
})
+ fetchFileResult.close();
}
```
@@ -2185,7 +2232,7 @@ Obtains a file asset with the specified index in the result set. This API uses a
| Name | Type | Mandatory | Description |
| ----- | ------ | ---- | -------------- |
-| index | number | Yes | Index of the file asset to obtain. The value starts from **0**.|
+| index | number | Yes | Index of the file to obtain. The value starts from 0 and must be smaller than the **count** value of the result set.|
**Return value**
@@ -2200,17 +2247,17 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
let fetchFileResult = await media.getFileAssets(getImageOp);
- fetchFileResult.getPositionObject(1) .then(function (fileAsset){
- console.info('fileAsset.displayName : ' + fileAsset.displayName);
- }).catch(function (err) {
- console.error("getFileAssets failed with error: " + err);
+ fetchFileResult.getPositionObject(0).then((fileAsset) => {
+ console.info('getPositionObject successfully, displayName: ' + fileAsset.displayName);
+ }).catch((error) => {
+ console.error('getPositionObject failed with error: ' + error);
});
+ fetchFileResult.close();
}
```
@@ -2226,7 +2273,7 @@ Obtains all the file assets in the result set. This API uses an asynchronous cal
| Name | Type | Mandatory | Description |
| -------- | ---------------------------------------- | ---- | -------------------- |
-| callback | AsyncCallback> | Yes | Callback used to return the file assets.|
+| callback | AsyncCallback<Array<[FileAsset](#fileasset7)>> | Yes | Callback used to return the file assets.|
**Example**
@@ -2235,21 +2282,21 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
let fetchFileResult = await media.getFileAssets(getImageOp);
- fetchFileResult.getAllObject((err, fileAsset) => {
- if (err) {
- console.error('Failed ');
+ fetchFileResult.getAllObject((error, fileAssetList) => {
+ if (error) {
+ console.error('getAllObject failed with error: ' + error);
return;
}
for (let i = 0; i < fetchFileResult.getCount(); i++) {
- console.info('fileAsset.displayName : ' + fileAsset[i].displayName);
+ console.info('getAllObject fileAssetList ' + i + ' displayName: ' + fileAssetList[i].displayName);
}
})
+ fetchFileResult.close();
}
```
@@ -2265,7 +2312,7 @@ Obtains all the file assets in the result set. This API uses a promise to return
| Type | Description |
| ---------------------------------------- | --------------------- |
-| Promise> | Promise used to return the file assets.|
+| Promise<Array<[FileAsset](#fileasset7)>> | Promise used to return the file assets.|
**Example**
@@ -2274,13 +2321,19 @@ async function example() {
let fileKeyObj = mediaLibrary.FileKey;
let imageType = mediaLibrary.MediaType.IMAGE;
let getImageOp = {
- selections: fileKeyObj.MEDIA_TYPE + '= ?',
- selectionArgs: [imageType.toString()],
- order: fileKeyObj.DATE_ADDED + " DESC",
- extendArgs: "",
+ selections: fileKeyObj.MEDIA_TYPE + '= ?',
+ selectionArgs: [imageType.toString()],
+ order: fileKeyObj.DATE_ADDED + ' DESC',
};
let fetchFileResult = await media.getFileAssets(getImageOp);
- var data = fetchFileResult.getAllObject();
+ fetchFileResult.getAllObject().then((fileAssetList) => {
+ for (let i = 0; i < fetchFileResult.getCount(); i++) {
+ console.info('getAllObject fileAssetList ' + i + ' displayName: ' + fileAssetList[i].displayName);
+ }
+ }).catch((error) => {
+ console.error('getAllObject failed with error: ' + error);
+ });
+ fetchFileResult.close();
}
```
@@ -2329,12 +2382,12 @@ async function example() {
const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
const album = albumList[0];
album.albumName = 'hello';
- album.commitModify((err) => {
- if (err) {
- console.error('Failed ');
- return;
- }
- console.info('Modify successful.');
+ album.commitModify((error) => {
+ if (error) {
+ console.error('commitModify failed with error: ' + error);
+ return;
+ }
+ console.info('commitModify successful.');
})
}
```
@@ -2366,10 +2419,10 @@ async function example() {
const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
const album = albumList[0];
album.albumName = 'hello';
- album.commitModify().then(function() {
- console.info("commitModify successfully");
- }).catch(function(err){
- console.error("commitModify failed with error: " + err);
+ album.commitModify().then(() => {
+ console.info('commitModify successfully');
+ }).catch((error) => {
+ console.error('commitModify failed with error: ' + error);
});
}
```
@@ -2400,15 +2453,22 @@ async function example() {
selectionArgs: [],
};
let fileNoArgsfetchOp = {
- selections: '',
- selectionArgs: [],
+ selections: '',
+ selectionArgs: [],
}
+ // Obtain the albums that meet the retrieval options and return the album list.
const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
const album = albumList[0];
- album.getFileAssets(fileNoArgsfetchOp, getFileAssetsCallBack);
- function getFileAssetsCallBack(err, fetchFileResult) {
- // do something
- }
+ // Obtain an album from the album list and obtain all media assets that meet the retrieval options in the album.
+ album.getFileAssets(fileNoArgsfetchOp, (error, fetchFileResult) => {
+ if (error) {
+ console.error('album getFileAssets failed with error: ' + error);
+ return;
+ }
+ let count = fetchFileResult.getcount();
+ console.info('album getFileAssets successfully, count: ' + count);
+ });
+ fetchFileResult.close();
}
```
@@ -2442,17 +2502,21 @@ async function example() {
selections: '',
selectionArgs: [],
};
- let fileNoArgsfetchOp = {
- selections: '',
- selectionArgs: [],
+ let fileNoArgsfetchOp = {
+ selections: '',
+ selectionArgs: [],
};
+ // Obtain the albums that meet the retrieval options and return the album list.
const albumList = await media.getAlbums(AlbumNoArgsfetchOp);
const album = albumList[0];
- album.getFileAssets(fileNoArgsfetchOp).then(function(albumFetchFileResult){
- console.info("getFileAssets successfully: " + JSON.stringify(albumFetchFileResult));
- }).catch(function(err){
- console.error("getFileAssets failed with error: " + err);
+ // Obtain an album from the album list and obtain all media assets that meet the retrieval options in the album.
+ album.getFileAssets(fileNoArgsfetchOp).then((albumFetchFileResult) => {
+ let count = fetchFileResult.getcount();
+ console.info('album getFileAssets successfully, count: ' + count);
+ }).catch((error) => {
+ console.error('album getFileAssets failed with error: ' + error);
});
+ fetchFileResult.close();
}
```
@@ -2491,32 +2555,32 @@ Enumerates media types.
Enumerates key file information.
> **NOTE**
->
+>
> The **bucket_id** field may change after file rename or movement. Therefore, you must obtain the field again before using it.
**System capability**: SystemCapability.Multimedia.MediaLibrary.Core
| Name | Value | Description |
| ------------- | ------------------- | ---------------------------------------------------------- |
-| ID | "file_id" | File ID. |
-| RELATIVE_PATH | "relative_path" | Relative public directory of the file. |
-| DISPLAY_NAME | "display_name" | Display file name. |
-| PARENT | "parent" | Parent directory ID. |
-| MIME_TYPE | "mime_type" | Extended file attributes. |
-| MEDIA_TYPE | "media_type" | Media type. |
-| SIZE | "size" | File size, in bytes. |
-| DATE_ADDED | "date_added" | Date when the file was added. The value is the number of seconds elapsed since the Epoch time. |
-| DATE_MODIFIED | "date_modified" | Date when the file content (not the file name) was last modified. The value is the number of seconds elapsed since the Epoch time.|
-| DATE_TAKEN | "date_taken" | Date when the file (photo) was taken. The value is the number of seconds elapsed since the Epoch time. |
-| TITLE | "title" | Title in the file. |
-| ARTIST | "artist" | Artist of the file. |
-| AUDIOALBUM | "audio_album" | Audio album. |
-| DURATION | "duration" | Duration, in ms. |
-| WIDTH | "width" | Image width, in pixels. |
-| HEIGHT | "height" | Image height, in pixels. |
-| ORIENTATION | "orientation" | Image display direction (clockwise rotation angle, for example, 0, 90, and 180, in degrees).|
-| ALBUM_ID | "bucket_id" | ID of the album to which the file belongs. |
-| ALBUM_NAME | "bucket_display_name" | Name of the album to which the file belongs. |
+| ID | 'file_id' | File ID. |
+| RELATIVE_PATH | 'relative_path' | Relative public directory of the file. |
+| DISPLAY_NAME | 'display_name' | Display file name. |
+| PARENT | 'parent' | Parent directory ID. |
+| MIME_TYPE | 'mime_type' | Extended file attributes, such as image/, video/, and file/*. |
+| MEDIA_TYPE | 'media_type' | Media type. |
+| SIZE | 'size' | File size, in bytes. |
+| DATE_ADDED | 'date_added' | Date when the file was added. The value is the number of seconds elapsed since the Epoch time. |
+| DATE_MODIFIED | 'date_modified' | Date when the file content (not the file name) was last modified. The value is the number of seconds elapsed since the Epoch time.|
+| DATE_TAKEN | 'date_taken' | Date when the file (photo) was taken. The value is the number of seconds elapsed since the Epoch time. |
+| TITLE | 'title' | Title in the file. |
+| ARTIST | 'artist' | Artist of the file. |
+| AUDIOALBUM | 'audio_album' | Audio album. |
+| DURATION | 'duration' | Duration, in ms. |
+| WIDTH | 'width' | Image width, in pixels. |
+| HEIGHT | 'height' | Image height, in pixels. |
+| ORIENTATION | 'orientation' | Image display direction (clockwise rotation angle, for example, 0, 90, and 180, in degrees).|
+| ALBUM_ID | 'bucket_id' | ID of the album to which the file belongs. |
+| ALBUM_NAME | 'bucket_display_name' | Name of the album to which the file belongs. |
## DirectoryType8+
@@ -2559,9 +2623,9 @@ Describes options for fetching media files.
| Name | Type | Readable| Writable| Description |
| ----------------------- | ------------------- | ---- | ---- | ------------------------------------------------------------ |
-| selections | string | Yes | Yes | Conditions for fetching files. The enumerated values in [FileKey](#filekey8) are used as the column names of the conditions. Example: selections: mediaLibrary.FileKey.MEDIA_TYPE + '= ? OR ' +mediaLibrary.FileKey.MEDIA_TYPE + '= ?', |
+| selections | string | Yes | Yes | Conditions for fetching files. The enumerated values in [FileKey](#filekey8) are used as the column names of the conditions. Example: selections: mediaLibrary.FileKey.MEDIA_TYPE + '= ? OR ' + mediaLibrary.FileKey.MEDIA_TYPE + '= ?', |
| selectionArgs | Array<string> | Yes | Yes | Value of the condition, which corresponds to the value of the condition column in **selections**. Example: selectionArgs: [mediaLibrary.MediaType.IMAGE.toString(), mediaLibrary.MediaType.VIDEO.toString()], |
-| order | string | Yes | Yes | Sorting mode of the search results, which can be ascending or descending. The enumerated values in [FileKey](#filekey8) are used as the columns for sorting the search results. Example: Ascending: order: mediaLibrary.FileKey.DATE_ADDED + " ASC" Descending: order: mediaLibrary.FileKey.DATE_ADDED + " DESC"|
+| order | string | Yes | Yes | Sorting mode of the search results, which can be ascending or descending. The enumerated values in [FileKey](#filekey8) are used as the columns for sorting the search results. Example: Ascending: order: mediaLibrary.FileKey.DATE_ADDED + ' ASC' Descending: order: mediaLibrary.FileKey.DATE_ADDED + ' DESC'|
| uri8+ | string | Yes | Yes | File URI. |
| networkId8+ | string | Yes | Yes | Network ID of the registered device. |
| extendArgs8+ | string | Yes | Yes | Extended parameters for fetching the files. Currently, no extended parameters are available. |
diff --git a/en/application-dev/reference/apis/js-apis-osAccount.md b/en/application-dev/reference/apis/js-apis-osAccount.md
index c7b8ecb87cca8ffe72417ca65c07086c8421fae1..94a4257dfcc0af730c79334f61473c4811cb3bfd 100644
--- a/en/application-dev/reference/apis/js-apis-osAccount.md
+++ b/en/application-dev/reference/apis/js-apis-osAccount.md
@@ -304,13 +304,13 @@ Checks whether an OS account is activated. This API uses a promise to return the
}
```
-### checkConstraintEnabled9+
+### checkOsAccountConstraintEnabled9+
-checkConstraintEnabled(localId: number, constraint: string, callback: AsyncCallback<boolean>): void
+checkOsAccountConstraintEnabled(localId: number, constraint: string, callback: AsyncCallback<boolean>): void
Checks whether the specified constraint is enabled for an OS account. This API uses an asynchronous callback to return the result.
-**Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS
+**Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS or ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
**System capability**: SystemCapability.Account.OsAccount
@@ -337,25 +337,25 @@ Checks whether the specified constraint is enabled for an OS account. This API u
let localId = 100;
let constraint = "constraint.wifi";
try {
- accountManager.checkConstraintEnabled(localId, constraint, (err, isEnabled)=>{
+ accountManager.checkOsAccountConstraintEnabled(localId, constraint, (err, isEnabled)=>{
if (err) {
- console.log("checkConstraintEnabled failed, error: " + JSON.stringify(err));
+ console.log("checkOsAccountConstraintEnabled failed, error: " + JSON.stringify(err));
} else {
- console.log("checkConstraintEnabled successfully, isEnabled: " + isEnabled);
+ console.log("checkOsAccountConstraintEnabled successfully, isEnabled: " + isEnabled);
}
});
} catch (err) {
- console.log("checkConstraintEnabled exception: " + JSON.stringify(err));
+ console.log("checkOsAccountConstraintEnabled exception: " + JSON.stringify(err));
}
```
-### checkConstraintEnabled9+
+### checkOsAccountConstraintEnabled9+
-checkConstraintEnabled(localId: number, constraint: string): Promise<boolean>
+checkOsAccountConstraintEnabled(localId: number, constraint: string): Promise<boolean>
Checks whether the specified constraint is enabled for an OS account. This API uses a promise to return the result.
-**Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS
+**Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS or ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS
**System capability**: SystemCapability.Account.OsAccount
@@ -387,13 +387,13 @@ Checks whether the specified constraint is enabled for an OS account. This API u
let localId = 100;
let constraint = "constraint.wifi";
try {
- accountManager.checkConstraintEnabled(localId, constraint).then((isEnabled) => {
- console.log("checkConstraintEnabled successfully, isEnabled: " + isEnabled);
+ accountManager.checkOsAccountConstraintEnabled(localId, constraint).then((isEnabled) => {
+ console.log("checkOsAccountConstraintEnabled successfully, isEnabled: " + isEnabled);
}).catch((err) => {
- console.log("checkConstraintEnabled failed, error: " + JSON.stringify(err));
+ console.log("checkOsAccountConstraintEnabled failed, error: " + JSON.stringify(err));
});
} catch (err) {
- console.log("checkConstraintEnabled exception: " + JSON.stringify(err));
+ console.log("checkOsAccountConstraintEnabled exception: " + JSON.stringify(err));
}
```
@@ -973,9 +973,9 @@ Obtains the number of OS accounts created. This API uses a promise to return the
}
```
-### queryOsAccountLocalIdFromProcess9+
+### getOsAccountLocalId9+
-queryOsAccountLocalIdFromProcess(callback: AsyncCallback<number>): void
+getOsAccountLocalId(callback: AsyncCallback<number>): void
Obtains the ID of the OS account to which the current process belongs. This API uses an asynchronous callback to return the result.
@@ -998,21 +998,21 @@ Obtains the ID of the OS account to which the current process belongs. This API
```js
let accountManager = account_osAccount.getAccountManager();
try {
- accountManager.queryOsAccountLocalIdFromProcess((err, localId) => {
+ accountManager.getOsAccountLocalId((err, localId) => {
if (err) {
- console.log("queryOsAccountLocalIdFromProcess failed, error: " + JSON.stringify(err));
+ console.log("getOsAccountLocalId failed, error: " + JSON.stringify(err));
} else {
- console.log("queryOsAccountLocalIdFromProcess successfully, localId: " + localId);
+ console.log("getOsAccountLocalId successfully, localId: " + localId);
}
});
} catch (err) {
- console.log("queryOsAccountLocalIdFromProcess exception: " + JSON.stringify(err));
+ console.log("getOsAccountLocalId exception: " + JSON.stringify(err));
}
```
-### queryOsAccountLocalIdFromProcess9+
+### getOsAccountLocalId9+
-queryOsAccountLocalIdFromProcess(): Promise<number>
+getOsAccountLocalId(): Promise<number>
Obtains the ID of the OS account to which the current process belongs. This API uses a promise to return the result.
@@ -1035,19 +1035,19 @@ Obtains the ID of the OS account to which the current process belongs. This API
```js
let accountManager = account_osAccount.getAccountManager();
try {
- accountManager.queryOsAccountLocalIdFromProcess().then((localId) => {
- console.log("queryOsAccountLocalIdFromProcess successfully, localId: " + localId);
+ accountManager.getOsAccountLocalId().then((localId) => {
+ console.log("getOsAccountLocalId successfully, localId: " + localId);
}).catch((err) => {
- console.log("queryOsAccountLocalIdFromProcess failed, error: " + JSON.stringify(err));
+ console.log("getOsAccountLocalId failed, error: " + JSON.stringify(err));
});
} catch (err) {
- console.log('queryOsAccountLocalIdFromProcess exception: ' + JSON.stringify(err));
+ console.log('getOsAccountLocalId exception: ' + JSON.stringify(err));
}
```
-### queryOsAccountLocalIdFromUid9+
+### getOsAccountLocalIdForUid9+
-queryOsAccountLocalIdFromUid(uid: number, callback: AsyncCallback<number>): void
+getOsAccountLocalIdForUid(uid: number, callback: AsyncCallback<number>): void
Obtains the OS account ID based on the process UID. This API uses an asynchronous callback to return the result.
@@ -1073,20 +1073,20 @@ Obtains the OS account ID based on the process UID. This API uses an asynchronou
let accountManager = account_osAccount.getAccountManager();
let uid = 12345678;
try {
- accountManager.queryOsAccountLocalIdFromUid(uid, (err, localId) => {
+ accountManager.getOsAccountLocalIdForUid(uid, (err, localId) => {
if (err) {
- console.log("queryOsAccountLocalIdFromUid failed, error: " + JSON.stringify(err));
+ console.log("getOsAccountLocalIdForUid failed, error: " + JSON.stringify(err));
}
- console.log("queryOsAccountLocalIdFromUid successfully, localId: " + localId);
+ console.log("getOsAccountLocalIdForUid successfully, localId: " + localId);
});
} catch (err) {
- console.log("queryOsAccountLocalIdFromUid exception: " + JSON.stringify(err));
+ console.log("getOsAccountLocalIdForUid exception: " + JSON.stringify(err));
}
```
-### queryOsAccountLocalIdFromUid9+
+### getOsAccountLocalIdForUid9+
-queryOsAccountLocalIdFromUid(uid: number): Promise<number>
+getOsAccountLocalIdForUid(uid: number): Promise<number>
Obtains the OS account ID based on the process UID. This API uses a promise to return the result.
@@ -1117,19 +1117,19 @@ Obtains the OS account ID based on the process UID. This API uses a promise to r
let accountManager = account_osAccount.getAccountManager();
let uid = 12345678;
try {
- accountManager.queryOsAccountLocalIdFromUid(uid).then((localId) => {
- console.log("queryOsAccountLocalIdFromUid successfully, localId: " + localId);
+ accountManager.getOsAccountLocalIdForUid(uid).then((localId) => {
+ console.log("getOsAccountLocalIdForUid successfully, localId: " + localId);
}).catch((err) => {
- console.log("queryOsAccountLocalIdFromUid failed, error: " + JSON.stringify(err));
+ console.log("getOsAccountLocalIdForUid failed, error: " + JSON.stringify(err));
});
} catch (err) {
- console.log('queryOsAccountLocalIdFromUid exception: ' + JSON.stringify(err));
+ console.log('getOsAccountLocalIdForUid exception: ' + JSON.stringify(err));
}
```
-### queryOsAccountLocalIdFromDomain9+
+### getOsAccountLocalIdForDomain9+
-queryOsAccountLocalIdFromDomain(domainInfo: DomainAccountInfo, callback: AsyncCallback<number>): void
+getOsAccountLocalIdForDomain(domainInfo: DomainAccountInfo, callback: AsyncCallback<number>): void
Obtains the OS account ID based on the domain account information. This API uses an asynchronous callback to return the result.
@@ -1157,21 +1157,21 @@ Obtains the OS account ID based on the domain account information. This API uses
let domainInfo = {domain: 'testDomain', accountName: 'testAccountName'};
let accountManager = account_osAccount.getAccountManager();
try {
- accountManager.queryOsAccountLocalIdFromDomain(domainInfo, (err, localId) => {
+ accountManager.getOsAccountLocalIdForDomain(domainInfo, (err, localId) => {
if (err) {
- console.log("queryOsAccountLocalIdFromDomain failed, error: " + JSON.stringify(err));
+ console.log("getOsAccountLocalIdForDomain failed, error: " + JSON.stringify(err));
} else {
- console.log("queryOsAccountLocalIdFromDomain successfully, localId: " + localId);
+ console.log("getOsAccountLocalIdForDomain successfully, localId: " + localId);
}
});
} catch (err) {
- console.log('queryOsAccountLocalIdFromDomain exception: ' + JSON.stringify(err));
+ console.log('getOsAccountLocalIdForDomain exception: ' + JSON.stringify(err));
}
```
-### queryOsAccountLocalIdFromDomain9+
+### getOsAccountLocalIdForDomain9+
-queryOsAccountLocalIdFromDomain(domainInfo: DomainAccountInfo): Promise<number>
+getOsAccountLocalIdForDomain(domainInfo: DomainAccountInfo): Promise<number>
Obtains the OS account ID based on the domain account information. This API uses a promise to return the result.
@@ -1204,13 +1204,13 @@ Obtains the OS account ID based on the domain account information. This API uses
let accountManager = account_osAccount.getAccountManager();
let domainInfo = {domain: 'testDomain', accountName: 'testAccountName'};
try {
- accountManager.queryOsAccountLocalIdFromDomain(domainInfo).then((localId) => {
- console.log("queryOsAccountLocalIdFromDomain successfully, localId: " + localId);
+ accountManager.getOsAccountLocalIdForDomain(domainInfo).then((localId) => {
+ console.log("getOsAccountLocalIdForDomain successfully, localId: " + localId);
}).catch((err) => {
- console.log("queryOsAccountLocalIdFromDomain failed, error: " + JSON.stringify(err));
+ console.log("getOsAccountLocalIdForDomain failed, error: " + JSON.stringify(err));
});
} catch (err) {
- console.log("queryOsAccountLocalIdFromDomain exception: " + JSON.stringify(err));
+ console.log("getOsAccountLocalIdForDomain exception: " + JSON.stringify(err));
}
```
@@ -1456,9 +1456,9 @@ Obtains information about all the OS accounts created. This API uses a promise t
}
```
-### getActivatedOsAccountIds9+
+### getActivatedOsAccountLocalIds9+
-getActivatedOsAccountIds(callback: AsyncCallback<Array<number>>): void
+getActivatedOsAccountLocalIds(callback: AsyncCallback<Array<number>>): void
Obtains information about all activated OS accounts. This API uses an asynchronous callback to return the result.
@@ -1481,21 +1481,21 @@ Obtains information about all activated OS accounts. This API uses an asynchrono
```js
let accountManager = account_osAccount.getAccountManager();
try {
- accountManager.getActivatedOsAccountIds((err, idArray)=>{
- console.log('getActivatedOsAccountIds err:' + JSON.stringify(err));
- console.log('getActivatedOsAccountIds idArray length:' + idArray.length);
+ accountManager.getActivatedOsAccountLocalIds((err, idArray)=>{
+ console.log('getActivatedOsAccountLocalIds err:' + JSON.stringify(err));
+ console.log('getActivatedOsAccountLocalIds idArray length:' + idArray.length);
for(let i=0;i9+
+### getActivatedOsAccountLocalIds9+
-getActivatedOsAccountIds(): Promise<Array<number>>
+getActivatedOsAccountLocalIds(): Promise<Array<number>>
Obtains information about all activated OS accounts. This API uses a promise to return the result.
@@ -1518,13 +1518,13 @@ Obtains information about all activated OS accounts. This API uses a promise to
```js
let accountManager = account_osAccount.getAccountManager();
try {
- accountManager.getActivatedOsAccountIds().then((idArray) => {
- console.log('getActivatedOsAccountIds, idArray: ' + idArray);
+ accountManager.getActivatedOsAccountLocalIds().then((idArray) => {
+ console.log('getActivatedOsAccountLocalIds, idArray: ' + idArray);
}).catch((err) => {
- console.log('getActivatedOsAccountIds err: ' + JSON.stringify(err));
+ console.log('getActivatedOsAccountLocalIds err: ' + JSON.stringify(err));
});
} catch (e) {
- console.log('getActivatedOsAccountIds exception:' + JSON.stringify(e));
+ console.log('getActivatedOsAccountLocalIds exception:' + JSON.stringify(e));
}
```
@@ -2214,9 +2214,9 @@ Sets a profile photo for an OS account. This API uses a promise to return the re
}
```
-### queryOsAccountLocalIdBySerialNumber9+
+### getOsAccountLocalIdForSerialNumber9+
-queryOsAccountLocalIdBySerialNumber(serialNumber: number, callback: AsyncCallback<number>): void
+getOsAccountLocalIdForSerialNumber(serialNumber: number, callback: AsyncCallback<number>): void
Obtains the OS account ID based on the serial number (SN). This API uses an asynchronous callback to return the result.
@@ -2243,7 +2243,7 @@ Obtains the OS account ID based on the serial number (SN). This API uses an asyn
let accountManager = account_osAccount.getAccountManager();
let serialNumber = 12345;
try {
- accountManager.queryOsAccountLocalIdBySerialNumber(serialNumber, (err, localId)=>{
+ accountManager.getOsAccountLocalIdForSerialNumber(serialNumber, (err, localId)=>{
console.log('ger localId err:' + JSON.stringify(err));
console.log('get localId:' + localId + ' by serialNumber: ' + serialNumber);
});
@@ -2252,9 +2252,9 @@ Obtains the OS account ID based on the serial number (SN). This API uses an asyn
}
```
-### queryOsAccountLocalIdBySerialNumber9+
+### getOsAccountLocalIdForSerialNumber9+
-queryOsAccountLocalIdBySerialNumber(serialNumber: number): Promise<number>
+getOsAccountLocalIdForSerialNumber(serialNumber: number): Promise<number>
Obtains the OS account ID based on the SN. This API uses a promise to return the result.
@@ -2286,19 +2286,19 @@ Obtains the OS account ID based on the SN. This API uses a promise to return the
let accountManager = account_osAccount.getAccountManager();
let serialNumber = 12345;
try {
- accountManager.queryOsAccountLocalIdBySerialNumber(serialNumber).then((localId) => {
- console.log('queryOsAccountLocalIdBySerialNumber localId: ' + localId);
+ accountManager.getOsAccountLocalIdForSerialNumber(serialNumber).then((localId) => {
+ console.log('getOsAccountLocalIdForSerialNumber localId: ' + localId);
}).catch((err) => {
- console.log('queryOsAccountLocalIdBySerialNumber err: ' + JSON.stringify(err));
+ console.log('getOsAccountLocalIdForSerialNumber err: ' + JSON.stringify(err));
});
} catch (e) {
- console.log('queryOsAccountLocalIdBySerialNumber exception: ' + JSON.stringify(e));
+ console.log('getOsAccountLocalIdForSerialNumber exception: ' + JSON.stringify(e));
}
```
-### querySerialNumberByOsAccountLocalId9+
+### getSerialNumberForOsAccountLocalId9+
-querySerialNumberByOsAccountLocalId(localId: number, callback: AsyncCallback<number>): void
+getSerialNumberForOsAccountLocalId(localId: number, callback: AsyncCallback<number>): void
Obtains the SN of an OS account based on the account ID. This API uses an asynchronous callback to return the result.
@@ -2325,7 +2325,7 @@ Obtains the SN of an OS account based on the account ID. This API uses an asynch
let accountManager = account_osAccount.getAccountManager();
let localId = 100;
try {
- accountManager.querySerialNumberByOsAccountLocalId(localId, (err, serialNumber)=>{
+ accountManager.getSerialNumberForOsAccountLocalId(localId, (err, serialNumber)=>{
console.log('ger serialNumber err:' + JSON.stringify(err));
console.log('get serialNumber:' + serialNumber + ' by localId: ' + localId);
});
@@ -2334,9 +2334,9 @@ Obtains the SN of an OS account based on the account ID. This API uses an asynch
}
```
-### querySerialNumberByOsAccountLocalId9+
+### getSerialNumberForOsAccountLocalId9+
-querySerialNumberByOsAccountLocalId(localId: number): Promise<number>
+getSerialNumberForOsAccountLocalId(localId: number): Promise<number>
Obtains the SN of an OS account based on the account ID. This API uses a promise to return the result.
@@ -2368,13 +2368,13 @@ Obtains the SN of an OS account based on the account ID. This API uses a promise
let accountManager = account_osAccount.getAccountManager();
let localId = 100;
try {
- accountManager.querySerialNumberByOsAccountLocalId(localId).then((serialNumber) => {
- console.log('querySerialNumberByOsAccountLocalId serialNumber: ' + serialNumber);
+ accountManager.getSerialNumberForOsAccountLocalId(localId).then((serialNumber) => {
+ console.log('getSerialNumberForOsAccountLocalId serialNumber: ' + serialNumber);
}).catch((err) => {
- console.log('querySerialNumberByOsAccountLocalId err: ' + JSON.stringify(err));
+ console.log('getSerialNumberForOsAccountLocalId err: ' + JSON.stringify(err));
});
} catch (e) {
- console.log('querySerialNumberByOsAccountLocalId exception:' + JSON.stringify(e));
+ console.log('getSerialNumberForOsAccountLocalId exception:' + JSON.stringify(e));
}
```
@@ -2462,9 +2462,9 @@ Unsubscribes from the OS account activation states, including the states of the
}
```
-### getBundleIdFromUid9+
+### getBundleIdForUid9+
-getBundleIdFromUid(uid: number, callback: AsyncCallback<number>): void;
+getBundleIdForUid(uid: number, callback: AsyncCallback<number>): void;
Obtains the bundle ID based on the UID. This API uses an asynchronous callback to return the result.
@@ -2492,17 +2492,17 @@ Obtains the bundle ID based on the UID. This API uses an asynchronous callback t
let accountManager = account_osAccount.getAccountManager();
let testUid = 1000000;
try {
- accountManager.getBundleIdFromUid(testUid, (err, bundleId) => {
- console.info('getBundleIdFromUid errInfo:' + JSON.stringify(err));
- console.info('getBundleIdFromUid bundleId:' + JSON.stringify(bundleId));
+ accountManager.getBundleIdForUid(testUid, (err, bundleId) => {
+ console.info('getBundleIdForUid errInfo:' + JSON.stringify(err));
+ console.info('getBundleIdForUid bundleId:' + JSON.stringify(bundleId));
});
} catch (e) {
- console.info('getBundleIdFromUid exception:' + JSON.stringify(e));
+ console.info('getBundleIdForUid exception:' + JSON.stringify(e));
}
```
-### getBundleIdFromUid9+
+### getBundleIdForUid9+
-getBundleIdFromUid(uid: number): Promise<number>;
+getBundleIdForUid(uid: number): Promise<number>;
Obtains the bundle ID based on the UID. This API uses a promise to return the result.
@@ -2535,13 +2535,13 @@ Obtains the bundle ID based on the UID. This API uses a promise to return the re
let accountManager = account_osAccount.getAccountManager();
let testUid = 1000000;
try {
- accountManager.getBundleIdFromUid(testUid).then((result) => {
- console.info('getBundleIdFromUid bundleId:' + JSON.stringify(result));
+ accountManager.getBundleIdForUid(testUid).then((result) => {
+ console.info('getBundleIdForUid bundleId:' + JSON.stringify(result));
}).catch((err)=>{
- console.info('getBundleIdFromUid errInfo:' + JSON.stringify(err));
+ console.info('getBundleIdForUid errInfo:' + JSON.stringify(err));
});
} catch (e) {
- console.info('getBundleIdFromUid exception:' + JSON.stringify(e));
+ console.info('getBundleIdForUid exception:' + JSON.stringify(e));
}
```
@@ -2620,9 +2620,9 @@ Checks whether the current process belongs to the main OS account. This API uses
console.info('isMainOsAccount exception:' + JSON.stringify(e));
}
```
-### queryOsAccountConstraintSourceTypes9+
+### getOsAccountConstraintSourceTypes9+
-queryOsAccountConstraintSourceTypes(localId: number, constraint: string, callback: AsyncCallback<Array<ConstraintSourceTypeInfo>>): void;
+getOsAccountConstraintSourceTypes(localId: number, constraint: string, callback: AsyncCallback<Array<ConstraintSourceTypeInfo>>): void;
Obtains the constraint source information of an OS account. This API uses an asynchronous callback to return the result.
@@ -2653,18 +2653,18 @@ Obtains the constraint source information of an OS account. This API uses an asy
```js
let accountManager = account_osAccount.getAccountManager();
try {
- accountManager.queryOsAccountConstraintSourceTypes(100, 'constraint.wifi',(err,sourceTypeInfos)=>{
- console.info('queryOsAccountConstraintSourceType errInfo:' + JSON.stringify(err));
- console.info('queryOsAccountConstraintSourceType sourceTypeInfos:' + JSON.stringify(sourceTypeInfos));
+ accountManager.getOsAccountConstraintSourceTypes(100, 'constraint.wifi',(err,sourceTypeInfos)=>{
+ console.info('getOsAccountConstraintSourceTypes errInfo:' + JSON.stringify(err));
+ console.info('getOsAccountConstraintSourceTypes sourceTypeInfos:' + JSON.stringify(sourceTypeInfos));
});
} catch (e) {
- console.info('queryOsAccountConstraintSourceType exception:' + JSON.stringify(e));
+ console.info('getOsAccountConstraintSourceTypes exception:' + JSON.stringify(e));
}
```
-### queryOsAccountConstraintSourceTypes9+
+### getOsAccountConstraintSourceTypes9+
-queryOsAccountConstraintSourceTypes(localId: number, constraint: string): Promise<Array<ConstraintSourceTypeInfo>>;
+getOsAccountConstraintSourceTypes(localId: number, constraint: string): Promise<Array<ConstraintSourceTypeInfo>>;
Obtains the constraint source information of an OS account. This API uses a promise to return the result.
@@ -2700,13 +2700,13 @@ Obtains the constraint source information of an OS account. This API uses a prom
```js
let accountManager = account_osAccount.getAccountManager();
try {
- accountManager.queryOsAccountConstraintSourceTypes(100, 'constraint.wifi').then((result) => {
- console.info('queryOsAccountConstraintSourceType sourceTypeInfos:' + JSON.stringify(result));
+ accountManager.getOsAccountConstraintSourceTypes(100, 'constraint.wifi').then((result) => {
+ console.info('getOsAccountConstraintSourceTypes sourceTypeInfos:' + JSON.stringify(result));
}).catch((err)=>{
- console.info('queryOsAccountConstraintSourceType errInfo:' + JSON.stringify(err));
+ console.info('getOsAccountConstraintSourceTypes errInfo:' + JSON.stringify(err));
});
} catch (e) {
- console.info('queryOsAccountConstraintSourceType exception:' + JSON.stringify(e));
+ console.info('getOsAccountConstraintSourceTypes exception:' + JSON.stringify(e));
}
```
@@ -2852,7 +2852,7 @@ Checks whether the specified constraint is enabled for an OS account. This API u
> **NOTE**
>
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [checkConstraintEnabled](#checkconstraintenabled9).
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [checkOsAccountConstraintEnabled](#checkosaccountconstraintenabled9).
**Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS
@@ -2889,7 +2889,7 @@ Checks whether the specified constraint is enabled for an OS account. This API u
> **NOTE**
>
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [checkConstraintEnabled](#checkconstraintenabled9-1).
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [checkOsAccountConstraintEnabled](#checkosaccountconstraintenabled9-1).
**Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS
@@ -3158,7 +3158,7 @@ Obtains the ID of the OS account to which the current process belongs. This API
> **NOTE**
>
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [queryOsAccountLocalIdFromProcess](#queryosaccountlocalidfromprocess9).
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getOsAccountLocalId](#getosaccountlocalid9).
**System capability**: SystemCapability.Account.OsAccount
@@ -3189,7 +3189,7 @@ Obtains the ID of the OS account to which the current process belongs. This API
> **NOTE**
>
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [queryOsAccountLocalIdFromProcess](#queryosaccountlocalidfromprocess9-1).
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getOsAccountLocalId](#getosaccountlocalid9-1).
**System capability**: SystemCapability.Account.OsAccount
@@ -3218,7 +3218,7 @@ Obtains the OS account ID based on the process UID. This API uses an asynchronou
> **NOTE**
>
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [queryOsAccountLocalIdFromUid](#queryosaccountlocalidfromuid9).
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getOsAccountLocalIdForUid](#getosaccountlocalidforuid9).
**System capability**: SystemCapability.Account.OsAccount
@@ -3251,7 +3251,7 @@ Obtains the OS account ID based on the process UID. This API uses a promise to r
> **NOTE**
>
-> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [queryOsAccountLocalIdFromUid](#queryosaccountlocalidfromuid9-1).
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getOsAccountLocalIdForUid](#getosaccountlocalidforuid9-1).
**System capability**: SystemCapability.Account.OsAccount
@@ -3287,7 +3287,7 @@ Obtains the OS account ID based on the domain account information. This API uses
> **NOTE**
>
-> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [queryOsAccountLocalIdFromDomain](#queryosaccountlocalidfromdomain9).
+> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getOsAccountLocalIdForDomain](#getosaccountlocalidfordomain9).
**Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS
@@ -3322,7 +3322,7 @@ Obtains the OS account ID based on the domain account information. This API uses
> **NOTE**
>
-> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [queryOsAccountLocalIdFromDomain](#queryosaccountlocalidfromdomain9-1).
+> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getOsAccountLocalIdForDomain](#getosaccountlocalidfordomain9-1).
**Required permissions**: ohos.permission.MANAGE_LOCAL_ACCOUNTS
@@ -3430,7 +3430,7 @@ Obtains information about all activated OS accounts. This API uses an asynchrono
> **NOTE**
>
-> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getActivatedOsAccountIds](#getactivatedosaccountids9).
+> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getActivatedOsAccountLocalIds](#getactivatedosaccountlocalids9).
**System capability**: SystemCapability.Account.OsAccount
@@ -3459,7 +3459,7 @@ queryActivatedOsAccountIds(): Promise<Array<number>>
> **NOTE**
>
-> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getActivatedOsAccountIds](#getactivatedosaccountids9-1).
+> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getActivatedOsAccountLocalIds](#getactivatedosaccountlocalids9-1).
Obtains information about all activated OS accounts. This API uses a promise to return the result.
@@ -3669,7 +3669,7 @@ Obtains the OS account ID based on the SN. This API uses an asynchronous callbac
> **NOTE**
>
-> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [queryOsAccountLocalIdBySerialNumber](#queryosaccountlocalidbyserialnumber9).
+> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getOsAccountLocalIdForSerialNumber](#getosaccountlocalidforserialnumber9).
**System capability**: SystemCapability.Account.OsAccount
@@ -3695,11 +3695,11 @@ Obtains the OS account ID based on the SN. This API uses an asynchronous callbac
getOsAccountLocalIdBySerialNumber(serialNumber: number): Promise<number>
-Obtains the OS account ID based on the serial number. This API uses a promise to return the result.
+Obtains the OS account ID based on the SN. This API uses a promise to return the result.
> **NOTE**
>
-> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [queryOsAccountLocalIdBySerialNumber](#queryosaccountlocalidbyserialnumber9-1).
+> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getOsAccountLocalIdForSerialNumber](#getosaccountlocalidforserialnumber9-1).
**System capability**: SystemCapability.Account.OsAccount
@@ -3735,7 +3735,7 @@ Obtains the SN of an OS account based on the account ID. This API uses an asynch
> **NOTE**
>
-> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [querySerialNumberByOsAccountLocalId](#queryserialnumberbyosaccountlocalid9).
+> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getSerialNumberForOsAccountLocalId](#getserialnumberforosaccountlocalid9).
**System capability**: SystemCapability.Account.OsAccount
@@ -3765,7 +3765,7 @@ Obtains the SN of an OS account based on the account ID. This API uses a promise
> **NOTE**
>
-> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [querySerialNumberByOsAccountLocalId](#queryserialnumberbyosaccountlocalid9-1).
+> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getSerialNumberForOsAccountLocalId](#getserialnumberforosaccountlocalid9-1).
**System capability**: SystemCapability.Account.OsAccount
diff --git a/en/application-dev/reference/apis/js-apis-permissionrequestresult.md b/en/application-dev/reference/apis/js-apis-permissionrequestresult.md
index 03e049e9a1bb1076f770bd2d89dc25455c453ee6..0a0a8ec3833247e78fe5ea513ab7d9383ebe92ac 100644
--- a/en/application-dev/reference/apis/js-apis-permissionrequestresult.md
+++ b/en/application-dev/reference/apis/js-apis-permissionrequestresult.md
@@ -14,7 +14,7 @@ The **PermissionRequestResult** module defines the result of a permission reques
| Name| Type| Readable| Writable| Description|
| -------- | -------- | -------- | -------- | -------- |
| permissions | Array<string> | Yes| No| Permissions requested.|
-| authResults | Array<number> | Yes| No| Whether the requested permissions are granted. The value **0** means that the requests permissions are granted, and a non-zero value means the opposite.|
+| authResults | Array<number> | Yes| No|Result of the permission Request. **-1**: The permission has been set and no dialog box will be displayed. Users can modify the permission in **Settings**. **0**: No operation is required. **1**: Dynamic user authorization is required via a dialog window . **2**: The request is invalid. Possible causes are as follows: - The permission is not declared in the configuration file. - The permission name is invalid. - Special conditions for applying for the permission do not satisfied. See [ohos.permission.LOCATION](../../security/permission-list.md#ohospermissionlocation) and [ohos.permission.APPROXIMATELY_LOCATION](../../security/permission-list.md#ohospermissionapproximately_location).|
## Usage
@@ -36,5 +36,3 @@ try {
console.log(`catch err->${JSON.stringify(err)}`);
}
```
-
-
\ No newline at end of file
diff --git a/en/application-dev/reference/apis/js-apis-plainarray.md b/en/application-dev/reference/apis/js-apis-plainarray.md
index 8ccc7d7fb4bc1a5f876b8da75c181f8547e32f51..387577bb2409ae399f46a225e53e3d00db9035e6 100644
--- a/en/application-dev/reference/apis/js-apis-plainarray.md
+++ b/en/application-dev/reference/apis/js-apis-plainarray.md
@@ -621,7 +621,7 @@ let plainArray = new PlainArray();
plainArray.add(1, "squirrel");
plainArray.add(2, "sparrow");
plainArray.forEach((value, index) => {
- console.log("value:" + value, index);
+ console.log("value:" + value, "index:" + index);
});
```
diff --git a/en/application-dev/reference/apis/js-apis-process.md b/en/application-dev/reference/apis/js-apis-process.md
index 318ba307995a44950461ae3b9a43e92743c37364..02dbfe617a26b98d8c0d5b5d533fa16e2bcede04 100755
--- a/en/application-dev/reference/apis/js-apis-process.md
+++ b/en/application-dev/reference/apis/js-apis-process.md
@@ -18,139 +18,117 @@ import process from '@ohos.process';
| Name| Type| Readable| Writable| Description|
| -------- | -------- | -------- | -------- | -------- |
-| egid | number | Yes| No| Effective group identifier (EGID) of a process. **System API**: This is a system API. It is used only to test applications.|
-| euid | number | Yes| No| Effective user identifier (EUID) of a process. **System API**: This is a system API. It is used only to test applications.|
-| gid | number | Yes| No| Group identifier (GID) of a process. **System API**: This is a system API. It is used only to test applications.|
-| uid | number | Yes| No| User identifier (UID) of a process.|
+| egid | number | Yes| No| Effective group identifier (EGID) of the process. **System API**: This is a system API. It is used only to test applications.|
+| euid | number | Yes| No| Effective user identifier (EUID) of the process. **System API**: This is a system API. It is used only to test applications.|
+| gid | number | Yes| No| Group identifier (GID) of the process. **System API**: This is a system API. It is used only to test applications.|
+| uid | number | Yes| No| User identifier (UID) of the process.|
| groups | number[] | Yes| No| Array with supplementary group IDs. **System API**: This is a system API. It is used only to test applications.|
-| pid | number | Yes| No| Process ID (PID) of a process.|
-| ppid | number | Yes| No| Parent process ID (PPID) of a process. **System API**: This is a system API. It is used only to test applications.|
-| tid8+ | number | Yes| No| Thread ID (TID) of a process.|
+| pid | number | Yes| No| Process ID (PID) of the process.|
+| ppid | number | Yes| No| Parent process ID (PPID) of the process. **System API**: This is a system API. It is used only to test applications.|
+| tid8+ | number | Yes| No| Thread ID (TID) of the thread.|
-## ProcessManager9+
+## EventListener
-Provides APIs for throwing exceptions during the addition of a process.
+**System capability**: SystemCapability.Utils.Lang
-### isAppUid9+
+| Name| Description|
+| -------- | -------- |
+| EventListener = (evt: Object) => void | Event to store.|
-isAppUid(v: number): boolean
-Checks whether a UID belongs to this application.
+## process.isIsolatedProcess8+
-**System capability**: SystemCapability.Utils.Lang
+isIsolatedProcess(): boolean
-**Parameters**
+Checks whether this process is isolated.
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| v | number | Yes| UID.|
+**System capability**: SystemCapability.Utils.Lang
**Return value**
| Type| Description|
| -------- | -------- |
-| boolean | Returns **true** if the UID is the application's UID; returns **false** otherwise.|
+| boolean | Returns **true** if the process is isolated; returns **false** otherwise.|
**Example**
```js
-let pro = new process.ProcessManager();
-let result = pro.isAppUid(688);
+let result = process.isIsolatedProcess();
```
-### getUidForName9+
+## process.is64Bit8+
-getUidForName(v: string): number
+is64Bit(): boolean
-Obtains the process UID based on the process name.
+Checks whether this process is running in a 64-bit environment.
**System capability**: SystemCapability.Utils.Lang
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| v | string | Yes| Name of a process.|
-
**Return value**
| Type| Description|
| -------- | -------- |
-| number | Process UID.|
+| boolean | Returns **true** if the process is running in a 64-bit environment; returns **false** otherwise.|
**Example**
```js
-let pro = new process.ProcessManager();
-let pres = pro .getUidForName("tool");
+let result = process.is64Bit();
```
-### getThreadPriority9+
+## process.getStartRealtime8+
-getThreadPriority(v: number): number
+getStartRealtime(): number
-Obtains the thread priority based on the specified TID.
+Obtains the duration, in milliseconds, from the time the system starts to the time the process starts.
**System capability**: SystemCapability.Utils.Lang
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| v | number | Yes| TID.|
-
**Return value**
| Type| Description|
| -------- | -------- |
-| number | Priority of the thread.|
+| number | Duration obtained, in millisecond.|
**Example**
```js
-let pro = new process.ProcessManager();
-let tid = process.tid;
-let pres = pro.getThreadPriority(tid);
+let realtime = process.getStartRealtime();
```
+## process.getPastCpuTime8+
-### getSystemConfig9+
-
-getSystemConfig(name: number): number
+getPastCpuTime(): number
-Obtains the system configuration.
+Obtains the CPU time (in milliseconds) from the time the process starts to the current time.
**System capability**: SystemCapability.Utils.Lang
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| name | number | Yes| System configuration parameter name.|
-
**Return value**
| Type| Description|
| -------- | -------- |
-| number | System configuration obtained.|
+| number | CPU time obtained, in millisecond.|
**Example**
```js
-let pro = new process.ProcessManager();
-let _SC_ARG_MAX = 0;
-let pres = pro.getSystemConfig(_SC_ARG_MAX);
+let result = process.getPastCpuTime() ;
```
-### getEnvironmentVar9+
+## process.runCmd
-getEnvironmentVar(name: string): string
+runCmd(command: string, options?: { timeout?: number, killSignal?: number | string, maxBuffer?: number }): ChildProcess
-Obtains the value of an environment variable.
+Forks a new process to run a shell command and returns the **ChildProcess** object.
+
+**System API**: This is a system API.
+
+It is used only to test applications.
**System capability**: SystemCapability.Utils.Lang
@@ -158,29 +136,58 @@ Obtains the value of an environment variable.
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
-| name | string | Yes| Environment variable name.|
+| command | string | Yes| Shell command to run.|
+| options | Object | No| Related parameters.|
+
+**Table 1** options
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| timeout | number | No| Maximum running time (in milliseconds) of the child process. When the running time of the child process exceeds the value of this parameter, the parent process sends a **killSignal** to the child process to terminate it. The default value is **0**.|
+| killSignal | number \| string | No| Signal sent to the child process when the running time of a child process exceeds the timeout period. The default value is **SIGTERM**.|
+| maxBuffer | number | No| Maximum buffer size for the standard input and output of the child process. When the size is exceeded, the child process will be terminated. The default value is **1024 \* 1024**.|
**Return value**
| Type| Description|
| -------- | -------- |
-| string | Value of the environment variable.|
+| [ChildProcess](#childprocess) | **ChildProcess** object.|
**Example**
```js
-let pro = new process.ProcessManager();
-let pres = pro.getEnvironmentVar("PATH");
+let child = process.runCmd('ls', { maxBuffer : 2 });
+let result = child.wait();
+child.getOutput.then(val=>{
+ console.log("child.getOutput = " + val);
+})
```
-### exit9+
+## process.abort
-exit(code: number): void
+abort(): void
-Terminates this process.
+Aborts a process and generates a core file. This method will cause a process to exit immediately. Exercise caution when using this method.
+
+**System capability**: SystemCapability.Utils.Lang
-Exercise caution when using this API.
+**Example**
+
+```js
+process.abort();
+```
+
+
+## process.on
+
+on(type: string, listener: EventListener): void
+
+Stores the events triggered by the user.
+
+**System API**: This is a system API.
+
+It is used only to test applications.
**System capability**: SystemCapability.Utils.Lang
@@ -188,21 +195,27 @@ Exercise caution when using this API.
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
-| code | number | Yes| Exit code of the process.|
+| type | string | Yes| Type of the events to store. |
+| listener | [EventListener](#eventlistener) | Yes| Callback invoked to return the event.|
**Example**
```js
-let pro = new process.ProcessManager();
-pro.exit(0);
+process.on("data", (e)=>{
+ console.log("data callback");
+})
```
-### kill9+
+## process.off
-kill(signal: number, pid: number): boolean
+off(type: string): boolean
-Sends a signal to the specified process to terminate it.
+Deletes the event stored by the user.
+
+**System API**: This is a system API.
+
+It is used only to test applications.
**System capability**: SystemCapability.Utils.Lang
@@ -210,45 +223,29 @@ Sends a signal to the specified process to terminate it.
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
-| pid | number | Yes| PID of the process, to which the signal will be sent.|
-| signal | number | Yes| Signal to send.|
+| type | string | Yes| Type of the event to delete.|
**Return value**
| Type| Description|
| -------- | -------- |
-| boolean | Returns **true** if the signal is sent successfully; returns **false** otherwise.|
+| boolean | Returns **true** if the event is deleted; returns **false** otherwise.|
**Example**
```js
-let pro = new process.ProcessManager();
-let pres = process.pid;
-let result = pro.kill(28, pres);
+process.on("data", (e)=>{
+ console.log("data callback");
+})
+let result = process.off("data");
```
-## ChildProcess
-
-Allows a process to obtain the standard input and output of its child processes, send signals, and close its child processes.
-
-### Attributes
-
-**System capability**: SystemCapability.Utils.Lang
-
-| Name| Type| Readable| Writable| Description|
-| -------- | -------- | -------- | -------- | -------- |
-| pid | number | Yes| No| PID of the child process. **System API**: This is a system API. It is used only to test applications.|
-| ppid | number | Yes| No| PPID of the child process. **System API**: This is a system API. It is used only to test applications.|
-| exitCode | number | Yes| No| Exit code of the child process. **System API**: This is a system API. It is used only to test applications.|
-| killed | boolean | Yes| No| Whether the parent process successfully sends a signal to the child process to terminate it. **System API**: This is a system API. It is used only to test applications.|
-
-
-### wait
+## process.cwd
-wait(): Promise<number>
+cwd(): string
-Waits until the child process ends. This method uses a promise to return the exit code of the child process.
+Obtains the working directory of this process.
**System API**: This is a system API.
@@ -260,24 +257,20 @@ It is used only to test applications.
| Type| Description|
| -------- | -------- |
-| Promise<number> | Promise used to return the exit code of the child process.|
+| string| Working directory obtained.|
**Example**
```js
-let child = process.runCmd('ls');
-let result = child.wait();
-result.then(val=>{
- console.log("result = " + val);
-})
+let path = process.cwd();
```
-### getOutput
+## process.chdir
-getOutput(): Promise<Uint8Array>
+chdir(dir: string): void
-Obtains the standard output of the child process.
+Changes the working directory of this process.
**System API**: This is a system API.
@@ -285,81 +278,109 @@ It is used only to test applications.
**System capability**: SystemCapability.Utils.Lang
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| dir | string | Yes| Path|
+
+**Example**
+
+```js
+process.chdir('/system');
+```
+
+
+## process.uptime
+
+uptime(): number
+
+Obtains the running time of this process.
+
+**System capability**: SystemCapability.Utils.Lang
+
**Return value**
| Type| Description|
| -------- | -------- |
-| Promise<Uint8Array> | Promise used to return the standard output in a Uint8Array.|
+| number | Running time of the process, in seconds.|
**Example**
```js
-let child = process.runCmd('ls');
-let result = child.wait();
-child.getOutput().then(val=>{
- console.log("child.getOutput = " + val);
-})
+let time = process.uptime();
```
-### getErrorOutput
+## process.kill(deprecated)
-getErrorOutput(): Promise<Uint8Array>
-
-Obtains the standard error output of the child process.
+kill(signal: number, pid: number): boolean
-**System API**: This is a system API.
+Sends a signal to the specified process to terminate it.
-It is used only to test applications.
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [kill9+](#kill9) instead.
**System capability**: SystemCapability.Utils.Lang
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| pid | number | Yes| PID of the process, to which the signal will be sent.|
+| signal | number | Yes| Signal to send.|
+
**Return value**
| Type| Description|
| -------- | -------- |
-| Promise<Uint8Array> | Promise used to return the standard error output in a Uint8Array.|
+| boolean | Returns **true** if the signal is sent successfully; returns **false** otherwise.|
**Example**
```js
-let child = process.runCmd('madir test.text');
-let result = child.wait();
-child.getErrorOutput().then(val=>{
- console.log("child.getErrorOutput= " + val);
-})
+let pres = process.pid
+let result = process.kill(28, pres)
```
-### close
+## process.exit(deprecated)
-close(): void
+exit(code: number): void
-Closes the child process in running.
+Terminates this process.
-**System API**: This is a system API.
+Exercise caution when using this API. After this API is called, the application exits. If the input parameter is not 0, data loss or exceptions may occur.
-It is used only to test applications.
+> **NOTE**
+>
+> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [exit9+](#exit9) instead.
**System capability**: SystemCapability.Utils.Lang
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| code | number | Yes| Exit code of the process.|
+
**Example**
```js
-let child = process.runCmd('sleep 5; ls');
-child.close();
+process.exit(0);
```
-### kill
-
-kill(signal: number | string): void
+## process.getUidForName(deprecated)
-Sends a signal to the specified child process to terminate it.
+getUidForName(v: string): number
-**System API**: This is a system API.
+Obtains the process UID based on the process name.
-It is used only to test applications.
+> **NOTE**
+>
+> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getUidForName9+](#getuidforname9) instead.
**System capability**: SystemCapability.Utils.Lang
@@ -367,43 +388,63 @@ It is used only to test applications.
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
-| signal | number \| string | Yes| Number or string to send.|
+| v | string | Yes| Name of a process.|
+
+**Return value**
+
+| Type| Description|
+| -------- | -------- |
+| number | Process UID.|
**Example**
```js
-let child = process.runCmd('sleep 5; ls');
-child.kill(9);
+let pres = process.getUidForName("tool")
```
-## process.isIsolatedProcess8+
+## process.getThreadPriority(deprecated)
-isIsolatedProcess(): boolean
+getThreadPriority(v: number): number
-Checks whether this process is isolated.
+Obtains the thread priority based on the specified TID.
+
+> **NOTE**
+>
+> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getThreadPriority9+](#getthreadpriority9) instead.
**System capability**: SystemCapability.Utils.Lang
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| v | number | Yes| TID.|
+
**Return value**
| Type| Description|
| -------- | -------- |
-| boolean | Returns **true** if the process is isolated; returns **false** otherwise.|
+| number | Priority of the thread.|
**Example**
```js
-let result = process.isIsolatedProcess();
+let tid = process.tid;
+let pres = process.getThreadPriority(tid);
```
-## process.isAppUid8+
+## process.isAppUid(deprecated)
isAppUid(v: number): boolean
Checks whether a UID belongs to this application.
+> **NOTE**
+>
+> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [isAppUid9+](#isappuid9) instead.
+
**System capability**: SystemCapability.Utils.Lang
**Parameters**
@@ -416,7 +457,7 @@ Checks whether a UID belongs to this application.
| Type| Description|
| -------- | -------- |
-| boolean | Returns **true** if the UID is the application's UID; returns **false** otherwise.|
+| boolean | Returns **true** if the UID belongs to the application; returns **false** otherwise.|
**Example**
@@ -425,32 +466,47 @@ let result = process.isAppUid(688);
```
-## process.is64Bit8+
+## process.getSystemConfig(deprecated)
-is64Bit(): boolean
+getSystemConfig(name: number): number
-Checks whether this process is running in a 64-bit environment.
+Obtains the system configuration.
+
+> **NOTE**
+>
+> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getSystemConfig9+](#getsystemconfig9) instead.
**System capability**: SystemCapability.Utils.Lang
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| name | number | Yes| System configuration parameter name.|
+
**Return value**
| Type| Description|
| -------- | -------- |
-| boolean | Returns **true** if the process is running in a 64-bit environment; returns **false** otherwise.|
+| number | System configuration obtained.|
**Example**
```js
-let result = process.is64Bit();
+let _SC_ARG_MAX = 0
+let pres = process.getSystemConfig(_SC_ARG_MAX)
```
-## process.getUidForName8+
+## process.getEnvironmentVar(deprecated)
-getUidForName(v: string): number
+getEnvironmentVar(name: string): string
-Obtains the process UID based on the process name.
+Obtains the value of an environment variable.
+
+> **NOTE**
+>
+> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getEnvironmentVar9+](#getenvironmentvar9) instead.
**System capability**: SystemCapability.Utils.Lang
@@ -458,26 +514,32 @@ Obtains the process UID based on the process name.
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
-| v | string | Yes| Name of a process.|
+| name | string | Yes| Environment variable name.|
**Return value**
| Type| Description|
| -------- | -------- |
-| number | Process UID.|
+| string | Value of the environment variable.|
**Example**
```js
-let pres = process.getUidForName("tool")
+let pres = process.getEnvironmentVar("PATH")
```
-## process.getThreadPriority8+
+## ProcessManager9+
+
+Provides APIs for throwing exceptions during the addition of a process.
+
+A **ProcessManager** object is obtained through its own constructor.
+
+### isAppUid9+
-getThreadPriority(v: number): number
+isAppUid(v: number): boolean
-Obtains the thread priority based on the specified TID.
+Checks whether a UID belongs to this application.
**System capability**: SystemCapability.Utils.Lang
@@ -485,64 +547,80 @@ Obtains the thread priority based on the specified TID.
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
-| v | number | Yes| TID.|
+| v | number | Yes| UID.|
**Return value**
| Type| Description|
| -------- | -------- |
-| number | Priority of the thread.|
+| boolean | Returns **true** if the UID belongs to the application; returns **false** otherwise.|
**Example**
```js
-let tid = process.tid;
-let pres = process.getThreadPriority(tid);
+let pro = new process.ProcessManager();
+let result = pro.isAppUid(688);
```
-## process.getStartRealtime8+
+### getUidForName9+
-getStartRealtime(): number
+getUidForName(v: string): number
-Obtains the duration, in milliseconds, from the time the system starts to the time the process starts.
+Obtains the process UID based on the process name.
**System capability**: SystemCapability.Utils.Lang
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| v | string | Yes| Name of a process.|
+
**Return value**
| Type| Description|
| -------- | -------- |
-| number | Duration obtained.|
+| number | Process UID.|
**Example**
```js
-let realtime = process.getStartRealtime();
+let pro = new process.ProcessManager();
+let pres = pro .getUidForName("tool");
```
-## process.getPastCpuTime8+
-getPastCpuTime(): number
+### getThreadPriority9+
-Obtains the CPU time (in milliseconds) from the time the process starts to the current time.
+getThreadPriority(v: number): number
+
+Obtains the thread priority based on the specified TID.
**System capability**: SystemCapability.Utils.Lang
+**Parameters**
+
+| Name| Type| Mandatory| Description|
+| -------- | -------- | -------- | -------- |
+| v | number | Yes| TID.|
+
**Return value**
| Type| Description|
| -------- | -------- |
-| number | CPU time obtained.|
+| number | Priority of the thread.|
**Example**
```js
-let result = process.getPastCpuTime() ;
+let pro = new process.ProcessManager();
+let tid = process.tid;
+let pres = pro.getThreadPriority(tid);
```
-## process.getSystemConfig8+
+### getSystemConfig9+
getSystemConfig(name: number): number
@@ -565,12 +643,13 @@ Obtains the system configuration.
**Example**
```js
-let _SC_ARG_MAX = 0
-let pres = process.getSystemConfig(_SC_ARG_MAX)
+let pro = new process.ProcessManager();
+let _SC_ARG_MAX = 0;
+let pres = pro.getSystemConfig(_SC_ARG_MAX);
```
-## process.getEnvironmentVar8+
+### getEnvironmentVar9+
getEnvironmentVar(name: string): string
@@ -593,19 +672,18 @@ Obtains the value of an environment variable.
**Example**
```js
-let pres = process.getEnvironmentVar("PATH")
+let pro = new process.ProcessManager();
+let pres = pro.getEnvironmentVar("PATH");
```
-## process.runCmd
-
-runCmd(command: string, options?: { timeout?: number, killSignal?: number | string, maxBuffer?: number }): ChildProcess
+### exit9+
-Forks a new process to run a shell command and returns the **ChildProcess** object.
+exit(code: number): void
-**System API**: This is a system API.
+Terminates this process.
-It is used only to test applications.
+Exercise caution when using this API. After this API is called, the application exits. If the input parameter is not 0, data loss or exceptions may occur.
**System capability**: SystemCapability.Utils.Lang
@@ -613,54 +691,71 @@ It is used only to test applications.
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
-| command | string | Yes| Shell command to run.|
-| options | Object | No| Related parameters.|
+| code | number | Yes| Exit code of the process.|
-**Table 1** options
+**Example**
+
+```js
+let pro = new process.ProcessManager();
+pro.exit(0);
+```
+
+
+### kill9+
+
+kill(signal: number, pid: number): boolean
+
+Sends a signal to the specified process to terminate it.
+
+**System capability**: SystemCapability.Utils.Lang
+
+**Parameters**
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
-| timeout | number | No| Maximum running time (in ms) of the child process. When the running time of the child process exceeds the value of this parameter, the parent process sends a **killSignal** to the child process to terminate it. The default value is **0**.|
-| killSignal | number \| string | No| Signal sent to the child process when the running time of a child process exceeds the timeout period. The default value is **SIGTERM**.|
-| maxBuffer | number | No| Maximum buffer size for the standard input and output of the child process. When the size is exceeded, the child process will be terminated. The default value is **1024 \* 1024**.|
+| pid | number | Yes| PID of the process, to which the signal will be sent.|
+| signal | number | Yes| Signal to send.|
**Return value**
| Type| Description|
| -------- | -------- |
-| [ChildProcess](#childprocess) | **ChildProcess** object.|
+| boolean | Returns **true** if the signal is sent successfully; returns **false** otherwise.|
**Example**
```js
-let child = process.runCmd('ls', { maxBuffer : 2 });
-let result = child.wait();
-child.getOutput.then(val=>{
- console.log("child.getOutput = " + val);
-})
+let pro = new process.ProcessManager();
+let pres = process.pid;
+let result = pro.kill(28, pres);
```
-## process.abort
+## ChildProcess
-abort(): void
+The **ChildProcess** object is a new child process and can be obtained by calling [process.runCmd](#processruncmd). The main process can obtain the standard input and output of the child process, send signals to the child process, and close the child process.
-Aborts a process and generates a core file. This method will cause a process to exit immediately. Exercise caution when using this method.
+**System API**: This is a system API.
-**System capability**: SystemCapability.Utils.Lang
+### Attributes
-**Example**
+**System API**: This is a system API.
-```js
-process.abort();
-```
+**System capability**: SystemCapability.Utils.Lang
+
+| Name| Type| Readable| Writable| Description|
+| -------- | -------- | -------- | -------- | -------- |
+| pid | number | Yes| No| PID of the child process. **System API**: This is a system API. It is used only to test applications.|
+| ppid | number | Yes| No| PPID of the child process. **System API**: This is a system API. It is used only to test applications.|
+| exitCode | number | Yes| No| Exit code of the child process. **System API**: This is a system API. It is used only to test applications.|
+| killed | boolean | Yes| No| Whether the parent process successfully sends a signal to the child process to terminate it. **System API**: This is a system API. It is used only to test applications.|
-## process.on
+### wait
-on(type: string, listener: EventListener): void
+wait(): Promise<number>
-Stores the events triggered by the user.
+Waits until the child process ends. This method uses a promise to return the exit code of the child process.
**System API**: This is a system API.
@@ -668,33 +763,28 @@ It is used only to test applications.
**System capability**: SystemCapability.Utils.Lang
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| type | string | Yes| Type of the events to store. |
-| listener | EventListener | Yes| Callback invoked to return the event.|
-
-**Table 2** EventListener
+**Return value**
-| Name| Description|
+| Type| Description|
| -------- | -------- |
-| EventListener = (evt: Object) => void | Event to store.|
+| Promise<number> | Promise used to return the exit code of the child process.|
**Example**
```js
-process.on("data", (e)=>{
- console.log("data callback");
+let child = process.runCmd('ls');
+let result = child.wait();
+result.then(val=>{
+ console.log("result = " + val);
})
```
-## process.off
+### getOutput
-off(type: string): boolean
+getOutput(): Promise<Uint8Array>
-Deletes the event stored by the user.
+Obtains the standard output of the child process.
**System API**: This is a system API.
@@ -702,56 +792,57 @@ It is used only to test applications.
**System capability**: SystemCapability.Utils.Lang
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| type | string | Yes| Type of the event to delete.|
-
**Return value**
| Type| Description|
| -------- | -------- |
-| boolean | Returns **true** if the event is deleted; returns **false** otherwise.|
+| Promise<Uint8Array> | Promise used to return the standard output in a Uint8Array.|
**Example**
```js
-process.on("data", (e)=>{
- console.log("data callback");
+let child = process.runCmd('ls');
+let result = child.wait();
+child.getOutput().then(val=>{
+ console.log("child.getOutput = " + val);
})
-let result = process.off("data");
```
-## process.exit
+### getErrorOutput
-exit(code: number): void
+getErrorOutput(): Promise<Uint8Array>
-Terminates this process.
+Obtains the standard error output of the child process.
+
+**System API**: This is a system API.
-Exercise caution when using this API.
+It is used only to test applications.
**System capability**: SystemCapability.Utils.Lang
-**Parameters**
+**Return value**
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| code | number | Yes| Exit code of the process.|
+| Type| Description|
+| -------- | -------- |
+| Promise<Uint8Array> | Promise used to return the standard error output in a Uint8Array.|
**Example**
```js
-process.exit(0);
+let child = process.runCmd('madir test.text');
+let result = child.wait();
+child.getErrorOutput().then(val=>{
+ console.log("child.getErrorOutput= " + val);
+})
```
-## process.cwd
+### close
-cwd(): string
+close(): void
-Obtains the working directory of this process.
+Closes the child process in running.
**System API**: This is a system API.
@@ -762,15 +853,16 @@ It is used only to test applications.
**Example**
```js
-let path = process.cwd();
+let child = process.runCmd('sleep 5; ls');
+child.close();
```
-## process.chdir
+### kill
-chdir(dir: string): void
+kill(signal: number | string): void
-Changes the working directory of this process.
+Sends a signal to the specified child process to terminate it.
**System API**: This is a system API.
@@ -782,60 +874,11 @@ It is used only to test applications.
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
-| dir | string | Yes| Path|
-
-**Example**
-
-```js
-process.chdir('/system');
-```
-
-
-## process.uptime
-
-uptime(): number
-
-Obtains the running time of this process.
-
-**System capability**: SystemCapability.Utils.Lang
-
-**Return value**
-
-| Type| Description|
-| -------- | -------- |
-| number | Running time of the process, in seconds.|
-
-**Example**
-
-```js
-let time = process.uptime();
-```
-
-
-## process.kill
-
-kill(signal: number, pid: number): boolean
-
-Sends a signal to the specified process to terminate it.
-
-**System capability**: SystemCapability.Utils.Lang
-
-**Parameters**
-
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| pid | number | Yes| PID of the process, to which the signal will be sent.|
-| signal | number | Yes| Signal to send.|
-
-**Return value**
-
-| Type| Description|
-| -------- | -------- |
-| boolean | Returns **true** if the signal is sent successfully; returns **false** otherwise.|
+| signal | number \| string | Yes| Number or string to send.|
**Example**
```js
-let pres = process.pid
-let result = process.kill(28, pres)
+let child = process.runCmd('sleep 5; ls');
+child.kill(9);
```
diff --git a/en/application-dev/reference/apis/js-apis-queue.md b/en/application-dev/reference/apis/js-apis-queue.md
index e4adf559e862ddc954b7e75c3253fb8aa95b6b2a..56bb71d5b88e93c2364c23176543f131d134e9f2 100644
--- a/en/application-dev/reference/apis/js-apis-queue.md
+++ b/en/application-dev/reference/apis/js-apis-queue.md
@@ -201,7 +201,7 @@ queue.add(4);
queue.add(5);
queue.add(4);
queue.forEach((value, index) => {
- console.log("value:" + value, index);
+ console.log("value:" + value, "index:" + index);
});
```
diff --git a/en/application-dev/reference/apis/js-apis-reminderAgentManager.md b/en/application-dev/reference/apis/js-apis-reminderAgentManager.md
index f443c028e40072e8b402f93b54be1e9ecfdc0842..7d56973be54adf176ce6c22519cb125079f19df3 100644
--- a/en/application-dev/reference/apis/js-apis-reminderAgentManager.md
+++ b/en/application-dev/reference/apis/js-apis-reminderAgentManager.md
@@ -1,4 +1,4 @@
-# @ohos.reminderAgentManager (Reminder Agent Management)
+# @ohos.reminderAgentManager (reminderAgentManager)
The **reminderAgentManager** module provides APIs for publishing scheduled reminders through the reminder agent.
@@ -696,8 +696,8 @@ Sets the time information for a calendar reminder.
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| year | number | Yes| Year.|
-| month | number | Yes| Month.|
-| day | number | Yes| Date.|
-| hour | number | Yes| Hour.|
-| minute | number | Yes| Minute.|
-| second | number | No| Second.|
+| month | number | Yes| Month. The value ranges from 1 to 12.|
+| day | number | Yes| Day. The value ranges from 1 to 31.|
+| hour | number | Yes| Hour. The value ranges from 0 to 23.|
+| minute | number | Yes| Minute. The value ranges from 0 to 59.|
+| second | number | No| Second. The value ranges from 0 to 59.|
diff --git a/en/application-dev/reference/apis/js-apis-resourceschedule-workScheduler.md b/en/application-dev/reference/apis/js-apis-resourceschedule-workScheduler.md
index 0e7ad7e7c38f32e85af6ab3504252da38afb32eb..eb4c8609bbec28c19d441f065d94c716e13c2e31 100644
--- a/en/application-dev/reference/apis/js-apis-resourceschedule-workScheduler.md
+++ b/en/application-dev/reference/apis/js-apis-resourceschedule-workScheduler.md
@@ -430,7 +430,7 @@ Provides detailed information about the task. For details about the constraints
| isPersisted | boolean | No | Whether to enable persistent storage for the task. |
| isDeepIdle | boolean | No | Whether the device needs to enter the idle state. |
| idleWaitTime | number | No | Time to wait in the idle state. |
-| parameters | {[key: string]: any} | No | Carried parameters. |
+| parameters | {[key: string]: number | string | boolean} | No | Carried parameters. |
## NetworkType
Enumerates the network types that can trigger the task.
diff --git a/en/application-dev/reference/apis/js-apis-screenshot.md b/en/application-dev/reference/apis/js-apis-screenshot.md
index 309a1bc64491497bf61aaf6f2695a9d5c4fbd9d4..8b760e7cb48b3031e728ec80cc2c178501abb677 100644
--- a/en/application-dev/reference/apis/js-apis-screenshot.md
+++ b/en/application-dev/reference/apis/js-apis-screenshot.md
@@ -37,10 +37,10 @@ Describes the region of the screen to capture.
| Name| Type | Mandatory| Description |
| ------ | ------ | ---- | ------------------------------------------------------------ |
-| left | number | Yes | Left boundary of the screen region to capture.|
-| top | number | Yes | Top boundary of the screen region to capture.|
-| width | number | Yes | Width of the screen region to capture.|
-| height | number | Yes | Height of the screen region to capture.|
+| left | number | Yes | Left boundary of the screen region to capture, in pixels.|
+| top | number | Yes | Top boundary of the screen region to capture, in pixels.|
+| width | number | Yes | Width of the screen region to capture, in pixels.|
+| height | number | Yes | Height of the screen region to capture, in pixels.|
## Size
@@ -51,8 +51,8 @@ Describes the size of the screen region to capture.
| Name| Type | Mandatory| Description |
| ------ | ------ | ---- | ------------------------------------------------------------ |
-| width | number | Yes | Width of the screen region to capture.|
-| height | number | Yes | Height of the screen region to capture.|
+| width | number | Yes | Width of the screen region to capture, in pixels.|
+| height | number | Yes | Height of the screen region to capture, in pixels.|
## screenshot.save
diff --git a/en/application-dev/reference/apis/js-apis-stack.md b/en/application-dev/reference/apis/js-apis-stack.md
index ff8551cad86f3f4c448e08d267548657305c5c9d..46b06f608af9615bbb138bc54d82cab7f566c0fa 100644
--- a/en/application-dev/reference/apis/js-apis-stack.md
+++ b/en/application-dev/reference/apis/js-apis-stack.md
@@ -239,7 +239,7 @@ stack.push(4);
stack.push(5);
stack.push(4);
stack.forEach((value, index) => {
- console.log("value:" + value, index);
+ console.log("value:" + value, "index:" + index);
});
```
diff --git a/en/application-dev/reference/apis/js-apis-system-configuration.md b/en/application-dev/reference/apis/js-apis-system-configuration.md
index 934ceb020412a18c64499de1cb0ef1593ace2e50..ddc277722b452b8dca63eb50972d9d1f4448726d 100644
--- a/en/application-dev/reference/apis/js-apis-system-configuration.md
+++ b/en/application-dev/reference/apis/js-apis-system-configuration.md
@@ -50,4 +50,3 @@ Defines attributes of the current locale.
| language | string | Yes | No | Language, for example, **zh**.|
| countryOrRegion | string | Yes | No | Country or region, for example, **CN** or **US**.|
| dir | string | Yes | No | Text layout direction. The value can be: - **ltr**: from left to right - **rtl**: from right to left|
-| unicodeSetting5+ | string | Yes | No | Unicode language key set determined by the locale. If current locale does not have a specific key set, an empty set is returned. For example, **{"nu":"arab"}** indicates that current locale uses Arabic numerals.|
diff --git a/en/application-dev/reference/apis/js-apis-taskpool.md b/en/application-dev/reference/apis/js-apis-taskpool.md
index a441a39e8bb232fd589a0b03e473890ef6bbbc5f..8773e4c9df7945a5b686601b7ad8f3de3694d2f4 100644
--- a/en/application-dev/reference/apis/js-apis-taskpool.md
+++ b/en/application-dev/reference/apis/js-apis-taskpool.md
@@ -64,6 +64,7 @@ function func(args) {
console.log("func: " + args);
return args;
}
+
let task = new taskpool.Task(func, "this is my first Task");
```
@@ -116,7 +117,12 @@ function func(args) {
return args;
}
-let value = taskpool.execute(func, 100);
+async function taskpoolTest() {
+ let value = await taskpool.execute(func, 100);
+ console.log("taskpool result: " + value);
+}
+
+taskpoolTest();
```
## taskpool.execute
@@ -158,8 +164,14 @@ function func(args) {
console.log("func: " + args);
return args;
}
-let task = new taskpool.Task(func, "this is my first Task");
-let value = taskpool.execute(task);
+
+async function taskpoolTest() {
+ let task = new taskpool.Task(func, 100);
+ let value = await taskpool.execute(task);
+ console.log("taskpool result: " + value);
+}
+
+taskpoolTest();
```
## taskpool.cancel
@@ -193,9 +205,14 @@ function func(args) {
console.log("func: " + args);
return args;
}
-let task = new taskpool.Task(func, "this is first Task");
-let value = taskpool.execute(task);
-taskpool.cancel(task);
+
+async function taskpoolTest() {
+ let task = new taskpool.Task(func, 100);
+ let value = await taskpool.execute(task);
+ taskpool.cancel(task);
+}
+
+taskpoolTest();
```
## Additional Information
@@ -214,10 +231,18 @@ function func(args) {
return args;
}
-let task = new taskpool.Task(func, "create task, then execute");
-let val1 = taskpool.execute(task);
+async function taskpoolTest() {
+ // taskpool.execute(task)
+ let task = new taskpool.Task(func, "create task, then execute");
+ let val1 = await taskpool.execute(task);
+ console.log("taskpool.execute(task) result: " + val1);
-let val2 = taskpool.execute(func, "execute task by func");
+ // taskpool.execute(function)
+ let val2 = await taskpool.execute(func, "execute task by func");
+ console.log("taskpool.execute(function) result: " + val2);
+}
+
+taskpoolTest();
```
```js
@@ -226,7 +251,7 @@ let val2 = taskpool.execute(func, "execute task by func");
// b.ts
export var c = 2000;
-// a.ts
+// a.ts (in the same directory as b.ts)
import { c } from './b'
function test(a) {
@@ -236,8 +261,16 @@ function test(a) {
return a;
}
-let task = new taskpool.Task(test, "create task, then execute");
-let val1 = taskpool.execute(task);
+async function taskpoolTest() {
+ // taskpool.execute(task)
+ let task = new taskpool.Task(test, "create task, then execute");
+ let val1 = await taskpool.execute(task);
+ console.log("taskpool.execute(task) result: " + val1);
+
+ // taskpool.execute(function)
+ let val2 = await taskpool.execute(test, "execute task by func");
+ console.log("taskpool.execute(function) result: " + val2);
+}
-let val2 = taskpool.execute(test, "execute task by func");
+taskpoolTest();
```
diff --git a/en/application-dev/reference/apis/js-apis-treemap.md b/en/application-dev/reference/apis/js-apis-treemap.md
index eb874f0abd94f72f56f0e1e13a23883e1ae14ce8..473b5cb99e94c1ab84069d23591b63555bfcb7d5 100644
--- a/en/application-dev/reference/apis/js-apis-treemap.md
+++ b/en/application-dev/reference/apis/js-apis-treemap.md
@@ -1,8 +1,5 @@
# @ohos.util.TreeMap (Nonlinear Container TreeMap)
-> **NOTE**
-> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
-
**TreeMap** stores key-value (KV) pairs. Each key must be unique and have only one value.
**TreeMap** is implemented using a red-black tree, which is a binary search tree where keys are stored in sorted order for efficient insertion and removal.
@@ -12,9 +9,15 @@
Recommended use case: Use **TreeMap** when you need to store KV pairs in sorted order.
This topic uses the following to identify the use of generics:
+
- K: Key
+
- V: Value
+> **NOTE**
+>
+> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
## Modules to Import
```ts
@@ -609,7 +612,7 @@ Uses a callback to traverse the elements in this container and obtain their posi
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callbackFn | function | Yes| Callback invoked to traverse the elements in the container.|
-| thisArg | Object | No| Value to use when the callback is invoked.|
+| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked.|
callbackfn
| Name| Type| Mandatory| Description|
@@ -633,7 +636,7 @@ let treeMap = new TreeMap();
treeMap.set("sparrow", 123);
treeMap.set("gull", 357);
treeMap.forEach((value, key) => {
- console.log("value:" + value, key);
+ console.log("value:" + value, "key:" + key);
});
```
diff --git a/en/application-dev/reference/apis/js-apis-treeset.md b/en/application-dev/reference/apis/js-apis-treeset.md
index 4aaaac1861ceffdfda3d7adc53b16181c42cc9c3..5ca493adcae4ff144341f04d9d1641035ae98db8 100644
--- a/en/application-dev/reference/apis/js-apis-treeset.md
+++ b/en/application-dev/reference/apis/js-apis-treeset.md
@@ -1,8 +1,5 @@
# @ohos.util.TreeSet (Nonlinear Container TreeSet)
-> **NOTE**
-> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
-
**TreeSet** is implemented based on **[TreeMap](js-apis-treemap.md)**. In **TreeSet**, only **value** objects are processed. **TreeSet** can be used to store values, each of which must be unique.
**[HashSet](js-apis-hashset.md)** stores data in a random order, whereas **TreeSet** stores data in sorted order. Both of them allows only unique elements. However, null values are allowed in **HashSet**, but not allowed in **TreeSet**.
@@ -10,8 +7,13 @@
Recommended use case: Use **TreeSet** when you need to store data in sorted order.
This topic uses the following to identify the use of generics:
+
- T: Type
+> **NOTE**
+>
+> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+
## Modules to Import
```ts
@@ -482,13 +484,13 @@ Uses a callback to traverse the elements in this container and obtain their posi
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callbackFn | function | Yes| Callback invoked to traverse the elements in the container.|
-| thisArg | Object | No| Value to use when the callback is invoked.|
+| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked.|
callbackfn
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | T | No| Value of the element that is currently traversed.|
-| key | T | No| Key of the element that is currently traversed (same as **value**).|
+| key | T | No| Key of the element that is currently traversed.|
| set | TreeSet<T> | No| Instance that invokes the **forEach** method.|
**Error codes**
@@ -506,7 +508,7 @@ let treeSet = new TreeSet();
treeSet.add("sparrow");
treeSet.add("gull");
treeSet.forEach((value, key) => {
- console.log("value:" + value, key)
+ console.log("value:" + value, "key:" + key);
});
```
diff --git a/en/application-dev/reference/apis/js-apis-uri.md b/en/application-dev/reference/apis/js-apis-uri.md
index b3fb6f7a3ea58550cfa93a514591715952c52ad6..a8aed60f4a0bf23080f223eec440742847a258aa 100644
--- a/en/application-dev/reference/apis/js-apis-uri.md
+++ b/en/application-dev/reference/apis/js-apis-uri.md
@@ -226,9 +226,9 @@ Checks whether this URI is an absolute URI (whether the scheme component is defi
```js
const uriInstance = new uri.URI('https://username:password@www.qwer.com:8080?query=pppppp');
-console.log(uriInstance.checkIsAbsolute()); // true
+console.log(`${uriInstance.checkIsAbsolute()}`); // true
const uriInstance1 = new uri.URI('xxx.com/suppliers.htm');
-console.log(uriInstance1.checkIsAbsolute()); // false
+console.log(`${uriInstance1.checkIsAbsolute()}`); // false
```
diff --git a/en/application-dev/reference/apis/js-apis-util.md b/en/application-dev/reference/apis/js-apis-util.md
index 21ac9df11df7cabdf260edf97fc5fe17f83871b8..ea60b649da3f2d73dfb9cba42dab8ccdee16cde0 100755
--- a/en/application-dev/reference/apis/js-apis-util.md
+++ b/en/application-dev/reference/apis/js-apis-util.md
@@ -26,7 +26,7 @@ Formats the specified values and inserts them into the string by replacing the w
| Name | Type | Mandatory| Description |
| ------- | -------- | ---- | -------------- |
| format | string | Yes | String.|
-| ...args | Object[] | No | Values to format. The formatted values will be replaced the wildcard in the string. |
+| ...args | Object[] | No | Values to format. The formatted values will replace the wildcard in the string. If this parameter is not set, the first parameter is returned by default.|
**Return value**
@@ -69,6 +69,20 @@ let result = util.errnoToString(errnum);
console.log("result = " + result);
```
+**Some error code and message examples**
+
+| Error Code| Message |
+| ------ | -------------------------------- |
+| -1 | operation not permitted |
+| -2 | no such file or directory |
+| -3 | no such process |
+| -4 | interrupted system call |
+| -5 | i/o error |
+| -11 | resource temporarily unavailable |
+| -12 | not enough memory |
+| -13 | permission denied |
+| -100 | network is down |
+
## util.callbackWrapper
callbackWrapper(original: Function): (err: Object, value: Object )=>void
@@ -92,15 +106,14 @@ Calls back an asynchronous function. In the callback, the first parameter indica
**Example**
```js
- async function promiseFn() {
- return Promise.reject('value');
- }
- let err = "type err";
- let cb = util.callbackWrapper(promiseFn);
- cb((err, ret) => {
- console.log(err);
- console.log(ret);
- }, err)
+async function fn() {
+ return 'hello world';
+}
+let cb = util.callbackWrapper(fn);
+cb((err, ret) => {
+ if (err) throw err;
+ console.log(ret);
+});
```
## util.promisify9+
@@ -126,24 +139,30 @@ Processes an asynchronous function and returns a promise.
**Example**
```js
- function aysnFun(str1, str2) {
- if (typeof str1 === 'object' && typeof str2 === 'object') {
- return str2
- } else {
- return str1
- }
- }
- let newPromiseObj = util.promisify(aysnFun);
- newPromiseObj({ err: "type error" }, {value:'HelloWorld'}).then(res => {
- console.log(res);
- })
+function fun(num, callback) {
+ if (typeof num === 'number') {
+ callback(null, num + 3);
+ } else {
+ callback("type err");
+ }
+}
+
+const addCall = util.promisify(fun);
+(async () => {
+ try {
+ let res = await addCall(2);
+ console.log(res);
+ } catch (err) {
+ console.log(err);
+ }
+})();
```
-## util.randomUUID9+
+## util.generateRandomUUID9+
-randomUUID(entropyCache?: boolean): string
+generateRandomUUID(entropyCache?: boolean): string
-Uses a secure random number generator to generate a random universally unique identifier (UUID) of RFC 4122 version 4.
+Uses a secure random number generator to generate a random universally unique identifier (UUID) of the string type in RFC 4122 version 4.
**System capability**: SystemCapability.Utils.Lang
@@ -162,17 +181,17 @@ Uses a secure random number generator to generate a random universally unique id
**Example**
```js
- let uuid = util.randomUUID(true);
+ let uuid = util.generateRandomUUID(true);
console.log("RFC 4122 Version 4 UUID:" + uuid);
// Output:
// RFC 4122 Version 4 UUID:88368f2a-d5db-47d8-a05f-534fab0a0045
```
-## util.randomBinaryUUID9+
+## util.generateRandomBinaryUUID9+
-randomBinaryUUID(entropyCache?: boolean): Uint8Array
+generateRandomBinaryUUID(entropyCache?: boolean): Uint8Array
-Uses a secure random number generator to generate a random binary UUID of RFC 4122 version 4.
+Uses a secure random number generator to generate a random UUID of the Uint8Array type in RFC 4122 version 4.
**System capability**: SystemCapability.Utils.Lang
@@ -191,7 +210,7 @@ Uses a secure random number generator to generate a random binary UUID of RFC 41
**Example**
```js
- let uuid = util.randomBinaryUUID(true);
+ let uuid = util.generateRandomBinaryUUID(true);
console.log(JSON.stringify(uuid));
// Output:
// 138,188,43,243,62,254,70,119,130,20,235,222,199,164,140,150
@@ -201,7 +220,7 @@ Uses a secure random number generator to generate a random binary UUID of RFC 41
parseUUID(uuid: string): Uint8Array
-Parses a UUID from a string, as described in RFC 4122 version 4.
+Converts the UUID of the string type generated by **generateRandomUUID** to the UUID of the **Uint8Array** type generated by **generateRandomBinaryUUID**, as described in RFC 4122 version 4.
**System capability**: SystemCapability.Utils.Lang
@@ -243,7 +262,7 @@ Formats the specified values and inserts them into the string by replacing the w
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| format | string | Yes| String.|
-| ...args | Object[] | No| Values to format. The formatted values will be replaced the wildcard in the string.|
+| ...args | Object[] | No| Values to format. The formatted values will replace the wildcard in the string. If this parameter is not set, the first parameter is returned by default.|
**Return value**
@@ -361,8 +380,8 @@ Creates a **TextDecoder** object. It provides the same function as the deprecate
**Example**
```js
-let textDecoder = new util.TextDecoder()
-textDecoder.create('utf-8', { ignoreBOM : true });
+let result = util.TextDecoder.create('utf-8', { ignoreBOM : true })
+let retStr = result.encoding
```
### decodeWithStream9+
diff --git a/en/application-dev/reference/apis/js-apis-vector.md b/en/application-dev/reference/apis/js-apis-vector.md
index 302b8223c0b720390c82cb28afa921b439fef7fd..7e59a7685b38a014a76065ee04255b106c9d8133 100644
--- a/en/application-dev/reference/apis/js-apis-vector.md
+++ b/en/application-dev/reference/apis/js-apis-vector.md
@@ -1,9 +1,5 @@
# @ohos.util.Vector (Linear Container Vector)
-> **NOTE**
->
-> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
-
**Vector** is a linear data structure that is implemented based on arrays. When the memory of a vector is used up, a larger contiguous memory area is automatically allocated, all the elements are copied to the new memory area, and the current memory area is reclaimed. **Vector** can be used to efficiently access elements.
Both **Vector** and **[ArrayList](js-apis-arraylist.md)** are implemented based on arrays, but **Vector** provides more interfaces for operating the arrays. Both of them can dynamically adjust the capacity. **Vector** doubles the capacity each time, whereas **ArrayList** increases the capacity by 50%.
@@ -13,6 +9,12 @@ Both **Vector** and **[ArrayList](js-apis-arraylist.md)** are implemented based
This topic uses the following to identify the use of generics:
- T: Type
+> **NOTE**
+>
+> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
+>
+> The APIs provided by this module are deprecated since API version 9. You are advised to use [@ohos.util.ArrayList](js-apis-arraylist.md).
+
## Modules to Import
```ts
@@ -251,7 +253,7 @@ Removes the first occurrence of the specified element from this container.
| -------- | -------- |
| boolean | Returns **true** if the element is removed successfully; returns **false** otherwise.|
-**Return value**
+**Example**
```ts
let vector = new Vector();
@@ -320,11 +322,9 @@ vector.add(2);
vector.add(4);
vector.add(5);
vector.add(4);
-vector.replaceAllElements((value: number, index: number) => {
- return value = 2 * value;
-});
-vector.replaceAllElements((value: number, index: number) => {
- return value = value - 2;
+vector.replaceAllElements((value) => {
+ // Add the user operation logic based on the actual scenario.
+ return value;
});
```
@@ -361,7 +361,7 @@ vector.add(4);
vector.add(5);
vector.add(4);
vector.forEach((value, index) => {
- console.log("value:" + value, index)
+ console.log("value:" + value, "index:" + index);
});
```
@@ -421,7 +421,7 @@ Obtains elements within a range in this container, including the element at the
| -------- | -------- |
| Vector<T> | New **Vector** instance obtained.|
-**Return value**
+**Example**
```ts
let vector = new Vector();
@@ -444,7 +444,7 @@ Clears all elements in this container and sets its length to **0**.
**System capability**: SystemCapability.Utils.Lang
-**Return value**
+**Example**
```ts
let vector = new Vector();
@@ -639,18 +639,6 @@ Copies elements in this container into an array to overwrite elements of the sam
| -------- | -------- | -------- | -------- |
| array | Array<T> | Yes| Array to which the elements in the container will be copied.|
-**Example**
-
-```ts
-let vector = new Vector();
-vector.add(2);
-vector.add(4);
-vector.add(5);
-vector.add(4);
-let array = ["a", "b", "c", "d", "e", "f"];
-let result = vector.copyToArray(array);
-```
-
### getFirstElement
getFirstElement(): T
@@ -803,15 +791,15 @@ Obtains an element at the specified position in this container.
**Parameters**
-| Name| Type| Mandatory| Description|
-| -------- | -------- | -------- | -------- |
-| index | number | Yes| Position index of the target element.|
+ | Name| Type| Mandatory| Description|
+ | -------- | -------- | -------- | -------- |
+ | index | number | Yes| Position index of the target element.|
**Return value**
-| Type| Description|
-| -------- | -------- |
-| T | Element obtained.|
+ | Type| Description|
+ | -------- | -------- |
+ | T | Element obtained.|
**Example**
@@ -840,20 +828,9 @@ Replaces an element at the specified position in this container with a given ele
**Return value**
-| Type| Description|
-| -------- | -------- |
-| T | New element.|
-
-**Example**
-
- ```ts
- let vector = new Vector();
- vector.add(2);
- vector.add(4);
- vector.add(5);
- vector.add(4);
- let result = vector.set(2, "A");
- ```
+ | Type| Description|
+ | -------- | -------- |
+ | T | New element.|
### [Symbol.iterator]
diff --git a/en/application-dev/reference/apis/js-apis-webgl.md b/en/application-dev/reference/apis/js-apis-webgl.md
index 455416ed7c1290971e5a797766d35c52ed08b537..6b45cedd701e6e2a287cc8cdc80055e3f95e0caf 100644
--- a/en/application-dev/reference/apis/js-apis-webgl.md
+++ b/en/application-dev/reference/apis/js-apis-webgl.md
@@ -9,11 +9,13 @@ This module provides WebGL APIs that correspond to the OpenGL ES 2.0 feature set
> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
>
> WebGL complies with the OpenGL protocol and does not support multi-thread calling.
+>
+> This module can be used only in the JavaScript-compatible web-like development paradigm.
## Invoking Method
-Create a **