Профили дополнительных устройств

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

Чтобы использовать профили сопутствующих устройств, сопутствующие приложения должны соответствовать следующим требованиям:

  • Управление дополнительным устройством (например, умными часами).
  • Иметь функции приложения или вызывать API Android, для которых требуются все разрешения, определенные для профиля дополнительного устройства.

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

Подробнее о подключении дополнительных устройств…

Поведение устройства

В этом разделе описано поведение устройства при использовании профилей дополнительных устройств.

Когда пользователь принимает запрос приложения на связывание с сопутствующим устройством, сервис CompanionDeviceManager (CDM) назначает сопутствующему приложению роль профиля устройства (например, часов), предоставляя все разрешения, определенные для этой роли. На рисунке 1 показан пример приложения, запрашивающего разрешения для профиля устройства COMPANION_DEVICE_WATCH.

Диалоговое окно с запросом профиля устройства для просмотра

Рисунок 1. Диалоговое окно с запросом разрешений для профиля устройства часов.

Когда пользователь удаляет данные пакета в настройках или удаляет все устройства в сопутствующем приложении, CDM отзывает профиль, если приложение не работает в активном режиме и не имеет активной службы. При отзыве профиля также отзываются все определенные для него разрешения.

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

Профили дополнительных устройств для сторонних приложений

Профиль для просмотра

Профиль часов появился в Android 12.

В таблице ниже описаны разрешения, определенные для профиля устройства COMPANION_DEVICE_WATCH, и требования к их использованию.

Разрешения Требования к сопутствующему приложению и устройству
Уведомления

POST_NOTIFICATIONS (added in Android 15)
  • быть подключенным устройством, использующим Bluetooth и/или Wi-Fi;
  • Устройство оснащено экраном, на котором можно показывать уведомления (устройства, использующие вместо экрана тактильные сигналы, не поддерживаются).
  • Обеспечивает пользовательский интерфейс уведомлений, например отображение уведомлений телефона на экране дополнительного устройства.
  • Публикует уведомления на телефоне для управления устройством. Например, когда подключены часы или включена определенная функция.
Phone
  • быть подключенным устройством с использованием Bluetooth и/или Wi-Fi;
  • Встроенный микрофон и динамик позволяют вести голосовые разговоры.
  • имеет экран, на котором показывается информация о звонящем;
  • Предоставляет пользовательский интерфейс для телефонных звонков (сопутствующее приложение связывает телефонные звонки).
SMS
  • быть подключенным устройством с использованием Bluetooth и/или Wi-Fi;
  • есть экран, на котором отображаются SMS-сообщения;
  • Предоставление пользовательского интерфейса для SMS
Contacts
  • быть подключенным устройством, использующим Bluetooth и/или Wi-Fi;
  • Есть экран
  • Использует контактную информацию для звонков и обмена сообщениями.
Calendar
  • быть подключенным устройством с использованием Bluetooth и/или Wi-Fi;
  • Есть экран
  • Предоставлять пользователям доступ к календарю на часах.
Nearby devices
  • быть подключенным устройством с использованием Bluetooth и/или Wi-Fi;
  • Есть экран
  • Предоставьте пользовательский интерфейс для подключения/сопряжения на часах
eSIM provisioning
  • быть подключенным устройством с использованием Bluetooth и/или Wi-Fi;
  • Есть экран
  • Предоставлять пользовательский интерфейс для управления услугами оператора связи на часах.
Managing ongoing calls
  • быть подключенным устройством с использованием Bluetooth и/или Wi-Fi;
  • Встроенный микрофон и динамик позволяют вести голосовые разговоры.
  • имеет экран, на котором показывается информация о звонящем;
  • Обеспечивает пользовательский интерфейс для телефонных звонков (сопутствующее приложение позволяет совершать звонки).

Профиль очков

Профиль для очков появился в Android 14.

В таблице ниже описаны разрешения, определенные для профиля устройства COMPANION_DEVICE_GLASSES, и требования к их использованию.

Разрешения Требования к сопутствующему приложению и устройству
Уведомления

POST_NOTIFICATIONS
  • быть подключенным устройством с использованием Bluetooth и/или Wi-Fi;
  • Устройство оснащено экраном, на котором можно показывать уведомления (устройства, использующие вместо экрана тактильные сигналы, не поддерживаются).
  • Обеспечивает пользовательский интерфейс уведомлений, например отображение уведомлений телефона на экране дополнительного устройства.
  • Отправляет уведомления на телефон, связанные с управлением устройством, например когда подключены очки или включена определенная функция.
Phone
  • быть подключенным устройством с использованием Bluetooth и/или Wi-Fi;
  • Встроенный микрофон и динамик позволяют вести голосовые разговоры.
  • имеет экран, на котором показывается информация о звонящем;
  • Предоставляет пользовательский интерфейс для телефонных звонков (сопутствующее приложение связывает телефонные звонки).
SMS
  • быть подключенным устройством с использованием Bluetooth и/или Wi-Fi;
  • есть экран, на котором отображаются SMS-сообщения;
  • Предоставление пользовательского интерфейса для SMS
Contacts
  • быть подключенным устройством, использующим Bluetooth и/или Wi-Fi;
  • Есть экран
  • Использует контактную информацию для звонков и обмена сообщениями.
Microphone
  • быть подключенным устройством с использованием Bluetooth и/или Wi-Fi;
  • Есть экран
  • Обеспечивает пользовательскую работу микрофона на очках.
Nearby devices
  • быть подключенным устройством с использованием Bluetooth и/или Wi-Fi;
  • Есть экран
  • Обеспечивает пользовательский интерфейс для подключения очков.
Managing ongoing calls
  • быть подключенным устройством с использованием Bluetooth и/или Wi-Fi;
  • Встроенный микрофон и динамик позволяют вести голосовые разговоры.
  • имеет экран, на котором показывается информация о звонящем;
  • Обеспечивает пользовательский интерфейс для телефонных звонков (сопутствующее приложение позволяет совершать звонки).

Реализация

Для сторонних разработчиков, реализующих сопутствующее приложение, которое запрашивает профиль DEVICE_PROFILE_WATCH, выполните следующие действия:

  1. Вызовите метод setDeviceProfile.

  2. Передайте профиль (например, DEVICE_PROFILE_WATCH при создании AssociationRequest).

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

  1. Получите сертификат с помощью следующей команды:

    keytool  -printcert -jarfile PATH/TO/APK
    
  2. Замените название пакета и сертификат, как показано в примере входных данных в файле конфигурации:

    <!-- A list of packages managing companion device(s) by the same manufacturers as the main device.
    It will not create the association without prompting if the association has been called multiple
    times in a short period. Note that config_companionDeviceManagerPackage and config_companionDeviceCerts
    are parallel arrays. -->
    
    <string-array name="config_companionDevicePackages" translatable="false">
        <item>YOUR_COMPANION_APP_PACKAGE_NAME</item>
    </string-array>
    
    <!-- A list of SHA256 Certificates managing companion device(s) by the same manufacturers as the
    main device. It will fall back to showing a prompt if the association has been called multiple
    times in a short period. Note that config_companionDeviceCerts and config_companionDeviceManagerPackage
    are parallel arrays.
    Example: "1A:2B:3C:4D" -->
    
    <string-array name="config_companionDeviceCerts" translatable="false">
        <item>YOUR_COMPANION_APP_CERTIFICATE</item>
    </string-array>
    
  3. Используйте AssociationRequest, чтобы отправить запрос на связывание одному дополнительному устройству.

Проверка

Чтобы проверить работу функции профиля дополнительного устройства, используйте тесты CTS в cts/tests/tests/companion/.