# TransportHandle

Added in[API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Summary:[Nested Classes](https://developer.android.com/reference/android/ranging/oob/TransportHandle#nestedclasses)\|[Methods](https://developer.android.com/reference/android/ranging/oob/TransportHandle#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/android/ranging/oob/TransportHandle#inhmethods)  

# TransportHandle

*** ** * ** ***

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

`
public


interface
TransportHandle
`  
`


implements

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


`

|-------------------------------------|
| android.ranging.oob.TransportHandle |

<br />

*** ** * ** ***

TransportHandle is used as the Out-Of-Band (OOB) transport mechanism by ranging module. In cases where module is used in a non-raw ranging mode, the user shall provide an implementation of the TransportHandle, allowing ranging module to do the necessary OOB communication with a peer device using the provided transport handle. Some examples of OOB transport between two peer devices are:

- BLE GATT connection
- Wi-Fi MDNS link
- Internet

<br />

## Summary

|                                                                           ### Nested classes                                                                           ||
|--------------|----------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` interface` | [TransportHandle.ReceiveCallback](https://developer.android.com/reference/android/ranging/oob/TransportHandle.ReceiveCallback) TransportHandle callback. |

|                                                                                                                                                                                                                                                                     ### Public methods                                                                                                                                                                                                                                                                      ||
|------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` abstract void` | ` `[registerReceiveCallback](https://developer.android.com/reference/android/ranging/oob/TransportHandle#registerReceiveCallback(java.util.concurrent.Executor,%20android.ranging.oob.TransportHandle.ReceiveCallback))`(`[Executor](https://developer.android.com/reference/java/util/concurrent/Executor)` executor, `[TransportHandle.ReceiveCallback](https://developer.android.com/reference/android/ranging/oob/TransportHandle.ReceiveCallback)` callback) ` Registers a callback to receive updates from the transport mechanism. |
| ` abstract void` | ` `[sendData](https://developer.android.com/reference/android/ranging/oob/TransportHandle#sendData(byte[]))`(byte[] data) ` Send data to the peer device via the implemented OOB transport.                                                                                                                                                                                                                                                                                                                                               |

| ### Inherited methods |
|-----------------------|---|
| From interface` `[java.lang.AutoCloseable](https://developer.android.com/reference/java/lang/AutoCloseable)` ` |------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------| | ` abstract void` | ` `[close](https://developer.android.com/reference/java/lang/AutoCloseable#close())`() ` Closes this resource, relinquishing any underlying resources. | ||

## Public methods

### registerReceiveCallback

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

```
public abstract void registerReceiveCallback (Executor executor, 
                TransportHandle.ReceiveCallback callback)
```

Registers a callback to receive updates from the transport mechanism.

The callback should be used to notify information about the peer device including the data received from the peer device.

<br />

|                                                                                                      Parameters                                                                                                       ||
|------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `executor` | `Executor`: the[Executor](https://developer.android.com/reference/java/util/concurrent/Executor)on which the callback should be invoked. Must not be null. <br />                                         |
| `callback` | `TransportHandle.ReceiveCallback`: the[ReceiveCallback](https://developer.android.com/reference/android/ranging/oob/TransportHandle.ReceiveCallback)instance to receive updates. Must not be null. <br /> |

|                                                                     Throws                                                                      ||
|--------------------------------------------------------------------------------------------------------|-----------------------------------------|
| [IllegalArgumentException](https://developer.android.com/reference/java/lang/IllegalArgumentException) | if either`executor`or`callback`is null. |

### sendData

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

```
public abstract void sendData (byte[] data)
```

Send data to the peer device via the implemented OOB transport.

<br />

|                                    Parameters                                    ||
|--------|--------------------------------------------------------------------------|
| `data` | `byte`: the data to be sent to the peer device. Must not be null. <br /> |

|                                                                     Throws                                                                      ||
|--------------------------------------------------------------------------------------------------------|-----------------------------------------|
| [IllegalArgumentException](https://developer.android.com/reference/java/lang/IllegalArgumentException) | if the provided data is null or invalid |