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

Профиль вспомогательного устройства, представленный в 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)
  • Быть подключенным устройством, использующим Bluetooth и/или Wi-Fi.
  • Имеет экран, способный отображать уведомления (устройства, использующие тактильную обратную связь вместо экрана, исключаются).
  • Обеспечивает взаимодействие с пользователем для отображения уведомлений, например, вывод уведомлений с телефона на экран сопутствующего устройства.
  • Отправляет уведомления на телефон для управления устройством. Например, когда подключаются часы или когда включается определенная функция.
Phone
  • Быть подключенным устройством, использующим Bluetooth и/или Wi-Fi.
  • Имеет встроенный микрофон и динамик для голосовой связи.
  • Имеет экран, на котором отображается информация о звонящем.
  • Обеспечивает удобный интерфейс для совершения телефонных звонков (сопутствующее приложение обеспечивает связь по телефону).
SMS
  • Быть подключенным устройством, использующим Bluetooth и/или Wi-Fi.
  • Имеет экран, на котором отображаются SMS-сообщения.
  • Обеспечьте удобный интерфейс для пользователей SMS-сообщений.
Contacts
  • Быть подключенным устройством, использующим Bluetooth и/или Wi-Fi.
  • Имеет дисплей
  • Использует контактную информацию в процессе совершения звонков или обмена сообщениями.
Calendar
  • Быть подключенным устройством, использующим Bluetooth и/или Wi-Fi.
  • Имеет дисплей
  • Обеспечьте пользователю доступ к календарю на часах.
Nearby devices
  • Быть подключенным устройством, использующим Bluetooth и/или Wi-Fi.
  • Имеет дисплей
  • Обеспечьте удобный интерфейс сопряжения/подключения на часах для пользователя.
eSIM provisioning
  • Быть подключенным устройством, использующим Bluetooth и/или Wi-Fi.
  • Имеет дисплей
  • Обеспечьте пользовательский интерфейс, позволяющий управлять услугами абонента от оператора связи на часах.
Managing ongoing calls
  • Быть подключенным устройством, использующим Bluetooth и/или Wi-Fi.
  • Имеет встроенный микрофон и динамик для голосовой связи.
  • Имеет экран, на котором отображается информация о звонящем.
  • Обеспечивает удобный интерфейс для совершения телефонных звонков (сопутствующее приложение обеспечивает связь по телефону).

Профиль очков

Профиль «Очки» появился в Android 14.

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

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

POST_NOTIFICATIONS
  • Быть подключенным устройством, использующим Bluetooth и/или Wi-Fi.
  • Имеет экран, способный отображать уведомления (устройства, использующие тактильную обратную связь вместо экрана, исключаются).
  • Обеспечивает взаимодействие с пользователем для отображения уведомлений, например, вывод уведомлений с телефона на экран сопутствующего устройства.
  • Отправляет уведомления на телефон для управления устройством, например, когда подключается устройство для очков или когда включается определенная функция.
Phone
  • Быть подключенным устройством, использующим Bluetooth и/или Wi-Fi.
  • Имеет встроенный микрофон и динамик для голосовой связи.
  • Имеет экран, на котором отображается информация о звонящем.
  • Обеспечивает удобный интерфейс для совершения телефонных звонков (сопутствующее приложение обеспечивает связь по телефону).
SMS
  • Быть подключенным устройством, использующим Bluetooth и/или Wi-Fi.
  • Имеет экран, на котором отображаются SMS-сообщения.
  • Обеспечьте удобный интерфейс для пользователей SMS-сообщений.
Contacts
  • Быть подключенным устройством, использующим Bluetooth и/или Wi-Fi.
  • Имеет дисплей
  • Использует контактную информацию в процессе совершения звонков или обмена сообщениями.
Microphone
  • Быть подключенным устройством, использующим Bluetooth и/или Wi-Fi.
  • Имеет дисплей
  • Обеспечивает наличие микрофона, расположенного непосредственно на очках, и удобство использования микрофона, направленного на пользователя.
Nearby devices
  • Быть подключенным устройством, использующим Bluetooth и/или Wi-Fi.
  • Имеет дисплей
  • Обеспечивает удобный интерфейс сопряжения/подключения очков для пользователя.
Managing ongoing calls
  • Быть подключенным устройством, использующим Bluetooth и/или Wi-Fi.
  • Имеет встроенный микрофон и динамик для голосовой связи.
  • Имеет экран, на котором отображается информация о звонящем.
  • Обеспечивает удобный интерфейс для совершения телефонных звонков (сопутствующее приложение обеспечивает связь по телефону).

Выполнение

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

  1. Вызовите метод setDeviceProfile .

  2. Передайте профиль (например, DEVICE_PROFILE_WATCH при создании AssociationRequest ).

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

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

Валидация

Для проверки работы функции профиля вспомогательного устройства используйте тесты CTS, расположенные в cts/tests/tests/companion/ .