Действие устройства

Искатели могут запросить, чтобы Провайдер предпринял действие. Если действие поддерживается провайдером, оно должно быть подтверждено и выполнено, в противном случае оно должно быть проигнорировано.

Имя группы сообщений Стоимость
Событие действия устройства 0x04
Название кода действия устройства Стоимость
Звенеть 0x01

Звонок на устройство

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

Дополнительные данные будут включены в сообщение, чтобы указать, следует ли запускать или останавливать вызывной сигнал, который можно расширить для поддержки поставщиков с несколькими компонентами (левый и правый наушник). В первом байте биты будут установлены в 1, чтобы запросить запуск кольца, или в 0, чтобы запросить остановку кольца.

Например, если первый байт дополнительных данных установлен в:

  • 0x00 (0b00000000): все компоненты должны перестать звонить
  • 0x01 (0b00000001): Звонок вправо, стоп звонка влево
  • 0x02 (0b00000010): Звонок влево, стоп звонка вправо
  • 0x03 (0b00000011): звонок и слева, и справа

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

  • 0x00 (0b00000000): остановить звонок
  • 0x01 (0b00000001): Начать звонок

Второй байт в дополнительных данных, если он присутствует, представляет время ожидания в секундах. Это значение должно использоваться провайдером, чтобы определить, как долго он должен звонить перед отключением самого себя. Основываясь на приведенном выше примере с правом кольца и тайм-ауте в 60 секунд, 0x013C будет передан в качестве дополнительных данных.

Синхронизация статуса звонка с Seekers

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

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

Подтверждение действия

Когда действие получено, оно должно быть подтверждено , чтобы Искатель знал, было ли действие выполнено. Если подтверждение не получено в течение 1 секунды после отправки действия (или получено отрицательное подтверждение), искатель предположит, что действие в настоящее время не поддерживается.