Android отменяет прямые записи в контакты: разработчикам приложений предписано использовать стандартные интенты

  • PublicPublic
  • 21 Oct, 2026
Android отменяет прямые записи в контакты: разработчикам приложений предписано использовать стандартные интенты

Начиная с предстоящего релиза 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 приложения.