在计算设备之间移动信息的制作方法

文档序号:6362210阅读:2545来源:国知局
专利名称:在计算设备之间移动信息的制作方法
技术领域
本文涉及用于从一个计算设备向一个或者多个其它计算设备移动数据的系统和技术。
背景技术
许多人现在拥有从在工作地或者家里的台式或者膝上型计算机到用于回顾数字内容的平板计算机或者平板(slate)到用于移动计算和通信的智能电话的多个不同计算机。计算机用户在这些设备之间频繁转变,例如,在午餐期间将他们的个人计算机留在他们的办公室中并且随身携带 他们的智能电话。有时,计算机用户可能想要从一个设备向另一设备上移动信息。例如,计算机用户可以运用她的台式计算机的能力和方便性以键入即将到来的旅行目的地的地址并且获得去往目的地的指导。为了使信息移动,用户可以打印指导并且在旅途中携带它们。用户也可以拍摄台式计算机的屏幕的图片,并且按照需要在她的移动设备显示器上查看在图片中捕获的地图的图像。备选地,用户可以从浏览器复制用于地图的统一资源定位符(URL)、向发给他自己或者她自己的电子邮件中粘贴URL、发送电子邮件、并且继而用他的或者她的移动设备打开电子邮件并且选择用于该URL的超链接。

发明内容
本文描述提供用于在计算设备之间方便地移动信息的系统和技术。信息可以是第一计算机上的应用的当前状态,从而使得该状态可以在第二计算机上自动重复。在一个这样的示例中,想要重复或者近似另一计算机的状态的一部分的用户可以比如通过使用她的智能电话上的相机来捕获另一计算机的显示器的图像。例如,用户可以已经运用她的台式计算机以生成从她自己的办公室到同事的办公室的驾车指导,并且可能想要在她的智能电话上打开对应地图绘制应用,从而使得她可以在她驾车去往同事的办公室期间随身携带指导。这里描述的技术可以使捕获的图像向被分配给用户的其它活跃(登录的)设备中的每个设备发送,并且那些设备可以比较图像与它们的相应当前显示(因为它们之一将正在显示在捕获的图像中的原有显示)以便确定它们是否为信息共享请求的预期目标。确定它是目标的设备继而可以与相关应用对话以获得关于应用的状态的信息,比如来自web浏览器的统一资源定位符(URI)或者可以由用于系统的应用编程接口(API)定义的其它形式的信息。继而,可以向智能电话发送回这样的信息,智能电话继而可以使对应应用变成活跃并且与应用在计算机上的状态匹配。在一个实现方式中,这一过程被称为深度摄影或者“深度拍摄(De印Shot)”,因为它允许发起或者初始设备不仅获得图像而且还获得下层状态数据,从而使得它可以打开用户可以与之交互的实际工作应用。逆过程可以用来从具有相机的设备向另一设备发布状态信息。具体而言,发起设备(例如,智能电话)可以捕获目标设备的图像,并且可以向登录到用户的账户(或者另外以某一定义的方式相互有关)的所有设备发送该图像。发起设备可以将关于它自己的状态的信息(比如作为发起设备的当前焦点的应用的URI)与图像包括在一起(并且它可以在用户正在拍摄图片时在来自相机的图像上叠加应用的图像以便让用户清楚将向其它设备发送的信息)。其它设备中的每个设备继而可以确定它们是否为图像中的设备,并且确定它是图像中的设备的设备可以启动在来自发起设备的附加信息中标识的相关应用,并且可以将该应用的状态设置成在附加信息中标识的状态。与第一示例的“深度摄影”对照,这样的实现方式可以被称为“深 度发布”。参照地图绘制示例,用户可以捕获用户的台式计算机的图像并且可以将该图像与来自智能电话浏览器的状态信息一起从用户的智能电话向台式计算机(并且向属于用户并且登录的其它设备)发送。台式计算机继而可以确定它在图像中被示出并且可以打开它的对应应用并且向它提供接收的状态信息。在应用是浏览器时,信息可以简单地是在浏览器的地址栏中的URI,但是在URI未完全描述应用的状态时(例如,在应用使用各种AJAX技术时)可以从浏览器获得附加信息。在一个示例中,可以使用在允许发送相对长的消息和丰富内容之时允许通过因特网在设备之间的TCP/IP通信的文字消息接发技术来执行对应用的状态和执行应用的这样的标识。一个这样的示例是已经被商用地实施为Jabber产品的可扩展消息接发和存在协议(XMPP)。在其它实例中,图像分析可以用来比如通过使用光学字符识别来标识图像中的文字从而标识如下设备的状态,已经在数字图像中捕获该设备的显示。例如,如果用户捕获地图的图像,则可以标识在地图上显示的城镇的名称,并且比如通过提供名称作为用于返回地图上的区域的搜索查询项,那些名称可以用来标识应用的状态。可以进行后续步骤以比如通过比较生成的地图与图像以使缩放水平恰当来针对应用的状态产生更严密匹配。也可以比较图像中的图像特征与针对计算机应用的显示极性存储的图像特征。在某些实例中,这里讨论的技术可以提供一个或者多个优点。例如,计算设备的用户可以将她的现有知识用于操作(她可以每天操作的)计算机上的相机以获取另一计算机的图像。她继而可以自动协调或者同步她的智能电话与她的计算机或者另一个人的计算机(但是比如目标计算机在文字消息中发送如下URL可能延迟同步,初始用户必须选择该URL以便从另一计算机激活捕获的状态)。因此,用户可以在她的计算设备或者其他用户的设备中的不同设备之间共享状态,并且继而可以从那些共享的状态开始与计算机应用完全交互。因此,用户可以当在计算设备之间共享信息时具有改进的体验。在一个实现方式中,公开了一种用于在计算设备之间移动信息的计算机实施的方法。该方法包括:使用第二计算设备的相机来捕获第一计算设备的显示器的数字图像;向第一计算设备传输与数字图像对应的数据;在第一计算设备上分析传输的数据以确定数字图像是否与第一计算设备的当前显示匹配;并且使用分析以使第一计算设备或者第二计算设备中的一个计算设备调用应用并且与在第一计算设备或者第二计算设备中的另一计算设备上执行的应用的状态匹配。第二计算设备可以向第一计算设备提供并且与数字图像一起提供关于在第二计算设备上执行的应用的状态信息。第二计算设备也可以在确定数字图像示出第一计算设备的当前显示之后在与状态信息对应的状态中启动应用。在一些方面中,第一计算设备可以确定其是否在数字图像中被示出。第一计算设备也可以从第二计算设备接收数字图像并且在去往第二计算设备的响应消息中提供在第一计算设备上运行的应用的标识和应用的状态。在第一计算设备上分析传输的数据可以包括比较来自传输的数据的特征集与来自第一计算设备的当前屏幕截图的特征集。该方法也可以包括将与数字图像对应的数据自动传输到向消息接发系统注册到第一计算设备的用户的所有设备。在另一实现方式中,公开了一种用于在计算设备之间移动信息的计算机实施的方法,该方法包括:获得第一计算设备的显示屏幕的数字图像,该显示屏幕显示具有第一状态的第一应用,其中数字图像由第二计算设备获取;分析数字图像以从数字图像标识显示屏幕的方面并且将那些方面编码为一个或者多个参数;标识第一计算设备上或者第二计算设备上的当前操作的应用和应用的当前状态;以及提供用于使标识的应用在应用未在其上操作的另一计算设备上被激活并且用于使另一计算设备上的应用进入与标识的当前状态对应的状态的数据。可以从第二计算设备向第一计算设备发送数字图像,并且第二计算设备可以执行数字图像的分析。第一计算设备也可以标识第一计算设备上的当前操作的应用并且向第一计算设备提供用于应用的标识符和应用的当前状态。计算设备也可以分析数字图像以确定是否在数字图像中示出第一计算设备。第一计算设备还可以基于确定在数字图像中示出第一计算设备来激活应用,并且使用从第二计算设备接收的状态信息以建立激活的应用的状态。 在一些方面中,第一计算设备可以基于确定在数字图像中未示出第一计算设备来拒绝在第一计算设备上激活应用。分析图像也可以包括确定图像的一部分是否与第一计算设备或者第二计算设备的当前视频显示匹配。在一些方面中,分析数字图像可以包括使用光学字符识别以标识字词,并且通过使用字词以从多个可能应用选择应用来标识当前操作的应用。分析数字图像可以包括对数字图像执行特征分析并且比较特征分析的结果与先前对已知计算机应用的图像执行的特征分析的结果,其中标识当前操作的应用包括标识与特征分析结果中的匹配对应的特定应用。此外,提供用于使第二计算机在第一状态中自动显示第一应用的数据可以包括向第二计算机发送URI,URI对应于第一应用和第一状态。另外,状态可以包括第一计算设备访问在计算机服务器系统存储的托管的文档这样的状态,并且提供用于使标识的应用被激活的数据可以包括提供使第二计算设备打开托管的文档的实例的数据。在又一实现方式中,公开了一种用于在计算设备之间移动信息的计算机实施的系统。该系统包括:第一计算设备,被布置用于在显示屏幕上呈现各自具有当前状态的一个或者多个应用;第二计算设备,具有能够捕获第一计算设备的图像的数码相机;以及在第一计算设备和第二计算设备上的消息接发接口,用于在设备之间通过网络和中央消息接发服务传达消息。第一计算设备和第二计算设备中的一个或者多个计算设备被单独或者组合编程用于:获得与由相机捕获的显示屏幕的数字图像对应的数据;分析数据以从数字图像标识显示屏幕的方面,并且将那些方面编码为一个或者多个参数;标识第一计算设备上或者第二计算设备上的当前操作的应用和应用的当前状态;以及提供用于使标识的应用在应用未在其上操作的另一计算设备上被激活并且用于使另一计算设备上的应用进入与标识的当前状态对应的状态的数据。在附图和以下描述中阐述一个或者多个实施例的细节。将从描述、附图和权利要求中清楚其它特征和优点。


