gpt4 book ai didi

ios - HomeKit: "Error adding accessory The operation couldn’ t be completed"和 "Error adding accessory The operation couldn’ t be completed"

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:40:09 25 4
gpt4 key购买 nike

编辑:我收到以下错误代码:

Error adding accessory The operation couldn’t be completed. (HMErrorDomain error 2.)

和:

Error adding accessory Failed to start pairing with the accessory [ name = xxxxx, providedName = xxxxx, uuid = xxxxx-xxxxx-xxxxx-xxxxx-xxxxx, identifier = xxxxx, configuration-app-id = (null), home = (null), bridge = (null) ]

都是2号。

不明白的是为什么在 HMCatalog 应用程序上这有效。我的代码有什么问题? 它在配件模拟器上运行良好,但在真正的配件上却不行(真正的配件只能通过 HMCatalog 应用程序添加,而不是我的自定义应用程序)。


实际行为:

  • 从我的应用程序添加配件(第一次工作)
  • 重置配件然后重新添加它(不起作用并在下面的屏幕截图中给出配对错误)。 但是如果我使用 Apple 示例 HMCatalog 它确实会出现这些错误,但它确实有效。

enter image description here

有时:

enter image description here

预期结果:

  • 也从我的应用程序中添加附件而没有配对错误

这是我的添加附件代码:

 [self.home addAccessory:self.accessory completionHandler:^(NSError *error) {
NSLog(@"in adding for accessory %@", self.accessory.name);
if (error) {
NSLog(@"Error adding accessory %@ %li", error.localizedDescription, (long)error.code);

UIAlertController *alertController = [UIAlertController
alertControllerWithTitle:@"Pairing error"
message:error.localizedDescription
preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction *okAction = [UIAlertAction
actionWithTitle:NSLocalizedString(@"OK", @"OK action")
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action)
{
NSLog(@"OK action");
}];

[alertController addAction:okAction];
[self presentViewController:alertController animated:YES completion:nil];

}
else{
// TODO: Tweak this
NSLog(@"Added to home");

[self dismiss:nil];
/**
[homeSweetHome assignAccessory:accessory toRoom:nil completionHandler:^(NSError *error) {
if (error) {
NSLog(@"Failed adding accessory %@ to room %@", accessory.name, room.name);
}
}];**/
}
}];

最佳答案

编辑:根据上面 Tushar Koul 的评论,您似乎需要忽略浏览器上的 discoveredAccessories 数组,而是从 accessoryBrowserDelegate(-accessoryBrowser:didFindNewAccessory 和 -accessoryBrowser:didRemoveAccessory)构造您自己的对象数组。

告诉浏览器开始搜索后,当前可用的所有附件都将传递给这些方法。

未找到 HMErrorCode 2(参见 apple docs)。这意味着您拥有的附件指针不再有效。这可能是由于抓取附件对象然后告诉附件浏览器开始寻找附件引起的。如果浏览器在您添加附件之前被解除分配,也可能会发生这种情况。

在尝试将附件添加到您的家中之前,请确保您正在为 HMAccessoryBrowser 获取新的 HMAccessory。如果您可以分享更多显示您添加的 HMAccessory 来源的代码,我可能会提供更多帮助。

关于ios - HomeKit: "Error adding accessory The operation couldn’ t be completed"和 "Error adding accessory The operation couldn’ t be completed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32208055/

25 4 0