# @ohos.multimedia.systemSoundManager (System Sound Management) (System API) The **systemSoundManager** module provides basic capabilities for managing system sounds, including setting and obtaining system ringtones and obtaining a player to play the system ringtones. > **NOTE** > > - The initial APIs of this module are supported since API version 10. Newly added APIs will be marked with a superscript to indicate their earliest API version. > - The APIs provided by this module are system APIs. ## Modules to Import ```ts import { systemSoundManager } from '@kit.AudioKit'; ``` ## Constants **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core | Name | Value | Description | |------------------------------------------|-----|---------| | TONE_CATEGORY_RINGTONE12+ | 1 | Ringtone. | | TONE_CATEGORY_TEXT_MESSAGE12+ | 2 | SMS alert tone.| | TONE_CATEGORY_NOTIFICATION12+ | 4 | Notification alert tone.| | TONE_CATEGORY_ALARM12+ | 8 | Alarm alert tone.| ## RingtoneType Enumerates the ringtone types. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core | Name | Value | Description | | ------------------------------- |----|------------------------------------------------------------------------| | RINGTONE_TYPE_DEFAULT(deprecated) | 0 | Default ringtone type.
This enumerated value is deprecated since API version 11. You are advised to use **RINGTONE_TYPE_SIM_CARD_0** instead.| | RINGTONE_TYPE_SIM_CARD_011+ | 0 | Ringtone of SIM card 1. | | RINGTONE_TYPE_MULTISIM(deprecated) | 1 | Multi-SIM ringtone type.
This enumerated value is deprecated since API version 11. You are advised to use **RINGTONE_TYPE_SIM_CARD_1** instead.| | RINGTONE_TYPE_SIM_CARD_111+ | 1 | Ringtone of SIM card 2. | ## SystemToneType11+ Enumerates the system alert tone types. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core | Name | Value | Description | | ------------------------------- |-----|------------| | SYSTEM_TONE_TYPE_SIM_CARD_0 | 0 | SMS alert tone of SIM card 1.| | SYSTEM_TONE_TYPE_SIM_CARD_1 | 1 | SMS alert tone of SIM card 2.| | SYSTEM_TONE_TYPE_NOTIFICATION | 32 | Notification alert tone. | ## ToneCustomizedType12+ Enumerates the tone customization types. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core | Name | Value | Description | | ----------------------------|-----|------------| | PRE_INSTALLED12+ | 0 | Preinstalled tone.| | CUSTOMIZED12+ | 1 | Customized tone.| ## ToneAttrs12+ Manages tone attributes. Before calling any API in **ToneAttrs12+**, you must use [createCustomizedToneAttrs](#systemsoundmanagercreatecustomizedtoneattrs12), [getDefaultRingtoneAttrs](#getdefaultringtoneattrs12), or [getRingtoneAttrList](#getringtoneattrlist12) to obtain a tone instance. ### getTitle12+ getTitle(): string Obtains the title of this tone. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Return value** | Type | Description | |--------|-----| | string | Title.| **Error codes** | ID | Error Message | |---------| -------------------- | | 202 | Caller is not a system application. | **Example** ```ts toneAttrs.getTitle(); ``` ### setTitle12+ setTitle(title: string): void Sets the title for this tone. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------| -------| ---- | ------------| | title | string | Yes | Title. | **Error codes** | ID| Error Message | |-------| -------------------- | | 202 | Caller is not a system application. | | 401 | The parameters check failed. | **Example** ```ts let toneAttrs = systemSoundManager.createCustomizedToneAttrs(); let title = 'text'; toneAttrs.setTitle(title); ``` ### getFileName12+ getFileName(): string Obtains the file name of this tone. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Return value** | Type | Description | |--------|------| | string | File name.| **Error codes** | ID| Error Message | |---------| -------------------- | | 202 | Caller is not a system application. | **Example** ```ts toneAttrs.getFileName(); ``` ### setFileName12+ setFileName(name: string): void Sets the file name for this tone. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name| Type | Mandatory| Description | | ------| -------|-----| ------------| | name | string | Yes | File name.| **Error codes** | ID| Error Message | |-------| -------------------- | | 202 | Caller is not a system application. | | 401 | The parameters check failed. | **Example** ```ts let toneAttrs = systemSoundManager.createCustomizedToneAttrs(); let fileName = 'textFileName'; toneAttrs.setFileName(fileName); ``` ### getUri12+ getUri(): string Obtains the URI of this tone. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Return value** | Type | Description | |--------|---------------------------------------------------------| | string | URI, for example, **'/data/storage/el2/base/RingTone/alarms/test.ogg'**.| **Error codes** | ID| Error Message | |---------| -------------------- | | 202 | Caller is not a system application. | **Example** ```ts toneAttrs.getUri(); ``` ### getCustomizedType12+ getCustomizedType(): string Obtains the tone customization type. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Return value** | Type | Description | |--------------------------------------------|---------| | [ToneCustomizedType](#tonecustomizedtype12) | Tone customization type.| **Error codes** | ID | Error Message | |---------| -------------------- | | 202 | Caller is not a system application. | **Example** ```ts toneAttrs.getCustomizedType(); ``` ### setCategory12+ setCategory(category: number): void Sets a category for this tone. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | |----------| ---------| ---- |----------| | category | number | Yes | Category of the tone. For details, see [Constants](#constants). | **Error codes** | ID| Error Message | |-------| -------------------- | | 202 | Caller is not a system application. | | 401 | The parameters check failed. | **Example** ```ts let toneAttrs = systemSoundManager.createCustomizedToneAttrs(); let categoryValue = systemSoundManager.TONE_CATEGORY_ALARM; // Change the value to the required constant. toneAttrs.setCategory(categoryValue); ``` ### getCategory12+ getCategory(): string Obtains the category of this tone. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Return value** | Type | Description | |--------|--------| | number | Category of the tone. For details, see [Constants](#constants).| **Error codes** | ID | Error Message | |---------| -------------------- | | 202 | Caller is not a system application. | **Example** ```ts toneAttrs.getCategory(); ``` ## ToneAttrsArray12+ type ToneAttrsArray = Array<[ToneAttrs](#toneattrs12)> Defines an array of tone attributes. **System capability**: SystemCapability.Multimedia.SystemSound.Core | Type | Description | |----------------------------------------|---------| | Array<[ToneAttrs](#toneattrs12)> | Array of tone attributes.| ## systemSoundManager.createCustomizedToneAttrs12+ createCustomizedToneAttrs(): ToneAttrs Creates customized tone attributes. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Return value** | Type | Description | |---------------------------| ------------ | | [ToneAttrs](#toneattrs12) | Class for tone attributes.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID | Error Message | |---------| -------------------- | | 202 | Caller is not a system application. | **Example** ```ts let toneAttrs: systemSoundManager.ToneAttrs = systemSoundManager.createCustomizedToneAttrs(); ``` ## ToneHapticsFeature13+ Enumerates the haptics styles for system ringtones. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core | Name | Value| Description | | ----------------------------- | -- | -------------------- | | STANDARD| 0 | Standard haptics style.| | GENTLE | 1 | Gentle haptics style.| ## ToneHapticsType14+ Enumerates the haptics types for system ringtones. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core | Name | Value| Description | | ------------------------|----|--------| | CALL_SIM_CARD_0 | 0 | Haptic feedback with the ringtone for an incoming call on SIM card 1.| | CALL_SIM_CARD_1 | 1 | Haptic feedback with the ringtone for an incoming call on SIM card 2.| | TEXT_MESSAGE_SIM_CARD_0 | 20 | Haptic feedback with the ringtone for an incoming message on SIM card 1.| | TEXT_MESSAGE_SIM_CARD_1 | 21 | Haptic feedback with the ringtone for an incoming message on SIM card 2.| | NOTIFICATION | 40 | Haptic feedback with the notification tone.| ## ToneHapticsMode14+ Enumerates the haptics modes in system ringtone scenarios. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core | Name | Value| Description | | ----------------------------- | -- | -------------------- | | NONE | 0 | No haptics.| | SYNC | 1 | Sync mode, where the haptic feedback is aligned with the system ringtone.| | NON_SYNC | 2 | Non-sync mode, where the haptic feedback is not aligned with the system ringtone.| ## ToneHapticsSettings14+ Describes the haptics settings of a system ringtone. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core | Name | Type| Read-Only| Optional| Description | | ------------ | -- | -- | -- | -------------------- | | mode | [ToneHapticsMode](#tonehapticsmode14) | No| No| Haptics mode.| | hapticsUri | string | No| Yes| URI of the haptics resource. The URI, obtained by calling [getToneHapticsList](#gettonehapticslist14), is valid only in the non-sync mode and should be ignored in other haptics modes.| ## ToneHapticsAttrs14+ Manages haptics attributes of system ringtones. Before calling any API in **ToneHapticsAttrs14+**, you must call [getToneHapticsList](#gettonehapticslist14) or [getHapticsAttrsSyncedWithTone](#gethapticsattrssyncedwithtone14) to obtain an instance. ### getUri14+ getUri(): string Obtains the URI of this haptics resource. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Return value** | Type | Description | |--------|-----| | string | URI, for example, **'/data/storage/el2/base/haptics/synchronized/alarms/test.json'**.| **Error codes** | ID | Error Message | |---------| -------------------- | | 202 | Caller is not a system application. | **Example** ```ts toneHapticsAttrs.getUri(); ``` ### getTitle14+ getTitle(): string Obtains the title of this haptics resource. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Return value** | Type | Description | |--------|-----| | string | Title.| **Error codes** | ID | Error Message | |---------| -------------------- | | 202 | Caller is not a system application. | **Example** ```ts toneHapticsAttrs.getTitle(); ``` ### getFileName14+ getFileName(): string Obtains the file name of this haptics resource. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Return value** | Type | Description | |--------|-----| | string | File name.| **Error codes** | ID | Error Message | |---------| -------------------- | | 202 | Caller is not a system application. | **Example** ```ts toneHapticsAttrs.getFileName(); ``` ## ToneHapticsAttrsArray14+ type ToneHapticsAttrsArray = Array<ToneHapticsAttrs> Describes the haptics attribute array of a system ringtone. **System capability**: SystemCapability.Multimedia.SystemSound.Core | Type | Description | |----------------------------------------|---------| | Array<[ToneHapticsAttrs](#tonehapticsattrs14)> | Array of haptics attributes.| ## systemSoundManager.getSystemSoundManager getSystemSoundManager(): SystemSoundManager Obtains a system sound manager. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Return value** | Type | Description | | ----------------------------- | ------------ | | [SystemSoundManager](#systemsoundmanager) | System sound manager obtained.| **Example** ```ts let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); ``` ## SystemSoundManager Provides APIs to manage system sounds. Before calling any API in **SystemSoundManager**, you must use [getSystemSoundManager](#systemsoundmanagergetsystemsoundmanager) to create a **SystemSoundManager** instance. ### setSystemRingtoneUri(deprecated) setSystemRingtoneUri(context: Context, uri: string, type: RingtoneType, callback: AsyncCallback<void>): void Sets a URI for a system ringtone. This API uses an asynchronous callback to return the result. > **NOTE** > > This API is supported since API version 10 and deprecated since API version 11. You are advised to use [setRingtoneUri](#setringtoneuri11) instead. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ---------------------------------------- | ---- | ------------------------ | | context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | Yes | Application context. | | uri | string | Yes | URI of the system ringtone. For details about supported resources, see [media.AVPlayer](../apis-media-kit/js-apis-media.md#avplayer9).| | type | [RingtoneType](#ringtonetype) | Yes | Type of the system ringtone. | | callback | AsyncCallback<void> | Yes | Callback used to return the result. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: Context = getContext(this); let uri = 'file://data/test.wav'; // Set the URI of the target tone file. let type: systemSoundManager.RingtoneType = systemSoundManager.RingtoneType.RINGTONE_TYPE_DEFAULT; let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.setSystemRingtoneUri(context, uri, type, (err: BusinessError) => { if (err) { console.error(`Failed to set system ringtone uri. ${err}`); return; } console.info(`Callback invoked to indicate a successful setting of the system ringtone uri.`); }); ``` ### setSystemRingtoneUri(deprecated) setSystemRingtoneUri(context: Context, uri: string, type: RingtoneType): Promise<void> Sets a URI for a system ringtone. This API uses a promise to return the result. > **NOTE** > > This API is supported since API version 10 and deprecated since API version 11. You are advised to use [setRingtoneUri](#setringtoneuri11) instead. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ---------------------------------------- | ---- | ------------------------ | | context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | Yes | Application context. | | uri | string | Yes | URI of the system ringtone. For details about supported resources, see [media.AVPlayer](../apis-media-kit/js-apis-media.md#avplayer9).| | type | [RingtoneType](#ringtonetype) | Yes | Type of the system ringtone. | **Return value** | Type | Description | | ------------------- | ------------------------------- | | Promise<void> | Promise used to return the result. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: Context = getContext(this); let uri = 'file://data/test.wav'; // Set the URI of the target tone file. let type: systemSoundManager.RingtoneType = systemSoundManager.RingtoneType.RINGTONE_TYPE_DEFAULT; let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.setSystemRingtoneUri(context, uri, type).then(() => { console.info(`Promise returned to indicate a successful setting of the system ringtone uri.`); }).catch ((err: BusinessError) => { console.error(`Failed to set the system ringtone uri ${err}`); }); ``` ### getSystemRingtoneUri(deprecated) getSystemRingtoneUri(context: Context, type: RingtoneType, callback: AsyncCallback<string>): void Obtains the URI of a system ringtone. This API uses an asynchronous callback to return the result. > **NOTE** > > This API is supported since API version 10 and deprecated since API version 11. You are advised to use [getRingtoneUri](#getringtoneuri11) instead. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- |-----------------------------------------------------------------------| ---- | ------------------------ | | context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | Yes | Application context. | | type | [RingtoneType](#ringtonetype) | Yes | Type of the system ringtone. | | callback | AsyncCallback<string> | Yes | Callback used to return the URI obtained.| **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: Context = getContext(this); let type: systemSoundManager.RingtoneType = systemSoundManager.RingtoneType.RINGTONE_TYPE_DEFAULT; let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.getSystemRingtoneUri(context, type, (err: BusinessError, value: string) => { if (err) { console.error(`Failed to get system ringtone uri. ${err}`); return; } console.info(`Callback invoked to indicate the value of the system ringtone uri is obtained ${value}.`); }); ``` ### getSystemRingtoneUri(deprecated) getSystemRingtoneUri(context: Context, type: RingtoneType): Promise<string> Obtains the URI of a system ringtone. This API uses a promise to return the result. > **NOTE** > > This API is supported since API version 10 and deprecated since API version 11. You are advised to use [getRingtoneUri](#getringtoneuri11) instead. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- |----------------------------------------------------------------------| ---- | ------------------------ | | context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | Yes | Application context. | | type | [RingtoneType](#ringtonetype) | Yes | Type of the system ringtone. | **Return value** | Type | Description | | ------------------- | ---------------------------------- | | Promise<string> | Promise used to return the URI obtained.| **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: Context = getContext(this); let type: systemSoundManager.RingtoneType = systemSoundManager.RingtoneType.RINGTONE_TYPE_DEFAULT; let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.getSystemRingtoneUri(context, type).then((value: string) => { console.info(`Promise returned to indicate that the value of the system ringtone uri is obtained ${value}.`); }).catch ((err: BusinessError) => { console.error(`Failed to get the system ringtone uri ${err}`); }); ``` ### getSystemRingtonePlayer(deprecated) getSystemRingtonePlayer(context: Context, type: RingtoneType, callback: AsyncCallback<RingtonePlayer>): void Obtains a player to play a system ringtone. This API uses an asynchronous callback to return the result. > **NOTE** > > This API is supported since API version 10 and deprecated since API version 11. You are advised to use [getRingtonePlayer](#getringtoneplayer11) instead. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | -----------------------------------------| ---- | --------------------------- | | context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | Yes | Application context. | | type | [RingtoneType](#ringtonetype) | Yes | Type of the system ringtone.| | callback | AsyncCallback<[RingtonePlayer](js-apis-inner-multimedia-ringtonePlayer-sys.md#ringtoneplayer)> | Yes| Callback used to return the player obtained.| **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: Context = getContext(this); let type: systemSoundManager.RingtoneType = systemSoundManager.RingtoneType.RINGTONE_TYPE_DEFAULT; let systemRingtonePlayer: systemSoundManager.RingtonePlayer | undefined = undefined; let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.getSystemRingtonePlayer(context, type, (err: BusinessError, value: systemSoundManager.RingtonePlayer) => { if (err) { console.error(`Failed to get system ringtone player. ${err}`); return; } console.info(`Callback invoked to indicate the value of the system ringtone player is obtained.`); systemRingtonePlayer = value; }); ``` ### getSystemRingtonePlayer(deprecated) getSystemRingtonePlayer(context: Context, type: RingtoneType): Promise<RingtonePlayer> Obtains a player to play a system ringtone. This API uses a promise to return the result. > **NOTE** > > This API is supported since API version 10 and deprecated since API version 11. You are advised to use [getRingtonePlayer](#getringtoneplayer11) instead. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- |---------------------------------------------------------------------| ---- | --------------------------- | | context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | Yes | Application context. | | type | [RingtoneType](#ringtonetype) | Yes | Type of the system ringtone.| **Return value** | Type | Description | | ------------------- | ------------------------------- | | Promise<[RingtonePlayer](js-apis-inner-multimedia-ringtonePlayer-sys.md#ringtoneplayer)> | Promise used to return the player obtained.| **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: Context = getContext(this); let type: systemSoundManager.RingtoneType = systemSoundManager.RingtoneType.RINGTONE_TYPE_DEFAULT; let systemRingtonePlayer: systemSoundManager.RingtonePlayer | undefined = undefined; let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.getSystemRingtonePlayer(context, type).then((value: systemSoundManager.RingtonePlayer) => { console.info(`Promise returned to indicate that the value of the system ringtone player is obtained.`); systemRingtonePlayer = value; }).catch ((err: BusinessError) => { console.error(`Failed to get the system ringtone player ${err}`); }); ``` ### setRingtoneUri11+ setRingtoneUri(context: BaseContext, uri: string, type: RingtoneType): Promise<void> Sets a URI for a system ringtone. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- |-------------------------------| ---- | ------------------------ | | context | [BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md) | Yes | Application context. | | uri | string | Yes | URI of the system ringtone. For details about supported resources, see [media.AVPlayer](../apis-media-kit/js-apis-media.md#avplayer9).| | type | [RingtoneType](#ringtonetype) | Yes | Type of the system ringtone. | **Return value** | Type | Description | | ------------------- | ------------------------------- | | Promise<void> | Promise used to return the result. | **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID| Error Message | | ------- | --------------------- | | 202 | Caller is not a system application. | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | | 5400103 | I/O error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: common.BaseContext = getContext(this); let uri = 'file://data/test.wav'; // Set the URI of the target tone file. let type: systemSoundManager.RingtoneType = systemSoundManager.RingtoneType.RINGTONE_TYPE_SIM_CARD_0; let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.setRingtoneUri(context, uri, type).then(() => { console.info(`Promise returned to indicate a successful setting of the system ringtone uri.`); }).catch ((err: BusinessError) => { console.error(`Failed to set the system ringtone uri ${err}`); }); ``` ### getRingtoneUri11+ getRingtoneUri(context: BaseContext, type: RingtoneType): Promise<string> Obtains the URI of a system ringtone. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | -------------------------------| ---- | ------------------------ | | context | [BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md)| Yes | Application context. | | type | [RingtoneType](#ringtonetype) | Yes | Type of the system ringtone. | **Return value** | Type | Description | | ------------------- | ---------------------------------- | | Promise<string> | Promise used to return the URI obtained.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID| Error Message | | -------- | --------------------- | | 202 | Caller is not a system application. | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | | 5400103 | I/O error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: common.BaseContext = getContext(this); let type: systemSoundManager.RingtoneType = systemSoundManager.RingtoneType.RINGTONE_TYPE_SIM_CARD_0; let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.getRingtoneUri(context, type).then((value: string) => { console.info(`Promise returned to indicate that the value of the system ringtone uri is obtained ${value}.`); }).catch ((err: BusinessError) => { console.error(`Failed to get the system ringtone uri ${err}`); }); ``` ### getRingtonePlayer11+ getRingtonePlayer(context: BaseContext, type: RingtoneType): Promise<RingtonePlayer> Obtains a player to play a system ringtone. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | --------------------------------| ---- | --------------------------- | | context | [BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md) | Yes | Application context. | | type | [RingtoneType](#ringtonetype) | Yes | Type of the system ringtone.| **Return value** | Type | Description | | ------------------- | ------------------------------- | | Promise<[RingtonePlayer](js-apis-inner-multimedia-ringtonePlayer-sys.md#ringtoneplayer)> | Promise used to return the player obtained.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID| Error Message | | -------- | --------------------- | | 202 | Caller is not a system application. | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: common.BaseContext = getContext(this); let type: systemSoundManager.RingtoneType = systemSoundManager.RingtoneType.RINGTONE_TYPE_SIM_CARD_0; let systemRingtonePlayer: systemSoundManager.RingtonePlayer | undefined = undefined; let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.getRingtonePlayer(context, type).then((value: systemSoundManager.RingtonePlayer) => { console.info(`Promise returned to indicate that the value of the system ringtone player is obtained.`); systemRingtonePlayer = value; }).catch ((err: BusinessError) => { console.error(`Failed to get the system ringtone player ${err}`); }); ``` ### setSystemToneUri11+ setSystemToneUri(context: BaseContext, uri: string, type: SystemToneType): Promise<void> Sets a URI for a system alert tone. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- |-------------------------------------| ---- | ------------------------ | | context | [BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md) | Yes | Application context. | | uri | string | Yes | URI of the system alert tone. For details about supported resources, see [media.AVPlayer](../apis-media-kit/js-apis-media.md#avplayer9).| | type | [SystemToneType](#systemtonetype11) | Yes | Type of the system alert tone. | **Return value** | Type | Description | | ------------------- | ------------------------------- | | Promise<void> | Promise used to return the result. | **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID| Error Message | | ------- | --------------------- | | 202 | Caller is not a system application. | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | | 5400103 | I/O error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: common.BaseContext = getContext(this); let uri = 'file://data/test.wav'; // Set the URI of the target tone file. let type: systemSoundManager.SystemToneType = systemSoundManager.SystemToneType.SYSTEM_TONE_TYPE_SIM_CARD_0; let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.setSystemToneUri(context, uri, type).then(() => { console.info(`Promise returned to indicate a successful setting of the system tone uri.`); }).catch ((err: BusinessError) => { console.error(`Failed to set the system tone uri ${err}`); }); ``` ### getSystemToneUri11+ getSystemToneUri(context: BaseContext, type: SystemToneType): Promise<string> Obtains the URI of a system alert tone. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- |-------------------------------------| ---- | ------------------------ | | context | [BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md) | Yes | Application context. | | type | [SystemToneType](#systemtonetype11) | Yes | Type of the system alert tone. | **Return value** | Type | Description | | ------------------- | ---------------------------------- | | Promise<string> | Promise used to return the URI obtained.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID| Error Message | | ------- | --------------------- | | 202 | Caller is not a system application. | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | | 5400103 | I/O error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: common.BaseContext = getContext(this); let type: systemSoundManager.SystemToneType = systemSoundManager.SystemToneType.SYSTEM_TONE_TYPE_SIM_CARD_0; let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.getSystemToneUri(context, type).then((value: string) => { console.info(`Promise returned to indicate that the value of the system tone uri is obtained ${value}.`); }).catch ((err: BusinessError) => { console.error(`Failed to get the system tone uri ${err}`); }); ``` ### getSystemTonePlayer11+ getSystemTonePlayer(context: BaseContext, type: SystemToneType): Promise<SystemTonePlayer> Obtains a player to play a system alert tone. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- |-------------------------------------| ---- | --------------------------- | | context | [BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md) | Yes | Application context. | | type | [SystemToneType](#systemtonetype11) | Yes | Type of the system alert tone.| **Return value** | Type | Description | |--------------------------------------------------------------------------------------------------| ------------------------------- | | Promise<[SystemTonePlayer](js-apis-inner-multimedia-systemTonePlayer-sys.md#systemtoneplayer)> | Promise used to return the player obtained.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID| Error Message | | ------- | --------------------- | | 202 | Caller is not a system application. | | 401 | Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: common.BaseContext = getContext(this); let type: systemSoundManager.SystemToneType = systemSoundManager.SystemToneType.SYSTEM_TONE_TYPE_SIM_CARD_0; let systemTonePlayer: systemSoundManager.SystemTonePlayer | undefined = undefined; let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.getSystemTonePlayer(context, type).then((value: systemSoundManager.SystemTonePlayer) => { console.info(`Promise returned to indicate that the value of the system tone player is obtained.`); systemTonePlayer = value; }).catch ((err: BusinessError) => { console.error(`Failed to get the system tone player ${err}`); }); ``` ### getDefaultRingtoneAttrs12+ getDefaultRingtoneAttrs(context: BaseContext, type: RingtoneType): Promise<ToneAttrs> Obtains the attributes of the default system ringtone. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- |-------------------------------------| ---- | --------------------------- | | context |[BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md) | Yes | Application context. | | type |[RingtoneType](#ringtonetype) | Yes | Type of the system ringtone. | **Return value** | Type | Description | |------------------------------------------|---------------------| | Promise<[ToneAttrs](#toneattrs12)> | Promise used to return the attributes of the default system ringtone.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID| Error Message | | ------- | --------------------- | | 202 | Caller is not a system application. | | 401 | The parameters check failed. | | 5400103 | I/O error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: common.BaseContext = getContext(this); let type: systemSoundManager.RingtoneType = systemSoundManager.RingtoneType.RINGTONE_TYPE_SIM_CARD_0; let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.getDefaultRingtoneAttrs(context, type).then((value: systemSoundManager.ToneAttrs) => { console.info(`Promise returned to indicate that the value of the attributes of the default ringtone is obtained.`); }).catch ((err: BusinessError) => { console.error(`Failed to get the default ring tone attrs ${err}`); }); ``` ### getRingtoneAttrList12+ getRingtoneAttrList(context: BaseContext, type: RingtoneType): Promise<ToneAttrsArray> Obtains the list of attributes of the default system ringtone. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- |-------------------------------------| ---- | --------------------------- | | context |[BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md) | Yes | Application context. | | type |[RingtoneType](#ringtonetype) | Yes | Type of the system ringtone. | **Return value** | Type | Description | |----------------------------------------------------|-----------------------| | Promise<[ToneAttrsArray](#toneattrsarray12)> | Promise used to return an array of the attributes of the default system ringtone.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID| Error Message | | ------- | --------------------- | | 202 | Caller is not a system application. | | 401 | The parameters check failed. | | 5400103 | I/O error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: common.BaseContext = getContext(this); let type: systemSoundManager.RingtoneType = systemSoundManager.RingtoneType.RINGTONE_TYPE_SIM_CARD_0; let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.getRingtoneAttrList(context, type).then((value: systemSoundManager.ToneAttrsArray) => { console.info(`Promise returned to indicate that the value of the attribute list of ringtone is obtained.`); }).catch ((err: BusinessError) => { console.error(`Failed to get the attribute list of ringtone ${err}`); }); ``` ### getDefaultSystemToneAttrs12+ getDefaultSystemToneAttrs(context: BaseContext, type: SystemToneType): Promise<ToneAttrs> Obtains the attributes of the default system alert tone. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- |-----------------------------------------------------------------------------| ---- | --------------------------- | | context | [BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md) | Yes | Application context. | | type | [SystemToneType](#systemtonetype11) | Yes | Type of the system alert tone.| **Return value** | Type | Description | |-----------------------------------------|----------------------| | Promise<[ToneAttrs](#toneattrs12)> | Promise used to return the attributes of the default system alert tone.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID| Error Message | | ------- | --------------------- | | 202 | Caller is not a system application. | | 401 | The parameters check failed. | | 5400103 | I/O error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: common.BaseContext = getContext(this); let type: systemSoundManager.SystemToneType = systemSoundManager.SystemToneType.SYSTEM_TONE_TYPE_SIM_CARD_0; let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.getDefaultSystemToneAttrs(context, type).then((value: systemSoundManager.ToneAttrs) => { console.info(`Promise returned to indicate that the value of the attributes of the system ringtone is obtained.`); }).catch ((err: BusinessError) => { console.error(`Failed to get the system tone attrs ${err}`); }); ``` ### getSystemToneAttrList12+ getSystemToneAttrList(context: BaseContext, type: SystemToneType): Promise<ToneAttrsArray> Obtains the list of attributes of the default system alert tone. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- |-----------------------------------------------------------------------------| ---- | --------------------------- | | context | [BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md) | Yes | Application context. | | type | [SystemToneType](#systemtonetype11) | Yes | Type of the system alert tone. | **Return value** | Type | Description | |---------------------------------------------------|------------------------| | Promise<[ToneAttrsArray](#toneattrsarray12)> | Promise used to return an array of the attributes of the default system alert tone.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID| Error Message | | ------- | --------------------- | | 202 | Caller is not a system application. | | 401 | The parameters check failed. | | 5400103 | I/O error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: common.BaseContext = getContext(this); let type: systemSoundManager.SystemToneType = systemSoundManager.SystemToneType.SYSTEM_TONE_TYPE_SIM_CARD_0; let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.getSystemToneAttrList(context, type).then((value: systemSoundManager.ToneAttrsArray) => { console.info(`Promise returned to indicate that the value of the attribute list of system tone is obtained.`); }).catch ((err: BusinessError) => { console.error(`Failed to get the attribute list of system tone ${err}`); }); ``` ### getDefaultAlarmToneAttrs12+ getDefaultAlarmToneAttrs(context: BaseContext): Promise<ToneAttrs> Obtains the attributes of the default alarm alert tone. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | --------|------------| ---- |-----------| | context | [BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md) | Yes | Application context.| **Return value** | Type | Description | |-----------------------------------------|---------------------| | Promise<[ToneAttrs](#toneattrs12)> | Promise used to return the attributes of the default alarm alert tone.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID| Error Message | | ------- | --------------------- | | 202 | Caller is not a system application. | | 401 | The parameters check failed. | | 5400103 | I/O error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: common.BaseContext = getContext(this); let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.getDefaultAlarmToneAttrs(context).then((value: systemSoundManager.ToneAttrs) => { console.info(`Promise returned to indicate that the value of the attributes of the default alarm tone is obtained.`); }).catch ((err: BusinessError) => { console.error(`Failed to get the default alarm tone attrs ${err}`); }); ``` ### setAlarmToneUri12+ setAlarmToneUri(context: Context, uri: string): Promise<void> Sets a URI for an alarm alert tone. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | --------- | ---- |--------------------------| | context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | Yes | Application context. | | uri | string | Yes | URI of the alarm alert tone. For details about supported resources, see [media.AVPlayer](../apis-media-kit/js-apis-media.md#avplayer9).| **Return value** | Type | Description | | ------------------- |----------------------| | Promise<void> | Promise used to return the result. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: Context = getContext(this); let uri = 'file://data/test.wav'; // Set the URI of the target tone file. let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.setAlarmToneUri(context, uri).then(() => { console.info(`Promise returned to indicate a successful setting of the alarm tone uri.`); }).catch ((err: BusinessError) => { console.error(`Failed to set the alarm tone uri ${err}`); }); ``` ### getAlarmToneUri12+ getAlarmToneUri(context: Context): Promise<string> Obtains the URI of an alarm alert tone. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | --------| ---- |-----------------| | context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | Yes | Application context. | **Return value** | Type | Description | |-----------------------|-----------------------| | Promise<string> | Promise used to return the URI of the alarm alert tone.| **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: Context = getContext(this); let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.getAlarmToneUri(context).then((value: string) => { console.info(`Promise returned to indicate that the value of alarm tone uri.`); }).catch ((err: BusinessError) => { console.error(`Failed to get the alarm tone uri ${err}`); }); ``` ### getAlarmToneAttrList12+ getAlarmToneAttrList(context: BaseContext): Promise<ToneAttrsArray> Obtains the list of attributes of alarm alert tones. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- |--------------| ---- | --------------------------- | | context | [BaseContext](../apis-ability-kit/js-apis-inner-application-baseContext.md) | Yes | Application context. | **Return value** | Type | Description | |----------------------------------------------------|----------------------| | Promise<[ToneAttrsArray](#toneattrsarray12)> | Promise used to return an array of the attributes of the alarm alert tones.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID| Error Message | | ------- | --------------------- | | 202 | Caller is not a system application. | | 401 | The parameters check failed. | | 5400103 | I/O error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: common.BaseContext = getContext(this); let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.getAlarmToneAttrList(context).then((value: systemSoundManager.ToneAttrsArray) => { console.info(`Promise returned to indicate that the value of the attribute list of alarm tone is obtained.`); }).catch ((err: BusinessError) => { console.error(`Failed to get the attribute list of alarm tone ${err}`); }); ``` ### openAlarmTone12+ openAlarmTone(context: Context, uri: string): Promise<number> Enables an alarm alert tone. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ---------| ---- |-------------------------------------------------------------------------------------| | context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | Yes | Application context. | | uri | string | Yes | URI of the alarm alert tone. For details about supported resources, see [media.AVPlayer](../apis-media-kit/js-apis-media.md#avplayer9).| **Return value** | Type | Description | |-----------------------|----------------| | Promise<number> | Promise used to return the FD.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID| Error Message | | ------- | --------------------- | | 202 | Caller is not a system application. | | 401 | The parameters check failed. | | 5400103 | I/O error. | | 20700001 | Tone type mismatch, e.g. tone of uri is notification instead of alarm. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: Context = getContext(this); let uri = 'file://data/test.wav'; // Set the URI of the target tone file. let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.openAlarmTone(context, uri).then((value: number) => { console.info(`Promise returned to indicate the value of fd.`); }).catch ((err: BusinessError) => { console.error(`Failed to open alarm tone ${err}`); }); ``` ### close12+ close(fd: number): Promise<void> Disables an alarm alert tone. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name| Type | Mandatory| Description | |-----| --------| ---- |----------------------------------------------| | fd | number | Yes | File descriptor, which is obtained through [openAlarmTone](#openalarmtone12).| **Return value** | Type | Description | |---------------------|----------------| | Promise<void> | Promise used to return the result.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID| Error Message | | ------- | --------------------- | | 202 | Caller is not a system application. | | 401 | The parameters check failed. | | 5400103 | I/O error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: Context = getContext(this); let fd = 50; // Use the FD of the target alarm alert tone. let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.close(fd).then(() => { console.info(`Promise returned to indicate that the fd has been close.`); }).catch ((err: BusinessError) => { console.error(`Failed to close fd ${err}`); }); ``` ### addCustomizedTone12+ addCustomizedTone(context: BaseContext, toneAttr: ToneAttrs, externalUri: string): Promise<string> Adds a customized tone with a given URI to the tone library. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name| Type | Mandatory| Description | |-----|-----------| ---- |---------------| | context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | Yes | Application context. | | toneAttr | ToneAttrs | Yes | Attributes of the tone. | | externalUri | string | Yes | URI of the tone in the external storage device.| **Return value** | Type | Description | |-----------------------|-------------------------| | Promise<string> | Promise used to return the URI of the tone in the tone library.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID | Error Message | |---------| -------------------- | | 201 | Permission denied. | | 202 | Caller is not a system application. | | 401 | The parameters check failed. | | 5400102 | Operation is not allowed, e.g. ringtone to add is not customized. | | 5400103 | I/O error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: Context = getContext(this); let title = 'test'; // Set the title of the target tone. let fileName = 'displayName_test'; // Set the file name of the target tone. let categoryValue = systemSoundManager.TONE_CATEGORY_ALARM; let toneAttrs = systemSoundManager.createCustomizedToneAttrs(); toneAttrs.setTitle(title); toneAttrs.setFileName(fileName); toneAttrs.setCategory(categoryValue); let path = 'file://data/test.ogg'; // Set the URI of the target tone. let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.addCustomizedTone(context, toneAttrs, path).then((value: string) => { console.info(`Promise returned to indicate that the value of tone uri in ringtone library.`); }).catch ((err: BusinessError) => { console.error(`Failed to add customized tone ${err}`); }); ``` ### addCustomizedTone12+ addCustomizedTone(context: BaseContext, toneAttr: ToneAttrs, fd: number, offset?: number, length?: number): Promise<string> Adds a customized tone with a given FD to the tone library. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name| Type | Mandatory| Description | |-----|-----------|----|------------------------------------------------------------------------| | context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | Yes | Application context. | | toneAttr | [ToneAttrs](#toneattrs12) | Yes | Attributes of the tone. | | fd | number | Yes | File descriptor, which is obtained by calling [fs.open](../apis-core-file-kit/js-apis-file-fs.md#fsopen).| | offset | number | No | Offset from which the data is read, in bytes. The default value is **0**. | | length | number | No | Length of the data to read, in bytes. By default, the length is the total number of remaining bytes after the offset. | **Return value** | Type | Description | |-----------------------|-------------------------| | Promise<string> | Promise used to return the URI of the tone in the tone library.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID | Error Message | |---------| -------------------- | | 201 | Permission denied. | | 202 | Caller is not a system application. | | 401 | The parameters check failed. | | 5400102 | Operation is not allowed, e.g. ringtone to add is not customized. | | 5400103 | I/O error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: Context = getContext(this); let title = 'test'; // Set the title of the target tone. let fileName = 'displayName_test'; // Set the file name of the target tone. let categoryValue = systemSoundManager.TONE_CATEGORY_ALARM; let toneAttrs = systemSoundManager.createCustomizedToneAttrs(); toneAttrs.setTitle(title); toneAttrs.setFileName(fileName); toneAttrs.setCategory(categoryValue); let fd = 10; // Set the FD of the target tone. let offset = 0; // Set the offset. let length = 50; // Set the data length. let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.addCustomizedTone(context, toneAttrs, fd, offset, length).then((value: string) => { console.info(`Promise returned to indicate that the value of tone uri in ringtone library.`); }).catch ((err: BusinessError) => { console.error(`Failed to add customized tone ${err}`); }); ``` ### removeCustomizedTone12+ removeCustomizedTone(context: BaseContext, uri: string): Promise<void> Removes a custom tone from the one library. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name| Type | Mandatory| Description | |-----|-----------| ---- |---------------------------------------------------------------------------------------------------------| | context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | Yes | Application context. | | uri | string | Yes | Tone URI, which is obtained by using [addCustomizedTone](#addcustomizedtone12) or [getAlarmToneAttrList](#getalarmtoneattrlist12).| **Return value** | Type | Description | |---------------------|-----------------------| | Promise<void> | Promise used to return the result.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID | Error Message | |---------| -------------------- | | 201 | Permission denied. | | 202 | Caller is not a system application. | | 401 | The parameters check failed. | | 5400102 | Operation is not allowed, e.g. ringtone to add is not customized. | | 5400103 | I/O error. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: Context = getContext(this); let uri = 'file://data/test.wav'; // Set the URI of the target tone file. let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.removeCustomizedTone(context, uri).then(() => { console.info(`Promise returned to indicate that the customized tone has been deleted.`); }).catch ((err: BusinessError) => { console.error(`Failed to delete customized tone ${err}`); }); ``` ### getToneHapticsSettings14+ getToneHapticsSettings(context: BaseContext, type: ToneHapticsType): Promise<ToneHapticsSettings> Obtains the haptics settings of the system ringtone. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name| Type | Mandatory| Description | |-----|-----------| ---- |----------------------------------------------------------------------------------| | context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | Yes | Application context. | | type | [ToneHapticsType](#tonehapticstype14) | Yes | Haptics type of the system ringtone.| **Return value** | Type | Description | |---------------------|-----------------------| | Promise<[ToneHapticsSettings](#tonehapticssettings14)> | Promise used to return the haptics settings.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID | Error Message | |---------| -------------------- | | 202 | Caller is not a system application. | | 401 | The parameters check failed. | | 5400103 | I/O error. | | 20700003 | Unsupported operation. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: common.BaseContext = getContext(this); let type: systemSoundManager.ToneHapticsType = systemSoundManager.ToneHapticsType.CALL_SIM_CARD_0; let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.getToneHapticsSettings(context, type).then((value: systemSoundManager.ToneHapticsSettings) => { console.info(`Promise returned to indicate that the value of the tone haptics settings is obtained.`); }).catch ((err: BusinessError) => { console.error(`Failed to get the tone haptics settings ${err}`); }); ``` ### setToneHapticsSettings14+ setToneHapticsSettings(context: BaseContext, type: ToneHapticsType, settings: ToneHapticsSettings): Promise<void> Sets the haptics settings for the system ringtone. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name| Type | Mandatory| Description | |-----|-----------| ---- |----------------------------------------------------------------------------------| | context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | Yes | Application context. | | type | [ToneHapticsType](#tonehapticstype14) | Yes | Haptics type of the system ringtone.| | settings | [ToneHapticsSettings](#tonehapticssettings14) | Yes | Haptics settings of the system ringtone.| **Return value** | Type | Description | |---------------------|-----------------------| | Promise<void> | Promise used to return the result.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID | Error Message | |---------| -------------------- | | 202 | Caller is not a system application. | | 401 | The parameters check failed. | | 5400102 | Operation is not allowed, e.g. ringtone to add is not customized. | | 5400103 | I/O error. | | 20700003 | Unsupported operation. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: common.BaseContext = getContext(this); let type: systemSoundManager.ToneHapticsType = systemSoundManager.ToneHapticsType.CALL_SIM_CARD_0; let toneHapticsSettings: systemSoundManager.ToneHapticsSettings = { mode: systemSoundManager.ToneHapticsMode.NON_SYNC, hapticsUri: '/data/storage/el2/base/haptics/synchronized/alarms/test.json', // Use the URI obtained through getToneHapticsList. } let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.setToneHapticsSettings(context, type, toneHapticsSettings).then(() => { console.info(`Promise returned to indicate a successful setting of the tone haptics.`); }).catch ((err: BusinessError) => { console.error(`Failed to set the tone haptics settings ${err}`); }); ``` ### getToneHapticsList14+ getToneHapticsList(context: BaseContext, isSynced: boolean): Promise<ToneHapticsAttrsArray> Obtains the haptics attributes of the system ringtone in sync or non-sync mode. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name| Type | Mandatory| Description | |-----|-----------| ---- |----------------------------------------------------------------------------------| | context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | Yes | Application context. | | isSynced | boolean | Yes | Whether the haptics feedback is synchronized with the ringtone.| **Return value** | Type | Description | |---------------------|-----------------------| | Promise<[ToneHapticsAttrsArray](#tonehapticsattrsarray14)> | Promise used to return the haptics attributes.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID | Error Message | |---------| -------------------- | | 202 | Caller is not a system application. | | 401 | The parameters check failed. | | 5400103 | I/O error. | | 20700003 | Unsupported operation. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: common.BaseContext = getContext(this); let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.getToneHapticsList(context, false).then((value: systemSoundManager.ToneHapticsAttrsArray) => { console.info(`Promise returned to indicate that the value of the attribute list of tone haptics is obtained.`); }).catch ((err: BusinessError) => { console.error(`Failed to get the attribute list of tone haptics ${err}`); }); ``` ### getHapticsAttrsSyncedWithTone14+ getHapticsAttrsSyncedWithTone(context: BaseContext, toneUri: string): Promise<ToneHapticsAttrs> Obtains the attributes of the haptics feedback synchronized with the system ringtone. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name| Type | Mandatory| Description | |-----|-----------| ---- |----------------------------------------------------------------------------------| | context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | Yes | Application context. | | toneUri | string | Yes | URI of the system ringtone. The URI can be obtained by calling [getRingtoneAttrList](#getringtoneattrlist12) or [getSystemToneAttrList](#getsystemtoneattrlist12).| **Return value** | Type | Description | |---------------------|-----------------------| | Promise<[ToneHapticsAttrs](#tonehapticsattrs14)> | Promise used to return the haptics attributes.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID | Error Message | |---------| -------------------- | | 202 | Caller is not a system application. | | 401 | The parameters check failed. | | 5400102 | Operation is not allowed, e.g. ringtone to add is not customized. | | 5400103 | I/O error. | | 20700003 | Unsupported operation. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: common.BaseContext = getContext(this); let toneUri: string = '/data/storage/el2/base/RingTone/alarms/test.ogg'; // Use the actual URI of the system ringtone. let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.getHapticsAttrsSyncedWithTone(context, toneUri).then((value: systemSoundManager.ToneHapticsAttrs) => { console.info(`Promise returned to indicate that the value of the attribute of tone haptics is obtained.`); }).catch ((err: BusinessError) => { console.error(`Failed to get the attribute of tone haptics ${err}`); }); ``` ### openToneHaptics14+ openToneHaptics(context: Context, hapticsUri: string): Promise<number> Enables haptics for the system ringtone. This API uses a promise to return the result. **System API**: This is a system API. **System capability**: SystemCapability.Multimedia.SystemSound.Core **Parameters** | Name | Type | Mandatory| Description | | -------- | ---------| ---- |-------------------------------------------------------------------------------------| | context | [Context](../apis-ability-kit/js-apis-inner-application-context.md) | Yes | Application context. | | hapticsUri | string | Yes | URI of the haptics resource. For details about supported resources, see [media.AVPlayer](../apis-media-kit/js-apis-media.md#avplayer9).| **Return value** | Type | Description | |-----------------------|----------------| | Promise<number> | Promise used to return the FD.| **Error codes** For details about the error codes, see [Media Error Codes](../apis-media-kit/errorcode-media.md). | ID| Error Message | | ------- | --------------------- | | 202 | Caller is not a system application. | | 401 | The parameters check failed. | | 5400102 | Operation is not allowed, e.g. ringtone to add is not customized. | | 5400103 | I/O error. | | 20700003 | Unsupported operation. | **Example** ```ts import { BusinessError } from '@kit.BasicServicesKit'; import { common } from '@kit.AbilityKit'; let context: Context = getContext(this); let hapticsUri = '/data/storage/el2/base/haptics/synchronized/alarms/test.json'; // Use the actual URI of the haptics resource. let systemSoundManagerInstance: systemSoundManager.SystemSoundManager = systemSoundManager.getSystemSoundManager(); systemSoundManagerInstance.openToneHaptics(context, hapticsUri).then((value: number) => { console.info(`Promise returned to indicate the value of fd.`); }).catch ((err: BusinessError) => { console.error(`Failed to open haptics ${err}`); }); ``` ## RingtonePlayer10+ type RingtonePlayer = _RingtonePlayer; Defines a system ringtone player. **System capability**: SystemCapability.Multimedia.SystemSound.Core | Type |Description | |-----------------|-------| | _RingtonePlayer | System ringtone player.| ## SystemTonePlayer11+ type SystemTonePlayer = _SystemTonePlayer; Defines a system alert tone player. **System capability**: SystemCapability.Multimedia.SystemSound.Core | Type | Description | |-----------------|-----------| | _SystemTonePlayer | System alert tone player.| ## RingtoneOptions10+ type RingtoneOptions = _RingtoneOptions; Defines the configuration of a system ringtone player. **System capability**: SystemCapability.Multimedia.SystemSound.Core | Type | Description | |-----------------|-------------| | _RingtoneOptions | Configuration of a system ringtone player.| ## SystemToneOptions11+ type SystemToneOptions = _SystemToneOptions; Defines the configuration of a system alert tone player. **System capability**: SystemCapability.Multimedia.SystemSound.Core | Type | Description | |-----------------|---------------| | _SystemToneOptions | Configuration of a system alert tone player.|