提交 7aee500f 编写于 作者: X xinking129

Merge remote-tracking branch 'upstream/master'

......@@ -86,13 +86,13 @@ The application file paths obtained by the preceding contexts are different.
| Name| Path|
| -------- | -------- |
| bundleCodeDir | <Path prefix>/el1/bundle/|
| cacheDir | <Path prefix>/<Encryption level>/base/cache/|
| filesDir | <Path prefix>/<Encryption level>/base/files/|
| preferencesDir | <Path prefix>/<Encryption level>/base/preferences/|
| tempDir | <Path prefix>/<Encryption level>/base/temp/|
| databaseDir | <Path prefix>/<Encryption level>/database/|
| distributedFilesDir | <Path prefix>/el2/distributedFiles/|
| bundleCodeDir | \<Path prefix>/el1/bundle/|
| cacheDir | \<Path prefix>/\<Encryption level>/base/cache/|
| filesDir | \<Path prefix>/\<Encryption level>/base/files/|
| preferencesDir | \<Path prefix>/\<Encryption level>/base/preferences/|
| tempDir | \<Path prefix>/\<Encryption level>/base/temp/|
| databaseDir | \<Path prefix>/\<Encryption level>/database/|
| distributedFilesDir | \<Path prefix>/el2/distributedFiles/|
The sample code is as follows:
......@@ -118,13 +118,13 @@ The application file paths obtained by the preceding contexts are different.
| Name| Path|
| -------- | -------- |
| bundleCodeDir | <Path prefix>/el1/bundle/|
| cacheDir | <Path prefix>/<Encryption level>/base/**haps/\<module-name>**/cache/|
| filesDir | <Path prefix>/<Encryption level>/base/**haps/\<module-name>**/files/|
| preferencesDir | <Path prefix>/<Encryption level>/base/**haps/\<module-name>**/preferences/|
| tempDir | <Path prefix>/<Encryption level>/base/**haps/\<module-name>**/temp/|
| databaseDir | <Path prefix>/<Encryption level>/database/**\<module-name>**/|
| distributedFilesDir | <Path prefix>/el2/distributedFiles/**\<module-name>**/|
| bundleCodeDir | \<Path prefix>/el1/bundle/|
| cacheDir | \<Path prefix>/\<Encryption level>/base/**haps/\<module-name>**/cache/|
| filesDir | \<Path prefix>/\<Encryption level>/base/**haps/\<module-name>**/files/|
| preferencesDir | \<Path prefix>/\<Encryption level>/base/**haps/\<module-name>**/preferences/|
| tempDir | \<Path prefix>/\<Encryption level>/base/**haps/\<module-name>**/temp/|
| databaseDir | \<Path prefix>/\<Encryption level>/database/**\<module-name>**/|
| distributedFilesDir | \<Path prefix>/el2/distributedFiles/**\<module-name>**/|
The sample code is as follows:
......
# Setting Atomic Services to Support Sharing
By means of sharing, users can quickly access atomic services and use their features.
## How to Develop
In the sharing scenario, there are two parties involved: a target application that shares data and an application that obtains the shared data. The two can be physically the same. The target application uses the **onShare()** lifecycle callback to set the data to share. After the target application is started, you can run the **hdc shell aa dump -a** command to check the started services and processes and find its mission ID. After the current application is started, call the **abilityManager.acquireShareData()** API with the mission ID passed in to obtain the shared data.
> **NOTE**
>
> The mission ID of the target application can also be obtained by calling [missionManager.getMissionInfos()](../reference/apis/js-apis-app-ability-missionManager.md#getmissioninfos).
1. The target application calls **UIAbility.onShare()** provided by the UIAbility component to set the data to share. **ohos.extra.param.key.contentTitle** indicates the title of the content to share in the sharing box, **ohos.extra.param.key.shareAbstract** provides an abstract description of the content, and **ohos.extra.param.key.shareUrl** indicates the online address of the service. You need to set these three items as objects, with the key set to **title**, **abstract**, and **url**, respectively.
1. An application calls [UIAbility.onShare()](../reference/apis/js-apis-app-ability-uiAbility.md#onshare), a lifecycle callback provided by the UIAbility component, to set the data to share. In this lifecycle callback, **ohos.extra.param.key.contentTitle** indicates the title of the content to share in the sharing box, **ohos.extra.param.key.shareAbstract** provides an abstract description of the content, and **ohos.extra.param.key.shareUrl** indicates the online address of the service. You need to set these three items as objects, with the key set to **title**, **abstract**, and **url**, respectively.
```ts
import AbilityConstant from '@ohos.app.ability.AbilityConstant';
class MyUIAbility extends UIAbility {
onShare(wantParams) {
console.log('onShare');
wantParams['ohos.extra.param.key.contentTitle'] = {title: "W3"};
wantParams['ohos.extra.param.key.shareAbstract'] = {abstract: "communication for huawei employee"};
wantParams['ohos.extra.param.key.shareUrl'] = {url: "w3.huawei.com"};
wantParams['ohos.extra.param.key.contentTitle'] = {title: "OA"};
wantParams['ohos.extra.param.key.shareAbstract'] = {abstract: "communication for company employee"};
wantParams['ohos.extra.param.key.shareUrl'] = {url: "oa.example.com"};
}
}
```
2. The current application calls **abilityManager.acquireShareData()** to obtain the data shared by the target application. **missionId** indicates the target application's mission ID, which can be obtained by running the **hdc shell aa dump -a** command or calling the **missionManager.getMissionInfos()** API after the target application is started. **wantParam** indicates the data shared by the target application through the **UIAbility.onShare()** lifecycle callback.
2. A system dialog box calls [abilityManager.acquireShareData()](../reference/apis/js-apis-app-ability-abilityManager.md#acquiresharedata) to obtain data shared through atomic service sharing. Specifically, the system finds the UIAbility based on the mission ID and calls the **OnShare()** lifecycle of the UIAbility to obtain the shared data.
```ts
import abilityManager from '@ohos.app.ability.abilityManager';
......
......@@ -18,8 +18,85 @@ For details about the APIs, see [Vibrator](../reference/apis/js-apis-vibrator.md
| ohos.vibrator | stopVibration(stopMode: VibratorStopMode, callback: AsyncCallback&lt;void&gt;): void | Stops vibration in the specified mode. This API uses an asynchronous callback to return the result. |
| ohos.vibrator | stopVibration(): Promise&lt;void&gt; | Stops vibration in all modes. This API uses a promise to return the result. |
| ohos.vibrator | stopVibration(callback: AsyncCallback&lt;void&gt;): void | Stops vibration in all modes. This API uses an asynchronous callback to return the result. |
| ohos.vibrator | isSupportEffect(effectId: string): Promise&lt;boolean&gt; | Checks whether the passed effect ID is supported. This API uses a promise to return the result. The value **true** means that the passed effect ID is supported, and **false** means the opposite. |
| ohos.vibrator | isSupportEffect(effectId: string, callback: AsyncCallback&lt;boolean&gt;): void | Checks whether the passed effect ID is supported. This API uses an asynchronous callback to return the result. The value **true** means that the passed effect ID is supported, and **false** means the opposite. |
| ohos.vibrator | isSupportEffect(effectId: string): Promise&lt;boolean&gt; | Checks whether the passed effect ID is supported. This API uses a promise to return the result. The value **true** means that the passed effect ID is supported, and **false** means the opposite.|
| ohos.vibrator | isSupportEffect(effectId: string, callback: AsyncCallback&lt;boolean&gt;): void | Checks whether the passed effect ID is supported. This API uses an asynchronous callback to return the result. The value **true** means that the passed effect ID is supported, and **false** means the opposite.|
## Custom Vibration Format
Custom vibration enables you to design desired vibration effects by customizing a vibration configuration file and orchestrating vibration forms based on the corresponding rules.
The custom vibration configuration file is in JSON format. An example file is as follows:
```json
{
"MetaData": {
"Create": "2023-01-09",
"Description": "a haptic case",
"Version": 1.0,
"ChannelNumber": 1
},
"Channels": [
{
"Parameters": {
"Index": 1
},
"Pattern": [
{
"Event": {
"Type": "transient",
"StartTime": 0,
"Parameters": {
"Intensity": 100,
"Frequency": 31
}
}
},
{
"Event": {
"Type": "continuous",
"StartTime": 100,
"Duration": 54,
"Parameters": {
"Intensity": 38,
"Frequency": 30
}
}
}
]
}
]
}
```
This JSON file contains two attributes: **MetaData** and **Channels**.
- **MetaData** contains information about the file header. You can add the following attributes under **MetaData**:
- **Version**: version number of the file format, which is forward compatible. Currently, only version 1.0 is supported. This parameter is mandatory.
- **ChannelNumber**: number of channels for vibration. Currently, only one channel is supported, and the value is fixed at **1**. This parameter is mandatory.
- **Create**: time when the file was created. This parameter is optional.
- **Description**: additional information such as the vibration effect and creation information. This parameter is optional.
- **Channels** provides information about the vibration channel. It is a JSON array that holds information about each channel. It contains two attributes: **Parameters** and **Pattern**.
- **Parameters** provides parameters related to the channel. Under it, **Index** indicates the channel ID. The value is fixed at **1** for a single channel. This parameter is mandatory.
- **Pattern** indicates the vibration sequence. It is a JSON array. Under it, **Event** indicates a vibration event, which can be either of the following types:
- **transient**: short vibration
- **continuous**: long vibration
The table below describes the parameters under **Event**.
| Parameter| Description| Value or Value Range|
| --- | ------------------------ | ---|
| Type | Type of the vibration event. This parameter is mandatory.| **transient** or **continuous**|
| StartTime | Start time of the vibration. This parameter is mandatory.| [0, 1800 000], in ms, without overlapping|
| Duration | Duration of the vibration. This parameter is valid only when **Type** is **continuous**.| (10, 1600), in ms|
| Intensity | Intensity of the vibration. This parameter is mandatory.| [0, 100], a relative value that does not represent the actual vibration strength.|
| Frequency | Frequency of the vibration. This parameter is mandatory.| [0, 100], a relative value that does not represent the actual vibration frequency|
The following requirements must be met:
| Item| Description |
| -------- | ------------------------ |
| Number of vibration events| No more than 128|
| Length of the vibration configuration file| Not greater than 64 KB|
## How to Develop
......@@ -135,3 +212,63 @@ For details about the APIs, see [Vibrator](../reference/apis/js-apis-vibrator.md
console.error('Exception in, error:' + JSON.stringify(error));
}
```
6. Start and stop custom vibration.
```js
import vibrator from '@ohos.vibrator';
import resourceManager from '@ohos.resourceManager';
const FILE_NAME = "xxx.json";
async function openResource(fileName) {
let fileDescriptor = undefined;
let mgr = await resourceManager.getResourceManager();
await mgr.getRawFd(fileName).then(value => {
fileDescriptor = {fd: value.fd, offset: value.offset, length: value.length};
console.log('openResource success fileName: ' + fileName);
}).catch(error => {
console.log('openResource err: ' + error);
});
return fileDescriptor;
}
async function closeResource(fileName) {
let mgr = await resourceManager.getResourceManager();
await mgr.closeRawFd(fileName).then(()=> {
console.log('closeResource success fileName: ' + fileName);
}).catch(error => {
console.log('closeResource err: ' + error);
});
}
// Obtain the file descriptor of the vibration configuration file.
let rawFd = openResource(FILE_NAME);
// To use startVibration and stopVibration, you must configure the ohos.permission.VIBRATE permission.
try {
// Start custom vibration.
vibrator.startVibration({
type: "file",
hapticFd: { fd: rawFd.fd, offset: rawFd.offset, length: rawFd.length }
}, {
usage: "alarm"
}).then(() => {
console.info('startVibration success');
}, (error) => {
console.info('startVibration error');
});
// Stop vibration in all modes.
vibrator.stopVibration(function (error) {
if (error) {
console.log('error.code' + error.code + 'error.message' + error.message);
return;
}
console.log('Callback returned to indicate successful.');
})
} catch (error) {
console.info('errCode: ' + error.code + ' ,msg: ' + error.message);
}
// Close the vibration configuration file.
closeResource(FILE_NAME);
```
# Image Transformation (Native)
You will learn how to use native image APIs to process images, including cropping, rotating, scaling, flipping, translating, and opacity setting.
You will learn how to use native image APIs to process images.
## How to Develop
......@@ -22,9 +22,9 @@ Open the **src/main/cpp/hello.cpp** file and add the following API mappings to t
static napi_value Init(napi_env env, napi_value exports)
{
napi_property_descriptor desc[] = {
{ "createPixelMap", nullptr, CreatePixelMap, nullptr, nullptr, nullptr, napi_default, nullptr },
{ "createAlphaPixelMap", nullptr, CreateAlphaPixelMap, nullptr, nullptr, nullptr, napi_default, nullptr },
{ "transform", nullptr, Transform, nullptr, nullptr, nullptr, napi_default, nullptr }
{ "testGetImageInfo", nullptr, TestGetImageInfo, nullptr, nullptr, nullptr, napi_default, nullptr },
{ "testAccessPixels", nullptr, TestAccessPixels, nullptr, nullptr, nullptr, napi_default, nullptr },
{ "testUnAccessPixels", nullptr, TestUnAccessPixels, nullptr, nullptr, nullptr, napi_default, nullptr },
};
napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc);
......@@ -40,159 +40,56 @@ For details about the APIs, see [Image API Reference](../reference/native-apis/i
Obtain the JS resource object from the **hello.cpp** file and convert it to a native resource object. Then you can call native APIs. The sample code is as follows:
1. Create a **PixelMap** object based on a pixel array.
1. Obtain the **PixelMap** information and store the information to the **OhosPixelMapInfo** struct.
```c++
// Create a PixelMap object.
napi_value CreatePixelMap(napi_env env, napi_callback_info info)
static napi_value TestGetImageInfo(napi_env env, napi_callback_info info)
{
napi_value udfVar = nullptr;
napi_value thisVar = nullptr;
napi_value argValue[2] = {0};
size_t argCount = 2;
void* buffer = nullptr;
size_t bufferSize = 0;
struct OhosPixelMapCreateOps createOps;
napi_value pixelmap = nullptr;
napi_get_undefined(env, &udfVar);
napi_get_cb_info(env, info, &argCount, argValue, &thisVar, nullptr);
if (napi_get_arraybuffer_info(env, argValue[0], &buffer, &bufferSize) != napi_ok ||
buffer == nullptr || bufferSize == 0) {
return udfVar;
}
createOps.width = 4;
createOps.height = 6;
createOps.pixelFormat = 4;
createOps.alphaType = 0;
int32_t res = OH_PixelMap_CreatePixelMap(env, createOps, (uint8_t *)buffer, bufferSize, &pixelmap);
if (res != OHOS_IMAGE_RESULT_SUCCESS || pixelmap == nullptr) {
return udfVar;
}
return pixelmap;
}
napi_value result = nullptr;
napi_get_undefined(env, &result);
// Create a PixelMap object that contains only the alpha channel.
napi_value CreateAlphaPixelMap(napi_env env, napi_callback_info info)
{
napi_value udfVar = nullptr;
napi_value thisVar = nullptr;
napi_value argValue[1] = {0};
size_t argCount = 1;
napi_value alphaPixelmap = nullptr;
napi_get_undefined(env, &udfVar);
napi_get_cb_info(env, info, &argCount, argValue, &thisVar, nullptr);
if (napi_get_cb_info(env, info, &argCount, argValue, &thisVar, nullptr) != napi_ok ||
argCount < 1 || argValue[0] == nullptr) {
return udfVar;
}
int32_t res = OH_PixelMap_CreateAlphaPixelMap(env, argValue[0], &alphaPixelmap);
if (res != OHOS_IMAGE_RESULT_SUCCESS || alphaPixelmap == nullptr) {
return udfVar;
}
return alphaPixelmap;
OHOS::Media::OhosPixelMapInfo pixelMapInfo;
OHOS::Media::OH_GetImageInfo(env, argValue[0], &pixelMapInfo);
return result;
}
```
2. Perform image transformation. For details about the operation, read the comments in the sample code below.
2. Obtain the memory address of a **PixelMap** object and lock the memory.
```c++
napi_value Transform(napi_env env, napi_callback_info info)
static napi_value TestAccessPixels(napi_env env, napi_callback_info info)
{
napi_value result = nullptr;
napi_get_undefined(env, &result);
napi_value thisVar = nullptr;
napi_value argValue[1] = {0};
size_t argCount = 1;
if (napi_get_cb_info(env, info, &argCount, argValue, &thisVar, nullptr) != napi_ok ||
argCount < 1 || argValue[0] == nullptr) {
return nullptr;
napi_get_cb_info(env, info, &argCount, argValue, &thisVar, nullptr);
void* addrPtr = nullptr;
OHOS::Media::OH_AccessPixels(env, argValue[0], &addrPtr);
return result;
}
```
3. Unlock the memory of the **PixelMap** object.
```c++
static napi_value TestUnAccessPixels(napi_env env, napi_callback_info info)
{
napi_value result = nullptr;
napi_get_undefined(env, &result);
NativePixelMap* native = OH_PixelMap_InitNativePixelMap(env, argValue[0]);
if (native == nullptr) {
return result;
}
napi_value thisVar = nullptr;
napi_value argValue[1] = {0};
size_t argCount = 1;
// Obtain image information.
struct OhosPixelMapInfo pixelmapInfo;
OH_PixelMap_GetImageInfo(native, &pixelmapInfo);
// Obtain the number of bytes per row of the PixelMap object.
int32_t rowBytes;
OH_PixelMap_GetBytesNumberPerRow(native, &rowBytes);
// Check whether the PixelMap object is editable.
int32_t editable = 0;
OH_PixelMap_GetIsEditable(native, &editable);
// Check whether the PixelMap object supports alpha channels.
int32_t supportAlpha = 0;
OH_PixelMap_IsSupportAlpha(native, &supportAlpha);
// Set an alpha channel for the PixelMap object.
int32_t alphaAble = 0;
OH_PixelMap_SetAlphaAble(native, alphaAble);
// Obtain the pixel density of the PixelMap object.
int32_t densityG;
OH_PixelMap_GetDensity(native, &densityG);
// Set the pixel density for the PixelMap object.
int32_t densityS = 100;
OH_PixelMap_SetDensity(native, densityS);
// Set the opacity for the PixelMap object.
float opacity = 0.5;
OH_PixelMap_SetOpacity(native, opacity);
// Scale the image.
// scaleX: The width of the image after scaling is 0.5 of the original width.
// scaleY: The height of the image after scaling is 0.5 of the original height.
float scaleX = 0.5;
float scaleY = 0.5;
OH_PixelMap_Scale(native, scaleX, scaleY);
// Translate the image.
// translateX: Translate the image by 50 units downwards.
// translateY: Translate the image by 50 units rightwards.
float translateX = 50;
float translateY = 50;
OH_PixelMap_Translate(native, translateX, translateY);
// Rate the image clockwise by 90°.
float angle = 90;
OH_PixelMap_Rotate(native, angle);
// Flip the image.
// flipX: whether to flip the image horizontally. The value 1 means to flip the image and 0 means the opposite.
// flipY: whether to flip the image vertically. The value 1 means to flip the image and 0 means the opposite.
int32_t flipX = 0;
int32_t flipY = 1;
OH_PixelMap_Flip(native, flipX, flipY);
// Crop the image.
// cropX: x-axis coordinate of the start point for cropping (0).
// cropY: y-axis coordinate of the start point for cropping (0).
// cropH: height after cropping (10), cropping from top to bottom.
// cropW: width after cropping (10), cropping from left to right.
int32_t cropX = 1;
int32_t cropY = 1;
int32_t cropW = 10;
int32_t cropH = 10;
OH_PixelMap_Crop(native, cropX, cropY, cropW, cropH);
uint8_t* pixelAddr = nullptr;
// Obtain the memory address of the PixelMap object and lock the memory.
OH_PixelMap_AccessPixels(native, &pixelAddr);
// Unlock the memory of the PixelMap object.
OH_PixelMap_UnAccessPixels(native);
napi_get_cb_info(env, info, &argCount, argValue, &thisVar, nullptr);
OHOS::Media::OH_UnAccessPixels(env, argValue[0]);
return result;
}
```
......@@ -205,33 +102,37 @@ Obtain the JS resource object from the **hello.cpp** file and convert it to a na
```js
import testNapi from 'libentry.so'
import image from '@ohos.multimedia.image'
import image from '@ohos.multimedia.image';
@Entry
@Component
struct Index {
@State _pixelMap: image.PixelMap = undefined;
@State message: string = 'IMAGE'
@State _PixelMap: image.PixelMap = undefined
build() {
Row() {
Column() {
Button("PixelMap")
.width(100)
.height(100)
Button(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
.onClick(() => {
const color = new ArrayBuffer(96);
var bufferArr = new Uint8Array(color);
for (var i = 0; i < bufferArr.length; i++) {
bufferArr[i] = 0x80;
}
this._pixelMap = testNapi.createPixelMap(color);
testNapi.transform(this._pixelMap);
let opts = { alphaType: 0, editable: true, pixelFormat: 4, scaleMode: 1, size: { height: 4, width: 6 } }
image.createPixelMap(color, opts)
.then( pixelmap => {
this._PixelMap = pixelmap;
})
Image(this._pixelMap)
.width(500)
.height(500)
.objectFit(ImageFit.Cover)
testNapi.testGetImageInfo(this._PixelMap);
console.info("Test GetImageInfo success");
testNapi.testAccessPixels(this._PixelMap);
console.info("Test AccessPixels success");
testNapi.testUnAccessPixels(this._PixelMap);
console.info("Test UnAccessPixels success");
})
}
.width('100%')
}
......
......@@ -35,33 +35,31 @@ The following steps describe how to use the native purgeable memory APIs to appl
struct ParaData{
int start;
int end;
}
};
// Declare a function for modifying the object.
bool FactorialFunc(void* data, size_t size, void* param){
bool ret = true;
int oriData = *(int*)(data);
int i = param->start;
while(i<param->end){
oriData *= i;
ParaData *pdata = (ParaData*) param;
int* oriData = (int*)data;
int i = pdata->start;
while(i<pdata->end){
*oriData *= i;
}
*data = oriData;
if(oriData < 0)
ret = false;
return ret;
}
// Declare the parameters of the extended function for modifying the object.
struct AppendParaData{
int newPara;
}
};
// Declare the extended function for modifying the object.
bool AddFunc(void* data, size_t size, void* param){
bool ret = true;
int oriData = *(int*)(data);
oriData += param->newPara;
*data = oriData;
int *oriDatap = (int*) data;
AppendParaData* apData = (AppendParaData*)param;
*oriDatap += apData->newPara;
return ret;
}
```
......@@ -74,11 +72,14 @@ The following steps describe how to use the native purgeable memory APIs to appl
struct ParaData pdata = {1,2};
// Create a PurgeableMemory object.
OH_PurgableMmory* pPurgmem = OH_PurgableMmory_Create(DATASIZE, FactorialFunc, &pdata);
OH_PurgeableMemory* pPurgmem = OH_PurgeableMemory_Create(DATASIZE, FactorialFunc, &pdata);
```
3. Perfrom a read operation on the **PurgeableMemory** object.
```c++
// Define an object type based on the service requirements.
class ReqObj;
// Begin a read operation on the object.
OH_PurgeableMemory_BeginRead(pPurgmem);
......@@ -94,8 +95,11 @@ The following steps describe how to use the native purgeable memory APIs to appl
4. Perform a write operation on the **PurgeableMemory** object.
```c++
// Define an object type based on the service requirements.
class ReqObj;
// Begin a write operation on the object.
OH_PurgeableMemory_BeginWrite(pPurgmem)
OH_PurgeableMemory_BeginWrite(pPurgmem);
// Obtain the object data.
ReqObj* pReqObj = (ReqObj*) OH_PurgeableMemory_GetContent(pPurgmem);
......
......@@ -86,8 +86,10 @@
- [AppStateData](js-apis-inner-application-appStateData.md)
- [BaseContext](js-apis-inner-application-baseContext.md)
- [Context](js-apis-inner-application-context.md)
- [ContinuableInfo](js-apis-inner-application-continuableInfo.md)
- [ContinueCallback](js-apis-inner-application-continueCallback.md)
- [ContinueDeviceInfo](js-apis-inner-application-continueDeviceInfo.md)
- [ContinueMissionInfo](js-apis-inner-application-continueMissionInfo.md)
- [ErrorObserver](js-apis-inner-application-errorObserver.md)
- [ExtensionContext](js-apis-inner-application-extensionContext.md)
- [ExtensionRunningInfo](js-apis-inner-application-extensionRunningInfo.md)
......@@ -194,7 +196,6 @@
- [@ohos.router (Page Routing)](js-apis-router.md)
- [@ohos.measure (Text Measurement)](js-apis-measure.md)
- [@ohos.uiAppearance (UI Appearance)](js-apis-uiappearance.md)
- Graphics
- [@ohos.animation.windowAnimationManager (Window Animation Management)](js-apis-windowAnimationManager.md)
- [@ohos.application.WindowExtensionAbility (WindowExtensionAbility)](js-apis-application-windowExtensionAbility.md)
......@@ -207,7 +208,6 @@
- webgl
- [WebGL](js-apis-webgl.md)
- [WebGL2](js-apis-webgl2.md)
- Multimedia
- [@ohos.multimedia.audio (Audio Management)](js-apis-audio.md)
- [@ohos.multimedia.avsession (AVSession Management)](js-apis-avsession.md)
......@@ -347,6 +347,7 @@
- [@ohos.brightness (Screen Brightness)](js-apis-brightness.md)
- [@ohos.charger (Charging Type)](js-apis-charger.md)
- [@ohos.cooperate (Screen Hopping)](js-apis-devicestatus-cooperate.md)
- [@ohos.deviceAttest (Device Attestation)](js-apis-deviceAttest.md)
- [@ohos.deviceInfo (Device Information)](js-apis-device-info.md)
- [@ohos.distributedHardware.deviceManager (Device Management)](js-apis-device-manager.md)
- [@ohos.geoLocationManager (Geolocation Manager)](js-apis-geoLocationManager.md)
......@@ -356,6 +357,7 @@
- [@ohos.multimodalInput.inputEvent (Input Event)](js-apis-inputevent.md)
- [@ohos.multimodalInput.inputEventClient (Key Event Injection)](js-apis-inputeventclient.md)
- [@ohos.multimodalInput.inputMonitor (Input Monitor)](js-apis-inputmonitor.md)
- [@ohos.multimodalInput.intentionCode (Intention Code)](js-apis-intentioncode.md)
- [@ohos.multimodalInput.keyCode (Key Code)](js-apis-keycode.md)
- [@ohos.multimodalInput.keyEvent (Key Event)](js-apis-keyevent.md)
- [@ohos.multimodalInput.mouseEvent (Mouse Event)](js-apis-mouseevent.md)
......@@ -364,6 +366,7 @@
- [@ohos.multimodalInput.shortKey (Shortcut Key)](js-apis-shortKey.md)
- [@ohos.power (System Power Management)](js-apis-power.md)
- [@ohos.runningLock (Runninglock)](js-apis-runninglock.md)
- [@ohos.resourceschedule.deviceStandby (Device Standby)](js-apis-resourceschedule-deviceStandby.md)
- [@ohos.sensor (Sensor)](js-apis-sensor.md)
- [@ohos.settings (Data Item Settings)](js-apis-settings.md)
- [@ohos.stationary (Device Status Awareness Framework)](js-apis-stationary.md)
......@@ -421,7 +424,6 @@
- Test
- [@ohos.application.testRunner (TestRunner)](js-apis-application-testRunner.md)
- [@ohos.deviceAttest (Device Attestation)](js-apis-deviceAttest.md)
- [@ohos.uitest (UiTest)](js-apis-uitest.md)
- APIs No Longer Maintained
......
......@@ -388,7 +388,7 @@ abilityManager.getTopAbility().then((data) => {
acquireShareData(missionId: number, callback: AsyncCallback<{[key: string]: Object}>): void;
Acquires the shared data of the target application. This API uses an asynchronous callback to return the result. **missionId** indicates the target application's mission ID, which can be obtained by running the **hdc shell aa dump -a** command or calling the [missionManager.getMissionInfos()](js-apis-app-ability-missionManager.md#getmissioninfos) API after the target application is started. **callback** indicates the data shared by the target application through the [UIAbility.onShare()](js-apis-app-ability-uiAbility.md#onshare) lifecycle callback.
Called by a system dialog box to obtain shared data, which is set by the target UIAbility through **onShare()**. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.Core
......@@ -429,10 +429,16 @@ try {
acquireShareData(missionId: number): Promise<{[key: string]: Object}>;
Acquires the shared data of the target application. This API uses a promise to return the result. **missionId** indicates the target application's mission ID, which can be obtained by running the **hdc shell aa dump -a** command or calling the [missionManager.getMissionInfos()](js-apis-app-ability-missionManager.md#getmissioninfos) API after the target application is started. **Promise<{[key: string]: Object}>** indicates the data shared by the target application through the [UIAbility.onShare()](js-apis-app-ability-uiAbility.md#onshare) lifecycle callback.
Called by a system dialog box to obtain shared data, which is set by the target UIAbility through **onShare()**. This API uses a promise to return the result.
**System capability**: SystemCapability.Ability.AbilityRuntime.Core
**Parameters**
| Name | Type | Mandatory | Description |
| --------- | ---------------------------------------- | ---- | -------------- |
| missionId | number | Yes| Mission ID on the target application. The maximum value is 2<sup>31</sup>-1.|
**Return value**
| Type | Description |
......
# @ohos.application.formBindingData (formBindingData)
# @ohos.app.form.formBindingData (formBindingData)
The **FormBindingData** module provides APIs for widget data binding. You can use the APIs to create a **FormBindingData** object and obtain related information.
......@@ -12,6 +12,19 @@ The **FormBindingData** module provides APIs for widget data binding. You can us
import formBindingData from '@ohos.app.form.formBindingData';
```
## ProxyData<sup>10+</sup>
Defines the subscription information about the widget update by proxy.
**System capability**: SystemCapability.Ability.Form
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| key | string | Yes| Subscriber ID of the widget update by proxy. The value is the same as that of the data publisher.|
| subscriberId | string | No| Subscription condition of the widget update by proxy. The default value is the current widget ID (specified by **formId**).|
## FormBindingData
Describes a **FormBindingData** object.
......@@ -21,7 +34,7 @@ Describes a **FormBindingData** object.
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| data | Object | Yes| Data to be displayed on the JS widget. The value can be an object containing multiple key-value pairs or a string in JSON format.|
| proxies<sup>10+</sup> | Array<[ProxyData](#proxydata)> | No| Subscription information of the widget update by proxy. The default value is an empty array.|
## createFormBindingData
......@@ -62,3 +75,14 @@ try {
console.error(`catch error, code: ${error.code}, message: ${error.message}`);
}
```
## ProxyData
Defines the widget proxy data.
**System capability**: SystemCapability.Ability.Form
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| key | string | Yes| Key of the proxy. The value depends on the data publisher.|
| subscriberId | string | No| Subscriber ID. The value depends on the data publisher. The default value is the current widget ID.|
......@@ -379,15 +379,15 @@ Replaces all elements in this container with new elements, and returns the new o
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callbackFn | function | Yes| Callback invoked for the replacement.|
| thisArg | Object | No| Value to use when the callback is invoked.|
| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked. The default value is this instance.|
callbackfn
callbackFn
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | T | Yes| Value of the element that is currently traversed.|
| index | number | No| Position index of the element that is currently traversed.|
| arrlist | ArrayList&lt;T&gt; | No| Instance that invokes the **replaceAllElements** method.|
| index | number | No| Position index of the element that is currently traversed. The default value is **0**.|
| arrlist | ArrayList&lt;T&gt; | No| Instance that calls the **replaceAllElements** API. The default value is this instance.|
**Error codes**
......@@ -425,15 +425,15 @@ Uses a callback to traverse the elements in this container and obtain their posi
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callbackFn | function | Yes| Callback invoked for the replacement.|
| thisArg | Object | No| Value to use when the callback is invoked.|
| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked. The default value is this instance.|
callbackfn
callbackFn
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | T | Yes| Value of the element that is currently traversed.|
| index | number | No| Position index of the element that is currently traversed.|
| arrlist | ArrayList&lt;T&gt; | No| Instance that invokes the **forEach** method.|
| index | number | No| Position index of the element that is currently traversed. The default value is 0.|
| arrlist | ArrayList&lt;T&gt; | No| Instance that calls the **forEach** API. The default value is this instance.|
**Error codes**
......@@ -468,7 +468,7 @@ Sorts elements in this container.
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| comparator | function | No| Callback invoked for sorting.|
| comparator | function | No| Callback invoked for sorting. The default value is the callback function for sorting elements in ascending order.|
comparator
......
......@@ -204,7 +204,7 @@ Concatenates an array of **Buffer** instances of the specified length into a new
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| list | Buffer[]&nbsp;\|&nbsp;Uint8Array[] | Yes| Array of instances to concatenate.|
| totalLength | number | No| Total length of bytes to be copied.|
| totalLength | number | No| Total length of bytes to be copied. The default value is **0**.|
**Return value**
......@@ -1915,7 +1915,7 @@ Converts the data at the specified position in this **Buffer** instance into a s
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| encoding | string | No| Encoding format of the string. The default value is **utf-8**.|
| encoding | string | No| Encoding format (valid only when **value** is a string). The default value is **utf-8**.|
| start | number | No| Offset to the start position of the data to convert. The default value is **0**.|
| end | number | No| Offset to the end position of the data to convert. The default value is the length of this **Buffer** instance.|
......
......@@ -242,15 +242,15 @@ Uses a callback to traverse the elements in this container and obtain their posi
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callbackFn | function | Yes| Callback invoked to traverse the elements in the container.|
| thisArg | Object | No| Value to use when the callback is invoked.|
| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked. The default value is this instance.|
callbackfn
callbackFn
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | T | Yes| Value of the element that is currently traversed.|
| index | number | No| Position index of the element that is currently traversed.|
| deque | Deque&lt;T&gt; | No| Instance that invokes the **forEach** method.|
| index | number | No| Position index of the element that is currently traversed. The default value is **0**.|
| deque | Deque&lt;T&gt; | No| Instance that calls the **forEach** API. The default value is this instance.|
**Error codes**
......
......@@ -459,14 +459,14 @@ Uses a callback to traverse the elements in this container and obtain their posi
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callbackFn | function | Yes| Callback invoked to traverse the elements in the container.|
| thisArg | Object | No| Value to use when the callback is invoked.|
| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked. The default value is this instance.|
callbackfn
callbackFn
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | V | No| Value of the element that is currently traversed.|
| key | K | No| Key of the element that is currently traversed.|
| map | HashMap<K, V> | No| Instance that invokes the **forEach** method.|
| value | V | No| Value of the element that is currently traversed. The default value is the value of the first key-value pair.|
| key | K | No| Key of the element that is currently traversed. The default value is the key of the first key-value pair.|
| map | HashMap<K, V> | No| Instance that calls the **forEach** API. The default value is this instance.|
**Error codes**
......
......@@ -282,14 +282,14 @@ Uses a callback to traverse the elements in this container and obtain their posi
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callbackFn | function | Yes| Callback invoked to traverse the elements in the container.|
| thisArg | Object | No| Value to use when the callback is invoked.|
| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked. The default value is this instance.|
callbackfn
callbackFn
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | T | No| Value of the element that is currently traversed.|
| key | T | No| Key of the element that is currently traversed (same as **value**).|
| set | HashSet&lt;T&gt; | No| Instance that invokes the **forEach** API.|
| value | T | No| Value of the element that is currently traversed. The default value is the value of the first key-value pair.|
| key | T | No| Key of the element that is currently traversed (same as **value**). The default value is the key of the first key-value pair.|
| set | HashSet&lt;T&gt; | No| Instance that calls the **forEach** API. The default value is this instance.|
**Error codes**
......
......@@ -724,14 +724,14 @@ Uses a callback to traverse the elements in this container and obtain their posi
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callbackFn | function | Yes| Callback invoked to traverse the elements in the container.|
| thisArg | Object | No| Value to use when the callback is invoked.|
| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked. The default value is this instance.|
callbackfn
callbackFn
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | V | No| Value of the element that is currently traversed.|
| key | K | No| Key of the element that is currently traversed.|
| map | LightWeightMap<K, V> | No| Instance that invokes the **forEach** method.|
| value | V | No| Value of the element that is currently traversed. The default value is the value of the first key-value pair.|
| key | K | No| Key of the element that is currently traversed. The default value is the key of the first key-value pair.|
| map | LightWeightMap<K, V> | No| Instance that calls the **forEach** API. The default value is this instance.|
**Error codes**
......
......@@ -588,14 +588,14 @@ Uses a callback to traverse the elements in this container and obtain their posi
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callbackFn | function | Yes| Callback invoked to traverse the elements in the container.|
| thisArg | Object | No| Value to use when the callback is invoked.|
| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked. The default value is this instance.|
callbackfn
callbackFn
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | T | No| Value of the element that is currently traversed.|
| key| T | No| Key of the element that is currently traversed (same as **value**).|
| set | LightWeightSet&lt;T&gt; | No| Instance that invokes the **forEach** method.|
| value | T | No| Value of the element that is currently traversed. The default value is the value of the first key-value pair.|
| key| T | No| Key of the element that is currently traversed (same as **value**). The default value is the key of the first key-value pair.|
| set | LightWeightSet&lt;T&gt; | No| Instance that calls the **forEach** API. The default value is this instance.|
**Error codes**
......
......@@ -607,15 +607,15 @@ Uses a callback to traverse the elements in this container and obtain their posi
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callbackFn | function | Yes| Callback invoked to traverse the elements in the container.|
| thisArg | Object | No| Value to use when the callback is invoked.|
| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked. The default value is this instance.|
callbackfn
callbackFn
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | T | Yes| Value of the element that is currently traversed.|
| index | number | No| Position index of the element that is currently traversed.|
| LinkedList | LinkedList&lt;T&gt; | No| Instance that invokes the **forEach** API.|
| index | number | No| Position index of the element that is currently traversed. The default value is **0**.|
| LinkedList | LinkedList&lt;T&gt; | No| Instance that calls the **forEach** API. The default value is this instance.|
**Error codes**
......
......@@ -427,15 +427,15 @@ Replaces all elements in this container with new elements, and returns the new o
| Name| Value Type | Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callbackFn | function | Yes| Callback invoked for the replacement.|
| thisArg | Object | No| Value to use when the callback is invoked.|
| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked. The default value is this instance.|
callbackfn
callbackFn
| Name| Value Type | Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | T | Yes| Value of the element that is currently traversed.|
| index | number | No| Position index of the element that is currently traversed.|
| list | List&lt;T&gt; | No| Instance that invokes the **replaceAllElements** method.|
| index | number | No| Position index of the element that is currently traversed. The default value is **0**.|
| list | List&lt;T&gt; | No| Instance that calls the **replaceAllElements** API. The default value is this instance.|
**Error codes**
......@@ -473,15 +473,15 @@ Uses a callback to traverse the elements in this container and obtain their posi
| Name| Value Type | Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callbackFn | function | Yes| Callback invoked for the replacement.|
| thisArg | Object | No| Value to use when the callback is invoked.|
| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked. The default value is this instance.|
callbackfn
callbackFn
| Name| Value Type | Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | T | Yes| Value of the element that is currently traversed.|
| index | number | No| Position index of the element that is currently traversed.|
| List | List&lt;T&gt; | No| Instance that invokes the **forEach** method.|
| index | number | No| Position index of the element that is currently traversed. The default value is **0**.|
| List | List&lt;T&gt; | No| Instance that calls the **forEach** API. The default value is this instance.|
**Error codes**
......
......@@ -597,14 +597,14 @@ Uses a callback to traverse the elements in this container and obtain their posi
| Name| Type | Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callbackFn | function | Yes| Callback invoked to traverse the elements in the container.|
| thisArg | Object | No| Value to use when the callback is invoked.|
| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked. The default value is this instance.|
callbackfn
callbackFn
| Name| Type | Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | T | Yes| Value of the element that is currently traversed.|
| index | number | No| Key of the element that is currently traversed.|
| PlainArray | PlainArray&lt;T&gt;| No| Instance that invokes the **forEach** API.|
| index | number | No| Position index of the element that is currently traversed. The default value is **0**.|
| PlainArray | PlainArray&lt;T&gt;| No| Instance that calls the **forEach** API. The default value is this instance.|
**Error codes**
......
......@@ -176,15 +176,15 @@ Uses a callback to traverse the elements in this container and obtain their posi
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callbackFn | function | Yes| Callback invoked to traverse the elements in the container.|
| thisArg | Object | No| Value to use when the callback is invoked.|
| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked. The default value is this instance.|
callbackfn
callbackFn
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | T | Yes| Value of the element that is currently traversed.|
| index | number | No| Position index of the element that is currently traversed.|
| Queue | Queue&lt;T&gt; | No| Instance that invokes the **forEach** method.|
| index | number | No| Position index of the element that is currently traversed. The default value is **0**.|
| Queue | Queue&lt;T&gt; | No| Instance that calls the **forEach** API. The default value is this instance.|
**Error codes**
......
......@@ -371,7 +371,7 @@ reminderAgent.addNotificationSlot(mySlot).then(() => {
## reminderAgent.removeNotificationSlot<sup>(deprecated)</sup>
removeNotificationSlot(slotType: notification.SlotType, callback: AsyncCallback<void>): void
removeNotificationSlot(slotType: notification.SlotType, callback: AsyncCallback\<void>): void
Removes a notification slot of a specified type. This API uses an asynchronous callback to return the result.
......@@ -401,7 +401,7 @@ reminderAgent.removeNotificationSlot(notification.SlotType.CONTENT_INFORMATION,
## reminderAgent.removeNotificationSlot<sup>(deprecated)</sup>
removeNotificationSlot(slotType: notification.SlotType): Promise<void>
removeNotificationSlot(slotType: notification.SlotType): Promise\<void>
Removes a notification slot of a specified type. This API uses a promise to return the result.
......
......@@ -611,7 +611,7 @@ Defines the reminder to publish.
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| reminderType | [ReminderType](#remindertype) | Yes| Type of the reminder.|
| actionButton<sup>10+</sup> | [ActionButton](#actionbutton) | No| Button displayed for the reminder in the notification panel. For common applications, a maximum of two buttons are supported. For system applications, a maximum of two buttons are supported in API version 9, and a maximum of three buttons are supported in API version 10 and later versions.|
| actionButton<sup></sup> | [ActionButton](#actionbutton) | No| Buttons displayed for the reminder in the notification panel.<br>- For common applications, a maximum of two buttons are supported.<br>- For system applications, a maximum of two buttons are supported in API version 9, and a maximum of three buttons are supported in API version 10 and later versions.|
| wantAgent | [WantAgent](#wantagent) | No| Information about the ability that is redirected to when the reminder is clicked.|
| maxScreenWantAgent | [MaxScreenWantAgent](#maxscreenwantagent) | No| Information about the ability that is automatically started when the reminder arrives. If the device is in use, a notification will be displayed.|
| ringDuration | number | No| Ringing duration, in seconds. The default value is **1**.|
......
# @ohos.resourceschedule.deviceStandby (Device Standby)
A device enters standby mode if it is unused for a long period of time or after the Power button is pressed. The standby mode prolongs the battery life without affecting the use of applications. The **deviceStandby** module provides APIs for you to check whether a device is in standby mode and request or cancel standby resource control for an application.
> **NOTE**
>
> The initial APIs of this module are supported since API version 10. Newly added APIs will be marked with a superscript to indicate their earliest API version.
## Modules to Import
```js
import deviceStandby from '@ohos.resourceschedule.deviceStandby';
```
## deviceStandby.isDeviceInStandby
isDeviceInStandby(callback: AsyncCallback&lt;boolean&gt;): void;
Checks whether the device is in standby mode. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.ResourceSchedule.DeviceStandby
**Required permissions**: ohos.permission.DEVICE_STANDBY_EXEMPTION
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | -------------------- | ---- | ------------------------------ |
| callback | AsyncCallback&lt;boolean&gt; | Yes | Callback used to return whether the device is standby mode.|
**Error codes**
For details about the error codes, see [Background Task Management Error Codes](../errorcodes/errorcode-backgroundTaskMgr.md).
| ID | Error Message |
| ---- | --------------------- |
| 9800001 | Memory operation failed. |
| 9800002 | Parcel operation failed. |
| 9800003 | Inner transact failed. |
| 9800004 | System service operation failed. |
| 18700001 | Caller information verification failed. |
**Example**
```js
try{
deviceStandby.isDeviceInStandby((err, res) => {
if (err) {
console.log('DEVICE_STANDBY isDeviceInStandby callback failed. code is: ' + err.code + ',message is: ' + err.message);
} else {
console.log('DEVICE_STANDBY isDeviceInStandby callback succeeded, result: ' + JSON.stringify(res));
}
});
} catch(error) {
console.log('DEVICE_STANDBY isDeviceInStandby throw error, code is: ' + error.code + ',message is: ' + error.message);
}
```
## deviceStandby.isDeviceInStandby
isDeviceInStandby(): Promise&lt;boolean&gt;
Checks whether the device is in standby mode. This API uses a promise to return the result.
**System capability**: SystemCapability.ResourceSchedule.DeviceStandby
**Required permissions**: ohos.permission.DEVICE_STANDBY_EXEMPTION
**Return value**
| Type | Description |
| --------------------- | ---------------------------------------- |
| Promise&lt;boolean&gt; | Promise used to return whether the device is in standby mode.|
**Error codes**
For details about the error codes, see [Background Task Management Error Codes](../errorcodes/errorcode-backgroundTaskMgr.md).
| ID | Error Message |
| ---- | --------------------- |
| 9800001 | Memory operation failed. |
| 9800002 | Parcel operation failed. |
| 9800003 | Inner transact failed. |
| 9800004 | System service operation failed. |
| 18700001 | Caller information verification failed. |
**Example**
```js
try{
deviceStandby.isDeviceInStandby().then( res => {
console.log('DEVICE_STANDBY isDeviceInStandby promise succeeded, result: ' + JSON.stringify(res));
}).catch( err => {
console.log('DEVICE_STANDBY isDeviceInStandby promise failed. code is: ' + err.code + ',message is: ' + err.message);
});
} catch (error) {
console.log('DEVICE_STANDBY isDeviceInStandby throw error, code is: ' + error.code + ',message is: ' + error.message);
}
```
## deviceStandby.getExemptedApps
getExemptedApps(resourceTypes: number, callback: AsyncCallback<Array&lt;ExemptedAppInfo&gt;>): void;
Obtains the list of applications that can still use resources of the specified types when the device is in standby mode. This API uses an asynchronous callback to return the result.
**System capability**: SystemCapability.ResourceSchedule.DeviceStandby
**Required permissions**: ohos.permission.DEVICE_STANDBY_EXEMPTION
**System API**: This is a system API.
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | -------------------- | ---- | ------------------------------ |
| [ResourceTypes](#resourcetype)|number | Yes | Types of resources that can be used.|
| callback | AsyncCallback<Array&lt;[ExemptedAppInfo](#exemptedappinfo)&gt;> | Yes |Callback used to return the exempted application information.|
**Error codes**
For details about the error codes, see [Background Task Management Error Codes](../errorcodes/errorcode-backgroundTaskMgr.md).
| ID | Error Message |
| ---- | --------------------- |
| 9800001 | Memory operation failed. |
| 9800002 | Parcel operation failed. |
| 9800003 | Inner transact failed. |
| 9800004 | System service operation failed. |
| 18700001 | Caller information verification failed. |
**Example**
```js
try{
deviceStandby.getExemptedApps(resourceTypes, (err, res) => {
if (err) {
console.log('DEVICE_STANDBY getExemptedApps callback failed. code is: ' + err.code + ',message is: ' + err.message);
} else {
console.log('DEVICE_STANDBY getExemptedApps callback success.');
for (let i = 0; i < res.length; i++) {
console.log('DEVICE_STANDBY getExemptedApps callback result ' + JSON.stringify(res[i]));
}
}
});
} catch (error) {
console.log('DEVICE_STANDBY getExemptedApps throw error, code is: ' + error.code + ',message is: ' + error.message);
}
```
## deviceStandby.getExemptedApps
getExemptedApps(resourceTypes: number): Promise<Array&lt;ExemptedAppInfo&gt;>;
Obtains the list of applications that can still use resources of the specified type when the device is in standby mode. This API uses a promise to return the result.
**System capability**: SystemCapability.ResourceSchedule.DeviceStandby
**Required permissions**: ohos.permission.DEVICE_STANDBY_EXEMPTION
**System API**: This is a system API.
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | -------------------- | ---- | ------------------------------ |
| [ResourceTypes](#resourcetype)|number | Yes |Types of resources that can be used.|
**Return value**
| Type | Description |
| --------------------- | ---------------------------------------- |
| Promise<Array&lt;[ExemptedAppInfo](#exemptedappinfo)&gt;> | Promise used to return the exempted application information.|
**Error codes**
For details about the error codes, see [Background Task Management Error Codes](../errorcodes/errorcode-backgroundTaskMgr.md).
| ID | Error Message |
| ---- | --------------------- |
| 201 | Permission denied. |
| 202 | Not System App. |
| 401 | Parameter error. |
| 9800001 | Memory operation failed. |
| 9800002 | Parcel operation failed. |
| 9800003 | Inner transact failed. |
| 9800004 | System service operation failed. |
| 18700001 | Caller information verification failed. |
**Example**
```js
try{
deviceStandby.getExemptedApps(resourceTypes).then( res => {
console.log('DEVICE_STANDBY getExemptedApps promise success.');
for (let i = 0; i < res.length; i++) {
console.log('DEVICE_STANDBY getExemptedApps promise result ' + JSON.stringify(res[i]));
}
}).catch( err => {
console.log('DEVICE_STANDBY getExemptedApps promise failed. code is: ' + err.code + ',message is: ' + err.message);
});
} catch (error) {
console.log('DEVICE_STANDBY getExemptedApps throw error, code is: ' + error.code + ',message is: ' + error.message);
}
```
## deviceStandby.requestExemptionResource
requestExemptionResource(request: ResourceRequest): void;
Requests exemption, so that the application can use restricted resources when the device is in standby mode.
**System capability**: SystemCapability.ResourceSchedule.DeviceStandby.Exemption
**Required permissions**: ohos.permission.DEVICE_STANDBY_EXEMPTION
**System API**: This is a system API.
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | -------------------- | ---- | ------------------------------ |
| request |[ResourceRequest](#resourcerequest)| Yes | Request body.|
**Error codes**
For details about the error codes, see [Background Task Management Error Codes](../errorcodes/errorcode-backgroundTaskMgr.md).
| ID | Error Message |
| ---- | --------------------- |
| 9800001 | Memory operation failed. |
| 9800002 | Parcel operation failed. |
| 9800003 | Inner transact failed. |
| 9800004 | System service operation failed. |
| 18700001 | Caller information verification failed. |
**Example**
```js
let resRequest = {
resourceTypes: 1,
uid:10003,
name:"com.example.app",
duration:10,
reason:"apply",
};
// Promise mode
try{
deviceStandby.requestExemptionResource(resRequest).then( () => {
console.log('DEVICE_STANDBY requestExemptionResource promise succeeded.');
}).catch( err => {
console.log('DEVICE_STANDBY requestExemptionResource promise failed. code is: ' + err.code + ',message is: ' + err.message);
});
} catch (error) {
console.log('DEVICE_STANDBY requestExemptionResource throw error, code is: ' + error.code + ',message is: ' + error.message);
}
// Asynchronous callback mode
try{
deviceStandby.requestExemptionResource(resRequest, (err) => {
if (err) {
console.log('DEVICE_STANDBY requestExemptionResource callback failed. code is: ' + err.code + ',message is: ' + err.message);
} else {
console.log('DEVICE_STANDBY requestExemptionResource callback succeeded.');
}
});
} catch (error) {
console.log('DEVICE_STANDBY requestExemptionResource throw error, code is: ' + error.code + ',message is: ' + error.message);
}
```
## deviceStandby.releaseExemptionResource
releaseExemptionResource(request: ResourceRequest): void;
Cancels exemption for the application.
**System capability**: SystemCapability.ResourceSchedule.DeviceStandby.Exemption
**Required permissions**: ohos.permission.DEVICE_STANDBY_EXEMPTION
**System API**: This is a system API.
**Parameters**
| Name | Type | Mandatory | Description |
| -------- | -------------------- | ---- | ------------------------------ |
| request |[ResourceRequest](#resourcerequest)| Yes | Request body.|
**Error codes**
For details about the error codes, see [Background Task Management Error Codes](../errorcodes/errorcode-backgroundTaskMgr.md).
| ID | Error Message |
| ---- | --------------------- |
| 9800001 | Memory operation failed. |
| 9800002 | Parcel operation failed. |
| 9800003 | Inner transact failed. |
| 9800004 | System service operation failed. |
| 18700001 | Caller information verification failed. |
**Example**
```js
let resRequest = {
resourceTypes: 1,
uid:10003,
name:"com.demo.app",
duration:10,
reason:"unapply",
};
// Promise mode
try{
deviceStandby.releaseExemptionResource(resRequest).then( () => {
console.log('DEVICE_STANDBY releaseExemptionResource promise succeeded.');
}).catch( err => {
console.log('DEVICE_STANDBY releaseExemptionResource promise failed. code is: ' + err.code + ',message is: ' + err.message);
});
} catch (error) {
console.log('DEVICE_STANDBY releaseExemptionResource throw error, code is: ' + error.code + ',message is: ' + error.message);
}
// Asynchronous callback mode
try{
deviceStandby.releaseExemptionResource(resRequest, (err) => {
if (err) {
console.log('DEVICE_STANDBY releaseExemptionResource callback failed. code is: ' + err.code + ',message is: ' + err.message);
} else {
console.log('DEVICE_STANDBY releaseExemptionResource callback succeeded.');
}
});
} catch (error) {
console.log('DEVICE_STANDBY releaseExemptionResource throw error, code is: ' + error.code + ',message is: ' + error.message);
}
```
## ResourceType
Enumerates the types of resources that can be used by exempted applications.
**Required permissions**: ohos.permission.DEVICE_STANDBY_EXEMPTION
**System API**: This is a system API.
|Name |Value |Description|
| ------------ | ------------ |--------------|
|NETWORK |1 |Network access resource.|
|RUNNING_LOCK |2 |CPU running lock resource.|
|TIMER |4 | Timer task resource.|
|WORK_SCHEDULER |8 | Work task resource.|
|AUTO_SYNC |16 | Automatic synchronization resource.|
|PUSH |32 | Push kit resource.|
|FREEZE |64 | Freezing application resource.|
## ExemptedAppInfo
Defines the information about an exempted application.
**Required permissions**: ohos.permission.DEVICE_STANDBY_EXEMPTION
**System API**: This is a system API.
|Name |Type | Mandatory |Description |
| ------------ | ------------ |------------ | ------------ |
|[resourceTypes](#resourcetype) | number | Yes |Types of resources that can be used. |
|name |string | Yes | Name of the application. |
|duration | number | Yes | Exemption duration.|
## ResourceRequest
Defines the message used to request to be an exempted application.
**Required permissions**: ohos.permission.DEVICE_STANDBY_EXEMPTION
**System API**: This is a system API.
|Name |Type | Mandatory |Description |
| ------------ | ------------ |------------| ------------ |
|[resourceTypes](#resourcetype) | number | Yes |Types of resources that can be used. |
|uid | number | Yes |UID of the application. |
|name |string | Yes | Name of the application. |
|duration | number | Yes | Exemption duration.|
|reason |string | Yes | Reason for the request. |
......@@ -220,7 +220,7 @@ screenlock.lock().then((data) => {
onSystemEvent(callback: Callback&lt;SystemEvent&gt;): boolean
Registers a callback for system events related to screen locking. This API can be called only by system screen lock applications.
Registers a callback for system events related to screen locking. This API can be called only by screen lock applications.
**System capability**: SystemCapability.MiscServices.ScreenLock
......@@ -264,7 +264,7 @@ try {
sendScreenLockEvent(event: String, parameter: number, callback: AsyncCallback&lt;boolean&gt;): void
Sends an event to the screen lock service. This API uses an asynchronous callback to return the result.
Sends an event to the screen lock service. This API can be called only by screen lock applications. It uses an asynchronous callback to return the result.
**System capability**: SystemCapability.MiscServices.ScreenLock
......@@ -304,7 +304,7 @@ screenlock.sendScreenLockEvent('unlockScreenResult', 0, (err, result) => {
sendScreenLockEvent(event: String, parameter: number): Promise&lt;boolean&gt;
Sends an event to the screen lock service. This API uses a promise to return the result.
Sends an event to the screen lock service. This API can be called only by screen lock applications. It uses a promise to return the result.
**System capability**: SystemCapability.MiscServices.ScreenLock
......
......@@ -214,15 +214,15 @@ Uses a callback to traverse the elements in this container and obtain their posi
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callbackFn | function | Yes| Callback invoked to traverse the elements in the container.|
| thisArg | Object | No| Value to use when the callback is invoked.|
| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked. The default value is this instance.|
callbackfn
callbackFn
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | T | Yes| Value of the element that is currently traversed.|
| index | number | No| Position index of the element that is currently traversed.|
| stack | Stack&lt;T&gt; | No| Instance that invokes the **forEach** method.|
| index | number | No| Position index of the element that is currently traversed. The default value is **0**.|
| stack | Stack&lt;T&gt; | No| Instance that calls the **forEach** API. The default value is this instance.|
**Error codes**
......
......@@ -21,7 +21,7 @@ getStatus(options?: GetStatusOptions): void;
Obtains the current charging state and battery level.
**System capability**: SystemCapability.PowerManager.BatteryManager.Core
**System capability**: SystemCapability.PowerManager.BatteryManager.Lite
**Parameters**
......@@ -46,7 +46,7 @@ battery.getStatus({
Object that contains the API calling result.
**System capability**: SystemCapability.PowerManager.BatteryManager.Core
**System capability**: SystemCapability.PowerManager.BatteryManager.Lite
| Name | Type | Mandatory| Description |
| -------- | --------------------------------------------------- | ---- | ------------------------------------------------------------ |
......@@ -58,7 +58,7 @@ Object that contains the API calling result.
Defines a response that returns the charging status and remaining power of the device.
**System capability**: SystemCapability.PowerManager.BatteryManager.Core
**System capability**: SystemCapability.PowerManager.BatteryManager.Lite
| Name| Type| Readable| Writable| Description|
| -------- | -------- | -------- | -------- | -------- |
......
......@@ -22,7 +22,7 @@ getValue(options?: GetBrightnessOptions): void
Obtains the current screen brightness.
**System capability**: SystemCapability.PowerManager.DisplayPowerManager
**System capability**: SystemCapability.PowerManager.DisplayPowerManager.Lite
**Parameters**
......@@ -50,7 +50,7 @@ setValue(options?: SetBrightnessOptions): void
Sets the screen brightness.
**System capability**: SystemCapability.PowerManager.DisplayPowerManager
**System capability**: SystemCapability.PowerManager.DisplayPowerManager.Lite
**Parameters**
......@@ -79,7 +79,7 @@ getMode(options?: GetBrightnessModeOptions): void
Obtains the screen brightness adjustment mode.
**System capability**: SystemCapability.PowerManager.DisplayPowerManager
**System capability**: SystemCapability.PowerManager.DisplayPowerManager.Lite
**Parameters**
......@@ -107,7 +107,7 @@ setMode(options?: SetBrightnessModeOptions): void
Sets the screen brightness adjustment mode.
**System capability**: SystemCapability.PowerManager.DisplayPowerManager
**System capability**: SystemCapability.PowerManager.DisplayPowerManager.Lite
**Parameters**
| Name| Type| Mandatory| Description|
......@@ -137,7 +137,7 @@ setKeepScreenOn(options?: SetKeepScreenOnOptions): void
Sets whether to always keep the screen on. Call this API in **onShow()**.
**System capability**: SystemCapability.PowerManager.DisplayPowerManager
**System capability**: SystemCapability.PowerManager.DisplayPowerManager.Lite
**Parameters**
......@@ -162,7 +162,7 @@ Sets whether to always keep the screen on. Call this API in **onShow()**.
Defines the options for obtaining the screen brightness.
**System capability**: SystemCapability.PowerManager.DisplayPowerManager
**System capability**: SystemCapability.PowerManager.DisplayPowerManager.Lite
| Name | Type | Mandatory| Description |
| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
......@@ -174,7 +174,7 @@ Defines the options for obtaining the screen brightness.
Defines the options for setting the screen brightness.
**System capability**: SystemCapability.PowerManager.DisplayPowerManager
**System capability**: SystemCapability.PowerManager.DisplayPowerManager.Lite
| Name | Type | Mandatory| Description |
| -------- | ------------------------------------ | ---- | ------------------------------------------------------------ |
......@@ -187,7 +187,7 @@ Defines the options for setting the screen brightness.
Defines a response that returns the screen brightness.
**System capability**: SystemCapability.PowerManager.DisplayPowerManager
**System capability**: SystemCapability.PowerManager.DisplayPowerManager.Lite
| Name| Type| Readable| Writable| Description|
| -------- | -------- | -------- | -------- | -------- |
......@@ -197,7 +197,7 @@ Defines a response that returns the screen brightness.
Defines the options for obtaining the screen brightness mode.
**System capability**: SystemCapability.PowerManager.DisplayPowerManager
**System capability**: SystemCapability.PowerManager.DisplayPowerManager.Lite
| Name | Type | Mandatory| Description |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
......@@ -209,7 +209,7 @@ Defines the options for obtaining the screen brightness mode.
Defines the options for setting the screen brightness mode.
**System capability**: SystemCapability.PowerManager.DisplayPowerManager
**System capability**: SystemCapability.PowerManager.DisplayPowerManager.Lite
| Name | Type | Mandatory| Description |
| -------- | ------------------------------------ | ---- | ------------------------------------------------------ |
......@@ -222,7 +222,7 @@ Defines the options for setting the screen brightness mode.
Defines a response that returns the screen brightness mode.
**System capability**: SystemCapability.PowerManager.DisplayPowerManager
**System capability**: SystemCapability.PowerManager.DisplayPowerManager.Lite
| Name| Type| Readable| Writable| Description|
| -------- | -------- | -------- | -------- | -------- |
......@@ -232,7 +232,7 @@ Defines a response that returns the screen brightness mode.
Defines the options for setting the screen to be steady on.
**System capability**: SystemCapability.PowerManager.DisplayPowerManager
**System capability**: SystemCapability.PowerManager.DisplayPowerManager.Lite
| Name | Type | Mandatory| Description |
| ------------ | ------------------------------------ | ---- | ------------------------------------------------------ |
......
......@@ -48,7 +48,7 @@ A constructor used to create a **TreeMap** instance.
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| comparator | function | No| Custom comparator.|
| comparator | function | No| Custom comparator. The default value is **hole** (a blank placeholder), indicating that no comparator. is provided.|
**Error codes**
......@@ -611,14 +611,14 @@ Uses a callback to traverse the elements in this container and obtain their posi
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callbackFn | function | Yes| Callback invoked to traverse the elements in the container.|
| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked.|
| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked. The default value is this instance.|
callbackfn
callbackFn
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | V | No| Value of the element that is currently traversed.|
| key | K | No| Key of the element that is currently traversed.|
| map | TreeMap<K, V> | No| Instance that invokes the **forEach** method.|
| value | V | No| Value of the element that is currently traversed. The default value is the value of the first key-value pair.|
| key | K | No| Key of the element that is currently traversed. The default value is the key of the first key-value pair.|
| map | TreeMap<K, V> | No| Instance that calls the **forEach** API. The default value is this instance.|
**Error codes**
......
......@@ -44,7 +44,7 @@ A constructor used to create a **TreeSet** instance.
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| comparator | function | No| Custom comparator.|
| comparator | function | No| Custom comparator. The default value is **hole** (a blank placeholder), indicating that no comparator. is provided.|
**Error codes**
......@@ -484,14 +484,14 @@ Uses a callback to traverse the elements in this container and obtain their posi
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callbackFn | function | Yes| Callback invoked to traverse the elements in the container.|
| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked.|
| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked. The default value is this instance.|
callbackfn
callbackFn
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | T | No| Value of the element that is currently traversed.|
| key | T | No| Key of the element that is currently traversed.|
| set | TreeSet&lt;T&gt; | No| Instance that invokes the **forEach** method.|
| value | T | No| Value of the element that is currently traversed. The default value is the value of the first key-value pair.|
| key | T | No| Key of the element that is currently traversed. The default value is the key of the first key-value pair.|
| set | TreeSet&lt;T&gt; | No| Instance that calls the **forEach** API. The default value is this instance.|
**Error codes**
......
......@@ -586,7 +586,7 @@ result = textEncoder.encodeInto("\uD800¥¥");
### encodeIntoUint8Array<sup>9+</sup>
encodeIntoUint8Array(input: string, dest: Uint8Array, ): { read: number; written: number }
encodeIntoUint8Array(input: string, dest: Uint8Array): { read: number; written: number }
Stores the UTF-8 encoded text.
......@@ -617,7 +617,7 @@ result = that.encodeIntoUint8Array('abcd', dest)
### encodeInto<sup>(deprecated)</sup>
encodeInto(input: string, dest: Uint8Array, ): { read: number; written: number }
encodeInto(input: string, dest: Uint8Array): { read: number; written: number }
Stores the UTF-8 encoded text.
......@@ -1100,7 +1100,7 @@ A constructor used to create a **LruCache** instance. The default capacity of th
| Name | Type | Mandatory| Description |
| -------- | ------ | ---- | ---------------------------- |
| capacity | number | No | Capacity of the **LruCache** to create.|
| capacity | number | No | Capacity of the **LruCache** to create. The default value is **64**.|
**Example**
......@@ -3400,7 +3400,7 @@ A constructor used to create a **LruBuffer** instance. The default capacity of t
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| capacity | number | No| Capacity of the **LruBuffer** to create.|
| capacity | number | No| Capacity of the **LruBuffer** to create. The default value is **64**.|
**Example**
......
......@@ -304,15 +304,15 @@ Replaces all elements in this container with new elements, and returns the new o
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callbackFn | function | Yes| Callback invoked for replacement.|
| thisArg | Object | No| Value to use when the callback is invoked.|
| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked. The default value is this instance.|
callbackfn
callbackFn
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | T | Yes| Value of the element that is currently traversed.|
| index | number | No| Position index of the element that is currently traversed.|
| vector | Vector&lt;T&gt; | No| Instance that invokes the **replaceAllElements** API.|
| index | number | No| Position index of the element that is currently traversed. The default value is **0**.|
| vector | Vector&lt;T&gt; | No| Instance that calls the **replaceAllElements** API. The default value is this instance.|
**Example**
......@@ -342,15 +342,15 @@ Uses a callback to traverse the elements in this container and obtain their posi
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| callbackFn | function | Yes| Callback invoked for replacement.|
| thisArg | Object | No| Value to use when the callback is invoked.|
| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked. The default value is this instance.|
callbackfn
callbackFn
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| value | T | Yes| Value of the element that is currently traversed.|
| index | number | No| Position index of the element that is currently traversed.|
| vector | Vector&lt;T&gt; | No| Instance that invokes the **forEach** API.|
| index | number | No| Position index of the element that is currently traversed. The default value is **0**.|
| vector | Vector&lt;T&gt; | No| Instance that calls the **forEach** API. The default value is this instance.|
**Example**
......@@ -378,7 +378,7 @@ Sorts elements in this container.
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| comparator | function | No| Callback invoked for sorting.|
| comparator | function | No| Callback invoked for sorting. The default value is this instance.|
comparator
......
......@@ -460,8 +460,9 @@ Describes the vibration effect.
| Type | Description |
| -------------------------------- | ------------------------------ |
| [VibrateTime](#vibratetime9) | Triggers vibration with the specified duration. This API uses a promise to return the result.|
| [VibrateTime](#vibratetime9) | Vibration with the specified duration.|
| [VibratePreset](#vibratepreset9) | Vibration with a preset effect.|
| [VibrateFromFile<sup>10+</sup>](#vibratefromfile10) | Vibration according to a custom vibration configuration file.|
## VibrateTime<sup>9+</sup>
......@@ -469,10 +470,10 @@ Describes the vibration with the specified duration.
**System capability**: SystemCapability.Sensors.MiscDevice
| Name | Value| Description |
| -------- | ------ | ------------------------------ |
| type | "time" | Vibration with the specified duration.|
| duration | - | Vibration duration, in ms. |
| Name | Type | Mandatory| Description |
| -------- | ------ | ----- | ------------------------------ |
| type | string | Yes | The value **time** means vibration with the specified duration.|
| duration | number | Yes | Vibration duration, in ms. |
## VibratePreset<sup>9+</sup>
......@@ -480,11 +481,34 @@ Describes the vibration with a preset effect.
**System capability**: SystemCapability.Sensors.MiscDevice
| Name | Value | Description |
| -------- | -------- | ------------------------------ |
| type | "preset" | Vibration with the specified effect.|
| effectId | - | Preset vibration effect ID. |
| count | - | Number of vibrations to repeat. |
| Name | Type | Mandatory| Description |
| -------- | -------- | ---- |------------------------------ |
| type | string | Yes | The value **preset** means vibration with the specified effect.|
| effectId | string | Yes | Preset vibration effect ID. |
| count | number | Yes | Number of vibrations to repeat. |
## VibrateFromFile<sup>10+</sup>
Describes the custom vibration type, which is supported only by certain devices.
**System capability**: SystemCapability.Sensors.MiscDevice
| Name | Type | Mandatory| Description |
| -------- | -------- | ---- | ------------------------------ |
| type | string | Yes | The value **file** means vibration according to a vibration configuration file.|
| hapticFd | [HapticFileDescriptor](#hapticfiledescriptor10) | Yes| File descriptor (FD) of the vibration configuration file.|
## HapticFileDescriptor<sup>10+</sup>
Describes the FD of a custom vibration configuration file. Ensure that the file is available, and the parameters in it can be obtained from the sandbox path through the [file management API](js-apis-file-fs.md#fsopen) or from the HAP resource through the [resource management API](js-apis-resource-manager.md#getrawfd9). The use case is as follows: The system triggers vibration according to the sequence set in a configuration file, based on the specified offset and length. For details about the storage format of the vibration sequence, see [Custom Vibration Format](../../device/vibrator-guidelines.md#custom-vibration-format).
**System capability**: SystemCapability.Sensors.MiscDevice
| Name | Type | Mandatory | Description |
| -------- | -------- |--------| ------------------------------|
| fd | number | Yes | FD of the custom vibration configuration file. |
| offset | number | No | Offset from the start position of the file, in bytes. The default value is the start position of the file, and the value cannot exceed the valid range of the file.|
| length | number | No | Resource length, in bytes. The default value is the length from the offset position to the end of the file, and the value cannot exceed the valid range of the file.|
## VibrateAttribute<sup>9+</sup>
......@@ -492,10 +516,10 @@ Describes the vibration attribute.
**System capability**: SystemCapability.Sensors.MiscDevice
| Name | Value| Description |
| ----- | ------ | -------------- |
| id | 0 | Vibrator ID. |
| usage | - | Vibration scenario.|
| Name | Type| Mandatory| Description |
| ----- | ------ | ---- | -------------- |
| id | number | No| Vibrator ID. The default value is 0. |
| usage | [Usage](#usage9) | Yes| Vibration scenario.|
## Usage<sup>9+</sup>
......
......@@ -381,6 +381,7 @@ Creates and returns an **XmlPullParser** object.
**Example**
```js
import util from '@ohos.util';
let strXml =
'<?xml version="1.0" encoding="utf-8"?>' +
'<!DOCTYPE note [\n<!ENTITY foo "baa">]>' +
......@@ -432,6 +433,7 @@ Parses XML information.
**Example**
```js
import util from '@ohos.util';
let strXml =
'<?xml version="1.0" encoding="utf-8"?>' +
'<note importance="high" logged="true">' +
......@@ -499,6 +501,7 @@ Obtains the column line number, starting from 1.
**Example**
```js
import util from '@ohos.util';
let strXml =
'<?xml version="1.0" encoding="utf-8"?>' +
'<note importance="high" logged="true">' +
......@@ -542,6 +545,7 @@ Obtains the depth of this element.
**Example**
```js
import util from '@ohos.util';
let strXml =
'<?xml version="1.0" encoding="utf-8"?>' +
'<note importance="high" logged="true">' +
......@@ -588,6 +592,7 @@ Obtains the current line number, starting from 1.
**Example**
```js
import util from '@ohos.util';
let strXml =
'<?xml version="1.0" encoding="utf-8"?>' +
'<note importance="high" logged="true">' +
......@@ -631,6 +636,7 @@ Obtains the name of this element.
**Example**
```js
import util from '@ohos.util';
let strXml =
'<?xml version="1.0" encoding="utf-8"?>' +
'<note importance="high" logged="true">' +
......@@ -673,6 +679,7 @@ Obtains the namespace of this element.
**Example**
```js
import util from '@ohos.util';
let strXml =
'<?xml version="1.0" encoding="utf-8"?>' +
'<note importance="high" logged="true">' +
......@@ -715,6 +722,7 @@ Obtains the prefix of this element.
**Example**
```js
import util from '@ohos.util';
let strXml =
'<?xml version="1.0" encoding="utf-8"?>' +
'<note importance="high" logged="true">' +
......@@ -758,6 +766,7 @@ Obtains the text of the current event.
**Example**
```js
import util from '@ohos.util';
let strXml =
'<?xml version="1.0" encoding="utf-8"?>' +
'<note importance="high" logged="true">' +
......@@ -800,6 +809,7 @@ Checks whether the current element is empty.
**Example**
```js
import util from '@ohos.util';
let strXml =
'<?xml version="1.0" encoding="utf-8"?>' +
'<note importance="high" logged="true">' +
......@@ -842,6 +852,7 @@ Checks whether the current text event contains only whitespace characters.
**Example**
```js
import util from '@ohos.util';
let strXml =
'<?xml version="1.0" encoding="utf-8"?>' +
'<note importance="high" logged="true">' +
......@@ -883,6 +894,7 @@ Obtains the number of attributes for the current start tag.
**Example**
```js
import util from '@ohos.util';
let strXml =
'<?xml version="1.0" encoding="utf-8"?>' +
'<note importance="high" logged="true">' +
......
......@@ -26,7 +26,7 @@ In addition to the [universal attributes](ts-universal-attributes-size.md), the
| ----------- | ---------- | ------------------ |
| vertical | boolean | Whether a vertical divider is used. **false**: A horizontal divider is used.<br>**true**: A vertical divider is used.<br>Default value: **false**<br>Since API version 9, this API is supported in ArkTS widgets.|
| color | [ResourceColor](ts-types.md#resourcecolor) | Color of the divider.<br>Default value: **'\#33182431'**<br>Since API version 9, this API is supported in ArkTS widgets.|
| strokeWidth | number \| string | Width of the divider.<br>Default value: **1**<br>Unit: vp<br>Since API version 9, this API is supported in ArkTS widgets.<br>**NOTE**<br>This attribute cannot be set to a percentage. The priority of this attribute is lower than that of the universal attribute [height](ts-universal-attributes-size.md). If the value of this attribute is greater than that of the universal attribute, cropping is performed based on the universal attribute settings.|
| strokeWidth | number \| string | Width of the divider.<br>Default value: **1px**<br>Unit: vp<br>Since API version 9, this API is supported in ArkTS widgets.<br>**NOTE**<br>This attribute cannot be set to a percentage. The priority of this attribute is lower than that of the universal attribute [height](ts-universal-attributes-size.md). If the value of this attribute is greater than that of the universal attribute, cropping is performed based on the universal attribute settings.|
| lineCap | [LineCapStyle](ts-appendix-enums.md#linecapstyle) | Cap style of the divider.<br>Default value: **LineCapStyle.Butt**<br>Since API version 9, this API is supported in ArkTS widgets.|
......
......@@ -359,6 +359,14 @@ Power management display
| ------- | ------ | ------ | ---- | ---- | ------ | ------------ | ------ |
| Yes | No | Yes | Yes | No | Yes | No | No |
## SystemCapability.PowerManager.DisplayPowerManager.Lite
Lite device capabilities of the system power management display
| Default | Sports Watch| Smart Watch| Tablet| Head Unit| Smart TV| Smart Vision | Router |
| ------- | ------ | ------ | ---- | ---- | ------ | ------------ | ------ |
| Yes | Yes | Yes | Yes | No | Yes | No | No |
## SystemCapability.PowerManager.ThermalManager
Temperature control
......
......@@ -46,9 +46,11 @@ Adhere to the following constraints and rules when using transient tasks:
- **Quota mechanism**: To prevent abuse of the keepalive, each application has a certain quota every day (dynamically adjusted based on user habits). The default quota for a single day is 10 minutes, and the maximum quota for each request is 3 minutes. After using up the quota, an application cannot request transient tasks. Therefore, applications should cancel their request immediately after the transient tasks are complete, to avoid quota consumption. (Note: The quota refers to the requested duration and does not include the time when the application runs in the background.)
## Continuous Tasks
Continuous tasks provide background running lifecycle support for services that can be directly perceived by users and need to run in the background. For example, if a service needs to play audio or continue with navigation and positioning in the background, which can be perceived by users, it can execute a continuous task in the respective background mode.
### Background Mode Classification
OpenHarmony provides 9 background modes for services that require continuous task execution.
**Table 1** Background modes for continuous tasks
......@@ -66,6 +68,7 @@ OpenHarmony provides 9 background modes for services that require continuous tas
| taskKeeping | Computing task | A computing task is running | Effective only for specific devices |
### Restrictions on Using Continuous Tasks
- If a user triggers a perceivable task, such as broadcasting and navigation, the corresponding background mode is triggered. When the task is started, the system forcibly displays a notification to the user.
- If the task is complete, the application should exit the background mode. If the system detects that an application is not using the resources in the corresponding background mode when the application is running in the background, the application is suspended.
- Ensure that the requested continuous task background mode matches the application type. If the background mode does not match the application type, the system will suspend the task once it detects the issue.
......@@ -73,6 +76,7 @@ OpenHarmony provides 9 background modes for services that require continuous tas
- An ability can request only one continuous task at a time. If an application has multiple abilities, you can request a continuous task for each ability.
## Work Scheduler Tasks
The Work Scheduler provides a mechanism for an application to execute a non-real-time task, for example, data learning, when the system is idle. The system places the Work Scheduler tasks requested by applications in a queue and determines the optimal scheduling time of each task based on the storage space, power consumption, temperature, and more. Persistence is supported. This means that a requested Work Scheduler task can be triggered when the application exits or the device restarts.
### Restrictions on Using Work Scheduler Tasks
......@@ -103,6 +107,7 @@ The use of the Work Scheduler must comply with the following restrictions and ru
- The carried parameters can be of the number, string, or boolean type.
## Efficiency Resources
Efficiency resources are classified into software (WORK_SCHEDULER, COMMON_EVENT, and TIMER) and hardware resources (CPU, GPS, BLUETOOTH, and AUDIO).
An application can perform different operations based on the requested efficiency resources.
......@@ -126,6 +131,7 @@ An application can perform different operations based on the requested efficienc
| AUDIO | 64 | AUDIO resources, which prevent audio resources from being proxied when the application is suspended. |
### Restrictions on Using Efficiency Resources
- Applications or processes are responsible for requesting and releasing efficiency resources. A process can release the resources requested by itself, whereas an application can release the resources requested by both itself and its processes. For example, an application requests CPU resources, and its process requests CPU and WORK_SCHEDULER resources. If the application initiates CPU resource release, the CPU resources requested by the process are also released. However, the WORK_SCHEDULER resources are not released. If the process initiates CPU resource release, the CPU resources requested by the application are retained until being released by the application.
- If persistent resources and non-persistent resources of the same type are requested, the persistent resources overwrite the non-persistent resources and they will not be released upon a timeout. For example, if an application first requests 10-second CPU resources and then requests persistent CPU resources at the 5th second, the CPU resources become persistent and will not be released at the tenth second. If the application releases the CPU resources at the 8th second, both types of CPU resources are released.
- The WORK_SCHEDULER resources can be requested and released by applications, but not by processes.
......
# Pan-sensor Subsystem Changelog
## cl.vibrator.1 Added Attributes Related to Custom Vibration
The attributes **VibrateFromFile** (custom vibration effect) and **HapticFileDescriptor** (file descriptor of the custom vibration configuration file) are added. The vibration effect supported by **startVibration** is extended from **VibrateEffect = VibrateTime | VibratePreset** to **VibrateEffect = VibrateTime | VibratePreset | VibrateFromFile**.
**Change Impact**
When developing applications based on OpenHarmony4.0.8.2 and later SDK versions, you can use the **VibrateFromFile** attribute to enable devices that support custom vibration to trigger vibration according to the vibration sequence configured in the custom vibration configuration file.
**Key API/Component Changes**
Added the **VibrateFromFile** and **HapticFileDescriptor** attributes to **@ohos.vibrator.d.ts**.
| Module| Class| Method/Attribute/Enum/Constant| Change Type|
| -- | -- | -- | -- |
| @ohos.vibrator.d.ts | vibrator | HapticFileDescriptor | Added|
| @ohos.vibrator.d.ts | vibrator | VibrateFromFile | Added|
**Adaptation Guide**
Obtain the resources in the vibration configuration file through the resource management API, and start or stop custom vibration as required.
```ts
import vibrator from '@ohos.vibrator';
import resourceManager from '@ohos.resourceManager';
const FILE_NAME = "xxx.json";
async function openResource(fileName) {
let fileDescriptor = undefined;
let mgr = await resourceManager.getResourceManager();
await mgr.getRawFd(fileName).then(value => {
fileDescriptor = {fd: value.fd, offset: value.offset, length: value.length};
console.log('openResource success fileName: ' + fileName);
}).catch(error => {
console.log('openResource err: ' + error);
});
return fileDescriptor;
}
async function closeResource(fileName) {
let mgr = await resourceManager.getResourceManager();
await mgr.closeRawFd(fileName).then(()=> {
console.log('closeResource success fileName: ' + fileName);
}).catch(error => {
console.log('closeResource err: ' + error);
});
}
// Obtain the file descriptor of the vibration configuration file.
let rawFd = openResource(FILE_NAME);
// To use startVibration and stopVibration, you must configure the ohos.permission.VIBRATE permission.
try {
// Start custom vibration.
vibrator.startVibration({
type: "file",
hapticFd: { fd: rawFd.fd, offset: rawFd.offset, length: rawFd.length }
}, {
usage: "alarm"
}).then(() => {
console.info('startVibration success');
}, (error) => {
console.info('startVibration error');
});
// Stop vibration in all modes.
vibrator.stopVibration(function (error) {
if (error) {
console.log('error.code' + error.code + 'error.message' + error.message);
return;
}
console.log('Callback returned to indicate successful.');
})
} catch (error) {
console.info('errCode: ' + error.code + ' ,msg: ' + error.message);
}
// Close the vibration configuration file.
closeResource(FILE_NAME);
```
......@@ -15,7 +15,7 @@
}
```
2. 系统弹框调用[abilityManager.acquireShareData()](../reference/apis/js-apis-app-ability-abilityManager.md#acquiresharedata)接口发起原子化服务共享,根据missionId找到对应的UIAbiltiy,调用其OnShare生命周期,收到共享数据。
2. 系统弹框调用[abilityManager.acquireShareData()](../reference/apis/js-apis-app-ability-abilityManager.md#acquiresharedata)接口发起原子化服务共享,根据missionId找到对应的UIAbility,调用其OnShare生命周期,收到共享数据。
```ts
import abilityManager from '@ohos.app.ability.abilityManager';
......
......@@ -198,6 +198,7 @@
- [@ohos.animator (动画)](js-apis-animator.md)
- [@ohos.arkui.componentSnapshot (组件截图)](js-apis-arkui-componentSnapshot.md)
- [@ohos.arkui.drawableDescriptor (DrawableDescriptor)](js-apis-arkui-drawableDescriptor.md)
- [@ohos.arkui.inspector(布局回调)](js-apis-arkui-inspector.md)
- [@ohos.arkui.UIContext (UIContext)](js-apis-arkui-UIContext.md)
- [@ohos.curves (插值计算)](js-apis-curve.md)
- [@ohos.font (注册自定义字体)](js-apis-font.md)
......
......@@ -15,7 +15,7 @@ import abilityManager from '@ohos.app.ability.abilityManager';
## AbilityState
Ability的状态,该类型为枚举,可配合[AbilityRunningInfo](js-apis-inner-application-abilityRunningInfo.md)返回Abiltiy的状态。
Ability的状态,该类型为枚举,可配合[AbilityRunningInfo](js-apis-inner-application-abilityRunningInfo.md)返回Ability的状态。
**系统能力**:以下各项对应的系统能力均为SystemCapability.Ability.AbilityRuntime.Core
......
# @ohos.arkui.inspector (布局回调)
提供注册组件布局和绘制完成回调通知的能力。
> **说明:**
>
> 从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
## 导入模块
```js
import inspector from '@ohos.arkui.inspector'
```
## inspector.createComponentObserver
createComponentObserver(id: string): ComponentObserver
绑定指定组件,返回对应的监听句柄。
**系统能力:** SystemCapability.ArkUI.ArkUI.Full
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ------ | ---- | ---------- |
| id | string | 是 | 指定组件id。 |
**返回值:**
| 类型 | 说明 |
| ----------------- | ------------------------------------------------ |
|[ComponentObserver](#componentobserver)| 组件回调事件监听句柄,用于注册和取消注册监听回调。 |
**示例:**
```js
let listener = inspector.createComponentObserver('1000'); //监听id为1000的组件回调事件
```
## ComponentObserver
组件布局绘制完成回调的句柄,包含了申请句柄时的首次查询结果。
### on
on(type: 'layout', callback: () => void): void
通过句柄向对应的查询条件注册回调,当组件布局或者绘制完成时会触发该回调。
**系统能力:** SystemCapability.ArkUI.ArkUI.Full
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | -------------------------------------------------------------------------------------- |
| type | string | 是 | 必须填写字符串'layout'或'draw'。<br>layout: 组件布局完成。<br>draw: 组件绘制完成。 |
| callback | void | 是 | 监听layout或draw的回调。|
### off
off(type: 'layout', callback: () => void): void
通过句柄向对应的查询条件取消注册回调,当组件布局或者绘制完成时不在触发指定的回调。
**系统能力:** SystemCapability.ArkUI.ArkUI.Full
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------ | ---- | -------------------------------------------------------------------------------------- |
| type | string | 是 | 必须填写字符串'layout'或‘draw’。<br>layout: 组件布局完成。<br>draw: 组件绘制完成。 |
| callback | void | 否 | 需要取消注册的回调,如果参数缺省则取消注册该句柄下所有的回调。 |
**示例:**
```js
import inspector from '@ohos.arkui.inspector';
@Entry
@Component
struct ImageExample {
build() {
Column() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign. Start }) {
Row({ space: 5 }) {
Image($r('app.media.app_icon'))
.width(110)
.height(110)
.border({ width: 1 })
.key('1000')
}
}
}
}.height(320).width(360).padding({ right: 10, top: 10 })
}
listener = inspector.createComponentObserver('1000')
aboutToAppear() {
let FuncLayout = this.onLayoutComplete.bind(this) // bind current js instance
let FuncDraw = this.onDrawComplete.bind(this) // bind current js instance
this.listener.on('layout', FuncLayout)
this.listener.on('draw', FuncDraw)
}
onLayoutComplete() {
// do something here
}
onDrawComplete() {
// do something here
}
}
```
\ No newline at end of file
......@@ -3213,3 +3213,94 @@ try {
hilog.error(0x0000, 'testTag', 'getAppProvisionInfo failed. Cause: %{public}s', err.message);
}
```
### bundleManager.getSpecifiedDistributionType<sup>10+</sup>
getSpecifiedDistributionType(bundleName: string): string;
以同步的方法查询指定bundleName的分发类型,该返回值是在调用install接口时传入的[InstallParam](./js-apis-installer.md#installparam)中的specifiedDistributionType字段。
**系统接口:** 此接口为系统接口。
**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------------- | ----------------------------------- | ---- | ---------------------------- |
| bundleName | string | 是 | 指定的bundleName。 |
**返回值:**
| 类型 | 说明 |
| ------------- | -------------------------------------- |
| string | 返回指定bundleName的分发类型。 |
**错误码:**
以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 17700001 | The specified bundleName is not found. |
**示例:**
```ts
import bundleManager from '@ohos.bundle.bundleManager';
let bundleName = "com.example.myapplication";
try {
let type = bundleManager.getSpecifiedDistributionType(bundleName);
console.info('getSpecifiedDistributionType successfully, type:' + type);
} catch (error) {
console.error('getSpecifiedDistributionType failed. Cause: ' + error.message);
}
```
### bundleManager.getAdditionalInfo<sup>10+</sup>
getAdditionalInfo(bundleName: string): string;
以同步接口查询指定bundleName的额外信息。该返回值是在调用install接口时传入的[InstallParam](./js-apis-installer.md#installparam)中的additionalInfo字段。
**系统接口:** 此接口为系统接口。
**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------------- | ----------------------------------- | ---- | ---------------------------- |
| bundleName | string | 是 | 指定的bundleName。 |
**返回值:**
| 类型 | 说明 |
| ------------- | -------------------------------------- |
| string | 返回指定bundleName的额外信息。 |
**错误码:**
以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 17700001 | The specified bundleName is not found. |
**示例:**
```ts
import bundleManager from '@ohos.bundle.bundleManager';
let bundleName = "com.example.myapplication";
try {
let info = bundleManager.getAdditionalInfo(bundleName);
console.info('getAdditionalInfo successfully, additionInfo:' + info);
} catch (error) {
console.error('getAdditionalInfo failed. Cause: ' + error.message);
}
```
\ No newline at end of file
......@@ -16,7 +16,6 @@ import installer from '@ohos.bundle.installer';
| 权限 | 权限等级 | 描述 |
| ------------------------------ | ----------- | ---------------- |
| ohos.permission.INSTALL_BUNDLE | system_core | 可安装、卸载应用。 |
| ohos.permission.GET_BUNDLE_INFO_PRIVILEGED | system_basic | 可查询所有应用信息。 |
权限等级参考[权限等级说明](../../security/accesstoken-overview.md#权限等级说明)
......@@ -766,97 +765,6 @@ try {
}
```
## BundleInstaller.getSpecifiedDistributionType<sup>10+</sup>
getSpecifiedDistributionType(bundleName: string): string;
以同步的方法查询指定bundleName的分发类型,该返回值是在调用install接口时传入的InstallParam中的specifiedDistributionType字段。
**系统接口:** 此接口为系统接口。
**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------------- | ----------------------------------- | ---- | ---------------------------- |
| bundleName | string | 是 | 指定的bundleName。 |
**返回值:**
| 类型 | 说明 |
| ------------- | -------------------------------------- |
| string | 返回指定bundleName的分发类型。 |
**错误码:**
以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 17700001 | The specified bundleName is not found. |
**示例:**
```ts
import installer from '@ohos.bundle.installer';
let bundleName = "com.example.myapplication";
try {
let type = installer.getSpecifiedDistributionType(bundleName);
console.info('getSpecifiedDistributionType successfully, type:' + type);
} catch (error) {
console.error('getSpecifiedDistributionType failed. Cause: ' + error.message);
}
```
## BundleInstaller.getAdditionalInfo<sup>10+</sup>
getAdditionalInfo(bundleName: string): string;
以同步接口查询指定bundleName的额外信息。该返回值是在调用install接口时传入的InstallParam中的additionalInfo字段。
**系统接口:** 此接口为系统接口。
**需要权限:** ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
**系统能力:** SystemCapability.BundleManager.BundleFramework.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------------- | ----------------------------------- | ---- | ---------------------------- |
| bundleName | string | 是 | 指定的bundleName。 |
**返回值:**
| 类型 | 说明 |
| ------------- | -------------------------------------- |
| string | 返回指定bundleName的额外信息。 |
**错误码:**
以下错误码的详细介绍请参见[ohos.bundle错误码](../errorcodes/errorcode-bundle.md)
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 17700001 | The specified bundleName is not found. |
**示例:**
```ts
import installer from '@ohos.bundle.installer';
let bundleName = "com.example.myapplication";
try {
let info = installer.getAdditionalInfo(bundleName);
console.info('getAdditionalInfo successfully, additionInfo:' + info);
} catch (error) {
console.error('getAdditionalInfo failed. Cause: ' + error.message);
}
```
## HashParam
应用程序安装卸载哈希参数信息。
......
......@@ -21,7 +21,7 @@ getStatus(options?: GetStatusOptions): void;
获取设备当前的充电状态及剩余电量。
**系统能力:** SystemCapability.PowerManager.BatteryManager.Core
**系统能力:** SystemCapability.PowerManager.BatteryManager.Lite
**参数:**
......@@ -46,7 +46,7 @@ battery.getStatus({
包含接口调用结果的对象。
**系统能力:** SystemCapability.PowerManager.BatteryManager.Core
**系统能力:** SystemCapability.PowerManager.BatteryManager.Lite
| 参数名 | 类型 | 必填 | 说明 |
| -------- | --------------------------------------------------- | ---- | ------------------------------------------------------------ |
......@@ -58,7 +58,7 @@ battery.getStatus({
包含充电状态及剩余电量的对象。
**系统能力:** SystemCapability.PowerManager.BatteryManager.Core
**系统能力:** SystemCapability.PowerManager.BatteryManager.Lite
| 参数名 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
......
......@@ -22,7 +22,7 @@ getValue(options?: GetBrightnessOptions): void
获得设备当前的屏幕亮度值。
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager.Lite
**参数:**
......@@ -50,7 +50,7 @@ setValue(options?: SetBrightnessOptions): void
设置设备当前的屏幕亮度值。
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager.Lite
**参数:**
......@@ -79,7 +79,7 @@ getMode(options?: GetBrightnessModeOptions): void
获得当前屏幕亮度模式。
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager.Lite
**参数:**
......@@ -107,7 +107,7 @@ setMode(options?: SetBrightnessModeOptions): void
设置设备当前的屏幕亮度模式。
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager.Lite
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
......@@ -137,7 +137,7 @@ setKeepScreenOn(options?: SetKeepScreenOnOptions): void
设置屏幕是否保持常亮状态,开启常亮模式推荐在onShow()阶段调用。
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager.Lite
**参数:**
......@@ -162,7 +162,7 @@ setKeepScreenOn(options?: SetKeepScreenOnOptions): void
获取屏幕亮度的参数对象。
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager.Lite
| 名称 | 类型 | 必填 | 说明 |
| -------- | --------------------------------------------------------- | ---- | ------------------------------------------------------------ |
......@@ -174,7 +174,7 @@ setKeepScreenOn(options?: SetKeepScreenOnOptions): void
设置屏幕亮度的参数对象。
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager.Lite
| 名称 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------ | ---- | ------------------------------------------------------------ |
......@@ -187,7 +187,7 @@ setKeepScreenOn(options?: SetKeepScreenOnOptions): void
包含屏幕亮度的对象。
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager.Lite
| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
......@@ -197,7 +197,7 @@ setKeepScreenOn(options?: SetKeepScreenOnOptions): void
获取屏幕亮度模式的参数对象。
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager.Lite
| 名称 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
......@@ -209,7 +209,7 @@ setKeepScreenOn(options?: SetKeepScreenOnOptions): void
设置屏幕亮度模式的参数对象。
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager.Lite
| 名称 | 类型 | 必填 | 说明 |
| -------- | ------------------------------------ | ---- | ------------------------------------------------------ |
......@@ -222,7 +222,7 @@ setKeepScreenOn(options?: SetKeepScreenOnOptions): void
包含屏幕亮度模式的对象。
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager.Lite
| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
......@@ -232,7 +232,7 @@ setKeepScreenOn(options?: SetKeepScreenOnOptions): void
设置屏幕常亮的参数对象。
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager
**系统能力:** SystemCapability.PowerManager.DisplayPowerManager.Lite
| 名称 | 类型 | 必填 | 说明 |
| ------------ | ------------------------------------ | ---- | ------------------------------------------------------ |
......
......@@ -26,8 +26,8 @@ CustomDialogController(value:{builder: CustomDialog, cancel?: () =&gt; void, aut
| customStyle | boolean | 否 | 弹窗容器样式是否自定义。<br>默认值:false,弹窗容器的宽度根据栅格系统自适应,不跟随子节点;高度自适应子节点,最大为窗口高度的90%;圆角为24vp。 |
| gridCount<sup>8+</sup> | number | 否 | 弹窗宽度占[栅格宽度](../../ui/arkts-layout-development-grid-layout.md)的个数。<br>默认为按照窗口大小自适应,异常值按默认值处理,最大栅格数为系统最大栅格数。 |
| maskColor<sup>10+</sup> | [ResourceColor](ts-types.md#resourcecolor) | 否 | 自定义蒙层颜色。<br>默认值: 0x33000000 |
| openAnimation<sup>10+</sup> | [AnimateParam](ts-explicit-animation.md#animateparam对象说明) | 否 | 自定义设置弹窗弹出的动画效果相关参数。<br>注意:当iterations为奇数,playMode设置为Reverse,动画结束时,弹窗不显示。 |
| closeAniamtion<sup>10+</sup> | [AnimateParam](ts-explicit-animation.md#animateparam对象说明) | 否 | 自定义设置弹窗关闭的动画效果相关参数。 |
| openAnimation<sup>10+</sup> | [AnimateParam](ts-explicit-animation.md#animateparam对象说明) | 否 | 自定义设置弹窗弹出的动画效果相关参数。<br>**说明**<br>iterations默认值为1,默认播放一次,设置为其他数值时按默认值处理。<br>playMode控制动画播放模式,默认值为PlayMode.Normal,设置为其他数值时按照默认值处理。 |
| closeAniamtion<sup>10+</sup> | [AnimateParam](ts-explicit-animation.md#animateparam对象说明) | 否 | 自定义设置弹窗关闭的动画效果相关参数。<br>**说明**<br>iterations默认值为1,默认播放一次,设置为其他数值时按默认值处理。<br>playMode控制动画播放模式,默认值为PlayMode.Normal,设置为其他数值时按照默认值处理。 |
| showInSubWindow<sup>10+</sup> | boolean | 否 | 是否在子窗口显示弹窗。<br>默认值:false,在子窗口不显示弹窗。<br>**说明**:showInSubWindow为true的弹窗无法触发显示另一个showInSubWindow为true的弹窗。 |
## CustomDialogController
......
# NativeVsync
## 概述
提供NativeVsync功能。
\@syscap SystemCapability.Graphic.Graphic2D.NativeVsync
@syscap SystemCapability.Graphic.Graphic2D.NativeVsync
**起始版本:**
9
**起始版本:**
## 汇总
8
### 文件
## 汇总
| 名称 | 描述 |
| -------- | -------- |
| [native_vsync.h](native__vsync_8h.md) | 定义获取和使用NativeVsync的相关函数<br/>引用文件:&lt;native_vsync/native_vsync.h&gt; |
### 文件
### 类型定义
| 文件名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| [native_vsync.h](native__vsync_8h.md) | 定义获取和使用NativeVsync的相关函数<br>引用文件:<native_vsync/native_vsync.h> |
| [OH_NativeVSync](#oh_nativevsync) | 提供OH_NativeVSync结构体声明 |
| (\*[OH_NativeVSync_FrameCallback](#oh_nativevsync_framecallback)) (long long timestamp, void \*data) | VSync回调函数类型 |
### 函数
| 函数名称 | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| [OH_NativeVSync_Create](#oh_nativevsync_create) (const char \*name, unsigned int length) | 创建一个OH_NativeVSync实例,每次调用都会产生一个新的实例 |
| [OH_NativeVSync_Destroy](#oh_nativevsync_destroy) (OH_NativeVSync \*nativeVsync) | 销毁OH_NativeVSync实例 |
| [OH_NativeVSync_RequestFrame](#oh_nativevsync_requestframe) (OH_NativeVSync \*nativeVsync, OH_NativeVSync_FrameCallback callback, void \*data) | 请求下一次vsync信号,当信号到来时,调用回调函数callback |
| [OH_NativeVSync_Destroy](#oh_nativevsync_destroy) ([OH_NativeVSync](#oh_nativevsync) \*nativeVsync) | 销毁OH_NativeVSync实例 |
| [OH_NativeVSync_RequestFrame](#oh_nativevsync_requestframe) ([OH_NativeVSync](#oh_nativevsync) \*nativeVsync, [OH_NativeVSync_FrameCallback](#oh_nativevsync_framecallback) callback, void \*data) | 请求下一次vsync信号,当信号到来时,调用回调函数callback |
## 类型定义说明
### OH_NativeVSync
```
typedef struct OH_NativeVSync OH_NativeVSync
```
**描述:**
提供OH_NativeVSync结构体声明
## 详细描述
### OH_NativeVSync_FrameCallback
```
typedef void(* OH_NativeVSync_FrameCallback) (long long timestamp, void *data)
```
**描述:**
VSync回调函数类型
\@syscap SystemCapability.Graphic.Graphic2D.NativeVsync
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| timestamp | VSync时间戳 |
| data | 用户自定义数据 |
## 函数说明
......@@ -45,27 +85,23 @@
OH_NativeVSync* OH_NativeVSync_Create (const char * name, unsigned int length )
```
**描述**
**描述:**
创建一个OH_NativeVSync实例,每次调用都会产生一个新的实例
@syscap SystemCapability.Graphic.Graphic2D.NativeVsync
\@syscap SystemCapability.Graphic.Graphic2D.NativeVsync
**参数**
**参数:**
| Name | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| name | 参数表示一个vsync连接的名字 |
| length | 参数是name的长度 |
| name | 表示一个名字,与创建的OH_NativeVSync实例关联 |
| length | name的长度 |
**返回**
**返回:**
返回一个指向OH_NativeVSync实例的指针
**起始版本:**
8
### OH_NativeVSync_Destroy()
......@@ -74,21 +110,17 @@ OH_NativeVSync* OH_NativeVSync_Create (const char * name, unsigned int length )
void OH_NativeVSync_Destroy (OH_NativeVSync * nativeVsync)
```
**描述**
**描述:**
销毁OH_NativeVSync实例
@syscap SystemCapability.Graphic.Graphic2D.NativeVsync
\@syscap SystemCapability.Graphic.Graphic2D.NativeVsync
**参数**
**参数:**
| Name | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| nativeVsync | 参数是一个指向OH_NativeVSync实例的指针 |
**起始版本:**
8
| nativeVsync | 一个指向OH_NativeVSync实例的指针 |
### OH_NativeVSync_RequestFrame()
......@@ -98,24 +130,20 @@ void OH_NativeVSync_Destroy (OH_NativeVSync * nativeVsync)
int OH_NativeVSync_RequestFrame (OH_NativeVSync * nativeVsync, OH_NativeVSync_FrameCallback callback, void * data )
```
**描述**
**描述:**
请求下一次vsync信号,当信号到来时,调用回调函数callback
@syscap SystemCapability.Graphic.Graphic2D.NativeVsync
\@syscap SystemCapability.Graphic.Graphic2D.NativeVsync
**参数**
**参数:**
| Name | 描述 |
| 名称 | 描述 |
| -------- | -------- |
| nativeVsync | 参数是一个指向OH_NativeVSync实例的指针 |
| callback | 参数是一个OH_NativeVSync_FrameCallback类型的函数指针,当下一次vsync信号到来时会被调用 |
| data | 参数是一个指向用户自定义数据结构的指针,类型是void\* |
**返回:**
返回一个由GSError定义的int32_t类型的错误码
| nativeVsync | 一个指向OH_NativeVSync实例的指针 |
| callback | 一个OH_NativeVSync_FrameCallback类型的函数指针,当下一次vsync信号到来时会被调用 |
| data | 一个指向用户自定义数据结构的指针,类型是void\* |
**起始版本:**
**返回:**
8
返回值为0表示执行成功
......@@ -5,11 +5,13 @@
OH_NativeBuffer的属性配置,用于申请新的OH_NativeBuffer实例或查询现有实例的相关属性。
**起始版本:**
\@syscap SystemCapability.Graphic.Graphic2D.OH_NativeBuffer
**起始版本:**
9
**相关模块**
**相关模块:**
[OH_NativeBuffer](_o_h___native_buffer.md)
......@@ -19,9 +21,9 @@ OH_NativeBuffer的属性配置,用于申请新的OH_NativeBuffer实例或查
### 成员变量
| 成员变量名称 | 描述 |
| 成员变量名称 | 描述 |
| -------- | -------- |
| width | 宽度(像素) |
| height | 高度(像素) |
| format | 像素格式 |
| usage | buffer的用途说明 |
| width | 宽度(像素)。 |
| height | 高度(像素)。 |
| format | 像素格式。 |
| usage | buffer的用途说明。 |
......@@ -3,9 +3,17 @@
## 概述
扩展数据句柄结构体定义
扩展数据句柄结构体定义
**相关模块:**
**起始版本:**
9
**弃用:**
从API version 10开始废弃,不再提供替代接口
**相关模块:**
[NativeWindow](_native_window.md)
......@@ -15,7 +23,7 @@
### 成员变量
| 成员变量名称 | 描述 |
| 成员变量名称 | 描述 |
| -------- | -------- |
| [fd](#fd) | 句柄 Fd, -1代表不支持 |
| [reserveInts](#reserveints) | Reserve数组的个数 |
......@@ -32,7 +40,7 @@
int32_t OHExtDataHandle::fd
```
**描述**
**描述:**
句柄 Fd, -1代表不支持
......@@ -44,7 +52,7 @@ int32_t OHExtDataHandle::fd
int32_t OHExtDataHandle::reserve[0]
```
**描述**
**描述:**
Reserve数组
......@@ -56,6 +64,6 @@ Reserve数组
uint32_t OHExtDataHandle::reserveInts
```
**描述**
**描述:**
Reserve数组的个数
......@@ -5,6 +5,10 @@
矩形区域。
**起始版本:**
8
**相关模块:**
[NativeWindow](_native_window.md)
......
......@@ -5,6 +5,10 @@
表示本地窗口NativeWindow需要更新内容的矩形区域(脏区)。
**起始版本:**
8
**相关模块:**
[NativeWindow](_native_window.md)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册