Профиль устройства-компаньона, представленный в Android 12, — это функция, которая позволяет приложениям-компаньонам запрашивать набор разрешений, специфичный для типа устройства-компаньона, например, смарт-часы. Использование профиля сопутствующего устройства упрощает процесс регистрации, позволяя приложениям отображать одно приглашение для пользователей на их мобильных устройствах с запросом определенного набора разрешений вместо нескольких запросов, запрашивающих разрешения по отдельности. Это может обеспечить более рациональную настройку и более высокие показатели подписки для сопутствующих приложений.
Использование профилей сопутствующих устройств доступно только тем производителям устройств, у которых есть сопутствующие устройства. Чтобы сопутствующие устройства могли получить доступ к этой функции, они должны соответствовать требованиям и быть одобрены.
В Android 12 доступны следующие типы профилей сопутствующих устройств: COMPANION_DEVICE_WATCH
.
Дополнительные сведения об устройствах-компаньонах см. в разделе Сопряжение устройств-компаньонов .
Поведение устройства
В этом разделе описывается поведение устройства при использовании профилей сопутствующих устройств.
Когда пользователь принимает запрос приложения на создание ассоциации с устройством-компаньоном, служба CompanionDeviceManager
(CDM) ожидает подключения устройства-компаньона, а когда оно подключается, CDM назначает роль профиля устройства (например, наблюдение) устройству-компаньону. сопутствующее приложение, предоставляющее все разрешения, определенные для этой указанной роли профиля. На рис. 1 показан пример приложения, запрашивающего разрешения для профиля устройства COMPANION_DEVICE_WATCH
.
Рис. 1. Диалоговое окно запроса разрешений для профиля часового устройства.
Когда связь между приложением и сопутствующим устройством удалена, например, когда данные для пакета очищены или когда устройство забыто, CDM отзывает роль профиля устройства для приложения, что удаляет все определенные разрешения для роли профиля. из приложения.
После того как пользователь примет запрос приложения на предоставление разрешений для определенного профиля устройства, он может отозвать отдельные предоставленные разрешения. Когда разрешение отзывается пользователем, приложение остается связанным с устройством-компаньоном, но некоторые функции могут стать недоступными. Если для работы приложения требуется разрешение, приложение должно запросить разрешение с помощью обычного запроса разрешения .
Требования
Чтобы приложение-компаньон получило доступ к API профиля устройства-компаньона, оно должно соответствовать следующим требованиям:
- Иметь сопутствующее устройство (например, смарт-часы).
- Иметь законную причину для запроса разрешений, определенных для профиля сопутствующего устройства.
Требования к профилю сопутствующих устройств для просмотра
В следующей таблице описаны определенные разрешения для роли профиля устройства COMPANION_DEVICE_WATCH
и требования для их использования.
Разрешения | Требования к сопутствующему приложению и устройству |
---|---|
УведомленияBIND_NOTIFICATION_LISTENER_SERVICE |
|
Телефонphone |
|
смсsms |
|
Контактыcontacts |
|
Календарьcalendar |
|
Ближайшие устройстваnearby_devices |
|
Подготовка eSIMUSE_ICC_AUTH_WITH_DEVICE_IDENTIFIER |
|
Управление текущими вызовамиMANAGE_ONGOING_CALLS |
|
Получение доступа
Чтобы приложения могли получить доступ к профилям сопутствующих устройств, они должны быть одобрены и добавлены в белый список. Когда получен запрос на добавление в белый список, команда Android проверяет приложение, чтобы убедиться, что оно соответствует требованиям для соответствующего профиля устройства-компаньона.
Реализация
Для производителей устройств, внедряющих сопутствующее приложение с определенным устройством, используйте следующие обязательные системные конфигурации Android для сертификации сопутствующего приложения, что позволяет приложению пропустить отображение запроса CDM для пользователей.
Получите сертификат с помощью следующей команды:
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_COMAPNION_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
, чтобы сделать запрос на привязку к одному устройству-компаньону.
Для сторонних разработчиков, реализующих сопутствующее приложение, которое запрашивает профиль DEVICE_PROFILE_WATCH
, выполните следующие действия:
- Вызовите метод
setDeviceProfile
. - Передайте профиль
DEVICE_PROFILE_WATCH
при созданииAssociationRequest
.
Проверка
Чтобы проверить поведение функции профиля сопутствующего устройства, используйте следующие тесты CTS: