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

# ApnSetting.Builder

*** ** * ** ***

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

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.telephony.data.ApnSetting.Builder |

<br />

*** ** * ** ***

Provides a convenient way to set the fields of a `https://developer.android.com/reference/android/telephony/data/ApnSetting` when creating a new instance. The following settings are required to build an `ApnSetting`:

- apnTypeBitmask
- apnName
- entryName

The example below shows how you might create a new `ApnSetting`:

    // Create an MMS proxy address with a hostname. A network might not be
    // available, so supply a placeholder (0.0.0.0) IPv4 address to avoid DNS lookup.
    String host = "mms.example.com";
    byte[] ipAddress = new byte[4];
    InetAddress mmsProxy;
    try {
      mmsProxy = InetAddress.getByAddress(host, ipAddress);
    } catch (UnknownHostException e) {
      e.printStackTrace();
      return;
    }

    ApnSetting apn = new ApnSetting.Builder()
        .setApnTypeBitmask(ApnSetting.TYPE_DEFAULT | ApnSetting.TYPE_MMS)
        .setApnName("apn.example.com")
        .setEntryName("Example Carrier APN")
        .setMmsc(Uri.parse("http://mms.example.com:8002"))
        .setMmsProxyAddress(mmsProxy)
        .setMmsProxyPort(8799)
        .build();

<br />

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#Builder()() ` Default constructor for Builder. |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#build()() ` Builds `https://developer.android.com/reference/android/telephony/data/ApnSetting` from this builder. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setAlwaysOn(boolean)(boolean alwaysOn) ` Sets whether the PDU session brought up by this APN should always be on. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setApnName(java.lang.String)(https://developer.android.com/reference/java/lang/String apnName) ` Sets the name of the APN. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setApnTypeBitmask(int)(int apnTypeBitmask) ` Sets the bitmask of APN types. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setAuthType(int)(int authType) ` Sets the authentication type of the APN. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setCarrierEnabled(boolean)(boolean carrierEnabled) ` Sets the current status for this APN. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setCarrierId(int)(int carrierId) ` Sets the carrier id for this APN. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setEntryName(java.lang.String)(https://developer.android.com/reference/java/lang/String entryName) ` Sets a human-readable name that describes the APN. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setMmsProxyAddress(java.net.InetAddress)(https://developer.android.com/reference/java/net/InetAddress mmsProxy) ` *This method was deprecated in API level 29. use `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setMmsProxyAddress(java.lang.String)` instead.* |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setMmsProxyAddress(java.lang.String)(https://developer.android.com/reference/java/lang/String mmsProxy) ` Sets the MMS proxy address of the APN. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setMmsProxyPort(int)(int mmsPort) ` Sets the MMS proxy port of the APN. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setMmsc(android.net.Uri)(https://developer.android.com/reference/android/net/Uri mmsc) ` Sets the MMSC Uri of the APN. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setMtuV4(int)(int mtuV4) ` Set the default MTU (Maximum Transmission Unit) size in bytes of the IPv4 routes brought up by this APN setting. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setMtuV6(int)(int mtuV6) ` Set the default MTU (Maximum Transmission Unit) size in bytes of the IPv6 routes brought up by this APN setting. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setMvnoType(int)(int mvnoType) ` Sets the MVNO match type for this APN. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setNetworkTypeBitmask(int)(int networkTypeBitmask) ` Sets Radio Technology (Network Type) info for this APN. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setOperatorNumeric(java.lang.String)(https://developer.android.com/reference/java/lang/String operatorNumeric) ` Sets the numeric operator ID for the APN. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setPassword(java.lang.String)(https://developer.android.com/reference/java/lang/String password) ` Sets the APN password of the APN. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setPersistent(boolean)(boolean isPersistent) ` Set if the APN setting should be persistent/non-persistent in modem. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setProfileId(int)(int profileId) ` Sets the profile id to which the APN saved in modem. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setProtocol(int)(int protocol) ` Sets the protocol to use to connect to this APN. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setProxyAddress(java.net.InetAddress)(https://developer.android.com/reference/java/net/InetAddress proxy) ` *This method was deprecated in API level 29. use `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setProxyAddress(java.lang.String)` instead.* |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setProxyAddress(java.lang.String)(https://developer.android.com/reference/java/lang/String proxy) ` Sets the proxy address of the APN. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setProxyPort(int)(int port) ` Sets the proxy port of the APN. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setRoamingProtocol(int)(int roamingProtocol) ` Sets the protocol to use to connect to this APN when the device is roaming. |
| ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | ` https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setUser(java.lang.String)(https://developer.android.com/reference/java/lang/String user) ` Sets the APN username of the APN. |

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

