热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HomeKit人机界面指南

nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd
HomeKit人机界面指南

介绍

通过HomeKit,用户能够利用他们iOS设备上的家庭自动化apps来控制和配置家里已连接的配件设备,不管制造商是谁。通常,一个家庭自动化app需要帮助用户完成下列任务:
· 设置一个Home
· 管理用户
· 添加和移除配件
· 定义场景
 
另外,一个家庭自动化app应该易于使用,并且能给用户愉悦感。这里是一些用来创建卓越体验的方式:
· 集成Siri
· 自动寻找配件
· 使用平易近人的语句
 
设置一个Home
HomeKit系统以三种类型的位置为中心:房间(Rooms)、区域(Zones)和住宅(Homes)。房间如客厅和卧室,是基本的组成概念并且可能包含任意数量的配件。区域是房间的集合,如“楼上”。
 
用户必须选定至少一个住宅来放置他们的智能配件。每一个住宅包括不同的房间,并且可能包括区域。房间和区域使用户能方便的寻找和控制配件。Apps应该提供创建、命名、修改和删除住宅、房间、和区域的方法。
 
如果一个人有多个住宅,允许他们选择一个默认的首选住宅来更快的设置和配置新配件。
 
管理用户
应用程序应当提供允许用户管理住宅中配件的方法。当一个iCloud账户被添加到住宅,账号的拥有者将能够调整配件们的特性。当一个账户拥有者被指定为管理员时,他们也将能够添加新配件、管理用户、设置住宅和创建场景。
 
添加和移除配件
让添加新配件的操作简单快捷十分重要。家庭自动化apps应当能自动寻找新配件并且在用户界面中突出显示。
 
用户需要方法来识别调整中的配件,所以要确保能快速接入控件。比如在电灯泡的案例中,你应该让用户能使用app来打开灯泡以确认其位于Home中。
 
配置应当包括给一个配件分配名称、住宅、房间、以及可选的区域。管理员需要输入配件的安装码(包含在硬件的说明文档或包装盒里)来将它与住宅联接起来。
 
苹果的无线配件配置(WAC)被用来添加支持WiFi的配件到住宅网络中。用户能够从Settings或你的app里面连接到WAC。使用ExternalAccessory框架API来显示一个系统提供的UI,在这个UI里用户能使用WAC来发现和配置配件而无需离开你的app。在使用WAC配置完配件之后,用户能将它加到住宅里,并且给它分配名字和房间。需要注意的是,你应该始终让用户通过在前台运行app来初始化配件的发现和配置。
 
寻找配件
确保给用户不同的方式来快速找到配件。每天、每个季节以及一个人的位置都能影响哪个配件在当时是重要的,所以用户应该能够以类型、名称或住宅里的位置来寻找配件。
 
定义场景
场景是同时调整多个配件特性的重要方式。每个场景都有自己的名称,并且能包含任意数量的动作,这些动作与不同的配件和他们的特性相联。如果可能,你可以提供
 
一些建议的场景,这样用户能基于它们来配置配件。比如,一个“离开”的场景应该调低房子里的温度、关掉灯泡,并且锁上所有的门。
 
当用户创建它们自己的场景时,考虑按照选中的房间和区域来推荐配件。给用户提供选择让他们能更快更方便的进行配置。
 
集成Siri
Siri能让复杂操作的执行简单到只需要一句命令。Siri能识别住宅、房间和区域的名字,并且支持这样的表述:“Siri,lock up my house in Tahoe”,“Siri,turn off the upstairs lights”以及“Siri,make it warmer in the media room”。Siri也能识别配件的名字和特性,因此用户能发布这样的命令:“Siri,dim the desk lamp”。
 
为了识别场景,给Siri的命令里应该包含单词“模式”(mode)或“scene”(场景),比如如下的命令:“Siri,set the Movie Scene”、“Siri,enable Movie mode”或者“Siri,set up for Movie”。
 
