Роли Android

Роль – это уникальное название в системе, связанное с определенными разрешениями и правами. Приложения могут запрашивать определенные роли через Android API, вызывая методы в классе RoleManager.

Ниже приведен список доступных ролей и их требований.

Роль Требования
ASSISTANT Хотя бы один из следующих вариантов:
  • У приложения есть Activity, которое выполняет вспомогательные функции, учитывая информацию о контексте пользователя, когда он запросил помощь (например, название пакета текущего активного приложения и его контекстную информацию).
  • У приложения есть служба голосового взаимодействия, которая работает постоянно и защищена разрешением android.permission.BIND_VOICE_INTERACTION. Она может распознавать речь и проводить сеансы голосового взаимодействия. Кроме того, в приложении есть явный флаг, указывающий, что сервис может выполнять действие assist.
BROWSER Все следующие поля:
  • В приложении есть действие, которое другие приложения могут вызывать с помощью неявных интентов. Оно показывает веб-страницу, соответствующую адресу http://.
  • Приложение должно обрабатывать переходы по ссылкам. То есть, если пользователь просматривает веб-страницу и нажимает на адрес http:// в тексте, приложение должно быть в состоянии отобразить контент, соответствующий выбранной ссылке, без дополнительных действий пользователя.
  • Приложение должно предоставлять веб-страницам текущую геолокацию устройства, если пользователь разрешает это.
DIALER Все:
  • В приложении есть действие, которое другие приложения могут вызывать с помощью неявных интентов. Оно обеспечивает пользовательский интерфейс во время разговора.
  • Приложение может обрабатывать намерения входящих вызовов, показывать пользователю информацию о звонке (например, номер телефона звонящего) и позволять ему ответить на вызов или отклонить его.
  • Приложение позволяет пользователю совершать звонки и просматривать историю звонков на устройстве.
SMS Все следующие поля:
  • Приложение соответствует всем требованиям к приложениям для обмена SMS.
  • В приложении есть действие, которое другие приложения могут вызывать с помощью неявных интентов, чтобы отправлять сообщения на номер телефона.
  • В приложении есть сервис, который защищен разрешением android.permission.SEND_RESPOND_VIA_MESSAGE и может вызываться неявными интентами. Он позволяет доставлять сообщения, полученные из приложения "Телефон", когда пользователь выбирает вариант "Ответить сообщением" во время входящего вызова. Приложение может отправлять сообщения через собственную систему обмена сообщениями.
  • У приложения есть два широковещательных приемника. Один из них защищен разрешением android.permission.BROADCAST_SMS, а другой – разрешением android.permission.BROADCAST_WAP_PUSH. Они могут получать текстовые SMS- и MMS-сообщения, отправленные на устройство. После этого приложение должно отправить сообщения поставщику услуг SMS и уведомить пользователей.
EMERGENCY Все следующие поля:
  • Приложение является системным .
  • В приложении есть Activity, позволяющая пользователю указать данные для экстренных случаев. Любой пользователь может перейти на этот экран, нажав кнопку "Экстренный вызов" в приложении "Экстренный вызов".
HOME В приложении есть действие, которое может запустить главный экран, когда пользователь нажимает кнопку главного экрана. На главном экране должны быть значки приложений и виджеты, а также поддерживаться навигация с помощью кнопок или жестов (например, свайпа вверх для просмотра всех приложений).
CALL_REDIRECTION У приложения есть сервис, доступ к которому ограничен разрешением android.permission.BIND_CALL_REDIRECTION_SERVICE. К этому сервису может подключиться платформа телекоммуникаций. Сервис получает исходящий номер телефона от телекоммуникационной платформы и выполняет одно из следующих действий:
  • Разрешить звонок в текущем виде.
  • Изменить исходящий номер, чтобы звонок проходил через прокси-номер.
  • Отменить звонок.
CALL_SCREENING В приложении есть сервис, доступ к которому ограничен разрешением android.permission.BIND_SCREENING_SERVICE. Этот сервис выполняет две функции:
  • Блокировка и фильтрация вызовов. Сервис может выбирать, какие вызовы должны быть отправлены в приложение для набора номера на телефоне (и, возможно, сопровождаться звонком, если не включен режим "Не беспокоить" или не отключен звук), а какие должны быть беззвучно отправлены на голосовую почту.
  • Идентификация звонков. Сервис может идентифицировать звонки и показывать информацию о них в пользовательском интерфейсе.
