The Android Connection Policy lets you centrally manage how Android devices connect to networks and communicate — including Wi‑Fi, mobile data, tethering, VPN, Bluetooth, radio states, and advanced enterprise networking options.
Use this policy to:
Enforce consistent network behavior on corporate or BYOD devices
Reduce unexpected roaming / data charges
Lock down which networks devices can join
Improve security by restricting insecure Wi‑Fi and unmanaged VPNs
Support advanced enterprise networking (APNs, slices, preferential networks)
Overview
Policy name: Android Connection Policy
Description:
This policy is used to manage network, connectivity, and communication settings on the device.
Minimum OS: Android 9+ (some fields require newer versions)
Supported platforms: Android
Ownership types:
Company-owned devices
BYOD (work profile) devices
Key Capabilities
At a high level, Android Connection Policy lets you:
Control mobile data and roaming behavior
Restrict or configure Wi‑Fi (including SSIDs, roaming, and security level)
Configure APNs (including override APNs and enterprise APNs)
Enable/disable tethering / hotspot
Control Bluetooth sharing and USB data access
Lock or influence radio states (Wi‑Fi, 2G, airplane mode, UWB)
Manage SMS, outgoing calls, and cell broadcasts
Configure preferential network services and enterprise slices
Control whether users may reset network settings or change VPN / Wi‑Fi configs
Allow devices to temporarily connect to any network to recover policies (network escape hatch)
Field Reference
Below is a breakdown of each field as it appears in Swif.ai, what it does, and when to use it.
1. Disable Cell Broadcasts Configuration
Field name: cellBroadcastsConfigDisabled
Type: Boolean
Default: false
Min Android: 9+
When enabled (true), users cannot configure cell broadcast settings (e.g., Wireless Emergency Alerts). This ensures consistent emergency broadcast behavior across all managed devices.
Use cases:
Enforce company or regulatory requirements for emergency alerts
Prevent users from disabling critical alerts
2. Disable Data Roaming
Field name: dataRoamingDisabled
Type: Boolean
Default: false
Min Android: 9+
When enabled (true), the device cannot use mobile data while roaming outside its home network. This helps prevent unexpected roaming charges.
Use cases:
Corporate phone plans where roaming is restricted or expensive
Devices used primarily domestically that should never roam internationally
3. Disable Mobile Networks Configuration
Field name: mobileNetworksConfigDisabled
Type: Boolean
Default: false
Min Android: 9+
When enabled (true), users cannot change mobile network settings, such as network operator selection.
Use cases:
Prevent users from switching to unapproved carriers
Keep consistent cellular configuration on field or kiosk devices
4. Device Connectivity Management
Field name: deviceConnectivityManagement
Type: Dictionary
Min Android: 9+ (subfields vary)
This is a container for multiple connectivity controls such as APNs, Wi‑Fi, tethering, USB, Bluetooth, and advanced networking behavior.
4.1 APN Policy
Field: apnPolicy
Type: Dictionary
Min Android: 9+
Controls Access Point Names (APNs) that devices can use.
4.1.1 APN Settings
Field: apnSettings
Type: Array of dictionaries (APN definitions)
Min Android: 10+
Each entry defines a custom APN the device can use (or override default APNs).
For each APN object:
Display Name (
displayName, required, string)Friendly name for admins/users.
APN (
apn, required, string)Actual access point name used by the carrier.
APN Types (
apnTypes, required, array of strings)What the APN is used for (e.g.,
ENTERPRISE,DEFAULT,IMS,MMS, etc.).Must be unique; no duplicates.
On work profiles, only
ENTERPRISEis allowed.
Other optional APN fields (Android 10+ unless stated):
proxyAddress(string) – APN proxy host (optional)proxyPort(integer, 0–65535) – APN proxy port (0 = not set)username/password(string) – APN credentialsauthType(string, defaultAUTH_TYPE_UNSPECIFIED) – one of:NONE,PAP,CHAP,PAP_OR_CHAP
protocol/roamingProtocol(string, defaultPROTOCOL_UNSPECIFIED) – one of:IP,IPV6,IPV4V6,PPP,NON_IP,UNSTRUCTURED
mmsc(string) – MMSC URLmmsProxyAddress(string) – MMS proxy host (IP or hostname)mmsProxyPort(integer, 0–65535)numericOperatorId(string) – MCC+MNC (e.g.,310260)carrierId(integer) – APN carrier IDmvnoType(string, defaultMVNO_TYPE_UNSPECIFIED) –GID,ICCID,IMSI,SPNalwaysOnSetting(string, defaultALWAYS_ON_SETTING_UNSPECIFIED) –ALWAYS_ONorNOT_ALWAYS_ONnetworkTypes(array of strings, no duplicates) – e.g.,LTE,NR,UMTS, etc.mtuV4(integer, Android 13+) – IPv4 MTU, 0 = not setmtuV6(integer, Android 13+) – IPv6 MTU, 0 = not set
Use cases:
Provision enterprise APNs without user input
Restrict devices to carrier-approved or enterprise-only APNs
Optimize for specific network technologies or MTUs
4.1.2 Override APNs
Field: overrideApns
Type: String
Default: OVERRIDE_APNS_UNSPECIFIED
Options (Android 10+):
OVERRIDE_APNS_UNSPECIFIEDOVERRIDE_APNS_DISABLEDOVERRIDE_APNS_ENABLED
When set to OVERRIDE_APNS_ENABLED, only override APNs from apnSettings are used; all other APNs are ignored.
Use cases:
Strictly force traffic through managed APNs
Prevent devices from falling back to user- or carrier-defined APNs
4.2 Bluetooth Sharing
Field: bluetoothSharing
Type: String
Default: BLUETOOTH_SHARING_UNSPECIFIED
Min Android: 8+
Options:
BLUETOOTH_SHARING_UNSPECIFIEDBLUETOOTH_SHARING_ALLOWEDBLUETOOTH_SHARING_DISALLOWED
Controls whether Bluetooth can be used for sharing (e.g., file transfer).
Use cases:
Disable Bluetooth sharing on high-security or kiosk devices
Allow Bluetooth for peripherals but not data sharing (combined with other controls)
4.3 Configure WiFi
Field: configureWifi
Type: String
Default: CONFIGURE_WIFI_UNSPECIFIED
Min Android: 9+
Options:
CONFIGURE_WIFI_UNSPECIFIEDALLOW_CONFIGURING_WIFIDISALLOW_ADD_WIFI_CONFIGDISALLOW_CONFIGURING_WIFI
Controls how much freedom users have to configure Wi‑Fi networks.
Use cases:
Allow corporate admins to define all Wi‑Fi; block user-added networks
Fully lock down Wi‑Fi on kiosks or shared devices
4.4 Tethering Settings
Field: tetheringSettings
Type: String
Default: TETHERING_SETTINGS_UNSPECIFIED
Min Android: 9+
Options:
TETHERING_SETTINGS_UNSPECIFIEDALLOW_ALL_TETHERINGDISALLOW_WIFI_TETHERINGDISALLOW_ALL_TETHERING
Defines which tethering/hotspot methods are allowed.
Use cases:
Allow USB tethering only; block Wi‑Fi hotspot
Completely disable tethering to avoid uncontrolled data usage
4.5 USB Data Access
Field: usbDataAccess
Type: String
Default: DISALLOW_USB_FILE_TRANSFER
Min Android: 9+
Options:
ALLOW_USB_DATA_TRANSFERDISALLOW_USB_FILE_TRANSFERDISALLOW_USB_DATA_TRANSFER
Controls whether data can be transferred over USB.
Use cases:
Disable all USB data (only charging allowed) for high-security devices
Allow only specific transfer modes depending on your policy
4.6 WiFi Direct Settings
Field: wifiDirectSettings
Type: String
Default: WIFI_DIRECT_SETTINGS_UNSPECIFIED
Min Android: 9+
Options:
WIFI_DIRECT_SETTINGS_UNSPECIFIEDALLOW_WIFI_DIRECTDISALLOW_WIFI_DIRECT
Enables or disables Wi‑Fi Direct, which allows peer‑to‑peer connections.
Use cases:
Prevent unmonitored peer‑to‑peer file shares
Allow Wi‑Fi Direct when needed for specific enterprise apps or peripherals
4.7 WiFi Roaming Policy
Field: wifiRoamingPolicy
Type: Dictionary
Min Android: 9+
Defines how the device roams between Wi‑Fi access points.
4.7.1 WiFi Roaming Settings
Field: wifiRoamingSettings
Type: Array of dictionaries
Min Android: 9+
Each entry configures behavior for one SSID:
WiFi Roaming Mode (
wifiRoamingMode, required, string, Android 15+)One of:
WIFI_ROAMING_MODE_UNSPECIFIEDWIFI_ROAMING_DISABLEDWIFI_ROAMING_DEFAULTWIFI_ROAMING_AGGRESSIVE
WiFi SSID (
wifiSsid, required, string)Target network SSID
SSIDs must be unique across the list.
Use cases:
Force aggressive roaming on large campuses for smoother transitions
Disable roaming for certain SSIDs to keep devices on a specific AP
4.8 WiFi SSID Policy
Field: wifiSsidPolicy
Type: Dictionary
Min Android: 13+
Controls which Wi‑Fi SSIDs are allowed or blocked.
4.8.1 WiFi SSID Policy Type
Field: wifiSsidPolicyType
Type: String
Default: WIFI_SSID_POLICY_TYPE_UNSPECIFIED
Options:
WIFI_SSID_POLICY_TYPE_UNSPECIFIEDWIFI_SSID_DENYLISTWIFI_SSID_ALLOWLIST
Determines if wifiSsids is treated as a denylist or allowlist.
4.8.2 WiFi SSIDs
Field: wifiSsids
Type: Array of dictionaries
Min Android: 13+
Each object:
WiFi SSID (
wifiSsid, required, string) – SSID to allow or deny.
Use cases:
Force devices to connect only to approved corporate SSIDs (allowlist)
Block known insecure or guest SSIDs (denylist)
4.9 Preferential Network Service Settings
Field: preferentialNetworkServiceSettings
Type: Dictionary
Min Android: 13+
Configures multiple enterprise network slices and how apps map to them.
On 4G, you must additionally configure the corresponding enterprise APN via apnPolicy.
4.9.1 Default Preferential Network ID
Field: defaultPreferentialNetworkId
Type: String (required)
Default: NO_PREFERENTIAL_NETWORK
Options:
PREFERENTIAL_NETWORK_ID_UNSPECIFIEDNO_PREFERENTIAL_NETWORKPREFERENTIAL_NETWORK_ID_ONEPREFERENTIAL_NETWORK_ID_TWOPREFERENTIAL_NETWORK_ID_THREEPREFERENTIAL_NETWORK_ID_FOURPREFERENTIAL_NETWORK_ID_FIVE
The default network slice used when an app does not have an explicit preferentialNetworkId. There must be a matching configuration in preferentialNetworkServiceConfigs unless it is NO_PREFERENTIAL_NETWORK.
4.9.2 Preferential Network Service Configs
Field: preferentialNetworkServiceConfigs
Type: Array of dictionaries (required)
Min Android: 13+
Each entry:
Preferential Network ID (
preferentialNetworkId, required, string)Must be one of
PREFERENTIAL_NETWORK_ID_ONE…FIVECannot be
NO_PREFERENTIAL_NETWORKorPREFERENTIAL_NETWORK_ID_UNSPECIFIEDIDs must be unique
Fallback to Default Connection (
fallbackToDefaultConnection, string, defaultFALLBACK_TO_DEFAULT_CONNECTION_UNSPECIFIED)FALLBACK_TO_DEFAULT_CONNECTION_ALLOWEDFALLBACK_TO_DEFAULT_CONNECTION_DISALLOWED
Non-Matching Networks (
nonMatchingNetworks, string, defaultNON_MATCHING_NETWORKS_UNSPECIFIED, Android 14+)NON_MATCHING_NETWORKS_ALLOWEDNON_MATCHING_NETWORKS_DISALLOWEDControls whether apps can use networks other than the preferential slice.
Configurations not referenced by any application or by defaultPreferentialNetworkId are ignored.
Use cases:
Ensure specific apps use dedicated enterprise slices for QoS, security, or compliance
Restrict apps to a slice and disallow fallback, or allow fallback if the slice is unavailable
5. Enable Network Escape Hatch
Field name: networkEscapeHatchEnabled
Type: Boolean
Default: false
Min Android: 9+
If enabled (true) and the device cannot connect to a configured network at boot, it may temporarily connect to any available network to fetch the latest policy updates.
Use cases:
Recover devices that were misconfigured and lost connectivity
Ensure critical policy updates can still be delivered in edge cases
6. Disable Network Reset
Field name: networkResetDisabled
Type: Boolean
Default: false
Min Android: 9+
When enabled (true), users cannot perform a network reset (which would otherwise reset Wi‑Fi, mobile data, and Bluetooth settings to factory defaults).
Use cases:
Prevent accidental or intentional removal of corporate Wi‑Fi / APN / VPN settings
Keep devices compliant with enforced network policies
7. Disable Outgoing Calls
Field name: outgoingCallsDisabled
Type: Boolean
Default: false
Min Android: 9+
When enabled (true), users cannot make outgoing calls. Incoming calls may still be received.
Use cases:
Shared or kiosk devices that should not place calls
Cost control on corporate-owned phones
8. Preferential Network Service (Work Profile)
Field name: preferentialNetworkService
Type: String
Default: PREFERENTIAL_NETWORK_SERVICE_DISABLED
Min Android: 12+
Options:
PREFERENTIAL_NETWORK_SERVICE_UNSPECIFIEDPREFERENTIAL_NETWORK_SERVICE_DISABLEDPREFERENTIAL_NETWORK_SERVICE_ENABLED
Controls whether traffic from work-profile apps is given preferential network treatment compared to personal apps.
Use cases:
Prioritize corporate traffic over personal traffic on BYOD devices
Improve reliability/performance for business-critical apps
9. Disable SMS
Field name: smsDisabled
Type: Boolean
Default: false
Min Android: 9+
When enabled (true), users cannot send or receive SMS messages.
Use cases:
Devices used only for data (e.g., dedicated work devices, kiosks)
Environments with strict communication controls
10. Device Radio State
Field name: deviceRadioState
Type: Dictionary
Min Android: 9+
Controls radio states such as Wi‑Fi, airplane mode, 2G, Wi‑Fi security level, and ultra‑wideband (UWB).
10.1 WiFi State
Field: wifiState
Type: String
Default: WIFI_STATE_UNSPECIFIED
Options:
WIFI_STATE_UNSPECIFIEDWIFI_STATE_USER_CHOICEWIFI_ENABLEDWIFI_DISABLED
Controls whether Wi‑Fi is on and whether the user can change it.
10.2 Airplane Mode State
Field: airplaneModeState
Type: String
Default: AIRPLANE_MODE_STATE_UNSPECIFIED
Options:
AIRPLANE_MODE_STATE_UNSPECIFIEDAIRPLANE_MODE_USER_CHOICEAIRPLANE_MODE_DISABLED
Controls whether airplane mode can be toggled by the user.
10.3 Cellular 2G State
Field: cellularTwoGState
Type: String
Default: CELLULAR_TWO_G_STATE_UNSPECIFIED
Options:
CELLULAR_TWO_G_STATE_UNSPECIFIEDCELLULAR_TWO_G_USER_CHOICECELLULAR_TWO_G_DISABLED
Controls whether the user can enable 2G cellular, which is often considered insecure.
Use cases:
Disable 2G where security requirements forbid weak radio technologies
10.4 Minimum WiFi Security Level
Field: minimumWifiSecurityLevel
Type: String
Default: MINIMUM_WIFI_SECURITY_LEVEL_UNSPECIFIED
Options:
MINIMUM_WIFI_SECURITY_LEVEL_UNSPECIFIEDOPEN_NETWORK_SECURITYPERSONAL_NETWORK_SECURITYENTERPRISE_NETWORK_SECURITYENTERPRISE_BIT192_NETWORK_SECURITY
Defines the minimum Wi‑Fi security a device is allowed to connect to.
Use cases:
Block open or WEP/WPA‑personal networks; enforce enterprise-grade Wi‑Fi only
10.5 Ultra-Wideband State
Field: ultraWidebandState
Type: String
Default: ULTRA_WIDEBAND_STATE_UNSPECIFIED
Options:
ULTRA_WIDEBAND_STATE_UNSPECIFIEDULTRA_WIDEBAND_USER_CHOICEULTRA_WIDEBAND_DISABLED
Controls whether the user can toggle ultra‑wideband radios.
Use cases:
Environments where UWB must be disabled for privacy or regulatory reasons
11. Disable VPN Configuration
Field name: vpnConfigDisabled
Type: Boolean
Default: false
Min Android: 9+
When enabled (true), users cannot add, modify, or remove VPN configurations.
Use cases:
Ensure only IT-approved VPNs are available
Prevent data exfiltration via personal VPN apps
12. Disable WiFi Configuration
Field name: wifiConfigDisabled
Type: Boolean
Default: false
Min Android: 9+
When enabled (true), users cannot add, modify, or remove Wi‑Fi access points.
Use cases:
Lock devices to pre-configured corporate Wi‑Fi
Avoid user connections to public or insecure networks
13. Disable Tethering Configuration
Field name: tetheringConfigDisabled
Type: Boolean
Default: false
Min Android: 9+
When enabled (true), users cannot configure tethering / hotspot settings.
Use cases:
Combined with
tetheringSettingsto fully prevent hotspot usageEnsure data plans are not consumed by tethered personal devices
Practical Notes
Many subfields have Android version requirements (especially APN, Wi‑Fi roaming, and preferential network features on Android 10–15). Ensure your device fleet meets these before using them.
Some fields enforce uniqueness (e.g., APN types, SSIDs, network IDs). Duplicate entries will cause the policy to be rejected.
On BYOD work profiles, APN usage is more restricted (e.g.,
ENTERPRISEis the only allowed APN type inapnTypes).
