# HostValidator.Builder

Artifact: [androidx.car.app:app](https://developer.android.com/jetpack/androidx/releases/car-app) [View Source](https://cs.android.com/search?q=file:androidx/car/app/validation/HostValidator.java+class:androidx.car.app.validation.HostValidator.Builder) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/car-app#1.0.0)

*** ** * ** ***


```
public final class HostValidator.Builder
```

<br />

*** ** * ** ***

Builder of `https://developer.android.com/reference/androidx/car/app/validation/HostValidator`.

Allows applications to customize the `https://developer.android.com/reference/androidx/car/app/validation/HostValidator` that will be used to verify whether a caller is a valid templates host.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/car/app/validation/HostValidator.Builder#Builder(android.content.Context)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/android/content/Context.html context)` Returns an empty `https://developer.android.com/reference/androidx/car/app/validation/HostValidator.Builder` instance. |

| ### Public methods |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/car/app/validation/HostValidator.Builder` | `https://developer.android.com/reference/androidx/car/app/validation/HostValidator.Builder#addAllowedHost(java.lang.String,java.lang.String)(@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html packageName, @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html digest)` Adds a host to the allow list. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/car/app/validation/HostValidator.Builder` | `https://developer.android.com/reference/androidx/car/app/validation/HostValidator.Builder#addAllowedHosts(int)(@https://developer.android.com/reference/androidx/annotation/ArrayRes int allowListedHostsRes)` Adds a hosts to the allow list. |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/car/app/validation/HostValidator` | `https://developer.android.com/reference/androidx/car/app/validation/HostValidator.Builder#build()()` Returns a new `https://developer.android.com/reference/androidx/car/app/validation/HostValidator` |

## Public constructors

### Builder

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/car-app#1.0.0)

```
public Builder(@NonNull Context context)
```

Returns an empty `https://developer.android.com/reference/androidx/car/app/validation/HostValidator.Builder` instance.

## Public methods

### addAllowedHost

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/car-app#1.0.0)

```
public @NonNull HostValidator.Builder addAllowedHost(@NonNull String packageName, @NonNull String digest)
```

Adds a host to the allow list.

| Parameters |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html packageName` | host package name (as reported by `https://developer.android.com/reference/android/content/pm/PackageManager.html`) |
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/java/lang/String.html digest` | SHA256 digest of the DER encoding of the allow-listed host certificate, formatted as 32 lowercase 2 digits hexadecimal values separated by colon (e.g.:"000102030405060708090a0b0c0d0e0f101112131415 161718191a1b1c1d1e1f"). When using [signature rotation](https://developer.android.com/about/versions/pie/android-9.0#apk-key-rotation), this digest should correspond to the initial signing certificate |

### addAllowedHosts

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/car-app#1.0.0)

```
public @NonNull HostValidator.Builder addAllowedHosts(@ArrayRes int allowListedHostsRes)
```

Adds a hosts to the allow list.

Allow-listed hosts are retrieved from a string-array resource, encoded as \[digest,package-name\] pairs separated by comma. See `https://developer.android.com/reference/androidx/car/app/validation/HostValidator.Builder#addAllowedHost(java.lang.String,java.lang.String)` for details on signature digest and package-name formatting.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/ArrayRes int allowListedHostsRes` | string-array resource identifier |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | if the provided resource doesn't exist or if the entries in the given resource are not formatted as expected |

### build

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/car-app#1.0.0)

```
public @NonNull HostValidator build()
```

Returns a new `https://developer.android.com/reference/androidx/car/app/validation/HostValidator`