当前位置: 首页 > 科技观察

iOS开发基础HomeKit框架介绍

时间:2023-03-12 13:09:00 科技观察

重要:本文是开发过程中使用的API或技术的初步文档。Apple提供此文档以帮助开发人员在Apple产品上使用此技术和编程接口。此信息如有更改,基于此文档开发的软件应使用最新的操作系统软件和最终文档进行测试。新版本的文档可能会提供新的API和技术。HomeKit使支持Apple家庭自动化协议的附属配件与iOS设备之间实现无缝集成和集成,从而推动家庭自动化的发展和创新。通过家庭自动化设备的通用协议,以及可以配置这些设备并与这些设备通信的公共API,HomeKit使应用程序用户可以控制自己的家,而无需制造商创建家庭自动化配件。HomeKit还可以集成来自多个制造商的家庭自动化配件,而无需制造商直接相互协调。HomeKit允许第三方应用程序执行三个主要功能:1.发现附属设备并将它们添加到持久的跨设备家庭配置数据库中。2.显示、编辑和操作家庭配置数据库中的数据。3.与已配置的附属设备和服务通信,以便它们执行相关操作,例如关掉客厅的灯。家庭配置数据库不仅适用于第三方应用程序,也适用于Siri。用户可以使用Siri发出命令,例如“Siri,关掉客厅的灯”。如果用户通过对配件、服务和命令进行逻辑分组来创建家庭配置,Siri可以通过语音控制完成一系列复杂的操作。HomeKit将家庭视为家庭自动化配件的集合。家庭配置的目的是允许最终用户为他们购买和安装的家庭自动化配件提供有意义的标签和分组。应用程序可以提供建议来帮助用户创建有意义的标签和分组,但它们不能将自己的偏好强加给用户——用户的意愿最重要。基本数据包含类似于以下的层次结构:家庭(HMHome)家庭(HMHome)是最顶层的容器,显示了用户通常认为是单个家庭单元的结构。用户可能有多个相距较远的住所,例如常用住所和度假屋。或者他们可能有两个相对靠近的住宅,例如主住宅和别墅。房间(HMRoom)房间(HMRoom)是家庭的可选部分,代表家庭中的各个房间。房间没有任何物理属性——大小、位置等。对用户来说,它们只是有意义的名称,例如“客厅”或“厨房”。有意义的房间名称可以启用诸如“Siri,打开厨房灯”之类的命令。配件(HMAccessory)安装在家中并分配给每个房间。它们是实际的物理家庭自动化设备,例如车库门开启器。如果用户没有配置任何房间,那么HomeKit会将附属设备分配给家中特殊的默认房间。服务(HMService)服务(HMService)是accessory配件提供的实际服务。Accessory配件有用户可控的服务,比如灯光,也有自己的服务,比如框架更新服务。HomeKit更侧重于用户可以控制的服务。一个配件可能有多个用户可控的服务。例如,大多数车库遥控开关都有打开或关闭车库门的服务,也有控制车库门灯的服务。区域(HMZone)区域(HMZone)是家中可选的房间分组。“楼上”和“楼下”可以用区域来表示。区域是完全可选的,房间不需要在区域中。通过将房间添加到区域,用户可以向Siri发送命令,例如“Siri,打开楼下所有的灯”。类NSObject:NSObject是大多数Objective-C类层次结构的基类。HMAccessory:HMAccessory对象表示家庭自动化配件,例如车库门开启器或恒温器。HMAccessoryBrowser:HMAccessoryBrowser对象是用于发现新附件的Web浏览器。HMAction:HMAction是HomeKit中行为操作的抽象基类。(HMCharacteristicWriteAction:HMCharacteristicMetadata对象用于表示操作集中的一个操作。)HMActionSet:一个HMActionSet对象表示一组应用于单个设置的操作(HMAction的实例)。HMCharacteristicMetadata:HMCharacteristicMetadata对象表示某个特性的元数据。HMHome:HMHome对象允许您与家中的不同配件进行通信并安装配件。HMHomeManager:HMHomeManager对象管理一个或多个家庭集合。HMRoom:HMRoom对象用于表示家中的一个房间。HMService:HMService对象表示附加配件提供的服务。HMServiceGroup:HMServiceGroup对象表示配件提供的服务集合,简化了将服务视为单个实体的过程。HMTrigger:HMTrigger对象代表一个触发事件。当满足触发条件时,用于触发一个或多个动作集(HMActionSet的实例)。(HMTimerTrigger:HMTimerTrigger对象表示一个基于计时器的触发器。)HMZone:HMZone对象表示房间的集合——用户认为它是一个单一的区域或区域,例如“客厅”和“厨房”可能被分为一个叫做“楼下”的区域。ProtocolsHMAccessoryBrowserDelegate:该协议定义了HMAccessoryBrowser对象的接口,以通知代理找到了新的附件。HMAccessoryDe??legate:该协议定义了从附件到委托状态更新的通信方法。HMHomeDelegate:该协议定义了家庭配置更改的通信方法以及家庭中执行的一组操作的状态。HMHomeManagerDelegate:此协议定义了家庭管理器对象如何将更改传达给它们的委托。其他参考HomeKit常量参考原文:TheHomeKitFramework