Android скасовує прямі записи в контакти: розробникам застосунків наказано використовувати стандартні інтенти
Public- 21 Oct, 2026

Починаючи з майбутнього релізу Android, застосунки, орієнтовані на цю нову версію, втрачають можливість безпосередньо записувати дані в список контактів пристрою за допомогою дозволу WRITE_CONTACTS. Будь-яка спроба виконати прямі записи через операції ContentProvider або подібні механізми призведе до виникнення SecurityException або відмови в доступі. Щоб забезпечити конфіденційність та єдність, розробникам потрібно перейти на стандартні інтенти контактів: ACTION_INSERT, ACTION_EDIT та ACTION_INSERT_OR_EDIT. Ці інтенти не потребують спеціальних дозволів і призначені для створення та зміни контактів через системний інтерфейс, що гарантує безпечну та прозору обробку даних користувача.
Раніше поведінка цих інтентів контактів суттєво відрізнялася у різних виробників пристроїв, що призводило до непостійного користувацького досвіду, наприклад, до втрати даних або непередбачуваного збереження. Майбутня версія Android стандартизує цей досвід, вимагаючи від усіх пристроїв дотримуватися суворих рекомендацій. Коли застосунок запускає ці інтенти, система відображає зручну напівсторінкову форму для нових записів або дозволяє користувачам шукати та оновлювати наявні контакти. Користувачі можуть розгорнути її в повноекранний редактор для детальної інформації. Цей стандартизований підхід усуває потребу в широких дозволах для більшості застосунків, оскільки система сама обробляє введення даних, що зменшує поверхню атаки та підвищує довіру користувачів до управління контактами.
Для невеликої кількості застосунків, основна функція яких пов'язана з керуванням контактами, у Android 17 QPR2, запланованому на четвертий квартал 2026 року, буде введено новий спеціальний дозвіл доступу MANAGE_CONTACTS. Цей дозвіл надає широкий доступ для читання, додавання, редагування та видалення контактів, облікових записів і даних People Directory, фактично замінюючи необхідність у обох дозволах WRITE_CONTACTS і READ_CONTACTS у відповідних сценаріях. Застосунки, які запитують цей дозвіл, повинні подати заяву в Play Console з поясненням, чому стандартні інтенти є недостатніми для їхньої основної функціональності. Ця заходи гарантує, що лише застосунки з реальною потребою в широкому доступі до контактів можуть обійти стандартизований процес на основі інтентів.
Розробникам також варто розглянути нову функцію People Directory, яка з'явиться в тому ж релізі і дозволяє застосункам публікувати інформацію про доступність контактів без прямого редагування контактів користувача. Це особливо актуально для застосунків, які раніше додавали дії «Дзвонити через» або «Написати через», записуючи додаткові записи в базу даних контактів. Використовуючи People Directory, застосунки можуть зберігати ці функції, не порушуючи нових обмежень на пряме зміну контактів. Цей зсув сприяє більш модульному підходу до інтеграції контактів, де застосунки вносять внесок у каталог, а не змінюють особистий список контактів користувача, тим самим зберігаючи цілісність даних користувача і водночас надаючи корисні варіанти зв'язку.
Процес міграції включає виявлення всіх прямих записів у контактах у кодовій базі, наприклад, тих, що використовують ContactsContract.RawContacts.CONTENT_URI або методи applyBatch, і їх заміну відповідними інтентами. Розробникам слід використовувати ACTION_INSERT для нових контактів і ACTION_EDIT або ACTION_INSERT_OR_EDIT для оновлень, передаючи необов'язкові дані, такі як імена, номери телефонів і фотографії, через Intent Extras. Для читання контактів Contact Picker, доступний з Android 17, залишається рекомендованим рішенням і не потребує дозволів. Застосунки, орієнтовані на старіші версії Android, збережуть своє поточне поведінку, але новий стандартизований редактор буде доступний усім застосункам у новій ОС, забезпечуючи однорідний досвід для користувачів незалежно від цільового SDK застосунку.