提交 edad8876 编写于 作者: G Gloria

Update docs against 22085+22215

Signed-off-by: wusongqing<wusongqing@huawei.com>
上级 72166ba6
...@@ -76,7 +76,7 @@ Visibility verification fails. ...@@ -76,7 +76,7 @@ Visibility verification fails.
**Solution** **Solution**
Check whether the application meets the visibility restriction of the started application. Check whether **exported** under the **Ability** field in the **module.json5** file of the application is set to **true**. If this parameter is set to **true**, the ability can be invoked by other applications. If this parameter is set to **false**, the ability cannot be invoked by other applications.
## 16000006 Cross-User Operation Is Not Allowed ## 16000006 Cross-User Operation Is Not Allowed
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
- [Ability framework](js-apidiff-ability.md) - [Ability framework](js-apidiff-ability.md)
- [Account subsystem](js-apidiff-account.md) - [Account subsystem](js-apidiff-account.md)
- [AI subsystem](js-apidiff-ai.md) - [AI subsystem](js-apidiff-ai.md)
- [System Applications](js-apidiff-application.md) - [System applications](js-apidiff-application.md)
- [ArkUI development framework](js-apidiff-arkui.md) - [ArkUI development framework](js-apidiff-arkui.md)
- [Power management subsystem](js-apidiff-battery.md) - [Power management subsystem](js-apidiff-battery.md)
- [Bundle management framework](js-apidiff-bundle.md) - [Bundle management framework](js-apidiff-bundle.md)
......
# Readme # Readme
| Subsystem| Change Type| Change Description|
| -------- | -------- | -------- |
| Bundle management subsystem| Bottom-layer implementation changed| [1. The bottom layer implementation of getAllBundleInfo in ohos.bundle.d.ts is changed.](changelogs-bundlemanager.md#clbundlemanager1-bottom-layer-implementation-of-getallbundleinfo-in-ohosbundledts-changed)<br>[2. The bottom layer implementation of getAllApplicationInfo in ohos.bundle.d.ts is changed.](changelogs-bundlemanager.md#clbundlemanager2-bottom-layer-implementation-of-getallapplicationinfo-in-ohosbundledts-changed) |
| Bundle management subsystem| API permission changed| [1. The permission on getAllBundleInfo in ohos.bundle.bundleManager.d.ts is changed.](changelogs-bundlemanager.md#clbundlemanager3-permission-on-getallbundleinfo-in-ohosbundlebundlemanagerdts-changed)<br>[2. The permission on getAllApplicationInfo in ohos.bundle.bundleManager.d.ts is changed.](changelogs-bundlemanager.md#clbundlemanager4-permission-on-getallapplicationinfo-in-ohosbundlebundlemanagerdts-changed) |
| Bundle management subsystem| API/Component changed| [1. The getSpecifiedDistributionType API is moved from ohos.bundle.installer.d.ts to ohos.bundle.bundleManager.d.ts.](changelogs-bundlemanager.md#clbundlemanager5-getspecifieddistributiontype-moved-from-ohosbundleinstallerdts-to-ohosbundlebundlemanagerdts)<br>[2. The getAdditionalInfo API is moved from ohos.bundle.installer.d.ts to ohos.bundle.bundleManager.d.ts.](changelogs-bundlemanager.md#clbundlemanager6-getadditionalinfo-moved-from-ohosbundleinstallerdts-to-ohosbundlebundlemanagerdts) |
| Bundle management subsystem| API/Component changed| [proxyDatas is renamed proxyData.](changelogs-bundlemanager.md#clbundlemanager7-proxydatas-renamed-proxydata-in-the-modulejson5-file) |
| Bundle management subsystem| Configuration file changed| [schema in the module.json file is changed.](https://gitee.com/openharmony/docs/blob/master/en/release-notes/changelogs/OpenHarmony_4.0.9.3/changelogs-bundlemanager.md) |
| OS multimedia subsystem| Enumeration declaration changed| [The audio output stream type is changed from AUDIOSTREAM_TYPE_RERNDERER to AUDIOSTREAM_TYPE_RENDERER.](changelogs-multimedia.md#clmultimedia1-stream-type-enum-declaration-in-audio-c-apis-changed)|
| OS multimedia subsystem| Enumerated value changed| [1. For the OH_AudioStream_Usage enum, the enumerated value AUDIOSTREAM_USAGE_MEDIA is deleted, and AUDIOSTREAM_USAGE_COMMUNICATION is changed to AUDIOSTREAM_USAGE_VOICE_COMMUNICATION and AUDIOSTREAM_USAGE_VOICE_ASSISTANT.](changelogs-multimedia.md#clmultimedia2-oh_audiostream_usage-changed)<br>[2. The enumerated value AUDIOSTREAM_SAMPLE_F32LE is deleted for the OH_AudioStream_SampleFormat enum.](changelogs-multimedia.md#clmultimedia3-audiostream_sample_f32le-deleted-for-oh_audiostream_sampleformat) |
| OS multimedia subsystem| Input parameter changed| [The input parameter content is deleted from getAudioEffectInfoArray.](changelogs-multimedia.md#clmultimedia4-deleted-content-from-getaudioeffectinfoarray) |
| Multimedia subsystem| Input parameter changed| [The input parameter content is deleted from getAudioEffectInfoArray.](changelogs-multimedia.md#clmultimedia4-deleted-content-from-getaudioeffectinfoarray) |
| Multimedia subsystem| API changed| [The APIs related to audio track switching are deleted.](changelogs-multimedia.md#clmultimedia5-playback-apis-changed) |
| Ability - widget framework| API permission changed| [Some APIs are moved from ohos.app.form.formHost.d.ts and their permission is changed.](changelogs-formfwk.md#clformfwk1-some-apis-moved-from-ohosappformformhostdts-and-their-permission-changed) |
| Ability - widget framework| API parameter changed| [The callback parameter is moved as the last parameter in the event subscription and unsubscription APIs (on/off).](changelogs-formfwk.md#clformfwk2-adjusted-the-parameter-sequence-of-event-subscription-and-unsubscription-apis -onoff) |
| Pan-sensor subsystem| API/Component changed| [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.](changelogs-miscdevice.md) |
> **NOTE**
>
> Unless otherwise specified, the changes described in this topic are ArkTS API changes.
<!--no_check-->
\ No newline at end of file
# Bundle Management Subsystem Changelog
## cl.bundlemanager.1 Bottom Layer Implementation of getAllBundleInfo in \@ohos.bundle.d.ts Changed
The **getAllBundleInfo** API in the **\@ohos.bundle.d.ts** file is marked as deprecated. On the image with **targetAPILevel** set to API 9 or later, the returned data list is empty.
**Change Impact**
After an update to the new image version, the calling of **getAllBundleInfo** in **\@ohos.bundle.d.ts** is successful. However, the returned data list is empty. To obtain the bundle information, call **getAllBundleInfo** in the **\@ohos.bundle.bundleManager.d.ts** file.
**Key API/Component Changes**
The bottom-layer implementation is changed. The result value of **getAllBundleInfo** in **\@ohos.bundle.d.ts** is empty.
**Adaptation Guide**
If your application uses **getAllBundleInfo** in **\@ohos.bundle.d.ts**, replace it with **getAllBundleInfo** in **\@ohos.bundle.bundleManager.d.ts**. For details about how to use the new API, see the corresponding API Reference.
```ets
import bundleManager from '@ohos.bundle.bundleManager';
```
## cl.bundlemanager.2 Bottom Layer Implementation of getAllApplicationInfo in \@ohos.bundle.d.ts Changed
The **getAllApplicationInfo** API in the **\@ohos.bundle.d.ts** file is marked as deprecated. On the image with **targetAPILevel** set to API 9 or later, the returned data list is empty.
**Change Impact**
After an update to the new image version, the calling of **getAllApplicationInfo** in **\@ohos.bundle.d.ts** is successful. However, the returned data list is empty. To obtain the application information, call **getAllApplicationInfo** in the **\@ohos.bundle.bundleManager.d.ts** file.
**Key API/Component Changes**
The bottom-layer implementation is changed. The result value of **getAllApplicationInfo** in **\@ohos.bundle.d.ts** is empty.
**Adaptation Guide**
If your application uses **getAllApplicationInfo** in **\@ohos.bundle.d.ts**, replace it with **getAllApplicationInfo** in **\@ohos.bundle.bundleManager.d.ts**. For details about how to use the new API, see the corresponding API Reference.
```ets
import bundleManager from '@ohos.bundle.bundleManager';
```
## cl.bundlemanager.3 Permission on getAllBundleInfo in \@ohos.bundle.bundleManager.d.ts Changed
The APIs for obtaining the application list require authorization from the end user.
Therefore, the permission on **getAllBundleInfo** in **\@ohos.bundle.bundleManager.d.ts** is changed to **ohos.permission.GET_INSTALLED_BUNDLE_LIST**.
**Change Impact**
After an update to the new image version, you must have the **ohos.permission.GET_INSTALLED_BUNDLE_LIST** permission when calling **getAllBundleInfo**. Otherwise, the call fails.
**Key API/Component Changes**
Therefore, the permission on **getAllBundleInfo** in **\@ohos.bundle.bundleManager.d.ts** is changed to **ohos.permission.GET_INSTALLED_BUNDLE_LIST**.
**Adaptation Guide**
1. Add the **ohos.permission.GET_INSTALLED_BUNDLE_LIST** permission to the configuration file of the application.
2. This permission is of the **user_grant** type and is not authorized by default during application installation. You must display a dialog box to ask the permission from the user or use pre-authorization.
3. For details about how to display a dialog box to ask for permission, see [Requesting User Authorization](../../../application-dev/security/accesstoken-guidelines.md#requesting-user-authorization).
4. For details about how to use pre-authorization, see [Pre-authorizing user_grant Permissions](../../../application-dev/security/accesstoken-guidelines.md#pre-authorizing-user_grant-permissions).
## cl.bundlemanager.4 Permission on getAllApplicationInfo in \@ohos.bundle.bundleManager.d.ts Changed
The APIs for obtaining the application list require authorization from the end user.
Therefore, the permission on **getAllApplicationInfo** in **\@ohos.bundle.bundleManager.d.ts** is changed to **ohos.permission.GET_INSTALLED_BUNDLE_LIST**.
**Change Impact**
After an update to the new image version, you must have the **ohos.permission.GET_INSTALLED_BUNDLE_LIST** permission when calling **getAllApplicationInfo**. Otherwise, the call fails.
**Key API/Component Changes**
Therefore, the permission on **getAllApplicationInfo** in **\@ohos.bundle.bundleManager.d.ts** is changed to **ohos.permission.GET_INSTALLED_BUNDLE_LIST**.
**Adaptation Guide**
1. Add the **ohos.permission.GET_INSTALLED_BUNDLE_LIST** permission to the configuration file of the application.
2. This permission is of the **user_grant** type and is not authorized by default during application installation. You must display a dialog box to ask the permission from the user or use pre-authorization.
3. For details about how to display a dialog box to ask for permission, see [Requesting User Authorization](../../../application-dev/security/accesstoken-guidelines.md#requesting-user-authorization).
4. For details about how to use pre-authorization, see [Pre-authorizing user_grant Permissions](../../../application-dev/security/accesstoken-guidelines.md#pre-authorizing-user_grant-permissions).
## cl.bundlemanager.5 getSpecifiedDistributionType Moved from \@ohos.bundle.installer.d.ts to \@ohos.bundle.bundleManager.d.ts
The **getSpecifiedDistributionType** API is moved from **\@ohos.bundle.installer.d.ts** to **\@ohos.bundle.bundleManager.d.ts**.
**Change Impact**
After an update to the new SDK version, the **getSpecifiedDistributionType** API in **\@ohos.bundle.installer.d.ts** is moved to **\@ohos.bundle.bundleManager.d.ts**.
**Key API/Component Changes**
The **getSpecifiedDistributionType** API is moved from **\@ohos.bundle.installer.d.ts** to **\@ohos.bundle.bundleManager.d.ts**.
**Adaptation Guide**
To use **getSpecifiedDistributionType**, import the **bundleManager** module.
```ets
import bundleManager form '@ohos.bundle.bundleManager'
```
## cl.bundlemanager.6 getAdditionalInfo Moved from \@ohos.bundle.installer.d.ts to \@ohos.bundle.bundleManager.d.ts
The **getAdditionalInfo** API is moved from **\@ohos.bundle.installer.d.ts** to **\@ohos.bundle.bundleManager.d.ts**.
**Change Impact**
After an update to the new SDK version, the **getAdditionalInfo** API in **\@ohos.bundle.installer.d.ts** is moved to **\@ohos.bundle.bundleManager.d.ts**.
**Key API/Component Changes**
The **getAdditionalInfo** API is moved from **\@ohos.bundle.installer.d.ts** to **\@ohos.bundle.bundleManager.d.ts**.
**Adaptation Guide**
To use **getAdditionalInfo**, import the **bundleManager** module.
```ets
import bundleManager form '@ohos.bundle.bundleManager'
```
## cl.bundlemanager.7 proxyDatas Renamed proxyData in the module.json5 File
**proxyDatas** is renamed **proxyData**.
**Change Impact**
After an update to the new SDK version, **proxyDatas** is **renamed proxyData**. If your application is not adapted, the build will fail.
**Key API/Component Changes**
**proxyDatas** is renamed **proxyData**.
**Adaptation Guide**
Replace **proxyDatas** with **proxyData**. The content of **proxyDatas** does not need to be changed.
# Device Management Changelog
## cl.device_manager.1 API Permissions Changed
Permission verification is added for some APIs of device management from OpenHarmony 4.0.8.2.
**Change Impact**
The apps developed using OpenHarmony 4.0.8.2 or later must have the corresponding permissions. Otherwise, the related APIs cannot be called.
**Key API/Component Changes**
| Module| Class| Method/Attribute/Enum/Constant| Added Permission|
| -------- | -------- | -------- | -------- |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;release():&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;getTrustedDeviceListSync():&nbsp;Array&lt;DeviceInfo&gt; | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;getTrustedDeviceList(callback:AsyncCallback&lt;Array&lt;DeviceInfo&gt;&gt;):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;getTrustedDeviceList():&nbsp;Promise&lt;Array&lt;DeviceInfo&gt;&gt; | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;getLocalDeviceInfoSync():&nbsp;DeviceInfo | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;getLocalDeviceInfo(callback:AsyncCallback&lt;DeviceInfo&gt;):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;getLocalDeviceInfo():&nbsp;Promise&lt;DeviceInfo&gt; | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;getDeviceInfo(networkId:&nbsp;string,&nbsp;callback:AsyncCallback&lt;DeviceInfo&gt;):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;getDeviceInfo(networkId:&nbsp;string):&nbsp;Promise&lt;DeviceInfo&gt; | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;startDeviceDiscovery(subscribeInfo:&nbsp;SubscribeInfo):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;startDeviceDiscovery(subscribeInfo:&nbsp;SubscribeInfo,&nbsp;filterOptions?:&nbsp;string):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;stopDeviceDiscovery(subscribeId:&nbsp;number):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;publishDeviceDiscovery(publishInfo:&nbsp;PublishInfo):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;unPublishDeviceDiscovery(publishId:&nbsp;number):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;authenticateDevice(deviceInfo:&nbsp;DeviceInfo,&nbsp;authParam:&nbsp;AuthParam,&nbsp;callback:&nbsp;AsyncCallback&lt;{deviceId:&nbsp;string,&nbsp;pinToken&nbsp;?:&nbsp;number}&gt;):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;unAuthenticateDevice(deviceInfo:&nbsp;DeviceInfo):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;verifyAuthInfo(authInfo:&nbsp;AuthInfo,&nbsp;callback:&nbsp;AsyncCallback&lt;{deviceId:&nbsp;string,&nbsp;level:&nbsp;number}&gt;):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;setUserOperation(operateAction:&nbsp;number,&nbsp;params:&nbsp;string):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;requestCredentialRegisterInfo(requestInfo:&nbsp;string,&nbsp;callback:&nbsp;AsyncCallback&lt;{registerInfo:&nbsp;string}&gt;):&nbsp;void; | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;importCredential(credentialInfo:&nbsp;string,&nbsp;callback:&nbsp;AsyncCallback&lt;{resultInfo:&nbsp;string}&gt;):&nbsp;void; | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;deleteCredential(queryInfo:&nbsp;string,&nbsp;callback:&nbsp;AsyncCallback&lt;{resultInfo:&nbsp;string}&gt;):&nbsp;void; | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;on(type:&nbsp;'uiStateChange',&nbsp;callback:&nbsp;Callback&lt;{&nbsp;param:&nbsp;string}&gt;):&nbsp;void; | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;off(type:&nbsp;'uiStateChange',&nbsp;callback?:&nbsp;Callback&lt;{&nbsp;param:&nbsp;string}&gt;):&nbsp;void; | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;on(type:&nbsp;'deviceStateChange',&nbsp;callback:&nbsp;Callback&lt;{&nbsp;action:&nbsp;DeviceStateChangeAction,&nbsp;device:&nbsp;DeviceInfo&nbsp;}&gt;):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;off(type:&nbsp;'deviceStateChange',&nbsp;callback?:&nbsp;Callback&lt;{&nbsp;action:&nbsp;DeviceStateChangeAction,&nbsp;device:&nbsp;DeviceInfo&nbsp;}&gt;):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;on(type:&nbsp;'deviceFound',&nbsp;callback:&nbsp;Callback&lt;{&nbsp;subscribeId:&nbsp;number,&nbsp;device:&nbsp;DeviceInfo&nbsp;}&gt;):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;off(type:&nbsp;'deviceFound',&nbsp;callback?:&nbsp;Callback&lt;{&nbsp;subscribeId:&nbsp;number,&nbsp;device:&nbsp;DeviceInfo&nbsp;}&gt;):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;on(type:&nbsp;'discoverFail',&nbsp;callback:&nbsp;Callback&lt;{&nbsp;subscribeId:&nbsp;number,&nbsp;reason:&nbsp;number&nbsp;}&gt;):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;off(type:&nbsp;'discoverFail',&nbsp;callback?:&nbsp;Callback&lt;{&nbsp;subscribeId:&nbsp;number,&nbsp;reason:&nbsp;number&nbsp;}&gt;):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;on(type:&nbsp;'publishSuccess',&nbsp;callback:&nbsp;Callback&lt;{&nbsp;publishId:&nbsp;number&nbsp;}&gt;):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;off(type:&nbsp;'publishSuccess',&nbsp;callback?:&nbsp;Callback&lt;{&nbsp;publishId:&nbsp;number&nbsp;}&gt;):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;on(type:&nbsp;'publishFail',&nbsp;callback:&nbsp;Callback&lt;{&nbsp;publishId:&nbsp;number,&nbsp;reason:&nbsp;number&nbsp;}&gt;):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;off(type:&nbsp;'publishFail',&nbsp;callback?:&nbsp;Callback&lt;{&nbsp;publishId:&nbsp;number,&nbsp;reason:&nbsp;number&nbsp;}&gt;):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;on(type:&nbsp;'serviceDie',&nbsp;callback:&nbsp;()&nbsp;=&gt;&nbsp;void):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
| \@ohos.distributedHardware.deviceManager | deviceManager | **function**&nbsp;off(type:&nbsp;'serviceDie',&nbsp;callback?:&nbsp;()&nbsp;=&gt;&nbsp;void):&nbsp;void | ohos.permission.ACCESS_SERVICE_DM |
**Adaptation Guide**
Apply for the corresponding permissions for your application before these APIs are called.
# Ability - Widget Framework Changelog
## cl.formfwk.1 Some APIs Moved from \@ohos.app.form.formHost.d.ts and Their Permission Changed
1. APIs used for listening for and obtaining dynamic widget information are moved from **\@ohos.app.form.formHost.d.ts** to **\@ohos.app.form.formObserver.d.ts**.
2. The permission for these APIs is changed from **ohos.permission.REQUIRE_FORM** to **ohos.permission.OBSERVE_FORM_RUNNING**.
**Change Impact**
Applications that use the involved APIs may have compatibility issues.
**Key API/Component Changes**
| API| Home .d.ts File Before Modification| Home .d.ts File After Modification| Permission Required Before Modification| Permission Required After Modification|
| -------- | -------- | -------- | -------- | -------- |
| on('formAdd') | \@ohos.app.form.formHost.d.ts | \@ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
| off('formAdd') | \@ohos.app.form.formHost.d.ts | \@ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
| on('formRemove') | \@ohos.app.form.formHost.d.ts | \@ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
| off('formRemove') | \@ohos.app.form.formHost.d.ts | \@ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
| on('notifyVisible') | \@ohos.app.form.formHost.d.ts | \@ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
| off('notifyVisible') | \@ohos.app.form.formHost.d.ts | \@ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
| on('notifyInvisible') | \@ohos.app.form.formHost.d.ts | \@ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
| off('notifyInvisible') | \@ohos.app.form.formHost.d.ts | \@ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
| getRunningFormInfos | \@ohos.app.form.formHost.d.ts | \@ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
| getRunningFormInfosByFilter | \@ohos.app.form.formHost.d.ts | \@ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
| getRunningFormInfoById | \@ohos.app.form.formHost.d.ts | \@ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
**Adaptation Guide**
Adapt your application code accordingly. To use these APIs in OpenHarmony 4.0.9.5 and later versions, import **\@ohos.app.form.formObserver.d.ts** and request the **ohos.permission.OBSERVE_FORM_RUNNING** permission.
**Example**
```js
import formObserver from @ohos.app.form.formObserver.d.ts;
try {
formObserver.getRunningFormInfos((error, data) => {
if (error) {
console.error(`error, code: ${error.code}, message: ${error.message}`);
} else {
console.log('formHost getRunningFormInfos, data: ${JSON.stringify(data)}');
}
}, 'com.example.ohos.formjsdemo');
} catch(error) {
console.error(`catch error, code: ${error.code}, message: ${error.message}`);
}
```
## cl.formfwk.2 Adjusted the Parameter Sequence of Event Subscription and Unsubscription APIs (on/off)
The **callback** parameter is moved as the last parameter in the event subscription and unsubscription APIs (**on**/**off**).
**Change Impact**
Applications that use the involved APIs may have compatibility issues.
**Key API/Component Changes**
Before change:
```js
function on(type: 'formAdd', observerCallback: Callback<formInfo.RunningFormInfo>, bundleName?: string): void;
function off(type: 'formAdd', observerCallback?: Callback<formInfo.RunningFormInfo>, bundleName?: string): void;
function on(type: 'formRemove', observerCallback: Callback<formInfo.RunningFormInfo>, bundleName?: string): void;
function off(type: 'formRemove', observerCallback?: Callback<formInfo.RunningFormInfo>, bundleName?: string): void;
function on(
type: 'notifyVisible',
observerCallback: Callback<Array<formInfo.RunningFormInfo>>,
hostBundleName?: string
): void;
function off(
type: 'notifyVisible',
observerCallback?: Callback<Array<formInfo.RunningFormInfo>>,
hostBundleName?: string
): void;
function on(
type: 'notifyInvisible',
observerCallback: Callback<Array<formInfo.RunningFormInfo>>,
hostBundleName?: string
): void;
function off(
type: 'notifyInvisible',
observerCallback?: Callback<Array<formInfo.RunningFormInfo>>,
hostBundleName?: string
): void;
```
After change:
```js
function on(type: 'formAdd', observerCallback: Callback<formInfo.RunningFormInfo>): void;
function on(type: 'formAdd', hostBundleName: string, observerCallback: Callback<formInfo.RunningFormInfo>): void;
function off(type: 'formAdd', hostBundleName?: string, observerCallback?: Callback<formInfo.RunningFormInfo>): void;
function on(type: 'formRemove', observerCallback: Callback<formInfo.RunningFormInfo>): void;
function on(type: 'formRemove', hostBundleName: string, observerCallback: Callback<formInfo.RunningFormInfo>): void;
function off(type: 'formRemove', hostBundleName?: string, observerCallback?: Callback<formInfo.RunningFormInfo>): void;
function on(type: 'notifyVisible', observerCallback: Callback<Array<formInfo.RunningFormInfo>>): void;
function on(
type: 'notifyVisible',
hostBundleName: string,
observerCallback: Callback<Array<formInfo.RunningFormInfo>>
): void;
function off(
type: 'notifyVisible',
hostBundleName?: string,
observerCallback?: Callback<Array<formInfo.RunningFormInfo>>
): void;
function on(type: 'notifyInvisible', observerCallback: Callback<Array<formInfo.RunningFormInfo>>): void;
function on(
type: 'notifyInvisible',
hostBundleName: string,
observerCallback: Callback<Array<formInfo.RunningFormInfo>>,
): void;
function off(
type: 'notifyInvisible',
hostBundleName?: string,
observerCallback?: Callback<Array<formInfo.RunningFormInfo>>
): void;
```
**Adaptation Guide**
Adapt your application code accordingly. In OpenHarmony 4.0.9.5 and later versions, pass in **callback** as the last parameter when calling these APIs.
**Example**
```js
import formObserver from @ohos.app.form.formObserver.d.ts;
let bundleName = 'ohos.samples.FormApplication';
let callback = function(data) {
console.log('a new form added, data: ${JSON.stringify(data)');
}
formHost.on('formAdd', callback);
formHost.on('formAdd', bundleName, callback);
```
# 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 OpenHarmony 4.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 file.
closeResource(FILE_NAME);
```
# Multimedia Subsystem Changelog
## cl.multimedia.1 Stream Type Enum Declaration in Audio C APIs Changed
For the audio APIs of API version 10 in C, the audio output stream type is changed from **AUDIOSTREAM_TYPE_RERNDERER** to **AUDIOSTREAM_TYPE_RENDERER**.
**Change Impact**
Applications that use the involved APIs may have compatibility issues.
**Key API/Component Changes**
Before change:
```C
enum OH_AudioStream_Type {
/**
* The type for audio stream is renderer.
*/
AUDIOSTREAM_TYPE_RERNDERER = 1,
/**
* The type for audio stream is capturer.
*/
AUDIOSTREAM_TYPE_CAPTURER = 2
};
```
After change:
```C
enum OH_AudioStream_Type {
/**
* The type for audio stream is renderer.
*/
AUDIOSTREAM_TYPE_RENDERER = 1,
/**
* The type for audio stream is capturer.
*/
AUDIOSTREAM_TYPE_CAPTURER = 2
};
```
**Adaptation Guide**
Change **AUDIOSTREAM_TYPE_RERNDERER** to **AUDIOSTREAM_TYPE_RENDERER** in your code. Example:
Before change:
```C
OH_AudioStreamBuilder* builder;
OH_AudioStreamBuilder_Create(&builder, AUDIOSTREAM_TYPE_RERNDERER);
```
After change:
```C
OH_AudioStreamBuilder* builder;
OH_AudioStreamBuilder_Create(&builder, AUDIOSTREAM_TYPE_RENDERER);
```
## cl.multimedia.2 OH_AudioStream_Usage Changed
In the **native_audiostream_base.h** file of the audio APIs of API version 10 in C, for the **OH_AudioStream_Usage** enum, the enumerated value **AUDIOSTREAM_USAGE_MEDIA** is deleted, and **AUDIOSTREAM_USAGE_COMMUNICATION** is changed to **AUDIOSTREAM_USAGE_VOICE_COMMUNICATION** and **AUDIOSTREAM_USAGE_VOICE_ASSISTANT**.
**Change Impact**
Applications that use the involved APIs may have compatibility issues.
**Key API/Component Changes**
Before change:
```C
typedef enum {
AUDIOSTREAM_USAGE_UNKNOWN = 0,
AUDIOSTREAM_USAGE_MEDIA = 1,
AUDIOSTREAM_USAGE_COMMUNICATION = 2,
} OH_AudioStream_Usage;
```
After change:
```C
typedef enum {
/**
* Unknown usage.
*/
AUDIOSTREAM_USAGE_UNKNOWN = 0,
/**
* Music usage.
*/
AUDIOSTREAM_USAGE_MUSIC = 1,
/**
* Voice communication usage.
*/
AUDIOSTREAM_USAGE_VOICE_COMMUNICATION = 2,
/**
* Voice assistant usage.
*/
AUDIOSTREAM_USAGE_VOICE_ASSISTANT = 3,
/**
* Movie or video usage.
*/
AUDIOSTREAM_USAGE_MOVIE = 10,
} OH_AudioStream_Usage;
```
**Adaptation Guide**
When using **OH_AudioStreamBuilder_SetRendererInfo**, set **OH_AudioStream_Usage** to **AUDIOSTREAM_USAGE_MUSIC** or **AUDIOSTREAM_USAGE_MOVIE**, rather than **AUDIOSTREAM_USAGE_MEDIA**.
Before change:
```C
OH_AudioStreamBuilder_SetRendererInfo(builder, AUDIOSTREAM_USAGE_MEDIA);
```
After change:
```C
OH_AudioStreamBuilder_SetRendererInfo(builder, AUDIOSTREAM_USAGE_MUSIC); // Music scene
```
Or:
```C
OH_AudioStreamBuilder_SetRendererInfo(builder, AUDIOSTREAM_USAGE_MOVIE); // Video scene
```
When using **OH_AudioStreamBuilder_SetRendererInfo**, set **OH_AudioStream_Usage** to **AUDIOSTREAM_USAGE_VOICE_COMMUNICATION** or **AUDIOSTREAM_USAGE_VOICE_ASSISTANT**, rather than **AUDIOSTREAM_USAGE_COMMUNICATION**.
Before change:
```C
OH_AudioStreamBuilder_SetRendererInfo(builder, AUDIOSTREAM_USAGE_COMMUNICATION);
```
After change:
```C
OH_AudioStreamBuilder_SetRendererInfo(builder, AUDIOSTREAM_USAGE_VOICE_COMMUNICATION); // Communication scene
```
Or:
```C
OH_AudioStreamBuilder_SetRendererInfo(builder, AUDIOSTREAM_USAGE_VOICE_ASSISTANT); // Voice assistant scene
```
## cl.multimedia.3 AUDIOSTREAM_SAMPLE_F32LE Deleted for OH_AudioStream_SampleFormat
In the **native_audiostream_base.h** file of the audio APIs of API version 10 in C, the enumerated value **AUDIOSTREAM_SAMPLE_F32LE** is deleted for the **OH_AudioStream_SampleFormat** enum.
**Change Impact**
Applications that use the involved APIs may have compatibility issues.
**Key API/Component Changes**
Before change:
```C
typedef enum {
AUDIOSTREAM_SAMPLE_U8 = 0,
AUDIOSTREAM_SAMPLE_S16LE = 1,
AUDIOSTREAM_SAMPLE_S24LE = 2,
AUDIOSTREAM_SAMPLE_S32LE = 3,
AUDIOSTREAM_SAMPLE_F32LE = 4,
} OH_AudioStream_SampleFormat;
```
After change:
```C
typedef enum {
/**
* Unsigned 8 format.
*/
AUDIOSTREAM_SAMPLE_U8 = 0,
/**
* Signed 16 bit integer, little endian.
*/
AUDIOSTREAM_SAMPLE_S16LE = 1,
/**
* Signed 24 bit integer, little endian.
*/
AUDIOSTREAM_SAMPLE_S24LE = 2,
/**
* Signed 32 bit integer, little endian.
*/
AUDIOSTREAM_SAMPLE_S32LE = 3,
} OH_AudioStream_SampleFormat;
```
**Adaptation Guide**
Do not use **AUDIOSTREAM_SAMPLE_F32LE** for **OH_AudioStream_SampleFormat**.
## cl.multimedia.4 Deleted content from getAudioEffectInfoArray
The input parameter **content** is deleted from **getAudioEffectInfoArray**.
**Change Impact**
Applications that use the involved APIs may have compatibility issues.
**Key API/Component Changes**
Before change:
```js
getAudioEffectInfoArray(content: ContentType, usage: StreamUsage, callback: AsyncCallback<AudioEffectInfoArray>): void;
getAudioEffectInfoArray(content: ContentType, usage: StreamUsage): Promise<AudioEffectInfoArray>;
```
After change:
```js
getAudioEffectInfoArray(usage: StreamUsage, callback: AsyncCallback<AudioEffectInfoArray>): void;
getAudioEffectInfoArray(usage: StreamUsage): Promise<AudioEffectInfoArray>;
```
**Adaptation Guide**
When calling this API, pass in only the input parameter **usage**. If **getAudioEffectInfoArray** is used in your application code, delete the **content** parameter.
## cl.multimedia.5 Playback APIs Changed
The APIs related to audio track switching are deleted.
**Change Impact**
These APIs are unavailable.
**Key API/Component Changes**
The deleted APIs are as follows:
| Class| API|
| -------- | -------- |
| Media.Core | MD_KEY_LANGUAGE |
| Media.AVPlayer | selectTrack(index:&nbsp;number):&nbsp;void |
| Media.AVPlayer | deselectTrack(index:&nbsp;number):&nbsp;void |
| Media.AVPlayer | getCurrentTrack(trackType:&nbsp;MediaType,&nbsp;callback:&nbsp;AsyncCallback&lt;number&gt;):&nbsp;void |
| Media.AVPlayer | getCurrentTrack(trackType:&nbsp;MediaType):&nbsp;Promise&lt;number&gt; |
| Media.AVPlayer | on(type:&nbsp;'trackChange',&nbsp;callback:&nbsp;(index:&nbsp;number,&nbsp;isSelect:&nbsp;boolean)&nbsp;=&gt;&nbsp;void):&nbsp;void; |
| Media.AVPlayer | off(type:&nbsp;'trackChange'):&nbsp;void |
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
- [Glossary](glossary.md) - [Glossary](glossary.md)
- Release Notes - Release Notes
- OpenHarmony 4.x Releases - OpenHarmony 4.x Releases
- [OpenHarmony v4.0 Beta2 (2023-08-02)](release-notes/OpenHarmony-v4.0-beta2.md)
- [OpenHarmony v4.0 Beta1 (2023-06-03)](release-notes/OpenHarmony-v4.0-beta1.md) - [OpenHarmony v4.0 Beta1 (2023-06-03)](release-notes/OpenHarmony-v4.0-beta1.md)
- OpenHarmony 3.x Releases - OpenHarmony 3.x Releases
- [OpenHarmony v3.2 Release (2023-04-09)](release-notes/OpenHarmony-v3.2-release.md) - [OpenHarmony v3.2 Release (2023-04-09)](release-notes/OpenHarmony-v3.2-release.md)
...@@ -37,6 +38,53 @@ ...@@ -37,6 +38,53 @@
- [OpenHarmony v1.1.1 LTS (2021-06-22)](release-notes/OpenHarmony-1-1-1-LTS.md) - [OpenHarmony v1.1.1 LTS (2021-06-22)](release-notes/OpenHarmony-1-1-1-LTS.md)
- [OpenHarmony v1.1.0 LTS (2021-04-01)](release-notes/OpenHarmony-1-1-0-LTS.md) - [OpenHarmony v1.1.0 LTS (2021-04-01)](release-notes/OpenHarmony-1-1-0-LTS.md)
- API Differences - API Differences
- OpenHarmony 4.0 Beta2
- ArkTS API Differences
- [Ability framework](release-notes/api-diff/v4.0-beta2/js-apidiff-ability.md)
- [Account subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-account.md)
- [AI subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-ai.md)
- [System Applications](release-notes/api-diff/v4.0-beta2/js-apidiff-application.md)
- [ArkUI development framework](release-notes/api-diff/v4.0-beta2/js-apidiff-arkui.md)
- [Power management subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-battery.md)
- [Bundle management framework](release-notes/api-diff/v4.0-beta2/js-apidiff-bundle.md)
- [Communication subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-communication.md)
- [Compiler and runtime subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-compiler-and-runtime.md)
- [Customization subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-customization.md)
- [DFX subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-dfx.md)
- [Distributed data management subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-distributed-data.md)
- [Distributed hardware subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-distributed-hardware.md)
- [Upload and download](release-notes/api-diff/v4.0-beta2/js-apidiff-download-upload.md)
- [Driver subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-driver.md)
- [File management subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-file-management.md)
- [Geolocation subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-geolocation.md)
- [Globalization subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-global.md)
- [Misc services subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-misc.md)
- [MSDP subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-msdp.md)
- [Multimodal input subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-multi-modal-input.md)
- [Multimedia subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-multimedia.md)
- [Common event and notification subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-notification.md)
- [Resource scheduler subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-resource-scheduler.md)
- [Security subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-security.md)
- [Pan-sensor subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-sensor.md)
- [Startup subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-start-up.md)
- [Telephony subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-telephony.md)
- [Test subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-unitest.md)
- [USB subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-usb.md)
- [Web subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-web.md)
- [Window manager subsystem](release-notes/api-diff/v4.0-beta2/js-apidiff-window.md)
- API Changelogs
- [Readme](release-notes/changelogs/v4.0-beta2/Readme-EN.md)
- [ArkUI Framework Changelog](release-notes/changelogs/v4.0-beta2/changelogs-arkui.md)
- [Bundle management subsystem Changelog](release-notes/changelogs/v4.0-beta2/changelogs-bundlemanager.md)
- [Ability Access Control Changelog](release-notes/changelogs/v4.0-beta2/changelogs-accesstoken.md)
- [Distributed Data Management Changelog](release-notes/changelogs/v4.0-beta2/changelogs-distributeddatamgr.md)
- [Ability - Widget Framework Changelog](release-notes/changelogs/v4.0-beta2/changelogs-formfwk.md)
- [Input Method Framework Changelog](release-notes/changelogs/v4.0-beta2/changelogs-imf.md)
- [Multimedia Subsystem Changelog](release-notes/changelogs/v4.0-beta2/changelogs-multimedia.md)
- [Theme Framework - Screen Lock Management Changelog](release-notes/changelogs/v4.0-beta2/changelogs-screenlock.md)
- [Device Management Subsystem Changelog](release-notes/changelogs/v4.0-beta2/changelogs-device_manager.md)
- [Pan-Sensor Subsystem Changelog](release-notes/changelogs/v4.0-beta2/changelogs-miscdevice.md)
- [File Management Subsystem (MediaLibrary) Changelog](release-notes/changelogs/v4.0-beta2/changelogs-medialibrary.md)
- OpenHarmony 4.0 Beta1 - OpenHarmony 4.0 Beta1
- JS API Differences - JS API Differences
- [Ability](release-notes/api-diff/v4.0-beta1/js-apidiff-ability.md) - [Ability](release-notes/api-diff/v4.0-beta1/js-apidiff-ability.md)
...@@ -72,6 +120,7 @@ ...@@ -72,6 +120,7 @@
- [Compiler and Runtime](release-notes/changelogs/v4.0-beta1/changelogs-arkcompiler.md) - [Compiler and Runtime](release-notes/changelogs/v4.0-beta1/changelogs-arkcompiler.md)
- [ArkUI](release-notes/changelogs/v4.0-beta1/changelogs-arkui.md) - [ArkUI](release-notes/changelogs/v4.0-beta1/changelogs-arkui.md)
- [Bundle Management](release-notes/changelogs/v4.0-beta1/changelogs-bundlemanager.md) - [Bundle Management](release-notes/changelogs/v4.0-beta1/changelogs-bundlemanager.md)
- [Common Capability Changelog](release-notes/changelogs/v4.0-beta1/changelogs-common.md)
- [Globalization](release-notes/changelogs/v4.0-beta1/changelogs-global.md) - [Globalization](release-notes/changelogs/v4.0-beta1/changelogs-global.md)
- [Security - HUKS](release-notes/changelogs/v4.0-beta1/changelogs-huks.md) - [Security - HUKS](release-notes/changelogs/v4.0-beta1/changelogs-huks.md)
- [Resource Scheduler](release-notes/changelogs/v4.0-beta1/changelogs-resourceschedule.md) - [Resource Scheduler](release-notes/changelogs/v4.0-beta1/changelogs-resourceschedule.md)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册