# SessionRemoteConnection

# SessionRemoteConnection

*** ** * ** ***

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


```
@RequiresApi(value = 26) interface SessionRemoteConnection
```

<br />

*** ** * ** ***

A connection to a remote device that is participating in a Session. This is a wrapper around [RemoteConnection](https://developer.android.com/reference/kotlin/com/google/ambient/crossdevice/connections/RemoteConnection) updated to be specific to [SessionParticipant](https://developer.android.com/reference/kotlin/com/google/ambient/crossdevice/sessions/SessionParticipant).

## Summary

|                                                                                                                                                                                                                                                                                                                                                                            ### Public functions                                                                                                                                                                                                                                                                                                                                                                             ||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Unit](https://developer.android.com/reference/kotlin/kotlin/Unit)                                                                                                                                | [registerReceiver](https://developer.android.com/reference/kotlin/com/google/ambient/crossdevice/sessions/SessionRemoteConnection#registerReceiver(com.google.ambient.crossdevice.sessions.SessionConnectionReceiver))`(receiver: `[SessionConnectionReceiver](https://developer.android.com/reference/kotlin/com/google/ambient/crossdevice/sessions/SessionConnectionReceiver)`)` Registers the given [SessionConnectionReceiver](https://developer.android.com/reference/kotlin/com/google/ambient/crossdevice/sessions/SessionConnectionReceiver) with this channel. |
| `suspend `[Result](https://developer.android.com/reference/kotlin/kotlin/Result)`<`[Unit](https://developer.android.com/reference/kotlin/kotlin/Unit)`>`                                          | [send](https://developer.android.com/reference/kotlin/com/google/ambient/crossdevice/sessions/SessionRemoteConnection#send(kotlin.ByteArray))`(bytes: `[ByteArray](https://developer.android.com/reference/kotlin/kotlin/ByteArray)`)` See [RemoteConnection.send](https://developer.android.com/reference/kotlin/com/google/ambient/crossdevice/connections/RemoteConnection#send(kotlin.ByteArray))                                                                                                                                                                    |
| [ListenableFuture](https://developer.android.com/reference/kotlin/com/google/common/util/concurrent/ListenableFuture)`<`[Void](https://developer.android.com/reference/kotlin/java/lang/Void)`?>` | [sendFuture](https://developer.android.com/reference/kotlin/com/google/ambient/crossdevice/sessions/SessionRemoteConnection#sendFuture(kotlin.ByteArray))`(bytes: `[ByteArray](https://developer.android.com/reference/kotlin/kotlin/ByteArray)`)` Java-compatible version of [send](https://developer.android.com/reference/kotlin/com/google/ambient/crossdevice/sessions/SessionRemoteConnection#send(kotlin.ByteArray)).                                                                                                                                             |
| [Unit](https://developer.android.com/reference/kotlin/kotlin/Unit)                                                                                                                                | [unregisterReceiver](https://developer.android.com/reference/kotlin/com/google/ambient/crossdevice/sessions/SessionRemoteConnection#unregisterReceiver(com.google.ambient.crossdevice.sessions.SessionConnectionReceiver))`(receiver: `[SessionConnectionReceiver](https://developer.android.com/reference/kotlin/com/google/ambient/crossdevice/sessions/SessionConnectionReceiver)`)` Unregisters a given receiver from the remote device.                                                                                                                             |

|                                                                                                                                                   ### Public properties                                                                                                                                                    ||
|---------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [SessionParticipant](https://developer.android.com/reference/kotlin/com/google/ambient/crossdevice/sessions/SessionParticipant) | [participant](https://developer.android.com/reference/kotlin/com/google/ambient/crossdevice/sessions/SessionRemoteConnection#participant()) The participant this this is a connection to. |

## Public functions

### registerReceiver

```
fun registerReceiver(receiver: SessionConnectionReceiver): Unit
```

Registers the given [SessionConnectionReceiver](https://developer.android.com/reference/kotlin/com/google/ambient/crossdevice/sessions/SessionConnectionReceiver) with this channel.  

|                                                                                                                                       Throws                                                                                                                                       ||
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------|
| `com.google.ambient.crossdevice.connections.ConnectionsException: `[com.google.ambient.crossdevice.connections.ConnectionsException](https://developer.android.com/reference/kotlin/com/google/ambient/crossdevice/connections/ConnectionsException) | if the connection is closed. |

### send

```
suspend fun send(bytes: ByteArray): Result<Unit>
```

See [RemoteConnection.send](https://developer.android.com/reference/kotlin/com/google/ambient/crossdevice/connections/RemoteConnection#send(kotlin.ByteArray))  

### sendFuture

```
fun sendFuture(bytes: ByteArray): ListenableFuture<Void?>
```

Java-compatible version of [send](https://developer.android.com/reference/kotlin/com/google/ambient/crossdevice/sessions/SessionRemoteConnection#send(kotlin.ByteArray)).  

### unregisterReceiver

```
fun unregisterReceiver(receiver: SessionConnectionReceiver): Unit
```

Unregisters a given receiver from the remote device.

## Public properties

### participant

```
val participant: SessionParticipant
```

The participant this this is a connection to.