```
public Builder ()
```

Default constructor for Builder.

<br />

## Public methods

### build

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

```
public ApnSetting build ()
```

Builds `https://developer.android.com/reference/android/telephony/data/ApnSetting` from this builder.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting` | `null` if `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setApnName(java.lang.String)` or `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setEntryName(java.lang.String)` is empty, or `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setApnTypeBitmask(int)` doesn't contain a valid bit, `https://developer.android.com/reference/android/telephony/data/ApnSetting` built from this builder otherwise. <br /> |

### setAlwaysOn

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

```
public ApnSetting.Builder setAlwaysOn (boolean alwaysOn)
```

Sets whether the PDU session brought up by this APN should always be on. See 3GPP TS 23.501 section 5.6.13

<br />

| Parameters ||
|---|---|
| `alwaysOn` | `boolean`: the always on status to set for this APN <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

### setApnName

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

```
public ApnSetting.Builder setApnName (String apnName)
```

Sets the name of the APN.

<br />

| Parameters ||
|---|---|
| `apnName` | `String`: the name to set for the APN. This value may be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

### setApnTypeBitmask

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

```
public ApnSetting.Builder setApnTypeBitmask (int apnTypeBitmask)
```

Sets the bitmask of APN types.

Apn types are usage categories for an APN entry. One APN entry may support multiple APN types, eg, a single APN may service regular internet traffic ("default") as well as MMS-specific connections.

The bitmask of APN types is calculated from APN types defined in `https://developer.android.com/reference/android/telephony/data/ApnSetting`.

<br />

| Parameters ||
|---|---|
| `apnTypeBitmask` | `int`: a bitmask describing the types of the APN. Value is either `0` or a combination of the following: - `https://developer.android.com/reference/android/telephony/data/ApnSetting#TYPE_DEFAULT` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#TYPE_MMS` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#TYPE_SUPL` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#TYPE_DUN` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#TYPE_HIPRI` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#TYPE_FOTA` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#TYPE_IMS` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#TYPE_CBS` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#TYPE_IA` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#TYPE_EMERGENCY` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#TYPE_MCX` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#TYPE_XCAP` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#TYPE_BIP` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#TYPE_VSIM` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#TYPE_ENTERPRISE` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#TYPE_RCS` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#TYPE_OEM_PAID` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#TYPE_OEM_PRIVATE` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

### setAuthType

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

```
public ApnSetting.Builder setAuthType (int authType)
```

Sets the authentication type of the APN.

<br />

| Parameters ||
|---|---|
| `authType` | `int`: the authentication type to set for the APN. Value is one of the following: - `https://developer.android.com/reference/android/telephony/data/ApnSetting#AUTH_TYPE_NONE` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#AUTH_TYPE_PAP` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#AUTH_TYPE_CHAP` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#AUTH_TYPE_PAP_OR_CHAP` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

### setCarrierEnabled

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

```
public ApnSetting.Builder setCarrierEnabled (boolean carrierEnabled)
```

Sets the current status for this APN.

<br />

| Parameters ||
|---|---|
| `carrierEnabled` | `boolean`: the current status to set for this APN <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

### setCarrierId

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

```
public ApnSetting.Builder setCarrierId (int carrierId)
```

Sets the carrier id for this APN. See `https://developer.android.com/reference/android/telephony/TelephonyManager#getSimCarrierId()` which provides more background for what a carrier ID is.

<br />

| Parameters ||
|---|---|
| `carrierId` | `int`: the carrier id to set for this APN <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

### setEntryName

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

```
public ApnSetting.Builder setEntryName (String entryName)
```

Sets a human-readable name that describes the APN.

<br />

