扩展主机设备的功能转让专利

申请号 : CN201810796765.9

文献号 : CN109101335B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 文森特·迪罗

申请人 : 谷歌有限责任公司

摘要 :

本申请涉及扩展主机设备的功能。呈现了一种用于扩展主机设备的功能的系统、存储至少一种程序的计算机可读介质以及计算机实施方法。主机设备上的第一应用被执行,其中,所述第一应用被配置成在第二设备上执行,并且被配置成使用在第二设备上可用的功能,并且其中,该功能未被包含在主机设备中。从第一应用接收使用在第二设备上可用的功能的请求,其中,第一应用并不知晓第二设备的功能。通过至少一个网络建立至第二设备的连接。通过至少一个网络促进在第一应用和第二设备之间的通信,以将在第二设备上可用的功能提供给第一应用。

权利要求 :

1.一种用于扩展主机设备的功能的计算机实施方法,所述方法在所述主机设备上被执行,所述主机设备具有至少一个处理器以及存储至少一个第一程序的存储器,所述至少一个第一程序用于由所述主机设备的所述至少一个处理器执行以执行所述方法,所述方法包括:由所述主机设备确定在所述主机设备处不可用但由多个计算设备提供的多媒体输入/输出或传感器功能,其中,所述多个计算设备中的每个计算设备具有至少一个处理器和存储至少一个第二程序的存储器,所述至少一个第二程序用于由相应计算设备的至少一个处理器执行以在相应计算设备处提供所述多媒体输入/输出或传感器功能;

经由一个或多个网络将所述主机设备与所述多个计算设备配对;

从所述主机设备上的第一应用接收使用所述多媒体输入/输出或传感器功能的请求,其中,所述第一应用不知晓所述多个计算设备的功能;以及响应于从所述第一应用接收到的请求:从所述多个计算设备中识别第一计算设备来实现所述多媒体输入/输出或传感器功能;

通过所述一个或多个网络建立至所述第一计算设备的连接;以及通过所述一个或多个网络促进所述第一应用与所述第一计算设备之间的通信,以提供由所述第一计算设备的至少一个处理器根据所述至少一个第二程序执行的所述多媒体输入/输出或传感器功能的输出。

2.根据权利要求1所述的计算机实施方法,其中,所述主机设备与所述多个计算设备中的每个计算设备是在这些设备第一次彼此连接的时候被配对的。

3.根据权利要求1所述的计算机实施方法,其中,所述主机设备与所述多个计算设备中的每个计算设备是经由与所述主机设备和所述多个计算设备不同的服务器来配对并与彼此通信的。

4.根据权利要求1所述的计算机实施方法,其中,通过所述一个或多个网络促进在所述第一应用和所述第一设备之间的通信包括:为所述主机设备和所述第一设备提供进程间通信信道。

5.根据权利要求1所述的计算机实施方法,其中,所述主机设备包括第一应用框架,并且所述第一设备包括第二应用框架,其中,所述第一应用框架和所述第二应用框架是不同的应用框架。

6.根据权利要求1所述的计算机实施方法,其中,所述主机设备和所述第一设备连接至局域网,并且其中,通过所述一个或多个网络建立至所述第一设备的所述连接包括:通过所述局域网建立至所述第一设备的连接。

7.根据权利要求1所述的计算机实施方法,其中,所述主机设备被连接至第一网络,并且所述第一设备被连接至第二网络,并且其中,通过所述一个或多个网络建立至所述第一设备的所述连接包括:通过所述第一网络和所述第二网络建立至所述第一设备的连接。

8.根据权利要求1至7中的任一项所述的计算机实施方法,其中,所述第一设备的功能包括从由下列所组成的组选择的功能:确定所述第一设备的位置;

拨打电话;

进行视频通话;

拍照;

记录音频;

记录视频;

从用户接收输入;

从所述第一设备的传感器接收传感器测量;以及发送文本消息。

9.根据权利要求1至7中的任一项所述的计算机实施方法,其中,所述第一设备的功能包括从下列所组成的组选择的硬件功能:卫星定位设备;

移动电信设备;

相机;

麦克风;

扬声器;

显示设备;以及

输入设备。

10.根据权利要求1至7中的任一项所述的计算机实施方法,其中,所述主机设备包括电视机顶盒和电视机中的至少一个。

11.根据权利要求1至7中的任一项所述的计算机实施方法,其中,所述第一应用不在所述第一设备上被执行。

12.根据权利要求1至7中的任一项所述的计算机实施方法,进一步包括:在所述主机设备上呈现用户接口,所述用户接口使得用户能够选择所述多个计算设备中的一个计算设备来提供所需的多媒体输入/输出或传感器功能;以及接收在所述用户接口上的对所述第一计算设备的用户选择。

13.一种用于扩展主机设备的功能的系统,包括:至少一个处理器;

