# Ringtone

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Summary:[Methods](https://developer.android.com/reference/android/media/Ringtone#pubmethods)\|[Protected Methods](https://developer.android.com/reference/android/media/Ringtone#promethods)\|[Inherited Methods](https://developer.android.com/reference/android/media/Ringtone#inhmethods)  

# Ringtone

*** ** * ** ***

[Kotlin](https://developer.android.com/reference/kotlin/android/media/Ringtone "View this page in Kotlin")\|Java

`
public


class
Ringtone
`  
`

extends `[Object](https://developer.android.com/reference/java/lang/Object)`


``


`

|---|------------------------|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.media.Ringtone |

<br />

*** ** * ** ***

Ringtone provides a quick method for playing a ringtone, notification, or other similar types of sounds.

For ways of retrieving[Ringtone](https://developer.android.com/reference/android/media/Ringtone)objects or to show a ringtone picker, see[RingtoneManager](https://developer.android.com/reference/android/media/RingtoneManager).  
**See also:**

- [RingtoneManager](https://developer.android.com/reference/android/media/RingtoneManager)

## Summary

|                                                                                                                                                                                                                         ### Public methods                                                                                                                                                                                                                          ||
|---------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` `[AudioAttributes](https://developer.android.com/reference/android/media/AudioAttributes) | ` `[getAudioAttributes](https://developer.android.com/reference/android/media/Ringtone#getAudioAttributes())`() ` Returns the[AudioAttributes](https://developer.android.com/reference/android/media/AudioAttributes)used by this object.                                                                                                                              |
| ` int`                                                                                      | ` `[getStreamType](https://developer.android.com/reference/android/media/Ringtone#getStreamType())`() ` *This method was deprecated in API level 21. use of stream types is deprecated, see[setAudioAttributes(android.media.AudioAttributes)](https://developer.android.com/reference/android/media/Ringtone#setAudioAttributes(android.media.AudioAttributes))*      |
| ` `[String](https://developer.android.com/reference/java/lang/String)                       | ` `[getTitle](https://developer.android.com/reference/android/media/Ringtone#getTitle(android.content.Context))`(`[Context](https://developer.android.com/reference/android/content/Context)` context) ` Returns a human-presentable title for ringtone.                                                                                                               |
| ` float`                                                                                    | ` `[getVolume](https://developer.android.com/reference/android/media/Ringtone#getVolume())`() ` Returns the volume scalar set on this player.                                                                                                                                                                                                                          |
| ` boolean`                                                                                  | ` `[isHapticGeneratorEnabled](https://developer.android.com/reference/android/media/Ringtone#isHapticGeneratorEnabled())`() ` Return whether the[HapticGenerator](https://developer.android.com/reference/android/media/audiofx/HapticGenerator)effect is enabled or not.                                                                                              |
| ` boolean`                                                                                  | ` `[isLooping](https://developer.android.com/reference/android/media/Ringtone#isLooping())`() ` Returns whether the looping mode was enabled on this player.                                                                                                                                                                                                           |
| ` boolean`                                                                                  | ` `[isPlaying](https://developer.android.com/reference/android/media/Ringtone#isPlaying())`() ` Whether this ringtone is currently playing.                                                                                                                                                                                                                            |
| ` void`                                                                                     | ` `[play](https://developer.android.com/reference/android/media/Ringtone#play())`() ` Plays the ringtone.                                                                                                                                                                                                                                                              |
| ` void`                                                                                     | ` `[setAudioAttributes](https://developer.android.com/reference/android/media/Ringtone#setAudioAttributes(android.media.AudioAttributes))`(`[AudioAttributes](https://developer.android.com/reference/android/media/AudioAttributes)` attributes) ` Sets the[AudioAttributes](https://developer.android.com/reference/android/media/AudioAttributes)for this ringtone. |
| ` boolean`                                                                                  | ` `[setHapticGeneratorEnabled](https://developer.android.com/reference/android/media/Ringtone#setHapticGeneratorEnabled(boolean))`(boolean enabled) ` Enable or disable the[HapticGenerator](https://developer.android.com/reference/android/media/audiofx/HapticGenerator)effect.                                                                                     |
| ` void`                                                                                     | ` `[setLooping](https://developer.android.com/reference/android/media/Ringtone#setLooping(boolean))`(boolean looping) ` Sets the player to be looping or non-looping.                                                                                                                                                                                                  |
| ` void`                                                                                     | ` `[setStreamType](https://developer.android.com/reference/android/media/Ringtone#setStreamType(int))`(int streamType) ` *This method was deprecated in API level 21. use[setAudioAttributes(android.media.AudioAttributes)](https://developer.android.com/reference/android/media/Ringtone#setAudioAttributes(android.media.AudioAttributes))*                        |
| ` void`                                                                                     | ` `[setVolume](https://developer.android.com/reference/android/media/Ringtone#setVolume(float))`(float volume) ` Sets the volume on this player.                                                                                                                                                                                                                       |
| ` void`                                                                                     | ` `[stop](https://developer.android.com/reference/android/media/Ringtone#stop())`() ` Stops a playing ringtone.                                                                                                                                                                                                                                                        |

|                                                                                                          ### Protected methods                                                                                                          ||
|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` void` | ` `[finalize](https://developer.android.com/reference/android/media/Ringtone#finalize())`() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. |

| ### Inherited methods |
|-----------------------|---|
| From class` `[java.lang.Object](https://developer.android.com/reference/java/lang/Object)` ` |--------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ` `[Object](https://developer.android.com/reference/java/lang/Object)          | ` `[clone](https://developer.android.com/reference/java/lang/Object#clone())`() ` Creates and returns a copy of this object.                                                                                                                                                      | | ` boolean`                                                                     | ` `[equals](https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object))`(`[Object](https://developer.android.com/reference/java/lang/Object)` obj) ` Indicates whether some other object is "equal to" this one.                                           | | ` void`                                                                        | ` `[finalize](https://developer.android.com/reference/java/lang/Object#finalize())`() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.                                                          | | ` final `[Class](https://developer.android.com/reference/java/lang/Class)`<?>` | ` `[getClass](https://developer.android.com/reference/java/lang/Object#getClass())`() ` Returns the runtime class of this`Object`.                                                                                                                                                | | ` int`                                                                         | ` `[hashCode](https://developer.android.com/reference/java/lang/Object#hashCode())`() ` Returns a hash code value for the object.                                                                                                                                                 | | ` final void`                                                                  | ` `[notify](https://developer.android.com/reference/java/lang/Object#notify())`() ` Wakes up a single thread that is waiting on this object's monitor.                                                                                                                            | | ` final void`                                                                  | ` `[notifyAll](https://developer.android.com/reference/java/lang/Object#notifyAll())`() ` Wakes up all threads that are waiting on this object's monitor.                                                                                                                         | | ` `[String](https://developer.android.com/reference/java/lang/String)          | ` `[toString](https://developer.android.com/reference/java/lang/Object#toString())`() ` Returns a string representation of the object.                                                                                                                                            | | ` final void`                                                                  | ` `[wait](https://developer.android.com/reference/java/lang/Object#wait(long,%20int))`(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being*notified* or*interrupted*, or until a certain amount of real time has elapsed. | | ` final void`                                                                  | ` `[wait](https://developer.android.com/reference/java/lang/Object#wait(long))`(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being*notified* or*interrupted*, or until a certain amount of real time has elapsed.                   | | ` final void`                                                                  | ` `[wait](https://developer.android.com/reference/java/lang/Object#wait())`() ` Causes the current thread to wait until it is awakened, typically by being*notified* or*interrupted*.                                                                                             | ||

## Public methods

### getAudioAttributes

Added in[API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public AudioAttributes getAudioAttributes ()
```

Returns the[AudioAttributes](https://developer.android.com/reference/android/media/AudioAttributes)used by this object.

<br />

|                                                                                                                                                                                                            Returns                                                                                                                                                                                                             ||
|------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [AudioAttributes](https://developer.android.com/reference/android/media/AudioAttributes) | the[AudioAttributes](https://developer.android.com/reference/android/media/AudioAttributes)that were set with[setAudioAttributes(android.media.AudioAttributes)](https://developer.android.com/reference/android/media/Ringtone#setAudioAttributes(android.media.AudioAttributes))or the default attributes if none were set. <br /> |

### getStreamType

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Deprecated in[API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public int getStreamType ()
```

<br />

**This method was deprecated in API level 21.**   
use of stream types is deprecated, see[setAudioAttributes(android.media.AudioAttributes)](https://developer.android.com/reference/android/media/Ringtone#setAudioAttributes(android.media.AudioAttributes))

Gets the stream type where this ringtone will be played.

<br />

|                                                        Returns                                                        ||
|-------|----------------------------------------------------------------------------------------------------------------|
| `int` | The stream type, see[AudioManager](https://developer.android.com/reference/android/media/AudioManager). <br /> |

### getTitle

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public String getTitle (Context context)
```

Returns a human-presentable title for ringtone. Looks in media content provider. If not in either, uses the filename

<br />

|                        Parameters                         ||
|-----------|------------------------------------------------|
| `context` | `Context`: A context used for querying. <br /> |

|                                  Returns                                   ||
|--------------------------------------------------------------------|--------|
| [String](https://developer.android.com/reference/java/lang/String) | <br /> |

### getVolume

Added in[API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public float getVolume ()
```

Returns the volume scalar set on this player.

<br />

|                    Returns                     ||
|---------|---------------------------------------|
| `float` | a value between 0.0f and 1.0f. <br /> |

### isHapticGeneratorEnabled

Added in[API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public boolean isHapticGeneratorEnabled ()
```

Return whether the[HapticGenerator](https://developer.android.com/reference/android/media/audiofx/HapticGenerator)effect is enabled or not.

<br />

|                          Returns                          ||
|-----------|------------------------------------------------|
| `boolean` | true if the HapticGenerator is enabled. <br /> |

### isLooping

Added in[API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public boolean isLooping ()
```

Returns whether the looping mode was enabled on this player.

<br />

|                          Returns                          ||
|-----------|------------------------------------------------|
| `boolean` | true if this player loops when playing. <br /> |

### isPlaying

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public boolean isPlaying ()
```

Whether this ringtone is currently playing.

<br />

|                       Returns                       ||
|-----------|------------------------------------------|
| `boolean` | True if playing, false otherwise. <br /> |

### play

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public void play ()
```

Plays the ringtone.

<br />

### setAudioAttributes

Added in[API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public void setAudioAttributes (AudioAttributes attributes)
```

Sets the[AudioAttributes](https://developer.android.com/reference/android/media/AudioAttributes)for this ringtone.

<br />

|                                          Parameters                                           ||
|--------------|---------------------------------------------------------------------------------|
| `attributes` | `AudioAttributes`: the non-null attributes characterizing this ringtone. <br /> |

|                                                  Throws                                                   ||
|--------------------------------------------------------------------------------------------------------|---|
| [IllegalArgumentException](https://developer.android.com/reference/java/lang/IllegalArgumentException) |   |

### setHapticGeneratorEnabled

Added in[API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public boolean setHapticGeneratorEnabled (boolean enabled)
```

Enable or disable the[HapticGenerator](https://developer.android.com/reference/android/media/audiofx/HapticGenerator)effect. The effect can only be enabled on devices that support the effect.

<br />

|         Parameters          ||
|-----------|------------------|
| `enabled` | `boolean` <br /> |

|                                                Returns                                                 ||
|-----------|---------------------------------------------------------------------------------------------|
| `boolean` | true if the HapticGenerator effect is successfully enabled. Otherwise, return false. <br /> |

**See also:**

- [HapticGenerator.isAvailable()](https://developer.android.com/reference/android/media/audiofx/HapticGenerator#isAvailable())  

### setLooping

Added in[API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public void setLooping (boolean looping)
```

Sets the player to be looping or non-looping.

<br />

|                      Parameters                      ||
|-----------|-------------------------------------------|
| `looping` | `boolean`: whether to loop or not. <br /> |

### setStreamType

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Deprecated in[API level 21](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public void setStreamType (int streamType)
```

<br />

**This method was deprecated in API level 21.**   
use[setAudioAttributes(android.media.AudioAttributes)](https://developer.android.com/reference/android/media/Ringtone#setAudioAttributes(android.media.AudioAttributes))

Sets the stream type where this ringtone will be played.

<br />

|                                                           Parameters                                                           ||
|--------------|------------------------------------------------------------------------------------------------------------------|
| `streamType` | `int`: The stream, see[AudioManager](https://developer.android.com/reference/android/media/AudioManager). <br /> |

### setVolume

Added in[API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public void setVolume (float volume)
```

Sets the volume on this player.

<br />

|                                                                  Parameters                                                                   ||
|----------|-------------------------------------------------------------------------------------------------------------------------------------|
| `volume` | `float`: a raw scalar in range 0.0 to 1.0, where 0.0 mutes this player, and 1.0 corresponds to no attenuation being applied. <br /> |

### stop

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public void stop ()
```

Stops a playing ringtone.

<br />

## Protected methods

### finalize

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
protected void finalize ()
```

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. A subclass overrides the`finalize`method to dispose of system resources or to perform other cleanup.

The general contract of`finalize`is that it is invoked if and when the Java virtual machine has determined that there is no longer any means by which this object can be accessed by any thread that has not yet died, except as a result of an action taken by the finalization of some other object or class which is ready to be finalized. The`finalize`method may take any action, including making this object available again to other threads; the usual purpose of`finalize`, however, is to perform cleanup actions before the object is irrevocably discarded. For example, the finalize method for an object that represents an input/output connection might perform explicit I/O transactions to break the connection before the object is permanently discarded.

The`finalize`method of class`Object`performs no special action; it simply returns normally. Subclasses of`Object`may override this definition.

The Java programming language does not guarantee which thread will invoke the`finalize`method for any given object. It is guaranteed, however, that the thread that invokes finalize will not be holding any user-visible synchronization locks when finalize is invoked. If an uncaught exception is thrown by the finalize method, the exception is ignored and finalization of that object terminates.

After the`finalize`method has been invoked for an object, no further action is taken until the Java virtual machine has again determined that there is no longer any means by which this object can be accessed by any thread that has not yet died, including possible actions by other objects or classes which are ready to be finalized, at which point the object may be discarded.

The`finalize`method is never invoked more than once by a Java virtual machine for any given object.

Any exception thrown by the`finalize`method causes the finalization of this object to be halted, but is otherwise ignored.

<br />