# RangingPreference.Builder

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

# Builder

*** ** * ** ***

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

```
class Builder
```

|---|----------------------------------------------------------------------------------------------------------------------------------------|
| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)                                                         ||
| ↳ | [android.ranging.RangingPreference.Builder](https://developer.android.com/reference/kotlin/android/ranging/RangingPreference.Builder#) |

Builder for creating instances of`RangingPreference`.

This Builder class provides a flexible way to construct a[RangingPreference](https://developer.android.com/reference/kotlin/android/ranging/RangingPreference)instance by setting required and optional parameters. It ensures that all necessary parameters are specified and provides default values for optional configurations.

Example usage:  

```kotlin
<code>RangingPreference rangingPreference = new RangingPreference.Builder(DEVICE_ROLE_RESPONDER,
      new RawResponderRangingParams.Builder()
          .setRawRangingDevice(
              new RawRangingDevice.Builder()
                  .setRangingDevice(
                      new RangingDevice.Builder()
                          .build())
                 .setBleRssiRangingParams(
                 new BleRssiRangingParams.Builder("AA:BB:CC:00:11:22")
                     .build())
             .build())
         build())
     .build();
  </code>
```

## Summary

|                                                                                                                                                                                                                                                       Public constructors                                                                                                                                                                                                                                                        ||
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| [Builder](https://developer.android.com/reference/kotlin/android/ranging/RangingPreference.Builder#Builder(kotlin.Int,%20android.ranging.RangingConfig))`(`role:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, `rangingConfig:` `[RangingConfig](https://developer.android.com/reference/kotlin/android/ranging/RangingConfig)`)` Creates a Builder instance with the required device role and[RangingConfig](https://developer.android.com/reference/kotlin/android/ranging/RangingConfig). |

|                                                                                                                                                                                                                           Public methods                                                                                                                                                                                                                            ||
|------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [RangingPreference](https://developer.android.com/reference/kotlin/android/ranging/RangingPreference)                  | [build](https://developer.android.com/reference/kotlin/android/ranging/RangingPreference.Builder#build())`()` Builds the`RangingPreference`instance.                                                                                                                                                                                        |
| [RangingPreference.Builder](https://developer.android.com/reference/kotlin/android/ranging/RangingPreference.Builder#) | [setSessionConfig](https://developer.android.com/reference/kotlin/android/ranging/RangingPreference.Builder#setSessionConfig(android.ranging.SessionConfig))`(`config:` `[SessionConfig](https://developer.android.com/reference/kotlin/android/ranging/SessionConfig)`)` Sets the configuration parameters for the ranging session policy. |

## Public constructors

### Builder

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

```
Builder(
    role: Int, 
    rangingConfig: RangingConfig)
```

Creates a Builder instance with the required device role and[RangingConfig](https://developer.android.com/reference/kotlin/android/ranging/RangingConfig).

|                                                                                                                                                                                                                                                                                                                                                                                                     Parameters                                                                                                                                                                                                                                                                                                                                                                                                      ||
|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `role`          | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html):the role of the device in android.ranging.RangingPreference.DeviceRole Value is[android.ranging.RangingPreference#DEVICE_ROLE_RESPONDER](https://developer.android.com/reference/kotlin/android/ranging/RangingPreference#DEVICE_ROLE_RESPONDER:kotlin.Int), or[android.ranging.RangingPreference#DEVICE_ROLE_INITIATOR](https://developer.android.com/reference/kotlin/android/ranging/RangingPreference#DEVICE_ROLE_INITIATOR:kotlin.Int)                                                                                                                                                                                                                                                                             |
| `rangingConfig` | [RangingConfig](https://developer.android.com/reference/kotlin/android/ranging/RangingConfig):the[RangingConfig](https://developer.android.com/reference/kotlin/android/ranging/RangingConfig)to use. Needs to be an instance of one of the following: - [RawResponderRangingConfig](https://developer.android.com/reference/kotlin/android/ranging/raw/RawResponderRangingConfig) - [RawInitiatorRangingConfig](https://developer.android.com/reference/kotlin/android/ranging/raw/RawInitiatorRangingConfig) - [OobResponderRangingConfig](https://developer.android.com/reference/kotlin/android/ranging/oob/OobResponderRangingConfig) - [OobInitiatorRangingConfig](https://developer.android.com/reference/kotlin/android/ranging/oob/OobInitiatorRangingConfig) This value cannot be`null`. |

|                         Exceptions                          ||
|----------------------------------|---------------------------|
| `java.lang.NullPointerException` | if`rangingConfig`is null. |

## Public methods

### build

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

```
fun build(): RangingPreference
```

Builds the`RangingPreference`instance.

If the[SessionConfig](https://developer.android.com/reference/kotlin/android/ranging/SessionConfig)is not set, default instances will be used.

|                                                                                Return                                                                                ||
|-------------------------------------------------------------------------------------------------------|---------------------------------------------------------------|
| [RangingPreference](https://developer.android.com/reference/kotlin/android/ranging/RangingPreference) | a new`RangingPreference`instance. This value cannot be`null`. |

### setSessionConfig

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

```
fun setSessionConfig(config: SessionConfig): RangingPreference.Builder
```

Sets the configuration parameters for the ranging session policy.

This method allows specifying additional configuration parameters encapsulated in[SessionConfig](https://developer.android.com/reference/kotlin/android/ranging/SessionConfig)for fine-tuning the behavior of the ranging session.

|                                                                                                              Parameters                                                                                                               ||
|----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `config` | [SessionConfig](https://developer.android.com/reference/kotlin/android/ranging/SessionConfig):the[SessionConfig](https://developer.android.com/reference/kotlin/android/ranging/SessionConfig). This value cannot be`null`. |

|                                                                                                                                Return                                                                                                                                 ||
|------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|
| [RangingPreference.Builder](https://developer.android.com/reference/kotlin/android/ranging/RangingPreference.Builder#) | this[Builder](https://developer.android.com/reference/kotlin/android/ranging/RangingPreference.Builder#)instance. This value cannot be`null`. |

|                      Exceptions                      ||
|----------------------------------|--------------------|
| `java.lang.NullPointerException` | if`config`is null. |