存储器;以及

在所述存储器中存储的并且可由所述至少一个处理器执行的至少一个第一程序,所述至少一个第一程序包括用于实现根据权利要求1至7中的任一项所述的方法的指令。

14.根据权利要求13所述的系统,其中,所述第一设备的功能包括从下列所组成的组所选择的功能:确定所述第一设备的位置;

拨打电话;

进行视频通话;

拍照;

记录音频;

记录视频;

从用户接收输入;

从所述第一设备的传感器接收传感器测量;以及发送文本消息。

15.根据权利要求13所述的系统,其中,所述第一设备的功能包括从下列所组成的组所选择的硬件功能:卫星定位设备;

移动电信设备;

相机;

麦克风;

扬声器;

显示设备;以及

输入设备。

16.一种非暂时性计算机可读存储介质,存储用于由计算机系统的至少一个处理器执行的至少一个第一程序,所述至少一个第一程序包括用于实现根据权利要求1至7中的任一项所述的方法的指令。

17.根据权利要求16所述的非暂时性计算机可读存储介质,其中,所述第一设备的功能包括从由下列所组成的组选择的功能:确定所述第一设备的位置;

拨打电话;

进行视频通话;

拍照;

记录音频;

记录视频;

从用户接收输入;

从所述第一设备的传感器接收传感器测量;以及发送文本消息。

18.根据权利要求16所述的非暂时性计算机可读存储介质,其中,所述第一设备的功能包括从由下列所组成的组选择的硬件功能:卫星定位设备;

移动电信设备;

相机;

麦克风;

扬声器;

显示设备;以及

输入设备。

说明书 :

扩展主机设备的功能

[0001] 分案说明
[0002] 本申请属于申请日为2013年8月29日的中国发明专利申请No.201380056098.6的分案申请。

技术领域

[0003] 本公开的实施例总体上涉及扩展(augment)主机设备的功能。

背景技术

[0004] 电子设备通常包括一组固定的本机功能。例如,数字电视机顶盒包括接收并解码数字电视信号的功能,但是不包括使用蜂窝电话网络拨打电话的功能。智能电话包括使用蜂窝网络拨打电话的功能,但是不包括接收并解码数字电视信号的功能。利用第二设备的功能扩展第一设备的功能,将是期望的。

附图说明

[0005] 在附图中,仅通过示例而非限定性方式,示出此处公开的实施例。在全部附图中,相同参考符号指代相对应的部件。
[0006] 图1是图示根据一些实施例的网络系统的框图。
[0007] 图2A是图示根据一些实施例的将一个设备与主机设备配对的示例过程的框图。
[0008] 图2B是图示根据一些实施例的促进在主机设备上执行的应用和在一个设备上可用的功能之间的通信的示例过程的框图。
[0009] 图3A是图示根据一些实施例的经由服务器将一个设备与主机设备配对的示例过程的框图。
[0010] 图3B是图示根据一些实施例的促进在主机设备上执行的应用和在设备上可用的功能之间的通信的另一示例过程的框图。
[0011] 图4是图示根据一些实施例的主机设备的框图。
[0012] 图5是图示根据一些实施例的服务器的框图。
[0013] 图6是图示根据一些实施例的设备的框图。
[0014] 图7是根据一些实施例的用于扩展主机设备的功能的方法的流程图。
[0015] 图8是根据一些实施例用于将设备与主机设备配对的方法的流程图。
[0016] 图9根据一些实施例,用于接收对包含未在主机中包含的功能的设备的选择的方法的流程图。

具体实施方式

