用于活动协作的配套应用程序的制作方法

文档序号:11142231阅读:302来源:国知局
用于活动协作的配套应用程序的制造方法与工艺

技术领域

所公开的实施方案涉及电子设备。更具体地讲,所公开的实施方案涉及电子设备之间的活动协作。

相关领域

计算机技术的最新进展已使制造商能够生产具有各种形状因数的强大计算设备,从而使用户能够使用像智能电话或平板电脑那样小巧且便携的设备来执行曾需要台式或膝上型计算机的任务。由于这些进展,用户通常持有并使用多种计算设备,例如路途中用智能电话、会议中用平板电脑以及办公时用膝上型或台式计算机。

虽然用户可持有不同设备,每种设备都具有强大计算能力,但在某些情况下,用户可发现他或她自己所用的设备不适合正在执行的任务或不适合用户所处的情形。例如,用户可能需要在没有键盘或触摸屏的设备处输入数据,而用户持有的其他设备可提供虚拟和/或物理键盘。又如,用户可能正在设备上查看演示文稿或玩游戏,而该设备缺少易于操纵的控件以便控制查看演示文稿或玩游戏。

附图说明

图1呈现了框图,示出了根据一些实施方案的电子设备。

图2呈现了框图,示出了根据一些实施方案的网络环境。

图3呈现了流程图,示出了根据一些实施方案的用于广播控制器宣告消息的过程。

图4呈现了流程图,示出了根据一些实施方案的用于将可用控制器信息存储到可用控制器表中的过程。

图5A呈现了流程图,示出了根据一些实施方案的用于与广播控制器宣告消息的电子设备建立协作活动通信信道的过程。

图5B呈现了流程图,示出了根据一些实施方案的用于与设备建立协作活动通信信道的过程,该设备可提供在控制器宣告消息中宣告的控制器的控制器数据。

图6A呈现了流程图,示出了根据一些实施方案的用于提供增强活动的控制器数据的过程。

图6B呈现了流程图,示出了根据一些实施方案的用于使用控制器数据来增强活动的过程。

图7呈现了流程图,示出了用于确定第二应用程序在电子设备处是否可用的过程,该第二应用程序可提供在控制器宣告消息中宣告的控制器的控制器数据。

图8呈现了流程图,示出了根据一些实施方案的用于使用标记确定第二应用程序的过程。

图9呈现了流程图,示出了当控制器标识符标识在存储所宣告控制器的结构中的条目时,根据一些实施方案的用于确定第二应用程序是否可用的过程。

图10呈现了流程图,示出了根据一些实施方案的用于利用两个或更多个控制器宣告消息来确定最近控制器宣告消息的过程。

图11呈现了框图,示出了根据一些实施方案的控制器信息。

图12呈现了框图,示出了根据一些实施方案的所宣告控制器表。

图13呈现了框图,示出了根据一些实施方案的控制器宣告消息。

图14呈现了框图,示出了根据一些实施方案的可增强活动指示。

图15呈现了泳道图,示出了根据一些实施方案的在电子设备之间交换的消息。

图16呈现了框图,示出了根据一些实施方案的彼此接近的电子设备。

在图中,类似的参考编号是指相同的附图元件。

具体实施方式

提供以下描述以使得本领域的技术人员能够实现和使用所述实施方案,并且以下描述是以特定应用程序及其要求的上下文提供的。各种修改形式对于本领域的技术人员而言将是显而易见的,并且本文中所限定的一般性原则可应用于其他实施方案和应用程序,而不脱离所述实施方案的实质和范围。因此,所述实施方案不限于所示出的实施方案,而是要被赋予符合本文所公开的原理和特征的最宽泛的范围。

在一些实施方案中,电子设备(例如,图1中的电子设备100和/或其某部分)使用被存储在计算机可读存储介质上的代码和/或数据来执行本文所述的一些或全部操作。更具体地讲,电子设备从计算机可读存储介质读取代码和/或数据并在执行所述操作时执行代码和/或使用数据。在这些实施方案中,计算机可读存储介质可以是存储供电子设备使用的代码和/或数据的任何设备或介质或其组合。例如,计算机可读存储介质可包括但不限于易失性存储器或非易失性存储器,诸如半导体存储器(例如,闪存存储器、随机存取存储器(eDRAM、RAM、SRAM、DRAM、DDR、DDR2/DDR3/DDR4SDRAM等)等)和/或磁存储介质或光学存储介质(例如,磁盘驱动器、磁带、CD、DVD)。在所述实施方案中,计算机可读存储介质不包括非法定计算机可读存储介质诸如晶体管信号。

在一些实施方案中,一个或多个硬件模块被配置为执行本文所述的操作。例如,硬件模块可包括但不限于一个或多个处理器/内核/中央处理单元(CPU)、专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、高速缓存/高速缓存控制器、存储器管理单元、计算单元、嵌入式处理器、图形处理器(GPU)/图形内核、管线和/或其他可编程逻辑设备。在激活此类硬件模块时,硬件模块执行一些或全部操作。在一些实施方案中,硬件模块包括可通过执行指令(程序代码、固件等)来配置以执行操作的一个或多个通用电路。

在本说明书中,在描述一些实施方案时可参考功能块。一般来讲,功能块包括执行所述操作的一个或多个相关电路、设备和/或机构。在一些实施方案中,所述功能块中的至少一些包括通用处理电路,这些通用处理电路执行程序代码(例如,微代码、固件、应用程序等),致使通用处理电路执行所述操作。

概述

所述实施方案通过与配套电子设备处的配套应用程序协作而在源电子设备处执行活动--即称为“增强”源电子设备处的活动的过程。在一些实施方案中,该活动包括至少部分地在源电子设备处执行且使用来自配套电子设备的控制器数据增强的一个或多个操作。活动的示例包括读取和/或编辑文档(例如,文字处理文档、电子表格、演示文稿、图形或其他类型的文档)、编写电子邮件消息、电子邮件、语音消息或视频、草拟笔记、访问(浏览)网站、播放电影、音频文件和/或玩游戏、录制电影和/或音频文件、或以其他方式使用应用程序或app执行对应操作。

在一些实施方案中,为了使用配套电子设备增强源电子设备处的活动,源电子设备首先使用无线网络接口(例如,蓝牙低功耗(BLE)、ZigBee等)广播控制器宣告消息(也称为“控制器宣告”)。在这些实施方案中,源电子设备包括控制器宣告消息中的控制器标识符,该控制器标识符指示源电子设备处的第一应用程序正从其寻求控制器数据的控制器。下文将参考图12更详细地描述控制器标识符的示例。

配套电子设备在与从其广播控制器宣告消息的源电子设备中的网络接口对应的网络接口上监测网络(例如,蓝牙低功耗网络)的控制器宣告消息。在接收到从源电子设备广播的控制器宣告消息时,配套电子设备将控制器宣告消息中的控制器标识符与配套电子设备处可用的控制器的控制器标识符进行比较。作为比较的一部分,配套电子设备确定可提供第一应用程序所寻求的控制器数据的第二应用程序(即,配套应用程序)在配套电子设备处是否可用。

在一些实施方案中,在确定上述配套应用程序可用时,配套电子设备经由协作活动通信信道与源电子设备建立通信(使用用于接收控制器宣告消息的相同无线网络接口或不同网络接口)。配套电子设备随后使用协作活动通信信道,来获取在来自源电子设备的第一应用程序中执行的活动的活动数据。在一些实施方案中,配套电子设备使用控制器标识符和/或活动数据来配置配套应用程序,以执行用于提供控制器数据的辅助活动。例如,活动数据可包括用于访问与第一应用程序中执行的活动相关的文档的信息,例如,文档标识符、文档数据、滚动位置、统一资源定位符(URL)等。在一些实施方案中,活动数据表示由配套应用程序显示于配套电子设备的显示器上的数据,例如,表示视频流和/或图像的信息、用以生成用户界面的命令和/或将在用户界面处显示的数据。

在一些实施方案中,配套电子设备开始在配套应用程序中执行辅助活动。在执行辅助活动时,配套电子设备将配套应用程序中获得的控制器数据发送到源电子设备。源电子设备使用一些或全部控制器数据在源电子设备处的第一应用程序中执行活动。例如,在配套电子设备配置配套应用程序之后,用户可使用配套电子设备的键盘向源电子设备提供击键/按键,使用配套电子设备的触摸屏在源电子设备处移动光标或绘制形状,使用配套电子设备的游戏控制器和/或加速度计在源电子设备处控制游戏,等等。

通过执行上述操作以便使用来自配套电子设备的控制器数据增强源电子设备处执行的活动,所述实施方案使用户能够使用配套电子设备处的控制器(和/或使用作为控制器的配套电子设备)无缝地在源电子设备处执行任务,而无需复杂的用户干预。这使用户能够更易在所需电子设备上执行任务,从而可改善用户使用两个或更多个电子设备时的总体体验。

电子设备

图1呈现了框图,示出了根据一些实施方案的电子设备100。电子设备100包括处理子系统102、存储器子系统104、联网子系统106和显示子系统108。

处理子系统102是在电子设备100中执行计算操作的功能块。处理子系统102包括一个或多个中央处理单元(CPU)/CPU内核、图形处理单元(GPU)/GPU内核、嵌入式处理器、专用集成电路(ASIC)和/或其他计算机构。

存储器子系统104是存储供电子设备100中的其他功能块(例如,处理子系统102等)使用的数据和/或指令的功能块。存储器子系统104包括易失性存储器电路,诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)和/或用于存储指令和数据的其他类型存储器以及用于控制存储器电路的机构。在一些实施方案中,存储器子系统104包括存储器分级结构,其中一个或多个高速缓存耦接到存储器电路。在这些实施方案中的一些中,处理子系统102还包括作为存储器分级结构一部分的一个或多个高速缓存。

在一些实施方案中,将存储器子系统104耦接到一个或多个非易失性高容量海量存储设备(未示出)。例如,存储器子系统104可耦接到磁盘驱动器或光盘驱动器、固态驱动器、或另一种类型的海量存储设备。在这些实施方案中,存储器子系统104可被电子设备100用作用于经常使用的数据的快速存取存储装置,而海量存储设备被用于存储使用频率较低的数据。

联网子系统106是这样的功能块,其包括被配置成耦接到有线网络和/或无线网络并在有线网络和/或无线网络上通信(即执行网络操作)的一个或多个设备。例如,联网子系统106可包括BluetoothTM联网系统、蜂窝联网系统(例如,诸如UMTS、LTE等的3G/4G网络)、通用串行总线(USB)联网系统、基于IEEE 802.11、802.15等所述标准的联网系统(例如,ZigBee或Wi-Fi联网系统等)、以太网联网系统,和/或其他联网系统。联网子系统106包括处理器、控制器、无线电部件/天线、插座/插头、和/或用于耦接至每个所支持的联网系统、在每个所支持的联网系统上进行通信、和处理每个所支持的联网系统的数据和事件的其他设备。在以下描述中,用于耦接到每个网络系统的网络、在网络上通信、和处理网络上的数据和事件的机构统称为网络系统的“接口”或“网络接口”。

显示子系统108是这样的功能块,其包括被配置成在电子设备100的视觉界面上显示信息的一个或多个设备。例如,在一些实施方案中,显示子系统108包括用于显示信息的图形处理器(GPU)、显卡和/或显示屏。

在一些实施方案中,通信路径(包括一个或多个总线、线和/或连接)耦接在电子设备100中的功能块(处理子系统102、存储器子系统104等)之间,如元件之间的箭头线所示。通信路径用于在元件之间传输命令、数据、事件通知和/或其他信息。

虽然使用了特定部件来描述电子设备100,但是在一些实施方案中,在电子设备100中可能存在不同的部件和/或子系统。例如,电子设备100可包括一个或多个附加处理子系统102、存储器子系统104等。另外,这些子系统中的一者或多者可能不存在于电子设备100中,或一些或全部子系统的功能可结合到其他子系统中。此外,在一些实施方案中,电子设备100可包括图1中未示出的一个或多个附加子系统。例如,电子设备100可包括但不限于数据收集子系统、音频和/或视频子系统、报警子系统、媒体处理子系统、和/或输入/输出(I/O)子系统。

电子设备100可以是执行计算操作的任何设备,或可以包括在执行计算操作的任何设备中。例如,电子设备100可以是台式计算机、膝上型计算机、可穿戴计算设备、平板电脑、智能电话、服务器、网络电器、玩具、视听设备(例如,接收器、机顶盒、Apple TV等)、汽车(例如,汽车接口系统、导航系统、平视显示系统等)、家用电器、控制器等,和/或它们的组合,或可以包括在这些设备中。(Apple TV是Apple Inc.(Cupertino,California)的注册商标)。

网络环境

图2呈现了框图,示出了根据一些实施方案的网络环境。如图2中可以看出,网络环境200包括源电子设备202、配套电子设备204和第二源电子设备206(统称为“电子设备”)。在一些实施方案中,每个电子设备是与电子设备100类似的电子设备,即,具有与电子设备100类似的子系统。然而,这不是必需的;所述实施方案可使用可执行本文所述操作的任何电子设备。

源电子设备202和第二源电子设备206是这样的电子设备,其参与和活动增强操作相关的配套电子设备204的通信交换。在一些实施方案中,源电子设备202(和/或第二源电子设备206)是这样的电子设备,其被配套电子设备204所识别并因此允许参与活动增强操作。例如,源电子设备202和配套电子设备204可能已使用相同账户向服务提供方注册,并且可因此通过存储在每个电子设备中的信息来识别彼此。例如,在一些实施方案中,源电子设备202和配套电子设备204参与如待审美国专利申请no.xx/xxx,xxx中所述的初步配对操作,例如预定义配对(并通过该初步配对操作获取的信息来识别彼此),该专利申请名称为“Predefined Wireless Pairing”,由发明人Jason C.Conn、Akshay Mangalam Srivatsa、Craig P.Dooley和Michael Giles在本申请的同一天提交,具有代理人案卷号APL-P22642USP1,且其内容如上所述的那样以引用的方式并入。在一些实施方案中,源电子设备202和配套电子设备204可参与标识因素(加密密钥、证书等)的设备对设备交换,以使得源电子设备202和配套电子设备204随后识别彼此。

在网络环境200内,配套电子设备204可使用无线通信信号208(使用图2中标记“通信信号208”的锯齿形线示出)与源电子设备202和第二源电子设备206通信。在一些实施方案中,通信信号208根据一个或多个对应无线协议(例如经由无线网络协议诸如蓝牙、ZigBee、基于802.11的协议和/或其他无线网络协议)进行格式化和交换(广播、发射/接收等)。在一些实施方案中,一些或全部通信信号208作为有线通信信号(例如,有线以太网、有线LAN、有线WAN等中的信号)进行通信。

在一些实施方案中,用于增强本文所述活动的操作依赖于源电子设备202和配套电子设备204彼此足够靠近,以使每个电子设备所发送的通信信号208(及因此结合的消息)被另一电子设备接收到。换句话讲,源电子设备202和配套电子设备204彼此“接近”,从而能够在电子设备之间交换消息。如本文所用,“接近”因此表示从给定电子设备传播/发送的消息可被一个或多个其他电子设备接收到的距离。该距离由如下决定:电子设备中的无线电设备(天线、接收器/发射器等)和用于广播/发送消息的特定无线电协议/信号,如受到诸如环境条件(电磁干扰等)、中间对象(家具、墙壁、衣服/袋子等)等因素的限制。例如,在一些实施方案中,通信信号208使用具有预期30米范围的协议在源电子设备202与配套电子设备204之间交换,因此当设备在彼此的30米内时设备是“接近的”(然而,需注意,该预期范围可被上述因素显著改变)。

图16呈现了框图,示出了根据一些实施方案的彼此接近的电子设备。如图16中可以看出,配套电子设备204在源电子设备202的无线电信号(例如,通信信号208)的范围1602内,这意味着配套电子设备204可接收从源电子设备202发送的无线电信号。另外,源电子设备202在配套电子设备204的无线电信号(例如,通信信号208)的范围1604内,这意味着源电子设备202可接收从配套电子设备204发送的无线电信号。如上所述,因此,源电子设备202和配套电子设备204彼此“接近”,从而能够进行本文所述的消息的通信(和对应操作)。然而,源电子设备202和配套电子设备204都不在电子设备1600的无线电信号的范围1606内,这意味着源电子设备202和配套电子设备204都不接近电子设备1600。需注意,图16中的范围1602-1606使用不规则形状示出,从而说明来自电子设备的无线电信号具有不规则范围,具体取决于电子设备(天线布置等)、上述因素等。

在一些实施方案中,对电子设备之间通信的消息、数据等进行加密。在这些实施方案中,一些或全部电子设备执行对应的加密和解密操作,例如通过使用共享密钥、从共享密钥得出的密钥和/或一次性密钥进行。例如,如前面所述,在一些实施方案中,源电子设备202和配套电子设备204参与如待审美国专利申请no.xx/xxx,xxx中所述的预定义配对,该专利申请名称为“Predefined Wireless Pairing”,由发明人Jason C.Conn、Akshay Mangalam Srivatsa、Craig P.Dooley和Michael Giles在本申请的同一天提交,具有代理人案卷号APL-P22642USP1,且其内容如上所述的那样以引用的方式并入。在一些实施方案中,源电子设备202和配套电子设备204通过使用源电子设备202和配套电子设备204在参与预定义配对时获取的一个或多个加密密钥,对经交换用于活动协作操作(即,用于增强活动的操作)的消息进行加密和解密。

虽然图2中示出了各种电子设备,但在一些实施方案中,使用电子设备的不同布置来执行本文所述的一些或全部操作。例如,在一些实施方案中,不存在第二源电子设备206。一般来讲,所述实施方案包括足够的设备以增强在如本文所述的电子设备处执行的活动。

广播控制器宣告消息

图3呈现了流程图,示出了根据一些实施方案的用于广播控制器宣告消息的过程。更具体地讲,在图3中所示的过程期间,电子设备诸如源电子设备202广播控制器宣告,即控制器宣告消息。需注意,图3中所示的操作是作为由一些实施方案执行的操作的一般示例来呈现的。由一些实施方案执行的操作包括不同的操作和/或按照不同次序执行的操作。另外,虽然某些机构用于描述这些操作(例如,源电子设备202等),但在一些实施方案中,其他机构执行这些操作。例如,配套电子设备204和第二源电子设备206中的一者或两者可执行类似操作,以为其自身广播控制器宣告消息。

当源电子设备202接收到控制器信息,指示源电子设备202处的第一应用程序接受来自控制器的控制器数据时(步骤300),图3中所示的过程即开始。(下文将参考图11更详细地描述控制器信息的示例)。需注意,一般来讲,第一应用程序安装在源电子设备202上或在该源电子设备处可用。在一些实施方案中,第一应用程序向源电子设备202提供或报告控制器信息。在一些实施方案中,源电子设备202向第一应用程序查询控制器信息。在一些实施方案中,第一应用程序是源电子设备202处的操作系统的至少一部分,例如操作系统进程/服务、设备驱动程序等。一般来讲,控制器信息描述控制器,第一应用程序接受来自该控制器的控制器数据,该控制器数据可用于增强在源电子设备202处的第一应用程序中执行的活动。例如,在一些实施方案中,控制器信息指示第一应用程序从键盘、触摸屏、游戏控制器、加速度计、遥控、拇指指纹读取器、麦克风、相机、网络控制器(例如,从蜂窝天线接收数据的网络控制器)等接受数据。在一些实施方案中,控制器信息标识第一应用程序和/或在第一应用程序中执行的活动,例如包括第一应用程序和/或在第一应用程序中执行的可使用控制器数据增强的活动的名称。

接下来,源电子设备202确定是否过滤所接收的控制器信息(步骤302),这包括使用一个或多个标准来丢弃不经历进一步处理和/或不在控制器宣告消息中广播的控制器信息。例如,源电子设备202可测量第一应用程序向控制器信息提供更新的频率,并且当控制器信息更新的频率超过阈值时,可丢弃来自第一应用程序的控制器信息(其可称为“节流”来自第一应用程序的控制器信息)。又如,源电子设备202可丢弃报告源电子设备202等已经知道的事实的冗余或重复控制器信息。再如,在一些实施方案中,源电子设备202基于第一应用程序中执行的活动的控制器信息未被宣告的指示,来过滤控制器信息。例如,在一些实施方案中,源电子设备202和/或源电子设备202的用户可将某些活动和/或某些种类的活动配置为不会宣告控制器信息的活动。再如,在一些实施方案中,源电子设备202对存在控制器信息的一些或全部活动(即,控制器信息可被宣告的一些或全部活动)进行排序,并且基于该排序来丢弃这些活动中的一者或多者的控制器信息。例如,源电子设备202可将更高排序分配给用户先前已选择增强的活动,并且将更低排序分配给用户先前已选择不增强的活动。在这些实施方案中的一些中,源电子设备202使用来自配套电子设备204的消息(例如,诸如下文参考图5A、步骤510讨论的那些的消息)来确定用户选择增强哪些活动以及用户选择不增强哪些活动。

如果源电子设备202过滤(例如,丢弃)控制器信息(步骤302,是),则该过程结束。否则,如果源电子设备202不过滤控制器信息(步骤302,否),则源电子设备202将一些或全部控制器信息存储在结构中(步骤304)。出于例示性目的,描述了将控制器信息存储在表中的条目中的实施方案,该表被称为“所宣告控制器”表。然而,需注意,实施方案不限于使用表来存储控制器信息。一些实施方案使用不同的存储机构/结构来存储控制器信息,诸如关联阵列、内容可寻址存储器等。

