На устройствах под управлением ОС Android можно выбрать ассистента по умолчанию — почти так же, как браузер. Один раз выбираете в настройках — и дальше открываете его системным жестом поверх любого приложения. Удобно.

Казалось бы, теперь выбранный ассистент может видеть всё, что происходит на телефоне, и делать с ним что угодно… Вовсе нет. При установке Android автоматически выдаёт приложению только базовые разрешения. Для доступа к расширенным возможностям нужно отдельное разрешение пользователя, а некоторые функции обычному стороннему приложению недоступны совсем.

Меня зовут Ваня, я руководитель команды Android-разработки SDK Алисы и техлид проекта дефолтного ассистента. Сегодня мы с вами разберёмся, где проходят эти границы, на примере Алисы AI.

Что меняется после выбора ассистента по умолчанию

Роль Assistant получает не любое приложение с чат-ботом. Разработчики должны добавить поддержку этой роли, а пользователь — вручную выбрать приложение ассистентом по умолчанию в системных настройках. Приложение может помочь открыть нужный экран настроек, но выбрать ассистента может только пользователь.

Вместе с ролью Android может выдать ассистенту несколько технических разрешений, если приложение объявило их в манифесте. Например, в Android 17 к роли привязаны SYSTEM_ALERT_WINDOW, чтобы показывать своё окно поверх других приложений, и EXECUTE_APP_ACTION, чтобы обращаться к действиям, которые сторонние приложения разрешили использовать ассистенту.

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

Что ассистент узнаёт об открытом экране

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

В этот момент Android может передать структуру интерфейса и видимый текст (AssistStructure), данные, которые открытое приложение подготовило для ассистента (AssistContent), и снимок экрана. Это не видеотрансляция и не доступ к внутренним данным приложения, а сведения о состоянии открытого экрана.

Открытое приложение может ограничить передаваемые сведения. Например, окно с флагом FLAG_SECURE не позволяет передать снимок экрана. Ассистент не может самостоятельно читать содержимое любого экрана, следить за переходами между приложениями или получать экранный контекст в фоне. Кстати, важное уточнение: на заблокированном экране Android перед открытием ассистента скрывает уведомления. Поэтому прочитать их через экранный контекст тоже не получится.

Экранный контекст — только один источник данных. Как работает выдача других доступов, разберём в следующем разделе.

Какие разрешения нужны Алисе AI

Даже если отклонить все запросы на доступ, Алиса AI останется ассистентом по умолчанию: ей всё равно можно будет задавать вопросы текстом. Недоступны будут только функции, для которых нужны эти разрешения.

Чтобы приложение действительно получило доступ к ресурсу, Android проверяет четыре условия:

Например, строка CAMERA в манифесте означает только то, что приложение может запросить доступ к камере. Камера станет доступна Алисе AI после того, как пользователь подтвердит системный запрос. Если отказать, Алиса AI останется ассистентом по умолчанию, но не сможет получить изображение с камеры.

Вот разрешения Алисы AI, которые требуют действия пользователя на современных версиях Android:

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

Например, в стандартном запросе геопозиции пользователь выбирает, какие координаты открыть Алисе AI: приблизительные (ACCESS_COARSE_LOCATION) или точные (ACCESS_FINE_LOCATION). Начиная с Android 11 разрешение на работу с геопозицией в фоне (ACCESS_BACKGROUND_LOCATION) выдаётся отдельно. Алиса AI может открыть нужный экран настроек, но вариант «Разрешить всегда» должен выбрать пользователь. Назначение ассистентом по умолчанию здесь ничего не меняет.

Команда «Позвони Саше» состоит из двух операций. READ_CONTACTS позволяет найти номер Саши в адресной книге, а CALL_PHONE — сразу начать обычный телефонный звонок. С экстренными номерами так не получится. Для прямого звонка без подтверждения требуется системное разрешение CALL_PRIVILEGED, которое недоступно обычным сторонним приложениям. Его нельзя выдать Алисе AI в настройках, даже если она назначена ассистентом по умолчанию. Алиса AI может только открыть приложение для звонков с нужным номером, а подтвердить вызов должен пользователь.

