# OriginatingSessionStateCallback

# OriginatingSessionStateCallback

*** ** * ** ***

[Kotlin](https://developer.android.com/reference/kotlin/com/google/ambient/crossdevice/sessions/OriginatingSessionStateCallback "View this page in Kotlin")\|Java

<br />

```
@RequiresApi(value = 26) interface OriginatingSessionStateCallback extends SessionStateCallback
```

<br />

*** ** * ** ***

Clients of Sessions should implement`OriginatingSessionStateCallback`to receive notifications of Session state changes when transferring a Session.

Provide your implementation in[Sessions.transferSession](https://developer.android.com/reference/com/google/ambient/crossdevice/sessions/Sessions#transferSession(com.google.ambient.crossdevice.sessions.SessionId,com.google.ambient.crossdevice.wakeup.StartComponentRequest,kotlin.collections.List,com.google.ambient.crossdevice.sessions.OriginatingSessionStateCallback)).

## Summary

|                                                                                                                                                                                                                                                                                                                                                                       ### Public methods                                                                                                                                                                                                                                                                                                                                                                        ||
|-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `abstract void` | [onConnected](https://developer.android.com/reference/com/google/ambient/crossdevice/sessions/OriginatingSessionStateCallback#onConnected(com.google.ambient.crossdevice.sessions.SessionId))`(@`[NonNull](https://developer.android.com/reference/androidx/annotation/NonNull)` `[SessionId](https://developer.android.com/reference/com/google/ambient/crossdevice/sessions/SessionId)` sessionId)` Notifies the application that the`OriginatingSession`associated with`sessionId`is ready to begin communication with the receiving side.                                                                                                                                                                                                  |
| `abstract void` | [onSessionTransferred](https://developer.android.com/reference/com/google/ambient/crossdevice/sessions/OriginatingSessionStateCallback#onSessionTransferred(com.google.ambient.crossdevice.sessions.SessionId))`(@`[NonNull](https://developer.android.com/reference/androidx/annotation/NonNull)` `[SessionId](https://developer.android.com/reference/com/google/ambient/crossdevice/sessions/SessionId)` sessionId)` Called when a Session has been successfully transferred to another device (and no longer running on this device).                                                                                                                                                                                                      |
| `abstract void` | [onTransferFailure](https://developer.android.com/reference/com/google/ambient/crossdevice/sessions/OriginatingSessionStateCallback#onTransferFailure(com.google.ambient.crossdevice.sessions.SessionId,com.google.ambient.crossdevice.sessions.SessionException))`(` ` @`[NonNull](https://developer.android.com/reference/androidx/annotation/NonNull)` `[SessionId](https://developer.android.com/reference/com/google/ambient/crossdevice/sessions/SessionId)` sessionId,` ` @`[NonNull](https://developer.android.com/reference/androidx/annotation/NonNull)` `[SessionException](https://developer.android.com/reference/com/google/ambient/crossdevice/sessions/SessionException)` exception` `)` Called when transfer cannot complete. |

## Public methods

### onConnected

```
abstract void onConnected(@NonNull SessionId sessionId)
```

Notifies the application that the`OriginatingSession`associated with`sessionId`is ready to begin communication with the receiving side.  

### onSessionTransferred

```
abstract void onSessionTransferred(@NonNull SessionId sessionId)
```

Called when a Session has been successfully transferred to another device (and no longer running on this device).  

### onTransferFailure

```
abstract void onTransferFailure(
    @NonNull SessionId sessionId,
    @NonNull SessionException exception
)
```

Called when transfer cannot complete. Failure reason described by`exception`.