在一些实施方案中,在存储控制器信息时,源电子设备202覆写和/或移除先前存储在所宣告控制器表中的控制器信息。例如,源电子设备202可使用近期最少使用(LRU)算法来覆写和/或移除来自所宣告控制器表的条目。在一些实施方案中,当所宣告控制器表达到预定尺寸时,源电子设备202将后续控制器信息存储在不同的所宣告控制器表中,即,源电子设备202保持不止一个所宣告控制器表。下文将参考图12更详细地描述所宣告控制器表的示例。

接下来,源电子设备202基于控制器信息来生成控制器标识符(步骤306)。一般来讲,控制器标识符包括来自控制器信息的、描述(和/或标识)控制器的信息,第一应用程序从该控制器接受控制器数据,以增强在源电子设备202处的第一应用程序中执行的活动。在一些实施方案中,源电子设备202通过将控制器信息减小成较小的编码表示而生成控制器标识符,该较小的编码表示可比完全控制器信息更有效地广播。在这些实施方案中的一些中,编码表示是控制器信息的散列,即,散列函数(例如,MD4、MD5、SHA、MurmurHash等)的输出,该散列函数的输入包括一些或全部控制器信息。在一些实施方案中,源电子设备202将控制器标识符连同控制器信息一起存储在所宣告控制器表(或源电子设备202用来存储控制器信息的任何结构)中。下文将参考图12更详细地描述控制器标识符的示例。

在一些实施方案中,控制器标识符包括域名的表示。例如,在一些实施方案中,当在第一应用程序中执行的活动包括使用域处的资源时,控制器信息包括源电子设备202用来访问该域处的资源的域名,例如,统一资源定位符(URL)的至少一部分。在一些实施方案中,源电子设备202通过将一些或全部域名包括在控制器标识符中,来确定控制器标识符。例如,控制器标识符可以是资源的一些或全部URL的散列。

在一些实施方案中,控制器标识符标识源电子设备202存储控制器信息的结构中的条目(例如,如上文参考步骤304所述)。例如,在保持不止一个所宣告控制器表的实施方案中,控制器标识符可标识源电子设备202存储控制器信息的所宣告控制器表中的条目。控制器标识符还可标识所宣告控制器表自身。在一些实施方案中,为了标识源电子设备202存储控制器信息的所宣告控制器表中的条目,控制器标识符包括:(1)用以标识所宣告控制器表的、所宣告控制器表中的数据散列,以及(2)标识存储控制器信息的所宣告控制器表中的条目的索引。

接下来,源电子设备202将控制器标识符包括在控制器宣告消息中(步骤308),例如,通过生成包括控制器标识符的控制器宣告消息。例如,源电子设备202可生成根据用于广播控制器宣告消息的协议而格式化的分组,例如,诸如图13中所示的分组。

在一些实施方案中,除控制器标识符之外,控制器宣告消息还包括其他数据。例如,在一些实施方案中,控制器宣告消息包括标记,该标记用于指示何时控制器标识符包括与活动相关的在线资源的域名的表示。在这些实施方案中,源电子设备202断言标记(例如,将标记设定为预定值诸如1),以指示控制器标识符包括域名的表示。在一些实施方案中,源电子设备202断言控制器宣告消息中的标记,以指示源电子设备202将单独地向配套电子设备204提供辅助活动的数据,例如,通过源电子设备202将对应指令包括在活动数据中(下文将更详细地描述活动数据)。在一些实施方案中,源电子设备202断言标识第一应用程序从其接受控制器数据的控制器的控制器宣告消息(例如,控制器的类型)中的标记,例如,指示第一应用程序是否从键盘、游戏控制器、麦克风等接受控制器数据的标记。下文将更详细地描述标记。

在一些实施方案中,控制器宣告消息包括可表达绝对或相对时间的时间戳。在一些实施方案中,时间戳指示自最后执行第一应用程序中执行的活动起的时间,例如,最后编辑文档的时间、最后访问网站的时间、最后观看电影的时间、最后玩游戏的时间等。在一些实施方案中,时间戳与活动无关,即,时间戳指示用户最后与源电子设备202交互的时间,而不论用户的最后交互是否包括用户执行活动和/或使用第一应用程序。

接下来,源电子设备202广播(宣告)控制器宣告消息(步骤310)。例如,源电子设备202可使用通信信号208广播控制器宣告消息。在一些实施方案中,源电子设备202在网络环境200中广播/宣告控制器宣告消息,以使得网络环境200中的附近设备可接收控制器宣告消息。例如,在这些实施方案中,源电子设备202使用BluetoothTM通信信道诸如蓝牙低功耗(BLE)来广播控制器宣告消息。一些实施方案可在不同通信信道/网络接口诸如对等网络、LAN、互联网等上广播控制器宣告消息。需注意,控制器宣告消息广播可发生不止一次,例如,源电子设备202可多次和/或周期性地广播相同控制器宣告消息。

可用控制器表

在一些实施方案中,配套电子设备204存储可用控制器信息,例如,描述配套电子设备204处可用的控制器和/或配套电子设备204处可用的应用程序的控制器信息,以提供来自对应控制器的控制器数据(下文将参考图11更详细地描述控制器信息的示例)。例如,在一些实施方案中,配套电子设备204存储可用控制器信息的控制器标识符。出于例示性目的,描述了在表中存储可用控制器信息的配套电子设备204,该表被称为“可用控制器”表(随后将在本公开中更详细地描述可用控制器表的示例)。需注意,虽然描述了在可用控制器表中存储可用控制器信息的实施方案,但实施方案不限于使用表来存储可用控制器信息。一些实施方案可使用其他结构来存储可用控制器信息,诸如关联阵列、内容可寻址存储器等。

图4呈现了流程图,示出了根据一些实施方案的用于将可用控制器信息存储到可用控制器表中的过程。需注意,图4中所示的操作是作为由一些实施方案执行的操作的一般示例来呈现的。由一些实施方案执行的操作包括不同的操作和/或按照不同次序执行的操作。另外,虽然某些机构用于描述这些操作(例如,配套电子设备204等),但在一些实施方案中,其他机构执行这些操作。例如,源电子设备202和第二源电子设备206中的一者或两者可执行类似操作,以为其自身存储可用控制器信息。

当配套电子设备204经由配套电子设备204处的第二应用程序例如配套应用程序接收到描述可用的控制器的控制器信息时(步骤400),图4中所示的过程即开始,该控制器信息例如为描述第二应用程序可提供其控制器数据的控制器的控制器信息。一般来讲,控制器信息描述了配套电子设备204处的第二应用程序能够执行以提供控制器数据的操作或功能。例如,在一些实施方案中,控制器信息包括第二应用程序的名称和/或控制器描述符,例如GameController、SlideshowRemote等(下文将参考图11更详细地描述控制器信息)。在一些实施方案中,在安装和/或使用第二应用程序时,第二应用程序报告/提供控制器信息。在一些实施方案中,配套电子设备204查询或以其他方式监测第二应用程序,以收集控制器信息。在一些实施方案中,控制器信息包括未在配套电子设备204处执行但可供执行的应用程序可提供的、描述控制器的控制器信息(例如,在配套电子设备204处对第二应用程序进行安装/更新、启动、使用等时由第二应用程序报告的控制器信息)。

接下来,配套电子设备204基于第二应用程序的控制器信息,即,基于在步骤400处接收到的控制器信息来确定控制器标识符(步骤402)。一般来讲,控制器标识符标识第二应用程序和/或描述第二应用程序能够提供其控制器数据的控制器。在一些实施方案中,控制器标识符是第二应用程序的控制器信息的编码表示。在一些实施方案中,配套电子设备204通过执行一些或全部与源电子设备202执行以生成第一应用程序的控制器标识符(参见图3、步骤306)相同的操作,来确定控制器标识符。例如,在一些实施方案中,配套电子设备204使用与源电子设备202用于生成第一应用程序的控制器标识符相同的散列函数,来生成第二应用程序的控制器标识符。

在一些实施方案中,当第二应用程序可通过执行包括访问域处的资源在内的活动来提供控制器数据时,该活动的控制器信息包括该域的域名。在这些实施方案中的一些中,第二控制器标识符是域名的编码表示,其使第二应用程序能够“宣称”域名,即声明第二应用程序可使用域名处的资源,以使得配套电子设备204可通过使用第二应用程序来提供控制器数据。例如,如将在随后所述,在第二应用程序从互联网上的具体站点流式传输影片的场景中,第二控制器标识符可以是该站点的域名的至少某部分的编码表示。需注意,第二应用程序可不同于第一应用程序,即控制器信息在控制器宣告消息中宣告的应用程序。

接下来,配套电子设备204将第二控制器标识符存储到可用控制器表中(步骤404)。

在配套电子设备处建立协作活动通信信道

在一些实施方案中,在接收到控制器宣告消息时,电子设备(即,配套电子设备)与广播控制器宣告消息的电子设备(即,源电子设备)建立协作活动通信信道。图5A呈现了流程图,示出了根据一些实施方案的用于与广播控制器宣告消息的电子设备建立协作活动通信信道的过程。更具体地讲,在图5A中所示的过程期间,配套电子设备204与源电子设备202建立协作活动通信信道。需注意,图5A中所示的操作是作为由一些实施方案执行的操作的一般示例来呈现的。由一些实施方案执行的操作包括不同的操作和/或按照不同次序执行的操作。另外,虽然某些机构用于描述这些操作(例如,源电子设备202、配套电子设备204),但在一些实施方案中,其他电子设备和/或机构执行这些操作。

当配套电子设备204接收控制器宣告消息(步骤500),即控制器宣告消息从源电子设备202广播(参见图3、步骤310)时,图5A中所示的过程即开始。接下来,配套电子设备204确定配套电子设备204是否处于接收状态(步骤502)。一般来讲,当其可用于执行辅助活动以提供控制器数据时,配套电子设备204便处于接收状态。例如,在一些实施方案中,当设备“唤醒”时,例如在用户按下按钮唤醒设备之后显示锁定屏幕时,配套电子设备204从非接收状态转变为接收状态。在一些实施方案中,当配套电子设备204在使用中时,例如当用户正使用配套电子设备204处的应用程序时和/或当用户在给定时间段内一直使用应用程序时,配套电子设备204不处于接收状态(或处于非接收状态)。

如果配套电子设备204不处于接收状态(步骤502,否),则该过程结束(即,控制器宣告消息被配套电子设备204忽略)。否则,如果配套电子设备204处于接收状态(步骤502,是),则配套电子设备204确定可在控制器宣告消息中提供控制器的控制器数据的第二应用程序在配套电子设备204处是否可用(步骤504)。一般来讲,该操作包括确定应用程序在配套电子设备204处是否可用,该应用程序可提供来自控制器的控制器数据和/或充当来自源电子设备202的控制器宣告消息中所述的控制器。确定第二应用程序是否可用将在随后参考图7至图8更详细地描述。

如果第二应用程序不可用(步骤504,否),则该过程结束。否则,如果第二应用程序可用(步骤504,是),则配套电子设备204检索第二应用程序的控制器信息(步骤506)。例如,如另将参考图7至图8和图14更详细地描述,在确定第二应用程序之后,配套电子设备204可使用第二应用程序的控制器标识符从描述第二应用程序可提供其控制器数据的控制器的可用控制器表检索控制器信息(或配套电子设备204可从配套电子设备204用于存储可用控制器信息的另一种结构检索控制器信息)。在一些实施方案中,配套电子设备204使用所检索的控制器信息,例如使用所检索的控制器信息中的应用程序标识符和/或控制器描述符,对所宣告活动可增强的指示进行自定义,例如如下文参考步骤508和/或图14所述。将参考图11更详细地描述应用程序标识符和控制器描述符。

接下来,配套电子设备204呈现活动可增强的指示,即配套电子设备204可用于增强在源电子设备202处执行的活动的指示(步骤508)。例如,配套电子设备204可在配套电子设备204的显示器中呈现图形图标和/或通知。配套电子设备204可基于控制器宣告消息中的信息和/或在步骤506处检索的第二应用程序的控制器信息,来确定显示哪个图标和/或通知。在一些实施方案中,第二应用程序提供图形图标和/或通知。在一些实施方案中,例如,当控制器宣告消息包括一个或多个断言标记时,配套电子设备204从各自对应于控制器的一组预定图标和/或通知选择图形图标和/或通知,例如,每个控制器对应于可在控制器宣告消息中断言的标记。下文将参考图14更详细地描述活动可增强指示。

随后,配套电子设备204确定是否接受活动增强(步骤510)。在一些实施方案中,配套电子设备204的用户接受和/或拒绝活动增强,具体方式为对该指示执行动作,诸如在该指示上点击、沿一个或多个方向和/或朝一个或多个具体位置拖动该指示等。例如,要接受活动增强,用户可用手指轻敲图标/通知(在触摸屏显示器上)并沿第一方向(例如,从左到右、向上、环绕圆周顺时针等)拖动图标/通知。又如,要拒绝活动增强,用户可用手指轻敲图标/通知并沿第二方向(例如,从右到左、向下、环绕圆周逆时针等)拖动图标/通知。在一些实施方案中,配套电子设备204基于暂停时间段来确定未接受活动增强,即通过确定自呈现该指示起已经过一段时间而用户未执行接受指示/活动增强的动作。

如果未接受活动增强(步骤510,否),则该过程结束。需注意,在一些实施方案中,如果未接受活动增强,则配套电子设备204向源电子设备202发送消息以指示未接受活动增强。如果接受活动增强(步骤510,是),则配套电子设备204与源电子设备202建立协作活动通信信道(步骤512)。在一些实施方案中,在步骤512处,配套电子设备204向源电子设备202发送建立协作活动通信信道的请求。在一些实施方案中,响应于该请求,配套电子设备204接收来自源电子设备202的响应,该响应包括配套电子设备204用于连接协作活动通信信道的信息(下文将参考图5B、步骤554更详细地描述源电子设备202响应于这种请求可提供的信息)。在一些实施方案中,配套电子设备204使用配套电子设备204接收控制器宣告消息的相同网络接口(例如蓝牙网络)发送建立协作活动通信信道的请求。在一些实施方案中,配套电子设备204使用不同网络接口发送建立协作活动通信信道的请求。

在一些实施方案中,建立协作活动通信信道包括配套电子设备204创建协作活动通信信道以及向源电子设备202提供源电子设备202可用于连接协作活动通信信道的网络信息。在一些实施方案中,配套电子设备204所包括的网络信息带有在步骤512处发送的请求,即配套电子设备204向源电子设备202发送的建立协作活动通信信道的请求。例如,在一些实施方案中,配套电子设备204确定配套电子设备204可连接/被连接到的现有网络(例如,无线和/或有线LAN,诸如基于802.11的网络、有线以太网等)的网络接口、协议、地址、端口、无线信道/频率、服务集标识符(SSID)和/或认证信息(密码、加密密钥等)。在这些实施方案中的一些中,现有网络由第三设备诸如接入点等提供。在一些实施方案中,配套电子设备204创建新网络(例如,对等/自组织网络、直接无线链路、VPN网络等),并且在网络信息中包括新网络的网络接口、协议、地址、端口、无线信道/频率、SSID和/或认证信息(密码、加密密钥等)。

基于宣告信息而转变成接收状态

虽然图5A中描述了接收控制器宣告消息(参见图5A、步骤500)并确定配套电子设备204是否处于接收状态(参见图5A、步骤502)的实施方案,但一些实施方案基于所接收到的控制器宣告消息中的信息而转变成接收状态。在这些实施方案中的一些中,在接收到控制器宣告消息(例如,如图5A、步骤500中所示)之后,配套电子设备204并未确定配套电子设备204是否处于接收状态,即图5A中所示的过程从步骤500进行到步骤504,而不执行步骤502的操作。

例如,在一些实施方案中,源电子设备202使用低功率协议诸如蓝牙低功耗(BLE)、ZigBee等以对应的通信信号208广播控制器宣告消息。诸如配套电子设备204的设备可使用对应的低功率机构监测从源电子设备202广播的控制器宣告消息,所述对应的低功率机构诸如为对应网络接口内的基带处理器,例如联网子系统106中的基带处理器。在这些实施方案中的一些中,控制器宣告消息的接收由配套电子设备204仅使用配套电子设备204的基带处理器来处理,这意味着配套电子设备204有可能处于空闲状态(例如,在诸如处理子系统的子系统处于低功率状态的情况下)。例如,在一些实施方案中,配套电子设备204可以是用户口袋中处于空闲状态的智能电话,在该空闲状态下,基带处理器监测控制器宣告消息,同时处理子系统(和配套电子设备204一般地)处于低功率状态。

在一些实施方案中,在识别这样的控制器宣告消息时,基带处理器唤醒处理子系统(并且一般可使配套电子设备204从空闲操作状态转变成功率更高/活动更强的操作状态)以执行后续操作。例如,在一些实施方案中,配套电子设备204可监测控制器宣告消息并对控制器宣告消息作出反应,如待审美国专利申请no.xx/xxx,xxx中所述,该专利申请名称为“Operating Mode Transitions based on Advertising Information”,由发明人Craig P.Dooley、Akshay Mangalam Srivatsa、Anjali S.Sandesara和Michael Giles在本申请的同一天提交,具有代理人案卷号APL-P22643USP1,且如上所述的那样以引用的方式并入。在一些实施方案中,配套电子设备204/智能电话可能不需要从用户口袋中取出并激活以使配套电子设备204处于接收状态。

在源电子设备处建立协作活动通信信道

在一些实施方案中,广播控制器宣告消息的电子设备(即,源电子设备)与可提供在控制器宣告消息中宣告的控制器的控制器数据的电子设备(即,配套电子设备)建立协作活动通信信道。图5B呈现了流程图,示出了根据一些实施方案的用于与设备建立协作活动通信信道的过程,该设备可提供在控制器宣告消息中宣告的控制器的控制器数据。更具体地讲,在图5B中所示的过程期间,源电子设备202与配套电子设备204建立协作活动通信信道。需注意,图5B中所示的操作是作为由一些实施方案执行的操作的一般示例来呈现的。由一些实施方案执行的操作包括不同的操作和/或按照不同次序执行的操作。另外,虽然某些机构用于描述这些操作(例如,源电子设备202),但在一些实施方案中,其他电子设备和/或机构执行这些操作。

当源电子设备202接收与配套电子设备204建立协作活动通信信道的请求时(步骤550),图5B中所示的过程即开始。例如,在一些实施方案中,源电子设备202接收配套电子设备204发送的请求,如图5A、步骤512中所述。

接下来,源电子设备202确定该请求用于协作活动通信信道,其可提供对第一应用程序宣告的控制器的控制器数据(步骤552)。一般来讲,建立协作活动通信信道的请求包括源电子设备202可用于标识第一应用程序的信息。例如,在一些实施方案中,配套电子设备204包括带有建立协作活动通信信道的请求的、第一应用程序的控制器标识符,例如,源电子设备202在控制器宣告消息中包括的控制器标识符(如图3、步骤308中所示)。在一些实施方案中,源电子设备202在所宣告控制器表(或存储所宣告控制器信息的其他结构)中对控制器标识符执行查找。(下文将参考图12更详细地描述所宣告控制器表的示例)。当源电子设备202找到包括来自控制器宣告消息的控制器标识符在内的所宣告控制器表中的条目时,源电子设备202可检索条目的控制器信息以确定控制器标识符对应于第一应用程序。例如,在一些实施方案中,源电子设备202确定存储在条目中的应用程序标识符是第一应用程序的应用程序标识符,以及/或者存储在条目中的控制器描述符是第一应用程序的控制器描述符。将参考图11更详细地描述应用程序标识符和控制器描述符的示例。

随后,源电子设备202与配套电子设备204建立协作活动通信信道(步骤554)。在一些实施方案中,源电子设备202使用建立协作活动通信信道的请求中的信息来连接配套电子设备204所创建的协作活动通信信道。例如,源电子设备202可通过使用配套电子设备204所提供的带有该请求的网络信息来连接协作活动通信信道,例如,如先前参考图5A、步骤512所述。

在一些实施方案中,源电子设备202创建协作活动通信信道,这包括源电子设备202确定配套电子设备204可用于连接源电子设备202所创建的协作活动通信信道的网络信息。在一些实施方案中,源电子设备202包括源电子设备202向配套电子设备204发送的、响应于建立协作活动通信信道的请求的网络信息,例如,如先前参考图5A、步骤512所述。例如,在一些实施方案中,源电子设备202确定的网络信息包括源电子设备202可连接/被连接到的现有网络(例如,无线和/或有线LAN,诸如基于802.11的网络、有线以太网等)的网络接口、协议、地址、端口、无线信道/频率、服务集标识符(SSID)和/或认证信息(密码、加密密钥等)。在一些实施方案中,配套电子设备204创建新网络(例如,对等/自组织网络、直接无线链路、VPN网络等),并且在网络信息中包括新网络的网络接口、协议、地址、端口、无线信道/频率、SSID和/或认证信息(密码、加密密钥等)。在一些实施方案中,源电子设备202使用源电子设备202宣告控制器宣告消息的相同网络(例如蓝牙网络)发送对建立协作活动通信信道的请求的响应。在一些实施方案中,源电子设备202使用不同网络发送对建立协作通信信道的请求的响应。

提供用于增强活动的控制器数据

图6A呈现了流程图,示出了根据一些实施方案的用于提供增强活动的控制器数据的过程。更具体地讲,在图6A中所示的过程期间,配套电子设备204向源电子设备202提供来自第二应用程序的控制器数据。需注意,图6A中所示的操作是作为由一些实施方案执行的操作的一般示例来呈现的。由其他实施方案执行的操作包括不同的操作和/或按照不同次序执行的操作。另外,虽然某些机构用于描述这些操作(例如,配套电子设备204),但在一些实施方案中,其他电子设备和/或机构执行这些操作。