SUPERVISION Все:
  • Приложение является системным или предустановленным сервисом.
  • Эту роль может назначить приложению только производитель устройства.
  • Единственная цель приложения – предоставить родителям или законным представителям пользователя возможность управлять устройством.
  • В приложении должен быть компонент интерфейса, с помощью которого уполномоченный пользователь может отключить роль наблюдателя.
SYSTEM_AUTOMOTIVE_CLUSTER Все следующие поля:
  • Приложение является системным в Android Automotive OS.
  • Эту роль приложению могут назначить только производители оригинального оборудования.
  • Приложение позволяет пользователям отвечать на телефонные звонки, а также просматривать списки контактов и списки вызовов на дисплее автомобильной приборной панели (обычно расположенном рядом с рулевым колесом).
COMPANION_DEVICE_WATCH Приложение может отправлять запросы на установление связи с часами и управление ими (с помощью API, предоставляемого классом CompanionDeviceManager). Когда часы и приложение подключены через интерфейс, предоставляемый приложением, пользователи могут управлять часами из приложения, в том числе синхронизировать контакты и календарь, а также управлять уведомлениями и телефонными звонками.
SYSTEM_AUTOMOTIVE_PROJECTION Все:
  • Приложение является системным.
  • Эту роль может назначить приложению только производитель устройства.
  • Приложение позволяет проецировать экран телефона на дисплей автомобиля. Она позволяет водителям получать доступ к приложениям на телефонах Android и управлять ими, в том числе музыкой, навигацией, телефонными звонками и поиском, используя механизмы ввода в автомобиле, включая сенсорный экран, элементы управления на рулевом колесе и голосовые команды.
SYSTEM_SHELL Все следующие поля:
  • Приложение является системным и ему назначен UID Process.SHELL_UID.
  • Эту роль может назначить приложению только производитель устройства.
  • Приложение предоставляет интерфейс, который работает на уровне командной строки, чтобы пользователи могли взаимодействовать с ОС Android. Например, можно просматривать содержимое папок или запускать приложения. Команды оболочки могут выполняться программно приложениями (если им предоставлены необходимые разрешения) или с помощью инструмента ADB.
SYSTEM_CONTACTS Все следующие поля:
  • Приложение является системным.
  • Эту роль приложению могут назначить только производители оригинального оборудования.
  • Приложение предоставляет пользователям интерфейс для управления контактами (например, для просмотра, добавления, удаления, поиска или обмена контактами). Приложение обновляет поставщика контактов, когда пользователь обновляет свои контакты в приложении. Пользователи также могут звонить, отправлять электронные письма или текстовые сообщения своим контактам из приложения.
SYSTEM_SPEECH_RECOGNIZER Все следующие поля:
  • Приложение является системным.
  • Эту роль может назначить приложению только производитель устройства.
  • Приложение предоставляет сервис, который может распознавать речь.
  • Когда приложение получает из другого приложения потоки данных с микрофона для распознавания речи, оно правильно относит использование микрофона к приложению для звонков и соответствующим образом обновляет статистику работы приложения.
SYSTEM_WIFI_COEX_MANAGER Все:
  • Приложение является системным.
  • Назначить эту роль приложению могут только производители оригинального оборудования.
  • В приложении есть сервис, который динамически задает список каналов Wi-Fi, которые устройство не должно использовать из-за помех от сотовой связи.
SYSTEM_WELLBEING Все следующие поля:
  • Приложение является системным.
  • Назначить эту роль приложению могут только производители оригинального оборудования.
  • Приложение должно помогать пользователям меньше отвлекаться и предоставлять им статистику использования устройства, например экранное время за неделю.
SYSTEM_TELEVISION_NOTIFICATION_HANDLER Все следующие поля:
  • Приложение является системным.
  • Эту роль может назначить приложению только производитель устройства.
  • Приложение должно показывать пользователям на устройствах с Android TV всплывающие уведомления. Приложение также должно показывать текущие активные уведомления при отправке интента android.app.action.TOGGLE_NOTIFICATION_HANDLER_PANEL (из SystemUI).