图1A和图1B示出了从台式计算机的监视器捕获状态信息的移动设备。图2A是用于在计算机之间共享信息的系统和过程的示意流程图。图2B是用于传递消息的系统的示意图,这些消息共享关于计算机的状态信息。图3A和图3B是用于在计算机之间共享状态信息的过程的泳道图。图4是用于在计算机之间移动信息的过程的流程图。图5A至图5C示出了从移动设备向台式计算机的显示器上发布用户接口。图6图示了关于在相机与屏幕之间的偏航角度(pitch angle)和距离拍摄的多个试验图片的图形。图7示出可以用来实施这里描述的技术的计算机设备和移动计算机设备的示例。在各种附图中的相似标号指示相似单元。
具体实施例方式本文描述用于捕获关于一个计算机的当前状态的信息并且提供它、从而使得第二计算机可以取得相同或者相似状态的系统和技术,以及用于使用图像捕获技术在计算机之间共享信息的其它机制。在这里讨论的示例中,在计算设备、发起设备或者初始计算机(例如,智能电话)上的相机可以用来捕获另一计算机或者目标计算机的显示屏幕的图像。继而可以分析该图像以便标识在目标计算机上正在出现什么并且生成可以向初始计算机提供的信息,从而使得初始计算机的状态可以与目标计算机在图片中的状态匹配。比如通过确定用于目标计算机的所有相关状态变量并且在初始计算机上模仿那些变量,这样的匹配可以是全匹配。匹配也可以是近似匹配,比如其中目标计算机在地图绘制应用上显示与捕获的图像中的区域基本上重叠、但是可以有些移动或者不同地缩放的区域。匹配也可以是关联匹配,从而使得修改状态以与第二计算机的相对情境匹配。例如,如果目标计算机让文档打开并且目标计算机的第一用户正在编辑文档,则初始计算机可以同时打开文档、但是可以显示用于第二用户的光标,从而在文档中的不同位置显示光标。因此,在初始计算机上的状态与在目标计算机上的状态相似,因为两个用户正在查看相同内容,但是在初始计算机上的状态与在目标计算机上的状态不同,因为针对每个用户定制每个计算机上的视图。下文描述讨论这里的技术的示例用例,并且继而讨论用于实现用例和其它这样的用例的特定技术机制。图1A和图1B示出了从台式计算机的监视器捕获状态信息的智能电话108。一般而言,附图示出如上文提到的从台式计算机向智能电话传递地图绘制应用的状态的用例。在图1A中,用户正在她的右手中 持有她的智能电话108并且将它瞄准她的计算机100 (例如,台式计算机)的计算机监视器102 (或者,显示设备)。用户可以已经运用她的计算机100上的web浏览器(由浏览器标签104示出)以导航到地图上的地理区域,比如商务会议的位置。她可以由于计算机100的相对大的监视器和灵活的输入机制(例如,鼠标、触摸输入等)而已经选择使用它。然而,她可能不能在她的小汽车中随身携带她的计算机100,并且她可能需要在她驾车时查询地图。因此,她希望从她的计算机100向她的智能电话108获得地图信息。(智能电话包括计算机,但是这里与特定计算机100分开地引用智能电话108以在这一示例中区分用户的一个计算机(台式计算机)与另一计算机(智能电话)。)在这一示例中,智能电话108的屏幕正在示出用于在首次向用户提供智能电话108时可以与它一起包括的标准相机应用的用户接口。在这一示例中,用户刚才已经捕获了在计算机监视器102上显示的地图的部分的图像。智能电话108的显示器因此示出在计算机监视器102上显示的地图106的子集。图1B示出了在以后时间在智能电话108在智能电话108上的web浏览器的地图绘制应用中正在示出地图本身时的智能电话108。在一些实现方式中,智能电话108在智能电话108上安装的独立地图绘制应用中示出地图。在图1B中所示示例中,在智能电话108上的URI 110与在计算机监视器102上显示的URI 112匹配。可以通过分析智能电话108或者智能电话108与之通信的服务器系统上的图像、识别浏览器地址框在图像中并且对框中的字符执行光学字符识别来生成这样的匹配。作为智能电话108单独(或者借助服务器系统)执行工作的备选,也可以委托计算机100辅助向智能电话108获得计算机100的状态的过程。在这样的系统中,如下文更具体讨论的那样,计算机100和智能电话108可以被认证或者登录到包括文字消息接发特征的共同在线服务器系统。智能电话108继而可以将来自计算机100的捕获的数字图像打包成文字消息并且可以向计算机100发送图像。计算机100继而可以使用图像以确定用户从计算机监视器102捕获了什么并且因此确定用户想要重复的应用和状态。计算机100可以比较接收的图像和在计算机监视器102上当前正在显示的图像、寻找匹配、并且继而标识由匹配代表的应用。计算机100继而可以比如通过从web浏览器应用获得当前URI来确定应用的当前状态。图2A是用于在计算机之间共享信息的系统200和过程的示意流程图。系统200可以用来实施刚才针对来自图1A和图1B的用例讨论的消息流。在这一示例中,系统200的各种部件使用熟悉的技术(比如TCP/IP协议)通过包括因特网202的一个或者多个网络通信。系统200的三个主要部件包括台式计算机204、计算机208 (可以是移动计算机)和服务器系统206。三个部件可以相互配合以提供获取和在每个部件之间共享适当信息以允许在计算机204、208之间匹配状态。也可以运用附加的或者其它部件,但是提供在图2A中所示的特定示例部件以辅助以清楚方式说明相关技术。服务器系统206可以实施包括跨设备信息交换系统(比如PIE)的标准即时消息接发(頂)系统。将頂架构用于信息共享可以通过以下方面在某些实现方式中有益:(I)允许计算机204、208相互通信而不知道其它计算机的IP地址;(2)提供用于实时发送和接收消息的持久连接以便避免网络地址转译(NAT)和防火墙的某些问题;(3)提供立即消息接发,从而使得计算机204可 以在计算机208捕获计算机204的显示器的图像之后立即接收消息;以及(4)由于标准即时消息接发系统可以是相当成熟、开发好并且归档好的系统,所以可以使用现有库和其它单元,许多程序员可以修改和改进系统,并且已经理解这样的系统的管理员可以使用现有硬件和软件来实施系统。在一个实现方式中的特定消息接发是已经被商用地实施为Jabber产品的可扩展消息接发和存在协议(XMPP)系统。这样的产品允许单个用户从多个“资源”或者设备同时登录。通过以下寻址方案在通信中标识用户账户和资源:“user@server/resource”。因此,用户可以初始地用单个用户名建立她的设备中的每个设备并且可以避免必须向联系人列表中手动添加所有她的设备。此外,XMPP消息可以相对大(例如,与SMS文字消息比较),从而使得可以使用协议来发送更丰富的内容,比如JPEG或者其它格式化的数字图像。计算机204、208各自具有由用户安装和配置的用于执行上文讨论的状态匹配(例如,经由深度摄影或者深度发布)的程序。关于图2B具体讨论在示例实现方式中的特定部件。一般而言,应用可以在两个计算机204、208上相同,但是可以仅在具有图像捕获能力的计算机上使用某些部件。应用可以被编程用于捕获图像、向对应计算机发布图像并且响应于来自另一计算机的返回通信来启动与在另一计算机上的应用对应的应用。在交互的相反侧上,目标计算机可以包括用于调度来自捕获图像的初始计算机的接收的请求以便确定图像是否与目标计算机的当前显示匹配的部件。该确定继而可以如果存在匹配则用于标识目标计算机的相关状态信息,并且用于向初始计算机传达回目标计算机的状态信息。特定信息共享过程由图2A中的流程箭头示出。该过程始于用户用计算机204登录到服务器系统206 (箭头210),并且因此在系统200中建立它的存在并且打开持久通信信道时。在相同、更早或者更晚时间,用户可以用计算机208登录(箭头212)。认证过程可以使信任级形成于计算机204、208之间,因为计算机可以响应于来自其它相似认证的设备的请求自动做出响应,这是因为已知设备被认证到相同用户。虽然这里为了清楚而仅示出两个计算机204、208,但是用户可以在相同时间用三个或者更多不同设备登录(例如,多个台式计算机、写字板、游戏 控制台和智能电话)。这里所示相关通信继而可以由服务器系统206扩展到每个相似认证的设备。这样的通信也可以 出现于向不同用户分配的设备之间。例如,用户可以将他们本身与他们信任的其他用户(例如,在他们的工作部门内的其他人)布置成组,并且系统200可以被编程用于在用户之中自动传递这里讨论的类型的消息。在一些实现方式中,可以限制信任,从而使得接收用户的设备可以生成已经接收相关通信这样的信号,并且可以要求接收用户确认她愿意共享关于她的计算机的状态的信息(其中消息可以提供请求用户的身份并且标识将向请求用户传递回的信息)。因此,例如,作为同事并且一起在房间内的两个用户可以让第一用户捕获第二用户的计算机显示器的图像,这将使第二用户的计算机请求来自第一用户的确认以便共享状态信息。在一些实现方式中,可以比如通过让目标计算机在来自另一设备的针对信息的请求到达时发布用于它的用户的消息来在运行时建立信任,其中消息可以包括请求用户的身份并且也标识将向请求用户发送的信息,从而使得目标用户可以允许或者拒绝访问信息。在这样的情形中,例如,请求用户可能已经必须手动标识用于目标用户的测试消息接发地址。在计算机204、208已经登录到系统200之后,计算机204、208可以等待系统200引起信息共享。然而,使用这里讨论的文字消息协议,计算机204、208可以保持注意来自其它这样的计算机的通信。特定信息共享会话在图2A中所示示例中始于计算机208用来捕获计算机204上的显示器的图像时。在这一示例中,可以在计算机204的监视器上的包括托管的应用的照片管理应用中显示三个人的照片。计算机208被示出为已经捕获该图像的至少一部分、将图像与用于信息共享过程的其它相关信息一起向文字消息服务器系统206传递(箭头214)。这样的传输可以使服务器系统206向与计算机208预先认证的所有其它设备提供消息。如上文指出的那样,这样的设备可以包括当前登录到相同用户账户的所有设备、在定义的组中的设备或者其它设备组织。在这一示例中,与计算机208预先认证的所示的一个其它设备是计算机204,但是相同用户可以具有这里未示出的与计算机208预先认证的其它设备。计算机208可以使用具体涉及这里描述的信息共享过程的应用来执行图像捕获。可以经由对本机相机电话系统的扩展来执行或者可以向基本相机电话功能中并入图像捕获。在一些示例中,功能可以是用于共享捕获的图像的选项的菜单中的一个选项(其中其它选项可以包括用电子邮件发送图像、向社交联网站点发布图像等)。在一些实现方式中,设备可以无论何时捕获图像都自动检查以确定图像是否示出计算机显示器,并且如果是这样,则可以自动启动这里讨论的功能。返回图2A的信息流,计算机204从计算机208接收消息并且开始比对消息中的信息检查它自己的状态的过程(箭头216)。具体而言,计算机204可以拍摄它自己的屏幕的屏幕截图并且比较屏幕截图与从计算机208接收的图像。在一个示例中,用BASE64格式对图像编码,并且可以使用计算机视觉算法(比如加速鲁棒特征(SURF)或者比例不变特征变换(SIFT))对图像解码。SURF是对于缩放和旋转的影响稳健的基于视觉特征的算法。SURF可以在过程中用来分别检测在计算机204上拍摄的屏幕截图上和在从计算机208接收的图像上的关键点。此外,SURF可以在过程中用来通过对屏幕截图中的每个关键点与图片的每个关键点进行配对来对第一用户用计算机208的相机捕获的区域定位。一旦计算机204已经在屏幕上标识了匹配区域,则它可以获得区域的拐角和区域的中心点的X、Y坐标并且向在该区域中在计算机204上运行的最前端应用提供该信息。应用继而可以用如下消息做出响应,该消息提供关于它的当前状态的信息。在一些实现方式中,在计算机204上的应用可以被它们的开发员编程用于使用应用编程接口(API)来执行这样的动作。在其它示例中,应用可以是如下浏览器,该浏览器可以已经具有用于执行这样的动作的扩展。应用`提供的信息可以在一些实现方式中包括描述应用的当前状态的URI。一旦收集了信息,如由信息流(箭头216)所示,则计算机204可以通过服务器系统206向请求计算机208传递回描述它的当前状态的信息,比如URI。虽然在这一附图中未示出,但是向系统206注册到相同用户的其它设备也可以已经接收消息并且以相似方式动作。具体而言,那些设备可以已经接收图像、比较它与它们的当前显示器的屏幕截图、确定它们不是通信的目标并且保持静默或者向计算机208返回如下相应消息,这些相应消息指示它们没有匹配并且将不会提供它们本身的当前状态信息。通过对应文字消息向计算机208传递回URI或者描述应用在计算机204上的状态的其它形式的信息(箭头218)。计算机208继而可以解译接收的信息以启动适当应用或者使适当应用成为计算机208的焦点,并且可以让应用转变到与对应应用在计算机204上的状态匹配的状态。例如,计算机208可以向在计算机208上运行的浏览器传递接收的URI作为地址。
在涉及到从计算机208向计算机204深度发布(如与用于从计算机204向计算机208获得信息的深度摄影比较)的相似示例中,计算机208的用户可以肯定地向计算机204推出计算机208的状态。作为一个示例,用户可以在步行去往她的办公室之时已经开始在计算机208 (例如,她的智能电话)上编辑文档,并且可能想要在她的计算机204 (例如,台式计算机)上完成文档的编辑。在这一示例中,用户可以调用信息共享应用,该信息共享应用可以使计算机208上的相机被激活,并且也向相机的当前视图叠加用户在计算机208上的当前显示。用户继而可以将相机瞄准计算机204并且捕获计算机204的图像。计算机208继而可以用与上文讨论的方式相似的方式提交文字图像,但是具有计算机204正在尝试与另一计算机共享它自己的信息这样的指示和描述该当前状态的信息。计算机204继而可以接收消息并且可以执行如上文针对深度摄影描述的图像匹配。然而,对于深度发布,计算机204确定它是否为用户打算将发布引向的计算机。如果计算机204从匹配确定它是目标计算机,则它可以启动一个或者多个适当应用或者使该应用活跃,并且可以根据它在文字消息中从计算机208接收的信息设置那些应用的状态。在上例中,计算机204可以启动托管的字处理系统并且可以打开用户在计算机208上编辑的相同文档,从而使得用户可以容易和无缝地继续编辑过程。因此,以这一方式,这里描述的技术可以在一些实现方式中提供用于在相互视觉邻近的计算机之间共享或者同步信息的方便和直观的机制。这样的计算机的用户了解他们的计算机上的相机功能并且因此可以调用这里描述的信息共享过程。此外,信息共享可以通过标准TCP/IP和文字消息接发功能发生。一般而言,这一功能可以在大多数计算机上一直可用和被激活。可以在大多数现有系统中几乎没有影响地实施该过程并且那些系统的用户可以直观地使用该过程。图2B是用于传递消息的系统220的示意图,这些消息共享关于计算机的状态信息。一般而言,系统包括通过XMPP服务器222通信的客户端计算设备。在图2B的示例中,示出了包括相机的移动设备220A和台式计算机220B的特定部件。一般而言,所有设备可以包括系统220的所有部件,但是可以根据它们是否为捕获图像的设备或者对接收捕获的图像做出响应的设备,在某些会话中仅实施某些部件。在图2B的示例中,移动设备220A包括相机并且因此将捕获台式计算机220B的显示器的图像,并且台式计算机220B将做出响应。然而,在其它实现方式中,台式计算机220B可以具有web摄像头并且可以是图像捕获设备。在图2B的示例中,移动设备220A和台式计算机220B包括多个部件类型,例如,摄影器、发布器、调度器、启动器和应用。摄影器部件和发布器部件可以在捕获图像的设备(例如,移动设备)上操作。调度器部件可以在共享深度摄影中的信息或者接受来自深度发布的发布的目标设备或者计算机上操作。启动器可以在捕获图像的设备以及目标设备上操作。当在移动设备220A上操作时,启动器228启动移动应用以呈现通过深度摄影来捕获的信息。当在台式计算机220B上操作时,启动器232使台式应用呈现由深度发布来发布的信息可以用JavaScript Object Notation(JSON)格式对在部件之间和之中交换的特定消息进行结构化和编码。换言之,在XMPP上面,用JSON对在XMPP服务器和连接到它的部件之间的消息的正文编码。在调度器与应用之间的在WebSocket上面的消息也可以用JSON。WebSocket是支持通过TCP套接字的全双工和双向通信的协议。WebSocket当前正在由因特网工程任务组(IETF)和万维网联盟(W3C)标准化。一般而言,许多web浏览器支持该协议,并且许多台式应用可以由于使用TCP套接字而支持该协议,其中WebSocket可以是HTTP式握手协议对TCP套接字的扩展。在操作中,每当启动应用238A-238N和236中的每个应用(其中应用238A-238N和236支持深度摄影)时,启动的应用通过TCP端口 54080上的WebSocket连接向调度器234注册它本身。注册过程在标准WebSocket握手之后开始。启动的应用发送出以回车换行(CRLF)终止符为结束的行“reg APP_NAME”,其中APP_NAME是启动的应用的名称。如果调度器234接受启动的应用的注册,则调度器234用CRLF回复“ok”。如果调度器234未接受注册,则调度器234返回指示原因的消息并且关闭连接。为了支持深度发布,应用可以可选地发送“accept URI_SCHEME”命令,该命令指示应用接受什么类型的URI方案。例如,电子邮件客户端可以注册“mailto: ”,并且web浏览器可以注册“http: ”和“https: ”。一旦完成注册,则可 以保持这一 WebSocket连接持久直至关闭应用,从而使得例如调度器可以向应用前摄地通知请求何时到来。在图3A和3B中讨论使用系统220的部件的特定过程。图3A示出了用于深度摄影(即,捕获如下计算机的状态,该计算机是数字图像的目标)的示例。图3B示出了用于深度发布(即,提供如下计算机的状态,该计算机向如下计算机捕获图像,该计算机的显示器在图像中)的示例。进一步参照图2B中的系统220描绘用于图3A和图3B 二者的过程。参照图2B和图3A,用户使用摄影器226来初始地捕获图片(图像),其中图片旨在于示出台式计算机220B的显示器(框302)。一旦用户使用摄影器226以拍摄与台式计算机220B —起包括的计算机监视器上的感兴趣的区域的图片,则由捕获计算机(例如,移动设备220A)发送具有主题“deepshot.req”的XMPP消息(框304)。这一消息的发送指示继而向当前针对用户登录的每个设备广播的深度摄影请求(框306)。消息在一个示例中可以包括一对关键字值(例如,内容和由用户拍摄的被编码为BASE64串的图片)。在台式计算机220B上运行的调度器234接收“deepshot.req”消息(框308)。台式计算机220B拍摄台式计算机220B的显示器的屏幕截图(框310)。调度器234继而对接收的BASE64消息解码并且使用SURF或者相似算法来比较解码的图片与屏幕截图(框312)。在调度器234已经在屏幕截图中发现匹配区域时,它确定匹配区域的拐角和匹配区域的中心点的χ-y坐标,并且还确定台式计算机220B上的哪个应用是最前端应用(框314)。在这一示例中将调度器234设计为可以在计算设备上作为后台应用连续运行的守护进程(daemon)。调度器234具有用户的证书,因此调度器234可以一直连接到XMPP服务器。因此,可以从XMPP服务器获得来自任何其它计算设备的计算设备的可用性。在调度器234已经进行上文描述的确定时,调度器234使用与每个运行和参与应用(应用238A至238N和236)的已经打开的WebSocket连接以向相关应用238A-238N和236提供包括两对关键字值的JSON请求,这些关键字值可以是坐标(例如,拐角和四对χ-y坐标的列表,以及中心和一对x-y坐标),其中坐标相对于调度的窗口的左上拐角。应用继而用任何相关方式确定它的状态并且向调度器返回它的状态信息(框316)。这样的信息可以例如是在当前web浏览器地址框中的URI。其它相似信息可以由其它应用提供。在一些示例中,来自应用的响应可以包括至少一对关键字值(例如,代表应用的状态的URI)。应用可以创建它们自己的URI从而使URI与公共标准(例如,http:、tel:、geo:等)兼容。在一些情况下,应用可以附着离线资源或者文件。每个附着的资源或者文件可以被存储于具有两对关键字值(例如,⑴名称,该名称是文件名;以及⑵内容,该内容是文件的BASE64编码内容)的JSON结构中。附件可以被存储于由答复消息中的关键字“files”标识的JSON数组中。在台式计算机220B上的web浏览器可以呈现特殊类型的应用。web浏览器可以具有web调度器扩展236或者插件,从而使得浏览器可以参与描述的过程。所有应用可以在浏览器中运行,而那些应用的作者无需显式地支持每个过程。web调度器扩展236充当第二级调度器,从而将来自调度器234的消息向web浏览器中的适当网页寻路由并且向调度器234发送回答复消息。web调度器扩展236向所有网页提供JavaScript调回功能(例如,DeepShot.addListener (listener)),从而使得web开发员可以将它们的内部信号挂钩到这里描述的拍摄和发布过程。web调度器扩展236也可以是用于如下web应用的默认响应器,这些web应用可以未显式地支持这里描述的过程。如果web调度器扩展236从如下站点接收对获得数据的请求,该站点未使用调回功能来注册它本身,则它可以返回用于站点的URL作为默认响应。在地址栏上的URL可以映射到当前web应用的状态。然而,一些AJAX应用可以没有这一属性,或者它们可以判决隐藏它们的实际URL。为了解决这一问题,web调度器扩展236可以通过注入内容脚本从网页前摄地提取信息。作为浏览器扩展,web调度器扩展236可以能够向网页中注入多种内容。因此,web调度器扩展236可以向网页中注入调用调回功能DeepShot.addListener的一件JavaScript以提取网页的内部信息。例如,地图绘制应用可以未在地址栏上示出指向地图的当前区域的URL。为了获得代表当前状态(地图的当前区域)的实际 URL,web 调度器扩展 236 可以注入调用“document.getElementByld( ‘link’).href”的内容脚本以获得在具有id “link”的文档对象模块(DOM)元素中存储的实际URL。使用这一内容脚本向用户提供用于使 用深度摄影以在一个步骤中打开在她的计算机上显示的地图的能力。在从应用238A-238N和236之一接收响应之后,调度器234可以创建具有主题“deepshot.resp”的新XMPP消息,该主题代表响应消息。响应消息的正文部分是来自应用的答复,该答复是JSON编码串。调度器也可以向消息中插入两对新的关键字值(例如,(I)标题,该标题指示应用的名称,该名称可以被存储和用来搜索或者浏览深度摄影历史;以及(2)缩略图,该缩略图是屏幕截图的匹配区域的BASE64编码缩略图,该BASE64编码缩略图也可以被存储于日志中并且由用户用来浏览深度摄影历史)。调度器234继而经由XMPP服务器222 (框320)向移动设备220A返回包括状态信息的构造的消息(框318)。移动设备220A (捕获计算机)接收和处理消息(框322)。在已经从消息提取相关信息时,继而可以向启动器228提供信息。启动器228可以自从它向台式计算机220B发送出初始消息起监视接收具有这样的名称的消息。在具有该主题的消息到达时,启动器228对用JSON编码的消息的正文解码并且向移动设备220A上的存储装置写入所有附件。启动器220A打开适当应用,该应用处置在来自台式计算机220B的答复中包括的URI类型并且向应用传递响应以便恢复台式计算机220B上的任务(框324)。一旦成功启动应用,则完成深度摄影过程。图3B示出了与刚才描述的深度摄影过程相似地格式化的深度发布过程的示例。深度发布过程可以基于上文针对深度摄影过程描述的包括JSON结构和XMPP通信的相同基础。用于深度发布过程的关键作用在于发布器24。发布器224可以在包括相机的移动设备220A上操作。发布器224可以接受来自移动设备220A上的支持深度摄影的应用的请求。这些应用可以对将作为具有至少一对关键字值(例如,URI,该URI代表应用的内部状态)的JSON格式结构迁移的数据编码。图4B中的过程始于被编程用于寻求深度发布的应用向具有相机的设备的系统提供发布请求(框326)时。一旦发布器224从应用接收发布请求,发布器224就打开相机应用并且在相机的取景器上重叠应用的屏幕截图,从而使得用户可以在相同时间看见目标设备和待发布的信息(框328)。在用户已经在相机的取景器内对准她想要捕获的图像的视图之后,用户可以指示捕获图像(例如,按压按钮)。作为用户输入的结果,捕获JPEG图像并且将图像编码成BASE64串。继而从具有关键字内容的发布请求向JSON结构中插入捕获的编码图像(框330)。发布器224可以创建具有主题“de印post, req”的XMPP消息而以整个JSON串作为它的正文。发布器224继而可以用与用于深度摄影的方式相似的方式向所有相关设备(例如,当前登录到用户的账户的所有设备)发送这一 XMPP消息(框332)。XMPP服务器222继而向所有这样的设备广播消息(框334),这些设备通过它们的相应调度器中的每个调度器接收消息(框336)。例如,XMPP服务器222向台式计算机220B广播消息,该台式计算机通过调度器234接收消息。每个相应设备继而可以运行上文针对深度摄影讨论的计算机视觉过程以匹配用户拍摄的图片(捕获的图像)与特定设备的屏幕截图(框338、340)。例如,台式计算机220B运行计算机视觉过程以便确定用户拍摄的图片是否与台式计算机220B的显示器的屏幕截图匹配。如果未发现匹配,则调度器234用“无匹配”消息向服务器系统答复(框342、342),服务器系统向捕获计算机(例如,移动设备220k)转发回消息(框344)。捕获计算机(例如,移动设备220A)处理“无匹配”消息(框346)。如果调度器234确定存在匹配,则调度器234向启动器232发送请求(框348)。如上文讨论的那样,应用238A-238N和236中的每个应用可以注册它支持的URI方案类型。启动器232可以使用这一信息以针对从捕获计算机(例如,移动设备220A)接收的URI或者其它状态信息启动应用238A-238N和236的适当应用(框350)。应用238A-238N和236中的每个应用可以注册多个URI方案。此外,多个应用可以处置URI方案。如果多个应用可以接受URI方案,则在一些情况下,启动器232可以打开对话框以要求用户选择应用。在其它情况下,如果多个应用可以接受URI方案,则启动器232可以启动可以在启动之前被选择的默认应用。图4是用于在计算机之间移动信息的过程400的流程图。过程400可以被视为上文描述的过程的广义版本。过程400始于获取计算机屏幕或者显示器的数字图像(步骤402)时。该获取可以通过上文描述的机制,其中将第一用户设备瞄准第二用户设备的显示器,其中两个设备登录到相同用户的账户。机器视觉技术被用来标识图像的可以相关的方面并且对代表图像的那些方面的参数编码(步骤404)。在与上 文讨论的示例相似的示例中,方面可以包括图像的与拍摄的用于如下计算机的屏幕截图的取得的图像匹配的部分,该计算机是第一图像的目标。参数可以包括在第二或者目标设备的显示器上的与最高层应用对应的坐标和用于与应用通信的描述符。参数用来标识应用和应用的状态(步骤406)。例如,应用名称可以用来联系应用,该应用可以比如通过返回当前与应用关联的URI的值来标识它自己的状态。在另一示例中,机器视觉可以用来标识显示器上的字词,并且由此推断什么应用在图像中和该应用的状态。作为一个示例,可以对应用的标题栏或者浏览器应用中的地址栏执行机器视觉。同样,在显示器上的其它字词可以用来进一步指示应用的状态。作为一个示例,在地址栏中的文字指示应用是运行基于web的地图绘制应用的web浏览器时,显示器上的其它文字可以用来确定地图绘制应用涉及的地理区域。提供用于使第二计算设备(与作为初始数据捕获目标的计算设备不同)在确定的状态中自动显示相关应用的数据(步骤408)。在上文讨论的主要示例中,可以通过让目标设备上的应用向如下另一部件提供它的状态信息来执行这样的步骤,该另一部件预备将向发起设备发送回的文字消 息,其中文字消息还可以包括标识应用和状态的信息。在描述的其它示例中,在使用光学字符识别时,标识的文字可以由在发起设备上运行的应用组织。文字的组织可以比如产生可以用来向远程搜索引擎提交搜索查询的文字,或者以另一方式构造URI。例如,来自标题栏或者地址框中的文字的地图绘制应用的标识可以用来标识用于构建URL的域,并且在地图上的文字可以用来标识将向域提交的变元。图5A至图5C示出从移动设备504(例如,智能电话)向台式计算机的显示器506上发布用户接口 502。在一些示例中,实施深度摄影原型以支持深度摄影和深度发布二者。在智能电话上使用JAVA来实施移动设备侧。在另一侧(例如,计算机侧)上,在膝上型计算机上用Python实施调度器和启动器。在Linux上使用Jabber来设置XMPP服务器。Jabber的默认配置对它可以处置的消息的大小具有限制。为了在消息中允许在系统中传送的内容的潜在的大的大小,禁用消息大小限制。除了该改变之外,未修改Jabber的代码。在其它示例中,为了最小化应用开发员的用于支持深度摄影的工作,开发如下Java库,该库实施调度器、应用通信过程并且隐藏库内的WebSocket连接。库具有DeepShot类,该类具有一种用于应用注册它们本身以监听深度摄影请求的公共方法voidaddListener(Listener listener, String app_name, String[]accepted_uris)在更多示例中,在调度器(例如,如参照图2B所示的调度器234)中实施默认响应器以处置其中目标应用不支持深度摄影的情况。此外,实施用于web浏览器的扩展以支持用于web应用的URL迁移并且也支持通过注入内容脚本的前摄内容提取。参照图2B,如果目标应用(例如,在移动设备220A上的应用230A-230N之一)尚未向调度器(例如,调度器234)注册,则(例如,在调度器234中实施的)默认响应器可以在向目标应用答复时提供有用信息。在一些情况下,来自默认调度器的默认响应可以未如在正常响应的情况下那样由应用230A-230N直接打开,然而,目标是向移动设备(例如,移动设备220A)无缝迁移在计算设备(例如,台式计算机220B的显示器)上示出的信息。为了实现这一目标,计算设备的整个显示屏幕(例如,台式计算机220B的显示器)的屏幕截图与匹配区域的坐标一起被向移动设备220A传送。因此,用户可以看见台式计算机220B的显示器的图像的清楚版本而无可能由使用单独物理计算机以捕获屏幕的图像而在图片中引起的噪声和失真。用户可以摇动和缩放屏幕以看见未在原有图片中的更多细节或者其它区域。此外,在调度器234捕获屏幕截图时,调度器234也可以例如使用操作系统的可访问性API来检测可点击的URI和其它感兴趣的信息(例如,电话号码或者地址)。可以将形式为元数据的这一信息与屏幕截图一起传送。用户可以选择(使用在计算机设备上包括的输入设备)屏幕截图中的URL以启动浏览器或者可以选择屏幕截图中的电话号码以便直接拨叫号码。为了支持web应用,将web调度器扩展或者web调度器创建为web浏览器扩展。web调度器可以具有三个主要功能。首先,web调度器可以充当第二级调度器,从而将来自第一级调度器的消息向浏览器中的适当网页寻路由并且向第二级调度器发送回答复消息。web调度器也可以向所有网页提供JavaScript调回功能“DeepShot.addListener (listener) ”,从而如允许web开发员将他们的内部数据简单地挂钩到深度摄影。第二,web调度器可以是用于不支持深度摄影的所有web应用的默认响应器。如果web调度器从如下站点获得对寻求数据的请求,该站点未经由调回功能注册它本身,则web调度器可以向站点简单地返回URL作为默认响应。在地址栏上的URL可以映射到当前web应用的状态。然而,一些AJAX应用无这一属性或者隐藏它们的实际URI。幸运的是,web调度器的最后功能可以应对这一问题。第三,web调度器可以通过注入内容脚本从网页前摄地提取信息。作为浏览器扩展,web调度器可以能够向任何网页中注入任何内容。因此,即使原有web开发员可能尚未计划支持深度摄影,仍然可以向网页中注入调用“De印Shot.addListener”的一件JavaScript以前摄地提取它的内部信息。例如,地图绘制应用可以未在地址栏上示出指向地图的当前区域的URL。为了获得代表当前状态的实际URL,可以注入调用“document.getElementByld( ‘link’).href ” 的内容脚本以便获得在具有 id “link”的DOM元素中存储的实际URL。利用这一脚本,用户可以使用深度摄影以打开在他们的计算机上显示的任何地图。评价开发的系统以探索使用相机对监视器上的区域定位是否在速度和准确性方面可行。第一实验测试系统速度,并且第二实验测试图像匹配技术的准确性。

实验I使用具有高分辨率1680x 1050监视器的MacBook Pro15"计算机作为目标设备,并且使用运行Android 2.2的Nexus One智能电话作为捕获设备。捕获设备由人保持于在从显示器的20cm至40cm之间的距离,并且偏航角度在±20度之间,从而使得可以通过取景器看见屏幕的大约1/3。考察四个类型的目标应用(GOOGLE STREETVIEW照片、来自YELP.COM的文字、来自CNN.COM的几乎不具有信息的长篇文章和来自GOOGLE MAPS的地图),并且针对每个应用使用深度摄影来拍摄三个图片。过程涉及到:1)拍摄512x384图片;2)经由XMPP服务器向目标设备发送图片;3) —旦图片到达,则目标设备拍摄整个屏幕(1680x1050)的屏幕截图并且将它尺寸重设成840x525 ;4)目标设备从图片和屏幕截图提取SURF特征,并且继而使用上文描述的过程来匹配特征;5)系统组合由目标应用返回的信息(即,在这一实验中为URI)与匹配区域的缩略图,并且继而经由XMPP服务器向捕获设备发送回消息;6) —旦捕获设备接收答复,则它保存附着的缩略图并且使用适当应用来打开URL。
在共计十二个试验(用于四个应用的三个图片)中,整个过程的平均时间为7.74秒(SD 0.30秒),这是可接受的时间量。考察每个步骤,网络传输占用总时间的约50%,而其它处理时间在目标设备上花费34%并且在计算设备上花费16%。传输时间的持续时间依赖于在消息中附着一个图片和一个缩略图的过程以及消息向外部服务器的后续寻路由。因此,可以通过不传输图片并且不向第三方传递来减少传输时间。实验2使用屏幕的倾斜和偏航角度可调的MacBook Pro 15”计算机监视器。存在用于屏幕的偏航角度的四个设置:70°、90° UlO0和130°。膝上型计算机示出GOOGLE CHROME全屏浏览器,该浏览器具有由文字和图像构成的受欢迎本地饭馆的网页(来自YELP.COM)。包括相机的Nexus One智能电话连结到与地面垂直的L方形标尺。相机的从膝上型计算机的表面到相机镜头的中心测量的高度在偏航角度为90°或者110°之时被固定为19cm而在偏航角度为70°或者130°之时被固定为14.5cm。这些高度设置允许相机在屏幕上聚焦于相同目标(即,饭馆的名称)周围。最后将电话设置于屏幕前面,而从屏幕轴到相机镜头测量的距离为从5cm至50cm。对于每个偏航角度,针对在5cm与50cm之间的每5cm拍摄五个图片共计200个图片。上文描述的技术被用来匹配每个图片与膝上型计算机上的屏幕显示。如果匹配区域的中心与在屏幕上的预计区域重叠,则认为匹配成功。图6图示了关于偏航角度和在相机与屏幕之间的距离拍摄的多个试验图片的图形。图6示出了用于每个距离设置602的成功匹配数目,而每条指示用于四个偏航角度604a-604d的匹配总数。结果表明如果相机与监视器平行并且在相机与监视器之间的距离在IOcm与40cm之间的范围中,则改进匹配过程。这一范围可以覆盖如下小区域,该区域可以例如包括饭馆的名称及其基本信息。即使相机朝着或者背离监视器倾斜20度,相机到监视器的距离仍然可以约为30cm。下文是多个信息共享场景或者用例。场景1:带着信息走(从台式设备到移动设备)这一类型的场景激发开发深度摄影。人们通常在工作地或者家里在台式计算机或者膝上型计算机上工作。在移向另一地点之前,他们可以在计算机上查找与该地点有关的信息。然而,人们很快遗忘事情。他们通常需要在纸条上写下信息或者在他们正在移动时在移动电话上再次查找相同信息。在这一种类的场景中,人们可以使用深度摄影来随身携带信息。例如,人们可以携带一张地图或者下一会议地点的信息,因此他们无需再次查找相同信息。场景2:向台式设备共享在移动设备上生成的内容或者状态(移动设备到台式设备)人们可以在移动设备上生成信息(例如,照片、联系人或者未完成的阅读)。人们可以使用特定软件以同步移动设备与台式设备。在一些情况下,可能需要线缆和全同步过程以便在大型显示器上显示单个照片或者在台式设备上打开已经在移动设备上打开的网页。深度发布可以是一种用于在移动设备与台式设备之间共享这一类型的信息的更不繁琐的方式。

场景3:使用移动设备作为临时存储装置(经由移动设备的台式设备到台式设备)
USB棒(USB闪存驱动)可以用来在计算机之中共享文件。人们可以保存他们需要作为文件共享的信息、向USB棒上复制文件,并且继而将USB棒带到另一计算机。在这一类型的场景中,深度摄影可以用来从在计算机(例如,台式计算机)上运行的应用向移动设备自动提取信息。可以将移动设备带到另一地点,并且继而用户可以用深度发布向另一计算机(例如,另一台式计算机)发布提取的信息。场景4:将一个移动设备上的内容或者状态与另一移动设备共享(移动设备到移动设备)可以在多个个人 移动设备之间共享信息。此外,可以从一个人的移动设备向另一个人的移动设备共享信息。例如,碰撞(bumping)是用于连接两个移动设备的同步手势。虽然当前深度摄影框架不支持在多个用户的设备之间的通信,但是深度摄影和深度发布可以用来对属于用户的另一设备定位。此外,深度摄影和深度发布可以用来对将在多个用户之间共享的信息的区域定位。例如,用户可以使用他的或者她的设备用深度摄影拍摄在另一个人的移动设备上显示的联系人的图片,并且继而可以向用户的移动设备自动传送联系人信息。场景5:继续视频游戏的玩游戏这里讨论的技术可以用来比如通过长久运行的游戏活动提供单个玩家对视频游戏的连续玩游戏。当玩家在家里时,他可以在全特征游戏控制台上玩游戏。在他前往工作地时,他可以暂停玩游戏并且用智能电话拍摄他的电视屏幕的图片。控制台继而可以接收图像、确定它是相关接收者并且向智能电话发送游戏状态信息。用户继而可以在离去时在智能电话上恢复游戏、尽管分辨率更低并且可能有对玩游戏功能有某些附加限制。用户可以在他回家时执行逆过程。图7示出可以与这里描述的技术一起使用的通用计算机设备700和通用移动计算机设备750的示例。计算设备700旨在于代表各种形式的数字计算机,比如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、主机和其它适当计算机。计算设备750旨在于代表各种形式的移动设备,比如个人数字助理、蜂窝电话、智能电话和其它相似计算设备。这里所示的部件、它们的连接和关系及其功能意味着仅为示例而并非意味着限制在本文中描述和/或要求保护的本发明的实现方式。计算设备700包括处理器702、存储器704、存储设备706、连接到存储器704和高速扩展端口 710的高速接口 708以及连接到低速总线714和存储设备706的低速接口 712。使用各种总线来互连并且可以在共同母板上或者以如适当的其它方式装配部件702、704、706、708、710和712中的每个部件。处理器702可以处理用于在计算设备700内执行的指令,这些指令包括存储器704中或者存储设备706上存储的用于在外部输入/输出设备(比如耦合到高速接口 708的显示器716)上显示用于⑶I的图形信息的指令。在其它实现方式中,多个处理器和/或多个总线可以如适当的那样与多个存储器和存储器类型一起使用。也可以连接多个计算设备700而每个设备提供必需操作的部分(例如,作为服务器组、成组刀片服务器或者多处理器系统)。存储器704存储计算设备700内的信息。在一个实现方式中,存储器704是计算机可读介质。在一个实现方式中,存储器704是一个或者多个易失性存储器单元。在另一实现方式中,存储器704是一个或者多个非易失性存储器单元。
存储设备706能够提供用于计算设备700的海量存储装置。在一个实现方式中,存储设备706是计算机可读介质。在各种不同实现方式中,存储设备706可以是软盘设备、硬盘设备、光盘设备或者带设备、闪存或者其它相似固态存储器设备或者如下设备的阵列,这些设备包括存储区域网络或者其它配置中的设备。在一个实现方式中,在信息载体中有形地实现计算机程序产品。计算机程序产品包含在被执行时执行一种或者多种方法(比如上文描述的方法)的指令。信息载体是计算机或者机器可读介质,比如存储器704、存储设备706或者在处理器702上的存储器。高速控制器708管理用于计算设备700的带宽密集操作,而低速控制器712管理更低带宽密集操作。这样的职责分配仅为示例。在一个实现方式中,高速控制器708耦合到存储器704、显示器716 (例如,通过图形处理器或者加速器)并且耦合到可以接受各种扩展卡(未示出)的高速扩展端口 710。在该实现方式中,低速控制器712耦合到存储设备706和低速扩展端口 714。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器耦合到一个或者多个输入/输出设备,比如键盘、指点设备、扫描仪或者联网设备(比如交换机或者路由器)。如图中所示,可以用多个不同形式实施计算设备700。例如,可以将它实施为标准服务器720或者多次实施于成组这样的服务器中。也可以将它实施为架式服务器系统724的部分。此外,可以在个人计算机(比如膝上型计算机722)中实施它。备选地,来自计算设备700的部件可以与移动设备(未不出)(比如设备750)中的其它部件组合。这样的设备中的每个设备可以包含计算设备700、750中的一个或者多个计算设备,并且整个系统可以由相互通信的多个计算设备700、750组成。计算设备750包括处理器752、存储器764、输入/输出设备,比如显示器754、通信接口 766和收发器768以及其它部件。设备750也可以具有用于提供附加存储装置的存储设备,比如微驱动或者其它设备。使用各种总线来互连部件750、752、764、754、766和768中的每个部件,并且可以在共同母板上或者以如适当的其它方式装配部件中的若干部件。处理器752可 以处理用于在计算设备750内执行的指令,这些指令包括存储器764中存储的指令。处理器也可以包括分离的模拟和数字处理器。处理器可以例如提供协调设备750的其它部件,比如控制用户接口、设备750运行的应用和设备750的无线通信。处理器752可以通过控制接口 758和耦合到显示器754的显示接口 756与用户通信。显示器754可以例如是TFT IXD (薄膜晶体管液晶显示器)或者OLED (有机发光二极管)显示器或者其它适当显示器技术。显示器接口 756可以包括用于驱动显示器754以向用户呈现图形和其它信息的适当电路装置。控制接口 758可以从用户接收命令并且转换它们以用于向处理器752提交。此外,可以提供与处理器752通信的外部接口 762以便实现设备750与其它设备的近区域通信。外部接口 762可以例如在一些实现方式中提供有线通信或者在其它实现方式中提供无线通信,并且也可以使用多个接口。存储器764存储计算设备750内的信息。可以将存储器764实施为一种或者多种计算机可读介质、一个或者多个易失性存储器单元或者一个或者多个非易失性存储器单元中的一项或者多项。也可以提供扩展存储器774并且该扩展存储器可以通过可以例如包括SIMM(单列直插存储器模块)卡接口的扩展接口 772连接到设备750。这样的扩展存储器774可以提供用于设备750的额外存储空间或者也可以存储用于设备750的应用或者其它信息。具体而言,扩展存储器774可以包括用于实现或者补充上文描述的过程的指令并且也可以包括安全信息。因此,例如,可以提供扩展存储器774作为用于设备750的安全模块并且可以用允许安全使用设备750的指令对扩展存储器774编程。此外,可以经由SMM卡将安全应用与附加信息一起提供,比如以不可黑客的方式将标识信息放置于SIMM卡上。如下文讨论的那样,存储器可以例如包括闪存和/或NVRAM存储器。在一个实现方式中,在信息载体中有形地实现计算机程序产品。计算机程序产品包含在被执行时执行一种或者多种方法(、比如上文描述的方法)的指令。信息载体是计算机或者机器可读介质,比如存储器764、扩展存储器774、在处理器752上的存储器或者可以例如通过收发器768或者外部接口 762接收的传播的信号。设备750可以通过可以在必要时可以包括数字信号处理电路装置的通信接口 766无线地通信。通信接口 766可以在各种模式或者协议(比如GSM语音呼叫、SMS、EMS或者MMS消息接发、CDMA, TDMA, PDC, WCDMA, CDMA2000或者GPRS以及其它模式或者协议之下)提供通信。可以例如通过射频收发器768发生这样的通信。此外,可以比如使用蓝牙、WiFi或者其它这样的收发器(未示出)来发生短程通信。此外,GPS (全球定位系统)接收器模块770可以向设备750提供附加的与导航和位置有关的无线数据,该数据可以如适当的那样由在设备750上运行的应用使用。设备750也可以使用音频编码解码器760来可听地通信,该编码解码器可以从用户接收口述信息并且将它转换成可用数字信息。音频编码解码器760可以类似地比如通过例如在设备750的头戴式受话器中的扬声器生成用于用户的可听声音。这样的声音可以包括来自语音电话呼叫的声音、可以包括记录的声音(例如,语音消息、音乐文件等)并且也可以包括由在设备750上操作的应用生成的声音。如图中所示,可以用多个不同形式实施计算设备750。例如,可以将它实施为蜂窝电话780。也可以将它实施为智能电话782、个人数字助理或者其它相似移动设备的部分。可以在数字电子电路装置、集成电路装置、特殊设计的ASIC (专用集成电路)、计算机硬件、固件、软件和/或其`组合中实现这里描述的系统和技术的各种实现方式。这些各种实现方式可以包括在如下可编程系统上可执行和/或可解译的一个或者多个计算机程序中的实现方式,该可编程系统包括可以是特殊或者通用的至少一个可编程处理器、至少一个输入设备和至少一个输出设备,该可编程处理器被耦合用于从存储系统接收数据和指令以及向存储系统传输数据和指令。这些计算机程序(也被称为程序、软件、软件应用或者代码)包括用于可编程处理器的机器指令并且可以用高级过程和/或面向对象编程语言和/或用汇编/机器语言来实施。如这里所用,术语“机器可读介质”、“计算机可读介质”指代用来向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(PLD)),该计算机程序产品、装置和/或设备包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”指代用来向可编程处理器提供机器指令和/或数据的任何信号。为了提供与用户的交互,可以在如下计算机上实施这里描述的系统和技术,该计算机具有用于向用户显示信息的显示设备(例如CRT(阴极射线管)或者IXD(液晶显示器)监视器)以及用户可以用来向计算机提供输入的键盘和指点设备(例如,鼠标或者跟踪球)。其它种类的设备也可以用来提供与用户的交互;例如向用户提供的反馈可以是任何形式的感官反馈(例如,视觉反馈、听觉反馈或者触觉反馈);并且可以用包括声音、话音或者触觉输入的任何形式接收来自用户的输入。可以在如下计算系统中实施这里描述的系统和技术,该计算系统包括后端部件(例如,作为数据服务器)或者包括中间件部件(例如,应用服务器)或者包括前端部件(例如,具有如下图形用户接口或者Web浏览器的客户端计算机,用户可以通过该图形用户接口或者Web浏览器来与这里描述的系统和技术的实现方式交互)或者这样的后端、中间件或者前端部件的任何组合。系统的部件可以由任何数字数据通信形式或者介质(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)、广域网(“WAN”)和因特网。计算系统可以包括客户端和服务器。客户端和服务器一般相互远离并且通常通过通信网络交互。借助在相应计算机上运行的并且相互具有客户端-服务器关系的计算机程序产生客户端和服务器关系。已经描述许多实现方式。然而,将理解,可以进行各种修改而不脱离公开内容的精神实质和范围。例如,使用上文所示流程的各种形式而重新排序、添加或者去除步骤。另外,虽然已经描述认证系统和方法的若干应用,但是应当认识到,设想许多其它应用。因而,其它实现方式在所附 权利要求的范围内。
权利要求
1.一种用于在计算设备之间移动信息的计算机实施的方法,所述方法包括: 使用第二计算设备的相机来捕获第一计算设备的显示器的数字图像; 向所述第一计算设备传输与所述数字图像对应的数据; 在所述第一计算设备上分析传输的数据以确定所述数字图像是否与所述第一计算设备的当前显示匹配;以及 使用所述分析以使所述第一计算设备或者所述第二计算设备中的一个计算设备调用应用并且与在所述第一计算设备或者所述第二计算设备中的另一计算设备上执行的应用的状态匹配。
2.根据权利要求1所述的方法,其中所述第二计算设备向所述第一计算设备提供并且与对应于所述数字图像的所述数据一起提供关于在所述第二计算设备上执行的应用的状态信息,并且其中所述第二计算设备在确定所述数字图像示出所述第一计算设备的当前显示之后在与所述状态信息对应的状态中启动所述应用。
3.根据权利要求1所述的方法,其中所述第一计算设备确定其是否在所述数字图像中被示出。
4.根据权利要求1所述的方法,其中所述第一计算设备从所述第二计算设备接收与所述数字图像对应的所述数据,并且在去往所述第二计算设备的响应消息中提供在所述第一计算设备上运行的应用的标识和所述应用的状态。
5.根据权利要求1所述的方法,其中在所述第一计算设备上分析所述传输的数据包括比较来自所述传输的数据的特征集与来自所述第一计算设备的当前屏幕截图的特征集。
6.根据权利要求1所述的方 法,还包括将与所述数字图像对应的所述数据自动传输到向消息接发系统注册到所述第一计算设备的用户的所有设备。
7.一种用于在计算设备之间移动信息的计算机实施的方法,所述方法包括: 获得第一计算设备的显示屏幕的数字图像,所述显示屏幕显示具有第一状态的第一应用,其中所述数字图像由第二计算设备获取; 分析所述数字图像以从所述数字图像标识所述显示屏幕的方面并且将那些方面编码为一个或者多个参数; 标识所述第一计算设备上或者所述第二计算设备上的当前操作的应用和所述应用的当前状态;以及 提供用于使标识的应用在所述应用未在其上操作的另一计算设备上被激活并且用于使另一计算设备上的所述应用进入与标识的当前状态对应的状态的数据。
8.根据权利要求7所述的方法,其中已经从所述第二计算设备向所述第一计算设备发送所述数字图像,并且所述第二计算设备执行所述数字图像的所述分析。
9.根据权利要求8所述的方法,其中所述第一计算设备标识所述第一计算设备上的当前操作的应用并且向所述第一计算设备提供用于所述应用的标识符和所述应用的当前状态。
10.根据权利要求8所述的方法,其中所述第一计算设备分析所述数字图像以确定是否在所述数字图像中示出所述第一计算设备。
11.根据权利要求10所述的方法,其中所述第一计算设备基于确定在所述数字图像中示出所述第一计算设备来激活所述应用,并且使用从所述第二计算设备接收的状态信息以建立激活的应用的状态。
12.根据权利要求10所述的方法,其中所述第一计算设备基于确定在所述数字图像中未示出所述第一计算设备来拒绝在所述第一计算设备上激活应用。
13.根据权利要求8所述的方法,其中分析所述图像包括确定所述图像的一部分是否与所述第一计算设备或者所述第二计算设备的当前视频显示匹配。
14.根据权利要求7所述的方法,其中分析所述数字图像包括使用光学字符识别以标识字词,并且标识当前操作的应用包括使用所述字词以从多个可能应用选择应用。
15.根据权利要求7所述的方法,其中分析所述数字图像包括对所述数字图像执行特征分析并且比较所述特征分析的结果与先前对已知计算机应用的图像执行的特征分析的结果,并且其中标识当前操作的应用包括标识与特征分析结果中的匹配对应的特定应用; 获得第一计算设备的显示屏幕的数字图像,所述显示屏幕显示具有第一状态的第一应用,其中所述数字图像由第二计算设备获取; 分析所述数字图像以从所述数字图像标识所述显示屏幕的方面,并且将那些方面编码为一个或者多个参数; 标识所述第一计算设备上或者所述第二计算设备上的当前操作的应用和所述应用的当前状态;以及 提供用于使标识的应用在所述应用未在其上操作的另一计算设备上被激活并且用于使另一计算设备上的所述应用进入与标识的当前状态对应的状态的数据。
16.根据权利要求7所述的方法,其中提供用于使所述标识的应用在另一计算设备上被激活的数据包括向所述第二计算机发送URI,所述URI对应于所述标识的应用和所述状态。
17.根据权利要求7所述的方法,其中所述状态包括所述第一计算设备访问在计算机服务器系统存储的托管的文档这样的状态,并且其中提供用于使所述标识的应用被激活的数据包括提供使所述第二计算设备打开所述托管的文档的实例的数据。
18.根据权利要求17所述的方法,其中提供用于使所述标识的应用被激活的数据使所述第一计算设备和所述第二计算设备同时让所述文档的实例打开,并且其中所述第一计算设备和所述第二计算设备的用户可以合作编辑所述文档。
19.一种用于在计算设备之间移动信息的计算机实施的系统,所述系统包括: 第一计算设备,被布置用于在显示屏幕上呈现各自具有当前状态的一个或者多个应用; 第二计算设备,具有能够捕获所述第一计算设备的图像的数码相机;以及 在所述第一计算设备和所述第二计算设备上的消息接发接口,用于在所述设备之间通过网络和中央消息接发服务传达消息, 其中所述第一计算设备和所述第二计算设备中的一个或者多个计算设备被单独或者组合编程用于: 获得与由所述相机捕获的所述显示屏幕的数字图像对应的数据; 分析所述数据以从所述数字图像标识所述显示屏幕的方面,并且将那些方面编码为一个或者多个参数; 标识所述第一计算设备上或者所述第二计算设备上的当前操作的应用和所述应用的当前状态;以及 提供用于使标识的应用在所述应用未在其上操作的另一计算设备上被激活并且用于使另一计算设备上的所述应用进入与标识的当前状态对应的状态的数据。
20.根据权利要求19所述的系统,其中所述第二计算机被编程用于在捕获所述数字图像时向与所述第二计算机设备的用户对应的一个或者多个其它计算设备自动发送所述数字图像,所述其它计算设备包括所述第一计算设备。
21.根据权利要求20所述的系统,其中所述第一计算设备被编程用于标识所述第一计算设备上的当前操作的应用,并且提供用于所述应用的标识符和所述应用在所述第一计算设备上的当前状态。
22.根据权利要求20所述的系统,其中所述第一计算设备被编程用于分析与所述数字图像对应的所述数据以确定是否在所述数字图像中示出所述第一计算设备。
23.根据权利要求22所述的系统,其中所述第一计算设备被编程用于基于确定在所述数字图像中示出所述第一计算设备来激活所述应用,并且使用从所述第二计算设备接收的状态信息以建立激活的应用的状态。
24.根据权利要求22所述的系统,其中所述第一计算设备被编程用于基于确定在所述数字图像中未示出所述第一计算设备来拒绝在所述第一计算设备上激活应用。
25.根据权利要求20所述的系统,其中分析所述数据包括确定所述图像的一部分是否与所述第一计算设备或者所述第二计算设备的当前视频显示匹配。
26.根据权利要求19所述的系统,其中分析所述数据包括使用光学字符识别以标识字词,并且标识当前操作的应用包括。
27.根据权利要求19所述的系统,其中分析所述数字图像包括对所述数字图像执行特征分析并且比较所述特征分析的结果与先前对已知计算机应用的图像执行的特征分析的结果,并且其中标识当前操作的应用包括标识与特征分析结果中的匹配对应的特定应用。
28.根据权利要求19所述的系统,其中提供用于使所述第二计算机在与所述标识的当前状态对应的状态中自动显示所述第一应用的数据包括向所述第二计算机发送URI,所述URI对应于所述第一应用和所述标识的当前状态。
29.根据权利要求19所述的系统,其中所述状态包括所述第一计算设备访问在计算机服务器系统存储的托管的文档这样的状态,并且其中提供用于使所述标识的应用被激活的数据包括提供使所述第二计算设备打开所述托管的文档的实例的数据。
30.根据权利要求29所述的系统,其中提供用于使所述标识的应用被激活的数据使所述第一计算设备和所述第二计算设备同时让所述文档的实例打开,并且其中所述第一计算设备和所述第二计算设备的用户可以合作编辑所述文档。
全文摘要
一种用于在计算设备之间移动信息的计算机实施的方法包括使用第二计算设备的相机来捕获第一计算设备的显示器的数字图像;向第一计算设备传输与数字图像对应的数据;在第一计算设备上分析传输的数据以确定数字图像是否与第一计算设备的当前显示匹配;以及使用分析以使第一计算设备或者第二计算设备中的一个计算设备调用应用并且与在第一计算设备或者第二计算设备中的另一计算设备上执行的应用的状态匹配。
文档编号G06F3/00GK103229126SQ201180053335
公开日2013年7月31日 申请日期2011年9月16日 优先权日2010年9月17日
发明者张琮翔, 栗阳 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1