Профиль устройства-компаньона, представленный в 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 |
|
Профиль очков
Профиль Glasses представлен в 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/
.