What's new for enterprise in Android 14
Stay organized with collections
Save and categorize content based on your preferences.
This page provides an overview of the enterprise APIs, features, and behavior
changes introduced in Android 14 (API level 34).
Android 14 (API level 34) adds the following two fields:
Together, these fields allow personal apps with the READ_CONTACTS
permission to list all work profile contacts and phone numbers as long as the
cross-profile contacts policy in DevicePolicyManager
allows it.
Cross-profile access to contacts
The policy can be set and queried using the following methods in
DevicePolicyManager
, which specify which packages are allowed to access work
contacts from the personal profile:
These methods are backward compatible and should be used instead of the
following methods that are now deprecated:
Cross-profile caller ID searches
Similarly, Android 14 (API level 34) adds the following methods for
cross-profile caller ID searches:
These methods are backward compatible and should be used instead of the
following methods that are now deprecated:
Ultra wideband
Ultra wideband (UWB) is a radio technology that can use a very low energy level
for short-range, high-bandwidth communications over a large portion of the radio
spectrum.
Starting in Android 14 (API level 34), a device or profile owner can disallow
UWB on an organization-owned device by applying the
DISALLOW_ULTRA_WIDEBAND_RADIO
user restriction with
DevicePolicyManager.addUserRestriction()
.
Deprecations
Android 14 includes the following notable API deprecations:
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-09-03 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-03 UTC."],[],[],null,["This page provides an overview of the enterprise APIs, features, and behavior\nchanges introduced in Android 14 (API level 34).\n| **Note:** Members of our [Enterprise Mobility Management (EMM) partner community](https://www.androidenterprise.dev/) can find more information about EMM-impacting changes in Android 14 in the corresponding [knowledge article](https://emm.androidenterprise.dev/s/article/EMM-impacting-changes-in-Android-14) on the EMM community site.\n\nContacts\n\nAndroid 14 (API level 34) adds the following two fields:\n\n- [`ContactsContract.Contacts#ENTERPRISE_CONTENT_URI`](/reference/android/provider/ContactsContract.Contacts#ENTERPRISE_CONTENT_URI)\n- [`ContactsContract.CommonDataKinds.Phone#ENTERPRISE_CONTENT_URI`](/reference/android/provider/ContactsContract.CommonDataKinds.Phone#ENTERPRISE_CONTENT_URI)\n\nTogether, these fields allow personal apps with the [`READ_CONTACTS`](/reference/android/Manifest.permission#READ_CONTACTS)\npermission to list all work profile contacts and phone numbers as long as the\ncross-profile contacts policy in `DevicePolicyManager` allows it.\n\nCross-profile access to contacts\n\nThe policy can be set and queried using the following methods in\n`DevicePolicyManager`, which specify which packages are allowed to access work\ncontacts from the personal profile:\n\n- [`setManagedProfileContactsAccessPolicy()`](/reference/android/app/admin/DevicePolicyManager#setManagedProfileContactsAccessPolicy(android.app.admin.PackagePolicy))\n- [`getManagedProfileContactsAccessPolicy()`](/reference/android/app/admin/DevicePolicyManager#getManagedProfileContactsAccessPolicy())\n\nThese methods are backward compatible and should be used instead of the\nfollowing methods that are now deprecated:\n\n- [`setCrossProfileContactsSearchDisabled()`](/reference/android/app/admin/DevicePolicyManager#setCrossProfileContactsSearchDisabled(android.content.ComponentName,%20boolean))\n- [`getCrossProfileContactsSearchDisabled()`](/reference/android/app/admin/DevicePolicyManager#getCrossProfileContactsSearchDisabled(android.content.ComponentName))\n\nCross-profile caller ID searches\n\nSimilarly, Android 14 (API level 34) adds the following methods for\ncross-profile caller ID searches:\n\n- [`setManagedProfileCallerIdAccessPolicy()`](/reference/android/app/admin/DevicePolicyManager#setManagedProfileCallerIdAccessPolicy(android.app.admin.PackagePolicy))\n- [`getManagedProfileCallerIdAccessPolicy()`](/reference/android/app/admin/DevicePolicyManager#getManagedProfileCallerIdAccessPolicy())\n\nThese methods are backward compatible and should be used instead of the\nfollowing methods that are now deprecated:\n\n- [`getCrossProfileCallerIdDisabled()`](/reference/android/app/admin/DevicePolicyManager#getCrossProfileCallerIdDisabled(android.content.ComponentName))\n- [`setCrossProfileCallerIdDisabled()`](/reference/android/app/admin/DevicePolicyManager#setCrossProfileCallerIdDisabled(android.content.ComponentName,%20boolean))\n\nUltra wideband\n\nUltra wideband (UWB) is a radio technology that can use a very low energy level\nfor short-range, high-bandwidth communications over a large portion of the radio\nspectrum.\n\nStarting in Android 14 (API level 34), a device or profile owner can disallow\nUWB on an organization-owned device by applying the\n[`DISALLOW_ULTRA_WIDEBAND_RADIO`](/reference/android/os/UserManager#DISALLOW_ULTRA_WIDEBAND_RADIO) user restriction with\n[`DevicePolicyManager.addUserRestriction()`](/reference/android/app/admin/DevicePolicyManager#addUserRestriction(android.content.ComponentName,%20java.lang.String)).\n\nDeprecations\n\nAndroid 14 includes the following notable API deprecations:\n\n- [`DevicePolicyManager#setCrossProfileCalendarPackages`](/reference/android/app/admin/DevicePolicyManager#setCrossProfileCalendarPackages(android.content.ComponentName,%20java.util.Set%3Cjava.lang.String%3E)) and\n [`DevicePolicyManager#getCrossProfileCalendarPackages`](/reference/android/app/admin/DevicePolicyManager#getCrossProfileCalendarPackages(android.content.ComponentName)) are deprecated.\n\n Calendar apps should migrate to [connected apps](https://developers.google.com/android/work/connected-apps) and device policy\n controllers (DPCs) should use\n [`DevicePolicyManager#setCrossProfilePackages`](/reference/android/app/admin/DevicePolicyManager#setCrossProfilePackages(android.content.ComponentName,%20java.util.Set%3Cjava.lang.String%3E)) instead.\n- The following methods are deprecated:\n\n - [`DevicePolicyManager#setCrossProfileContactsSearchDisabled`](/reference/android/app/admin/DevicePolicyManager#setCrossProfileContactsSearchDisabled(android.content.ComponentName,%20boolean))\n - [`DevicePolicyManager#getCrossProfileContactsSearchDisabled`](/reference/android/app/admin/DevicePolicyManager#getCrossProfileContactsSearchDisabled(android.content.ComponentName))\n - [`DevicePolicyManager#setCrossProfileCallerIdDisabled`](/reference/android/app/admin/DevicePolicyManager#setCrossProfileCallerIdDisabled(android.content.ComponentName,%20boolean))\n - [`DevicePolicyManager#getCrossProfileCallerIdDisabled`](/reference/android/app/admin/DevicePolicyManager#getCrossProfileCallerIdDisabled(android.content.ComponentName))\n\n DPCs should use the alternative methods outlined in the preceding\n [Contacts](#contacts) section."]]