# Configuring APN Settings

> Deploy one or more APNs to managed Android Devices with apnPolicy from an Applivery Policy, without configuring them by hand on each Device.

Source: https://docs.applivery.com/en/device-management/android/policies/configure-apn-settings/  •  Last updated: 2026-10-16

**Key topics:** apnPolicy and overrideApns, Configuring the APN in the Policy, ApnSetting field reference, Checking on the Device, Troubleshooting, Applivery, Android, Android Management API, APN

---

**TL;DR:** You deploy an APN with the Android Policy's apnPolicy object: turn on overrideApns and declare one or more apnSettings. It requires Android 10 or later on fully managed Devices, and Android 13 or later, ENTERPRISE type only, on work profiles.

The APN (Access Point Name) is the access point the Device uses to connect to its carrier's data network. When a fleet uses corporate SIMs with a private APN (for example, to reach the company's internal network through the carrier), configuring it by hand on every Device doesn't scale. With `apnPolicy`, you declare it once in the Policy and it reaches every assigned Device, without any user action.

Applivery sends the Android Policy configuration to Devices through the Android Management API (AMAPI), so the fields and requirements for `apnPolicy` are the ones Google defines in its [policy reference](https://developers.google.com/android/management/reference/rest/v1/enterprises.policies).

## Prerequisites

<table style="min-width: 50px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p>Requirement</p></th><th colspan="1" rowspan="1"><p>Details</p></th></tr><tr><td colspan="1" rowspan="1"><p>Device with an active SIM or eSIM</p></td><td colspan="1" rowspan="1"><p>The APN only affects the carrier's mobile data connection.</p></td></tr><tr><td colspan="1" rowspan="1"><p>Android Device enrolled in Applivery</p></td><td colspan="1" rowspan="1"><p>With an Android Enterprise Policy assigned.</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>Fully managed</strong></p></td><td colspan="1" rowspan="1"><p>Android 10 or later. Multiple APN types are supported.</p></td></tr><tr><td colspan="1" rowspan="1"><p><strong>Work profile</strong></p></td><td colspan="1" rowspan="1"><p>Android 13 or later, and only APNs with the <code>ENTERPRISE</code> type.</p></td></tr><tr><td colspan="1" rowspan="1"><p>APN details provided by the carrier</p></td><td colspan="1" rowspan="1"><p>APN name, username and password if applicable, authentication type, MCC+MNC, proxy, etc.</p></td></tr></tbody></table>

:::info
If the Device doesn't meet the minimum version, nothing visibly fails: the setting is discarded and the Device reports a non-compliance reason (`API_LEVEL` or `MANAGEMENT_MODE`).
:::

## How it works

`apnPolicy` has two fields:

-   `overrideApns`: turns Policy-defined APNs on or off. Values: `OVERRIDE_APNS_UNSPECIFIED`, `OVERRIDE_APNS_DISABLED` and `OVERRIDE_APNS_ENABLED`. With `OVERRIDE_APNS_ENABLED`, the Policy's APNs can take precedence over the Device's other APNs. The behavior matches Android's `DevicePolicyManager.setOverrideApnsEnabled`.
    
-   `apnSettings`: the list of APNs. Each entry is an `ApnSetting` object.
    

:::warning
APNs in the list can't conflict with each other. Two entries conflict when they match on all of these fields: `numericOperatorId`, `apn`, `proxyAddress`, `proxyPort`, `mmsProxyAddress`, `mmsProxyPort`, `mmsc`, `mvnoType`, `protocol` and `roamingProtocol`. If there's a conflict, the Policy is rejected.
:::

## Configure an APN

**Open the Policy**

Once in the [**Applivery Dashboard**](https://dashboard.applivery.io/), go to **Policies** 1, open the Android Policy, or [create a new one](https://docs.applivery.com/en/device-management/general-settings/create-device-policies/).

From the left-hand menu, click the **Network** 2 section and look for the **Apn Policy** 3 configuration and set `overrideApns` to `OVERRIDE_APNS_ENABLED`.

![apn](https://docs.applivery.com/int/_r2/media/09ac0a4e-3ad8-478f-9f15-3474973eec71/4ea3c067-e3b4-4ec5-a2b2-f6fea6fe403e.png)

**Add the APNs**

Add one `apnSettings` entry per APN and fill in at least the required fields: `apn`, `displayName` and `apnTypes`.

**Save and assign**

Click **Save** and assign the Policy to the relevant Devices or groups.

## Field reference

### Required

<table style="min-width: 50px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p>Field</p></th><th colspan="1" rowspan="1"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1"><p><code>apn</code></p></td><td colspan="1" rowspan="1"><p>The APN name. The Policy is rejected if it's empty.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>displayName</code></p></td><td colspan="1" rowspan="1"><p>A friendly name for the APN. The Policy is rejected if it's empty.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>apnTypes</code></p></td><td colspan="1" rowspan="1"><p>List of usage types for the APN. Rejected if it's empty, contains <code>APN_TYPE_UNSPECIFIED</code> or has duplicates.</p></td></tr></tbody></table>

`apnTypes` values: `ENTERPRISE`, `BIP`, `CBS`, `DEFAULT`, `DUN`, `EMERGENCY`, `FOTA`, `HIPRI`, `IA`, `IMS`, `MCX`, `MMS`, `RCS`, `SUPL`, `VSIM` and `XCAP`.

:::info
On fully managed Devices you can combine several types. On work profiles, `ENTERPRISE` is the only type allowed. Types the Device or management mode doesn't support are ignored; if none is valid, the whole entry is ignored and `INVALID_VALUE` is reported.
:::

### Optional

<table style="min-width: 50px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p>Field</p></th><th colspan="1" rowspan="1"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1"><p><code>authType</code></p></td><td colspan="1" rowspan="1"><p>Authentication type: <code>NONE</code>, <code>PAP</code>, <code>CHAP</code> or <code>PAP_OR_CHAP</code>.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>username</code> / <code>password</code></p></td><td colspan="1" rowspan="1"><p>APN credentials, if the carrier requires them.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>numericOperatorId</code></p></td><td colspan="1" rowspan="1"><p>Numeric operator ID: MCC (country code) + MNC (network code).</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>mvnoType</code></p></td><td colspan="1" rowspan="1"><p>MVNO match type: <code>GID</code>, <code>ICCID</code>, <code>IMSI</code> or <code>SPN</code>.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>carrierId</code></p></td><td colspan="1" rowspan="1"><p>Carrier ID. <code>0</code> means not set; negative values aren't allowed.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>protocol</code> / <code>roamingProtocol</code></p></td><td colspan="1" rowspan="1"><p>Connection protocol, normal and roaming: <code>IP</code>, <code>IPV4V6</code>, <code>IPV6</code>, <code>NON_IP</code>, <code>PPP</code> or <code>UNSTRUCTURED</code>.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>networkTypes</code></p></td><td colspan="1" rowspan="1"><p>Radio technologies the APN can use: <code>EDGE</code>, <code>GPRS</code>, <code>GSM</code>, <code>HSDPA</code>, <code>HSPA</code>, <code>HSPAP</code>, <code>HSUPA</code>, <code>IWLAN</code>, <code>LTE</code>, <code>NR</code>, <code>TD_SCDMA</code> and <code>UMTS</code>. No duplicates allowed.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>proxyAddress</code> / <code>proxyPort</code></p></td><td colspan="1" rowspan="1"><p>APN proxy. Port <code>0</code> means not set.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>mmsc</code> / <code>mmsProxyAddress</code> / <code>mmsProxyPort</code></p></td><td colspan="1" rowspan="1"><p>Multimedia messaging (MMS) parameters. The MMS proxy address is an IP or a hostname, not a URL.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>mtuV4</code> / <code>mtuV6</code></p></td><td colspan="1" rowspan="1"><p>MTU size in bytes for IPv4 and IPv6. Requires Android 13 or later.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>alwaysOnSetting</code></p></td><td colspan="1" rowspan="1"><p><code>NOT_ALWAYS_ON</code> or <code>ALWAYS_ON</code>. Whether user plane resources are activated on every CM-IDLE to CM-CONNECTED transition (3GPP TS 23.501, section 5.6.13).</p></td></tr></tbody></table>

## Check that it was applied

1.  On the Device, open **Settings → Mobile networks → Access Point Names** (the path varies by manufacturer) and check that the APN appears with the `displayName` you defined.
    
2.  Check that the Device has a mobile data connection with Wi-Fi turned off.
    
3.  If the APN doesn't appear, review the Device's non-compliance reasons.
    

## Troubleshooting

<table style="min-width: 75px;"><colgroup><col style="min-width: 25px;"><col style="min-width: 25px;"><col style="min-width: 25px;"></colgroup><tbody><tr><th colspan="1" rowspan="1"><p>Symptom</p></th><th colspan="1" rowspan="1"><p>Likely cause</p></th><th colspan="1" rowspan="1"><p>What to do</p></th></tr><tr><td colspan="1" rowspan="1"><p>The Device reports <code>API_LEVEL</code></p></td><td colspan="1" rowspan="1"><p>Android lower than 10 (any mode), or <code>mtuV4</code>/<code>mtuV6</code> used on Android lower than 13.</p></td><td colspan="1" rowspan="1"><p>Update the Device or remove the fields that require Android 13.</p></td></tr><tr><td colspan="1" rowspan="1"><p>The Device reports <code>MANAGEMENT_MODE</code></p></td><td colspan="1" rowspan="1"><p>Work profile on Android lower than 13, or with an <code>apnTypes</code> other than <code>ENTERPRISE</code>.</p></td><td colspan="1" rowspan="1"><p>Use only <code>ENTERPRISE</code> on work profiles, with Android 13 or later.</p></td></tr><tr><td colspan="1" rowspan="1"><p><code>INVALID_VALUE</code> is reported</p></td><td colspan="1" rowspan="1"><p>None of the <code>apnTypes</code> is supported by the Device or management mode.</p></td><td colspan="1" rowspan="1"><p>Review the declared types.</p></td></tr><tr><td colspan="1" rowspan="1"><p>The Policy is rejected when saving</p></td><td colspan="1" rowspan="1"><p><code>apn</code>, <code>displayName</code> or <code>apnTypes</code> is missing; there are duplicates in <code>apnTypes</code> or <code>networkTypes</code>; or APNs conflict.</p></td><td colspan="1" rowspan="1"><p>Fix the fields and check that no two APNs share the same key values.</p></td></tr><tr><td colspan="1" rowspan="1"><p>The APN applies but there's no data</p></td><td colspan="1" rowspan="1"><p>Wrong carrier details (APN, authentication, protocol).</p></td><td colspan="1" rowspan="1"><p>Confirm the parameters with the carrier and try <code>protocol</code> and <code>roamingProtocol</code> set to <code>IPV4V6</code>.</p></td></tr></tbody></table>
