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.
| 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| 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.
## 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.
## 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|
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.
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.
## 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**.
## 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:
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**.
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**.
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.
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.