一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于动态功能行定制的方法和设备与流程

2022-11-19 08:37:36 来源:中国专利 TAG:

用于动态功能行定制的方法和设备
1.本技术是申请日为2017年9月22日、申请号为201780054866.2、名称为“用于动态功能行定制的方法和设备”的发明专利申请的分案申请。
2.在先申请的权益要求
3.本专利申请要求2016年9月23日提交的美国临时专利申请no.62/398,984的权益,该申请据此全文以引用方式并入本文。
技术领域
4.本公开整体涉及管理用于动态功能行的显示数据和命令。


背景技术:

5.很多计算设备,诸如台式计算机和膝上型计算机,包括键盘。很多键盘包括功能键(例如,“f1-f12”),该功能键可被布置于键盘上的单行键之内。一些键盘在同一行中包括退出键和/或其他键(打印屏幕、滚动锁、暂停等)。这行键可被称为“功能行”。


技术实现要素:

6.在一些具体实施中,计算设备可包括用于供用户使用计算设备的上下文特定功能的动态功能行(dfr)。例如,dfr或“触控栏”可以是可显示动态生成的图形用户界面(gui)的组合式显示和输入设备(例如触摸屏),该图形用户界面呈现表示上下文特定功能的图形元素。dfr可接收选择所显示图形元素的用户输入并调用计算设备上的对应功能。dfr可在不同情况下提供不同的界面元素。例如,dfr可提供与用户当前正使用的一个或多个应用程序相关的控件,或者可响应于检测到的事件(例如,所接收的传入消息或显示功能行按键的用户命令等)而提供特定控件。本文所述的系统和方法可启用和管理这些和其他dfr特征。
7.特定具体实施提供了至少以下优点。该dfr可提供与用户上下文或计算设备的使用相关的gui功能。可基于设备上下文,例如基于正在使用什么应用程序或是否有任何通知处于活动中来动态更新dfr。用户和应用程序可以能够定制由dfr提供的gui。与传统功能键不同的是,gui可提供用于要通过dfr调用的功能的视觉提示(例如,f1可针对不同应用程序具有不同功能,但用户通过观察按键自身不知道是什么功能)。管理dfr的dfr代理可自动选择、布置和更改gui元素。dfr代理可生成gui并处理输入,从而个体应用程序无需与dfr直接交互。
8.在下面的附图和具体实施方式中阐述了一种或多种具体实施的细节。其他特征、方面和潜在优点将在具体实施方式和附图以及权利要求书中显而易见。
附图说明
9.图1是具有dfr的示例性设备。
10.图2是示例性dfr控制硬件的框图。
11.图3是示例性dfr和键盘布局。
12.图4是示例性dfr代理的框图。
13.图5a是示例性主显示器和dfr,其中在两个显示器上都示出了与同一应用程序相关的数据。
14.图5b是示例性主显示器和dfr,其中在两个显示器上都示出了与同一应用程序相关的数据。
15.图5c是示例性主显示器和dfr,其中在dfr上示出了系统优先级数据。
16.图5d是示例性主显示器和dfr,其中在dfr上示出了来自多个源的元素。
17.图6a-图6c示出了示例性项目树。
18.图7a和图7b示出了多个示例性dfr布局。
19.图8示出了示例性dfr布局编辑器界面。
20.图9是基于最前方应用程序的示例性dfr图像生成过程的流程图。
21.图10是基于系统优先级事件的示例性dfr图像生成过程的流程图。
22.图11是用于检测和路由dfr输入的示例性过程的流程图。
23.图12是用于选择dfr元素的示例性过程的流程图。
24.图13是用于遵守一个或多个约束来选择dfr元素的示例性过程的流程图。
25.图14是实现图1-图14的特征和过程的示例性系统架构的框图。
26.各个附图中的类似参考符号指示类似的元素。
具体实施方式
27.装备dfr的设备
28.在一些具体实施中,一种计算设备可包括动态功能行(dfr)。例如,dfr可以是可提供传统键盘功能行的功能等的触敏显示设备。一种包括dfr的计算设备可包括被配置为管理由dfr显示的信息和/或dfr接收的用户输入的硬件、软件和/或固件。例如,该设备可以实例化可管理dfr的dfr代理。dfr代理可基于设备的当前状态生成图像以在dfr上显示。dfr代理可生成图像,该图像包括用于在已经由一个或多个设备应用程序注册的dfr上显示的元素。dfr代理可基于由响应器链次序定义的应用程序优先级,基于定义如何、在哪里和/或何时可以显示元素的一组约束,基于用户定制和/或其他因素,选择用于显示的注册元素。dfr可显示图像。此外,用户可触摸dfr以提供输入选择功能和/或由dfr显示器上呈现的图形元素表示的命令。dfr代理可以解析命令并将它们发送到适当的应用程序。
29.图1为示例性设备100。代表性设备100被示为膝上型计算机,但设备100可以是各种电子设备中的一种,包括但不限于,例如,膝上型计算机、台式计算机、计算机终端、电视系统、平板电脑、电子书阅读器和智能电话、智能手表和可穿戴计算机。设备100可包括壳体102、主显示器104、相机106、触控板108、键盘110和/或dfr 112。dfr 112可包括触敏显示器、显示器控制器、触摸输入控制器和/或被配置为提供本文所论述的gui和输入特征的其他硬件。在示例性设备100中,提供dfr 112而不是传统的功能行,其包括物理按键并被定位,其中典型地可能在标准键盘布局上找到功能行。例如,一些键盘具有一行物理按键,包括退出键、功能键f1-f12和/或额外按键、上方物理数字和字母键。在一些实施方案中,dfr 112可位于物理数字和字母键上方,以代替包括退出键和键f1-f12的物理按键行。在其他实施方案中,除了包括物理键的功能行之外,还可提供dfr 112,dfr可以位于设备100上的其
他位置,和/或可以具有与行不同的配置和/或取向。例如,dfr 112可具有类似于数字小键盘形长方形或竖列的形状。此外,dfr 112可以由物理上分离的多个显示器构成(例如,dfr 112包括两个物理上分离的不同显示区域)。
30.图2是设备100的示例性dfr控制硬件200的框图。设备100可包括主处理器202(例如,x86处理器或其他合适的处理器)。例如,主处理器202可以是被配置为运行设备100的主操作系统和/或在设备100上执行的任何系统或用户应用程序的应用程序处理器。主处理器202可通过总线212(例如,前侧总线、超级传输、快速路径互连、直接媒体接口或其他总线)耦接到平台控制器集线器214,以及通过平台控制器集线器214耦接到设备100的其他部件(例如,视频卡、声卡、网卡、存储器、硬盘驱动器、一个或多个输入设备等)。主处理器202可控制一般的设备100功能,例如运行操作系统(例如,ios、windows、linux等)和应用程序。主处理器202可包括系统管理控制(smc)220固件,其被配置为管理热调节、电源使用、电池充电、视频模式切换、睡眠、待机和其他功能。smc 220可在设备100被供电时一直处于活动状态,使得其可例如从睡眠或待机模式唤醒主处理器202。
31.在一些具体实施中,设备100可包括辅助处理器204。例如,辅助处理器204可为片上系统soc、协处理器、arm处理器等。辅助处理器204可运行与在主处理器202上操作的操作系统不同的操作系统。例如,辅助处理器204可运行诸如ios、watchos、实时操作系统、用于嵌入式系统的操作系统或linux变体的操作系统。辅助处理器204可操作相机106、dfr 112和/或一个或多个其他设备216(例如,触摸识别传感器、环境光传感器等)。辅助处理器204可包括电源管理单元(pmu)218固件,其被配置为管理热调节、电源使用、硬件电源功能、睡眠、待机和其他功能。pmu 218可在设备100被供电时始终处于活动状态,从而能够将辅助处理器204恢复到完全操作模式和/或允许在主处理器202处于例如低功率状态时,辅助处理器204与主处理器202通信。
32.在一些具体实施中,主处理器202和辅助处理器204可通过链路210彼此通信。例如,链路210可以是usb2链路或类似的数据链路。例如,主处理器202可生成用于在dfr 112上显示的图像,并通过链路210将它们传输到辅助处理器204,允许辅助处理器204在dfr 112上显示图像。在一些具体实施中,辅助处理器204可接收对dfr 112做出的触摸输入并通过链路210将触摸输入数据传送到主处理器202,从而允许主处理器202处理输入。
33.在一些具体实施中,主处理器202和辅助处理器204可通过集成电路间(i2c)总线209彼此通信。主处理器202可使用i2c总线209将数据放置在辅助处理器204的存储器寄存器206(“邮箱”)中。邮箱寄存器206可充当pmu暂存器,其中主处理器202写入针对pmu 218的命令。例如,主处理器202可在存储器寄存器206中放置数据以在链路210不活动时与辅助处理器204通信。
34.在一些具体实施中,主处理器202和辅助处理器204可通过通用输入/输出(gpio)路径208彼此耦接。每个gpio路径208可包括主处理器202处的gpio引脚和辅助处理器204处的gpio引脚,它们可彼此耦接。每个处理器可被配置为将其相应的gpio引脚设定为输入或输出。当处理器的引脚被设定为输出时,该处理器可驱动引脚为低(逻辑0或低电压)或高(逻辑1或高电压),从而向其他处理器发送数据位。当处理器的引脚被设定为输入时,处理器可检测引脚上的电压何时变化并作为响应而执行处理。例如,主处理器202可使用gpio路径208来触发辅助处理器204的动作(诸如触发中断),使得辅助处理器204读取邮箱寄存器
206中的数据。辅助处理器204可使用gpio路径208向主处理器202发送确认。
35.图3是诸如膝上型计算机的设备100的示例性dfr 112和键盘110布局。dfr 112可设置在键盘110上方,在本来可预期有功能行的位置。尽管图3提供了膝上型计算机的示例性布局,但在一些实施方案中,设备100可以是台式计算机,dfr 112可被设置于设备100的键盘周边上、独立专用i/o外围设备上、台式计算机的主体上等。
36.在一些具体实施中,dfr 112可呈现一个或多个dfr图形元素300(在该示例中,为五个dfr图形元素300a-300e,但可能存在任意数量的dfr ui元素300)。dfr ui元素300可包括文本、符号、图像和/或其他视觉信息。视觉信息可如下所述由处理器202动态生成或者从预先生成的视觉信息中选择。dfr ui元素300a-e可表示由计算设备100提供的功能或在计算设备100上运行的各种应用程序中的任何应用程序。例如,dfr ui元素300a-e可提供在离散触摸ui区域中呈现的传统功能“键”的虚拟表示,使得单独的元素300a-e对应于独立的命令。例如,元素300d可以是用来降低音频音量的ui元素,并且元素300e可以是用来升高音频音量的ui元素。dfr ui元素300d和300e可显示对应于音频音量命令的符号或图像。用户在dfr ui元素300d上的触摸输入(例如,选择)可注册命令以降低设备100的音频输出音量,元素300e的触摸输入可注册命令以升高设备100的音频输出音量,如下所述。
37.dfr 112可显示对应于多种功能控件的各个dfr ui元素300。一些dfr ui元素300可提供系统级功能性和/或可适用于各种应用程序。此类dfr ui元素300可包括用于音量、静音扬声器、屏幕亮度、回放、启用/禁用无线网络接收器、多屏、帮助功能、系统搜索、最近使用和/或频繁使用的应用程序启动、消息访问、文档访问、文件系统访问、日历和/或其他项的控件。
38.在一些具体实施中,dfr ui元素300可提供针对特定应用程序调整的功能。例如,可基于应用程序上下文调整或动态地生成功能。可基于具有类似功能的多种应用程序调整或动态生成功能。可基于应用程序之内的特定特征调整或动态生成功能。此类dfr ui元素300可包括用于字体选择、字体大小、字体颜色、字体效果、加亮、列表功能、文本自动完成建议、特殊字符、剪切、复制、粘贴和/或用于与文本编辑相关的应用程序或特征的其他功能;地址栏、重新加载、书签、前进、后退、新选项卡、历史记录、下载和/或用于与网络浏览相关的应用程序或特征的其他功能;画笔大小、画笔形状、颜色、形状效果、文本框编辑、裁剪、旋转、过滤器、剪切、复制、粘贴和/或用于与图形编辑相关的应用程序或特征的其他功能,以及很多其他功能的控件。这样列出控件并非旨在穷举,而是仅示出在一些实施方案中可能的dfr ui元素300特征和功能。
39.在一些情况下,活动dfr ui元素300a-e可通过空白空间彼此分开。例如,ui元素300a和300c可以是显示图像并接受输入的活动元素,而dfr ui元素300b可以是不显示图像并且不接受输入的空白空间。在一些具体实施中,dfr ui元素300b可以是意在分隔dfr ui元素300a和300c的图像。例如,dfr ui元素300b可以是分隔dfr ui元素300a和300c的垂直条或线。
40.dfr代理
41.图4是示例性dfr代理400的框图。在一些具体实施中,计算设备100可包括dfr代理400。在一些具体实施中,dfr代理400可以是单个硬件、软件或固件元素。在其他具体实施中,dfr代理400可以包括执行下述dfr代理400功能的多个硬件、软件或固件元素。dfr代理
400可管理在dfr 112上显示的图像,并基于用户选择哪个图像而将通过dfr 112接收的命令发送到它们预期的应用程序。例如,dfr代理400可与设备100应用程序通信以接收信息加以显示并生成用于dfr 112的包括信息的gui。在用户通过触摸dfr 112输入命令时,dfr代理400可确定哪个dfr ui元素300被按下并向注册dfr ui元素300的应用程序发送与所按dfr ui元素300相关联的命令。
42.在一些具体实施中,dfr代理400可以包括注册模块410。例如,注册模块410可从应用程序接收dfr ui元素300的注册并加以处理。如下文进一步详细所述,注册模块410可从一个或多个应用程序接收dfr ui元素数据。dfr ui元素数据可包括要由dfr ui元素300显示的图像和/或文本。例如,图像和/或文本可由dfr ui元素300呈现,并且可向用户指示在dfr ui元素300被用户选择时将执行哪个功能。
43.在一些具体实施中,dfr代理400可以包括自定义模块420。例如,自定义模块420可接收和处理用户对ui元素dfr ui元素300的自定义和/或dfr 112上显示的dfr ui元素300的组合。例如,如下文中进一步详细描述,自定义模块420可提供用户界面,用于选择dfr ui元素300并将它们拖动到dfr 112自身或模拟dfr显示器中。用户可选择要针对各种事件和/或状态显示的dfr ui元素300,使得当系统100经历给定事件或进入给定状态时,dfr代理400可显示由用户针对该事件或状态选择的dfr ui元素300。
44.在一些具体实施中,dfr代理400可以包括系统状态模块430。例如,系统状态模块430可识别系统100的事件和/或确定系统100的状态以用于选择用于显示的dfr ui元素300。例如,如下文进一步详细描述,系统状态模块430可监测系统100的状态,检测何时发生事件,诸如来电,和/或何时系统状态改变,诸如用户何时开始在不同应用程序或应用程序的不同部分开始工作。dfr代理400可使用系统状态模块430确定的系统100的状态来选择与显示器状态对应的dfr ui元素300。
45.在一些具体实施中,dfr代理400可以包括规则模块440。例如,规则模块440可使用一个或多个规则来从已注册的dfr ui元素300中选择应当显示什么。规则可被配置为允许dfr代理400找到在那时匹配设备100的上下文的dfr ui元素300。在下面的“元素选择”和“响应器链”部分中提供了对规则模块440及其示例性功能的进一步论述。
46.在一些具体实施中,dfr代理400可以包括上下文模块450。例如,上下文模块450可基于在dfr ui元素300的注册中提交的dfr ui元素300的描述来选择与给定上下文相关的dfr ui元素300。例如,在上下文驱动的选择中,dfr ui元素300可与特定上下文而不是响应器(即响应器链的有序分级结构之内的应用程序)相关联,并且上下文模块450可基于设备100的上下文选择dfr ui元素300。例如,与文本对话框交互的用户可以是上下文,应用程序状态可以是上下文,内部设备状态可以是上下文,传入消息或其他事件可以是上下文,等等。dfr代理400可基于在dfr ui元素300注册中提交的元素300的描述来选择与给定上下文相关的dfr ui元素300。
47.在一些具体实施中,dfr代理400可以包括约束模块460。例如,约束模块460可选择一组未排序的dfr ui元素300,并对dfr ui元素300和dfr ui元素300的排序组施加一组约束。通过施加约束,约束模块460可选择要在哪种布置中显示哪些dfr ui元素300。约束可确定哪些dfr ui元素300可见,以及如何在dfr 112上布置可见的dfr ui元素300。例如,约束可限定关系,诸如“这三个dfr ui元素300必须从左到右或从右到左按特定次序出现”或者“这三个dfr ui元素300必须呈现为在它们之间至少有指定量的空间”或者“这一dfr元素300必须出现在左侧”或“这个dfr ui元素300必须出现在右侧”等。约束可定义dfr ui元素300之间的固定空间或灵活(例如,可设定尺寸)空间的量。
48.在一些具体实施中,dfr代理400可以包括显示器组件模块470。例如,显示器组件模块470可生成结合所选择的dfr ui元素300的显示数据以供dfr 112呈现。一旦规则模块440、上下文模块450和/或约束模块460选择并布置了用于显示的dfr ui元素300,显示器组件模块470就可例如通过生成包括按指定次序布置的每个dfr ui元素300的位图或其他图像来生成待显示的数据。显示器组件模块470可将生成的图像发送至dfr 112以进行显示。
49.在一些具体实施中,dfr代理400可包括输入模块480。输入模块480可接收对dfr 112的用户输入,并且使用关于dfr 112上显示的dfr ui元素300的布置的数据来确定由用户选择的命令。例如,该数据可以包括来自显示器组件模块470,定义如何在dfr 112上布置所选择的dfr ui元素300的数据。该数据可以包括来自dfr 112,定义用户在哪里按压dfr 112的数据。输入模块480可从显示器组件模块470接收关于元素300的布置的数据,因此输入模块480可确定正在显示哪些元素300以及在dfr 112上哪里呈现它们。输入模块480可从dfr 112接收描述用户在哪里触摸dfr 112的数据。输入模块480可将来自显示器组件模块470和dfr 112的数据相关联,以确定已选择哪个元素300。输入模块480可通知与所选择的元素300相关联的应用程序。例如,dfr代理400可调用对应于由所选择的元素表示的命令或功能的应用程序api。
50.dfr代理400可充当应用程序与dfr 112之间的中介。例如,应用程序向注册模块410提交要在dfr 112上显示的数据。显示器组件模块470生成用于显示的图像并将图像发送至dfr 112。因此,应用程序可不直接在dfr 112上显示数据。输入模块480接收对dfr 112做出的输入并将命令数据发送到应用程序。因此,应用程序可不直接接收对dfr 112做出的输入。
51.元素注册
52.在一些具体实施中,dfr代理400可接受来自一个或多个应用程序的注册,每个应用程序各自注册了一个或多个dfr ui元素300。每个dfr ui元素300可包括要被显示为dfr 112的一部分的图形元素。一部分可能多达总dfr 112显示区域的100%,但许多dfr ui元素300可能更小。每个dfr ui元素300可具有其自己的图形、文本和/或功能。一些应用程序可注册单个dfr ui元素300,而其他应用程序可注册多个dfr ui元素300。在一些具体实施中,dfr代理400可定义dfr 112的总尺寸和/或小于dfr 112总尺寸的一个或多个可接受dfr ui元素300的尺寸。
53.为了注册dfr ui元素300,应用程序可向由dfr代理400定义的正确尺寸的位图(或不同类型的其他图像)中呈现元素内容。例如,dfr代理400可定义跨越dfr 112的整个显示区域的dfr ui元素300的尺寸。dfr代理400可定义覆盖dfr 112的显示区域的一部分(例如,10%或100个像素)的dfr ui元素300的尺寸。在一些具体实施中,dfr代理400可将dfr ui元素300组装成合成图像,供dfr 112显示。例如,一个应用程序或多个应用程序可注册图3的dfr ui元素300a-300e。dfr代理400可将dfr ui元素300组装成单个合成图像,以在dfr 112的显示上呈现,而不是呈现五个独立的图像。
54.在一些具体实施中,由应用程序提交的dfr ui元素300的注册数据可包括图像数
据,该图像数据定义要被结合到描述dfr ui元素300的功能的dfr 112位图和/或元数据中的图像。注册模块410可接收提交的注册数据并注册dfr ui元素300。注册模块410可将注册的dfr ui元素300存储在设备100的存储器中,以便将来用于构建dfr 112的显示,如下所述。
55.图像数据可包括位图或其他图像文件。在一些实施方案中,并非从应用程序接收位图或其他图像文件,注册模块410可执行基于语言的图像呈现。在这种方法中,注册模块410可基于应用程序提供的参数来创建或选择用于显示的图像。例如,该应用程序可以提供信息,指示它正在注册具有指定标题、功能和大小的元素300。注册模块410可根据指定的参数构建元素300。在一些具体实施中,注册模块410可以通过从注册模块410可用的图像的库选择图像来构建元素300。库可包括根据它们所表示的命令识别的图像。例如,可将一个图像标记为“暂停媒体回放”图像,可将另一个图像标记为“增大字体大小”图像,并且可将另一个图像标记为“接受传入消息”图像。如果应用程序指定dfr ui元素300的功能为“暂停媒体回放”,则注册模块410可选择标记为“暂停媒体回放”图像的图像。
56.在一些具体实施中,dfr代理400可接收用于dfr ui元素300的元数据。元数据可包括定义与dfr ui元素300相关联的命令的信息。例如,dfr ui元素数据可标识在用户选择dfr ui元素300时dfr代理400应当调用的应用程序编程接口(api)。dfr ui元素数据可包括将dfr ui元素300链接到应用程序的信息(例如,应用程序标识符)。注册模块410可注册所接收的dfr ui元素数据,使得其他dfr ui元素300可使用注册的数据来选择用于显示的dfr ui元素300并处理与正在显示的dfr ui元素300相关联的命令。
57.dfr代理400可指定用于提交元数据的标准化格式或语言。例如,元数据提交可包括应用程序标识符、功能标识符(例如api标识符),并且在一些情况下,包括显示参数。应用程序标识符可告知dfr代理400哪个应用程序与dfr ui元素300相关联。功能标识符可告知dfr代理400什么应用程序命令或api与dfr ui元素300相关联。如下文更详细所述,显示参数可包括用于显示dfr ui元素300的规则和/或约束。例如,用于媒体回放控制dfr ui元素300的注册元数据可包括以下信息:“应用程序——媒体播放器”;功能——暂停;参数——左边缘》停止元素的左边缘”。在该示例中,应用程序标识符可告知dfr代理400在用户选择dfr ui元素300时,该命令针对媒体播放器应用程序。功能标识符可告知dfr代理400在用户选择dfr ui元素300时,该命令是暂停媒体回放命令。显示参数可告诉dfr代理400应当相对于其他dfr ui元素300在dfr 112上的哪里放置dfr ui元素300,如下文将更详细描述的。
58.dfr代理400可使用元数据将用户对dfr ui元素300的选择转换成由应用程序处理的命令。例如,当应用程序注册dfr ui元素300时,dfr代理400可接收针对dfr ui元素300的元数据,该元数据定义dfr ui元素300的目的。如下所述,元数据可允许dfr代理400将用户对dfr ui元素300的选择与对应的应用程序命令相关联。例如,应用程序可注册包括位图和元数据的dfr ui元素300,该位图示出了带下划线的字母,该元数据将dfr ui元素300定义为用于对文本加下划线的控件。对该dfr ui元素300的用户选择可以在注册dfr ui元素300的应用程序中切换文本下划线。例如,响应于接收到用户对下划线dfr ui元素300的选择,dfr代理400可调用对应api,这样可使得应用程序对文本的某个所选择的部分加下划线。
59.在一些具体实施中,应用程序可注册包括用于应用程序的多个控件的单个dfr ui元素300。例如,用于dfr ui元素300的注册元数据可指定dfr ui元素300内的多个不同区
域,其中用户与每个不同区域交互产生不同的结果。例如,媒体回放控制dfr ui元素300可包括以下信息:“应用程序——媒体播放器”;左50%功能——暂停;右50%功能——停止”。在该示例中,应用程序标识符可告知dfr代理400在用户选择dfr ui元素300时,该命令针对媒体播放器应用程序。功能标识符可告知dfr代理400,在用户选择dfr ui元素300的左半部时,该命令是暂停媒体回放命令,并且在用户选择dfr ui元素300的右半部时,该命令是停止媒体回放命令。
60.在一些具体实施中,应用程序可注册一个或多个离散的dfr ui元素300,每个dfr ui元素300各自包括用于应用程序的单个控件或几个控件。在一些实施方案中,单独的应用程序可注册具有相同或相似功能的dfr ui元素300(在一些情况下,具有相同图形和功能的相同dfr ui元素300)。应用程序可在注册期间表达dfr ui元素300的功能,因此dfr代理400可确定通用性。例如,如果应用程序a和应用程序b注册了相同控件,这可能是有用的。例如,第一dfr ui元素元数据可包括“应用程序——应用程序a;功能——选择字体;参数——无”,第二dfr ui元素元数据可包括”应用程序——应用程序b;功能——选择字体;参数——无”。当从显示与不同应用程序相关的dfr ui元素300切换时,dfr代理400可保持公共dfr ui元素300的连续性。例如,当dfr代理400从显示应用程序a dfr ui元素300切换到应用程序b dfr ui元素300时,可以在dfr 112上的同一地方显示字体选择dfr ui元素300。在单个应用程序的不同功能层级注册了相同或相似dfr ui元素300时,这可能也是有用的。应用程序可具有若干功能层级(例如,子部分),各自具有其自身的功能,如下文更详细所述。
61.在一些具体实施中,dfr ui元素300可包括一组元素。例如,一组元素可包括多个元素(形成并非分离的事物的概念分组)。例如,一组元素可包括不应分离的多个媒体控制dfr ui元素300(例如,回放控件)。该组元素注册数据可指定哪些dfr ui元素300出现在组中,并可为dfr ui元素300定义特定次序。因此,当在dfr 112上显示一组元素时,该组之内的所有dfr ui元素300可以每次按相同固定次序出现。
62.dfr ui元素300可被视为类似于窗口或对话,但由dfr代理400完全管理。换句话讲,dfr代理400可被视为提供开窗系统,其中设备100的用户仅对窗口的尺寸或位置具有间接控制。用户的操作可能影响显示哪些dfr ui元素300(例如,用户打开应用程序并且dfr代理400显示由该应用程序注册的元素300,或者用户选择他们希望看到在给定设备100状态中显示的dfr ui元素300)。然而,dfr代理400执行dfr ui元素300的实际选择和布置,与用户在带窗口gui中对窗口进行拖动和/或重新设定尺寸相反。dfr代理400可提供针对dfr ui元素300之内变化和/或正在显示的dfr ui元素300之间过渡的中央协调动画。
63.此外,由于应用程序仅注册dfr ui元素300,并且dfr代理400选择dfr ui元素300进行显示,因此应用程序可能无法访问dfr 112硬件。实际上,应用程序可能无法确定其dfr ui元素300是在dfr 112上显示还是实质上在主显示器104上运行(例如,用于调试或用户自定义)。实质上以应用程序不可见的方式运行dfr ui元素300可允许精确的模拟和/或调试,因为应用程序由于被置于模拟或调试模式中将不会做出不同行为。
64.元素选择
65.在一些具体实施中,dfr代理400可选择注册的dfr ui元素300以在dfr 112的显示上呈现。例如,注册的dfr ui元素300不一定显示在dfr 112上。系统状态模块430可检测系
统100的事件(例如,来电或消息、显示特定dfr ui元素300的用户命令、提示等)和/或系统100的状态(例如,用户正在与之交互的特定应用程序、用户与之交互的应用程序的特定部分、当前运行的其他应用程序)。自定义模块420可接收描述用户对于在各种情况下要显示哪些dfr ui元素300的偏好的偏好信息。dfr代理400可使用规则模块440、上下文模块450和约束模块460中的一者或多者来评估由系统状态模块430和/或自定义模块420提供的数据,以选择用于显示的dfr ui元素300。一旦选择了用于在dfr 112的显示上呈现的dfr ui元素300,显示器组件模块470就可以生成用于在dfr 112上呈现的包括所选择的dfr ui元素300的图像。
66.规则模块440可使用一个或多个规则来从已注册的dfr ui元素300中选择应当显示什么。规则可被配置为允许dfr代理400找到在那时匹配设备100的上下文的dfr ui元素300。例如,规则模块440可指定规则,即在设备100接收来电时,dfr 112应当显示用于处理呼叫的一个或多个dfr ui元素300(例如,提供对应答呼叫、取消呼叫、发送到语音信箱、提供呼叫信息等的控制)。规则还可定义如何对所选择的dfr ui元素300进行布置和设定尺寸。例如,在来电情形中,规则模块440可以指定规则,即呼叫dfr ui元素300应当填充整个dfr 112,或者指定规则,即呼叫dfr ui元素300应当出现于dfr 112的左半部上。使用该规则,dfr代理400可基于系统100的状态在dfr ui元素300之间切换。
67.图5a是示例性主显示器104和dfr 112。本示例例示了在主显示器104和dfr 112上都示出与同一应用程序相关的数据的情形。根据一个示例性规则,dfr代理400可跟踪哪个应用程序在最前方,并且显示由该应用程序注册的一个或多个dfr ui元素300。例如,如图4所示,应用程序#1窗口501当前在主显示器104上处于活动状态,表明用户当前正与应用程序#1交互。另一个应用程序窗口可以是打开的(例如,应用程序#2窗口502),但可以处于后台或当前未被用户使用。因此,应用程序#1可被视为最前方应用程序,并且dfr代理400可遵循指示最前方应用程序可优先选择已被应用程序#1注册的dfr ui元素301的规则。dfr ui元素301可为提供单个功能的离散元素,或可为提供多个功能的一组元素(即,由应用程序#1注册的多个dfr ui元素300组装的单个dfr ui元素301)。
68.如果应用程序#1已经注册了多个元素,可基于用户当前正与之交互的应用程序#1的特定方面,进一步选择dfr ui元素301。例如,如果应用程序#1是具有与接收人对话和消息框对话相关的独立注册dfr ui元素300的电子邮件应用程序,当用户在消息框中键入时,当用户正在接收人对话和消息框元素(例如,字体选择元素、自动完成元素、签名元素、超链接元素、对象插入元素等)中键入时,dfr代理400可显示接收人对话元素(例如,地址簿元素、自动完成元素、cc/bcc元素等)。
69.图5b是示例性主显示器104和dfr 112。本示例例示了在用户开始在与图5a的示例不同的应用程序中开始工作之后,在主显示器104和dfr112上都示出与同一应用程序相关的数据的情形。如图所示,当用户从工作于应用程序#1中切换到工作于应用程序#2中时,应用程序#2窗口502可在主显示器104上变为活动状态。因此,应用程序#2可被视为最前方应用程序,并且dfr代理400可遵循指示最前方应用程序可优先选择已被应用程序#2注册的dfr ui元素302的规则。dfr ui元素302可为提供单个功能的离散元素,或可为提供多个功能的一组元素(即,由应用程序#2注册的多个dfr ui元素300组装的单个dfr ui元素302)。
70.图5c是示例性主显示器104和dfr 112,其中在dfr 112上示出了系统优先级数据。
根据另一个示例性规则,一些dfr ui元素300可以是系统优先级元素。例如,系统优先级元素可由系统优先级应用程序注册和/或可与某些设备100优先级状态或系统模态事件(例如,其中用户必须在继续使用应用程序或设备100之前处理事件)相关。该规则可能要求响应于系统优先级事件,可以呈现特定dfr ui元素300,无论发生什么别的事件(例如,无论主显示器104上哪个窗口进入活动状态)。如图5c所示,例如,尽管应用程序#2窗口502在显示器104上处于最前方,但系统优先级dfr ui元素305被示于dfr 112上。
71.触发此规则的系统优先级事件可以是规则指定的任何事件。一些示例可包括检测传入信息(例如,音频或视频呼叫或者聊天消息),其中dfr代理400可选择包括消息应用程序功能的系统优先级dfr ui元素305;活动屏幕记录会话,其中dfr代理400可选择包括屏幕记录功能的系统优先级dfr ui元素305;特定用户命令(例如,用户输入命令以显示功能行),其中dfr代理400可选择与该命令相关的系统优先级dfr ui元素305(例如,一组功能键);接收通知或弹出消息,其中dfr代理400可选择包括用于处理通知或消息的控件的系统优先级dfr ui元素305;和/或其他事件。根据相关示例性规则,在事件结束时,dfr代理400可回复到显示在事件之前显示的dfr ui元素300。在图5c的示例中,这可以是回复到图5b的显示。根据另一个相关的示例性规则,响应于取消系统优先级dfr ui元素305的用户命令(例如,忽略消息命令或隐藏功能行命令),dfr代理400可回复到显示在事件之前显示的dfr ui元素300。
72.规则可以是预定义的和/或可被动态设置。在一些具体实施中,预定义的规则可以是dfr代理400由于系统100的设置而应用程序的规则。例如,键盘110可包括“显示f键”按钮。dfr代理400可应用程序预定义的规则:在用户按压(或按压并保持)显示f键按钮时,要求在dfr 112上显示f键元素300(例如,针对功能键f1-f12的元素300、退出键元素300和/或其他元素)。因此,当用户按压(或按压并保持)显示f键按钮时,dfr 112可从显示图像/符号切换为显示f键元素300。
73.动态确定的规则可由应用程序注册。在另一个示例中,要求响应于传入消息而显示消息dfr ui元素300的规则可以是动态确定的规则。例如,可由负责消息传递的应用程序在注册元数据中定义该行为。应用程序可注册dfr ui元素300并断言有兴趣让dfr ui元素300由规则在特定条件下显示。dfr代理400可相对于其他应用程序兴趣评估这一兴趣,以对总体规则进行确立和优先级安排,其可以包括针对系统模式应用程序的优先级分级结构。
74.图5d是示例性主显示器104和dfr 112。在该示例中,在dfr 112上显示来自多个源的元素。在一些情况下,由具有最前方窗口503的应用程序#3注册的dfr ui元素303可能不填充整个dfr 112。在这些情况下,dfr代理400可选择一个或多个附加dfr ui元素(例如,应用程序#4dfr ui元素304、系统dfr ui元素306)用于显示。例如,如下所述,dfr代理400可通过遍历响应器树来选择额外的应用程序dfr ui元素(例如,dfr ui元素304)。
75.系统dfr ui元素306可以是提供系统级而非应用程序级控件的元素。例如,系统dfr ui元素306可提供亮度控件、窗口布置控件(例如,应用程序暴露、查看所有应用程序、查看桌面)、媒体控件、磁盘弹出控件等。在一些情况下,系统dfr ui元素306可始终存在或可除非系统优先级dfr ui元素305已超过dfr 112就始终存在。例如,dfr代理400可实施指出系统dfr ui元素306必须始终出现于dfr 112右侧的规则。在该示例中,dfr代理400可利用最前方应用程序的dfr ui元素300填充dfr 112的剩余部分,而在dfr 112的右侧上留下
系统dfr ui元素306。系统dfr ui元素306的一些示例可提供通常有用的控件,例如亮度、音量、无线联网切换等。
76.在一些实施方案中,dfr代理400可维护被允许接管整个dfr 112的应用程序的白名单。根据示例性规则,如果最前方应用程序在白名单上,它可能有能力接管整个dfr 112。例如,dfr代理400可具有包括应用程序#1和应用程序#2的白名单。因此,如图5a和图5b所示,应用程序#1dfr ui元素301和应用程序#2dfr ui元素302可填充dfr 112。如果最前方应用程序不在白名单上,则dfr代理400可选择应用程序注册的不填充整个dfr 112的dfr ui元素,并可以利用其他dfr ui元素300填充dfr 112显示空间的剩余部分。例如,应用程序#3可能不在白名单上,因此dfr代理400可选择应用程序#3dfr ui元素303和额外的dfr ui元素304和306以填充dfr 112,如图5c所示。
77.响应器链
78.如上文所论述,多个应用程序可注册dfr ui元素300,dfr代理400可基于规则确定显示哪些dfr ui元素300。为了促成这种确定,上下文模块450可生成针对应用程序的响应器链,该响应器链可基于系统状态模块430提供的系统100的状态数据。响应器链可定义每个应用程序与当前实行的任何规则的关系(例如,基于哪个应用程序在最前方、系统模式事件是否在进行中等)。规则模块440可遍历响应器链来选择用于显示的dfr ui元素300。
79.在一些具体实施中,响应器链可定义应用程序的一个或多个功能层级。例如,应用程序可具有一般功能层级,包括通常适用于整个应用程序的功能。该应用程序还可具有一个或多个特定功能层级,包括仅适用于特定应用程序状态的功能。应用程序可注册与特定功能层级相关的dfr ui元素300。例如,电子邮件应用程序可具有一般功能层级,包括新电子邮件创建功能、电子邮件搜索功能和/或联系人管理功能。电子邮件应用程序可注册与一般功能层级具体相关的dfr ui元素300,诸如“创建新电子邮件”dfr ui元素300、“搜索电子邮件”dfr ui元素300和/或“搜索联系人”dfr ui元素300。电子邮件应用程序可具有包括在用户工作于电子邮件编辑窗口中时具体适用的功能的功能层级,包括添加接收人功能、发送电子邮件功能和/或保存电子邮件功能。电子邮件应用程序可注册与电子邮件编辑窗口功能层级具体相关的dfr ui元素300,例如“添加接收人”dfr ui元素300、“发送电子邮件”dfr ui元素300和/或“保存电子邮件”dfr ui元素300。电子邮件应用程序可具有包括在用户正在对话框中编辑文本时具体适用的功能的功能层级,包括字体选择功能、字体大小选择功能和/或字体效果选择功能。电子邮件应用程序可注册与文本编辑功能层级具体相关的dfr ui元素300,例如“选择字体”dfr ui元素300、“减小字体大小”dfr ui元素300和/或“下划线”dfr ui元素300。
80.dfr代理400可遍历响应器链以基于其与设备100状态的相关度布置dfr ui元素300,其结果可被表示为项目树。图6a是示例性项目树600。在图6a中,“w-》x-》y-》z”是响应器链,a表示支配响应器链的当前状态(例如,基于设备100中发生什么而应用程序的规则)。每个编号的框或“组”框(例如,组ψ、组ω)表示dfr ui元素300。在一些示例中,dfr ui元素300可包括应用程序控件和/或预定义的固定或灵活空间,用于放置在控件之间。每行表示对应于应用程序的单个功能层级的一组dfr ui元素300。
81.在每行之内,dfr ui元素300可被布置成排序默认组。在一些情况下,dfr ui元素300可以是可自定义的,如下文更详细所论述的。如果是这样,应用程序的注册可提供不能
去除的dfr ui元素300的列表、默认没有但可添加的dfr ui元素300的列表以及dfr ui元素300的排序默认组。此项目树600是只作为示例给出的,因为响应器链可具有功能层级和dfr ui元素300的任意布置,导致在遍历时出现各种不同的项目树600。此外,本文描述的示例假设整个dfr 112有单个响应器链,但一些实施方案可使用多个响应器链(例如,左侧响应器链、右侧响应器链和中央响应器链)以填充dfr 112的子部分,在遍历时每个响应器链都可导致独立的项目树600。
82.在一些具体实施中,在确定在dfr 112的显示上呈现来自项目树600的哪些dfr ui元素300时,dfr代理400可应用程序抑制规则。抑制规则可以是dfr代理400可用以遍历响应器链的一种规则。设备100的状态可随着用户与设备100交互而改变。例如,设备100可以引导并可能没有具有打开的窗口的活动应用程序。用户可打开web浏览器窗口,导致设备100状态改变。用户可在web浏览器地址栏上点击并在其中键入,导致设备100状态再次改变。然后用户可点击所显示的网站,并滚动浏览网站,使设备100状态再次改变。根据当前设备100的状态,可以或多或少地聚焦于响应器链中的每个功能层级。聚焦更多的功能层级可能比聚焦更少的功能层级与当前设备100状态更相关。根据一个示例性抑制规则,dfr代理400在选择用于显示的dfr ui元素300时可使响应器链中聚焦更多的功能层级中的dfr ui元素300优先。根据另一个示例性抑制规则,dfr代理400在选择用于显示的元素时可使聚焦更少的功能层级中的dfr ui元素300优先。
83.例如,当用户打开web浏览器窗口时,由web浏览器注册的dfr ui元素300可变得比默认系统dfr ui元素300更加聚焦。当用户与地址栏交互时,web浏览器注册的与地址栏具体相关的dfr ui元素300(例如,书签、最近访问的url等)可变得比web浏览器注册的其他dfr ui元素300更加聚焦。当用户切换成与网站交互时,地址栏特有的dfr ui元素300可能变得更少聚焦,而网站显示特有的dfr ui元素300(例如,缩放、后退、前进等)可能变得更多聚焦。
84.在另一个示例中,设备100可运行电子邮件应用程序,该电子邮件应用程序在主显示器104上的窗口包括接收人对话框和消息对话框。当用户在接收人对话框中键入时,与该应用程序的该方面相关的dfr ui元素300(例如,地址簿搜索)可能变得比与消息对话框相关的dfr ui元素300(例如,html消息格式化选项)聚焦更多,其继而可能比与电子邮件应用程序不相关的dfr ui元素300(例如,系统音量控件)聚焦更多。当用户正在消息对话框中键入时,与消息对话框相关的dfr ui元素300可能变得比与接收人对话框相关的dfr ui元素300聚焦更多。
85.dfr代理400可使用抑制来确定应当显示响应器链中哪些dfr ui元素300。例如,针对任何给定dfr ui元素300的抑制规则可具有四种不同形式之一,被聚焦更多的项目抑制、被聚焦更少的项目抑制,以及抑制聚焦更多的项目或抑制聚焦更少的项目。被抑制的dfr ui元素300可具有比未被抑制的dfr ui元素300更低的优先级,dfr代理400可相应地选择未被抑制的dfr ui元素300加以显示,如果在选择所有未被抑制的dfr ui元素300之后还有剩余空间,则仅选择被抑制的dfr ui元素300。例如,dfr代理400可实施抑制规则,规定由聚焦更多的项目抑制音量控制dfr ui元素300。如果用户在使用电子邮件应用程序,则由电子邮件应用程序注册的联系人列表dfr ui元素300可比与电子邮件应用程序不相关的音量控制dfr ui元素300聚焦更多。因此,dfr代理400可选择联系人列表dfr ui元素300加以显示,而
不是音量控制dfr ui元素300。在另一示例中,当用户正在电子邮件应用程序中编辑消息时,响应器链的文本编辑功能层级中的文本下划线dfr ui元素300可以比响应器链的聚焦更少的消息窗口功能层级中的发送电子邮件dfr ui元素300聚焦更多。dfr代理400可实施抑制规则,规定聚焦更多的项目具有优先级,并选择下划线dfr ui元素300加以显示,而不是发送电子邮件dfr ui元素300。
86.当发生设备100事件时,诸如检测到传入消息或用户与应用程序交互,dfr代理400可遍历响应器链以选择用于显示的dfr ui元素300。dfr代理400可在响应器链中的功能层级最近事件a中从dfr ui元素300开始。例如,dfr代理400可实施聚焦更多的dfr ui元素300抑制聚焦更少的dfr ui元素300的规则。在图6a的项目树600中,标记为1和2的dfr ui元素300是最近的事件a(例如,w可以是响应器链的聚焦最多的层级)。dfr代理400可确定最近功能层级中的任何dfr ui元素300是否与事件相关。如果是,则可选择它们。如果不是,则dfr代理400可跳过最近功能层级并移至次最近层级(例如,图6a中的第二层级,其中x是响应器链中聚焦次最多的层级),并执行相同的分析和选择,并沿着项目树600类推。显示器组件模块470可生成包括所选择的dfr ui元素300的图像并将该图像发送至dfr 112用于显示。
87.在另一示例中,dfr代理400可实施聚焦更少的dfr ui元素300抑制聚焦更多的dfr ui元素300的规则。在图6a的项目树600中,标记为1和2的dfr ui元素300是最近的事件a(例如,w可以是响应器链的聚焦最少的层级)。dfr代理400可确定最近功能层级中的任何dfr ui元素300是否与事件相关。如果是,则可选择它们。如果不是,则dfr代理400可跳过最近功能层级并移至次最近层级(例如,图6a中的第二层级,其中x是响应器链中聚焦次最少的层级),并执行相同的分析和选择,并沿着项目树600类推。显示器组件模块470可生成包括所选择的dfr ui元素300的图像并将该图像发送至dfr 112用于显示。
88.类似地,当已选择来自功能层级的dfr ui元素300,在dfr 112上仍有更多的空间用于更多dfr ui元素300时,dfr代理400可沿着项目树600继续,以选择额外的dfr ui元素300。显示器组件模块470可生成包括所选择的dfr ui元素300的图像并将该图像发送至dfr 112用于显示。
89.在一些具体实施中,项目树600可包括用于响应器链中其他项目的占位符。例如,应用程序还可以将图6a中所示的称为“其他项目代理”的项目注册为“其他”块。其他项目代理注册可告知dfr代理400,如果dfr ui元素300被放置在dfr 112上且仍有空间,则可添加其他功能层级上的和/或由其他应用程序注册的其他dfr ui元素300。其他项目代理可定义例如相对于已经添加的dfr ui元素300,应用程序对可在哪里放置其他dfr ui元素300的偏好。
90.功能层级可允许通过包括其他项目代理,将来自其他功能层级的dfr ui元素300与其自己的dfr ui元素300一起放置。如果某层级不包括其他项目代理,且dfr 112上有空间用于更多dfr ui元素300,dfr代理400可完全跳过该层级的dfr ui元素300并沿项目树600向下移动。因此,无法注册其他项目代理可以是一种指示,表明应当仅在dfr代理400确定仅有针对该层级的元素300相关的状况中才显示该层级的元素300。
91.在一些情况下,dfr代理400可指定选择用于显示的dfr ui元素300为主要(例如,居中)元素300。应用程序可以将dfr ui元素300注册为应在dfr 112上突出表征的主要元素。dfr代理400可从项目树600确定被注册为主要的哪个所选择的dfr ui元素300距项目树
600中的该事件最近,并可以将该dfr ui元素300指定为主要元素300。在显示器组件模块470生成用于显示的图像时,主要dfr ui元素300可在图像之内居中。
92.在其他实施方案中,主要dfr ui元素300可能未必居中。例如,dfr代理400可实施规则,其中需要主要dfr ui元素300出现在dfr 112的左侧上。因此,在显示器组件模块470生成用于显示的图像时,主要dfr ui元素300可被放置在图像的左侧上。
93.图7a示出了可能已经从图6a的项目树600形成的多个示例性dfr112布局。布局112a可源自dfr代理400遍历响应器链以及从项目树600的第一层级、第三层级和第四层级选择每个可用dfr ui元素300,同时跳过项目树600的第二层级。例如,第二层级可不与事件触发布局112a相关并且可被抑制。布局112b可源自dfr代理400遍历响应器链以及从项目树600的第一层级和第二层级选择每个可用dfr ui元素300并从项目树600的第三层级选择单个dfr ui元素300。例如,在选择第一层级和第二层级dfr ui元素300之后,dfr 112可具有针对仅一个或多个dfr ui元素300的空间,并且dfr代理400可从项目树600的第三层级选择最相关或最重要的dfr ui元素300。布局112c可源自dfr代理400遍历响应器链以及从项目树600的第一层级和第二层级选择每个可用dfr ui元素300。给出这些布局112a-112c仅作为示例。如果应用程序不同的规则,其他响应器链可产生不同的布局,甚至图6a的项目树600也可产生不同布局。
94.在一些具体实施中,可划分并重新识别项目树。例如,设备100可被配置为使用特定用户语言来运行。用户可设置设备100以显示数据并以英语、西班牙语、阿拉伯语或其他语言接受输入。一些语言可以从左到右阅读,其他语言可以从右到左阅读。在一些具体实施中,dfr代理400可在默认情况下以从左到右的方式布置dfr 112布局。当设备100被配置为使用右到左的语言工作时,dfr代理400可将dfr 112布局重新布置成从右到左阅读。
95.图6b是示例性项目树610。在该示例中,项目树610具有两个层级。第一层级包括标记为1、2和3最近事件a的dfr ui元素300。第二层级包括标记为4和5的dfr ui元素300。标记为3的dfr ui元素300可为主要dfr ui元素300。图7b示出了示例性dfr布局112d,该布局可能源自遍历响应器链以及选择项目树610中的每个dfr ui元素300加以显示。
96.为了将dfr布局112d重新布置成从右到左布局,同时保持标记为3的dfr ui元素300作为主要dfr ui元素300,dfr代理400可遍历响应器链,然后划分项目树610。图6c示出了项目树610已被划分成三个树,即项目树610a、项目树610b和项目树610c的示例。项目树610b是包括主要dfr ui元素300的树,其可以保持在dfr 112上居中。项目树610a包括在遍历响应器链期间选择在主要dfr ui元素300左侧上显示的dfr ui元素300。项目树610c包括在遍历响应器链期间选择在主要dfr ui元素300右侧上显示的dfr ui元素300。dfr代理400可独立处理每个项目树610a-610c,并反转左项目树610a和右项目树610c中dfr ui元素300的次序。dfr代理400可通过在来自项目树610b的dfr ui元素300的任一侧上组合来自项目树610a和610c的反转dfr ui元素300来构建dfr布局。例如,图7b示出了可源自项目树610a-610c的dfr布局112e。与dfr布局112d相比,项目树610a中的dfr ui元素300被反转,但仍然出现在主要dfr ui元素300的左侧。与dfr布局112d相比,项目树610c中的dfr ui元素300被反转,但仍然出现在主要dfr ui元素300的右侧。
97.上下文
98.替代使用响应器链,或除了使用响应器链之外,上下文模块450可基于上下文选择
dfr ui元素300。上下文可描述设备100的状态或活动。例如,与文本对话框交互的用户可以是上下文,应用程序状态可以是上下文,内部设备状态可以是上下文,传入消息或其他事件可以是上下文等。在上下文驱动的选择中,元素300可与特定上下文而非响应器(即,响应器链的有序分级结构之内的应用程序)相关联。dfr代理400可基于在dfr ui元素300的注册中提交的dfr ui元素300的描述来选择与给定上下文相关的dfr ui元素300。
99.在一些情况下,几种上下文可同时适用于设备100。应用程序可针对多组上下文注册dfr ui元素300或dfr ui元素300的组,在给定组的上下文同时存在于注册元数据之内时,指定dfr ui元素300的选择和布置。此外,上下文可具有优先级。dfr代理400可使一些上下文优先于其他上下文,并首先选择与最高优先级上下文相关的dfr ui元素300。例如,在传入消息在设备100处被接收时,用户可使用文本编辑应用程序在文档中键入文本。几种上下文可以适用,包括一般文本编辑应用程序上下文、特定键入功能上下文和消息上下文。dfr代理400可为传入消息赋予最高优先级,并显示与消息相关的dfr ui元素300。如果有用于额外dfr ui元素300的空间,dfr代理400从次最高优先级上下文选择它们(例如,键入),并按照优先级次序依次通过上下文。显示器组件模块470可生成包括所选择的dfr ui元素300的图像并将该图像发送至dfr 112用于显示。
100.在dfr代理400使用响应器链和上下文两者选择dfr ui元素300的实施方案中,每个功能层级在响应器链中的位置以及每个应用程序的抑制规则可被视为上下文并相应地由上下文模块450评估。例如,一个上下文可以是特定功能层级的状态作为链中的第一响应器,另一个上下文可以是链响应器的状态被另一链响应器抑制。转到图6和图7,dfr显示器112a可源自具有最高优先级上下文的第一层级的第一响应器位置和例如导致第三层级抑制第二层级的抑制规则。
101.约束
102.在一些具体实施中,dfr代理400可使用约束来选择和/或布置用于显示的dfr ui元素300。约束可表达dfr ui元素300之间的关系。应用程序约束可确定哪些元素300可见,以及如何在dfr 112上布置可见的元素300。例如,约束可限定关系,诸如“这三个元素300必须从左到右或从右到左按特定次序出现”或者“这三个元素300必须呈现为在它们之间至少有指定量的空间”或者“这一元素300必须出现在左侧”或“这个元素300必须出现在右侧”等。约束还可定义元素300之间的固定空间或灵活(例如,可设定尺寸)空间的量。包括多个子元素的组元素300可具有指定组元素300之内子元素的类似关系的子约束。组元素300本身还可能要与个体元素300以同样方式遵守一般约束。
103.约束模块460可选择一组未排序的dfr ui元素300,并对dfr ui元素300和dfr ui元素300的排序组施加一组约束。通过施加约束,约束模块460可选择要在哪种布置中显示哪些dfr ui元素300。显示器组件模块470可利用约束限定的布置中的所选择的dfr ui元素300生成图像。
104.为了选择并布置用于显示的dfr ui元素300,dfr代理400可确定哪些约束应用于适用于当前设备100上下文或状态的dfr ui元素300,从而建立约束系统。dfr代理400可解决约束系统中的约束,尝试满足响应器链或上下文所规定的次序中的约束。为解决约束,dfr代理400可按规定次序应用程序第一约束,根据第一约束选择并布置dfr ui元素300。假设有用于额外dfr ui元素300的空间,则dfr代理400可应用程序第二约束并尝试添加和布
置额外的dfr ui元素300,等等,直到空间被填充。
105.每个约束可归入至少三个类别之一,即必需、任选或自定义。如果dfr ui元素300受到必需约束的约束,dfr代理400必须能够满足约束,否则dfr ui元素300将不被显示。如果dfr ui元素300受到任选约束的约束,则dfr代理400可尝试满足约束,但如果满足约束会与另一个约束(例如,必需约束)冲突,则可以仍然显示dfr ui元素300。dfr代理400可类似于任选约束处理自定义约束,但自定义约束可在冲突时相对于任选约束优先生效,因为自定义约束可以是用户指定的,于是被视为更重要,因为其对应于用户的偏好。
106.约束可被表达为逻辑表达式和线性表达式的混合。例如,要求dfr ui元素x 300出现在dfr 112左边缘的必需约束可被如下表达:x左边缘》所有其他左边缘或者x是不可见的。当dfr代理400解决包括本约束的约束系统中的约束时,如果不能满足约束,则关联的dfr ui元素x 300可不被选择用于显示。在另一个示例中,要求dfr ui元素y 300出现在dfr 112左边缘上的任选约束可以如下表达:y左边缘》所有其他左边缘或者y边缘和其他dfr ui元素的右边缘之间的差异尽可能小。当dfr代理400解决包括本约束的约束系统时,如果不能满足约束,关联的dfr ui元素y 300可以在一个或多个其他dfr ui元素300的右侧,如其他约束规定,但在其他约束的视图中可以尽可能向左。任选约束还可以包括优先级值,从而可基于相应优先级值在约束系统中优先执行任选约束。例如,如果两个dfr ui元素300具有表示它们应当在dfr 112上最左方的任选约束,具有较高值的元素300可被放置到具有较低值的dfr ui元素300的左方。
107.转到图6a和图7a,dfr显示112c可源自解决某一约束系统,其中例如,dfrui元素2具有约束2,即右边缘》所有其他右边缘或者2不可见,组元素x具有约束x,即右边缘》所有其他右边缘或者x右边缘和其他元素的左边缘之间的差异尽可能小,且dfr ui元素1具有约束1,即左边缘》所有其他左边缘或者1不可见。
108.基于约束的dfr ui元素300的选择过程可与上文所论述的基于优先级的元素300的选择方法以不同方式工作。在基于优先级的选择中,每个dfr ui元素300可具有优先级。在可用的dfr ui元素300太多时,dfr代理400可从最高优先级dfr ui元素300开始,并沿优先级列表向下工作,直到产生匹配dfr 112的一组dfr ui元素300为止。利用该约束模型,不需要提供固有优先级。相反,约束可定义要显示dfr ui元素300的条件并定义条件是任选还是必需。dfr代理400可满足尽可能多的约束,以产生匹配dfr 112的一组dfr ui元素300。
109.命令处理
110.dfr代理400可使用dfr 112上的dfr ui元素300的布置来处理使用dfr 112触摸界面的命令输入。当用户触摸dfr 112时,输入模块480可从dfr 112接收指示具体触摸位置的数据。显示器组件模块470可向输入模块480提供数据,指示哪个dfr ui元素300在被触摸的位置处。因此,输入模块480可将触摸位置与相关的dfr ui元素300相关联。在确定相关的dfr ui元素300之后,输入模块480可确定哪个应用程序需要知道该触摸事件。例如,输入模块480可确定哪个应用程序注册了dfr ui元素300并确定注册应用程序的适当api。输入模块480可调用适当的api以向应用程序递送命令。由于多个应用程序可一次性在显示器上具有dfr ui元素300,dfr代理400可向每个应用程序单独递送事件通知。
111.dfr代理400可将个体dfr ui元素300放置到dfr 112的个体区域中,以允许跟踪用户按压了哪个dfr ui元素300。例如,一旦dfr代理400选择了用于显示的dfr ui元素300,
dfr代理400就可将dfr 112分割成多个区域,并将每个dfr ui元素300放入独立区域中。每个区域的形状可提供指示如何解释进来的触摸的元数据。这些区域可被合成到图像中并在dfr 112上呈现。呈现的图像可被发送至dfr 112或别处(例如,屏幕上用于模拟的窗口、用于录像的电影截屏、作为截屏而发送到文件的一帧等)。各区域也可启用调试。例如,在调试模式中,dfr代理400可使得dfr 112叠加文本,指出哪个dfr ui元素300与哪个应用程序相关联,以允许用户快速了解哪些应用程序参与了dfr 112的哪些区域。可以进行调试而不影响dfr 112的功能且应用程序不意识到调试模式。
112.自定义
113.图8示出了示例性dfr布局编辑器界面800。设备100可以包括用于自定义dfr 112显示的应用程序。例如,用户可进入dfr自定义模式,其中用户可在dfr 112之内放置和布置dfr ui元素300。在dfr自定义模式中,设备100可在主显示器104上显示调色板802。调色板802可包括可被放入dfr 112中的dfr ui元素300。在一些实施方案中,使用诸如鼠标或触控板的输入设备,用户可在调色板802中选择一个或多个dfr ui元素300,并且将它们从主显示器104拖动到dfr 112。在设备100处于dfr自定义模式中时,用户还能够选择在dfr 112上显示的一个或多个dfr ui元素300并将它们拖动到dfr 112上的其他位置。用户可能还能够将一个或多个dfr ui元素300从dfr 112拖走,要么完全移除它们,要么将它们拖动到主显示器104。在其他实施方案中,主显示器104还可显示虚拟dfr,用户可向其中拖动dfr ui元素300。在图8的示例中,用户已经拖动了dfr ui元素300-1、300-2、300-3,以及组dfr ui元素300x并根据需要将它们定位在dfr 112或虚拟dfr上。调色板802可包括一个或多个默认组806的dfr ui元素300。为了使dfr 112恢复默认显示,用户可将整个默认组806拖动到dfr 112。
114.调色板802的内容可由设备100的当前状态决定。例如,如果用户正在使用电子邮件应用程序并进入自定义模式中,调色板802中的dfr ui元素300可包括电子邮件应用程序注册的dfr ui元素300和通常适用的系统dfr ui元素(例如,用于诸如音频音量、间隔元素等的系统范围控制的dfr ui元素300)。在一些实施方案中,用户可针对系统默认状态,以及使用相同界面800自定义dfr 112。自定义模块420可存储用户对状态的编辑,并且当再次遇到该状态时,dfr代理400可生成包括用户编辑的dfr 112的显示图像。例如,规则模块440可应用程序用户编辑优先于默认值的规则,或者约束模块460可优先执行对应于用户编辑的约束。
115.组dfr ui元素300也可通过界面800来自定义。用户可选择用于自定义的组,并将dfr ui元素300拖动到该组之中或之外,以及在该组中布置dfr ui元素300。如果多个应用程序或事件使用自定义组,则每次使用组时都可能存在自定义。
116.自定义可为用户提供灵活性,但在dfr 112上放置dfr ui元素300仍可受上文所述规则和/或约束的支配。界面800可拒绝违反规则或约束的任何用户更改。例如,如果需要dfr ui元素1处于dfr 112的左侧,则用户可能无法将dfr ui元素3拖动到dfr ui元素1的左侧。某些组或dfr 112布局可被标记或注册为可自定义和/或其他不可自定义,反之亦然。如上所述,应用程序的注册可提供不能移除的dfr ui元素300的列表。在这种情况下,规则可防止用户移除不可移除的dfr ui元素300。可以指定在自定义时防止分离dfr ui元素300或拆分已分组dfr ui元素300的规则。例如,可约束用户以免在提高音频音量dfr ui元素300
和降低音频音量dfr ui元素300之间放置dfr ui元素300。因此,在界面800中仅可编辑允许自定义的组或布局。
117.示例过程
118.图9是基于最前方应用程序的示例性dfr图像生成过程900的流程图。例如,过程900可由计算设备100响应于设备100状态改变而执行,以生成用于在dfr 112上显示的图像。
119.在步骤902,计算设备100可在dfr 112上呈现默认图形元素。例如,在设备100启动时或在没有应用程序活动时,dfr代理400可向dfr 112发送默认显示数据(例如,包括系统dfr ui元素300,诸如音频音量控件、屏幕亮度控件、退出键等的图像)。具体地讲,如上所述,系统状态模块430可确定设备100状态(即,没有活动应用程序)。dfr代理400可使用该状态来基于规则、上下文和/或约束,选择和布置用于显示的dfr ui元素300。当没有应用程序活动时,不能注册任何dfr ui元素300,因此dfr代理400可从可用系统dfr ui元素300(例如,屏幕亮度、音量、无线网络切换等)中选择dfr ui元素300。显示器组件模块420可向dfr 112发送包括所选择的dfr ui元素300的图像。在该示例中,过程900从默认显示开始,但在一些情况下,dfr 112可在该步骤中显示与特定设备100应用程序或状态相关的图像。例如,当一个或多个应用程序正在运行并注册了dfr ui元素300时,dfr代理400可如上所述选择一个或多个已注册的dfr ui元素300和/或一个或多个系统dfr ui元素300。
120.在步骤904,计算设备100可检测到最前方应用程序已改变。例如,用户可开始在新应用程序中工作,或选择显示器104上的打开窗口作为主要窗口。在图5a中,应用程序#1是最前方应用程序。在图5b中,应用程序#2是最前方应用程序。dfr代理400可从计算设备100的操作系统接收状态数据,该状态数据指出,最前方应用程序(例如,当前具有用户输入焦点的应用程序)已从第一应用程序变为第二应用程序。
121.在步骤906,计算设备100可从最前方应用程序接收针对一个或多个dfr ui元素300的注册数据。例如,最前方应用程序可向dfr代理400注册元素300。例如,如果用户正主动使用web浏览器,web浏览器可注册具有用于地址栏、重新加载、书签、前进、后退、新选项卡、历史记录和/或下载的控件的dfr ui元素300。
122.在步骤908,计算设备100可从计算设备100上运行的其他应用程序接收针对一个或多个dfr ui元素300的注册数据。例如,其他应用程序可向dfr代理400注册元素300。例如,如果用户已启动媒体播放器并正在后台运行该媒体播放器(且在前台运行web浏览器),该媒体播放器可注册具有用于媒体回放和选择的控件的dfr ui元素300。
123.在步骤910,计算设备100可基于元素选择规则评估已注册的dfr ui元素300。在一些具体实施中,dfr代理400可基于上文在“元素选择”部分中所述的规则来评估注册的dfr ui元素300。例如,web浏览器可以是被允许接管整个dfr 112的白名单应用程序。
124.在步骤912,dfr代理400可基于规则选择用于显示的dfr ui元素300。在web浏览器被加入白名单的示例中,dfr代理400可仅选择由web浏览器注册的dfr ui元素300,并排除由媒体播放器注册的dfr ui元素300。
125.在步骤914,dfr代理400可生成包括所选择的dfr ui元素300的图像(例如,位图,如上所述)并将该图像发送至dfr 112。dfr 112可显示该图像。
126.图10是基于系统优先级事件发生的示例性dfr图像生成过程1000的流程图。例如,
过程1000可由计算设备100响应于系统模式事件而执行以在dfr 112上显示图像,并在系统模式事件结束时返回显示先前图像。
127.在步骤1002,计算设备100可在dfr112上呈现默认图形元素。例如,在设备100启动时或在没有应用程序活动时,dfr代理400可向dfr112发送默认显示数据(例如,包括系统dfr ui元素300的图像)。具体地讲,如上所述,系统状态模块430可确定设备100状态(即,没有活动应用程序)。dfr代理400可使用该状态来基于规则、上下文和/或约束,选择和布置用于显示的dfr ui元素300。当没有应用程序活动时,不能注册任何dfr ui元素300,因此dfr代理400可从可用系统dfr ui元素300(例如,屏幕亮度、音量、无线网络切换等)中选择dfr ui元素300。显示器组件模块420可向dfr 112发送包括所选择的dfr ui元素300的图像。在该示例中,过程1000从默认显示开始,但在一些情况下,dfr 112可在该步骤中显示与特定设备100应用程序或状态相关的图像。例如,当一个或多个应用程序正在运行并注册了dfr ui元素300时,dfr代理400可如上所述选择一个或多个已注册的dfr ui元素300和/或一个或多个系统dfr ui元素300。
128.在步骤1004,可能发生系统优先级事件。例如,设备100可接收传入消息,用户可按压显示f键按钮等等。如图5b-图5c所示,系统优先级事件可与用户工作所在的应用程序无关。例如,在图5b中,用户正在应用程序#2中工作,并且dfr 112正在显示应用程序#2dfr ui元素302。在图5c中,在发生系统优先级事件之后,尽管用户仍在应用程序#2中工作,但dfr 112显示系统优先级dfr ui元素305。在图10的示例中,系统优先级事件是系统模式事件,诸如在采取任何进一步动作之前用户必须应答或取消的传入消息通知。
129.在步骤1006,dfr代理400可响应于系统模式事件,生成包括指定显示的dfr ui元素300的图像(例如,位图,如上所述)并将该图像发送至dfr 112。dfr 112可显示该图像。
130.在步骤1008,系统优先级事件可结束。例如,可以回答传入消息,用户可释放功能行键,用户可取消消息通知等。
131.在步骤1010,dfr代理400可恢复在系统模式事件之前已活动的dfr 112显示。在一些具体实施中,dfr代理400可自动执行恢复,因为一旦系统优先级事件结束,系统100就可返回到其在事件之前所处的状态。因此,dfr代理400可根据与以其之前使用的相同规则、上下文和/或约束生成显示图像。在该示例中,恢复的显示是默认显示,但如果状态特定显示已在dfr 112上(例如,根据过程900生成的显示),则可以相同的方式恢复它。然而,如果设备100的状态在事件期间发生另外的变化(例如,用户开始在新应用程序中工作,使得新应用程序在最前方),dfr代理400可根据事件结束时的新状态生成显示图像。例如,dfr代理400可选择由新的最前方应用程序注册的dfr ui元素300,而不是在用户在新的最前方应用程序中工作之前显示的dfr ui元素300。
132.图11是用于检测和路由dfr输入的示例性过程1100的流程图。例如,当dfr 112显示图像且用户通过触摸图像而输入命令时,计算系统100可执行过程1100。
133.在步骤1102,dfr 112可检测由用户触摸dfr 112输入的命令。dfr 112可向dfr代理400发送指示触摸位置的元数据。
134.在步骤1104,dfr代理400可将触摸位置与显示在该位置处的dfr ui元素300相关联。例如,转到图5d,如果位置元数据指示触摸是在dfr 112的左侧注册的,则dfr代理400可将触摸与dfr ui元素304相关联。如果位置元数据指示触摸是在dfr 112的右侧注册的,则
dfr代理400可将触摸与dfr ui元素305相关联。如果位置元数据指示触摸是在dfr 112的中心注册的,则dfr代理400可将触摸与dfr ui元素303相关联。
135.在步骤1106,dfr代理400可确定选择相关联的dfr ui元素300的含义。例如,如果dfr代理400确定所选择的dfr ui元素300为“提高音量”元素,则dfr代理400可确定系统音量控制应用程序可能需要接收提高音量命令。如果dfr代理400确定所选择的dfr ui元素300为“应答呼叫”元素,则dfr代理400可确定消息应用程序可能需要接收应答呼叫命令。
136.在步骤1108,dfr代理400可向适当应用程序发送命令。例如,dfr代理400可调用对应于如上所述的命令的适当应用程序api。因此,dfr代理400可执行dfr 112命令的初始处理,提供dfr 112和设备100应用程序之间的抽象层。
137.图12是用于使用响应器链600选择dfr ui元素的示例性过程1200的流程图。例如,计算系统100可执行过程1200以遍历响应器链600,从而选择用于显示的dfr ui元素300。
138.在步骤1202,dfr代理400可从在设备100上运行的至少一个应用程序接收已注册的dfr ui元素300。例如,用户可在电子邮件应用程序中工作,并且该电子邮件应用程序可注册多个dfr ui元素300。在一些具体实施中,dfr代理400一开始可在针对应用程序的默认启动次序中显示注册的dfr ui元素300。例如,dfr代理400可选择用于初始显示的一般功能层级dfr ui元素300。
139.在步骤1204,dfr代理400可接收指示事件已经发生或设备100的状态已经改变的数据。例如,用户可在应用程序的特定部分中开始工作。例如,用户可打开电子邮件编辑窗口和/或开始在电子邮件消息撰写框中开始键入。
140.在步骤1206,dfr代理400可确定与事件相关的响应器链600。dfr代理400可按照与事件的距离次序在响应器链600之内布置功能层级和/或dfr ui元素300。例如,如果用户在消息撰写框中键入,则文本编辑功能层级dfr ui元素300可被聚焦最多,因此最接近响应器链600中的事件。用于电子邮件窗口功能层级的dfr ui元素300可能聚焦次最多,并可能在响应器链600中下一个出现。用于电子邮件应用程序的一般功能层级dfr ui元素300可能聚焦最少,并可能在响应器链600中最后出现。
141.在步骤1208,dfr代理400可遍历响应器链600以查找针对事件的第一响应器。例如,在图6a中,包含dfr ui元素1和2的第一层级可以是针对事件a的第一响应器。
142.在步骤1210,如上所述,dfr代理400可以向dfr图像添加第一响应器dfr ui元素300。例如,在图7a的dfr显示112b中,dfr ui元素1和2被放在dfr 112的中心。
143.在步骤1212,如果第一响应器dfr ui元素300不填充dfr图像,则dfr代理400可进一步遍历响应器链600,以查找用于显示的额外dfr ui元素300。例如,dfr代理400可遍历图6a的响应器链600并选择dfr ui元素3、4和组元素x。
144.在步骤1214,dfr代理400可向图像添加额外的dfr ui元素300。例如,在图7a的dfr显示112b中,dfr ui元素3、4和组元素x被放置在dfr 112中元素1和2的任一侧。如上所述,dfr代理400可生成图像并将其发送至dfr 112以用于显示。
145.图13是用于遵守一个或多个约束来选择dfr元素的示例性过程1300的流程图。例如,计算系统100可执行过程1300以满足一个或多个约束,从而选择用于显示的dfr ui元素300。
146.在步骤1302,dfr代理400可从在设备100上运行的应用程序接收已注册的dfr ui
元素300。
147.在步骤1304,dfr代理400可检查注册的dfr ui元素300以识别针对元素300注册的约束并如上所述解决约束。例如,转到图7a,dfr显示112a可源自解决某一约束系统,其中例如,dfr ui元素3具有约束3,即右边缘》所有其他右边缘或者3不可见,组dfr ui元素y具有约束y,即y左边缘》所有其他左边缘或者y左边缘和其他dfr ui元素的右边缘之间的差异尽可能小,且dfr ui元素7具有约束7,即右边缘》所有其他右边缘或者7不可见。
148.在步骤1306,如果必要,dfr代理400可丢弃由于约束而不能显示的dfr ui元素300。例如,在图7a中,对dfr ui元素3的约束与对dfr ui元素7的约束冲突。dfr ui元素7约束可具有比dfr ui元素3约束更高的优先级,因此可丢弃dfr ui元素3。
149.在步骤1308,dfr代理400可根据约束布置剩余的dfr ui元素300。dfr代理400可生成包括所确定的布置中的dfr ui元素300的图像。
150.在步骤1310,dfr代理400可将该图像发送至dfr 112以用于显示。
151.图形用户界面
152.本公开在上文描述了用于实现各种特征、过程或工作流的各种gui。这些gui可被呈现在各种电子设备上,包括但不限于膝上型计算机、台式计算机、计算机终端、电视系统、平板电脑、电子书阅读器和智能电话。这些电子设备中的一者或多者可包括触敏表面。触敏表面可处理多个同时的输入点,包括处理与每个输入点的压力、程度或位置相关的数据。此类处理可促进利用多个手指所进行的手势,该手势包括捏合和轻扫。
153.当本公开指“选择”gui中的用户界面元素时,这些术语被理解为包括在用户界面元素上方利用鼠标或其他输入设备来点击或“悬停”,或利用一个或多个手指或触笔来在用户界面元素上触摸、轻敲或做手势。用户界面元素可以是虚拟按钮、菜单、选择器、开关、滑动条、刷子、旋钮、缩略图、链接、图标、单选框、复选框和用于从用户接收输入或向用户提供反馈的任何其他机构。
154.示例系统架构
155.图14是可实现图1-图13的特征和过程的示例性计算设备1400的框图。计算设备1400可包括存储器接口1402、一个或多个数据处理器、图像处理器和/或中央处理单元1404以及外围设备接口1406。例如,一个或多个处理器1404可包括主处理器202和辅助处理器204。存储器接口1402、一个或多个处理器1404和/或外围设备接口1406可以是独立部件,或者可集成到一个或多个集成电路中。计算设备1400中的各种部件可由一条或多条通信总线或信号线耦接。
156.传感器、设备和子系统可耦接到外围设备接口1406以促进多个功能。例如,运动传感器1410、光传感器1412和接近传感器1414可耦接到外围设备接口1406以促进取向、照明和接近功能。其他传感器1416也可连接到外围设备接口1406,诸如全球导航卫星系统(gnss)(例如,gps接收器)、温度传感器、生物识别传感器、磁力仪或其他感测设备,以促进相关功能。
157.可利用相机子系统1420和光学传感器1422(如电荷耦合设备(ccd)或互补金属氧化物半导体(cmos)光学传感器)来促进相机功能,例如拍摄照片和视频剪辑。相机子系统1420和光学传感器1422可用于收集要在认证用户期间使用的用户的图像,例如,通过执行面部识别分析。
158.可通过一个或多个无线通信子系统1424来促进通信功能,这些无线通信子系统可包括射频接收器和发射器和/或光学(例如,红外)接收器和发射器。通信子系统1424的具体设计与实现可取决于计算设备1400旨在通过其操作的一个或多个通信网络。例如,计算设备500可包括设计用于通过gsm网络、gprs网络、edge网络、wi-fi或wimax网络以及蓝牙
tm
网络操作的通信子系统1424。具体地讲,无线通信子系统1424可包括主机协议,使得设备1400可被配置为其他无线设备的基站。
159.音频子系统1426可耦接到扬声器1428和麦克风51430以促进支持语音的功能,诸如讲话者识别、语音复制、数字记录和电话功能。音频子系统1426可被配置为促进例如处理语音命令、声纹鉴别和语音认证。
160.i/o子系统1440可包括触摸表面控制器1442和/或一个或多个其他输入控制器51444。触摸表面控制器1442可耦接到触摸表面1446。触摸表面1446和触摸表面控制器1442可例如使用多种触敏技术的任何一种检测接触和运动或其中断,触敏技术包括但不限于电容性、电阻性、红外和表面声波技术,以及用于确定与接触表面1446接触的一个或多个点的其他接近传感器阵列或其他元件。
161.一个或多个其他输入控制器1444可耦接到其他输入/控制设备1448,诸如一个或多个按钮、摇臂开关、拇指滚轮、红外端口、usb端口和/或指针设备(诸如触笔)。一个或多个按钮(未示出)可包括用于扬声器1428和/或麦克风1430的音量控制的增大/减小按钮。
162.在一种具体实施中,将按钮按下第一持续时间能够解除触摸表面1446的锁定;并且将按钮按下比第一持续时间长的第二持续时间能够打开或关闭计算设备1400的电源。将按钮按下第三持续时间能够激活语音控制或语音命令、使用户能够向麦克风1430中说出命令的模块,以使得设备执行所说的命令。用户能够自定义一个或多个按钮的功能。例如,还可以使用触摸表面1446实现虚拟或软按钮和/或键盘。
163.计算设备1100可包括dfr 1180。dfr 1180可包括触敏显示器、显示器控制器、触摸输入控制器和/或被配置为显示gui并从用户与gui的交互接收命令的其他硬件。
164.在一些具体实施中,计算设备1400可呈现记录的音频和/或视频文件,诸如mp3、aac和mpeg文件。在一些具体实施中,计算设备1400可包括mp3播放器的功能,诸如ipod
tm
。计算设备1400因此可包括与ipod兼容的36-引脚连接器。也可使用其他输入/输出以及控制设备。
165.存储器接口1402可耦接到存储器1450。存储器1450可包括高速随机存取存储器和/或非易失性存储器,诸如一个或多个磁盘存储设备、一个或多个光学存储设备和/或闪存存储器(例如,nand、nor)。存储器1450可存储操作系统1452,诸如darwin、rtxc、linux、unix、os x、windows或嵌入式操作系统(诸如vxworks)。
166.操作系统1452可包括用于处理基础系统服务以及用于执行硬件相关任务的指令。在一些具体实施中,操作系统1452可以是内核(例如,unix内核)。在一些具体实施中,操作系统1452可包括用于执行语音认证的指令。例如,操作系统1452可实现dfr特征,如参考图1-图13所述。
167.存储器1450还可以存储通信指令1454以促进与一个或多个附加设备、一个或多个计算机和/或一个或多个服务器的通信。存储器1450可包括图形用户界面指令1456以促进图形用户界面处理;促进与传感器相关的处理及功能的传感器处理指令1458;促进与电话
相关的过程和功能的电话指令1460;促进与电子消息处理相关的过程和功能的电子消息指令1462;促进与网页浏览相关的过程和功能的网页浏览指令1464;促进与媒体处理相关的过程和功能的媒体处理指令1466;促进与gnss和导航相关的过程和指令的gnss/导航指令1468;和/或促进与像机相关的过程和功能的相机指令1470。
168.存储器1450可存储dfr管理指令1472以促进其他过程和功能,诸如参考图1-图13所述的dfr过程和功能。
169.存储器1450还可以存储其他软件指令1474,诸如促进与web视频相关的过程和功能的web视频指令;和/或促进与网络购物相关的过程和功能的网络购物指令。在一些具体实施中,媒体处理指令1466分为音频处理指令和视频处理指令,分别用于促进与音频处理相关的过程和功能以及与视频处理相关的过程和功能。
170.上面所识别的指令和应用程序中的每一者可对应于用于执行上述一个或多个功能的指令集。这些指令不需要作为独立的软件程序、进程或模块来实现。存储器1450可包括附加指令或更少的指令。此外,可在硬件和/或软件中,包括在一个或多个信号处理和/或专用集成电路中实现计算设备1400的各种功能。
171.所描述的特征可在能够在可编程系统上执行的一个或多个计算机程序中实现,该可编程系统包括至少一个输入设备、至少一个输出设备以及被耦接以从数据存储系统接收数据和指令并且将数据和指令发送到数据存储系统的至少一个可编程处理器。计算机程序是在计算机中可以直接或间接使用以执行某种活动或者产生某种结果的指令集。计算机程序可以包括编译和解释语言在内的任何形式的编程语言(例如,objective-c、java)来编写,并且其可以任何形式部署,包括作为独立程序或者作为模块、组件、子例程或适于在计算环境中使用的其他单元。
172.例如,用于执行指令的程序的合适处理器可包括通用微处理器和专用微处理器两者,以及任何类型的计算机的多个处理器或内核中的一者或者唯一的处理器。一般来讲,处理器可从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的基本元件可包括用于执行指令的处理器和用于存储指令和数据的一个或多个存储器。一般来讲,计算机还可包括用于存储数据文件的一个或多个海量存储设备,或者计算机操作地耦接以与用于存储数据文件的一个或多个海量存储设备通信;此类设备包括磁盘诸如内部硬盘和可移动磁盘;磁光盘;以及光盘。适于明确具体化计算机程序指令和数据的存储设备可包括所有形式的非易失性存储器,例如包括半导体存储器设备诸如eprom、eeprom和闪存存储器设备;磁盘,诸如内部硬盘和可移动磁盘;磁光盘;以及cd-rom和dvd-rom盘。处理器和存储器可由asic(专用集成电路)补充,或者被并入asic中。
173.为了提供与用户的交互,这些特征可以在具有用于向用户显示信息的显示设备以及用户可用来向计算机提供输入的键盘和指向设备的计算机上实现,该显示设备为诸如crt(阴极射线管)或lcd(液晶显示器)监视器,该指向设备为诸如鼠标或轨迹球。
174.这些特征可在计算机系统中实现,该计算机系统包括后端部件诸如数据服务器或者该计算机系统包括中间件部件诸如应用程序服务器或互联网服务器,或者该计算机系统包括前端部件诸如具有图形用户界面或互联网浏览器的客户端计算机或者它们的任意组合。系统的部件可通过任何形式的数字数据通信(诸如通信网络)或该数字数据通信的介质被连接。通信网络的示例包括例如lan、wan,以及形成互联网的计算机和网络。
175.计算机系统可包括客户端和服务器。客户端和服务器一般可以是相互远离的,并且通常可通过网络进行交互。客户端和服务器的关系可借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。
176.可使用api来实现所公开的实施方案的一个或多个特征或步骤。api可定义在调用应用程序和提供服务、提供数据或者执行操作或计算的其他软件代码(例如,操作系统、库例行程序、函数)之间传递的一个或多个参数。
177.api可实现为程序代码中的一个或多个调用,这些调用基于在api规范文档中所定义的调用约定通过参数列表或其他结构来发送或接收一个或多个参数。参数可为常数、键、数据结构、对象、对象类、变量、数据类型、指针、数组、列表或者另一个调用。api调用和参数可在任何编程语言中实现。编程语言可定义编程者将用以访问支持api的功能的词汇和调用约定。
178.在一些具体实施中,api调用可向应用程序报告设备运行应用程序的能力,诸如输入能力、输出能力、处理能力、功率能力、通信能力等。
179.尽管上文已描述了各种实施方案,但应当理解,它们仅是通过举例的方式而非限制的方式来呈现的。在不脱离实质和范围的情况下可在形式和细节上对其作出各种改变,这对相关领域中的技术人员将是显而易见的。事实上,在阅读以上说明书之后,如何实现替代实施方案对于相关领域的技术人员而言将是显而易见的。
180.此外,应当理解,强调功能和优点的任何数字仅用作示例呈现。所公开的方法和系统各自为足够灵活和可配置的,使得它们可以除所示方式之外的方式进行利用。
181.虽然术语“至少一个”通常可用于说明书、权利要求书和附图中,但术语“一个”、“该”、“所述”等也表示说明书、权利要求书和附图中的“至少一个”或“所述至少一个”。
182.最后,申请人的意图是,仅包括表达语言“用于
……
的装置”或“用于
……
的步骤”的权利要求在35u.s.c.112(f)下解释。未明确包括短语“用于
……
的装置”或“用于
……
的步骤”的权利要求不应在35u.s.c.112(f)下解释。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献