SYSTEM_COMPANION_DEVICE_PROVIDER Все следующие поля:
  • Приложение является системным.
  • Эту роль может назначить приложению только производитель устройства.
  • Приложение должно обнаруживать периферийные устройства поблизости. У него должен быть интерфейс, в котором пользователь может подтвердить, что определенное периферийное устройство должно быть связано с приложением и управляться им. Когда пользователь подтверждает это, управляющее приложение предоставляет связанному приложению разрешение на доступ к периферийному устройству (например, к его названию, адресу, классу и состоянию подключения) и может начать процесс подключения.
SYSTEM_DOCUMENT_MANAGER Все следующие поля:
  • Приложение является системным.
  • Эту роль может назначить приложению только производитель устройства.
  • В приложении есть действие, которое позволяет пользователям получать доступ к существующим документам и создавать новые документы на устройстве.
  • Приложение должно соответствовать всем требованиям, изложенным в разделе 2.2.3 документа CDD для Android. Программное обеспечение под заголовком [3.2.3.1/H-0-1].
SYSTEM_ACTIVITY_RECOGNIZER Все:
  • Приложение является системным.
  • В приложении есть сервис, доступ к которому ограничен разрешением android.permission.ACTIVITY_RECOGNITION и который может распознавать действия (например, бег или езда на велосипеде).
SYSTEM_UI Все следующие поля:
  • Приложение является системным.
  • Эту роль приложению могут назначить только производители оригинального оборудования.
  • Приложение имеет интерфейс, с помощью которого пользователи взаимодействуют со своими телефонами. Например, главный экран, навигация, недавно использованные приложения, быстрые настройки, панель уведомлений, заблокированный экран, управление громкостью.
SYSTEM_TELEVISION_REMOTE_SERVICE Все:
  • Приложение является системным на Android TV.
  • Эту роль может назначить приложению только производитель устройства.
  • В приложении есть сервис, который может взаимодействовать с HID-устройством пульта телевизора (например, по BLE), внедрять события (например, нажатия кнопок) и отправлять другие данные (например, аудиопоток со встроенного в пульт микрофона) на платформу.
SYSTEM_UI_INTELLIGENCE Все следующие поля:
  • Предустановленный сервис, который предоставляет через API фреймворка (общедоступные или системные API) локальный интеллектуальный процессор для функций интерфейса системы (например, для прогнозирования и показа следующих приложений для пользователей).
  • Сервис должен соответствовать всем требованиям, изложенным в разделе 9.8.6 "Запись контента" документа CDD для Android.
  • У сервиса не может быть разрешения android.permission.INTERNET. Вместо этого оно должно получать доступ к интернету через четко определенные API в проекте с открытым исходным кодом.
  • Сервис не может связываться с приложениями, за исключением следующих системных приложений: Bluetooth, "Контакты", "Медиа", "Телефон", SystemUI и компонентов, предоставляющих API для работы с интернетом. Каждую разрешенную привязку необходимо настроить явным образом с помощью конфигурации <allow-association> в системных настройках.
  • Сервис не может передавать данные приложениям, если пользователь не выполнил прямое действие, например не нажал кнопку, чтобы разрешить передачу данных.
SYSTEM_AMBIENT_AUDIO_INTELLIGENCE Все:
  • Аналогично условиям для SYSTEM_UI_INTELLIGENCE, за исключением того, что предустановленный сервис предоставляет встроенный интеллектуальный процессор для обработки окружающего аудио (например, для распознавания песен, играющих рядом с устройством).
SYSTEM_AUDIO_INTELLIGENCE Все:
  • Аналогично условиям для SYSTEM_UI_INTELLIGENCE, за исключением того, что предустановленный сервис предоставляет встроенный интеллектуальный процессор для обработки аудио (например, для создания субтитров к видео, подкастам, телефонным и видеозвонкам, а также аудиосообщениям).
SYSTEM_NOTIFICATION_INTELLIGENCE Все:
  • Аналогично условиям для SYSTEM_UI_INTELLIGENCE, но предустановленный сервис предоставляет встроенный интеллектуальный процессор для уведомлений (например, предлагает варианты ответов и действий для уведомлений о сообщениях).
