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

# PreferentialNetworkServiceConfig.Builder

*** ** * ** ***


`
public
static
final

class
PreferentialNetworkServiceConfig.Builder
`


`

extends https://developer.android.com/reference/java/lang/Object


`

`


`

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.app.admin.PreferentialNetworkServiceConfig.Builder |

<br />

*** ** * ** ***

Builder used to create `https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig` objects. Specify the
preferred Network preference

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder#Builder()() ` Constructs an empty Builder with preferential network disabled by default. |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig` | ` https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder#build()() ` Returns an instance of `https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig` created from the fields set on this builder. |
| ` https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder` | ` https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder#setEnabled(boolean)(boolean isEnabled) ` Set the preferential network service enabled state. |
| ` https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder` | ` https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder#setExcludedUids(int[])(int[] uids) ` Set the array of uids who are not allowed through this preferential network service. |
| ` https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder` | ` https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder#setFallbackToDefaultConnectionAllowed(boolean)(boolean allowFallbackToDefaultConnection) ` Set whether fallback to the device-wide default network is allowed. |
| ` https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder` | ` https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder#setIncludedUids(int[])(int[] uids) ` Set the array of uids whose network access will go through this preferential network service. |
| ` https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder` | ` https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder#setNetworkId(int)(int preferenceId) ` Set the preferential network identifier. |
| ` https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder` | ` https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder#setShouldBlockNonMatchingNetworks(boolean)(boolean blockNonMatchingNetworks) ` Set whether to block UIDs from using other networks than the preferential service. |

### 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 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Builder ()
```

Constructs an empty Builder with preferential network disabled by default.

<br />

## Public methods

### build

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

```
public PreferentialNetworkServiceConfig build ()
```

Returns an instance of `https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig` created from the fields
set on this builder.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig` | This value cannot be `null`. <br /> |

### setEnabled

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

```
public PreferentialNetworkServiceConfig.Builder setEnabled (boolean isEnabled)
```

Set the preferential network service enabled state. Default value is false.

<br />

| Parameters ||
|---|---|
| `isEnabled` | `boolean`: the desired network preference to use, true to enable else false <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder` | The builder to facilitate chaining. This value cannot be `null`. <br /> |

### setExcludedUids

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

```
public PreferentialNetworkServiceConfig.Builder setExcludedUids (int[] uids)
```

Set the array of uids who are not allowed through this preferential network service.
Included UIDs and Excluded UIDs can't both be non-empty. if both are empty, it means this
request applies to all uids in the user profile. if included is not empty, then only
included UIDs are applied. if excluded is not empty, then it is all uids in the user
profile except these UIDs.

<br />

| Parameters ||
|---|---|
| `uids` | `int`: array of excluded uids. This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder` | The builder to facilitate chaining. This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder#setIncludedUids(int[])`

### setFallbackToDefaultConnectionAllowed

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

```
public PreferentialNetworkServiceConfig.Builder setFallbackToDefaultConnectionAllowed (boolean allowFallbackToDefaultConnection)
```

Set whether fallback to the device-wide default network is allowed.

This boolean configures whether the default connection (e.g. general cell network or
wifi) should be used if no preferential network service connection is available. If true,
the default connection will be used when no preferential service is available. If false,
the UIDs subject to this configuration will have no default network. Note that while this
boolean determines whether the UIDs subject to this configuration have a default network
in the absence of a preferential service, apps can still explicitly decide to use another
network than their default network by requesting them from the system. This boolean does
not determine whether the UIDs are blocked from using such other networks. Use `https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder#setShouldBlockNonMatchingNetworks(boolean)` to specify this.

The default value is true.

<br />

| Parameters ||
|---|---|
| `allowFallbackToDefaultConnection` | `boolean`: true if fallback is allowed else false <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder` | The builder to facilitate chaining. This value cannot be `null`. <br /> |

### setIncludedUids

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

```
public PreferentialNetworkServiceConfig.Builder setIncludedUids (int[] uids)
```

Set the array of uids whose network access will go through this preferential network
service. Included UIDs and Excluded UIDs can't both be non-empty. if both are empty, it
means this request applies to all uids in the user profile. if included is not empty,
then only included UIDs are applied. if excluded is not empty, then it is all uids in the
user profile except these UIDs.

<br />

| Parameters ||
|---|---|
| `uids` | `int`: array of included uids. This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder` | The builder to facilitate chaining. This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder#setExcludedUids(int[])`

### setNetworkId

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

```
public PreferentialNetworkServiceConfig.Builder setNetworkId (int preferenceId)
```

Set the preferential network identifier. preference identifier is applicable only if
preferential network service is enabled.

<br />

| Parameters ||
|---|---|
| `preferenceId` | `int`: preference Id. Value is one of the following: - `https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig#PREFERENTIAL_NETWORK_ID_1` - `https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig#PREFERENTIAL_NETWORK_ID_2` - `https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig#PREFERENTIAL_NETWORK_ID_3` - `https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig#PREFERENTIAL_NETWORK_ID_4` - `https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig#PREFERENTIAL_NETWORK_ID_5` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder` | The builder to facilitate chaining. This value cannot be `null`. <br /> |

### setShouldBlockNonMatchingNetworks

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

```
public PreferentialNetworkServiceConfig.Builder setShouldBlockNonMatchingNetworks (boolean blockNonMatchingNetworks)
```

Set whether to block UIDs from using other networks than the preferential service.

Apps can inspect the list of available networks on the device and choose to use
multiple of them concurrently for performance, privacy or other reasons. This boolean
configures whether the concerned UIDs should be blocked from using networks that do not
match the configured preferential network service even if these networks are otherwise
open to all apps.

The default value is false. This value can only be set to `true` if `https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder#setFallbackToDefaultConnectionAllowed(boolean)` is set to `false`, because
allowing fallback but blocking it does not make sense. Failure to comply with this
constraint will throw when building the object.

<br />

| Parameters ||
|---|---|
| `blockNonMatchingNetworks` | `boolean`: true if UIDs should be blocked from using non-matching networks. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/admin/PreferentialNetworkServiceConfig.Builder` | The builder to facilitate chaining. This value cannot be `null`. <br /> |