HomeKit配件仿真器是一个小小的小按钮,允许不公平的设备。

考虑到这是一个辅助模拟器,我猜想有一些硬件编程规范允许编写非配对函数。
但是,也可以将其实现为HomeKit框架的一部分,并允许客户端开发人员通过类(和派生类)来实现它。
->短版本:
在HMCharacteristic、、HMService、或HomeKit框架中,是否有任何方法可以从家庭中解锁特征/服务?
发布于 2015-07-03 07:03:00
服务或特性不可能是一对,实际上它不需要做。
一个人可以从家里拆下附件。
您可以调用HMHome类的方法来删除/取消对附件。
- (void)removeAccessory:(HMAccessory *)accessory
completionHandler:(void (^)(NSError *error))completion;而配对-重置按钮是在Homekit附件模拟器中提供的一个选项,您可以随时从iOS应用程序中解锁该附件。
如果您一次没有相同的设备,或者从应用程序中的设置重新设置Homekit配置,则可能需要重新设置。
发布于 2015-07-03 14:27:15
解除配对相当于从HomeKit home (HMHome)下移除该附件。这可以通过使用HMHome下的api调用来实现(可以通过单击视图控制器的按钮来触发):
样本代码:
[yourHMHome removeAccessory:accessory_ completionHandler:^(NSError *error) {
if (error) {
//Handle your error here.
} else {
//Removing, or here, un-pairing was successful, do anything else
//Example
[[YourExampleHomeStore sharedStore] updateAccessoryDelegates];
YourCompletionHandler(error);
}
}];这就回答了你关于非配对的问题。HMService和HMCharacteristic在概念上是不同的。如果您想更新(可写) HMCharacteristic的值,那么您将在可用的HMServices中搜索该HMCharacteristic。记住,附件上可用的HMServices和HMCharacteristics将根据其配对状态完全不同。大多数是读或写,“成对读”和“成对写”,当处于非配对状态时,只能阅读“附属信息服务”(名称、型号等)。
现在,假设您希望读取或更改(写入) HMCharacteristic的值,假设它是序列号,步骤如下:
序列号的示例代码可能如下所示:
注意:如果附件不可访问,则返回空字符串。
+(NSString *)getSerialNumberFromHMAccessory:(HMAccessory *)accessory
{
if (!accessory || !accessory.reachable) { return @""; }
for (HMService *service in accessory.services) {
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K like %@", @"characteristicType", HMCharacteristicTypeSerialNumber];
NSArray *result = [service.characteristics filteredArrayUsingPredicate:predicate];
if (result && [result count] > 0 && [result[0] isKindOfClass:[HMCharacteristic class]]) {
HMCharacteristic *serialNumChar = (HMCharacteristic *)result[0];
NSString *serialNum = [serialNumChar valueForKey:@"value"];
if (serialNum && [serialNum length] > 0) {
NSLog(@"Found serial number: %@ for accessory named \"%@\"", serialNum, accessory.name);
return serialNum;
}
}
}
return @"";
}不管怎么说,可能是太长时间的咆哮,偏离了主要的问题。希望这对你有帮助。干杯。
https://stackoverflow.com/questions/31178484
复制相似问题