Разрешение POST_NOTIFICATIONS на Android 13+ позволяет Алисе AI показывать собственные уведомления. Доступа к уведомлениям других приложений оно не даёт, и сейчас Алиса AI их не получает.

Как ассистент выполняет команды в других приложениях

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

Для распространённых действий в Android есть интенты (Intent) — стандартный способ передать запрос другому приложению. Например, через ACTION_SET_ALARM ассистент может передать приложению часов время, на которое нужно поставить будильник. Часы либо покажут пользователю заполненную форму, либо сразу создадут будильник — это зависит от реализации системного приложения.

Универсальные интенты есть не для всего. Например, чтобы Google Assistant выполнил действие внутри стороннего приложения, его разработчик должен описать это действие через Google App Actions. Стороннему ассистенту App Actions автоматически не достанутся — даже после назначения по умолчанию. Сначала он должен объявить EXECUTE_APP_ACTION в манифесте, и только после этого Android сможет выдать разрешение вместе с ролью.

В Android 16 появился более общий механизм AppFunctions. Его публичный API пока экспериментальный, а каждое приложение само решает, какие функции разрешить использовать.

Ещё один механизм — управление через элементы интерфейса. Так работают службы специальных возможностей (AccessibilityService): они могут читать доступные элементы на экране и выполнять нажатия. Это не скрытый доступ: пользователь вручную включает такую службу для конкретного приложения на отдельном экране системных настроек, а Android предупреждает о её возможностях.

За использованием AccessibilityService отдельно следит Google Play. Разработчик должен задекларировать использование службы и пройти проверку. Если приложение не является специальным средством доступности, оно должно объяснить, какие данные получает и зачем, а затем запросить явное согласие пользователя.

Проще говоря, ассистент может управлять другим приложением только через предусмотренный в Android или самом приложении механизм: стандартный интент, опубликованную функцию или вручную включённую службу специальных возможностей. Алиса AI управляет Яндекс Музыкой и устройствами умного дома Яндекса через собственные продуктовые интеграции, а таймеры и будильники ставит через интенты Android.

Почему некоторые команды ассистенту недоступны

Первое ограничение — песочница Android. Приложения работают изолированно, поэтому роль ассистента не открывает доступ к внутренним данным банковских приложений и мессенджеров. Для обмена нужен предусмотренный канал: системный интент, открытый компонент приложения или API сервиса.

Второе ограничение — некоторые системные разрешения обычным приложениям недоступны. Назначение ассистентом по умолчанию не делает приложение системным и не даёт ему таких разрешений.

Третье ограничение — поддержка со стороны другого приложения. Ассистент не сможет выполнить команду, если приложение не принимает стандартный интент, не публикует нужную функцию и не предоставляет собственного API.

Эти ограничения нельзя снять выбором ассистента по умолчанию или переключателем в настройках. Они заданы самой архитектурой Android и возможностями других приложений.

Что в итоге

Так что же даёт выбор ассистента по умолчанию? Android будет открывать выбранное приложение системным жестом и передавать ему доступные сведения о текущем экране.

Алиса AI остаётся обычным приложением, установленным пользователем. Доступ к микрофону, камере, геопозиции и контактам пользователь выдаёт отдельно. Без этих разрешений Алиса AI продолжит работать как ассистент — ей по-прежнему можно будет задавать вопросы текстом. Фоновая геопозиция включается на специальном системном экране, а для управления другими приложениями нужны механизмы, предусмотренные Android или самими приложениями.

Часть системных возможностей остаётся недоступна обычным приложениям, сколько разрешений им ни выдай. Назначение по умолчанию делает взаимодействие с Алисой AI удобнее, но не меняет модель безопасности Android: полного доступа к смартфону у неё не появляется.