diff --git a/en/application-dev/reference/errorcodes/errorcode-ability.md b/en/application-dev/reference/errorcodes/errorcode-ability.md index dd6da1a775f5299935206b19929464d09bc43ba9..c3c3b7b4e4ffcb931f214dfcb2e75546ba1f4b15 100644 --- a/en/application-dev/reference/errorcodes/errorcode-ability.md +++ b/en/application-dev/reference/errorcodes/errorcode-ability.md @@ -76,7 +76,7 @@ Visibility verification fails. **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 diff --git a/en/release-notes/api-diff/v4.0-beta2/Readme-EN.md b/en/release-notes/api-diff/v4.0-beta2/Readme-EN.md index 928a0479346baf9293eed9d73d566aeb181551cf..ce2559388f2ee9472b0fc08fcb177bd952c8f2b3 100644 --- a/en/release-notes/api-diff/v4.0-beta2/Readme-EN.md +++ b/en/release-notes/api-diff/v4.0-beta2/Readme-EN.md @@ -3,7 +3,7 @@ - [Ability framework](js-apidiff-ability.md) - [Account subsystem](js-apidiff-account.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) - [Power management subsystem](js-apidiff-battery.md) - [Bundle management framework](js-apidiff-bundle.md) diff --git a/en/release-notes/changelogs/v4.0-beta2/Readme-EN.md b/en/release-notes/changelogs/v4.0-beta2/Readme-EN.md index 0cb47825d0267f144b0615c0b9e09bdf0fab2def..cef8dc770358bf8645115e87e91aa74926c23bf1 100644 --- a/en/release-notes/changelogs/v4.0-beta2/Readme-EN.md +++ b/en/release-notes/changelogs/v4.0-beta2/Readme-EN.md @@ -1,32 +1,18 @@ # Summary -| Subsystem | Change Type | Description | +| Subsystem| Change Type| Change Description| | -------- | -------- | -------- | -| ArkUI | | | -| ArkUI | | | -| ArkUI | | | -| ArkUI | | | -| ArkUI | | | -| ArkUI | | | -| ArkUI | | | -| ArkUI | | | -| ArkUI | | | -| ArkUI | | | -| ArkUI | | | -| ArkUI | | | -| Bundle management | | | -| Bundle management | | | -| Bundle management | | | -| Bundle management | | | -| Bundle management | | | -| OS media | | | -| OS media | | | -| OS media | | | +| 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)
[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)
[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)
[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)
[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) | | Application access control | Permission changed | [Change of the Permission Requesting Modes of the Phone, Messaging, and Call Logs Permission Groups](changelogs-accessToken.md#claccesstoken2-change-of-the-permission-requesting-modes-of-the-phone-messaging-and-call-logs-permission-groups) | | Application access control | Permission group changed | [Change of the Media and Files Permission Group:
Moved ohos.permission.MEDIA_LOCATION to the Images and Videos permission group.
Moved ohos.permission.READ_MEDIA and ohos.permission.WRITE_MEDIA to the Documents permission group.](changelogs-accessToken.md#claccesstoken1-change-of-the-media-and-files-permission-group) | -| Input method framework | | | -| Theme framework | | | | Distributed data management | API/Component changed | [Change of ValuesBucket to a Public Interface](changelogs-distributeddatamgr.md#cldistributeddatamgr1-change-of-valuesbucket-to-a-public-interface) | | Distributed data management | API/Component changed | [Change of Some Predicate Interfaces in dataSharePredicates to Public Interfaces](changelogs-distributeddatamgr.md#cldistributeddatamgr2-change-of-some-predicate-interfaces-in-datasharepredicates-to-public-interfaces) | | Distributed data management | API/Component changed | [Change of the DataShareExtensionAbility Context](cldistributeddatamgr3-change-of-the-datashareextensionability-context) | @@ -35,18 +21,16 @@ | Distributed data management | Variable changed (Native) | [1. Change of int (*close)(OH_Cursor *cursor) in OH_Cursor Struct to int (*destroy)(OH_Cursor *cursor)](cldistributeddatamgr6-change-of-int-closeoh_cursor-cursor-in-oh_cursor-struct-to-int-destroyoh_cursor-cursor)
[2. Change of int (*destroyPredicates)(OH_Predicates *predicates) in OH_Predicates Struct to int (*destroy) (OH_Predicates *predicates)](cldistributeddatamgr7-change-of-int-destroypredicatesoh_predicates-predicates-in-oh_predicates-struct-to-int-destroy-oh_predicates-predicates)
[3. Change of int (*destroyValueObject)(OH_VObject *valueObject) in OH_VObject Struct to int (*destroy) (OH_VObject *valueObject)](cldistributeddatamgr8-change-of-int-destroyvalueobjectoh_vobject-valueobject-in-oh_vobject-struct-to-int-destroy-oh_vobject-valueobject)
[4. Change of int (*destroyValuesBucket)(OH_VBucket *bucket) in OH_VBucket Struct to int (*destroy) (OH_VBucket *bucket)](cldistributeddatamgr9-change-of-int-destroyvaluesbucketoh_vbucket-bucket-in-oh_vbucket-struct-to-int-destroy-oh_vbucket-bucket) | | Distributed data management | Variable changed (Native) | [Change of OH_Rdb_Config Struct Member Variables:
1. Changed the type of **securityLevel** from **enum OH_Rdb_SecurityLevel** to **in**.
2. Deleted the member variable **path**.
3. Added the member variables **selfSize**, **dataBaseDir**, **storeName**, **bundleName**, and **moduleName**.](cldistributeddatamgr10-change-of-oh_rdb_config-struct-member-variables) | | Distributed data management | API input parameter changed (Native) | [Change of const char *path in OH_Rdb_DeleteStore() to const OH_Rdb_Config *config](changelogs-distributeddatamgr.md#cldistributeddatamgr11-change-of-const-char-path-in-oh_rdb_deletestore-to-const-oh_rdb_config-config) | -| Distributed hardware | | | -| Media | | | -| Media | | | -| Ability - widget framework | | | -| Ability - widget framework | | | -| Pan-Sensor | | | +| 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) | | File management (media library) | API/Component changed | [Change of the mediaLibrary Interface Compatibility](changelogs-medialibrary.md#clfile1-change-of-the-mediabibrary-interface-compatibility) | | Communication | API/Component changed | [Change of the API Name](changelogs-wifiManager.md#clwifi1-change-of-the-name-of-the-api-for-obtaining-wi-fi-scan-result) | - > **NOTE** -> -> Unless otherwise specified, the changes described in this topic are ArkTS API changes. +> +> Unless otherwise specified, the changes described in this topic are ArkTS API changes. \ No newline at end of file diff --git a/en/release-notes/changelogs/v4.0-beta2/changelogs-bundlemanager.md b/en/release-notes/changelogs/v4.0-beta2/changelogs-bundlemanager.md new file mode 100644 index 0000000000000000000000000000000000000000..206de059331c6d510ee5ed20d3fbd1ff95b532a1 --- /dev/null +++ b/en/release-notes/changelogs/v4.0-beta2/changelogs-bundlemanager.md @@ -0,0 +1,148 @@ +# 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. diff --git a/en/release-notes/changelogs/v4.0-beta2/changelogs-device_manager.md b/en/release-notes/changelogs/v4.0-beta2/changelogs-device_manager.md new file mode 100644 index 0000000000000000000000000000000000000000..4bd289e48f3e8872b01f0444eef9a55ebda1dbda --- /dev/null +++ b/en/release-notes/changelogs/v4.0-beta2/changelogs-device_manager.md @@ -0,0 +1,54 @@ +# 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** release(): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** getTrustedDeviceListSync(): Array<DeviceInfo> | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** getTrustedDeviceList(callback:AsyncCallback<Array<DeviceInfo>>): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** getTrustedDeviceList(): Promise<Array<DeviceInfo>> | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** getLocalDeviceInfoSync(): DeviceInfo | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** getLocalDeviceInfo(callback:AsyncCallback<DeviceInfo>): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** getLocalDeviceInfo(): Promise<DeviceInfo> | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** getDeviceInfo(networkId: string, callback:AsyncCallback<DeviceInfo>): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** getDeviceInfo(networkId: string): Promise<DeviceInfo> | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** startDeviceDiscovery(subscribeInfo: SubscribeInfo): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** startDeviceDiscovery(subscribeInfo: SubscribeInfo, filterOptions?: string): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** stopDeviceDiscovery(subscribeId: number): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** publishDeviceDiscovery(publishInfo: PublishInfo): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** unPublishDeviceDiscovery(publishId: number): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** authenticateDevice(deviceInfo: DeviceInfo, authParam: AuthParam, callback: AsyncCallback<{deviceId: string, pinToken ?: number}>): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** unAuthenticateDevice(deviceInfo: DeviceInfo): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** verifyAuthInfo(authInfo: AuthInfo, callback: AsyncCallback<{deviceId: string, level: number}>): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** setUserOperation(operateAction: number, params: string): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** requestCredentialRegisterInfo(requestInfo: string, callback: AsyncCallback<{registerInfo: string}>): void; | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** importCredential(credentialInfo: string, callback: AsyncCallback<{resultInfo: string}>): void; | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** deleteCredential(queryInfo: string, callback: AsyncCallback<{resultInfo: string}>): void; | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** on(type: 'uiStateChange', callback: Callback<{ param: string}>): void; | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** off(type: 'uiStateChange', callback?: Callback<{ param: string}>): void; | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** on(type: 'deviceStateChange', callback: Callback<{ action: DeviceStateChangeAction, device: DeviceInfo }>): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** off(type: 'deviceStateChange', callback?: Callback<{ action: DeviceStateChangeAction, device: DeviceInfo }>): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** on(type: 'deviceFound', callback: Callback<{ subscribeId: number, device: DeviceInfo }>): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** off(type: 'deviceFound', callback?: Callback<{ subscribeId: number, device: DeviceInfo }>): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** on(type: 'discoverFail', callback: Callback<{ subscribeId: number, reason: number }>): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** off(type: 'discoverFail', callback?: Callback<{ subscribeId: number, reason: number }>): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** on(type: 'publishSuccess', callback: Callback<{ publishId: number }>): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** off(type: 'publishSuccess', callback?: Callback<{ publishId: number }>): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** on(type: 'publishFail', callback: Callback<{ publishId: number, reason: number }>): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** off(type: 'publishFail', callback?: Callback<{ publishId: number, reason: number }>): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** on(type: 'serviceDie', callback: () => void): void | ohos.permission.ACCESS_SERVICE_DM | +| \@ohos.distributedHardware.deviceManager | deviceManager | **function** off(type: 'serviceDie', callback?: () => void): void | ohos.permission.ACCESS_SERVICE_DM | + +**Adaptation Guide** + +Apply for the corresponding permissions for your application before these APIs are called. diff --git a/en/release-notes/changelogs/v4.0-beta2/changelogs-formfwk.md b/en/release-notes/changelogs/v4.0-beta2/changelogs-formfwk.md new file mode 100644 index 0000000000000000000000000000000000000000..5030ae2f2563f0c1d9fd401e3ea1df5658a0a12b --- /dev/null +++ b/en/release-notes/changelogs/v4.0-beta2/changelogs-formfwk.md @@ -0,0 +1,147 @@ +# 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, bundleName?: string): void; +function off(type: 'formAdd', observerCallback?: Callback, bundleName?: string): void; + +function on(type: 'formRemove', observerCallback: Callback, bundleName?: string): void; +function off(type: 'formRemove', observerCallback?: Callback, bundleName?: string): void; + +function on( + type: 'notifyVisible', + observerCallback: Callback>, + hostBundleName?: string + ): void; +function off( + type: 'notifyVisible', + observerCallback?: Callback>, + hostBundleName?: string + ): void; + +function on( + type: 'notifyInvisible', + observerCallback: Callback>, + hostBundleName?: string + ): void; +function off( + type: 'notifyInvisible', + observerCallback?: Callback>, + hostBundleName?: string + ): void; +``` + +After change: + +```js +function on(type: 'formAdd', observerCallback: Callback): void; +function on(type: 'formAdd', hostBundleName: string, observerCallback: Callback): void; +function off(type: 'formAdd', hostBundleName?: string, observerCallback?: Callback): void; + +function on(type: 'formRemove', observerCallback: Callback): void; +function on(type: 'formRemove', hostBundleName: string, observerCallback: Callback): void; +function off(type: 'formRemove', hostBundleName?: string, observerCallback?: Callback): void; + +function on(type: 'notifyVisible', observerCallback: Callback>): void; +function on( + type: 'notifyVisible', + hostBundleName: string, + observerCallback: Callback> + ): void; +function off( + type: 'notifyVisible', + hostBundleName?: string, + observerCallback?: Callback> + ): void; + +function on(type: 'notifyInvisible', observerCallback: Callback>): void; +function on( + type: 'notifyInvisible', + hostBundleName: string, + observerCallback: Callback>, + ): void; +function off( + type: 'notifyInvisible', + hostBundleName?: string, + observerCallback?: Callback> + ): 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); +``` diff --git a/en/release-notes/changelogs/v4.0-beta2/changelogs-miscdevice.md b/en/release-notes/changelogs/v4.0-beta2/changelogs-miscdevice.md new file mode 100644 index 0000000000000000000000000000000000000000..4b154fac09f038af063535958f49de21d4c521c6 --- /dev/null +++ b/en/release-notes/changelogs/v4.0-beta2/changelogs-miscdevice.md @@ -0,0 +1,80 @@ +# 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); +``` diff --git a/en/release-notes/changelogs/v4.0-beta2/changelogs-multimedia.md b/en/release-notes/changelogs/v4.0-beta2/changelogs-multimedia.md new file mode 100644 index 0000000000000000000000000000000000000000..596575cd74343c8135960c0bd6b4cc26cd5922bd --- /dev/null +++ b/en/release-notes/changelogs/v4.0-beta2/changelogs-multimedia.md @@ -0,0 +1,255 @@ +# 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): void; +getAudioEffectInfoArray(content: ContentType, usage: StreamUsage): Promise; +``` + +After change: + +```js +getAudioEffectInfoArray(usage: StreamUsage, callback: AsyncCallback): void; +getAudioEffectInfoArray(usage: StreamUsage): Promise; +``` + +**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: number): void | +| Media.AVPlayer | deselectTrack(index: number): void | +| Media.AVPlayer | getCurrentTrack(trackType: MediaType, callback: AsyncCallback<number>): void | +| Media.AVPlayer | getCurrentTrack(trackType: MediaType): Promise<number> | +| Media.AVPlayer | on(type: 'trackChange', callback: (index: number, isSelect: boolean) => void): void; | +| Media.AVPlayer | off(type: 'trackChange'): void | diff --git a/en/website.md b/en/website.md index 151e31c6a23d31b4ed9db5058a7552a7defcf8ab..0c01de036b17a84ca795113fae5cbd7f55feebd1 100644 --- a/en/website.md +++ b/en/website.md @@ -4,6 +4,7 @@ - [Glossary](glossary.md) - Release Notes - 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 3.x Releases - [OpenHarmony v3.2 Release (2023-04-09)](release-notes/OpenHarmony-v3.2-release.md) @@ -37,6 +38,53 @@ - [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) - 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 - JS API Differences - [Ability](release-notes/api-diff/v4.0-beta1/js-apidiff-ability.md) @@ -72,6 +120,7 @@ - [Compiler and Runtime](release-notes/changelogs/v4.0-beta1/changelogs-arkcompiler.md) - [ArkUI](release-notes/changelogs/v4.0-beta1/changelogs-arkui.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) - [Security - HUKS](release-notes/changelogs/v4.0-beta1/changelogs-huks.md) - [Resource Scheduler](release-notes/changelogs/v4.0-beta1/changelogs-resourceschedule.md)