| Parameters ||
|---|---|
| `entryName` | `String`: the entry name to set for the APN. This value may be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

### setMmsProxyAddress

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

```
public ApnSetting.Builder setMmsProxyAddress (InetAddress mmsProxy)
```

<br />

**This method was deprecated in API level 29.**   

use `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setMmsProxyAddress(java.lang.String)` instead.

Sets the address of an MMS proxy for the APN. The MMS proxy address can be an IP address or hostname. If `mmsProxy` contains both an IP address and hostname, this method ignores the IP address.

The `https://developer.android.com/reference/java/net/InetAddress` methods `https://developer.android.com/reference/java/net/InetAddress#getByName(java.lang.String)` and `https://developer.android.com/reference/java/net/InetAddress#getAllByName(java.lang.String)` require DNS for hostname resolution. To avoid this requirement when setting a hostname, call `https://developer.android.com/reference/java/net/InetAddress#getByAddress(java.lang.String,%20byte[])` with both the hostname and a placeholder IP address. See `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` for an example.

<br />

| Parameters ||
|---|---|
| `mmsProxy` | `InetAddress`: the MMS proxy address to set for the APN <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | <br /> |

### setMmsProxyAddress

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

```
public ApnSetting.Builder setMmsProxyAddress (String mmsProxy)
```

Sets the MMS proxy address of the APN.

<br />

| Parameters ||
|---|---|
| `mmsProxy` | `String`: the MMS proxy address to set for the APN. This value may be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

### setMmsProxyPort

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

```
public ApnSetting.Builder setMmsProxyPort (int mmsPort)
```

Sets the MMS proxy port of the APN.

<br />

| Parameters ||
|---|---|
| `mmsPort` | `int`: the MMS proxy port to set for the APN <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

### setMmsc

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

```
public ApnSetting.Builder setMmsc (Uri mmsc)
```

Sets the MMSC Uri of the APN.

<br />

| Parameters ||
|---|---|
| `mmsc` | `Uri`: the MMSC Uri to set for the APN. This value may be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

### setMtuV4

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

```
public ApnSetting.Builder setMtuV4 (int mtuV4)
```

Set the default MTU (Maximum Transmission Unit) size in bytes of the IPv4 routes brought up by this APN setting. Note this value will only be used when MTU size is not provided in `DataCallResponse#getMtuV4()` during network bring up.

<br />

| Parameters ||
|---|---|
| `mtuV4` | `int`: the MTU size in bytes of the route. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

### setMtuV6

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

```
public ApnSetting.Builder setMtuV6 (int mtuV6)
```

Set the default MTU (Maximum Transmission Unit) size in bytes of the IPv6 routes brought up by this APN setting. Note this value will only be used when MTU size is not provided in `DataCallResponse#getMtuV6()` during network bring up.

<br />

| Parameters ||
|---|---|
| `mtuV6` | `int`: the MTU size in bytes of the route. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

### setMvnoType

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

```
public ApnSetting.Builder setMvnoType (int mvnoType)
```

Sets the MVNO match type for this APN.

<br />

| Parameters ||
|---|---|
| `mvnoType` | `int`: the MVNO match type to set for this APN. Value is one of the following: - `https://developer.android.com/reference/android/telephony/data/ApnSetting#MVNO_TYPE_SPN` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#MVNO_TYPE_IMSI` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#MVNO_TYPE_GID` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#MVNO_TYPE_ICCID` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

### setNetworkTypeBitmask

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

```
public ApnSetting.Builder setNetworkTypeBitmask (int networkTypeBitmask)
```

Sets Radio Technology (Network Type) info for this APN.

<br />

| Parameters ||
|---|---|
| `networkTypeBitmask` | `int`: the Radio Technology (Network Type) info <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

### setOperatorNumeric

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

```
public ApnSetting.Builder setOperatorNumeric (String operatorNumeric)
```

Sets the numeric operator ID for the APN. Numeric operator ID is defined as `https://developer.android.com/reference/android/provider/Telephony.Carriers#MCC` + `https://developer.android.com/reference/android/provider/Telephony.Carriers#MNC`.

<br />