SYSTEM_TEXT_INTELLIGENCE Все следующие поля:
  • Аналогично условиям для SYSTEM_UI_INTELLIGENCE, но предустановленный сервис предоставляет встроенный интеллектуальный процессор для обработки текста (например, для перевода в реальном времени или автозаполнения).
SYSTEM_VISUAL_INTELLIGENCE Все следующие поля:
  • Идентичны условиям для SYSTEM_UI_INTELLIGENCE, за исключением того, что предустановленный сервис предоставляет интеллектуальный процессор на устройстве для визуальных функций, который включает анализ данных камеры. Например, экран телефона может оставаться включенным, пока пользователь смотрит на него, или ориентация экрана может определяться на основе положения лица пользователя, которое фиксирует фронтальная камера устройства.
COMPANION_DEVICE_APP_STREAMING Все:
  • Приложение является системным.
  • Эту роль может назначить приложению только производитель устройства.
  • Допустимые варианты использования:
    • Трансляция, передача или зеркальное отображение приложений, которые позволяют транслировать, передавать или зеркально отображать контент с устройства Android, например мобильного телефона или планшета, на настольный компьютер или ноутбук.
  • При первом подключении устройства А к устройству Б:
    • Подключение ДОЛЖНО быть авторизовано с помощью одноразового кода, который показывается на исходном устройстве (A) и вводится на подключенном устройстве (B). Если на обоих устройствах есть хотя бы один совпадающий аккаунт в Android AccountManager, пользователь может подтвердить подключение, введя пароль аккаунта на подключенном устройстве (Б).
    • Во время подключения устройства должны находиться рядом друг с другом. 1
  • Во время трансляции оба устройства должны находиться рядом друг с другом. 1
  • Приложение может создавать каналы связи с подключенными устройствами и управлять ими, чтобы устройства могли обмениваться данными. Приложение и подключенные устройства ДОЛЖНЫ успешно пройти аутентификацию друг у друга (например, подтвердить знание общих ключей), чтобы установить эти каналы связи. Каналы связи ДОЛЖНЫ быть защищены сквозным шифрованием.
  • Приложение может отправлять уведомления с исходного устройства (А) на подключенное устройство (Б), чтобы пользователь мог совершать действия с уведомлениями на подключенном устройстве (Б).
  • Передавать на подключенное устройство (Б) метаданные, необходимые для потоковой передачи приложений, например список приложений, доступных на исходном устройстве (А).
  • Позволять пользователю транслировать приложения с исходного устройства (А) на подключенное устройство (Б) после того, как он выразил свое согласие на это (на исходном устройстве (А) или на подключенном устройстве (Б)).
  • Повторно воспроизводить (внедрять) события, которые происходят в транслируемом приложении на подключенном устройстве (B), на исходном устройстве (A). Например, воспроизведение события касания на подключенном устройстве (B) с теми же координатами, что и на исходном устройстве (A), или воспроизведение события ввода, произошедшего на подключенном устройстве (B), с той же семантикой ввода, что и на исходном устройстве (A).
  • Приложение может заменить поток данных с микрофона исходного устройства потоком данных с микрофона подключенного устройства, пока потоковое приложение использует микрофон.
  • Приложение записывает звук с исходного устройства (А) и передает его на подключенное устройство (Б).
  • Рекомендуется заблокировать доступ к приложениям настроек и магазинам приложений на подключенном устройстве (Б).
  • Начиная с Android 16, на подключенном устройстве Б ДОЛЖНА быть запрещена возможность делать скриншоты и использовать программы чтения с экрана для конфиденциального контента, например защищенных окон и поверхностей.
  • Обязательно проверьте целостность сборки ОС подключенного устройства (например, с помощью аттестации устройства, как описано в VerifiedBootState).
  • Транслируйте только те потоковые сервисы, в которых в реестре аккаунтов на устройстве (например, в классе AccountManager на Android) есть только один подходящий аккаунт на обоих устройствах. В противном случае трансляцию необходимо авторизовать с помощью одноразового кода, который показывается на исходном устройстве (А) и вводится на подключенном устройстве (Б). Обратите внимание, что в случае устройств, которые поддерживают добавление пользователей (а не несколько аккаунтов) с такой же надежной изоляцией данных, как в добавлении пользователей Android, пользователь считается устройством.
  • ДОЛЖНО немедленно прекратить трансляцию и отключиться от подключенного устройства (B), если срок действия аутентификации аккаунта на подключенном устройстве (B) истек или она была отозвана.
  • Обязательно прекратить трансляцию и отключиться от подключенного устройства (Б), если истекло время бездействия подключенного устройства (Б), на котором виден контент. МОЖЕТ оставлять экран подключенного устройства включенным в случаях, когда экран устройства Android не выключается, например при использовании WakeLock. Обязательно должен быть указан тайм-аут бездействия. Если подключенное устройство (B) не имеет собственного времени ожидания, необходимо использовать время ожидания не более 5 минут.
  • Если на исходном устройстве (A) используется фактор знания для разблокировки экрана, то при заблокированном экране приложение НЕ ДОЛЖНО транслировать приложения на подключенное устройство (B), если на нем нет заблокированного экрана и оно не разблокировано.
  • Если исходное устройство (A) управляется администратором, приложение ДОЛЖНО соблюдать правила, заданные администратором для включения или отключения трансляции на устройства поблизости (например, с помощью настроек DevicePolicyManager в Android).
  • Обязательно убедитесь, что удаленные дисплеи и все источники удаленного ввода событий принадлежат одному логическому устройству (например, удаленный дисплей и подключенная клавиатура) с точки зрения пользователя и события направляются соответствующим образом.
  • У пользователя ДОЛЖНА быть возможность завершить трансляцию с исходного устройства (A), например с помощью кнопки в постоянном уведомлении. Если на исходном устройстве (A) настроена блокировка экрана, то для переноса данных потребуется его разблокировать. Обязательно показывайте этот элемент на исходном устройстве (А). Он должен быть всегда виден и находиться в верхней части экрана.
  • Обязательно показывайте на исходном устройстве (А) уведомление о том, что контент транслируется на другом устройстве, например значок в строке состояния или постоянное уведомление.
