【问题标题】:How to add HomeKit accessory using HMAccessoryPayLoad?如何使用 HMAccessoryPayLoad 添加 HomeKit 配件?
【发布时间】:2020-10-09 16:58:59
【问题描述】:

您好,目前我正在开发 HomeKit,我想使用 HomeKit 实现一项功能。

我的要求是不使用二维码我想添加配件。因为每个配件都有自己的 URL,例如X-HM://XXXXXXXXX与二维码关联,即HMAccessoryPayLoad

我可以看到非常相似的未回答的问题

How to Add and Set up accessory using HMAccessoryPayLoad

Open HomeKits X-HM:// URL sheme

因此,根据文档,我尝试使用以下代码添加附件。我希望使用此代码我们可以直接添加配件,而无需打开默认的 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
}

运行此代码后,它没有给出错误或成功。我尝试检查控制台,但它是空的。

您能否帮我使用有效负载添加附件,无需使用代码或打开默认相机视图。

【问题讨论】:

  • 你有没有发现如何使用这个方法?对我来说同样的问题,回调永远不会被调用
  • 直到我没有得到任何东西:(如果我得到它我会发布。

标签: ios swift homekit ios-homekit hmaccessory


【解决方案1】:

我从 Apple 支持那里得到了答案,因为我基本上处于同样的情况。

如果您不添加值为 True 的权利“com.apple.developer.homekit.allow-setup-payload”,则此 API 基本上不起作用。

我知道,没有关于此的文档,但就是这样。

此外,关键是我目前不知道如何将此权利添加到配置文件中。我已请求 Apple 支持,一旦我得到答案,我将更新此线程 Xamarin iOS - HomeKit integration

您可以看到这是正确的方法,因为如果您在模拟器上尝试它会起作用。关键是要在真实设备上使用它,我们需要配置文件中的授权。

【讨论】:

    【解决方案2】:

    不确定这是否仍然与任何人相关,但为了修复此问题,您必须将此功能添加到您的 Apple 开发人员帐户的配置文件中 -> 证书、标识符和配置文件 -> 选择您的标识符 -> 转到附加功能选项卡,您将在那里找到 HomeKit AllowSetupPayload。

    我不知道为什么它不包含在普通 HomeKit 中,但这就是为我解决的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多