Профиль сопутствующего устройства, представленный в 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) |
|
Phone |
|
SMS |
|
Contacts |
|
Calendar |
|
Nearby devices |
|
eSIM provisioning |
|
Managing ongoing calls |
|
Профиль очков
Профиль для очков появился в Android 14.
В таблице ниже описаны разрешения, определенные для профиля устройства COMPANION_DEVICE_GLASSES, и требования к их использованию.
| Разрешения | Требования к сопутствующему приложению и устройству |
|---|---|
УведомленияPOST_NOTIFICATIONS |
|
Phone |
|
SMS |
|
Contacts |
|
Microphone |
|
Nearby devices |
|
Managing ongoing calls |
|
Реализация
Для сторонних разработчиков, реализующих сопутствующее приложение, которое запрашивает профиль DEVICE_PROFILE_WATCH, выполните следующие действия:
Вызовите метод
setDeviceProfile.Передайте профиль (например,
DEVICE_PROFILE_WATCHпри созданииAssociationRequest).
производители устройств, которые могут не показывать диалоговое окно с запросом согласия пользователя;
Производители устройств, реализующие сопутствующее приложение для определенного устройства, должны использовать следующие обязательные системные конфигурации Android, чтобы сертифицировать сопутствующее приложение и разрешить ему не показывать диалоговое окно согласия пользователя.
Получите сертификат с помощью следующей команды:
keytool -printcert -jarfile PATH/TO/APKЗамените название пакета и сертификат, как показано в примере входных данных в файле конфигурации:
<!-- 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>Используйте
AssociationRequest, чтобы отправить запрос на связывание одному дополнительному устройству.
Проверка
Чтобы проверить работу функции профиля дополнительного устройства, используйте тесты CTS в cts/tests/tests/companion/.