# UserAgentMetadata.Builder

Artifact: [androidx.webkit:webkit](https://developer.android.com/jetpack/androidx/releases/webkit) [View Source](https://cs.android.com/search?q=file:androidx/webkit/UserAgentMetadata.java+class:androidx.webkit.UserAgentMetadata.Builder) Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.9.0)

*** ** * ** ***


```
class UserAgentMetadata.Builder
```

<br />

*** ** * ** ***

Builder used to create `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata` objects.

Examples:

```kotlin
 // Create a setting with default options.
 new UserAgentMetadata.Builder().build();

      
 // Create a setting with a brand version contains brand name: myBrand, major version: 100,
 // full version: 100.1.1.1.
 BrandVersion brandVersion = new BrandVersion.Builder().setBrand("myBrand")
                                                       .setMajorVersion("100")
                                                       .setFullVersion("100.1.1.1")
                                                       .build();
 new UserAgentMetadata.Builder().setBrandVersionList(Collections.singletonList(brandVersion))
                                .build();

      
 // Create a setting brand version, platform, platform version and bitness.
 new UserAgentMetadata.Builder().setBrandVersionList(Collections.singletonList(brandVersion))
                                .setPlatform("myPlatform")
                                .setPlatform("1.1.1.1")
                                .setBitness(BITNESS_64)
                                .build();

    
```

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder#Builder()()` Create an empty UserAgentMetadata Builder. |
| `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder#Builder(androidx.webkit.UserAgentMetadata)(uaMetadata: https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata)` Create a UserAgentMetadata Builder from an existing UserAgentMetadata object. |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata` | `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder#build()()` Builds the current settings into a UserAgentMetadata object. |
| `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder` | `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder#setArchitecture(java.lang.String)(architecture: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?)` Sets the user-agent metadata architecture. |
| `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder` | `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder#setBitness(int)(bitness: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets the user-agent metadata bitness, the default value is `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata#BITNESS_DEFAULT()`, which indicates an empty string for `sec-ch-ua-bitness`. |
| `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder` | `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder#setBrandVersionList(java.util.List<androidx.webkit.UserAgentMetadata.BrandVersion>)( brandVersions: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.BrandVersion!> )` Sets user-agent metadata brands and their versions. |
| `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder` | `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresFeature(name = https://developer.android.com/reference/kotlin/androidx/webkit/WebViewFeature.USER_AGENT_METADATA_FORM_FACTORS, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported") https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder#setFormFactors(java.util.List<java.lang.String>)(formFactors: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>)` Sets the user-agent metadata form factors. |
| `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder` | `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder#setFullVersion(java.lang.String)(fullVersion: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?)` Sets the user-agent metadata full version. |
| `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder` | `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder#setMobile(boolean)(mobile: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Sets the user-agent metadata mobile, the default value is true. |
| `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder` | `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder#setModel(java.lang.String)(model: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?)` Sets the user-agent metadata model. |
| `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder` | `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder#setPlatform(java.lang.String)(platform: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?)` Sets the user-agent metadata platform. |
| `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder` | `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder#setPlatformVersion(java.lang.String)(platformVersion: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?)` Sets the user-agent metadata platform version. |
| `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder` | `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.Builder#setWow64(boolean)(wow64: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Sets the user-agent metadata wow64, the default is false. |

## Public constructors

### Builder

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.9.0)

```
Builder()
```

Create an empty UserAgentMetadata Builder.

### Builder

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.9.0)

```
Builder(uaMetadata: UserAgentMetadata)
```

Create a UserAgentMetadata Builder from an existing UserAgentMetadata object.

## Public functions

### build

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.9.0)

```
fun build(): UserAgentMetadata
```

Builds the current settings into a UserAgentMetadata object.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata` | The UserAgentMetadata object represented by this Builder |

### setArchitecture

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.9.0)

```
fun setArchitecture(architecture: String?): UserAgentMetadata.Builder
```

Sets the user-agent metadata architecture. If null is provided, the system default value will be used to generate the client hint.

| Parameters |
|---|---|
| `architecture: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | The architecture is used to generate user-agent client hint `sec-ch-ua-arch`. |

### setBitness

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.9.0)

```
fun setBitness(bitness: Int): UserAgentMetadata.Builder
```

Sets the user-agent metadata bitness, the default value is `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata#BITNESS_DEFAULT()`, which indicates an empty string for `sec-ch-ua-bitness`.

