Я создаю приложение с помощью HomeKit SDK и хочу программно добавить несертифицированный аксессуар. Моя цель — создать удобный и удобный процесс сопряжения без распечатки QR-кода или аксессуара с поддержкой NFC. Я хотел бы программно передать пин-код/URL-адрес сопряжения, чтобы пользователю не нужно было беспокоиться о каких-либо кодах.
Я уже настроил HMAccessoryBrowser, и он находит аксессуар быстро и надежно. Пока у меня есть объект HMAccessory, а также действующая ссылка для сопряжения (пример: X-HM://123456789ABC
), и я пробовал три способа, чтобы добавить аксессуар:
- Создайте QR-код с URL-адресом и отсканируйте его с помощью родной камеры или домашнего приложения, которое работает очень хорошо. - Проблема: вам нужно второе устройство/распечатайте QR-код, чтобы отсканировать QR-код.
- Используйте функцию
addAccessory
HMHome, чтобы напрямую добавить HMAccessory. - Проблема: после принятия запроса на добавление устройства открывается приложение Home и предлагает отсканировать QR-код или выбрать устройство вручную и ввести код. Для меня это не имеет смысла, если я только что не сказал HomeKit, какой аксессуар он должен добавить, но он также делает это с аксессуарами симулятора аксессуаров HomeKit, а также упоминается в этот пост. - Откройте URL-адрес X-HM с помощью
UIApplication.open()
. - Проблема: также с разрешениями HomeKit функция завершается сбоем с сообщением об ошибке:
-canOpenURL: ошибка для URL: "X-HM://123456789ABC" - ошибка: "Операция не может быть завершена. (Ошибка OSStatus -10814.)"
Перед предоставлением доступа к моему Home Data
сообщение об ошибке было примерно таким: у вас нет разрешения на открытие этого URL-адреса.
На мой взгляд, прямое открытие URL-адреса сопряжения кажется лучшим решением, если для пользователя это не тот же процесс, что и добавление любого другого устройства HomeKit без необходимости сканирования QR-кода, но у меня заканчиваются идеи.
Я был бы признателен за любую идею, обходной путь или другой процесс, чтобы получить эту вещь в паре, заранее спасибо!