最好让用户在配置动作的时候知道哪些动作能被Siri触发。比如,在确认Movie场景已经设置好的时候,显示推荐用户向Siri说的语句,如“你能够使用Siri来激活这个场景,命令是‘Siri,set the house to Movie mode’”。
 
通知
不适当的家庭自动化可能会吓到用户。你的应用程序应该是平易近人的、易于使用的、具有交谈时语言的以及对用户友好型的。避免使用用户可能不理解的缩略词和科技术语。HomeKit是一个关于API的术语,你不应该在你的app里使用它。
 
如果你是一个MFi执照拥有者,请参照MFi portal里的指南来规范配件包装的命名和通知。

本文由CocoaChina翻译自苹果官方文档:HomeKit Human Interface Guidelines


推荐阅读
  • 在PHP后端开发中遇到一个难题:通过第三方类文件发送短信功能返回的JSON字符串无法解析。本文将探讨可能的原因并提供解决方案。 ... [详细]
  • Android 6.0 切换指定 Wi-Fi 的解决方案
    本文详细介绍了在 Android 6.0 系统中切换到指定 Wi-Fi 的方法,包括常见的问题、原因分析及解决方案。通过官方文档和代码示例,帮助开发者更好地理解和实现这一功能。 ... [详细]
  • 本题要求在一组数中反复取出两个数相加,并将结果放回数组中,最终求出最小的总加法代价。这是一个经典的哈夫曼编码问题,利用贪心算法可以有效地解决。 ... [详细]
  • 使用JS、HTML5和C3创建自定义弹出窗口
    本文介绍如何结合JavaScript、HTML5和C3.js来实现一个功能丰富的自定义弹出窗口。通过具体的代码示例,详细讲解了实现过程中的关键步骤和技术要点。 ... [详细]
  • 本文介绍了如何在iOS应用中自定义导航栏按钮,包括使用普通按钮和图片生成导航条专用按钮的方法。同时,探讨了在不同版本的iOS系统中实现多按钮布局的技术方案。 ... [详细]
  • KMP算法是处理字符串匹配的一种高效算法它首先用O(m)的时间对模板进行预处理,然后用O(n)的时间完成匹配。从渐进的意义上说,这样时间复 ... [详细]
  • Java 中重写与重载的区别
    本文详细解析了 Java 编程语言中重写(Override)和重载(Overload)的概念及其主要区别,帮助开发者更好地理解和应用这两种多态性机制。 ... [详细]
  • CSS高级技巧:动态高亮当前页面导航
    本文介绍了如何使用CSS实现网站导航栏中当前页面的高亮显示,提升用户体验。通过为每个页面的body元素添加特定ID,并结合导航项的类名,可以轻松实现这一功能。 ... [详细]
  • yikesnews第11期:微软Office两个0day和一个提权0day
    点击阅读原文可点击链接根据法国大选被黑客干扰,发送了带漏洞的文档Trumps_Attack_on_Syria_English.docx而此漏洞与ESET&FireEy ... [详细]
  • 通常情况下,修改my.cnf配置文件后需要重启MySQL服务才能使新参数生效。然而,通过特定命令可以在不重启服务的情况下实现配置的即时更新。本文将详细介绍如何在线调整MySQL配置,并验证其有效性。 ... [详细]
  • 二叉树的链表实现
    本文介绍了一种使用链表结构表示二叉树的方法。通过定义节点结构和相关操作函数,可以方便地创建、插入和遍历二叉树。 ... [详细]
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
  • 尝试执行数据库模式加载时遇到错误'Mysql2::Error: 指定的键太长;最大键长度为767字节'。本文将探讨这一问题的成因及解决方案。 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • 本文探讨了在iOS平台上开发BLE(蓝牙低功耗)应用程序时遇到的挑战,特别是如何实现应用在后台模式下仍能持续扫描并连接蓝牙设备。文章提供了具体的配置方法和常见的问题解决方案。 ... [详细]
author-avatar
Gemini_2
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有