DEVICE_POLICY_MANAGEMENT Все следующие поля:
  • Предоставить приложению эту роль может только производитель оригинального оборудования. Приложения не могут запрашивать эту роль, поскольку она должна быть предоставлена по умолчанию названию пакета, определенному производителем оригинального оборудования при отправке устройства.
  • Приложение должно уметь создавать управляемый профиль (владелец профиля) или управляемое устройство (владелец устройства), в том числе скачивать и устанавливать подходящий клиент правил для устройств, чтобы стать владельцем устройства или профиля, если это необходимо.
  • Приложение может динамически обновлять ресурсы, например строки и изображения, используемые для управления правилами устройства.
  • Приложение может быть предустановленным системным или скачанным и установленным до инициализации.
  • Если приложение, которому назначена роль, установлено на определенном пользователе Android, оно должно быть установлено на всех подходящих профилях этого пользователя.
SYSTEM_APP_PROTECTION_SERVICE Все:
  • Приложение является системным .
  • Единственная цель приложения – обнаруживать потенциально опасные приложения (которые могут представлять угрозу для пользователей, их данных или устройств, например трояны, шпионское ПО и приложения для фишинга) или нежелательное ПО для мобильных устройств.
  • Приложение должно соответствовать всем требованиям, изложенным в разделе 9.8.6 документа CDD для Android. данные на уровне ОС и данные о среде.
  • Приложение не должно запрашивать обычное разрешение android.permission.INTERNET. Вместо этого он должен получать доступ к интернету через четко определенные API в проекте с открытым исходным кодом.
  • Приложение не должно быть связано с другими приложениями, кроме следующих системных приложений: Permission Controller и компонентов, предоставляющих Telephony и Internet API. Каждая разрешенная привязка должна быть настроена явным образом с помощью конфигурации <allow-association> в системном файле config.
  • Приложение не должно передавать данные другим приложениям, если пользователь не выполнил прямое действие (например, не нажал кнопку, чтобы разрешить передачу данных).
SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER Все:
  • Приложение является системным.
  • Эту роль приложению могут назначить только производители оригинального оборудования.
  • Приложение должно передавать данные календаря с телефона iOS или Android пользователя на устройство Android Auto. Устройство Android Auto должно хранить данные календаря в поставщике календаря.
  • Приложение должно предоставлять пользователю компонент интерфейса на телефоне, с помощью которого можно включить синхронизацию календаря и выбрать календари для синхронизации. В приложении должен быть элемент интерфейса, с помощью которого пользователь может отключить синхронизацию календаря.
  • Приложение должно работать без подключения к интернету. Например, с помощью прямого проводного или беспроводного подключения.
AUTOMOTIVE_NAVIGATION Все:
  • В приложении есть функция, которую можно вызвать с помощью неявных запросов intent. Она показывает текущее местоположение пользователя и окружающую обстановку.
  • В приложении есть действие, которое можно вызвать с помощью запросов неявного намерения. Оно позволяет пользователю перейти к определенному местоположению.
  • У приложения есть объект activity, который запускается на приборной панели, когда приложение удерживает фокус навигации. В действии должно показываться текущее местоположение пользователя и его окружение, а также должна быть возможность навигации к указанному местоположению.
COMPANION_DEVICE_COMPUTER Все следующие поля:
  • Приложение является системным.
  • Назначить эту роль приложению могут только производители оригинального оборудования.
  • Пользователи могут дублировать уведомления и получать доступ к фотографиям и медиафайлам с телефона на подключенном компьютере.
SYSTEM_SETTINGS_INTELLIGENCE Хотя бы один из следующих вариантов:
  • Приложение является системным .
  • Эту роль может назначить приложению только производитель устройства.
  • Сервис, который предоставляет интеллектуальные функции для приложения "Настройки", например подсказки и поиск.
NOTES Все:
  • У приложения есть действие, которое другие приложения могут вызывать с помощью запросов неявного намерения. Пользователь может создать заметку, даже если экран заблокирован.
  • Приложение должно поддерживать это, имея объект Activity с фильтром intent для android.intent.action.CREATE_NOTE с категорией android.intent.category.DEFAULT. Объект activity должен корректно обрабатывать дополнительный параметр intent android.intent.extra.USE_STYLUS_MODE.
  • В приложении должны быть заданы атрибуты манифеста showWhenLocked и turnScreenOn со значением true.
