- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
访问服务和特性
访问服务和特性
服务(HMService)代表了⼀个配件(accessory)的某个功能和⼀些具有可读写的特性
(HMCharacteristic) 。⼀个配件可以拥有多项服务,⼀个服务也可以有很多特性。⽐如⼀
个 库开门器可能拥有⼀个照明和开关的服务。照明服务可能拥有打开/关闭和调节亮
度的特性。⽤户不能制造智能家电配件和它们的服务-配件制造商会制造配件和它们的
服务-但是⽤户可以改变服务的特性。⼀些拥有可读写属性的特性代表着某种物理状
态,⽐如,⼀个恒温器中的当前温度就是⼀个只可读的值,但是⽬标温度又是可读写
的。苹果预先定义了⼀些服务和特性的名称,以便让 Siri 能够识别它们。
获得配件的服务和属性
在依照 Getting the Accessroties in a Room 中描述,你创建了⼀个配件对象之后,你可以
获得配件的服务和特性。当然你也可以直接从 home 中按照类型获得不同的服务。
重要:不要暴露匿名服务-⽐如固件升级服务-给⽤户
通过 HMAccessory 类对象的 services 属性,我们可以获得⼀个配件的服务。
NSArray *services = accessroy .services;
要获得⼀个 home 当中配件提供的特定服务,使⽤ HMHome 类对象的
servicesWithTypes:⽅法。
// Get all lights and thermostats in a home
NSArray *lightServices = [home servicesWithTypes:[ MServicesTypeLi
NSArray *thermostatServices = [home servicesWithTypes:[ MServices
使⽤ HMServices 类对象的 name 属性来获得服务的名称
NSString *name = ;
要获得⼀个服务的特性,请使⽤ characteristics 属性。
NSArray *characteristics = service.characteristics
使⽤ servicesType 属性来获得服务的类型
NSString *serviceType = service.serviceType;
苹果定义了⼀些服务类型,并能被 Siri 识别:
门锁( oor locks)
库开门器(Garage door openers)
灯光(Lights)
插座(Outlets)
恒温器(Thermostats)
改变服务名称
使⽤ updateName:completionHandler:异步⽅法来改变服务名称。传⼊此⽅法的服务名
称参数必须在⼀个 home 当中是唯⼀的,并且服务名可被 Siri 识别。
[service updateName:@Garage 1 Opener completion andler:^(NSErro
if (error) {
// Failed to change the name
} else {
// Successfully changed the name
}
}];
访问特性的值
特性代表了⼀个服务的⼀个参数,它要么是只读、可读写或者只写。它提供了这个参
数可能的值的信息,⽐如,⼀个布尔或者⼀个范围值。恒温器中的温度就是只读的,
⽽⽬标温度又是可读写的。⼀个执⾏某个任务的命令且不要求任何返回-⽐如播放⼀段
声⾳或者闪烁⼀下灯光来确认某个配件-可能就是只写的。
苹果定义了⼀些特性的类型,并能被Siri识别:
亮度(Brightness)
最近温度(Current temperature)
锁的状态(Lock state)
电源的状态(Power state)
⽬标状态(Target state)
⽬标温度(Target temperature)
⽐如,对于⼀个 库开门器来说,⽬标状态就是打开或者关闭。对于⼀个锁来说,⽬
标状态又是上锁和未上锁。
在你获得了⼀个 HMService 对象之后,如 Getting Services and Their Properties 所描述的,
你可以获得每个服务的特性的值。因为这些值是从配件中获得的,这些读写的⽅法都
是异
文档评论(0)