Перейти к основному содержимому

Авторизация локального голосового помощника

Необязательный модуль AIBudsVoiceAssistant авторизует поддерживаемое устройство для локального голосового помощника. Этот мост авторизации не связан с выбором отключённого, базового или расширенного режима в разделе «Голосовой помощник».

Animated workflow

Авторизация локального помощника

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

Устройство + Core

Подключить устройство

Завершить обычный процесс подключения поддерживаемого устройства.

AIBuds Core

Определить необходимость

Core определяет, требуется ли авторизация помощника.

Голосовой помощник

Запустить плагин

Передать идентификатор устройства зарегистрированному мосту помощника.

Плагин ↔ устройство

Обменяться непрозрачными данными

Передавать зашифрованные данные авторизации без разбора приложением.

обмен через мост
Приложение

Получить итоговый результат

Передать успех или ошибку через делегат SDK/устройства.

Успешная передача через мост — лишь промежуточный этап. Итоговым сигналом для приложения служит результат авторизации в делегате.

Процесс авторизации

Реализация устройства в Core определяет, когда нужна авторизация. Зарегистрированный OnDeviceVoiceAssistantBridgePlugin обменивается непрозрачными данными через OnDeviceVoiceAssistantDevice. Приложение наблюдает итоговый результат и не должно разбирать, сохранять или изменять содержимое обмена.

Реализация с помощью AI

Разработка с AI

Реализуйте этот сценарий с AI

Используйте официальный навык «Управление голосовым помощником AIBuds» и адаптируйте сценарий к приложению.

Прочитайте и выполните инструкции https://docs-aibuds.github.io/ru/skills/manage-aibuds-on-device-voice-assistant. Используйте этот навык, чтобы реализовать «Управление голосовым помощником AIBuds» в данном iOS-проекте и проверить результат.
Открыть официальный навык

Ответственность за регистрацию

AIBudsAllInOneSDK.initialize регистрирует OnDeviceVoiceAssistantPlugin.shared. При модульной интеграции подключите AIBudsVoiceAssistant и зарегистрируйте мост до подключения устройства. Регистрацией должен управлять тот же владелец уровня приложения, что и инициализацией Core.

Публичного API «авторизовать сейчас» нет. Авторизация запускается в процессе подключения поддерживаемого устройства, когда SDK определяет её необходимость.

Обработка итогового результата

Реализуйте callback делегата SDK или устройства:

Swift
func device(
    _ device: DeviceConvertible,
    didReceiveOnDeviceVoiceAssistantAuthResult isSuccess: Bool,
    error: NSError?
) {
    // Update product state on the main queue.
}

Этот callback — итоговый сигнал для приложения. Успешная отправка данных через мост означает лишь прогресс передачи, но не успешную авторизацию.

Порядок и повторная попытка

Если устройству нужен ещё один мост AI-авторизации, SDK может начать авторизацию локального помощника после предыдущего результата. Не запускайте конкурирующую попытку из кода интерфейса.

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

Границы безопасности

  • Считайте данные моста непрозрачным материалом учётных данных.
  • Не записывайте в production байты данных, идентификатор устройства или производные секреты.
  • Не кэшируйте и не воспроизводите пакеты моста.
  • Используйте совместимые версии плагина и его криптографической зависимости.
  • Показывайте пользователю только ошибки, требующие действий; подробности храните в защищённой диагностике.

Контрольный список

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