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

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

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

Следующий компаньон устройство типов профилей доступны в Android 12: COMPANION_DEVICE_WATCH .

Для получения более подробной информации о сопутствующих устройствах см спаривание Companion устройства .

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

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

Когда пользователь принимает запрос приложения , чтобы создать ассоциацию с сопутствующим устройством, то CompanionDeviceManager (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
  • Имеет встроенный микрофон и динамик, позволяющий разговаривать голосом.
  • Имеет экран, на котором отображается информация о вызывающем абоненте
  • Обеспечивает удобство телефонных звонков для пользователя (приложение-компаньон выполняет телефонные звонки)

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

Чтобы приложения могли получить доступ к профилям сопутствующих устройств, они должны быть одобрены и добавлены в список разрешенных. Когда запрос будет добавлен к allowlist получено, 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: