访问服务与特性.pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档