COMPANION_DEVICE_GLASSES Приложение может отправлять запросы на установление связи с устройством Glass и управление им (с помощью API, предоставляемого классом CompanionDeviceManager). Когда очки и приложение подключены через интерфейс, предоставленный CDM, пользователи могут управлять очками, предоставляя им доступ к контактам, а также разрешение на управление уведомлениями и телефонными звонками.
COMPANION_DEVICE_NEARBY_DEVICE_STREAMING Все:
  • Приложение является системным.
  • Эту роль может назначить приложению только производитель устройства.
  • Разрешенные варианты использования:
    • Стриминг приложений с устройства Android, например смартфона или планшета, на автомобиль.
    • Стриминг приложений с устройства Android, например мобильного телефона или планшета, на XR-устройство.
  • При первом подключении устройства А к устройству Б:
    • Подключение ДОЛЖНО быть авторизовано с помощью одноразового кода, который показывается на исходном устройстве (A) и вводится на подключенном устройстве (B). Если на обоих устройствах есть хотя бы один совпадающий аккаунт в Android AccountManager, пользователь может подтвердить подключение, введя пароль аккаунта на подключенном устройстве (Б).
    • Во время подключения устройства должны находиться рядом 1.
  • Во время трансляции оба устройства должны находиться рядом друг с другом. 1
  • Приложение может создавать каналы связи с подключенными устройствами и управлять ими, чтобы устройства могли обмениваться данными. Приложение и подключенные устройства ДОЛЖНЫ успешно пройти аутентификацию друг у друга (например, подтвердить знание общих ключей), чтобы установить эти каналы связи. Каналы связи ДОЛЖНЫ быть защищены сквозным шифрованием.
  • Приложение может отправлять уведомления с исходного устройства (А) на подключенное устройство (Б), чтобы пользователь мог совершать действия с уведомлениями на подключенном устройстве (Б).
  • Передавать на подключенное устройство (Б) метаданные, необходимые для потоковой передачи приложений, например список приложений, доступных на исходном устройстве (А).
  • Позволять пользователю транслировать приложения с исходного устройства (А) на подключенное устройство (Б) после того, как он выразил свое согласие на это (на исходном устройстве (А) или на подключенном устройстве (Б)).
  • Повторно воспроизводить (внедрять) события, которые происходят в транслируемом приложении на подключенном устройстве (B), на исходном устройстве (A). Например, воспроизведение события касания на подключенном устройстве (B) с теми же координатами, что и на исходном устройстве (A), или воспроизведение события ввода, произошедшего на подключенном устройстве (B), с той же семантикой ввода, что и на исходном устройстве (A).
  • Приложение может заменить поток данных с микрофона исходного устройства потоком данных с микрофона подключенного устройства, пока потоковое приложение использует микрофон.
  • Приложение записывает звук с исходного устройства (А) и передает его на подключенное устройство (Б).
  • РЕКОМЕНДУЕТСЯ заблокировать доступ к настройкам приложений и магазинам приложений на подключенном устройстве (B).
  • Начиная с Android 16 на подключенном устройстве Б необходимо запретить создание скриншотов и чтение с экрана конфиденциального контента, например защищенных окон и поверхностей.
  • ОБЯЗАТЕЛЬНО проверять целостность сборки ОС подключенного устройства, например с помощью подтверждения устройства, как описано в разделе VerifiedBootState.
  • Транслируйте только те потоковые сервисы, в которых в реестре аккаунтов на устройстве (например, в классе AccountManager на Android) есть только один подходящий аккаунт на обоих устройствах. Если это не так, трансляция ДОЛЖНА быть авторизована с помощью одноразового кода, показанного на исходном устройстве (A) и введенного на подключенном устройстве (B). Обратите внимание, что в случае устройств, которые поддерживают добавление пользователей (а не несколько аккаунтов) с такой же надежной изоляцией данных, как в добавлении пользователей Android, пользователь считается устройством.
  • ДОЛЖНО немедленно прекратить трансляцию и отключиться от подключенного устройства (B), если срок действия аутентификации аккаунта на подключенном устройстве (B) истек или она была отозвана.
  • Обязательно прекратить трансляцию и отключиться от подключенного устройства (Б), если истекло время бездействия подключенного устройства (Б), на котором виден контент. МОЖЕТ оставлять экран подключенного устройства включенным в случаях, когда экран устройства Android не выключается, например при использовании WakeLock. Обязательно должен быть указан тайм-аут бездействия. Если подключенное устройство (B) не имеет собственного времени ожидания, необходимо использовать время ожидания не более 5 минут.
  • Если на исходном устройстве (А) используется фактор знаний для блокировки экрана (LSKF), то при заблокированном экране приложение НЕ ДОЛЖНО передавать контент на подключенное устройство (Б), если на нем не настроена блокировка экрана или оно заблокировано.
  • Если исходное устройство (А) управляется администратором, приложение ДОЛЖНО соблюдать правила, заданные администратором в отношении включения или отключения трансляции на устройства поблизости (например, с помощью настроек DevicePolicyManager в Android).
  • ОБЯЗАНЫ обеспечивать, чтобы удаленные экраны и все источники удаленных событий ввода принадлежали одному логическому устройству (например, удаленный экран и подключенная клавиатура) с точки зрения пользователя и события маршрутизировались соответствующим образом.
  • У пользователя ДОЛЖНА быть возможность завершить трансляцию с исходного устройства (A), например с помощью кнопки в постоянном уведомлении. Если на исходном устройстве (A) настроена блокировка экрана, то для переноса данных потребуется его разблокировать. Обязательно показывайте этот элемент на исходном устройстве (А). Он должен быть всегда виден и находиться в верхней части экрана.
  • ОБЯЗАТЕЛЬНО показывать на исходном устройстве (A) индикатор того, что трансляция выполняется на другом устройстве, например значок в строке состояния или постоянное уведомление.
WALLET Один из вариантов:
  • В приложении есть сервис NFC APDU, который статически регистрирует хотя бы один идентификатор приложения (AID) в категории PAYMENT.
  • Приложение реализует экземпляр QuickAccessWalletService.

1 Близость определяется тем, что два устройства находятся в радиусе действия Bluetooth или Wi-Fi друг от друга или используют одну и ту же локальную сеть.