Как добавить аксессуар HomeKit с помощью HMAccessoryPayLoad?

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

Мое требование: без использования QR-кода я хочу добавить аксессуар. Поскольку каждый аксессуар имеет свой собственный URL-адрес, например, X-HM://XXXXXXXXX связан с QR-кодом, т.е. HMAccessoryPayLoad.

Очень похожие вопросы, на которые нет ответа, я вижу

Как добавить и настроить аксессуар с помощью HMAccessoryPayLoad

Открыть URL-схему HomeKits X-HM://

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

if #available(iOS 11.3, *) {

    let payload = HMAccessorySetupPayload.init(url: URL.init(string: "X-HM://XXXXXXXXXX")!)

    home!.addAndSetupAccessories(with: payload!) { (accessories, error) in

        if let error = error {
            print("Error from addAndSetupAccessories:",error)
        } else {
            print("The accessory is added.")
        }
    }
} else {
    // Fallback on earlier versions
}

После запуска этого кода он не дает ни ошибки, ни успеха. Я пытался проверить консоль, но она пуста.

Не могли бы вы помочь мне добавить аксессуар с помощью полезной нагрузки и без использования кода или открытия вида камеры по умолчанию.


person Shrikant K    schedule 19.06.2020    source источник
comment
Вы когда-нибудь находили, как использовать этот метод? та же проблема для меня, обратный вызов никогда не вызывается   -  person axl coder    schedule 17.09.2020
comment
пока нет, у меня ничего не получилось :( я напишу, если получу.   -  person Shrikant K    schedule 02.10.2020


Ответы (1)


У меня был ответ от службы поддержки Apple, потому что в основном я был в такой же ситуации.

В основном этот API не работает, если вы не добавите Entitlement com.apple.developer.homekit.allow-setup-payload со значением, равным True.

Я знаю, что нет документации по этому поводу, но это все.

Более того, дело в том, что я пока не знаю, как добавить это право в профиль обеспечения. Я обратился в службу поддержки Apple и обновлю этот поток Xamarin iOS — интеграция HomeKit как только я получу ответ.

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

person axl coder    schedule 02.10.2020