Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/android/ranging/SessionConfig.Builder#pubctors) \| [Methods](https://developer.android.com/reference/android/ranging/SessionConfig.Builder#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/ranging/SessionConfig.Builder#inhmethods)

# SessionConfig.Builder

*** ** * ** ***

` public static final class SessionConfig.Builder `   
` extends https://developer.android.com/reference/java/lang/Object ` ` `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.ranging.SessionConfig.Builder |

<br />

*** ** * ** ***

Builder for creating instances of `https://developer.android.com/reference/android/ranging/SessionConfig`.

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/ranging/SessionConfig.Builder#Builder()() ` |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/ranging/SessionConfig` | ` https://developer.android.com/reference/android/ranging/SessionConfig.Builder#build()() ` Builds a new `https://developer.android.com/reference/android/ranging/SessionConfig` instance. |
| ` https://developer.android.com/reference/android/ranging/SessionConfig.Builder` | ` https://developer.android.com/reference/android/ranging/SessionConfig.Builder#setAngleOfArrivalNeeded(boolean)(boolean isAngleOfArrivalNeeded) ` Sets whether hardware-provided Angle of Arrival (AoA) is required for the ranging operation. |
| ` https://developer.android.com/reference/android/ranging/SessionConfig.Builder` | ` https://developer.android.com/reference/android/ranging/SessionConfig.Builder#setAntennaMode(int)(int antennaMode) ` Sets the antenna mode for the ranging session which helps in determining the optimal antennas to use for Tx and Rx. |
| ` https://developer.android.com/reference/android/ranging/SessionConfig.Builder` | ` https://developer.android.com/reference/android/ranging/SessionConfig.Builder#setDataNotificationConfig(android.ranging.DataNotificationConfig)(https://developer.android.com/reference/android/ranging/DataNotificationConfig config) ` Sets the data notification configuration for this preference. |
| ` https://developer.android.com/reference/android/ranging/SessionConfig.Builder` | ` https://developer.android.com/reference/android/ranging/SessionConfig.Builder#setRangingMeasurementsLimit(int)(int rangingMeasurementsLimit) ` Sets the maximum number of ranging rounds for this session. |
| ` https://developer.android.com/reference/android/ranging/SessionConfig.Builder` | ` https://developer.android.com/reference/android/ranging/SessionConfig.Builder#setSensorFusionParams(android.ranging.SensorFusionParams)(https://developer.android.com/reference/android/ranging/SensorFusionParams parameters) ` Sets the sensor fusion parameters for this preference. |

### 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 constructors

### Builder

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

```
public Builder ()
```

<br />

<br />

## Public methods

### build

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

```
public SessionConfig build ()
```

Builds a new `https://developer.android.com/reference/android/ranging/SessionConfig` instance.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/ranging/SessionConfig` | the new `https://developer.android.com/reference/android/ranging/SessionConfig` instance. This value cannot be `null`. <br /> |

### setAngleOfArrivalNeeded

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

```
public SessionConfig.Builder setAngleOfArrivalNeeded (boolean isAngleOfArrivalNeeded)
```

Sets whether hardware-provided Angle of Arrival (AoA) is required for the ranging operation. For a more general AoA solution that does not depend on hardware support, consider using `https://developer.android.com/`

Defaults to false.

<br />

| Parameters ||
|---|---|
| `isAngleOfArrivalNeeded` | `boolean`: `true` if AoA data is required; `false` otherwise. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/ranging/SessionConfig.Builder` | The `https://developer.android.com/reference/android/ranging/SessionConfig.Builder` instance. This value cannot be `null`. <br /> |

### setAntennaMode

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

```
public SessionConfig.Builder setAntennaMode (int antennaMode)
```

Sets the antenna mode for the ranging session which helps in determining the optimal antennas to use for Tx and Rx.

<br />

- This should be set to `https://developer.android.com/reference/android/ranging/SessionConfig#ANTENNA_MODE_DIRECTIONAL` for foreground use-cases like Finder where the user is actively using the device to find another device (longer range in a particular direction).
- This should be set to `https://developer.android.com/reference/android/ranging/SessionConfig#ANTENNA_MODE_OMNI` for background use-cases like background use-cases like passive unlock when the user is passively using the device to unlock another device (shorter range in all directions).
Check `https://developer.android.com/reference/android/ranging/uwb/UwbRangingCapabilities#getSupportedAntennaModes()` for supported antenna modes on the device. If the mode requested here is not supported, the session will be immediately closed - `https://developer.android.com/`.

| Parameters ||
|---|---|
| `antennaMode` | `int`: the antenna mode `https://developer.android.com/` Value is one of the following: - `https://developer.android.com/reference/android/ranging/SessionConfig#ANTENNA_MODE_OMNI` - `https://developer.android.com/reference/android/ranging/SessionConfig#ANTENNA_MODE_DIRECTIONAL` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/ranging/SessionConfig.Builder` | this Builder instance. This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the provided mode is out of range. |

### setDataNotificationConfig

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

```
public SessionConfig.Builder setDataNotificationConfig (DataNotificationConfig config)
```

Sets the data notification configuration for this preference.

<br />

| Parameters ||
|---|---|
| `config` | `DataNotificationConfig`: the `https://developer.android.com/reference/android/ranging/DataNotificationConfig` to use. This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/ranging/SessionConfig.Builder` | the builder instance for chaining. This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the config is null. |

### setRangingMeasurementsLimit

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

```
public SessionConfig.Builder setRangingMeasurementsLimit (int rangingMeasurementsLimit)
```

Sets the maximum number of ranging rounds for this session. This includes all ranging rounds, irrespective of whether they were successful or not. For 1:many sessions, a round includes ranging to all peers within that round.

By default, when the value is set to `0`, the ranging session will run indefinitely.

<br />

| Parameters ||
|---|---|
| `rangingMeasurementsLimit` | `int`: the maximum number of ranging rounds (0 to 65535). Value is between 0 and 65535 inclusive <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/ranging/SessionConfig.Builder` | this `https://developer.android.com/reference/android/ranging/SessionConfig.Builder` instance. This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the value is outside the allowed range (0 to 65535). |

### setSensorFusionParams

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

```
public SessionConfig.Builder setSensorFusionParams (SensorFusionParams parameters)
```

Sets the sensor fusion parameters for this preference.

<br />

| Parameters ||
|---|---|
| `parameters` | `SensorFusionParams`: the `https://developer.android.com/reference/android/ranging/SensorFusionParams` to use. This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/ranging/SessionConfig.Builder` | the builder instance. This value cannot be `null`. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the parameters is null. |