A more reliable way to add and edit contacts on Android | Android Developers’ Blog

The Shift in Privacy Architecture
For over a decade, the WRITE_CONTACTS permission has been a double-edged sword for the Android ecosystem. While it provided developers with the necessary tools to integrate contact management directly into their workflows, it also granted broad, unchecked access to the entirety of a user’s address book. Once granted, an application could theoretically modify, delete, or append data to any contact entry in the background, often without the user’s explicit knowledge or interaction at the moment of the change.
As mobile security has evolved, so has the industry’s approach to "least privilege" access. The upcoming Android update represents the culmination of this philosophy, moving away from binary, all-or-nothing permissions toward granular, action-based interactions. Under the new guidelines, apps will no longer be permitted to use the legacy WRITE_CONTACTS permission to modify data. Instead, they must rely on system-level intents—specifically ACTION_INSERT, ACTION_EDIT, and ACTION_INSERT_OR_EDIT.
This architectural change forces the application to offload the actual data modification to the system’s own contact manager. When an app invokes these intents, the Android operating system displays a standardized interface to the user, allowing them to review, confirm, or edit the information before it is saved. This ensures that the user remains the final arbiter of what data enters their private contacts, effectively nullifying the risk of unauthorized background data injection.
Addressing Ecosystem Fragmentation
A significant motivation behind this change is the historical inconsistency in how different device manufacturers (OEMs) handled contact intents. In previous versions of Android, invoking an intent to insert a contact could result in varying outcomes depending on the device’s specific skin or UI layer. Some devices would silently drop specific fields, such as custom labels or contact photos, while others would trigger unexpected behavior, such as automatically saving when the back button was pressed.
These inconsistencies forced many developers to eschew system intents in favor of direct database writes, as it was the only way to guarantee a consistent user experience. By standardizing the behavior of these intents in the upcoming release, Google is effectively removing the technical debt that necessitated direct access. Developers can now rely on the fact that their data payloads—including photos and metadata—will be handled uniformly across all compliant devices, regardless of the manufacturer.
The Introduction of MANAGE_CONTACTS
While the broad use of WRITE_CONTACTS is being sunset, Google recognizes that certain classes of applications require genuine, programmatic access to the contacts database. For these specific use cases, the company is introducing a new, highly restricted permission: MANAGE_CONTACTS. This permission is scheduled to arrive in the Android 17 Quarterly Platform Release (QPR2), slated for the fourth quarter of 2026.
The MANAGE_CONTACTS permission is not intended for general distribution. It is strictly reserved for apps whose core functionality relies on complex, bulk, or automated contact management. This includes applications such as dedicated contact managers, professional CRM (Customer Relationship Management) tools, cloud synchronization services, and spam protection suites.
Applications requesting this permission will undergo a rigorous review process through the Google Play Console to ensure their usage aligns with the intended purpose. This shift represents a move toward "permission as a service," where access is granted based on proven necessity rather than mere convenience.

Migration Roadmap and Implementation
The transition process has been structured to provide developers with ample time to refactor their applications. The timeline begins in earnest on October 21, 2026, when Google Play will formally announce the new policy guidelines.
- Phase One (Q4 2026): Introduction of the MANAGE_CONTACTS permission in Android 17 QPR2. Developers should begin identifying whether their applications fall under the "restricted" category.
- Phase Two (2027): With the release of the upcoming Android version, the WRITE_CONTACTS permission will cease to function for apps targeting that SDK level. Any attempt to write to the database directly will trigger a SecurityException or a silent permission denial.
- Phase Three (Post-Launch): The Google Play Store will initiate compliance checks. Apps that have not updated their code to use standard intents or, where applicable, the new MANAGE_CONTACTS permission, will face policy enforcement, which may include suspension or removal from the store.
For most developers, the migration path is straightforward. Replacing a direct database write with an intent-based call involves minimal code changes but requires a fundamental shift in user experience design. Instead of an app "saving" a contact, it now "requests the user to save" a contact.
Broader Implications for the Mobile Industry
The impact of this policy change extends beyond just technical implementation; it signals a tightening of the mobile security landscape. By limiting the ability of third-party apps to modify user data, Android is reinforcing its position as a privacy-centric platform. This move mirrors trends seen in other mobile operating systems, where access to the "contacts" permission has become increasingly granular.
For enterprise users, the changes are particularly significant. Organizations that rely on background synchronization to keep corporate directories up-to-date on employee devices will need to ensure their software is properly classified and authorized under the new MANAGE_CONTACTS policy. Failure to do so could result in the total cessation of synchronization services, potentially disrupting workflows for companies that rely on seamless contact management.
Furthermore, the integration of the "People Directory" in Android 17 QPR2 offers a forward-looking solution for communication apps. By allowing apps to publish reachability metadata—such as whether a contact is available on a specific VoIP service—without directly modifying the user’s primary address book, Google is providing a cleaner alternative for social and messaging applications. This reduces the "clutter" that often results from apps adding hundreds of custom entries to a user’s contact list.
Summary of Best Practices
To ensure a smooth transition, developers are encouraged to follow these three pillars of the new contact management paradigm:
- Audit Current Access: Review the codebase to identify every instance where
ContentProviderOperationorContentResolveris used to write to theContactsContractdatabase. - Adopt Standardized Intents: Transition all standard save, update, and edit operations to the system-provided intents. This improves the UI/UX by providing a native, consistent experience for the user.
- Evaluate Necessity for MANAGE_CONTACTS: If the app’s core utility—such as backup and restore or enterprise sync—cannot be achieved via intents, begin the documentation process for the MANAGE_CONTACTS permission. Remember that "branded UI" or "custom design" is not a valid justification for requesting this restricted permission.
As the mobile ecosystem continues to mature, the tension between functionality and user privacy will remain a constant theme. Google’s latest move to sanitize contact access is a clear indication that the era of broad, ambient access to user data is coming to an end. By prioritizing user consent and system-standardized interfaces, the Android team is effectively raising the barrier for entry while providing a more secure and predictable environment for the next generation of mobile applications.
The successful implementation of these changes will ultimately depend on the collective efforts of the developer community to embrace these new standards. Those who prioritize the transition early will not only avoid the potential pitfalls of policy enforcement but will also contribute to a more trustworthy, high-quality ecosystem that benefits every Android user globally.