[0017] 此处描述的实施例提供了用于扩展主机设备功能的技术。在一些实施例中,在主机设备上的第一应用被执行,其中,第一应用被配置成在第二设备上执行,并且被配置成使用在第二设备上可用的功能,并且其中,该功能未被包含在主机设备中。然后,从第一应用接收使用在第二设备上可用的功能的请求,其中,第一应用并不知晓第二设备的功能。通过至少一个网络建立至第二设备的连接,并且通过该至少一个网络促进在第一应用和第二设备之间的通信,以将在第二设备上可用的功能提供给第一应用。
[0018] 图1是根据一些实施例的图示网络系统100的框图。网络系统100包括主机设备104,主机设备104耦合至显示设备102。主机设备104被配置成在显示设备102上显示内容。
网络系统100包括网络120。网络120通常可以包括能够将计算节点耦合在一起的任何类型的有线或无线通信信道。这包括,但不限于,局域网、广域网或者网络的组合。在一些实施例中,网络120包括互联网。
[0019] 在一些实施例中,主机设备104经由网络120被耦合至设备106。在一些实施例中,主机设备104经由网络121被耦合至设备106。在这些实施例中,网络121不同于网络120。例如,网络121可以是局域网(例如,Wi-Fi网络、蓝牙网络、蜂窝网络等)并且网络120可以是广域网(例如,互联网)。在一些实施例中,主机设备104被耦合至服务器110。
[0020] 在一些实施例中,主机设备104包括计算机系统。例如,计算机系统可以包括,但不限于,膝上型计算机系统、台式计算机系统、移动电话、智能电话、平板计算机系统、个人数字助理或者服务器。在一些实施例中,主机设备104包括电视机顶盒。在一些实施例中,主机设备104包括电视机。在一些实施例中,主机设备104经由网络(例如,有线网络、无线网络等)被耦合至显示设备102。在一些实施例中,主机设备104经由外围线缆(例如,USB线缆、HDMI线缆、DVI线缆等)被耦合至显示设备102。
[0021] 在一些实施例中,设备106是计算机设备。例如,计算机系统可以包括,但不限于,膝上型计算机系统、台式计算机系统、移动电话、智能电话、平板计算机系统、个人数字助理、或服务器。在一些实施例中,设备106包括电视机顶盒。在一些实施例中,设备106包括电视机。在一些实施例中,设备106包含电视接收或无线电接收功能或两者。在一些实施例中,电视接收包括但不限于通过线缆、卫星、光纤或广播电视(无线电波)的接收。无线电接收包括但不限于通过无线电波、线缆、卫星或光纤的接收。
[0022] 在一些实施例中,主机设备104执行应用,这些应用被配置成在设备106上执行,并且被配置成使用在设备106上可用的功能,但其不被包含在主机设备104上(或不可用)。在这些实施例中,应用被设计、编程(例如,编码)或以其他方式配置成在设备106上而非在主机设备104上被执行。因此,这些应用可以在设备106上被执行,但如果没有此处所描述的这些实施例,则不可在主机设备104上被执行。例如,考虑使用设备的内嵌式相机拍照的相机应用。假定该相机应用被配置(设计、编程、编码等)成在设备106上执行,其包括内嵌式相机,但相机应用未被配置(设计、编程、编码等)成在主机设备104上执行,其不包括内嵌式相机。尽管缺少内嵌式相机,此处所描述的实施例扩展了主机设备104的功能,并且允许主机设备104执行该相机应用,并且利用设备106的内嵌式相机。此外,此处所描述的实施例允许主机设备104在不对相机应用进行修改的情况下执行相机应用。例如,相机应用可以被编译成字节码(例如,JAVA字节码),其在虚拟机上执行,该相机应用可以脚本语言(例如,TCL、PERL)编写,其在运行期被翻译,或者相机应用可以被编译为在特定操作系统内可执行(例如,Android OS、Chrome OS、iOS、MacOS、Microsoft Windows等)。下文将参考图2A、2B、3A、3B和7-9,更具体地描述扩展主机设备的功能的过程。
[0023] 在一些实施例中,主机设备104经由网络120从服务器110获取在显示设备102上显示的内容。例如,主机设备104可以获取在服务器110上托管的视频(例如,电影、电视节目等)。网络120可以通常包括能够将计算节点耦合在一起的任何类型的有线或无线通信信道。这包括,但不限于局域网、广域网或者网络的组合。在一些实施例中,网络120包括互联网。
[0024] 在一些实施例中,主机设备104从内容源112获取待在显示设备102上显示的内容。内容源112包括,但不限于,流送媒体服务、视频点播服务、无线电视服务、有线电视服务、卫星电视服务和/或网际协议电视服务。在一些实施例中,主机设备104经由网络120被耦合至内容源112。在一些实施例中,主机设备104被耦合至为主机设备104提供对内容源112的接入的媒介设备(例如,经由无线电视服务、有线电视服务、卫星电视服务)。
[0025] 应注意的是,虽然图1示出了用于主机设备104、设备106和服务器110以及内容源112中的每个的一个实例,但多个主机设备、设备、服务器以及内容源可以存在于网络系统
100中。而且,应注意的是,服务器110和内容源112中的每个可以包括多个分布式服务器。多个分布式服务器可以提供负载平衡和/或可以提供对附近计算机系统的低时延接入点。分布式服务器可以位于单一位置(例如,数据中心、建筑物等),或者可以在地理上分布于多个位置(例如,在各个地理位置的数据中心等)。而且,应注意的是,虽然此处所描述的实施例指的是主机设备104、设备106、服务器110和内容源112,但这些实施例可以应用于多个主机设备、设备、服务器和内容源。
[0026] 图2A是图示根据一些实施例的将一个设备与一个主机设备配对的示例过程的框图200。如图2A中所示,主机设备104包括配对模块202、增强功能模块204、应用206、本机功能208和设备数据库210。配对模块202处理主机设备104和设备106之间的配对操作(例如,将主机设备104与设备106配对/关联,将设备106与主机设备104解除配对/解除关联等的操作),并且促进主机设备104和设备106之间的通信。本机功能208可以包括硬件功能(例如,传感器、内嵌式相机等)和/或软件功能(例如,软件、应用、微件等)。应用206是需要以下功能的应用,即,该功能在主机104的本机功能208中未包含,但是该功能被包含在设备106的本机功能226中。增强功能模块204扩展了主机设备104的本机功能208,使得主机功能104可以执行应用206,如本文所述。设备数据库210包括涉及当前与主机设备104配对(或者先前已经与之配对)的设备的信息以及这些设备的对应的功能的信息。
[0027] 设备106包括配对模块222、增强功能模块224和本机功能226。配对模块222处理主机设备104和设备106之间的配对操作(例如,将主机设备104和设备104配对/关联,将设备106与主机设备104解除配对/解除关联的操作等)并且促进在主机设备104和设备106之间的通信。本机功能226可以包括硬件功能(例如,传感器、内嵌相机等)和/或软件功能(例如,软件、应用、微件等)。增强功能模块224促进了通过其他设备对设备106的本机功能226的接入。
[0028] 在图2A所示的示例过程中,设备106的配对模块222发出与主机设备104配对的请求230。主机设备104的配对模块202接收该请求230,并且发起与设备106的配对操作232。应注意的是,配对操作将两个设备联系起来。配对操作通常在这些设备彼此首次连接的时候完成。一旦两个设备已经彼此建立了联系,这些设备可以建立与彼此的连接,而不必再次执行配对操作。也应注意的是,将两个设备彼此配对的操作不意味着在两个设备之间存在活动的连接。例如,主机设备104和设备106可以因为先前的配对操作而彼此联系在一起,但是在主机设备104和设备106之间可能不存在活动的连接,因为设备106被关断或者处于主机设备104的范围以外。
[0029] 在配对操作232期间(或替代地,在配对操作已经完成以后),配对模块222将设备信息234传输至主机设备104。设备信息234包括涉及设备106的本机功能226的信息。配对模块202在与设备106相关联的设备数据库210中的一个或多个记录中存储设备信息234。
[0030] 如图2B所示,在应用206的执行期间,增强功能模块204从应用206接收请求236,请求对于未包含在主机设备104的本机功能206中的功能的接入。增强功能模块2-4查询设备数据库210以确定当前与主机设备104配对的设备是否包含由应用206所请求的功能。在这个示例中,增强功能模块204确定由应用206所请求的功能被包含在设备106的本地功能中。响应于该确定,增强功能模块204向配对模块202发出请求,以建立至设备106的连接238。主机设备104的配对模块202和设备106的配对模块222在主机设备104和设备106之间建立连接238。使用网络120和/或网络121,可以建立连接238。配对模块202和222经由连接238,促进主机设备104的增强功能模块204和设备106的增强功能模块224之间的数据和/或命令
240的通信。应用206使用连接238来接入应用206所请求的设备106的功能。这样一来,利用设备106的功能,扩展了主机设备104的功能。
[0031] 在图2A和2B所示的示例过程中,主机设备104和设备106通过至少一个网络彼此连接,而没有促进主机设备104和设备106之间通信的任何介入的计算机系统。在一些实施例中,服务器110促进主机设备104和设备110之间的通信。这些实施例在图3A和3B中被图示。
[0032] 图3A是图示根据一些实施例的经由服务器110将设备106与主机设备104配对的示例过程。如图3A所示,服务器110包括配对模块302和设备数据库304。配对模块302促进主机设备104和设备106之间的配对操作(例如,将主机设备104与设备106配对/关联的操作,将设备106与主机设备106解除配对/解除关联的操作等),并且促进主机设备104和设备106之间的通信。设备304包括涉及当前与主机设备104配对(或者先前已经配对)的设备以及这些设备的对应的功能的信息。应注意的是,设备数据库304可以包括涉及当前与其他主机设备配对(或者先前已经配对)的设备以及这些设备的对应的功能的信息。换言之,服务器110可以促进多个主机设备和设备之间的配对操作和通信。
[0033] 在图3A所示的示例过程中,设备106的配对模块222将请求310发出至服务器110,请求服务器110促进设备106和主机设备104之间的配对操作。服务器110的配对模块302接收请求310,并且将请求311发出至主机设备104,请求主机设备104经由服务器110发起与设备106的配对操作。响应于请求311,主机设备104的配对模块202经由服务器110发起与主机设备的配对操作312。服务器110的配对模块302促进主机设备104和设备106之间的配对操作312。例如,配对模块302可以促进(例如,转发)涉及在主机设备104和设备106之间数据和/或命令的数据和/或命令。在配对操作312期间(或替代地,在配对操作312已经完成后),配对模块222经由服务器110将设备信息264传输至主机设备104。如上文所述,设备信息264包括涉及设备106的本地功能226的信息。服务器110的配对模块302在与设备106相关联的设备数据库304中存储一个或多个记录。类似的是,配对模块202在与设备106相关联的设备数据库210中的一个或多个记录中存储设备信息264。
[0034] 如图3B所示,在应用206的执行期间,增强功能模块204从应用206接收请求336,请求接入未在主机设备104的本机功能208中包含的功能。增强功能模块204请求设备数据库210确定当前与主机设备104配对的设备是否包含由应用206所请求的功能。在这个示例中,增强功能模块204确定由应用206所请求的功能被包含在设备106的本机功能226中,设备
106已经经由服务器110与主机设备104配对。响应于该确定,增强功能模块204向配对模块
202发出请求,以经由服务器110建立与设备106的连接。主机设备104的配对模块202和服务器110的配对模块222在主机设备104和服务器110之间建立连接320。设备110的配对模块
302和设备106的配对模块222在服务器110和设备106之间建立连接322。连接320和322可以使用网络120和/或网络121建立。配对模块202、302和222经由连接320和322,促进在主机设备104的增强功能模块204和设备106的增强功能模块224之间的数据和/或命令330的通信。
应用206使用连接320和322以接入由应用206所请求的设备106的功能。这样一来,利用设备
106的功能扩展了主机设备104的功能。
[0035] 图4是图示根据一些实施例的主机设备104的框图。主机设备104通常包括用于执行程序(例如,在存储器410中存储的程序)的一个或多个处理单元(CPU,有时被称为处理器)402、一个或多个网络或其他通信接口404、存储器410、和用于这些组件互连的一个或多个通信总线409。通信总线409可以包括电路系统(有时被称为芯片集),其互连并且控制系统组件之间的通信。主机设备104包含用户接口405,其包括显示设备102和输入设备408(例如,键盘、鼠标、触摸屏、键区等)。主机设备104也包含一个或多个硬件功能430(例如,加速计、磁力计、温度传感器、内嵌相机、麦克风、扬声器、输入设备等)。存储器410包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备;以及通常包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备或其他非易失性固态存储设备。存储器410可选地包括与CPU 402远程定位的一个或多个存储设备。存储器410,或者替代地,在存储器410内的非易失性设备,包括非临时性计算机可读存储介质。在一些实施例中,存储器410或存储器410的计算机可读介质存储下列程序、模块和数据结构、或其子集:
[0036] ●操作系统412,其包括用于处理各种基础系统服务和用于执行依赖于硬件任务的流程;
[0037] ●通信模块414,其被用于经由一个或多个通信接口(有线或无线)和诸如互联网、其他广域网、局域网、城域网等的一个或多个通信网络,将主机设备104连接至其他计算机;
[0038] ●用户接口模块416,其经由输入设备408从用户接收命令,并且在显示设备406中生成用户接口对象;
[0039] ●配对模块202,其处理配对操作,并且促进主机设备104和其他设备(例如,设备106、服务器110等)之间的通信,如本文所述;
[0040] ●增强功能模块204,其扩展主机设备104的本机功能208,使得主机设备104可以执行应用(例如,需要未包含在主机设备104的本机功能208中的功能的应用206),如本文所述;
[0041] ●应用206,其需要未包含在主机设备104中的本机功能208中但是包含在另一设备的本机功能中的功能(例如,设备106的本机功能226),如本文所述;
[0042] ●主机设备104的本机功能208(例如,软件功能、硬件功能430等),如文本所述;
[0043] ●设备数据库,其包括涉及当前与主机设备104配对(或者先前已经配对)的设备以及这些设备的对应功能的信息,如本文所述。
[0044] 在一些实施例中,上述识别的程序或模块对应于用于执行上文所描述功能的指令集合。这些指令集合可以由一个或多个处理器(例如,CPU 402执行)。上述识别的模块或程序(即,指令集合)不需要被实现为单独的软件程序、流程或模块,因此这些程序或模块的各个子集在各个实施例中可以被组合或以其他方式重新布置。在一些实施例中,存储器410存储上述识别的模块和数据结构的子集。此外,存储器410可以存储上文未描述的另外模块和数据结构。
[0045] 虽然图4示出了“主机设备”,但图4较之作为此处所描述实施例的结构性示意图,更是作为在主机设备中可能存在的各种特征的功能描述。在实践中,如本领域的普通技术人员所承认的,单独示出的项目可以组合,并且一些项目可以被分离。
[0046] 图5是图示根据一些实施例的服务器110的框图。服务器110通常包含用于执行程序(例如,在存储器510中存储的程序)的一个或多个处理单元(CPU,有时被称为处理器)502、一个或多个网络或其他通信接口504、存储器510、以及用于互连这些组件的一个或多个通信总线509。这些通信总线509可以包括电路系统(有时称为芯片),其互连并且控制系统组件之间的通信。服务器110可选地包括(但一般不包括)用户接口505,其包括显示设备
506和输入设备508(例如,键盘、鼠标、触摸屏、键区等)。存储器510包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备;并且通常包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备或其他非易失性固态存储设备。存储器510可选地包括从CPU 502远程定位的一个或多个存储设备。存储器510,或者替代地在存储器510内的非易失性存储器设备,包括非临时性计算机可读存储介质。在一些实施例中,存储器510或者存储器510的计算机可读存储介质存储下列程序、模块和数据结构,或者其子集:
[0047] ●操作系统512,其包含用于处理各种基本系统服务和用于执行依赖于硬件任务的流程;
[0048] ●通信模块514,其用于经由一个或多个通信接口504(有线或无线)以及诸如互联网、其他广域网、局域网、城域网等的一个或多个通信网络,将服务器110连接至其他计算机;
[0049] ●可选用户接口模块516,其经由输入设备508从用户接收命令,并且在显示设备506中生成用户接口对象;
[0050] ●配对模块302,其促进在服务器110和设备(例如,主机设备104、设备106)之间的配对操作和通信,如本文所描述的;以及
[0051] ●设备数据库304,其包括涉及当前与主机设备(例如,主机设备104)配对(或先前已经配对)的设备和这些设备的对应的功能的信息,如文本所描述的。
[0052] 在一些实施例中,上文识别的程序和模块对应于用于执行上文所描述功能的功能集合。这些功能集合可以由一个或多个处理器(例如,CPU 502)执行。上述识别的模块或程序(即,指令集合)不需要被实施为单独的软件程序、流程或模块,因此,这些程序或模块的各个子集在各个实施例中可以被组合或以其他方式被布置。在一些实施例中,存储器510存储上文所识别的模块和数据结构的子集。此外,存储器510可以存储上文未描述的另外模块和数据结构。
[0053] 虽然图5示出了“服务器”,图5是本文所描述的实施例的结构性示意图,但更是对在一组服务器中可能存在的各种特征的功能描述。在实践中,并且如本领域的普通技术人员所承认的,单独示出的项目可以被组合,并且一些项目可以被分离。例如,在图5中单独示出的一些项目可以在单一服务器上被实施,并且单一项目可以由一个或多个服务器实施。用于实施服务器的实际服务器数目以及特征如何在它们之间分配将根据实施例而变化,并且可以部分地取决于系统在高峰使用时段以及在平均使用时段期间必须处理的数据业务量。
[0054] 图6是根据一些实施例的图示设备106的框图。设备106通常包括用于执行程序(例如,在存储器610中存储的程序)的一个或多个处理单元(CPU,有时也称为处理器)602、一个或多个网络或其他通信接口604、存储器610、以及用于互连这些组件的一个或多个通信总线609。通信总线609可以包括电路系统(有时被称为芯片),其互连并控制系统组件之间的通信。设备106包括用户接口605,其包括显示设备606和输入设备608(例如,键盘、鼠标、触摸屏、键区等)。主机设备104也包括一个或多个硬件功能630(例如,加速计、磁力仪、温度传感器、内嵌相机、麦克风、扬声器、输入设备等)。存储器610包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备;并且通常包括非易失性存储器,诸如一个或多个磁盘存储设备,光盘存储设备,闪存设备,或其他非易失性固态存储设备。存储器610可选地包括从CPU 602远程定位的一个或多个存储设备。存储器610或替代地在存储器610内的非易失性存储器设备,包括非临时性可读存储介质。在一些实施例中,存储器610或存储器610的计算机可读存储介质存储下列程序、模块和数据结构、或其子集:
[0055] ●操作系统612,其包括用于处理各种基础系统服务和用于执行依赖硬件任务的流程;
[0056] ●通信模块614,其用于经由该一个或多个通信接口604(有线或无线)以及诸如互联网、其他广域网、局域网、城域网等的一个或多个通信网络,将设备106连接至其他计算机;
[0057] ●用户接口模块616,其经由输入设备608从用户接收命令,并且在显示设备606中生成用户接口对象;
[0058] ●配对模块222,其处理配对操作,并且促进设备106和其他设备之间的通信(例如,主机设备104和服务器110等),如本文所描述的;
[0059] ●增强功能模块224,其促进由其他设备(例如主机设备104、服务器110等)对于设备106的本机功能226的接入,如本文所描述的;以及
[0060] ●设备106的本机功能226(例如,软件功能、硬件功能630等),如本文所描述的。
[0061] 在一些实施例中,上文所识别的程序或模块对应于用于执行上文所描述功能的指令集合。这些指令集合可以由一个或多个处理器(例如,CPU 602)执行。上文所描述的模块或程序(即,指令集合)不需要被实施为单独的软件程序、流程或模块,因此这些程序或模块的各个子集在不同实施例中可以被组合或以其他方式重新布置。在一些实施方式中,存储器610存储上文所识别的模块和数据结构的子集。此外,存储器610可以存储上文未描述的另外模块和数据结构。
[0062] 虽然图6示出了“设备”,但图6是对本文所描述的实施例的结构性示意图,更是对在设备中可能存储的各种特征的功能描述。在实践中,如本领域的普通技术人员所承认的,单独示出的项目可以被组合,并且一些项目可以被分离。
[0063] 扩展主机设备的功能
[0064] 图7是根据一些实施例的用于扩展主机设备104的方法700的流程图。主机设备104执行(702)第一应用,其中第一应用(例如,应用206)被配置成在第二设备(例如,设备106)上执行,并且被配置成使用在第二设备上可用、但是其未被包含在主机设备104内的功能。在一些实施例中,主机设备104包括第一应用框架,并且第二设备包括第二应用框架,其中,第一应用框架和第二应用框架是不同的应用框架。应注意的是,应用框架提供对于特定开发环境(例如,操作系统、web应用等)的标准应用结构。在一些实施例中,不在第二设备上执行第一应用。
[0065] 在一些实施例中,第二设备的功能包括从由以下所组成的组所选择的功能:确定第二设备的位置、拨打电话、进行视频通话、拍摄超片、录制音频(例如,用于语音控制、音乐识别等)、录制视频、从用户接收输入(例如,经由第二设备的输入设备-键盘、触摸键区等)、从第二设备的传感器(例如,陀螺仪、加速计、磁力仪、温度传感器、光传感器、接近传感器等)接收传感器测量、以及发送文本消息。
[0066] 在一些实施例中,第二设备功能包括从由以下所组成的组所选择的硬件功能:卫星定位设备(例如,GPS接收器等)、移动电信设备(例如,蜂窝无线电台、卫星无线电台等)、相机(例如,视频相机、静态相机等)、麦克风、扬声器、显示设备和输入设备(例如,指示设备、键盘、触摸屏等)。
[0067] 增强功能模块204从第一应用接收(704)使用在第二设备上可用的功能的请求。在一些实施例中,第一应用并不知晓第二设备的功能。换言之,虽然第一应用已经被配置成在第二设备上执行,并且可能要求使用第二设备的功能,但是第二设备的功能不被传送到该应用本身。事实上,第一应用并不知晓第二设备被连接(例如,与其配对)至主机设备104,并且被用于提供第一应用已经从主机设备104所请求的功能。换言之,当第一应用做出使用在第二设备上可用的功能的请求时,第一应用假定主机设备104包括该功能。增强功能模块204隐藏连接至第二设备的复杂性,以接入该应用正在请求的功能。
[0068] 配对模块202通过至少一个网络,建立(706)至第二设备的连接。在一些实施例中,当主机设备和第二设备被连接至局域网(例如,Wi-Fi网络、蓝牙网络等)时,配件模块202通过局域网建立至第二设备的连接。在一些实施例中,当主机设备连接到第一网络(例如,局域网等)并且第二设备连接至第二网络(例如,蜂窝网络)时,配对模块202通过第一网络和第二网络建立至第二设备的连接。
[0069] 在一些实施例中,响应于主机设备确定该主机设备需要在该主机设备上不可用的资源,第二设备与主机设备配对。因此,主机设备不与第二设备配对,直到其需要另外的功能。在一些实施例中,在特定资源被请求之前,第二设备与主机设备配对。例如,当主机设备检测到新设备时,在任何特定资源被请求之前,主机设备与新检测到的第二设备配对。
[0070] 配对模块202通过至少一个网络促进(708)在第一应用和第二设备之间的通信(例如,数据和/或命令240、数据和/或命令330),以将在第二设备上可用的功能提供给第一应用。在一些实施例中,配对模块202通过为主机设备104和第二设备提供进程间通信信道,通过该至少一个网络促进第一应用和第二设备之间的通信。
[0071] 在一些实施例中,在从第一用用接收使用在第二设备上可用的功能的请求之前,第二设备与主机设备104配对。图8是根据一些实施例的用于将一个设备与主机设备配对的方法800的流程图。配对模块202将第二设备与主机设备104配对(802)。然后,增强功能模块204识别(804)第二设备的功能。例如,增强功能模块204可以从第二设备接收涉及第二设备的功能的信息。在另一示例中,增强功能模块204可以使用第二设备的设备标识符(例如,第二设备的MAC地址、第二设备的序列号等)查询设备数据库210,以获取涉及第二设备的功能的信息。
[0072] 在一些实施例中,在从第一应用接收使用在第二设备上可用的功能的请求之前,增强功能模块204接收包括主机设备104中未包含的功能的设备选择。图9是根据一些实施例的用于接收包括主机设备104中未包含的功能的设备选择的方法900的流程图。增强功能模块204识别(902)与主机设备104配对并且主机设备可访问的多个设备,所述多个设备包括第二设备。应注意的是,当将各个设备连接到与主机设备104相同的网络(例如,Wi-Fi网络、蓝牙网络等)和/或通过多个网络连接到主机设备104时,各个设备对于主机设备104是可接入的。增强功能模块204在主机设备104的用户接口中(例如,显示设备102)呈现(904)多个设备。然后,增强功能模块204接收(906)对所述多个设备中的第二设备的选择。例如,经由输入设备408从主机设备104的用户接收选择。在一些实施例中,增强功能模块204从多个设备中自动建议第二设备,其中,建议的第二设备是最近选择的第二设备。在一些实施例中,根据请求的特定功能确定建议的第二设备,并且建议用于具体请求功能的最近选择的第二设备。例如,增强功能模块204呈现多个设备,其中一个设备在视觉上被突出显示。突出显示的设备是从所述多个设备最近选择的设备。替代地,突出显示设备是最近选择用于特定请求功能的设备。
[0073] 应注意的是,尽管上文讨论指的是配对模块202和增强功能模块204执行图7-9所示的操作,但是这些操作可由主机设备104(或任何其他计算机系统)的任何模块(或多个模块)执行。
[0074] 在图7-9中所示的方法可由存储在计算机可读存储介质中并且由主机设备的至少一个处理器执行的指令所管理。图7-9中所示的每项操作可以对应于在非临时性计算机存储器或计算机可读存储介质中存储的指令。在各个实施例中,非临时性计算机可读存储介质包括磁或光盘存储设备、诸如闪存的固态存储设备,或者一个或多个其他非临时性存储器设备。在非临时性计算机可读存储介质上存储的计算机可读指令可以是源代码、汇编语言代码、对象代码或者可以由一个或多个处理器翻译和/或执行的其他指令格式。
[0075] 可以为本文描述为单一实例的组件、操作或结构提供多个实例。最后,在各个组件、操作和数据存储之间的界限在某种程度上是任意的,并且具体操作在特定阐释性配置的情境中示出。预想了其他功能分配,并且可以落入实施例的范围内。总体上,在这些示例配置中呈现为单独组件的结构和功能可以被实施为组合的结构或组件。类似地,被呈现为单一组件的结构和功能可以被实施为单独组件。这些和其他变更、修改、添加和改进落入这些实施例的范围内。
[0076] 也应理解的是,虽然本文可能使用了“第一”、“第二”等的术语来描述各个实施例,但这些元素可能不受这些术语限制。这些术语仅被用于将一个元素与另一个元素区别开。例如,第一接触可以被称为第二接触,并且类似地,第二接触可以被称为第一接触,这改变了描述的含义,只要所有“第一接触”的出现被一致重新命名,并且所有第二接触的出现被一致重新命名。第一接触和第二接触都是接触,但它们是不同的接触。
[0077] 本文所使用的术语仅是为了描述具体实施例,而非意在限定权利要求。如在实施例的描述和随附的权利要求中所使用的,单数形式“一”、“一个”和“该”旨在也包含复数形式,除非上文另有其他明确表述。也应理解的是,文本所使用的“和/或”指的是并且包括关联列表项的一个或多个的所有可能组合。将进一步理解的是,当在本说明书中使用术语“包括”和/或“包含”时,指明了陈述的特征、整数、步骤、操作、元件和/或组件的存在,但是不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组的存在或添加。
[0078] 文本中所使用的术语“如果”可以被解释为根据情境,指“当……时”、“一旦”,或者“响应于确定”,或者“根据确定”,或者“响应于检测到”,陈述的前提条件为真。类似地,根据情境,短语“如果确定(陈述的前提条件为真)”,或者“如果(陈述的前提条件为真)”,或者“当(陈述的前提条件为真)时”,可以被解释为“一旦确定”,或者“响应于确定”,或者“根据确定”,或者“一旦检测到”,或者“响应于检测到”,陈述的前提条件为真时。
[0079] 前述描述包括实施示出的实施例的示例系统、方法、技术、指令序列以及计算机程序产品。出于解释的目的,阐明了许多具体细节,以提供对本发明的各个实施例的理解。然而,对于本领域的技术人员将是显而易见的是,在没有这些具体细节的情况下,可以实施本发明的实施例。总体上,未具体示出公知指令实例、协议、架构和技术。
[0080] 出于解释的目的,已经结合具体实施例进行了前述描述。然而,上文的说明性讨论并非旨在穷尽或将这些实施例限定与公开的精确形式。根据上文的教导,许多修改和变更是可能的。选择和描述这些实施例是为了最好地解释原理和它们的实际应用,以使得本领域的技术人员能够最好地利用这些实施例以及为适应所考虑的特定用途做出各种改变的各种实施例。