| Parameters |
|---|---|
| `bitness: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The bitness is used to generate user-agent client hint `sec-ch-ua-bitness`. |

### setBrandVersionList

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.9.0)

```
fun setBrandVersionList(
    brandVersions: (Mutable)List<UserAgentMetadata.BrandVersion!>
): UserAgentMetadata.Builder
```

Sets user-agent metadata brands and their versions. The brand name, major version and full version should not be blank. The default value is an empty list which means the system default user-agent metadata brands and versions will be used to generate the user-agent client hints.

| Parameters |
|---|---|
| `brandVersions: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.BrandVersion!>` | a list of `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata.BrandVersion` used to generated user-agent client hints `sec-cu-ua` and `sec-ch-ua-full-version-list`. |

### setFormFactors

Added in [1.16.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.16.0)

```
@RequiresFeature(name = WebViewFeature.USER_AGENT_METADATA_FORM_FACTORS, enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported")
fun setFormFactors(formFactors: (Mutable)List<String!>): UserAgentMetadata.Builder
```

Sets the user-agent metadata form factors. The default value is an empty list which means the system default user-agent metadata form factor will be used to generate the user-agent client hints. Form factor value should be one or more of `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata#FORM_FACTOR_DESKTOP()`, `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata#FORM_FACTOR_AUTOMOTIVE()`, `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata#FORM_FACTOR_MOBILE()`, `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata#FORM_FACTOR_TABLET()`, `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata#FORM_FACTOR_XR()`, `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata#FORM_FACTOR_EINK()`, `https://developer.android.com/reference/kotlin/androidx/webkit/UserAgentMetadata#FORM_FACTOR_WATCH()`. See the [spec](https://wicg.github.io/ua-client-hints/#sec-ch-ua-form-factors) for more details.

| Parameters |
|---|---|
| `formFactors: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>` | The form factors is used to generate user-agent client hint `sec-ch-ua-form-factors`. |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | if the list contains an invalid form factor string. |
| `https://developer.android.com/reference/java/lang/UnsupportedOperationException.html` | if the `https://developer.android.com/reference/kotlin/androidx/webkit/WebViewFeature#USER_AGENT_METADATA_FORM_FACTORS()` feature is not supported. This should be checked before use with `https://developer.android.com/reference/kotlin/androidx/webkit/WebViewFeature#isFeatureSupported(java.lang.String)`. |

### setFullVersion

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.9.0)

```
fun setFullVersion(fullVersion: String?): UserAgentMetadata.Builder
```

Sets the user-agent metadata full version. The full version should not be blank, even though the [spec](https://wicg.github.io/ua-client-hints) about brand full version could be empty. A blank full version could cause inconsistent brands when generating brand version related user-agent client hints. It also provides a bad experience for developers when processing the brand full version. If null is provided, the system default value will be used to generate the client hint.

| Parameters |
|---|---|
| `fullVersion: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | The full version is used to generate user-agent client hint `sec-ch-ua-full-version`. |

### setMobile

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.9.0)

```
fun setMobile(mobile: Boolean): UserAgentMetadata.Builder
```

Sets the user-agent metadata mobile, the default value is true.

| Parameters |
|---|---|
| `mobile: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | The mobile is used to generate user-agent client hint `sec-ch-ua-mobile`. |

### setModel

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.9.0)

```
fun setModel(model: String?): UserAgentMetadata.Builder
```

Sets the user-agent metadata model. If null is provided, the system default value will be used to generate the client hint.

| Parameters |
|---|---|
| `model: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | The model is used to generate user-agent client hint `sec-ch-ua-model`. |

### setPlatform

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.9.0)

```
fun setPlatform(platform: String?): UserAgentMetadata.Builder
```

Sets the user-agent metadata platform. The platform should not be blank. If null is provided, the system default value will be used to generate the client hint.

| Parameters |
|---|---|
| `platform: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | The platform is used to generate user-agent client hint `sec-ch-ua-platform`. |

### setPlatformVersion

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.9.0)

```
fun setPlatformVersion(platformVersion: String?): UserAgentMetadata.Builder
```

Sets the user-agent metadata platform version. If null is provided, the system default value will be used to generate the client hint.

| Parameters |
|---|---|
| `platformVersion: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | The platform version is used to generate user-agent client hint `sec-ch-ua-platform-version`. |

### setWow64

Added in [1.9.0](https://developer.android.com/jetpack/androidx/releases/webkit#1.9.0)

```
fun setWow64(wow64: Boolean): UserAgentMetadata.Builder
```

Sets the user-agent metadata wow64, the default is false.

| Parameters |
|---|---|
| `wow64: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | The wow64 is used to generate user-agent client hint `sec-ch-ua-wow64`. |