Профили сопутствующих устройств

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

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

В Android 12 доступны следующие типы профилей сопутствующих устройств: COMPANION_DEVICE_WATCH .

Дополнительные сведения об устройствах-компаньонах см. в разделе Сопряжение устройств-компаньонов .

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

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

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

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

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

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

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

Требования

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

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

Требования к профилю сопутствующих устройств для просмотра

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

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

BIND_NOTIFICATION_LISTENER_SERVICE
  • Быть подключенным устройством с помощью Bluetooth и/или Wi-Fi
  • Имеет экран, способный отображать уведомления (исключаются устройства, использующие тактильные ощущения вместо экрана)
  • Обеспечивает взаимодействие с пользователем, например, отображение телефонных уведомлений на экране сопутствующего устройства.
Телефон

phone
  • Быть подключенным устройством с помощью Bluetooth и/или Wi-Fi
  • Имеет встроенный микрофон и динамик для голосового общения.
  • Имеет экран, на котором отображается информация о вызывающем абоненте
  • Обеспечивает взаимодействие с пользователем по телефону (сопутствующее приложение соединяет телефонные звонки)
SMS

sms
  • Быть подключенным устройством с помощью Bluetooth и/или Wi-Fi
  • Имеет экран, на котором отображаются SMS-сообщения
  • Обеспечьте удобство работы с SMS, ориентированное на пользователя
Контакты

contacts
  • Быть подключенным устройством с помощью Bluetooth и/или Wi-Fi
  • Имеет экран дисплея
  • Использует контактную информацию как часть звонка или обмена сообщениями
Календарь

calendar
  • Быть подключенным устройством с помощью Bluetooth и/или Wi-Fi
  • Имеет экран дисплея
  • Обеспечьте удобный доступ к календарю на часах
Ближайшие устройства

nearby_devices
  • Быть подключенным устройством с помощью Bluetooth и/или Wi-Fi
  • Имеет экран дисплея
  • Обеспечить сопряжение/подключение на часах, ориентированное на пользователя.
Подготовка eSIM

USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER
  • Быть подключенным устройством с помощью Bluetooth и/или Wi-Fi
  • Имеет экран дисплея
  • Обеспечьте взаимодействие с пользователем, которое управляет услугами абонента от оператора связи на часах.
Управление текущими вызовами

MANAGE_ONGOING_CALLS
  • Быть подключенным устройством с помощью Bluetooth и/или Wi-Fi
  • Имеет встроенный микрофон и динамик для голосового общения.
  • Имеет экран, на котором отображается информация о вызывающем абоненте
  • Обеспечивает взаимодействие с пользователем по телефону (сопутствующее приложение соединяет телефонные звонки)

Получение доступа

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

Реализация

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

  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_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>
    
  3. Используйте AssociationRequest , чтобы сделать запрос на привязку к одному устройству-компаньону.

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

  1. Вызовите метод setDeviceProfile .
  2. Передайте профиль DEVICE_PROFILE_WATCH при создании AssociationRequest .

Проверка

Чтобы проверить поведение функции профиля сопутствующего устройства, используйте следующие тесты CTS: