我希望将SIRI名称与我使用HomeKit模拟器定义的家庭工具包附件的自定义特性联系起来(有关如何实现的详细信息,请参阅此question )。
我可以做这样的事情:
这是很容易使用预定义特性实现的,但是我需要能够使用自定义特性来完成它。
知道我怎么能做到这一点吗?
编辑:只有HMService类有一个"updateName“函数。HMCharacteristic没有它。
如果我试图访问服务名称和相关的特性制造商描述,我就会得到这样的信息:
for (int i=0; i< [accessory.services count]; i++) {
HMService * service = [accessory.services objectAtIndex:i];
for (int j=0; j< [service.characteristics count]; j++) {
HMCharacteristic * characteristic = [service.characteristics objectAtIndex:j];
NSLog(@"service name: %@", service.name);
if ([characteristic.properties containsObject:HMCharacteristicPropertySupportsEventNotification]) {
NSLog(@"description of characteristic: %@", characteristic.metadata);
[characteristic enableNotification:TRUE completionHandler:^(NSError *error) {
if (error) {
NSLog(@"Error while enabling notification");
}
else {
NSLog(@"Notification enabled");
}
}];
}
}
}服务名称: MyServiceName服务2015-08-21 09:40:20.833 AppName217:5673特征描述:%@格式:字符串,最大长度: 1,制造商描述: SomethingCustom模式
发布于 2015-08-25 16:56:59
我怀疑这是不可能的。Siri与homekit之间有硬编码关系,这使得它能够与定义类型的附件进行通信。
需要注意的一点是,siri使用服务名称来确定命令的指向位置。所以,如果你有一个叫做“楼上”的恒温器,你可以告诉siri“把楼上的温度调到65度”。Siri对你与服务互动的理解很复杂,看起来苹果只是支持他们定义的服务,这样他们才能提供他们想要的体验。
https://stackoverflow.com/questions/32135822
复制相似问题