Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Methods](https://developer.android.com/reference/android/view/translation/TranslationManager#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/view/translation/TranslationManager#inhmethods)

# TranslationManager

*** ** * ** ***

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


`
public

final

class
TranslationManager
`


`

extends https://developer.android.com/reference/java/lang/Object


`

`


`

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.view.translation.TranslationManager |

<br />

*** ** * ** ***

The `https://developer.android.com/reference/android/view/translation/TranslationManager` class provides ways for apps to integrate and use the
translation framework.

The TranslationManager manages `https://developer.android.com/reference/android/view/translation/Translator`s and help bridge client calls to
the server translation service

<br />

## Summary

| ### Public methods ||
|---|---|
| ` void` | ` https://developer.android.com/reference/android/view/translation/TranslationManager#addOnDeviceTranslationCapabilityUpdateListener(java.util.concurrent.Executor,%20java.util.function.Consumer<android.view.translation.TranslationCapability>)(https://developer.android.com/reference/java/util/concurrent/Executor executor, https://developer.android.com/reference/java/util/function/Consumer<https://developer.android.com/reference/android/view/translation/TranslationCapability> capabilityListener) ` Adds a `https://developer.android.com/reference/android/view/translation/TranslationCapability` Consumer to listen for updates on states of on-device `https://developer.android.com/reference/android/view/translation/TranslationCapability`s. |
| ` void` | ` https://developer.android.com/reference/android/view/translation/TranslationManager#createOnDeviceTranslator(android.view.translation.TranslationContext,%20java.util.concurrent.Executor,%20java.util.function.Consumer<android.view.translation.Translator>)(https://developer.android.com/reference/android/view/translation/TranslationContext translationContext, https://developer.android.com/reference/java/util/concurrent/Executor executor, https://developer.android.com/reference/java/util/function/Consumer<https://developer.android.com/reference/android/view/translation/Translator> callback) ` Creates an on-device Translator for natural language translation. |
| ` https://developer.android.com/reference/java/util/Set<https://developer.android.com/reference/android/view/translation/TranslationCapability>` | ` https://developer.android.com/reference/android/view/translation/TranslationManager#getOnDeviceTranslationCapabilities(int,%20int)(int sourceFormat, int targetFormat) ` Returns a set of `https://developer.android.com/reference/android/view/translation/TranslationCapability`s describing the capabilities for on-device `https://developer.android.com/reference/android/view/translation/Translator`s. |
| ` https://developer.android.com/reference/android/app/PendingIntent` | ` https://developer.android.com/reference/android/view/translation/TranslationManager#getOnDeviceTranslationSettingsActivityIntent()() ` Returns an immutable PendingIntent which can be used to launch an activity to view/edit on-device translation settings. |
| ` void` | ` https://developer.android.com/reference/android/view/translation/TranslationManager#removeOnDeviceTranslationCapabilityUpdateListener(java.util.function.Consumer<android.view.translation.TranslationCapability>)(https://developer.android.com/reference/java/util/function/Consumer<https://developer.android.com/reference/android/view/translation/TranslationCapability> capabilityListener) ` Removes a `https://developer.android.com/reference/android/view/translation/TranslationCapability` Consumer to listen for updates on states of on-device `https://developer.android.com/reference/android/view/translation/TranslationCapability`s. |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/lang/Object ` |---|---| | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Object#clone()() ` Creates and returns a copy of this object. | | ` boolean` | ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. | | ` void` | ` 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 https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/Object#getClass()() ` Returns the runtime class of this `Object`. | | ` int` | ` https://developer.android.com/reference/java/lang/Object#hashCode()() ` Returns a hash code value for the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notify()() ` Wakes up a single thread that is waiting on this object's monitor. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notifyAll()() ` Wakes up all threads that are waiting on this object's monitor. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Object#toString()() ` Returns a string representation of the object. | | ` final void` | ` 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` | ` 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` | ` 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

### addOnDeviceTranslationCapabilityUpdateListener

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

```
public void addOnDeviceTranslationCapabilityUpdateListener (Executor executor, 
                Consumer<TranslationCapability> capabilityListener)
```

Adds a `https://developer.android.com/reference/android/view/translation/TranslationCapability` Consumer to listen for updates on states of on-device
`https://developer.android.com/reference/android/view/translation/TranslationCapability`s.

<br />

| Parameters ||
|---|---|
| `executor` | `Executor`: This value cannot be `null`. Callback and listener events are dispatched through this `https://developer.android.com/reference/java/util/concurrent/Executor`, providing an easy way to control which thread is used. To dispatch events through the main thread of your application, you can use `https://developer.android.com/reference/android/content/Context#getMainExecutor()`. Otherwise, provide an `https://developer.android.com/reference/java/util/concurrent/Executor` that dispatches to an appropriate thread. <br /> |
| `capabilityListener` | `Consumer`: a `https://developer.android.com/reference/android/view/translation/TranslationCapability` Consumer to receive the updated `https://developer.android.com/reference/android/view/translation/TranslationCapability` from the on-device translation service. This value cannot be `null`. <br /> |

### createOnDeviceTranslator

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

```
public void createOnDeviceTranslator (TranslationContext translationContext, 
                Executor executor, 
                Consumer<Translator> callback)
```

Creates an on-device Translator for natural language translation.

In Android 12, this method provided the same cached Translator object when given the
same TranslationContext object. Do not use a Translator destroyed elsewhere as this will
cause an exception on Android 12.

In later versions, this method never returns a cached Translator.

<br />

| Parameters ||
|---|---|
| `translationContext` | `TranslationContext`: `https://developer.android.com/reference/android/view/translation/TranslationContext` containing the specs for creating the Translator. This value cannot be `null`. <br /> |
| `executor` | `Executor`: Executor to run callback operations. This value cannot be `null`. Callback and listener events are dispatched through this `https://developer.android.com/reference/java/util/concurrent/Executor`, providing an easy way to control which thread is used. To dispatch events through the main thread of your application, you can use `https://developer.android.com/reference/android/content/Context#getMainExecutor()`. Otherwise, provide an `https://developer.android.com/reference/java/util/concurrent/Executor` that dispatches to an appropriate thread. <br /> |
| `callback` | `Consumer`: `https://developer.android.com/reference/java/util/function/Consumer` to receive the translator. A `null` value is returned if the service could not create the translator. <br /> |

### getOnDeviceTranslationCapabilities

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

```
public Set<TranslationCapability> getOnDeviceTranslationCapabilities (int sourceFormat, 
                int targetFormat)
```

Returns a set of `https://developer.android.com/reference/android/view/translation/TranslationCapability`s describing the capabilities for on-device
`https://developer.android.com/reference/android/view/translation/Translator`s.

These translation capabilities contains a source and target `https://developer.android.com/reference/android/view/translation/TranslationSpec`
representing the data expected for both ends of translation process. The capabilities
provides the information and limitations for generating a `https://developer.android.com/reference/android/view/translation/TranslationContext`.
The context object can then be used by
`https://developer.android.com/reference/android/view/translation/TranslationManager#createOnDeviceTranslator(android.view.translation.TranslationContext,%20java.util.concurrent.Executor,%20java.util.function.Consumer<android.view.translation.Translator>)` to obtain a
`https://developer.android.com/reference/android/view/translation/Translator` for translations.

**NOTE:** Call on a worker thread.


This method may take several seconds to complete, so it should
only be called from a worker thread.

<br />

| Parameters ||
|---|---|
| `sourceFormat` | `int`: data format for the input data to be translated. Value is one of the following: - `https://developer.android.com/reference/android/view/translation/TranslationSpec#DATA_FORMAT_TEXT` |
| `targetFormat` | `int`: data format for the expected translated output data. Value is one of the following: - `https://developer.android.com/reference/android/view/translation/TranslationSpec#DATA_FORMAT_TEXT` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/Set<https://developer.android.com/reference/android/view/translation/TranslationCapability>` | A set of `https://developer.android.com/reference/android/view/translation/TranslationCapability`s. This value cannot be `null`. <br /> |

### getOnDeviceTranslationSettingsActivityIntent

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

```
public PendingIntent getOnDeviceTranslationSettingsActivityIntent ()
```

Returns an immutable PendingIntent which can be used to launch an activity to view/edit
on-device translation settings.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/PendingIntent` | An immutable PendingIntent or `null` if one of reason met: - Device manufacturer (OEM) does not provide TranslationService. - The TranslationService doesn't provide the Settings. <br /> |

### removeOnDeviceTranslationCapabilityUpdateListener

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

```
public void removeOnDeviceTranslationCapabilityUpdateListener (Consumer<TranslationCapability> capabilityListener)
```

Removes a `https://developer.android.com/reference/android/view/translation/TranslationCapability` Consumer to listen for updates on states of
on-device `https://developer.android.com/reference/android/view/translation/TranslationCapability`s.

<br />

| Parameters ||
|---|---|
| `capabilityListener` | `Consumer`: the `https://developer.android.com/reference/android/view/translation/TranslationCapability` Consumer to unregister. This value cannot be `null`. <br /> |