当配套电子设备204开始执行第二应用程序,即配套应用程序时(步骤600),图6A中所示的过程即开始。例如,配套电子设备204可开始/启动配套电子设备204处的第二应用程序(如果第二应用程序尚未运行的话)。在一些实施方案中,在配套电子设备204与源电子设备202建立协作活动通信信道(例如,如先前参考图5A、步骤512和图5B、步骤554所述)之后,配套电子设备204开始第二应用程序。在一些实施方案中,开始第二应用程序包括配置第二应用程序以执行辅助活动,所述辅助活动可提供控制器宣告消息中所述的控制器的控制器数据。

接下来,配套电子设备204向第二应用程序提供接收自源电子设备202的活动数据(或表示活动数据的信息)(步骤602)。一般来讲,配套电子设备204使用与源电子设备202建立的协作活动通信信道,从源电子设备202接收活动数据。活动数据包括第二应用程序可用于执行辅助活动的数据,即第二应用程序可用于执行与提供控制器宣告消息中所述的控制器的控制器数据相关的操作的数据。例如,活动数据可包括第二应用程序用于在配套电子设备204处显示用户界面的数据(例如,图形数据和/或命令)。在一些实施方案中,活动数据包括使第二应用程序访问文档/资源的文档/资源标识符(例如,使第二应用程序从位于互联网上的基于云端的存储进行访问的云存储文档的标识符、使第二应用程序从数据库、URL等进行访问的文档的标识符等)等。在一些实施方案中,当第一应用程序中执行的活动包括编写在源电子设备202处存储的文档时,活动数据包括文档或表示文档的信息,从而使配套电子设备204和/或第二应用程序能够在配套电子设备204处为第二应用程序使用/重新创建文档。在一些实施方案中,活动数据包括用于在第二应用程序处执行辅助活动的指令/命令。在一些实施方案中,活动数据包括位置信息,例如,文档或网页中最后查看/滚动的位置的指示、视频游戏中的最后进行位置(例如,最后进行的关卡、玩家最后所处位置的坐标、挣得的分数和/或成绩、和/或可用于在配套电子设备204处重新创建源电子设备202上进行的游戏的状态的信息)等。

配套电子设备204随后向源电子设备202提供接收自第二应用程序的控制器数据(步骤604)。在一些实施方案中,配套电子设备204使用协作活动通信信道向源电子设备202发送控制器数据(但在一些实施方案中,配套电子设备204使用不同通信信道向源电子设备202发送控制器数据)。在一些实施方案中,第二应用程序向配套电子设备204提供或报告控制器数据。例如,在一些实施方案中,第二应用程序周期性地报告控制器数据(例如,每N秒报告一次,其中N是数字,诸如1、3等,每次第二应用程序发生事件时,诸如在第二应用程序中更新文档、在第二应用程序中提供用户输入、在第二应用程序处接收来自配套电子设备204的传感器和/或外围设备的数据等时,报告控制器数据)。在一些实施方案中,配套电子设备204向第二应用程序查询控制器数据。在一些实施方案中,第二应用程序是配套电子设备204处的操作系统的一部分,例如,操作系统进程/服务、设备驱动程序等。

一般来讲,上述控制器数据描述、基于或以其他方式表示在使用第二应用程序执行辅助活动时在配套电子设备204处执行的动作。例如,在一些实施方案中,第二应用程序和/或配套电子设备204充当源电子设备202处的第一应用程序的控制器,例如,第二应用程序/配套电子设备204充当键盘、触摸屏和/或游戏控制器。在一些实施方案中,控制器数据包括在配套电子设备204处接收的动作/输入,所述动作/输入来自键盘(例如,在虚拟和/或物理键盘处按压的按键)、触摸屏(例如,在触摸屏处执行的坐标、运动和/或手势)、游戏控制器(例如,定向输入、按钮点击等)、加速度计和/或能够在配套电子设备204处接收用户输入的一个或多个其他部件。

在一些实施方案中,控制器数据包括接收自配套电子设备204的传感器、换能器和/或外围设备(或它们的组合)的数据。例如,在一些实施方案中,控制器数据包括来自拇指指纹读取器的认证数据(例如,指纹数据)、接收自相机的视频和/或图像、接收自蜂窝天线的数据、接收自麦克风的声音以及/或者接收自配套电子设备204上的一个或多个其他传感器或换能器的数据(或它们的组合)。

使用控制器数据来增强活动

图6B呈现了流程图,示出了根据一些实施方案的用于使用控制器数据来增强活动的过程。更具体地讲,在图6B所示的过程中,源电子设备202使用来自配套电子设备204的控制器数据,来增强在源电子设备202处的第一应用程序中执行的活动。需注意,图6B中所示的操作是作为由一些实施方案执行的操作的一般示例来呈现的。由其他实施方案执行的操作包括不同的操作和/或按照不同次序执行的操作。另外,虽然某些机构用于描述这些操作(例如,源电子设备202),但在一些实施方案中,其他电子设备和/或机构执行这些操作。

当源电子设备202向配套电子设备204提供在源电子设备202处第一应用程序中执行的活动的活动数据时(步骤650),图6B中所示的过程开始。在一些实施方案中,源电子设备202在与配套电子设备204建立协作活动通信信道(例如,如先前参考图5B、步骤554所述)之后提供活动数据。在一些实施方案中,源电子设备202使用协作活动通信信道将活动数据传输到配套电子设备204(但在一些实施方案中,源电子设备202使用不同通信信道来传输活动数据)。在一些实施方案中,第一应用程序向源电子设备202提供或报告控制器信息。例如,在一些实施方案中,第一应用程序提供连同初始控制器信息一起的一些或全部活动数据(参见图3、步骤300),并且/或者周期性地报告活动数据,例如,每N秒报告一次,其中N是数字,诸如1、3等,每次第一应用程序发生事件时,诸如在第一应用程序中更新文档、在第一应用程序中提供用户输入等时,报告活动数据。在一些实施方案中,源电子设备202向第一应用程序查询活动数据。在一些实施方案中,第一应用程序是源电子设备202处的操作系统的一部分,例如,操作系统进程/服务、设备驱动程序等。

一般来讲,活动数据包括与源电子设备202处的第一应用程序中执行的活动相关的命令、指令和/或数据,配套电子设备204处的第二应用程序(即,配套应用程序)可使用这些活动数据执行辅助活动,以增强在源电子设备202处的第一应用程序中执行的活动。例如,活动数据可包括可被第二应用程序用于在配套电子设备204处显示用户界面的图形数据和/或命令、可被第二应用程序用于访问文档的文档/资源标识符(例如,使第二应用程序从位于互联网上的基于云端的存储进行访问的云存储文档的标识符,使第二应用程序从数据库、URL等进行访问的文档的标识符)、与第一应用程序中执行的活动相关的文档和/或网页使用第一应用程序最后查看/滚动到的最后位置的指示、存储在源电子设备202处和/或存储在可在互联网(例如,“云存储”)或企业网上访问的存储设备中的草稿文档的副本等。

源电子设备202随后向第一应用程序提供接收自配套电子设备204的控制器数据(或表示控制器数据的信息)(步骤652),例如,配套电子设备204向源电子设备202提供的控制器数据,如参考图6A、步骤604所述。随后,第一应用程序可使用控制器数据对源电子设备202处的第一应用程序中执行的活动执行动作。例如,在一些实施方案中,当控制器数据包括按键按压、移动和/或按钮按压时,控制器数据致使对应输入被提供给第一应用程序,例如致使按键按压、移动和/或按钮按压被提供给第一应用程序。在该实施例中,用户可使用配套电子设备204的键盘或由该配套电子设备呈现的键盘向第一应用程序提供按键按压,并且/或者使用配套电子设备204的触摸屏在第一应用程序处移动光标、执行手势、按压按钮和/或绘图。又如,当控制器数据包括来自配套电子设备204的游戏控制器和/或加速度计的数据时,用户可使用游戏控制器和/或加速度计在源电子设备202处玩游戏(即,第一应用程序包括游戏)。再如,当控制器数据包括来自配套电子设备204处的拇指指纹读取器的认证数据时,源电子设备202可使用认证数据为源电子设备202处的第一应用程序中执行的活动的认证用户。

如先前所讨论,在一些实施方案中,第一应用程序是源电子设备202处的操作系统的一部分(例如,操作系统的进程和/或服务、设备驱动程序等)。在这些实施方案中,源电子设备202将控制器数据提供给第一应用程序,即提供给操作系统的一部分,其随后将控制器数据(或表示控制器数据的信息)传送到第三应用程序,从而使源电子设备202能够模拟对源电子设备202处不可用/未连接到该源电子设备的控制器的连接,就好像控制器连接到源电子设备202一样。在一些实施方案中,第三应用程序不知道控制器在源电子设备202处不可用,即不知道正发生活动增强以提供控制器数据。

终止活动增强

配套电子设备204继续对步骤602-604(参见图6A)执行操作,并且源电子设备202继续对步骤650-652(参见图6B)执行操作,直到第一应用程序与第二应用程序之间的活动增强/协作终止。终止活动增强一般包括关闭协作活动通信信道,即停止经协作活动通信信道的活动数据和控制器数据交换。在一些实施方案中,关闭协作活动通信信道包括关机、置于睡眠状态和/或以其他方式禁用用于通过协作活动通信信道进行通信的源电子设备202和/或配套电子设备204处的硬件。

在一些实施方案中,源电子设备202终止活动增强,这可包括源电子设备202向配套电子设备204发送信号以指示活动增强将被终止。在一些实施方案中,在源电子设备202处接收到来自用户的终止活动增强的命令时,源电子设备202终止活动增强。在一些实施方案中,源电子设备202通过使用源电子设备202处可用的数据(例如,基于其间在源电子设备202处没有接收到用户输入的暂停、基于其间从配套电子设备204没有接收到通信的暂停、基于源电子设备202的电池电量、操作状态或另一操作参数等)作出确定,来终止活动增强。在一些实施方案中,从配套电子设备204接收到终止活动协作的信号时,源电子设备202终止活动协作。

在一些实施方案中,配套电子设备204终止活动增强,这可包括配套电子设备204向源电子设备202发送信号以指示活动增强将被终止。在一些实施方案中,在配套电子设备204处接收到来自用户的终止活动增强的命令时,配套电子设备204终止活动增强。在一些实施方案中,配套电子设备204通过使用配套电子设备204处可用的数据(例如,基于其间在配套电子设备204处没有接收到用户输入的暂停、基于其间从配套电子设备204没有接收到通信的暂停、基于配套电子设备204的电池电量、操作状态或另一操作参数等)作出确定,来终止活动协作。在一些实施方案中,从源电子设备202接收到终止活动协作的信号时,配套电子设备204终止活动协作。

使用云配对的安全通信

如先前所讨论,在一些实施方案中,执行活动增强的操作的电子设备参与初步配对操作,例如“云配对”操作,诸如待审美国专利申请no.xx/xxx,xxx中所述的预定义配对,该专利申请名称为“Predefined Wireless Pairing”,由发明人Jason C.Conn、Akshay Mangalam Srivatsa、Craig P.Dooley和Michael Giles在本申请的同一天提交,具有代理人案卷号APL-P22642USP1,且其内容如上所述的那样以引用的方式并入。在一些实施方案中,电子设备使用在云配对操作期间获取的安全信息,例如使用在云配对操作期间获取的加密密钥,对彼此交换用于执行活动增强操作的消息进行加密和解密。

例如,在一些实施方案中,源电子设备202使用在源电子设备202与配套电子设备204一起执行的云配对操作期间获取的加密密钥,对活动宣告消息(参见图3、步骤310)和/或活动数据(参见图6B、步骤650)进行加密。在一些实施方案中,配套电子设备204使用在配套电子设备204与源电子设备202一起执行的云配对操作期间获取的相同安全信息、不同安全信息以及/或者从在云配对操作期间获取的安全信息得出的信息,对控制器数据(参见图6A、步骤604)进行加密。在一些实施方案中,源电子设备202和/或配套电子设备204使用在云配对操作期间获取的安全信息,对被交换用于建立协作活动通信信道(参见图5A、步骤512和图5B、步骤554)的信息进行加密。

使用控制器标识符确定第二应用程序

如先前所述,在一些实施方案中,电子设备确定第二应用程序(即,配套应用程序)在电子设备处是否可用,所述第二应用程序可提供在控制器宣告消息中宣告的控制器的控制器数据。图7呈现了流程图,示出了用于确定第二应用程序在电子设备处是否可用的过程,该第二应用程序可提供在控制器宣告消息中宣告的控制器的控制器数据。更具体地讲,在图7所示的过程中,配套电子设备204确定第二应用程序在配套电子设备204处是否可用,所述第二应用程序可向第一应用程序提供控制器数据,即在来自源电子设备204的控制器宣告消息中宣告的控制器的控制器数据。图7中所示的操作可在图5A中步骤504处所示的过程期间执行。需注意,图7中所示的操作是作为由一些实施方案执行的操作的一般示例来呈现的。由一些实施方案执行的操作包括不同的操作和/或按照不同次序执行的操作。另外,虽然某些机构用于描述这些操作(例如,配套电子设备204等),但在一些实施方案中,其他机构执行这些操作。例如,源电子设备202和第二源电子设备206中的一者或两者可执行类似操作,以为其自身确定第二应用程序是否可用。

当配套电子设备204确定控制器宣告消息中的标记是否被断言时(步骤700),图7所示的过程开始。如先前所述,在一些实施方案中,源电子设备202断言控制器宣告消息中的标记,以指示控制器标识符是/包括所宣告活动的域名的表示。在这些实施方案中的一些中,配套电子设备204通过确定该标记被断言,来确定控制器宣告消息包括域名的表示。如也在先前所述,在一些实施方案中,源电子设备202断言控制器宣告消息中的标记,该标记标识第一应用程序从其接受控制器数据的控制器。随后将参考图11和图13更详细地描述标记。

如果控制器宣告消息中的标记被断言(步骤700,是),则配套电子设备204处理该标记(步骤702)。随后将参考图8描述该标记的处理,这在步骤702处发生。一些实施方案对控制器宣告消息中的每个断言标记重复步骤702(即,参考图8所述的处理),例如,当控制器宣告消息包括两个或更多个断言标记时,对每个断言标记重复该处理。

如果控制器宣告消息不包括被断言的标记(步骤700,否),则配套电子设备204将来自控制器宣告消息的控制器标识符与在配套电子设备204处可用的控制器的控制器标识符进行比较(步骤704)。例如,配套电子设备204可从配套电子设备204处的可用控制器表(或配套电子设备204存储可用控制器信息的其他结构,如先前参考图4所述)中的控制器标识符中的控制器宣告消息查找控制器标识符。

如果对控制器标识符的查找在可用控制器表中的条目中找到匹配(步骤706,是),则配套电子设备204确定在控制器宣告消息中所述的第二应用程序和/或控制器在配套电子设备204处可用,即确定第二应用程序是其应用程序标识符和/或控制器描述符存储在条目中的应用程序,该条目的控制器标识符与控制器宣告消息中的控制器标识符匹配(步骤708)。

如果对控制器标识符的查找未在可用控制器信息中找到匹配(步骤706,否),则配套电子设备204确定在控制器宣告消息中所述的第二应用程序/控制器在配套电子设备204处不可用(步骤710)。

使用标记确定第二应用程序

如先前所述,一些实施方案断言控制器宣告消息中的标记。图8呈现了流程图,示出了根据一些实施方案的用于使用标记确定第二应用程序的过程。更具体地讲,图8呈现了流程图,示出了配套电子设备204在图7的步骤702处执行的过程。需注意,图8中所示的操作是作为由一些实施方案执行的操作的一般示例来呈现的。由一些实施方案执行的操作包括不同的操作和/或按照不同次序执行的操作。另外,虽然某些机构用于描述这些操作(例如,配套电子设备204等),但在一些实施方案中,其他机构执行这些操作。例如,源电子设备202和第二源电子设备206中的一者或两者可为其自身执行类似操作。

当配套电子设备204确定与标记对应的应用程序时(步骤800),图8所示的过程开始。在一些实施方案中,配套电子设备204使用断言标记的位置和/或该标记的值来确定与该标记对应的应用程序。例如,当控制器宣告消息包括不止一个可被断言的标记时,每个标记均可用于标识可提供控制器数据的不同应用程序。在一些实施方案中,所述标记是多比特字段,并且该多比特字段的不同值标识不同应用程序。在一些实施方案中,配套电子设备204存储映射,该映射标识这些标记的位置/值所对应的应用程序。

接下来,配套电子设备204确定与该标记对应的应用程序在配套电子设备204处是否可用(步骤802)。例如,配套电子设备204可检查是否在配套电子设备204处安装了与该标记对应的应用程序。在一些实施方案中,不执行/跳过步骤802,以使得图8所示的过程从步骤800继续到步骤804。例如,在使用标记仅标识预期在配套电子设备204处可用的应用程序和/或操作系统服务的实施方案中,不执行步骤802。

如果与该标记对应的应用程序可用(步骤802,是),则配套电子设备204确定第二应用程序是与该标记对应的应用程序(步骤804)。该过程随后结束,这可包括继续到图5A中的步骤506。

如果与该标记对应的应用程序在配套电子设备204处不可用(步骤802,否),则该过程结束。此时,配套电子设备204可确定第二应用程序不可用(例如,按图5A中步骤504,否那样继续),或者可继续到图7中的步骤704,以通过使用来自控制器宣告消息的控制器标识符来确定第二应用程序是否可用。

在一些实施方案中,源电子设备202在控制器宣告消息中设定第二标记(或该标记的不同值),以指示源电子设备202将随后提供描述在配套电子设备204处如何执行辅助活动和/或第二应用程序的指令/信息。在一些实施方案中,与该标记对应的应用程序包括描述如何执行辅助活动和/或第二应用程序的指令/信息。在一些实施方案中,源电子设备202可包括使用协作活动通信信道传输到配套电子设备204的描述如何执行辅助活动和/或第二应用程序的指令/信息。

使用存储所宣告活动的结构来确定第二应用程序

如先前参考图3所述,在一些实施方案中,控制器宣告消息中的控制器标识符标识结构(例如,所宣告控制器表)中的条目,在该结构中宣告控制器宣告消息的电子设备存储所宣告控制器的控制器信息。图9呈现了流程图,示出了当控制器标识符标识这种结构中的条目时,根据一些实施方案的用于确定第二应用程序是否可用的过程。更具体地讲,在图9所示的过程中,配套电子设备204使用标识所宣告控制器表(其中源电子设备202存储所宣告控制器的控制器信息)中的条目的控制器标识符,来确定可提供第一应用程序所接受的控制器数据的第二应用程序在配套电子设备204处是否可用(下文将参考图12更详细地描述所宣告控制器表的示例)。需注意,图9中所示的操作是作为由一些实施方案执行的操作的一般示例来呈现的。由一些实施方案执行的操作包括不同的操作和/或按照不同次序执行的操作。另外,虽然某些机构用于描述这些操作(例如,源电子设备202、配套电子设备204),但在一些实施方案中,其他电子设备和/或机构执行这些操作。

当配套电子设备204接收标识所宣告控制器表(其中源电子设备202存储所宣告控制器的控制器信息)中的条目的控制器标识符时(步骤900),图9所示的过程开始。在一些实施方案中,控制器标识符包括表标识符和条目索引,该表标识符标识源电子设备202在其中存储所宣告控制器的控制器信息的所宣告控制器表,该条目索引标识由表标识符(其中存储所宣告控制器的控制器信息)标识的所宣告控制器表中的条目。

接下来,配套电子设备204确定由控制器标识符标识的所宣告控制器表在配套电子设备204处是否可用(步骤902)。在一些实施方案中,配套电子设备204使用来自控制器标识符的表标识符,来确定配套电子设备204是否已存储所宣告控制器表的本地副本。

如果控制器标识符的所宣告控制器表在配套电子设备204处不可用(步骤902,否),则配套电子设备204从源电子设备202检索所宣告控制器表(步骤904)。在一些实施方案中,配套电子设备204请求源电子设备202发送由来自控制器宣告消息的控制器标识符标识的所宣告控制器表,例如由表标识符标识的所宣告控制器表。配套电子设备204可传输这种请求,并且源电子设备202可使用协作活动通信信道和/或不同信道来响应于该请求。

在一些实施方案中,配套电子设备204周期性地与源电子设备202同步其所宣告控制器表的一个/多个本地副本。例如,配套电子设备204可使用“推送”机构从源电子设备202接收所宣告控制器表的副本,即不发送对所宣告控制器表的副本的请求。

如果控制器标识符的所宣告控制器表在配套电子设备204处可用(步骤902,是),或者在接收到来自源电子设备202的所宣告控制器表之后(步骤904),配套电子设备204使用控制器标识符从所宣告控制器表检索控制器信息(步骤906)。例如,配套电子设备204可从由条目索引标识的所宣告控制器表中的条目检索控制器信息。如先前参考图5A、步骤508所讨论,配套电子设备204可使用所检索的控制器信息对活动可增强的指示进行自定义。在一些实施方案中,配套电子设备204使用所检索的控制器信息来开始执行第二应用程序并/或配置第二应用程序以执行辅助活动,例如,如参考图6A、步骤600所述。

在一些实施方案中,图9所示的操作使描述不止一个控制器的信息能够在单个控制器宣告消息中被宣告。例如,考虑控制器宣告消息的大小受限的情况,例如,由于用于广播控制器宣告消息的网络协议的限制而受限。在这种情况下,条目标识符(即,标识存储控制器信息的条目的控制器标识符)可小于编码表示(即,使用比由相同控制器信息生成的控制器标识符更少的比特来表示),从而使这些实施方案能够在控制器宣告消息中携带多个条目标识符。

如先前参考图3所述,所述实施方案不限于使用表来存储可用控制器信息。一些实施方案使用不同结构来存储可用控制器信息,诸如关联阵列、内容可寻址存储器等。在这些实施方案中,控制器标识符可标识源电子设备202在其中存储所宣告控制器的控制器信息的结构中的条目。例如,在这些实施方案中,表标识符可标识该结构,并且条目索引可标识其中源电子设备202存储所宣告控制器的控制器信息的结构中的索引。

另外,虽然描述了使用一个所宣告控制器表的实施方案,但一些实施方案使用不止一个所宣告控制器表,例如在不同的所宣告控制器表中存储所宣告控制器的控制器信息。例如,在一些实施方案中,所宣告控制器表可根据电子设备的不同配置来生成,诸如当安装不同应用程序或从电子设备移除不同应用程序时,当电子设备上的应用程序使用不同控制器时,等等。

确定最近控制器宣告

如先前所述,网络环境200可包括第二源电子设备,其可广播可在第二源电子设备处使用的控制器的控制器宣告消息。如也在先前所述,一些实施方案将时间戳包括在应用程序的控制器宣告消息中,以指示最后执行应用程序中执行的活动的时间。图10呈现了流程图,示出了根据一些实施方案的用于利用两个或更多个控制器宣告消息来确定最近控制器宣告消息的过程。更具体地讲,在图10所示的过程中,配套电子设备204使用与来自源电子设备202的宣告(“控制器宣告”)包括在一起的时间戳以及包括来自第二源电子设备206的宣告(“第二控制器宣告”)的时间戳,由第一宣告和第二控制器宣告来确定最近控制器宣告。需注意,图10中所示的操作是作为由一些实施方案执行的操作的一般示例来呈现的。由一些实施方案执行的操作包括不同的操作和/或按照不同次序执行的操作。另外,虽然某些机构用于描述这些操作(例如,源电子设备202、配套电子设备204、第二源电子设备206),但在一些实施方案中,其他电子设备和/或机构执行这些操作。

对于图10中所示的过程而言,假定配套电子设备204已经从源电子设备202接收到控制器宣告消息,例如,如图5A、步骤500中所示。因此,配套电子设备204具有控制器宣告,其包括第一时间戳,即与控制器宣告包括在一起的时间戳。

当配套电子设备204接收第二控制器宣告消息时(步骤1000),图10所示的过程开始。接下来,配套电子设备204将第一时间戳与第二时间戳(即,与第二控制器宣告消息包括在一起的时间戳)进行比较(步骤1002)。例如,配套电子设备204可比较这些时间戳以查看哪个较新(即,指示较近的时间)。

如果该比较指示第一时间戳较新(步骤1004,是),则配套电子设备确定第一应用程序的控制器宣告(即,在控制器宣告中宣告的控制器)为最近宣告(步骤1006)。否则,如果该比较指示第二时间戳较新(步骤1004,否),则配套电子设备204确定第二控制器宣告(即在第二控制器宣告中宣告的控制器)为最近控制器宣告(步骤1008)。

在一些实施方案中,配套电子设备204通过仅呈现对于最近所宣告的控制器宣告而言活动可增强的指示,减少在配套电子设备204的显示器中向用户呈现的指示数量(例如,如图14所示)。在一些实施方案中,配套电子设备204使用时间戳依次呈现活动可增强的指示,例如,首先呈现最近控制器宣告的指示,然后基于相对新近度以降序呈现控制器宣告的其他指示。在这些实施方案中,两个或更多个指示可根据对应控制器宣告的相对新近度来并排呈现、彼此叠置呈现等。需注意,通过仅呈现某些指示,这些实施方案可限制显示指示的活动数量,从而简化呈现给用户的界面,例如通过呈现比可能的可增强活动的整个集合更少、更相关的可增强活动的指示。

在一些实施方案中,配套电子设备204使用先前已增强的活动的历史来依次呈现可增强的活动的指示。在一些实施方案中,配套电子设备204将先前已增强的活动排序为较高次序,即,在呈现先前未增强的活动可增强的指示之前,先呈现先前已增强的活动可增强的指示。在一些实施方案中,基于每个对应活动先前已增强的多个时间来依次呈现两个或更多个指示。

控制器信息

如先前所述,一些实施方案使用描述控制器的控制器信息,在电子设备的应用程序处执行的活动能够使用来自该控制器的控制器数据。图11呈现了框图,示出了根据一些实施方案的控制器信息1100、控制器信息1110、控制器信息1120和控制器信息1130。需注意,图11中所示的控制器信息1100、控制器信息1110、控制器信息1120和控制器信息1130是作为由一些实施方案所使用的控制器信息的格式的一般示例来呈现的。一些实施方案在控制器信息中使用不同格式并/或包括不同信息。

控制器信息1100包括应用程序标识符1102,其标识用于执行活动的应用程序,所述活动可使用来自控制器信息1100中所述控制器的控制器数据。例如,包括字符串com.apple.Keynote的应用程序标识符1102标识应用程序Keynote,一款可用于编辑和查看演示文稿的应用程序。控制器描述符1104包括字符串SlideshowRemote,其标识用应用程序Keynote执行的活动可接受来自幻灯片放映遥控(例如,用于在查看演示文稿时在幻灯片中移动的遥控)的控制器数据。包括字符串/数字103的时间戳1106标识最后执行活动的时间,例如,用户在应用程序Keynote中查看演示文稿的最后时间。在一些实施方案中,时间戳指示实际时间,例如最后执行活动时的绝对/挂钟时间(或其表示,诸如系统时间),或者时间戳可为自整点后最后执行活动以来或自同步事件以来所经过的时间的表示。在一些实施方案中,时间戳指示实际时间,例如最后使用(例如,用户最后主动使用)源电子设备202时的绝对/挂钟时间(或其表示,诸如系统时间),或者时间戳可为自整点后最后使用源电子设备202以来或自同步事件以来所经过的时间的表示。在控制器信息1100中,标记1108未被断言。

控制器信息1110包括应用程序标识符1112,其标识用于执行活动的应用程序,所述活动可使用来自控制器信息1110中所述控制器的控制器数据。例如,包括字符串com.apple.TVMenu的应用程序标识符1112标识应用程序TVMenu,一款可用于观看电视和/或流式视频的应用程序。控制器信息1110不包括控制器描述符,并使用标记1116来描述控制器,应用程序TVMenu中执行的活动可接受来自该控制器的控制器数据。例如,标记1116被设定为对应于键盘的值64,从而指示应用程序TVMenu中执行的活动接受来自键盘的控制器数据。包括字符串/数字210的时间戳1114标识最后执行活动的时间,例如,用户使用TVMenu浏览和/或观看视频的最后时间。

控制器信息1120包括标识控制器的控制器描述符1122,广播包括控制器信息1120的控制器宣告消息的电子设备可接受来自该控制器的控制器数据。例如,包括字符串com.apple.GameControllerDeviceDriver的控制器描述符1122标识发送设备正寻求从游戏控制器诸如操纵杆、加速度计等接收控制器数据。控制器信息1120不标识活动宣告的应用程序,因为单独的控制器描述符就足以标识正从游戏控制器寻求控制器数据的应用程序。例如,控制器描述符1122标识操作系统中的应用程序(例如,系统进程、设备驱动程序等),该应用程序可(例如在无需较高级应用程序知晓从另一设备接收控制器数据的情况下)向较高级应用程序提供控制器数据。包括字符串/数字315的时间戳1124标识用户最后使用发送设备的时间,例如用户主动与发送设备交互的最后时间。

控制器信息1130包括应用程序标识符1132,其标识用于执行活动的应用程序,所述活动可使用控制器信息1130中所述的控制器数据。例如,包括字符串com.apple.Safari的应用程序标识符1132标识应用程序Safari,一款web浏览器。控制器描述符1134包括字符串www.evideostreamer.com,其标识用web浏览器访问的域名。在该实施例中,控制器描述符1134持有域名,因此控制器信息1130中的标记1138被断言,以指示控制器描述符1134包括域名。在该实施例中,第二应用程序可为已申请到域名www.evideostreamer.com的应用程序或与该标记对应的应用程序。包括字符串/数字820的时间戳1136标识最后使用web浏览器访问移动流网站的时间。

出于例示性目的,图11中所示的时间戳被计算为偏离同步事件(例如整点)的Δ(差值)。因此,在图11所示的示例中,包括控制器信息1100的控制器宣告消息为最近控制器宣告消息,因为时间戳1106指示自可使用控制器信息1100中所述的控制器的控制器数据的活动执行以来已从整点经过的最少时间量。

需注意,虽然图11中所示的示例对应用程序标识符和控制器描述符使用字符串,但一些实施方案可使用不同信息来标识应用程序和/或控制器。例如,一些实施方案对应用程序标识符和/或控制器描述符使用数字标识符。在一些实施方案中,应用程序标识符为用于在线“应用商店”中的对应应用程序的标识符。又如,一些实施方案包括活动描述符,其描述第一应用程序中执行的与控制器信息相关的活动,即可通过使用来自控制器信息中所述控制器的控制器数据来增强的活动(活动描述符在相关共同待审的美国专利申请xx/xxx,xxx、代理人案卷号APL-P22791USP1中更详细地讨论)。另外,虽然所示的应用程序标识符是与控制器描述符分开的,但一些实施方案将应用程序标识符和控制器描述符组合成单个标识符。

在一些实施方案中,应用程序/app开发者提供用于控制器描述符(诸如控制器描述符1104)的信息。在这些实施方案中,应用程序/app的开发者可确定控制器的数量,应用程序/app中执行的活动可接受来自这些控制器的控制器数据,并且可提供控制器描述符的相关值。

所宣告控制器表

图12呈现了框图,示出了根据一些实施方案的所宣告控制器表1200。如上所述,所宣告控制器表1200包括有关已宣告的控制器(即,已由电子设备诸如源电子设备202对其发送控制器宣告消息的控制器)的信息。需注意,图12中所示的所宣告控制器表是作为由一些实施方案使用的所宣告控制器表的一般示例来呈现的。一些实施方案以不同方式表示控制器信息,并/或在所宣告控制器表中包括更多或更少的信息。

由条目索引1206标识的条目1202存储控制器信息1100和控制器标识符1204。在该实施例中,使用应用程序标识符1102和控制器描述符1104诸如字符串散列“com.apple.Keynote::SlideshowRemote”来生成控制器标识符1204。

