Разрешения, используемые только в обработчиках по умолчанию

Для работы некоторых основных функций устройства, например чтения списка вызовов и отправки SMS, требуется доступ к конфиденциальной пользовательской информации. Чтобы защитить конфиденциальность пользователей и предоставить им больше контроля над информацией, которую они передают приложениям на своих устройствах, Google Play ограничивает доступ приложений к группам разрешений, связанных со звонками и сообщениями.

Если вы распространяете приложение через Google Play и хотите получить доступ к конфиденциальной информации пользователей, связанной со списками вызовов и SMS, ваше приложение должно быть зарегистрировано как обработчик по умолчанию для основной функции устройства, связанной с этим разрешением. Исключение составляют случаи, описанные в Справочном центре Play Console. Например, чтобы получить разрешения, связанные со звонками, приложение должно быть зарегистрировано как обработчик звонков или действий Ассистента по умолчанию, если только оно не подпадает под исключение.

В этом руководстве кратко описано, как пользователи получают доступ к обработчикам по умолчанию на устройствах Android. Затем в руководстве рассматриваются требования, которым должно соответствовать приложение, чтобы стать обработчиком по умолчанию. Наконец, в руководстве описывается процесс получения согласия пользователя на то, чтобы приложение стало обработчиком по умолчанию.

Чтобы узнать больше об обработчиках по умолчанию и о том, как работать с разрешениями в приложении, доступном в Google Play, ознакомьтесь с руководством по правилам в отношении разрешений.

Просмотр и изменение набора обработчиков по умолчанию

Android позволяет пользователям устанавливать обработчики по умолчанию для нескольких основных вариантов использования, таких как совершение телефонных звонков, отправка SMS-сообщений и предоставление возможностей технологии специальных возможностей.

В приложении "Настройки" на устройствах Android есть экран, на котором показано, какие приложения по умолчанию выполняют основные функции устройства (см. рисунок 1). На этом экране пользователи могут изменить обработчик по умолчанию для определенной функции, как показано на рисунке 2.

Скриншот настроек приложений по умолчанию
Рисунок 1. Экран системных настроек со списком обработчиков по умолчанию на устройстве.
Скриншот настроек приложения для обмена SMS по умолчанию
Рисунок 2. Экран системных настроек, на котором показано, как изменить обработчик SMS по умолчанию.

Соблюдайте требования к обработчикам по умолчанию

Поскольку приложение, назначенное обработчиком по умолчанию, получает доступ к конфиденциальной информации пользователей, оно должно соответствовать следующим требованиям к основным функциям и странице в Google Play:

  • Приложение должно выполнять функции, для которых оно является обработчиком по умолчанию. Например, обработчик SMS по умолчанию должен уметь отправлять текстовые сообщения.
  • В приложении должна быть политика конфиденциальности.
  • В описании приложения в Google Play должны быть четко указаны его основные функции. Например, в описании обработчика по умолчанию для телефона должны быть указаны его возможности, связанные с телефоном.
  • В приложении должны быть объявлены разрешения, соответствующие его назначению. Подробную информацию о том, какие разрешения можно запрашивать для обработчиков, вы найдете в руководстве по использованию групп разрешений для SMS и списков вызовов в Справочном центре Play Console.
  • Приложение должно запрашивать статус обработчика по умолчанию до того, как оно запросит разрешения, связанные с этим статусом. Например, приложение должно запросить разрешение стать обработчиком SMS по умолчанию, прежде чем запрашивать разрешение READ_SMS.

Убедившись, что ваше приложение соответствует всем требованиям, необходимым для того, чтобы стать обработчиком по умолчанию, вы можете добавить логику для отображения диалогового окна, показанного на рисунке 3. В этом окне пользователю предлагается сделать ваше приложение обработчиком по умолчанию для определенного сценария использования.

Скриншот, на котором показано пользовательское диалоговое окно
Рисунок 3. Запрос, в котором пользователю предлагается изменить обработчик SMS по умолчанию на устройстве.

В следующем примере кода показана логика, необходимая для отображения запроса, в котором пользователю предлагается изменить обработчик SMS по умолчанию на его устройстве:

Kotlin

val setSmsAppIntent = Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT)
setSmsAppIntent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, packageName)
startActivityForResult(setSmsAppIntent, your-result-code)

Java

Intent setSmsAppIntent =
        new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT);
setSmsAppIntent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME,
        getPackageName());
startActivityForResult(setSmsAppIntent, your-result-code);