diff --git a/en/application-dev/IDL/idl-guidelines.md b/en/application-dev/IDL/idl-guidelines.md index a7ce0ec46adeeca0dd697cd8dabde834b7cc14fc..4bb2395ca2913c3cc662af154f8b9386d57336e2 100644 --- a/en/application-dev/IDL/idl-guidelines.md +++ b/en/application-dev/IDL/idl-guidelines.md @@ -162,7 +162,7 @@ Go to the local installation path, choose **toolchains > 3.x.x.x** (the folder n If the executable file does not exist, download the SDK package from the mirror as instructed in the [Release Notes](../../release-notes). The following uses [3.2 Beta3](../../release-notes/OpenHarmony-v3.2-beta3.md) as an example. -For details about how to replace the SDK package, see [Full SDK Compilation Guide](../quick-start/full-sdk-compile-guide.md). +For details about how to replace the SDK package, see [Full SDK Compilation Guide](../faqs/full-sdk-compile-guide.md). After obtaining the executable file, perform subsequent development steps based on your scenario. diff --git a/en/application-dev/faqs/Readme-EN.md b/en/application-dev/faqs/Readme-EN.md index 636543eb3ed09b9d14f63fba8a466f6eb01ebea0..2d2d57ca6bb00f25c3db08338518910905417e5d 100644 --- a/en/application-dev/faqs/Readme-EN.md +++ b/en/application-dev/faqs/Readme-EN.md @@ -2,9 +2,9 @@ - [Full SDK Compilation](full-sdk-compile-guide.md) - [Switching to Full SDK](full-sdk-switch-guide.md) -- [Ability Development](faqs-ability.md) -- [ArkUI Development](faqs-arkui.md) -- [ArkUI Development (ArkTS Syntax)](faqs-arkui-arkts.md) +- [Application Model Development](faqs-ability.md) +- ArkUI Framework Development (ArkTS) + - [ArkUI Development (ArkTS Syntax)](faqs-arkui-arkts.md) - [Web Development](faqs-arkui-web.md) - [Bundle Management Development](faqs-bundle-management.md) - [Resource Manager Development](faqs-globalization.md) diff --git a/en/application-dev/faqs/faqs-ability.md b/en/application-dev/faqs/faqs-ability.md index b6901e40e6d84c622c41e487e30c62ba87a28ff4..fef66125771888f9dfe3dce2ae4297ce858d56b8 100644 --- a/en/application-dev/faqs/faqs-ability.md +++ b/en/application-dev/faqs/faqs-ability.md @@ -1,8 +1,8 @@ -# Ability Development +# Application Model Development ## How do I obtain a notification when the device orientation changes? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** @@ -14,7 +14,7 @@ Use the **UIAbility.onConfigurationUpdate\(\)** callback to subscribe to system ## How do I redirect a user to a specified page after they touch a service widget? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** @@ -42,7 +42,7 @@ Create a background task to provide the background service. ## Can I create a UIAbility and specify the process to run the UIAbility in the FA and Stage models? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** @@ -59,7 +59,7 @@ Yes. ## What are the differences between the stage model and the FA model in intra-process object sharing? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** @@ -72,7 +72,7 @@ Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) ## How do I use the lifecycle functions of AbilityStage? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** @@ -85,7 +85,7 @@ Add the field **"srcEntry": "./ets/myabilitystage/MyAbilityStage.ts"** under **m ## How do I delete the mission snapshot in Recents after terminateself is called in the multiton scenario? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** @@ -93,7 +93,7 @@ You can set **removeMissionAfterTerminate** to **true** in the **module.json5** ## Why can't I start a UIAbility instance by using startAbility\(\)? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** @@ -102,7 +102,7 @@ Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) ## How do I prevent "this" in a method from changing to "undefined" when the method is called? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** @@ -112,7 +112,7 @@ Method 2: Use the arrow function. ## What should I do when the error message "must have required property 'startWindowIcon'" is displayed during the UIAbility startup? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** @@ -135,11 +135,11 @@ Configure the **startWindowIcon** attribute under **abilities** in the **module. **Reference** -[module.json5 Configuration File](../quick-start/module-configuration-file.md) +[module.json5 File](../quick-start/module-configuration-file.md) ## Can I obtain the context through globalThis in the stage model? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) Do not use **globalThis** to obtain the context in the stage model. @@ -151,7 +151,7 @@ This is because all the processes of an application share a JS VM instance in th ## What should I do when an error indicating too large size is reported during HAP deployment? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Symptom** @@ -165,11 +165,11 @@ You can split the HAP into multiple HAPs. ## How is data returned when startAbilityForResult is called? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** -The target UIAbilities uses **AbilityContext.terminateSelfWithResult** to terminate itselef and pass the result to **startAbilityForResult**. +The target UIAbilities uses **AbilityContext.terminateSelfWithResult** to terminate itself and pass the result to **startAbilityForResult**. **Reference** @@ -178,7 +178,7 @@ The target UIAbilities uses **AbilityContext.terminateSelfWithResult** to termin ## How do I obtain the system timestamp? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** @@ -209,7 +209,7 @@ Use the **@ohos.systemDateTime** API as follows: ## How do I obtain the cache directory of the current application? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** @@ -221,7 +221,7 @@ Use **Context.cacheDir** to obtain the cache directory of the application. ## In which JS file is the service widget lifecycle callback invoked? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** @@ -233,7 +233,7 @@ When a widget is created, a **FormAblity.ts** file is generated, which contains ## What should I do when the compilation on DevEco Studio fails while ServiceExtensionAbility and DataShareExtensionAbility APIs are used? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Symptom** @@ -250,7 +250,7 @@ The SDK downloaded using DevEco Studio is the public SDK. **Solution** -Third-party application cannot use **ServiceExtensionAbility** and **DataShareExtensionAbility**. To develop a system application, first [download the full SDK](../quick-start/full-sdk-switch-guide.md). +Third-party application cannot use **ServiceExtensionAbility** and **DataShareExtensionAbility**. To develop a system application, first [download the full SDK](../faqs/full-sdk-switch-guide.md). ## How do I obtain the temp and files paths at the application level? @@ -264,18 +264,99 @@ Obtain them from the application context. Specifically, use **this.context.getAp [Obtaining the Application Development Path](../application-models/application-context-stage.md#obtaining-the-application-development-path) +## Why the application is not deleted from the background mission list after it calls terminateSelf? + +Applicable to: OpenHarmony 3.2 Beta5 + +**Solution** + +This is because the **removeMissionAfterTerminate** field under **abilities** in the **module.json5** file of the UIAbility is set to **false** (default value). To enable the application snapshot to be automatically deleted when the application is destroyed, set this field to **true**. + +**Reference** + +[module.json5 File](../quick-start/module-configuration-file.md) + +## How does an application developed in the stage model start an application developed in the FA model? + +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) + +**Solution** + +Refer to the code snippet below: + +``` +let want = { + deviceId: "", // An empty deviceId indicates the local device. + bundleName: "com.example.myapplication", + abilityName: "EntryAbility", + moduleName: "Module1", // moduleName is optional. + parameters: { // Custom information. + }, +} +// context is the AbilityContext of the FA model to be started. +context.startAbility(want).then(() => { + ... +}).catch((err) => { + ... +}) +``` + +## Can atomic services be implemented using JavaScript code only? + +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) + +**Solution** + +Currently, the directory structure of new widgets is css+hml+json. This means that the widgets cannot be implemented by using JavaScript code only. Event triggering and parameter transfer can be processed in JSON files. ## Can the lifecycle callback of a released FA widget be triggered when the widget is displayed in the service center so that the user login information can be obtained without opening the FA application? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** -After a widget is added, the **onCreate()** lifecycle is triggered so that related user information (silent login) can be displayed even when the application is not started. However, users must manually add the widget after the application is installed. +After a widget is added, the **onCreate\(\)** lifecycle is triggered so that related user information (silent login) can be displayed even when the application is not started. However, users must manually add the widget after the application is installed. + +## What should I do when the error message "\[c4d4d3492eb8531, 0, 0\] ContextDeal::startAbility fetchAbilities failed" is displayed during switching to another application? + +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) + +**Symptom** + +The **startAbility** API reports an error during redirection. + +**Solution** + +Use **startAbility** for implementation as follows: + +``` +import featureAbility from '@ohos.ability.featureAbility' +function onStartRemoteAbility() { +console.info('onStartRemoteAbility begin'); +let params; +let wantValue = { + bundleName: 'ohos.samples.etsDemo', + abilityName: 'ohos.samples.etsDemo.RemoteAbility', + deviceId: getRemoteDeviceId(), + parameters: params +}; +console.info('onStartRemoteAbility want=' + JSON.stringify(wantValue)); +featureAbility.startAbility({ + want: wantValue +}).then((data) => { +console.info('onStartRemoteAbility finished, ' + JSON.stringify(data)); +}); +console.info('onStartRemoteAbility end'); +} +``` + +**Reference** + +See [Starting a Local PageAbility] (../application-models/start-local-pageability.md). ## How do I implement service login by touching a widget? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** @@ -299,7 +380,7 @@ To create a service widget in the FA model, perform the following steps: ## How do I redirect to the application details page in Settings? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** @@ -319,35 +400,33 @@ Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** -You can use **UIAbility.Context** to obtain the context. +You can use **UIAbility.Context** to obtain the context. **Example** ``` -import UIAbility from '@ohos.app.ability.UIAbility'; +import common from '@ohos.app.ability.common'; -let UIAbilityContext = UIAbility.context; -let ApplicationContext = UIAbility.context.getApplicationContext(); @Entry @Component struct AbilityContextTest { // abilityContext - @State UIabilityInfo: string = 'Obtaining abilityInfo' - UIabilityContext: UIAbilityContext + @State UIAbilityInfo: string = 'Obtaining abilityInfo' + UIAbilityContext: common.UIAbilityContext aboutToAppear() { // Use getContext to obtain the context and convert it to abilityContext. - this.UIabilityContext = getContext(this) as UIAbilityContext + this.UIAbilityContext = getContext(this) as common.UIAbilityContext } build() { Row() { Column({ space: 20 }) { - Text(this.abilityInfo) + Text(this.UIAbilityInfo) .fontSize(20) - .onClick(()=>{ - this.UIabilityInfo = JSON.stringify(this.UIabilityContext.UIabilityInfo) - console.log(`ContextDemo abilityInfo= ${this.UIabilityInfo}`) + .onClick(() => { + this.UIAbilityInfo = JSON.stringify(this.UIAbilityContext.abilityInfo) + console.log(`ContextDemo abilityInfo = ${this.UIAbilityInfo}`) }) } .width('100%') @@ -356,3 +435,51 @@ struct AbilityContextTest { } } ``` + +## What should I do when starting a continuous task fails? + +Applicable to: OpenHarmony 3.2 Release (API version 9) + +**Symptom** + +A ServiceAbility is started by calling **featureAbility.startAbility\(\)**. When the ServiceAbility attempts to start a continuous task, the error message \{"code":201,"message":"BussinessError 201: Permission denied."\} is reported. + +**Solution** + +To start a continuous task in the background, you must configure the permission **ohos.permission.KEEP\_BACKGROUND\_RUNNING** in the **module.json5** file and declare the background mode for the ability that needs to use the continuous task. + +``` +"module": { + "abilities": [ + { + "backgroundModes": [ + "dataTransfer", + "location" + ], // Background mode + } + ], + "requestPermissions": [ + { + "name": "ohos.permission.KEEP_BACKGROUND_RUNNING" // Continuous task permission + } + ] +} +``` + +**Reference** + +[ServiceAbility Configuration Items - backgroundModes](../application-models/serviceability-configuration.md) + +[Continuous Task Permission](../security/permission-list.md#ohospermissionkeep_background_running) + +[Continuous Task Development](../task-management/continuous-task-dev-guide.md#development-in-the-stage-model) + +## How do FA widgets exchange data? + +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) + +The widget interacts with the widget provider through the **postCardAction** API, and the provider updates data through the **updateForm** API. + +**Reference** + +[Widget Development in the FA Model](../application-models/widget-development-fa.md) diff --git a/en/application-dev/faqs/faqs-bundle-management.md b/en/application-dev/faqs/faqs-bundle-management.md index 71b1e01ffcffea415266fb90213fc722e4f5b628..7be0055748ce5ac6d53fd6b3bef55a59fa721bc5 100644 --- a/en/application-dev/faqs/faqs-bundle-management.md +++ b/en/application-dev/faqs/faqs-bundle-management.md @@ -2,7 +2,7 @@ ## How do I determine whether an application is a system application? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** @@ -14,7 +14,7 @@ Use **bundleManager.getApplicationInfo** (available only for system applications ## How do I obtain the version code and version name of an application? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** @@ -96,7 +96,7 @@ Applicable to: OpenHarmony 3.2 Beta5 ## How do I obtain the source file path of the current application? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** @@ -121,6 +121,81 @@ Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) ## Can I obtain the HAP information of other applications from the current application? +Applicable to: OpenHarmony 3.2 (API version 9) + +**Solution** + +Currently, only system applications can call the API to query information about other applications. + +- To query information about an application in the system, you must obtain the normal-level permission **ohos.permission.GET\_BUNDLE\_INFO** and call the **bundleManager.getApplicationInfo\(\)** API. + +- To query information about all applications in the system, you must obtain the system\_basic-level permission **ohos.permission.GET\_BUNDLE\_INFO\_PRIVILEGED** and call the **bundleManager.getAllApplicationInfo\(\)** API. + +**Reference** + +[@ohos.bundle.bundleManager \(bundleManager\)](../reference/apis/js-apis-bundleManager.md) + +## How do I query the PID of a process? + +Applicable to: OpenHarmony 3.2 Beta (API version 9) + +**Solution** + +You can obtain the PID through the **@ohos.process** interface. + +**Example** + +``` +import process from '@ohos.process'; +private pid = process.pid; +``` + +**Reference** + +[@ohos.process \ (Obtaining Process Information\)](../reference/apis/js-apis-process.md) + +## How do I disable the maximize button? + Applicable to: OpenHarmony 3.2 Beta (API version 9) -According to the OpenHarmony security design specifications, the SDK does not provide APIs for third-party applications to obtain bundle information (including but not limited to the application name and version number) of other applications. +**Solution** + +You can use the **supportWindowModes** field to specify whether to display the maximize button. + +- **full\_screen** means that a window in full-screen mode is supported. + +- **split** means that a window in split-screen mode is supported. + +- **floating** means that a floating window is supported. + +**Example** + +``` +"abilities": [ + { + "name": "EntryAbility", + "srcEntry": "./ets/entryability/EntryAbility.ts", + "description": "$string:EntryAbility_desc", + "icon": "$media:icon", + "label": "$string:EntryAbility_label", + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:start_window_background", + "exported": true, + "supportWindowMode": ["split", "floating"], + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + } +] +``` + +**Reference** + +[supportWindowModes](../reference/apis/js-apis-bundleManager-abilityInfo.md) diff --git a/en/application-dev/faqs/faqs-graphics.md b/en/application-dev/faqs/faqs-graphics.md index 9469a35736ef859342d2c24bdcb9780e94445bf8..345cbf83c5b2976c810e78237cb2587eaa4b1404 100644 --- a/en/application-dev/faqs/faqs-graphics.md +++ b/en/application-dev/faqs/faqs-graphics.md @@ -23,7 +23,7 @@ try { ## How do I hide the status bar to get the immersive effect? -Applicable to: OpenHarmony 3.2 Beta5 (API version 9, stage model) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** @@ -59,7 +59,7 @@ Applicable to: OpenHarmony 3.2 Beta5 (API version 9, stage model) ## How do I obtain the window width and height? -Applicable to: OpenHarmony SDK 3.2 Beta5 (API version 9, stage model) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9, stage model) **Solution** @@ -90,3 +90,32 @@ try { console.error('Failed to obtain the top window. Cause: ' + JSON.stringify(exception)); } ``` + +## How do I perform Gaussian blurring on images? + +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) + +**Solution** + +Import the **@ohos.multimedia.image** and **@ohos.effectKit** modules to process the image and add the blur effect. + +**Example** + +``` +import image from "@ohos.multimedia.image"; +import effectKit from "@ohos.effectKit"; + + const color = new ArrayBuffer(96); + let opts = { editable: true, pixelFormat: 3, size: { height: 4, width: 6 } }; + image.createPixelMap(color, opts).then((pixelMap) => { + let radius = 5; + let headFilter = effectKit.createEffect(pixelMap); + if (headFilter != null) { + headFilter.blur(radius); + } + }) +``` + +**Reference** + +[blur](../reference/apis/js-apis-effectKit.md#blur) diff --git a/en/application-dev/faqs/faqs-multimedia.md b/en/application-dev/faqs/faqs-multimedia.md index 080860a9a5ca913d1d40d9de049f9220a66118da..6d15bc704000f19b61d2f753b46a38592b052f06 100644 --- a/en/application-dev/faqs/faqs-multimedia.md +++ b/en/application-dev/faqs/faqs-multimedia.md @@ -2,7 +2,7 @@ ## How do I obtain the frame data of a camera when using the XComponent to display the preview output stream of the camera? -Applicable to: OpenHarmony 3.2 (API version 9, stage model) +Applicable to: OpenHarmony 3.2 (API version 9) **Symptom** @@ -35,7 +35,7 @@ Create a dual-channel preview to obtain the frame data. ## How do I obtain the preview image of the front camera? -Applicable to: OpenHarmony 3.2 (API version 9, stage model) +Applicable to: OpenHarmony 3.2 (API version 9) **Solution** @@ -76,7 +76,7 @@ Applicable to: OpenHarmony 3.2 (API version 9, stage model) ## How do I set the camera focal length? -Applicable to: OpenHarmony 3.2 (API version 9, stage model) +Applicable to: OpenHarmony 3.2 (API version 9) **Solution** @@ -86,7 +86,7 @@ Applicable to: OpenHarmony 3.2 (API version 9, stage model) ## How do I play music in the background? -Applicable to: OpenHarmony 3.2 (API version 9, stage model) +Applicable to: OpenHarmony 3.2 (API version 9) **Symptom** @@ -105,7 +105,7 @@ Music cannot be played in the background. ## What should I do when multiple video components cannot be used for playback? -Applicable to: OpenHarmony 3.2 (API version 9, stage model) +Applicable to: OpenHarmony 3.2 (API version 9) **Symptom** @@ -115,10 +115,9 @@ A large number of video components are created. They cannot play media normally A maximum of 13 media player instances can be created. - ## How do I invoke the image library directly? -Applicable to: OpenHarmony 3.2 (API version 9, stage model) +Applicable to: OpenHarmony 3.2 (API version 9) **Solution** @@ -133,3 +132,69 @@ let want = { let context = getContext(this) as common.UIAbilityContext; context.startAbility(want); ``` + +## How do I apply for the media read/write permission on a device? + +Applicable to: OpenHarmony 3.2 (API version 9, stage model) + +**Solution** + +1. Configure the permissions **ohos.permission.READ\_MEDIA** and **ohos.permission.WRITE\_MEDIA** in the **module.json5** file. + + Example: + + ``` + { + "module" : { + "requestPermissions":[ + { + "name" : "ohos.permission.READ_MEDIA", + "reason": "$string:reason" + }, + { + "name" : "ohos.permission.WRITE_MEDIA", + "reason": "$string:reason" + } + ] + } + } + ``` + +2. Call **requestPermissionsFromUser** to request the permissions from end users in the form of a dialog box. This operation is required because the grant mode of both permissions is **user\_grant**. + + ``` + let context = getContext(this) as common.UIAbilityContext; + let atManager = abilityAccessCtrl.createAtManager(); + let permissions: Array = ['ohos.permission.READ_MEDIA','ohos.permission.WRITE_MEDIA'] + atManager.requestPermissionsFromUser(context, permissions) + .then((data) => { + console.log("Succeed to request permission from user with data: " + JSON.stringify(data)) + }).catch((error) => { + console.log("Failed to request permission from user with error: " + JSON.stringify(error)) + }) + ``` + +## How do I obtain the camera status? + +Applicable to: OpenHarmony 3.2 (API version 9, stage model) + +**Solution** + +The **cameraManager** class provides a listener to subscribe to the camera status. + +``` +cameraManager.on('cameraStatus', (cameraStatusInfo) => { + console.log(`camera : ${cameraStatusInfo.camera.cameraId}`); + console.log(`status: ${cameraStatusInfo.status}`); +}) +``` +CameraStatus: Enumerates the camera statuses. + +- **CAMERA_STATUS_APPEAR** (0): A camera appears. +- **CAMERA_STATUS_DISAPPEAR** (1): The camera disappears. +- **CAMERA_STATUS_AVAILABLE** (2): The camera is available. +- **CAMERA_STATUS_UNAVAILABLE** (3): The camera is unavailable. + +**Reference** + +[CameraStatus](../reference/apis/js-apis-camera.md#oncamerastatus) \ No newline at end of file diff --git a/en/application-dev/faqs/faqs-sensor.md b/en/application-dev/faqs/faqs-sensor.md index 3932b223fb5c6af755c9eae019851e37edfa6ef4..60a6f55f8f19f2336d0a3d7ab44a83b4191b0182 100644 --- a/en/application-dev/faqs/faqs-sensor.md +++ b/en/application-dev/faqs/faqs-sensor.md @@ -2,6 +2,24 @@ ## Are the APIs used for obtaining PPG and ECG sensor data open to individual developers? -Applicable to: OpenHarmony 3.1 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.1 Beta5 (API version 9) Data collected by the PPG and ECG sensors of wearable devices is personal privacy data. Therefore, relative APIs are not open to individual developers. + +## What should I do when error code 201 is reported during the calling of a vibrator API? + +Applicable to: OpenHarmony 3.2 (API version 9, stage model) + +**Symptom** + +The following error message (error code 201) is reported when an API of the vibrator module is called: + +vibrate fail, error.code: 201error.message: NaN + +**Solution** + +Permission verification failed. You must apply for the **ohos.permission.VIBRATE** permission. + +**Reference** + +[Applying for Permissions](../security/accesstoken-guidelines.md) \ No newline at end of file diff --git a/en/application-dev/faqs/faqs-third-fourth-party-library.md b/en/application-dev/faqs/faqs-third-fourth-party-library.md index 045a3f5efe77b0ad16b64960bbf015b62b07d46f..07101ee37f6977728b909a68caed82c92a324810 100644 --- a/en/application-dev/faqs/faqs-third-fourth-party-library.md +++ b/en/application-dev/faqs/faqs-third-fourth-party-library.md @@ -2,19 +2,19 @@ ## How do I obtain available third-party libraries? -Applicable to: OpenHarmony 3.1 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.1 Beta5 (API version 9) The three-party and four-party libraries that can be obtained through ohpm are summarized in the [OpenHarmony-TPC/tpc_resource repository](https://gitee.com/openharmony-tpc/tpc_resource). You can access this repository, and find the desired component based on the directory index. ## Which third-party libraries are related to network requests? -Applicable to: OpenHarmony 3.1 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.1 Beta5 (API version 9) The following third-party libraries are related to network requests: [Axios](https://gitee.com/openharmony-sig/axios), httpclient, and okdownload. For details, see the [OpenHarmony-TPC/tpc_resource repository](https://gitee.com/openharmony-tpc/tpc_resource). ## How do I use ohpm to import third- and fourth-party libraries? -Applicable to: OpenHarmony 3.1 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.1 Beta5 (API version 9) **Solution** diff --git a/en/application-dev/faqs/faqs-window-manager.md b/en/application-dev/faqs/faqs-window-manager.md index 7368ec7cbb95ee0235810464d822554cf2b1880d..cc3cb1074bd8ae828ae38925a74594311b0f6c35 100644 --- a/en/application-dev/faqs/faqs-window-manager.md +++ b/en/application-dev/faqs/faqs-window-manager.md @@ -2,7 +2,7 @@ ## How do I obtain the height of the status bar and navigation bar? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** @@ -44,7 +44,7 @@ export default class MainAbility extends Ability { ## How do I hide the status bar on the top of an application? -Applicable to: OpenHarmony 3.2 Beta 5 (API version 9) +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) **Solution** @@ -62,3 +62,101 @@ onWindowStageCreate(windowStage){ **Reference** [Window](../reference/apis/js-apis-window.md) + +## How do I lock the window in portrait mode so that it does not rotate with the device? + +Applicable to: OpenHarmony SDK 3.2 Beta5 (API version 9, stage model) + +**Solution** + +To lock the window in portrait mode, call **setPreferredOrientation** of the window module, with **orientation** set to **window.Orientation.PORTRAIT**. + +**Example** + +``` +import window from "@ohos.window"; +// 1. Obtain a Window instance. Specifically, you can call createWindow to create a window or findWindow to obtain an existing window. +let windowClass = null; +let config = {name: "alertWindow", windowType: window.WindowType.TYPE_SYSTEM_ALERT, ctx: this.context}; +try { + let promise = window.createWindow(config); + promise.then((data)=> { + windowClass = data; + console.info('Succeeded in creating the window. Data:' + JSON.stringify(data)); + }).catch((err)=>{ + console.error('Failed to create the Window. Cause:' + JSON.stringify(err)); + });} catch (exception) { + console.error('Failed to create the window. Cause: ' + JSON.stringify(exception)); +} +// 2. Call setPreferredOrientation to set the window orientation. The value PROTRAIT indicates that the window is displayed in portrait mode. +let orientation = window.Orientation.PORTRAIT; +if (windowClass) { + windowClass.setPreferredOrientation(orientation, (err) => { + if (err.code) { + console.error('Failed to set window orientation. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Succeeded in setting window orientation.'); +} +``` + +**Reference** + +[window.Orientation](../reference/apis/js-apis-window.md#orientation9) + +## Why do the isStatusBarLightIcon and isNavigationBarLightIcon attributes set by calling setWindowSystemBarProperties not take effect? + +Applicable to: OpenHarmony SDK 3.2 Beta5 (API version 9, stage model) + +**Solution** + +In effect, the **isStatusBarLightIcon** and **isNavigationBarLightIcon** attributes turn the font white when set to **true**. If **statusBarContentColor** is also set in **setWindowSystemBarProperties**, the **isStatusBarLightIcon** attribute does not take effect. Similarly, if **navigationBarContentColor** is set, the **isNavigationBarLightIcon** attribute does not take effect. + +**Reference** + +[window.SystemBarProperties](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-window.md#systembarproperties) + +## How do I keep the screen always on? + +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) + +**Solution** + +Obtain a **Window** instance, and call [setWindowKeepScreenOn](../reference/apis/js-apis-window.md#setwindowkeepscreenon9) to keep the screen always on. + +``` +let isKeepScreenOn = true; +try { + windowClass.setWindowKeepScreenOn(isKeepScreenOn, (err) => { + if (err.code) { + console.error('Failed to set the screen to be always on. Cause: ' + JSON.stringify(err)); + return; + } + console.info('Succeeded in setting the screen to be always on.'); + }); +} catch (exception) { + console.error('Failed to set the screen to be always on. Cause: ' + JSON.stringify(exception)); +} +``` + +## How do I listen for window size changes? + +Applicable to: OpenHarmony 3.2 Beta5 (API version 9) + +**Solution** + +Obtain a **Window** instance, and call **on\('windowSizeChange'\)** to listen for window size changes. + +``` +try { + windowClass.on('windowSizeChange', (data) => { + console.info('Succeeded in enabling the listener for window size changes. Data: ' + JSON.stringify(data)); + }); +} catch (exception) { + console.error('Failed to enable the listener for window size changes. Cause: ' + JSON.stringify(exception)); +} +``` + +**Reference** + +[window.on\("windowSizeChange"\)](../reference/apis/js-apis-window.md#onwindowsizechange7) diff --git a/en/application-dev/napi/Readme-EN.md b/en/application-dev/napi/Readme-EN.md index c6bdba99546cafb30a88b9b39c3cd552dfd4419e..1295e0798c8a2e98beace89c016828eac79d5a5a 100644 --- a/en/application-dev/napi/Readme-EN.md +++ b/en/application-dev/napi/Readme-EN.md @@ -1,67 +1,9 @@ # Native APIs -Native APIs are a set of native development interfaces and tools provided by the OHOS SDK. It enables the use of C or C++ code to implement key application functionalities. Native APIs provide part of basic underlying capabilities of OHOS, such as libc, graphics library, window system, multimedia, and compression library. They do not provide complete OHOS platform capabilities as JS APIs do. Native APIs are compiled into a dynamic library before being packed into the application. -## Native API Composition - -### Native API Directory Structure - -Native APIs are stored in the **$(SDK_ROOT)/native** directory of the SDK. They consist of the following parts: - -|Directory|Description| -|--|--| -|build|Used to build the toolchain.cmake script of the dynamic library in the application. The **ohos.toolchain.cmake** file in this directory defines OHOS cross compilation options.| -|build-tools|Stores build tools, such as CMake.| -|docs|Stores Native API reference documents, which is extracted from the header files using Doxgen.| -|llvm|Stores LLVM, a cross compiler that supports OHOS ABIs.| -|sysroot|Stores dependent files of build links, including header files and dynamic libraries.| - -### Native APIs - -|Category|Function|Introduced In| -|--|--|--| -|C standard library|C standard library interfaces based on musl. Currently, more than 1500 interfaces are provided.|API version 8| -|C++ standard library|C++ runtime library libc++_shared. This library must be packed or statically linked to the application during packing.|API version 8| -|Log|HiLog interfaces for printing logs to the system|API version 8| -|napi|A group of Node-APIs provided by ArkUI to facilitate access to the JS application environment during application development. Node-APIs are part of native APIs.|API version 8| -|XComponent|Provides surface and touchscreen event interfaces for developing high-performance graphics applications.|API version 8| -|libuv|Third-party asynchronous I/O library integrated by ArkUI.|API version 8| -|libz|zlib library that provides basic compression and decompression interfaces.|API version 8| -|Drawing|2D graphics library that can be used for drawing on the surface.|API version 8| -|OpenGL|OpenGL 3.0 interfaces.|API version 8| -|Rawfile|Application resource access interfaces that can be used to read various resources packed in the application.|API version 8| -|OpenSLES|Interface library used for 2D and 3D audio acceleration.|API version 8| -|Mindspore|AI model interface library.|API version 9| -|Bundle management|Bundle service interfaces that can be used to query bundle information of the application.|API version 8| - -Some native APIs use open source standards. For details, see [Native Standard Libraries Supported by OpenHarmony](https://docs.openharmony.cn/pages/v3.1/en/application-dev/reference/native-lib/third_party_libc/musl.md/) and [Node_API](https://docs.openharmony.cn/pages/v3.1/en/application-dev/reference/native-lib/third_party_napi/napi.md/). - -## Usage Guidelines - -### Scenarios Where Native APIs Are Recommended - -You can use native APIs when you want to: - -1. Develop performance-sensitive code in computing-intensive scenarios such as gaming and physical simulation. -2. Reuse the existing C or C++ library. -3. Customize libraries related to CPU features, such as neon acceleration. - -### Scenarios Where Native APIs Are Not Recommended - -You do not need to use native APIs when you want to: - -1. Write a native OHOS application. -2. Develop an application compatible on as many OHOS devices as possible. - -# Native API References - -- [Native API hello world]() - - This sample shows how to develop a hello native API library, which can display strings obtained from the hello library on the TS page. -- [Using Native APIs in Application Projects](napi-guidelines.md) - - This document describes how to use native APIs to interact with modules, interfaces, and asynchronous tasks in JS. +- [Introduction to Native APIs](introduction.md) +- [Using N-APIs in Application Projects](napi-guidelines.md) - [Drawing Development](drawing-guidelines.md) - [Raw File Development](rawfile-guidelines.md) - [Native Window Development](native-window-guidelines.md) - [Using MindSpore Lite for Model Inference](mindspore-lite-guidelines.md) -- [Connecting the Neural Network Runtime to an AI Inference Framework](neural-network-runtime-guidelines.md) +- [Connecting the Neural Network Runtime to an AI Inference Framework](neural-network-runtime-guidelines.md) \ No newline at end of file diff --git a/en/application-dev/napi/introduction.md b/en/application-dev/napi/introduction.md new file mode 100644 index 0000000000000000000000000000000000000000..fb7cebaf9afadc6669934924512c6104812c94cf --- /dev/null +++ b/en/application-dev/napi/introduction.md @@ -0,0 +1,52 @@ +# Introduction to Native APIs + +Native APIs are a set of native development interfaces and tools provided by the OHOS SDK. It enables the use of C or C++ code to implement key application functionalities. Native APIs provide part of basic underlying capabilities of OHOS, such as libc, graphics library, window system, multimedia, and compression library. They do not provide complete OHOS platform capabilities as JS APIs do. Native APIs are compiled into a dynamic library before being packed into the application. + +## Native API Composition + +### Native API Directory Structure + +Native APIs are stored in the **$(SDK_ROOT)/native** directory of the SDK. They consist of the following parts: + +|Directory|Description| +|--|--| +|build|Used to build the toolchain.cmake script of the dynamic library in the application. The **ohos.toolchain.cmake** file in this directory defines OHOS cross compilation options.| +|build-tools|Stores build tools, such as CMake.| +|docs|Stores Native API reference documents, which is extracted from the header files using Doxgen.| +|llvm|Stores LLVM, a cross compiler that supports OHOS ABIs.| +|sysroot|Stores dependent files of build links, including header files and dynamic libraries.| + +### Native APIs + +|Category|Function|Introduced In| +|--|--|--| +|C standard library|C standard library interfaces based on musl. Currently, more than 1500 interfaces are provided.|API version 8| +|C++ standard library|C++ runtime library libc++_shared. This library must be packed or statically linked to the application during packing.|API version 8| +|Log|HiLog interfaces for printing logs to the system|API version 8| +|napi|A group of Node-APIs provided by ArkUI to facilitate access to the JS application environment during application development. Node-APIs are part of native APIs.|API version 8| +|XComponent|Provides surface and touchscreen event interfaces for developing high-performance graphics applications.|API version 8| +|libuv|Third-party asynchronous I/O library integrated by ArkUI.|API version 8| +|libz|zlib library that provides basic compression and decompression interfaces.|API version 8| +|Drawing|2D graphics library that can be used for drawing on the surface.|API version 8| +|OpenGL|OpenGL 3.0 interfaces.|API version 8| +|Rawfile|Application resource access interfaces that can be used to read various resources packed in the application.|API version 8| +|OpenSLES|Interface library used for 2D and 3D audio acceleration.|API version 8| +|Mindspore|AI model interface library.|API version 9| +|Bundle management|Bundle service interfaces that can be used to query bundle information of the application.|API version 8| + +Some native APIs use open-source standards. For details, see [Native Standard Libraries Supported by OpenHarmony](../reference/native-lib/third_party_libc/musl.md) and [Node-API](../reference/native-lib/third_party_napi/napi.md). + +## Usage Guidelines + +### Scenarios Where Native APIs Are Recommended + +You can use native APIs when you want to: + +1. Develop performance-sensitive code in computing-intensive scenarios such as gaming and physical simulation. +2. Reuse the existing C or C++ library. +3. Customize libraries related to CPU features, such as neon acceleration. + +### Scenarios Where Native APIs Are Not Recommended
You do not need to use native APIs when you want to: + +1. Write a native OHOS application. +2. Develop an application compatible on as many OHOS devices as possible. diff --git a/en/application-dev/reference/apis/development-intro.md b/en/application-dev/reference/apis/development-intro.md index d20577ab0a909e6e650ce09bbfb0524fb679bd4e..4be8ab6a6b3a12768761e9affa09345180c394fb 100644 --- a/en/application-dev/reference/apis/development-intro.md +++ b/en/application-dev/reference/apis/development-intro.md @@ -29,14 +29,14 @@ A description regarding system APIs will be provided in the document. A common application is an application whose application type is **hos_normal_app** in the HarmonyAppProvision configuration file. **hos_normal_app** is the default value for project creation. The public SDK, which does not include system APIs, is provided as standard in DevEco Studio. To use the system APIs, you must: -- Switch the public SDK to the full SDK by following the instructions provided in [Guide to Switching to Full SDK](../../faqs/full-sdk-switch-guide.md). -- Change the value of **app-feature** in the HarmonyAppProvision configuration file to **hos_system_app**. For details, see [HarmonyAppProvision Configuration File](../../security/app-provision-structure.md). +- Switch the public SDK to the full SDK by following the instructions provided in [Switching to Full SDK](../../faqs/full-sdk-switch-guide.md). +- Change the value of **app-feature** in the HarmonyAppProvision configuration file to **hos_system_app** (indicating a system application). For details, see [HarmonyAppProvision Configuration File](../../security/app-provision-structure.md). ## Permission Description -By default, applications can access limited system resources. However, in some cases, an application needs to access excess data (including personal data) and functions of the system or another application to implement extended functions. For details, see [Access Control (Permission) Overview](../../security/accesstoken-overview.md). +By default, applications can access limited system resources. However, in some cases, an application needs to access excess data (including personal data) and functions of the system or another application to implement extended functions. For details, see [Access Control Overview](../../security/accesstoken-overview.md). -To call APIs to access these resources, you must apply for the corresponding permissions by following the instructions provided in [Applying for Permissions](../../security/accesstoken-guidelines.md). +To call APIs to access these resources, you must apply for the corresponding permissions by following the instructions provided in [Access Control Development](../../security/accesstoken-guidelines.md). - If an application can call an API only after it has obtained a specific permission, the following description is provided for the API: "**Required permissions**: ohos.permission.xxxx" - If an application can call an API without any permission, no special description is provided. diff --git a/en/application-dev/reference/apis/js-apis-application-environmentCallback.md b/en/application-dev/reference/apis/js-apis-application-environmentCallback.md deleted file mode 100644 index 00396ca388d9145f2b3905166b2ef317959f2744..0000000000000000000000000000000000000000 --- a/en/application-dev/reference/apis/js-apis-application-environmentCallback.md +++ /dev/null @@ -1,82 +0,0 @@ -# @ohos.application.EnvironmentCallback (EnvironmentCallback) - -The **EnvironmentCallback** module provides APIs, such as **onConfigurationUpdated** and **onMemoryLevel**, for the application context to listen for system environment changes. - -> **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.EnvironmentCallback](js-apis-app-ability-environmentCallback.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 EnvironmentCallback from '@ohos.application.EnvironmentCallback'; -``` - - -## EnvironmentCallback.onConfigurationUpdated - -onConfigurationUpdated(config: Configuration): void; - -Called when the system environment changes. - -**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore - -**Parameters** - - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | config | [Configuration](js-apis-application-configuration.md) | Yes| **Configuration** object after the change.| - -## EnvironmentCallback.onMemoryLevel - -onMemoryLevel(level: number): void; - -Called when the system memory level changes. - -**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore - -**Parameters** - - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | level | [MemoryLevel](js-apis-app-ability-abilityConstant.md#abilityconstantmemorylevel) | Yes| New memory level.| - -**Example** - - ```ts -import UIAbility from '@ohos.app.ability.UIAbility'; - -let callbackId; - -export default class EntryAbility extends UIAbility { - onCreate() { - console.log('MyAbility onCreate'); - globalThis.applicationContext = this.context.getApplicationContext(); - let environmentCallback = { - onConfigurationUpdated(config){ - console.log('onConfigurationUpdated config: ${JSON.stringify(config)}'); - }, - onMemoryLevel(level){ - console.log('onMemoryLevel level: ${level}'); - } - }; - // 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); - console.log('registerEnvironmentCallback number: ${JSON.stringify(callbackId)}'); - } - onDestroy() { - let applicationContext = globalThis.applicationContext; - applicationContext.unregisterEnvironmentCallback(callbackId, (error, data) => { - 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-inner-application-pacMap.md b/en/application-dev/reference/apis/js-apis-inner-application-pacMap.md deleted file mode 100644 index afdf5e6c84413edfcb7303ea1069fca74898bd7c..0000000000000000000000000000000000000000 --- a/en/application-dev/reference/apis/js-apis-inner-application-pacMap.md +++ /dev/null @@ -1,9 +0,0 @@ -## PacMap - -[key: string]: number | string | boolean | Array\ | null; - -**System capability**: SystemCapability.Ability.AbilityRuntime.FAModel - -| Name| Type| Mandatory| Description| -| ------ | ------ | ------ | ------ | -| [key: string] | number \| string \| boolean \| Array\ \| null | Yes| Data stored in key-value pairs.| diff --git a/en/application-dev/reference/apis/js-apis-inner-application-serviceExtensionContext.md b/en/application-dev/reference/apis/js-apis-inner-application-serviceExtensionContext.md index 38928f42669eb30db5746d2c68037aff2961870f..fd791bc36fe187786aee1454612faac8c97b2131 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-serviceExtensionContext.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-serviceExtensionContext.md @@ -1559,3 +1559,84 @@ try { console.error(`startRecentAbility failed, code is ${err.code}, message is ${err.message}`); } ``` + +## ServiceExtensionContext.startAbilityByCallWithAccount10+ + +startAbilityByCallWithAccount(want: Want, accountId: number): Promise<Caller>; + +Starts an ability with the account ID specified and obtains the caller object for communicating with the ability. + +Observe the following when using this API: + - If an application needs to call this API to start an ability that belongs to another user, it must have the **ohos.permission.ABILITY_BACKGROUND_COMMUNICATION** and **ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS** permissions. + - 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 **exported** 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.| +| accountId | number | Yes| ID of a system account. The value **-1** indicates the current user. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| + +**Return value** + +| Type| Description| +| -------- | -------- | +| Promise<Caller> | Promise used to return the caller object to communicate with.| + +**Error codes** + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +| ID| Error Message| +| ------- | -------------------------------- | +| 16000001 | Input error. The specified ability name does not exist. | +| 16000002 | Incorrect ability type. | +| 16000004 | Visibility verification failed. | +| 16000005 | Static permission denied. The specified process does not have the permission. | +| 16000006 | Cross-user operations are not allowed. | +| 16000008 | Crowdtest App Expiration. | +| 16000011 | The context does not exist. | +| 16000050 | Internal Error. | +| 16200001 | The caller has been released. | + +**Example** + + ```ts + let caller; + + // ID of a system account. The value -1 indicates the current user. + let accountId = -1; + + // Specify the ability to start. + let want = { + bundleName: 'com.acts.actscalleeabilityrely', + moduleName: 'entry', + abilityName: 'EntryAbility' + deviceId: '' + parameters: { + // If the value of 'ohos.aafwk.param.callAbilityToForeground' is true, the ability is started in the foreground. If the value is false or not set, the ability is started in the background. + 'ohos.aafwk.param.callAbilityToForeground': true + } + }; + + try { + this.context.startAbilityByCallWithAccount(want, accountId) + .then((obj) => { + // Carry out normal service processing. + caller = obj; + console.log('startAbilityByCallWithAccount succeed'); + }).catch((error) => { + // Process service logic errors. + console.error('startAbilityByCallWithAccount failed, error.code: ${error.code}, error.message: ${error.message}'); + }); + } catch (paramError) { + // Process input parameter errors. + console.error('error.code: ${paramError.code}, error.message: ${paramError.message}'); + } + ``` diff --git a/en/application-dev/reference/apis/js-apis-inner-application-uiAbilityContext.md b/en/application-dev/reference/apis/js-apis-inner-application-uiAbilityContext.md index cbfec0e2905afa5cf03244d67504ec9628a36c45..63b85f46899461f7ccf6235a7ea870b933542007 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-uiAbilityContext.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-uiAbilityContext.md @@ -2519,3 +2519,84 @@ try { console.error(`startRecentAbility failed, code is ${err.code}, message is ${err.message}`); } ``` + +## UIAbilityContext.startAbilityByCallWithAccount + +startAbilityByCallWithAccount(want: Want, accountId: number): Promise<Caller>; + +Starts an ability with the account ID specified and obtains the caller object for communicating with the ability. + +Observe the following when using this API: + - If an application needs to call this API to start an ability that belongs to another user, it must have the **ohos.permission.ABILITY_BACKGROUND_COMMUNICATION** and **ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS** permissions. + - 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 **exported** 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.| +| accountId | number | Yes| ID of a system account. The value **-1** indicates the current user. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| + +**Return value** + +| Type| Description| +| -------- | -------- | +| Promise<Caller> | Promise used to return the caller object to communicate with.| + +**Error codes** + +| ID| Error Message| +| ------- | -------------------------------- | +| 16000001 | Input error. The specified ability name does not exist. | +| 16000002 | Incorrect ability type. | +| 16000004 | Visibility verification failed. | +| 16000005 | Static permission denied. The specified process does not have the permission. | +| 16000006 | Cross-user operations are not allowed. | +| 16000008 | Crowdtest App Expiration. | +| 16000011 | The context does not exist. | +| 16000050 | Internal Error. | +| 16200001 | The caller has been released. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +**Example** + + ```ts + let caller; + + // ID of a system account. The value -1 indicates the current user. + let accountId = -1; + + // Specify the ability to start. + let want = { + bundleName: 'com.acts.actscalleeabilityrely', + moduleName: 'entry', + abilityName: 'EntryAbility' + deviceId: '' + parameters: { + // If the value of 'ohos.aafwk.param.callAbilityToForeground' is true, the ability is started in the foreground. If the value is false or not set, the ability is started in the background. + 'ohos.aafwk.param.callAbilityToForeground': true + } + }; + + try { + this.context.startAbilityByCallWithAccount(want, accountId) + .then((obj) => { + // Carry out normal service processing. + caller = obj; + console.log('startAbilityByCallWithAccount succeed'); + }).catch((error) => { + // Process service logic errors. + console.error('startAbilityByCallWithAccount failed, error.code: ${error.code}, error.message: ${error.message}'); + }); + } catch (paramError) { + // Process input parameter errors. + console.error('error.code: ${paramError.code}, error.message: ${paramError.message}'); + } + ``` diff --git a/en/application-dev/reference/errorcodes/Readme-EN.md b/en/application-dev/reference/errorcodes/Readme-EN.md index dd7b0dc1e4b1f520b276aa95727c988ce34063cf..ee41df889eef61bce0b3fa4f57d19814036f51e5 100644 --- a/en/application-dev/reference/errorcodes/Readme-EN.md +++ b/en/application-dev/reference/errorcodes/Readme-EN.md @@ -67,6 +67,7 @@ - [Application Event Logging Error Codes](errorcode-hiappevent.md) - [HiSysEvent Error Codes](errorcode-hisysevent.md) - [HiDebug Error Codes](errorcode-hiviewdfx-hidebug.md) + - [Log Library Error Codes](errorcode-loglibrary.md) - [Input Method Framework Error Codes](errorcode-inputmethod-framework.md) - [Pasteboard Error Codes](errorcode-pasteboard.md) - [Screen Lock Management Error Codes](errorcode-screenlock.md) @@ -82,7 +83,8 @@ - [Thermal Manager Error Codes](errorcode-thermal.md) - [Device Management Error Codes](errorcode-device-manager.md) - [Location Subsystem Error Codes](errorcode-geoLocationManager.md) - - [Screen Hopping Error Codes](errorcode-multimodalinput.md) + - [Screen Hopping Error Codes](errorcode-devicestatus.md) + - [Screen Hopping Error Codes (to Be Deprecated)](errorcode-multimodalinput.md) - [Sensor Error Codes](errorcode-sensor.md) - [Vibrator Error Codes](errorcode-vibrator.md) - [System Parameter Error Codes](errorcode-system-parameterV9.md) diff --git a/en/application-dev/reference/native-apis/_native_window.md b/en/application-dev/reference/native-apis/_native_window.md index 7a6f7d6f1cf6f344106543e35a5b01e2f7185521..e6fdaf9f4eb24b20ffe2620dbf3298b57c558e0b 100644 --- a/en/application-dev/reference/native-apis/_native_window.md +++ b/en/application-dev/reference/native-apis/_native_window.md @@ -1,13 +1,15 @@ # NativeWindow -## Overview - Provides the native window capability for connection to the EGL. + \@syscap SystemCapability.Graphic.Graphic2D.NativeWindow -**Since:** + +**Since** + + 8 @@ -16,58 +18,61 @@ Provides the native window capability for connection to the EGL. ### Files -| Name | Description | + | Name| Description| | -------- | -------- | -| [external_window.h](external__window_8h.md) | Defines the functions for obtaining and using a native window.
File to Include: | +| [external_window.h](external__window_8h.md) | Defines the functions for obtaining and using a native window.
File to include: | ### Structs -| Name | Description | + | Name| Description| | -------- | -------- | -| [Region](_region.md) | Defines the rectangle (dirty region) where the content is to be updated in the local native window. | -| [OHHDRMetaData](_o_h_h_d_r_meta_data.md) | Defines the HDR metadata. | -| [OHExtDataHandle](_o_h_ext_data_handle.md) | Defines the extended data handle. | +| [Region](_region.md) | Defines the rectangle (dirty region) where the content is to be updated in the local native window.| +| [OHHDRMetaData(deprecated)](_o_h_h_d_r_meta_data.md) | Defines the HDR metadata. This struct is deprecated since API version 9 and is expected to be deleted from API version 14.| +| [OHExtDataHandle(deprecated)](_o_h_ext_data_handle.md) | Defines the extended data handle. This struct is deprecated since API version 9 and is expected to be deleted from API version 14.| ### Types -| Name | Description | + | Name| Description| | -------- | -------- | -| OHNativeWindow | Provides the function of accessing the **NativeWindow**. | -| OHNativeWindowBuffer | Provides the function of accessing the **NativeWindowBuffer**. | -| Region | Defines the rectangle (dirty region) where the content is to be updated in the local native window. | +| OHNativeWindow | Provides the function of accessing the **NativeWindow**.| +| OHNativeWindowBuffer | Provides the function of accessing the **NativeWindow**.| +| Region | Defines the rectangle (dirty region) where the content is to be updated in the local native window.| ### Enums -| Name | Description | + | Name| Description| | -------- | -------- | -| [NativeWindowOperation](#nativewindowoperation) {
SET_BUFFER_GEOMETRY, GET_BUFFER_GEOMETRY, GET_FORMAT, SET_FORMAT,
GET_USAGE, SET_USAGE, SET_STRIDE, GET_STRIDE,
SET_SWAP_INTERVAL, GET_SWAP_INTERVAL, SET_TIMEOUT, GET_TIMEOUT,
SET_COLOR_GAMUT, GET_COLOR_GAMUT, SET_TRANSFORM, GET_TRANSFORM,
SET_UI_TIMESTAMP
} | Enumerates the operation codes in the **OH_NativeWindow_NativeWindowHandleOpt** function. | -| [OHScalingMode](#ohscalingmode) { OH_SCALING_MODE_FREEZE = 0, OH_SCALING_MODE_SCALE_TO_WINDOW, OH_SCALING_MODE_SCALE_CROP, OH_SCALING_MODE_NO_SCALE_CROP } | Enumerates the scaling modes. | -| [OHHDRMetadataKey](#ohhdrmetadatakey) {
OH_METAKEY_RED_PRIMARY_X = 0, OH_METAKEY_RED_PRIMARY_Y = 1, OH_METAKEY_GREEN_PRIMARY_X = 2, OH_METAKEY_GREEN_PRIMARY_Y = 3,
OH_METAKEY_BLUE_PRIMARY_X = 4, OH_METAKEY_BLUE_PRIMARY_Y = 5, OH_METAKEY_WHITE_PRIMARY_X = 6, OH_METAKEY_WHITE_PRIMARY_Y = 7,
OH_METAKEY_MAX_LUMINANCE = 8, OH_METAKEY_MIN_LUMINANCE = 9, OH_METAKEY_MAX_CONTENT_LIGHT_LEVEL = 10, OH_METAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL = 11,
OH_METAKEY_HDR10_PLUS = 12, OH_METAKEY_HDR_VIVID = 13
} | Enumerates the HDR metadata keys. | +| [NativeWindowOperation](#nativewindowoperation) { SET_BUFFER_GEOMETRY, GET_BUFFER_GEOMETRY, GET_FORMAT, SET_FORMAT, GET_USAGE, SET_USAGE, SET_STRIDE, GET_STRIDE, SET_SWAP_INTERVAL, GET_SWAP_INTERVAL, SET_TIMEOUT, GET_TIMEOUT, SET_COLOR_GAMUT, GET_COLOR_GAMUT, SET_TRANSFORM, GET_TRANSFORM, SET_UI_TIMESTAMP } | Enumerates the operation codes in the **OH_NativeWindow_NativeWindowHandleOpt** function.| +| [OHScalingMode(deprecated)](#ohscalingmode) { OH_SCALING_MODE_FREEZE = 0, OH_SCALING_MODE_SCALE_TO_WINDOW, OH_SCALING_MODE_SCALE_CROP, OH_SCALING_MODE_NO_SCALE_CROP } | Enumerates the scaling modes. This enum is deprecated since API version 9 and is expected to be deleted from API version 14.| +| [OHHDRMetadataKey(deprecated)](#ohhdrmetadatakey) { OH_METAKEY_RED_PRIMARY_X = 0, OH_METAKEY_RED_PRIMARY_Y = 1, OH_METAKEY_GREEN_PRIMARY_X = 2, OH_METAKEY_GREEN_PRIMARY_Y = 3, OH_METAKEY_BLUE_PRIMARY_X = 4, OH_METAKEY_BLUE_PRIMARY_Y = 5, OH_METAKEY_WHITE_PRIMARY_X = 6, OH_METAKEY_WHITE_PRIMARY_Y = 7, OH_METAKEY_MAX_LUMINANCE = 8, OH_METAKEY_MIN_LUMINANCE = 9, OH_METAKEY_MAX_CONTENT_LIGHT_LEVEL = 10, OH_METAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL = 11, OH_METAKEY_HDR10_PLUS = 12, OH_METAKEY_HDR_VIVID = 13 } | Enumerates the HDR metadata keys. This enum is deprecated since API version 9 and is expected to be deleted from API version 14.| ### Functions -| Name | Description | +| Name| Description| | -------- | -------- | -| [OH_NativeWindow_CreateNativeWindow](#oh_nativewindow_createnativewindow) (void \*pSurface) | Creates a **NativeWindow** instance. A new **NativeWindow** instance is created each time this function is called. | -| [OH_NativeWindow_DestroyNativeWindow](#oh_nativewindow_destroynativewindow) (OHNativeWindow \*window) | Decreases the reference count of a **NativeWindow** instance by 1 and when the reference count reaches 0, destroys the instance. | -| [OH_NativeWindow_CreateNativeWindowBufferFromSurfaceBuffer](#oh_nativewindow_createnativewindowbufferfromsurfacebuffer) (void \*pSurfaceBuffer) | Creates a **NativeWindowBuffer** instance. A new **NativeWindowBuffer** instance is created each time this function is called. | -| [OH_NativeWindow_DestroyNativeWindowBuffer](#oh_nativewindow_destroynativewindowbuffer) (OHNativeWindowBuffer \*buffer) | Decreases the reference count of a **NativeWindowBuffer** instance by 1 and when the reference count reaches 0, destroys the instance. | -| [OH_NativeWindow_NativeWindowRequestBuffer](#oh_nativewindow_nativewindowrequestbuffer) (OHNativeWindow \*window, OHNativeWindowBuffer \*\*buffer, int \*fenceFd) | Requests a **NativeWindowBuffer** through a **NativeWindow** instance for content production. | -| [OH_NativeWindow_NativeWindowFlushBuffer](#oh_nativewindow_nativewindowflushbuffer) (OHNativeWindow \*window, OHNativeWindowBuffer \*buffer, int fenceFd, [Region](_region.md) region) | Flushes the **NativeWindowBuffer** filled with the content to the buffer queue through a **NativeWindow** instance for content consumption. | -| [OH_NativeWindow_NativeWindowAbortBuffer](#oh_nativewindow_nativewindowabortbuffer) (OHNativeWindow \*window, OHNativeWindowBuffer \*buffer) | Returns the **NativeWindowBuffer** to the buffer queue through a **NativeWindow** instance, without filling in any content. The **NativeWindowBuffer** can be used for another request. | -| [OH_NativeWindow_NativeWindowHandleOpt](#oh_nativewindow_nativewindowhandleopt) (OHNativeWindow \*window, int code,...) | Sets or obtains the attributes of a native window, including the width, height, and content format. | -| [OH_NativeWindow_GetBufferHandleFromNative](#oh_nativewindow_getbufferhandlefromnative) (OHNativeWindowBuffer \*buffer) | Obtains the pointer to a **BufferHandle** of a **NativeWindowBuffer** instance. | -| [OH_NativeWindow_NativeObjectReference](#oh_nativewindow_nativeobjectreference) (void \*obj) | Adds the reference count of a native object. | -| [OH_NativeWindow_NativeObjectUnreference](#oh_nativewindow_nativeobjectunreference) (void \*obj) | Decreases the reference count of a native object and when the reference count reaches 0, destroys this object. | -| [OH_NativeWindow_GetNativeObjectMagic](#oh_nativewindow_getnativeobjectmagic) (void \*obj) | Obtains the magic ID of a native object. | -| [OH_NativeWindow_NativeWindowSetScalingMode](#oh_nativewindow_nativewindowsetscalingmode) (OHNativeWindow \*window, uint32_t sequence, [OHScalingMode](#ohscalingmode) scalingMode) | Sets the scaling mode for a native window. | -| [OH_NativeWindow_NativeWindowSetMetaData](#oh_nativewindow_nativewindowsetmetadata) (OHNativeWindow \*window, uint32_t sequence, int32_t size, const [OHHDRMetaData](_o_h_h_d_r_meta_data.md) \*metaData) | Sets the metadata for a native window. | -| [OH_NativeWindow_NativeWindowSetMetaDataSet](#oh_nativewindow_nativewindowsetmetadataset) (OHNativeWindow \*window, uint32_t sequence, [OHHDRMetadataKey](#ohhdrmetadatakey) key, int32_t size, const uint8_t \*metaData) | Sets the metadata set for a native window. | -| [OH_NativeWindow_NativeWindowSetTunnelHandle](#oh_nativewindow_nativewindowsettunnelhandle) (OHNativeWindow \*window, const [OHExtDataHandle](_o_h_ext_data_handle.md) \*handle) | Sets a tunnel handle for a native window. | +| [OH_NativeWindow_CreateNativeWindow](#oh_nativewindow_createnativewindow) (void \*pSurface) | Creates a **NativeWindow** instance. A new **NativeWindow** instance is created each time this function is called.| +| [OH_NativeWindow_DestroyNativeWindow](#oh_nativewindow_destroynativewindow) (OHNativeWindow \*window) | Decreases the reference count of a **NativeWindow** instance by 1 and when the reference count reaches 0, destroys the instance.| +| [OH_NativeWindow_CreateNativeWindowBufferFromSurfaceBuffer](#oh_nativewindow_createnativewindowbufferfromsurfacebuffer) (void \*pSurfaceBuffer) | Creates a **NativeWindowBuffer** instance. A new **NativeWindowBuffer** instance is created each time this function is called.| +| [OH_NativeWindow_DestroyNativeWindowBuffer](#oh_nativewindow_destroynativewindowbuffer) (OHNativeWindowBuffer \*buffer) | Decreases the reference count of a **NativeWindowBuffer** instance by 1 and when the reference count reaches 0, destroys the instance.| +| [OH_NativeWindow_NativeWindowRequestBuffer](#oh_nativewindow_nativewindowrequestbuffer) (OHNativeWindow \*window, OHNativeWindowBuffer \*\*buffer, int \*fenceFd) | Requests a **NativeWindowBuffer** through a **NativeWindow** instance for content production.| +| [OH_NativeWindow_NativeWindowFlushBuffer](#oh_nativewindow_nativewindowflushbuffer) (OHNativeWindow \*window, OHNativeWindowBuffer \*buffer, int fenceFd, [Region](_region.md) region) | Flushes the **NativeWindowBuffer** filled with the content to the buffer queue through a **NativeWindow** instance for content consumption.| +| [OH_NativeWindow_NativeWindowAbortBuffer](#oh_nativewindow_nativewindowabortbuffer) (OHNativeWindow \*window, OHNativeWindowBuffer \*buffer) | Returns the **NativeWindowBuffer** to the buffer queue through a **NativeWindow** instance, without filling in any content. The **NativeWindowBuffer** can be used for another request.| +| [OH_NativeWindow_NativeWindowHandleOpt](#oh_nativewindow_nativewindowhandleopt) (OHNativeWindow \*window, int code,...) | Sets or obtains the attributes of a native window, including the width, height, and content format.| +| [OH_NativeWindow_GetBufferHandleFromNative](#oh_nativewindow_getbufferhandlefromnative) (OHNativeWindowBuffer \*buffer) | Obtains the pointer to a **BufferHandle** of a **NativeWindowBuffer** instance.| +| [OH_NativeWindow_NativeObjectReference](#oh_nativewindow_nativeobjectreference) (void \*obj) | Adds the reference count of a native object.| +| [OH_NativeWindow_NativeObjectUnreference](#oh_nativewindow_nativeobjectunreference) (void \*obj) | Decreases the reference count of a native object and when the reference count reaches 0, destroys this object.| +| [OH_NativeWindow_GetNativeObjectMagic](#oh_nativewindow_getnativeobjectmagic) (void \*obj) | Obtains the magic ID of a native object.| +| [OH_NativeWindow_NativeWindowSetScalingMode(deprecated)](#oh_nativewindow_nativewindowsetscalingmode) (OHNativeWindow \*window, uint32_t sequence, [OHScalingMode](#ohscalingmode) scalingMode) | Sets the scaling mode for a native window. This function is deprecated since API version 9 and is expected to be deleted from API version 14.| +| [OH_NativeWindow_NativeWindowSetMetaData(deprecated)](#oh_nativewindow_nativewindowsetmetadata) (OHNativeWindow \*window, uint32_t sequence, int32_t size, const [OHHDRMetaData](_o_h_h_d_r_meta_data.md) \*metaData) | Sets the metadata for a native window. This function is deprecated since API version 9 and is expected to be deleted from API version 14.| +| [OH_NativeWindow_NativeWindowSetMetaDataSet(deprecated)](#oh_nativewindow_nativewindowsetmetadataset) (OHNativeWindow \*window, uint32_t sequence, [OHHDRMetadataKey](#ohhdrmetadatakey) key, int32_t size, const uint8_t \*metaData) | Sets the metadata set for a native window. This function is deprecated since API version 9 and is expected to be deleted from API version 14.| +| [OH_NativeWindow_NativeWindowSetTunnelHandle(deprecated)](#oh_nativewindow_nativewindowsettunnelhandle) (OHNativeWindow \*window, const [OHExtDataHandle](_o_h_ext_data_handle.md) \*handle) | Sets a tunnel handle for a native window. This function is deprecated since API version 9 and is expected to be deleted from API version 14.| + + +## Detailed Description ## Enum Description @@ -79,72 +84,78 @@ Provides the native window capability for connection to the EGL. ``` enum NativeWindowOperation ``` -**Description**
+ +**Description** + Enumerates the operation codes in the **OH_NativeWindow_NativeWindowHandleOpt** function. -| Name | Description | + | Value| Description| | -------- | -------- | -| SET_BUFFER_GEOMETRY | Setting the geometry for the local window buffer. Variable arguments in the function: [Input] int32_t height and [Input] int32_t width. | -| GET_BUFFER_GEOMETRY | Obtaining the geometry of the local window buffer. Variable arguments in the function: [Output] int32_t \*height and [Output] int32_t \*width. | -| GET_FORMAT | Obtaining the format of the local window buffer. Variable argument in the function: [Output] int32_t \*format. | -| SET_FORMAT | Setting the format for the local window buffer. Variable argument in the function: [Input] int32_t format. | -| GET_USAGE | Obtaining the usage mode of the local window buffer. Variable argument in the function: [Output] int32_t \*usage. | -| SET_USAGE | Setting the usage mode for the local window buffer. Variable argument in the function: [Input] int32_t usage. | -| SET_STRIDE | Setting the stride for the local window buffer. Variable argument in the function: [Input] int32_t stride. | -| GET_STRIDE | Obtaining the stride of the local window buffer. Variable argument in the function: [Output] int32_t \*stride. | -| SET_SWAP_INTERVAL | Setting the swap interval for the local window buffer. Variable argument in the function: [Input] int32_t interval. | -| GET_SWAP_INTERVAL | Obtaining the swap interval of the local window buffer. Variable argument in the function: [Output] int32_t \*interval. | -| SET_TIMEOUT | Setting the timeout duration for requesting the local window buffer. Variable argument in the function: [Input] int32_t timeout. | -| GET_TIMEOUT | Obtaining the timeout duration for requesting the local window buffer. Variable argument in the function: [Output] int32_t \*timeout. | -| SET_COLOR_GAMUT | Setting the color gamut for the local window buffer. Variable argument in the function: [Input] int32_t colorGamut. | -| GET_COLOR_GAMUT | Obtaining the color gamut of the local window buffer. Variable argument in the function: [out int32_t \*colorGamut]. | -| SET_TRANSFORM | Setting the transform for the local window buffer. Variable argument in the function: [Input] int32_t transform. | -| GET_TRANSFORM | Obtaining the transform of the local window buffer. Variable argument in the function: [Output] int32_t \*transform. | -| SET_UI_TIMESTAMP | Setting the UI timestamp for the local window buffer. Variable argument in the function: [Input] uint64_t uiTimestamp. | - - -### OHHDRMetadataKey +| SET_BUFFER_GEOMETRY | Setting the geometry for the local window buffer.
Variable arguments in the function: [Input] int32_t height and [Input] int32_t width.| +| GET_BUFFER_GEOMETRY | Obtaining the geometry of the local window buffer.
Variable arguments in the function: [Output] int32_t *height and [Output] int32_t *width.| +| GET_FORMAT | Obtaining the format of the local window buffer.
Variable argument in the function: [Output] int32_t *format.| +| SET_FORMAT | Setting the format for the local window buffer.
Variable argument in the function: [Input] int32_t format.| +| GET_USAGE | Obtaining the usage mode of the local window buffer.
Variable argument in the function: [Output] int32_t *usage.| +| SET_USAGE | Setting the usage mode of the local window buffer.
Variable argument in the function: [Input] int32_t usage.| +| SET_STRIDE | Setting the stride for the local window buffer.
Variable argument in the function: [Input] int32_t stride.| +| GET_STRIDE | Obtaining the stride of the local window buffer.
Variable argument in the function: [Output] int32_t *stride.| +| SET_SWAP_INTERVAL | Setting the swap interval for the local window buffer.
Variable argument in the function: [Input] int32_t interval.| +| GET_SWAP_INTERVAL | Obtaining the swap interval of the local window buffer.
Variable argument in the function: [Output] int32_t *interval.| +| SET_TIMEOUT | Setting the timeout duration for requesting the local window buffer.
Variable argument in the function: [Input] int32_t timeout.| +| GET_TIMEOUT | Obtaining the timeout duration for requesting the local window buffer.
Variable argument in the function: [Output] int32_t *timeout.| +| SET_COLOR_GAMUT | Setting the color gamut for the local window buffer.
Variable argument in the function: [Input] int32_t colorGamut.| +| GET_COLOR_GAMUT | Obtaining the color gamut of the local window buffer.
Variable argument in the function: [Output] int32_t *colorGamut.| +| SET_TRANSFORM | Setting the transform for the local window buffer.
Variable argument in the function: [Input] int32_t transform.| +| GET_TRANSFORM | Obtaining the transform of the local window buffer.
Variable argument in the function: [Output] int32_t *transform.| +| SET_UI_TIMESTAMP | Setting the UI timestamp for the local window buffer.
Variable argument in the function: [Input] uint64_t uiTimestamp.| + + +### OHHDRMetadataKey(deprecated) ``` enum OHHDRMetadataKey ``` -**Description**
-Enumerates the HDR metadata keys. -| Name | Description | +**Description** + +Enumerates the HDR metadata keys. This enum is deprecated since API version 9 and is expected to be deleted from API version 14. + + | Value| Description| | -------- | -------- | -| OH_METAKEY_RED_PRIMARY_X | X coordinate of the red primary color. | -| OH_METAKEY_RED_PRIMARY_Y | Y coordinate of the red primary color. | -| OH_METAKEY_GREEN_PRIMARY_X | X coordinate of the green primary color. | -| OH_METAKEY_GREEN_PRIMARY_Y | Y coordinate of the green primary color. | -| OH_METAKEY_BLUE_PRIMARY_X | X coordinate of the blue primary color. | -| OH_METAKEY_BLUE_PRIMARY_Y | Y coordinate of the blue primary color. | -| OH_METAKEY_WHITE_PRIMARY_X | X coordinate of the white point. | -| OH_METAKEY_WHITE_PRIMARY_Y | Y coordinate of the white point. | -| OH_METAKEY_MAX_LUMINANCE | Maximum luminance. | -| OH_METAKEY_MIN_LUMINANCE | Minimum luminance. | -| OH_METAKEY_MAX_CONTENT_LIGHT_LEVEL | Maximum content light level (MaxCLL). | -| OH_METAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL | Maximum frame average light level (MaxFALLL). | -| OH_METAKEY_HDR10_PLUS | HDR10+. | -| OH_METAKEY_HDR_VIVID | Vivid. | - - -### OHScalingMode +| OH_METAKEY_RED_PRIMARY_X | X coordinate of the red primary color.| +| OH_METAKEY_RED_PRIMARY_Y | Y coordinate of the red primary color.| +| OH_METAKEY_GREEN_PRIMARY_X | X coordinate of the green primary color.| +| OH_METAKEY_GREEN_PRIMARY_Y | Y coordinate of the green primary color.| +| OH_METAKEY_BLUE_PRIMARY_X | X coordinate of the blue primary color.| +| OH_METAKEY_BLUE_PRIMARY_Y | Y coordinate of the blue primary color.| +| OH_METAKEY_WHITE_PRIMARY_X | X coordinate of the white point.| +| OH_METAKEY_WHITE_PRIMARY_Y | Y coordinate of the white point.| +| OH_METAKEY_MAX_LUMINANCE | Maximum luminance.| +| OH_METAKEY_MIN_LUMINANCE | Minimum luminance.| +| OH_METAKEY_MAX_CONTENT_LIGHT_LEVEL | Maximum content light level (MaxCLL).| +| OH_METAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL | Maximum frame average light level (MaxFALLL).| +| OH_METAKEY_HDR10_PLUS | HDR10 Plus | +| OH_METAKEY_HDR_VIVID | Vivid | + + +### OHScalingMode(deprecated) ``` enum OHScalingMode ``` -**Description**
-Enumerates the scaling modes. -| Name | Description | +**Description** + +Enumerates the scaling modes. This enum is deprecated since API version 9 and is expected to be deleted from API version 14. + + | Value| Description| | -------- | -------- | -| OH_SCALING_MODE_FREEZE | The window content cannot be updated before the buffer of the window size is received. | -| OH_SCALING_MODE_SCALE_TO_WINDOW | The buffer is scaled in two dimensions to match the window size. | -| OH_SCALING_MODE_SCALE_CROP | The buffer is scaled uniformly so that its smaller size can match the window size. | -| OH_SCALING_MODE_NO_SCALE_CROP | The window is cropped to the size of the buffer's cropping rectangle. Pixels outside the cropping rectangle are considered completely transparent. | +| OH_SCALING_MODE_FREEZE | The window content cannot be updated before the buffer of the window size is received.| +| OH_SCALING_MODE_SCALE_TO_WINDOW | The buffer is scaled in two dimensions to match the window size.| +| OH_SCALING_MODE_SCALE_CROP | The buffer is scaled uniformly so that its smaller size can match the window size.| +| OH_SCALING_MODE_NO_SCALE_CROP | The window is cropped to the size of the buffer's cropping rectangle. Pixels outside the cropping rectangle are considered completely transparent.| ## Function Description @@ -156,21 +167,27 @@ Enumerates the scaling modes. ``` OHNativeWindow* OH_NativeWindow_CreateNativeWindow (void * pSurface) ``` -**Description**
+ +**Description** + Creates a **NativeWindow** instance. A new **NativeWindow** instance is created each time this function is called. \@syscap SystemCapability.Graphic.Graphic2D.NativeWindow - **Parameters** +**Parameters** -| Name | Description | + | Name| Description| | -------- | -------- | -| pSurface | Indicates the pointer to a **ProduceSurface**. The type is **sptr<OHOS::Surface>**. | +| pSurface | Indicates the pointer to a **ProduceSurface**. The type is **sptr<OHOS::Surface>**.| **Returns** Returns the pointer to the **NativeWindow** instance created. +**Since** + +8 + ### OH_NativeWindow_CreateNativeWindowBufferFromSurfaceBuffer() @@ -178,21 +195,27 @@ Returns the pointer to the **NativeWindow** instance created. ``` OHNativeWindowBuffer* OH_NativeWindow_CreateNativeWindowBufferFromSurfaceBuffer (void * pSurfaceBuffer) ``` -**Description**
+ +**Description** + Creates a **NativeWindowBuffer** instance. A new **NativeWindowBuffer** instance is created each time this function is called. \@syscap SystemCapability.Graphic.Graphic2D.NativeWindow - **Parameters** +**Parameters** -| Name | Description | + | Name| Description| | -------- | -------- | -| pSurfaceBuffer | Indicates the pointer to a produce buffer. The type is **sptr<OHOS::SurfaceBuffer>**. | +| pSurfaceBuffer | Indicates the pointer to a **ProduceSurface**. The type is **sptr<OHOS::SurfaceBuffer>**.| **Returns** Returns the pointer to the **NativeWindowBuffer** instance created. +**Since** + +8 + ### OH_NativeWindow_DestroyNativeWindow() @@ -200,16 +223,22 @@ Returns the pointer to the **NativeWindowBuffer** instance created. ``` void OH_NativeWindow_DestroyNativeWindow (OHNativeWindow * window) ``` -**Description**
+ +**Description** + Decreases the reference count of a **NativeWindow** instance by 1 and when the reference count reaches 0, destroys the instance. \@syscap SystemCapability.Graphic.Graphic2D.NativeWindow - **Parameters** +**Parameters** -| Name | Description | + | Name| Description| | -------- | -------- | -| window | Indicates the pointer to a **NativeWindow** instance. | +| window | Indicates the pointer to a **NativeWindow** instance.| + +**Since** + +8 ### OH_NativeWindow_DestroyNativeWindowBuffer() @@ -218,16 +247,22 @@ Decreases the reference count of a **NativeWindow** instance by 1 and when the r ``` void OH_NativeWindow_DestroyNativeWindowBuffer (OHNativeWindowBuffer * buffer) ``` -**Description**
+ +**Description** + Decreases the reference count of a **NativeWindowBuffer** instance by 1 and when the reference count reaches 0, destroys the instance. \@syscap SystemCapability.Graphic.Graphic2D.NativeWindow - **Parameters** +**Parameters** -| Name | Description | + | Name| Description| | -------- | -------- | -| buffer | Indicates the pointer to a **NativeWindowBuffer** instance. | +| buffer | Indicates the pointer to a **NativeWindowBuffer** instance.| + +**Since** + +8 ### OH_NativeWindow_GetBufferHandleFromNative() @@ -236,21 +271,27 @@ Decreases the reference count of a **NativeWindowBuffer** instance by 1 and when ``` BufferHandle* OH_NativeWindow_GetBufferHandleFromNative (OHNativeWindowBuffer * buffer) ``` -**Description**
+ +**Description** + Obtains the pointer to a **BufferHandle** of a **NativeWindowBuffer** instance. \@syscap SystemCapability.Graphic.Graphic2D.NativeWindow - **Parameters** +**Parameters** -| Name | Description | + | Name| Description| | -------- | -------- | -| buffer | Indicates the pointer to a **NativeWindowBuffer** instance. | +| buffer | Indicates the pointer to a **NativeWindowBuffer** instance.| **Returns** Returns the pointer to the **BufferHandle** instance obtained. +**Since** + +8 + ### OH_NativeWindow_GetNativeObjectMagic() @@ -258,21 +299,27 @@ Returns the pointer to the **BufferHandle** instance obtained. ``` int32_t OH_NativeWindow_GetNativeObjectMagic (void * obj) ``` -**Description**
+ +**Description** + Obtains the magic ID of a native object. \@syscap SystemCapability.Graphic.Graphic2D.NativeWindow - **Parameters** +**Parameters** -| Name | Description | + | Name| Description| | -------- | -------- | -| obj | Indicates the pointer to a **NativeWindow** or **NativeWindowBuffer** instance. | +| obj | Indicates the pointer to a **NativeWindow** or **NativeWindowBuffer** instance.| **Returns** Returns the magic ID, which is unique for each native object. +**Since** + +8 + ### OH_NativeWindow_NativeObjectReference() @@ -280,21 +327,27 @@ Returns the magic ID, which is unique for each native object. ``` int32_t OH_NativeWindow_NativeObjectReference (void * obj) ``` -**Description**
+ +**Description** + Adds the reference count of a native object. \@syscap SystemCapability.Graphic.Graphic2D.NativeWindow - **Parameters** +**Parameters** -| Name | Description | + | Name| Description| | -------- | -------- | -| obj | Indicates the pointer to a **NativeWindow** or **NativeWindowBuffer** instance. | +| obj | Indicates the pointer to a **NativeWindow** or **NativeWindowBuffer** instance.| **Returns** Returns an error code defined in **GSError**. +**Since** + +8 + ### OH_NativeWindow_NativeObjectUnreference() @@ -302,21 +355,27 @@ Returns an error code defined in **GSError**. ``` int32_t OH_NativeWindow_NativeObjectUnreference (void * obj) ``` -**Description**
+ +**Description** + Decreases the reference count of a native object and when the reference count reaches 0, destroys this object. \@syscap SystemCapability.Graphic.Graphic2D.NativeWindow - **Parameters** +**Parameters** -| Name | Description | + | Name| Description| | -------- | -------- | -| obj | Indicates the pointer to a **NativeWindow** or **NativeWindowBuffer** instance. | +| obj | Indicates the pointer to a **NativeWindow** or **NativeWindowBuffer** instance.| **Returns** Returns an error code defined in **GSError**. +**Since** + +8 + ### OH_NativeWindow_NativeWindowAbortBuffer() @@ -324,22 +383,28 @@ Returns an error code defined in **GSError**. ``` int32_t OH_NativeWindow_NativeWindowAbortBuffer (OHNativeWindow * window, OHNativeWindowBuffer * buffer ) ``` -**Description**
+ +**Description** + Returns the **NativeWindowBuffer** to the buffer queue through a **NativeWindow** instance, without filling in any content. The **NativeWindowBuffer** can be used for another request. \@syscap SystemCapability.Graphic.Graphic2D.NativeWindow - **Parameters** +**Parameters** -| Name | Description | + | Name| Description| | -------- | -------- | -| window | Indicates the pointer to a **NativeWindow** instance. | -| buffer | Indicates the pointer to a **NativeWindowBuffer** instance. | +| window | Indicates the pointer to a **NativeWindow** instance.| +| buffer | Indicates the pointer to a **NativeWindowBuffer** instance.| **Returns** Returns an error code defined in **GSError**. +**Since** + +8 + ### OH_NativeWindow_NativeWindowFlushBuffer() @@ -347,24 +412,30 @@ Returns an error code defined in **GSError**. ``` int32_t OH_NativeWindow_NativeWindowFlushBuffer (OHNativeWindow * window, OHNativeWindowBuffer * buffer, int fenceFd, Region region ) ``` -**Description**
+ +**Description** + Flushes the **NativeWindowBuffer** filled with the content to the buffer queue through a **NativeWindow** instance for content consumption. \@syscap SystemCapability.Graphic.Graphic2D.NativeWindow - **Parameters** +**Parameters** -| Name | Description | + | Name| Description| | -------- | -------- | -| window | Indicates the pointer to a **NativeWindow** instance. | -| buffer | Indicates the pointer to a **NativeWindowBuffer** instance. | -| fenceFd | Indicates a file descriptor handle, which is used for timing synchronization. | -| region | Indicates a dirty region where content is updated. | +| window | Indicates the pointer to a **NativeWindow** instance.| +| buffer | Indicates the pointer to a **NativeWindowBuffer** instance.| +| fenceFd | Indicates a file descriptor handle, which is used for timing synchronization.| +| region | Indicates a dirty region where content is updated.| **Returns** Returns an error code defined in **GSError**. +**Since** + +8 + ### OH_NativeWindow_NativeWindowHandleOpt() @@ -372,23 +443,29 @@ Returns an error code defined in **GSError**. ``` int32_t OH_NativeWindow_NativeWindowHandleOpt (OHNativeWindow * window, int code, ... ) ``` -**Description**
+ +**Description** + Sets or obtains the attributes of a native window, including the width, height, and content format. \@syscap SystemCapability.Graphic.Graphic2D.NativeWindow - **Parameters** +**Parameters** -| Name | Description | + | Name| Description| | -------- | -------- | -| window | Indicates the pointer to a **NativeWindow** instance. | -| code | Indicates the operation code. For details, see [NativeWindowOperation](#nativewindowoperation). | -| ... | Indicates the variable argument, which must correspond to the operation code. | +| window | Indicates the pointer to a **NativeWindow** instance.| +| code | Indicates the operation code. For details, see [NativeWindowOperation](#nativewindowoperation).| +| ... | Indicates the variable argument, which must correspond to the operation code.| **Returns** Returns an error code defined in **GSError**. +**Since** + +8 + ### OH_NativeWindow_NativeWindowRequestBuffer() @@ -396,117 +473,151 @@ Returns an error code defined in **GSError**. ``` int32_t OH_NativeWindow_NativeWindowRequestBuffer (OHNativeWindow * window, OHNativeWindowBuffer ** buffer, int * fenceFd ) ``` -**Description**
+ +**Description** + Requests a **NativeWindowBuffer** through a **NativeWindow** instance for content production. \@syscap SystemCapability.Graphic.Graphic2D.NativeWindow - **Parameters** +**Parameters** -| Name | Description | + | Name| Description| | -------- | -------- | -| window | Indicates the pointer to a **NativeWindow** instance. | -| buffer | Indicates the double pointer to a **NativeWindowBuffer** instance. | -| fenceFd | Indicates the pointer to a file descriptor handle. | +| window | Indicates the pointer to a **NativeWindow** instance.| +| buffer | Indicates the double pointer to a **NativeWindowBuffer** instance.| +| fenceFd | Indicates the pointer to a file descriptor handle.| **Returns** Returns an error code defined in **GSError**. +**Since** + +8 + -### OH_NativeWindow_NativeWindowSetMetaData() +### OH_NativeWindow_NativeWindowSetMetaData()(deprecated) ``` int32_t OH_NativeWindow_NativeWindowSetMetaData (OHNativeWindow * window, uint32_t sequence, int32_t size, const OHHDRMetaData * metaData ) ``` -**Description**
+ +**Description** + Sets the metadata for a native window. +This function is deprecated since API version 9 and is expected to be deleted from API version 14. \@syscap SystemCapability.Graphic.Graphic2D.NativeWindow - **Parameters** +**Parameters** -| Name | Description | + | Name| Description| | -------- | -------- | -| window | Indicates the pointer to a **NativeWindow** instance. | -| sequence | Indicates the sequence of the producer buffer. | -| size | Indicates the size of the **[OHHDRMetaData](_o_h_h_d_r_meta_data.md)** array. | -| metaData | Indicates the pointer to the **[OHHDRMetaData](_o_h_h_d_r_meta_data.md)** array. | +| window | Indicates the pointer to a **NativeWindow** instance.| +| sequence | Indicates the sequence of the producer buffer.| +| size | Indicates the size of the **OHHDRMetaData** array.| +| metaData| Indicates the pointer to the **OHHDRMetaData** array.| **Returns** Returns an error code defined in **GSError**. +**Since** + +9 + -### OH_NativeWindow_NativeWindowSetMetaDataSet() +### OH_NativeWindow_NativeWindowSetMetaDataSet()(deprecated) ``` int32_t OH_NativeWindow_NativeWindowSetMetaDataSet (OHNativeWindow * window, uint32_t sequence, OHHDRMetadataKey key, int32_t size, const uint8_t * metaData ) ``` -**Description**
+ +**Description** + Sets the metadata set for a native window. +This function is deprecated since API version 9 and is expected to be deleted from API version 14. \@syscap SystemCapability.Graphic.Graphic2D.NativeWindow - **Parameters** +**Parameters** -| Name | Description | + | Name| Description| | -------- | -------- | -| window | Indicates the pointer to a **NativeWindow** instance. | -| sequence | Indicates the sequence of the producer buffer. | -| key | Indicates a metadata key. For details, see **OHHDRMetadataKey**. | -| size | Indicates the size of the uint8_t vector. | -| metaData | Indicates the pointer to the uint8_t vector. | +| window | Indicates the pointer to a **NativeWindow** instance.| +| sequence | Indicates the sequence of the producer buffer.| +| key | Indicates a metadata key. For details, see [OHHDRMetadataKey](#ohhdrmetadatakey).| +| size | Indicates the size of the uint8_t vector.| +| metaData| Indicates the pointer to the uint8_t vector.| **Returns** Returns an error code defined in **GSError**. +**Since** -### OH_NativeWindow_NativeWindowSetScalingMode() +9 + + +### OH_NativeWindow_NativeWindowSetScalingMode()(deprecated) ``` int32_t OH_NativeWindow_NativeWindowSetScalingMode (OHNativeWindow * window, uint32_t sequence, OHScalingMode scalingMode ) ``` -**Description**
+ +**Description** + Sets the scaling mode for a native window. +This function is deprecated since API version 9 and is expected to be deleted from API version 14. \@syscap SystemCapability.Graphic.Graphic2D.NativeWindow - **Parameters** +**Parameters** -| Name | Description | + | Name| Description| | -------- | -------- | -| window | Indicates the pointer to a **NativeWindow** instance. | -| sequence | Indicates the sequence of the producer buffer. | -| scalingMode | Indicates the scaling mode to set. For details, see **OHScalingMode**. | +| window | Indicates the pointer to a **NativeWindow** instance.| +| sequence | Indicates the sequence of the producer buffer.| +| scalingMode | Indicates the scaling mode to set. For details, see [OHScalingMode](#ohscalingmode).| **Returns** Returns an error code defined in **GSError**. +**Since** + +9 -### OH_NativeWindow_NativeWindowSetTunnelHandle() + +### OH_NativeWindow_NativeWindowSetTunnelHandle()(deprecated) ``` int32_t OH_NativeWindow_NativeWindowSetTunnelHandle (OHNativeWindow * window, const OHExtDataHandle * handle ) ``` -**Description**
+ +**Description** + Sets a tunnel handle for a native window. +This function is deprecated since API version 9 and is expected to be deleted from API version 14. \@syscap SystemCapability.Graphic.Graphic2D.NativeWindow - **Parameters** +**Parameters** -| Name | Description | + | Name| Description| | -------- | -------- | -| window | Indicates the pointer to a **NativeWindow** instance. | -| handle | Indicates the pointer to an **[OHExtDataHandle](_o_h_ext_data_handle.md)**. | +| window | Indicates the pointer to a **NativeWindow** instance.| +| handle | Indicates the pointer to an [OHExtDataHandle](_o_h_ext_data_handle.md).| **Returns** Returns an error code defined in **GSError**. + +**Since** + +9 diff --git a/en/application-dev/reference/native-apis/image.md b/en/application-dev/reference/native-apis/image.md index 365d04c8dca0a1b718593337237a8e5fb4f0bcb9..828deade6aa8c410facb355dd9669d4b8489862c 100644 --- a/en/application-dev/reference/native-apis/image.md +++ b/en/application-dev/reference/native-apis/image.md @@ -19,7 +19,7 @@ To use the APIs in this file, **libpixelmap_ndk.z.so** is required. | Name| Description| | -------- | -------- | -| [image_pixel_map_napi.h](image__pixel__map__napi_8h.md) | Declares the APIs that can lock, access, and unlock a pixel map.
File to include:: | +| [image_pixel_map_napi.h](image__pixel__map__napi_8h.md) | Declares the APIs that can lock, access, and unlock a pixel map.
File to include: | ### Structs diff --git a/en/application-dev/tools/packing-tool.md b/en/application-dev/tools/packing-tool.md index 36b5c7fdc295604d7bc46db5e01300e517514ade..db0f232d6c53cdb7bf47c540010c2aea3f83d06c 100644 --- a/en/application-dev/tools/packing-tool.md +++ b/en/application-dev/tools/packing-tool.md @@ -1,90 +1,617 @@ -# Packaging Tool - - -The packaging tool is a commissioning tool provided by OpenHarmony. It can generate HAP files in command line mode, pack multiple HAP files into an App Pack, or pack multiple HAP files and App Packs into an App Pack. App Pack is the application package format required for releasing an application on AppGallery. - - -The **app_packing_tool.jar** package can be found in the OpenHarmony SDK downloaded locally. - - -- Packing folders into an HAP file - -The command in the stage model is as follows: - - - ```bash - java -jar app_packing_tool.jar --mode