| Parameters ||
|---|---|
| `operatorNumeric` | `String`: the numeric operator ID to set for this entry. This value may be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

### setPassword

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

```
public ApnSetting.Builder setPassword (String password)
```

Sets the APN password of the APN.

<br />

| Parameters ||
|---|---|
| `password` | `String`: the APN password to set for the APN. This value may be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/provider/Telephony.Carriers#PASSWORD`

### setPersistent

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

```
public ApnSetting.Builder setPersistent (boolean isPersistent)
```

Set if the APN setting should be persistent/non-persistent in modem.

<br />

| Parameters ||
|---|---|
| `isPersistent` | `boolean`: `true` if this APN setting should be persistent/non-persistent in modem. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | The same instance of the builder. This value cannot be `null`. <br /> |

### setProfileId

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

```
public ApnSetting.Builder setProfileId (int profileId)
```

Sets the profile id to which the APN saved in modem.

<br />

| Parameters ||
|---|---|
| `profileId` | `int`: the profile id to set for the APN. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

### setProtocol

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

```
public ApnSetting.Builder setProtocol (int protocol)
```

Sets the protocol to use to connect to this APN.

Protocol is one of the `PDP_type` values in TS 27.007 section 10.1.1.

<br />

| Parameters ||
|---|---|
| `protocol` | `int`: the protocol to set to use to connect to this APN. Value is one of the following: - `https://developer.android.com/reference/android/telephony/data/ApnSetting#PROTOCOL_IP` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#PROTOCOL_IPV6` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#PROTOCOL_IPV4V6` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#PROTOCOL_PPP` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#PROTOCOL_NON_IP` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#PROTOCOL_UNSTRUCTURED` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

### setProxyAddress

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

```
public ApnSetting.Builder setProxyAddress (InetAddress proxy)
```

<br />

**This method was deprecated in API level 29.**   

use `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder#setProxyAddress(java.lang.String)` instead.

Sets the address of an HTTP proxy for the APN. The proxy address can be an IP address or hostname. If `proxy` contains both an IP address and hostname, this method ignores the IP address.

The `https://developer.android.com/reference/java/net/InetAddress` methods `https://developer.android.com/reference/java/net/InetAddress#getAllByName(java.lang.String)` require DNS for hostname resolution. To avoid this requirement when setting a hostname, call `https://developer.android.com/reference/java/net/InetAddress#getByAddress(java.lang.String,%20byte[])` with both the hostname and a placeholder IP address. See `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` for an example.

<br />

| Parameters ||
|---|---|
| `proxy` | `InetAddress`: the proxy address to set for the APN <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | <br /> |

### setProxyAddress

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

```
public ApnSetting.Builder setProxyAddress (String proxy)
```

Sets the proxy address of the APN.

<br />

| Parameters ||
|---|---|
| `proxy` | `String`: the proxy address to set for the APN. This value may be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

### setProxyPort

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

```
public ApnSetting.Builder setProxyPort (int port)
```

Sets the proxy port of the APN.

<br />

| Parameters ||
|---|---|
| `port` | `int`: the proxy port to set for the APN <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

### setRoamingProtocol

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

```
public ApnSetting.Builder setRoamingProtocol (int roamingProtocol)
```

Sets the protocol to use to connect to this APN when the device is roaming.

Roaming protocol is one of the `PDP_type` values in TS 27.007 section 10.1.1.

<br />

| Parameters ||
|---|---|
| `roamingProtocol` | `int`: the protocol to set to use to connect to this APN when roaming. Value is one of the following: - `https://developer.android.com/reference/android/telephony/data/ApnSetting#PROTOCOL_IP` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#PROTOCOL_IPV6` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#PROTOCOL_IPV4V6` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#PROTOCOL_PPP` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#PROTOCOL_NON_IP` - `https://developer.android.com/reference/android/telephony/data/ApnSetting#PROTOCOL_UNSTRUCTURED` |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |

### setUser

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

```
public ApnSetting.Builder setUser (String user)
```

Sets the APN username of the APN.

<br />

| Parameters ||
|---|---|
| `user` | `String`: the APN username to set for the APN. This value may be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/telephony/data/ApnSetting.Builder` | This value cannot be `null`. <br /> |