由条目索引1216标识的条目1212存储控制器信息1110和控制器标识符1214。在该实施例中,使用应用程序标识符1112诸如字符串散列“com.apple.TVMenu”来生成控制器标识符1214。

由条目索引1226标识的条目1222存储控制器信息1120和控制器标识符1224。在该实施例中,使用控制器描述符1122诸如字符串散列“com.apple.GameControllerDeviceDriver”来生成控制器标识符1224。

由条目索引1236标识的条目1232存储控制器信息1130和控制器标识符1234。在该实施例中,使用控制器描述符1122诸如字符串散列“www.evideostreamer.com”来生成控制器标识符1234。

出于例示性目的,条目1202-1232分别存储所有控制器信息1100-1130。但需注意,在一些实施方案中,条目1202-1232仅分别存储一些控制器信息1100-1130。例如,一些实施方案在条目1202-1232中不存储时间戳1106、时间戳1114、时间戳1124和/或时间戳1136中的一者或多者。

可用控制器表

在一些实施方案中,上述可用控制器表以与图12中所示所宣告控制器表1200类似的方式格式化。然而,可用控制器表中的条目包括可用于对应电子设备(例如配套电子设备204)中的控制器的控制器信息。

控制器宣告消息

图13呈现了框图,示出了根据一些实施方案的控制器宣告1300,例如控制器宣告消息。需注意,图13中所示的控制器宣告消息是作为由一些实施方案使用的控制器宣告消息的一般示例来呈现的。一些实施方案以不同方式对控制器宣告消息中的字段进行排序,并且/或者在控制器宣告消息中包括不同信息。

控制器宣告消息1300任选地包括设备ID字段1302和版本ID字段1304。设备ID字段1302包括标识设备(例如,标识源电子设备202)的标识符,控制器宣告消息1300从所述设备发送。版本ID字段1304包括版本标识符,诸如配套电子设备204可用于确定控制器宣告消息1300中的字段如何格式化以及/或者信息如何存储在字段中的版本标识符。

控制器标识符字段1306包括控制器标识符,例如控制器标识符1204-1234中的一者或多者。标记字段1308包括与所宣告控制器对应的一个或多个标记,例如标记1108、标记1116、标记1126和/或标记1138。

时间戳字段1310包括用于在控制器标识符字段1306中宣告的控制器的时间戳,例如时间戳1106、时间戳1114、时间戳1124和时间戳1136中的一者或多者。

可增强活动指示

如先前所述,一些实施方案在电子设备处呈现了该电子设备可用于增强在另一电子设备处执行的活动的指示。图14呈现了框图,示出了根据一些实施方案的可增强活动指示,即在电子设备(例如,配套电子设备204)处呈现的指示该电子设备可用于增强在另一电子设备(例如,源电子设备202)处执行的活动的指示。更具体地讲,图14示出了在配套电子设备204的显示器1400上显示的可增强活动指示。需注意,图14中所示的可增强活动指示是作为由一些实施方案使用的可增强活动指示的一般示例来呈现的。一些实施方案使用不同的可增强活动指示,并/或以不同方式呈现可增强活动指示。

在例示的实施方案中,配套电子设备204为包括触摸屏显示器1400的智能电话。图14中所示的实施方案处于接收状态,因为显示器1400显示带有解锁指示器1402的锁定屏幕,该解锁指示器显示短语“滑动解锁”。一般来讲,配套电子设备204的用户利用解锁指示器1402执行解锁配套电子设备204的操作,诸如用手指将解锁指示器1402的图形滑过显示器1400。

可增强活动指示1404包括用户可操纵以接受(或拒绝)活动增强的图形,例如图标。在图14中,可增强活动指示1404包括类似于键盘的图标,指示该可增强活动接受来自键盘的控制器数据。在一些实施方案中,用户可通过点击/触摸可增强活动指示1404以及/或者在显示器1400上沿着一定路径移动可增强活动指示1404来接受活动增强。例如,在一些实施方案中,用户可通过沿着路径1406(示出为虚线)或在该路径附近触摸并拖动可增强活动指示1404来接受活动增强。

出于例示性目的,可增强活动指示1404显示于配套电子设备204的锁定屏幕处。在一些实施方案中,可增强活动指示1404可显示在不同屏幕/位置处,例如显示在解锁的屏幕处、显示在菜单栏处、通过使用通知窗口/弹出窗口显示等。另外,可增强活动指示1404的位置、大小、图形、颜色和/或其他视觉特征对于不同实施方案可有所不同,并且可取决于可恢复的活动的类型。例如,在一些实施方案中,配套电子设备204基于所宣告控制器的应用程序标识符和/或控制器描述符来确定可增强活动指示1404中所示的图形。又如,在一些实施方案中,可增强活动指示1404显示于显示器1400的左下角。一些实施方案同时呈现多个可增强活动的指示器。

需注意,接受(或拒绝)活动增强可包括沿着与路径1406不同的路径,例如朝屏幕的顶部、沿着弯曲路径等,移动可增强活动指示1404。在一些实施方案中,用户可通过点击可增强活动指示1404、轻敲可增强活动指示1404、划动可增强活动指示1404、使用可增强活动指示1404执行手势等来接受活动增强。

自动和手动控制器宣告

在一些实施方案中,源电子设备202自动地广播控制器宣告,例如以预定时间间隔广播、一接收到控制器信息就广播、基于源电子设备202的所检测位置来广播等。在这些实施方案中,源电子设备202可提供用户可用来打开或关闭控制器宣告消息的广播的设置,例如系统偏好设置。

在一些实施方案中,源电子设备202开始手动地广播控制器宣告消息,即等待来自用户的输入以开始广播控制器宣告消息。在这些实施方案中的一些中,源电子设备202在检测到用户的输入时开始广播控制器宣告消息,并继续广播控制器宣告消息一段预定时间以及/或者直到用户提供指导源电子设备202停止控制器宣告消息的输入。在一些实施方案中,用于开始和/或停止控制器宣告消息的用户输入包括源电子设备202的运动(例如,摇动源电子设备202,以弧形移动源电子设备202,振动源电子设备202,等等),在源电子设备202的触摸屏上执行一个或多个手势,按压按键和/或按钮组合,等等。

在一些实施方案中,控制器宣告消息和/或源电子设备202连同控制器宣告消息一起(即,作为控制器宣告消息的补充)发送给配套电子设备204的消息致使配套电子设备204启动定时器。在一些实施方案中,配套电子设备204保持如上所述的接收状态,直到该定时器到期。源电子设备202可向配套电子设备204提供定时器的到期时间,或者配套电子设备204可确定到期时间。

在一些实施方案中,配套电子设备204呈现配套电子设备204可用于增强在源电子设备202处执行的活动直到定时器到期的指示,并且如果用户接受该指示,则增强配套电子设备204处的活动而无需用户执行一个或多个操作(例如,指纹扫描、密码输入等)来解锁配套电子设备204。更具体地讲,配套电子设备204可检测用户接受了该指示,并且可绕过锁定屏幕/解锁操作,从而允许用户在不解锁配套电子设备204的情况下开始使用配套电子设备204。在一些实施方案中,仅允许用户绕过定时器到期之前的锁定屏幕/解锁操作。

活动增强框架

在一些实施方案中,第三方应用程序通过在可参与活动增强操作的电子设备处可用的“活动增强”框架,接收对一些或所有活动增强操作的访问,例如先前参考图3至图10所述的操作。活动增强框架可对执行至少一些活动增强操作的操作系统功能、守护进程、进程、服务等提供第三方应用程序访问。例如,在一些实施方案中,电子设备和/或电子设备的操作系统的提供方提供了应用编程接口(API),第三方应用程序可通过该应用编程接口调用有利于活动增强操作的功能。在一些实施方案中,活动增强框架使第三方应用程序(和第三方应用程序开发者)能够使用来自另一电子设备的控制器数据增强在一个电子设备处执行的活动,而无需实现(或甚至无需知晓)活动增强的低级别细节。

例如,在一些实施方案中,为了使第三方应用程序能够参与活动增强操作,第三方应用程序开发者提供第三方应用程序可从其接受控制器数据的控制器的控制器描述符,以及用于使第三方应用程序接收控制器数据的方法。在这些实施方案中的一些中,在电子设备诸如源电子设备202处,第三方应用程序调用由活动增强框架提供的功能,以提供控制器的控制器描述符(和可能的活动数据),第三方应用程序中执行的活动可接受来自该控制器的控制器数据。在电子设备诸如配套电子器件204处,为了配置第三方应用程序来提供控制器数据,活动增强框架可(例如,通过命令行开关或参数、通过使用对象等)将活动数据传送到第三方应用程序。随后,源电子设备202可接收来自活动增强框架的控制器数据,例如作为事件来接收、通过查询活动增强框架来接收等。因此,活动增强框架可在第三方应用程序开发者付出最少精力和费用的情况下促进第三方应用程序的活动增强。

在电子设备之间交换的消息

图15呈现了泳道图,示出了根据一些实施方案的在电子设备之间交换的消息。如图15中可以看出,在一段时间内,源电子设备202与配套电子设备204之间交换消息,其中控制器宣告1500最先发生,较低级的消息在随后的时间发生。虽然图15示出以特定次序交换的消息,但在一些实施方案中交换其他消息以及/或者以不同次序交换消息。一般来讲,所述实施方案中的电子设备交换足够的消息以启用本文所述的操作。

图15中的消息与由源电子设备202和/或配套电子设备204执行的三种操作相关联。第一种操作包括控制器宣告1500,为诸如图3中所示的控制器宣告操作。在控制器宣告操作期间,源电子设备202广播至少一个控制器宣告1500。

第二种操作包括建立通信信道1502的请求以及对建立通信信道1504的请求作出的响应,为诸如图5A至图5B中所示的建立通信信道的操作。在建立通信信道的操作期间,配套电子设备204以建立通信信道1502的请求响应控制器宣告1500。在接收到建立通信信道1502的请求时,源电子设备202通过发送对建立通信信道1504的请求的响应来作出响应。

第三操作包括活动数据1506和控制器数据1508,为诸如图6A至图6B中所示的活动增强的操作。在活动增强的操作期间,配套电子设备204提供活动数据1506,例如,第二应用程序可用于执行与第一应用程序中执行的活动相关的辅助活动的活动数据。配套电子设备204提供控制器数据1508,例如,第一应用程序可用于增强在第一应用程序中执行的活动的控制器数据。源电子设备202可继续(周期性地、在事件发生时等)提供活动数据,例如活动数据1506,并且配套电子设备204可继续(周期性地、在事件发生时、在接收到控制输入时等)提供控制器数据,例如控制器数据1508,直到活动增强终止。

对实施方案的上述描述仅仅是为了举例和描述的目的而呈现的。它们并不是穷举性的,也不是要将实施方案限制为所公开的形式。因此,对于本领域的技术人员而言,许多修改和变型将是显而易见的。因此,上面的公开内容并不旨在对实施方案进行限制。本实施方案的范围由所附权利要求来限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1