掌桥专利:专业的专利平台
掌桥专利
首页

本申请要求2019年5月23日提交的标题为“Data Synchronization AcrossMultiple Devices”的美国专利申请16/420,892以及2018年6月3日提交的标题为“DataSynchronization Across Multiple Devices”的美国临时专利申请62/679,854的优先权,这两个专利申请据此以引用方式并入本文。

技术领域

本公开整体涉及电子设备。更具体地,本公开涉及用于跨多个电子设备进行数据同步的系统和相关联的方法。

背景技术

电子设备(例如,计算机、平板电脑、移动电话、电视机等)移动程度越来越大并且连接程度越来越大。此外,用户可在给定时间段内与多个电子设备进行交互。例如,用户可在一个时间段内使用移动电话与一个或多个应用程序交互,然后在另一时间段内切换到平板电脑或膝上型计算机。当第一设备用于与应用程序交互时,可在第一设备上更新与用户跟应用程序的交互相关的各种数据。因此,用于将第一设备上的数据与一个或多个第二设备同步的技术可用于例如在多个连接设备之间处理数据。

发明内容

本文所述的实施方案提供了用于跨多个电子设备同步数据输入的技术。在一些实施方案中,本文所述的技术使得第一电子设备能够基于与数据相关的各种参数和/或各种数据连接的可用性和/或质量在对等数据连接或基于网络的通信之间进行选择,以用于在电子设备之间传输同步数据。

一个实施方案提供了一种电子设备,该电子设备包括用于存储指令的非暂态机器可读介质、用于执行指令的一个或多个处理器、以及耦接到一个或多个处理器的存储器。该存储器可被配置为存储与该电子设备和一个或多个应用程序之间的交互相关联的一组同步数据,以及指令,该指令在由该一个或多个处理器执行时将该一个或多个处理器配置为检索要从该电子设备传送的该一组同步数据,以选择来自对等信道或基于网络的信道中的一者的传输信道,并经由所选择的传输信道将该一组同步数据从该电子设备传送到一个或多个远程设备。

一个实施方案提供了一种存储指令的非暂态机器可读介质,该指令在由电子设备的一个或多个处理器执行时使得该一个或多个处理器执行包括以下操作,该操作包括:检索要从该电子设备传送到一个或多个远程设备的一组同步数据,选择来自对等信道或基于网络的信道中的一者的传输信道,以及经由所选择的传输信道将该一组同步数据从该电子设备传送到该一个或多个远程设备。

通过附图以及通过以下具体实施方式,本实施方案的其他特征将显而易见。

附图说明

本公开的实施方案以举例的方式而不是以限制的方式在各个附图的图示中进行说明,在附图中类似的附图标号是指类似的元件。

图1是根据实施方案的用于移动设备的示例性网络操作环境的框图。

图2是根据实施方案的示出用于安全存储数据项以进行同步的系统的图示。

图3是根据实施方案的其中可以实现跨多个设备的数据同步的电子设备的架构中的部件的示意图。

图4是根据实施方案的其中可以实现跨多个设备的数据同步的环境的示意图。

图5是根据本文所述实施方案的用于发现和连接电子设备的发现过程的操作的流程图。

图6是根据实施方案的用于跨多个设备进行数据同步的方法的流程图。

图7是根据实施方案的用于跨多个设备进行数据同步的方法的流程图。

图8A至图8C是根据实施方案的示出设备活动同步的框图。

图9示出了设备活动同步的流程图。

图10是示出了可用于一些实施方案中的示例性API架构的框图。

图11A至图11B是根据实施方案的示例性API软件栈的框图。

图12是根据实施方案的移动设备架构的框图。

图13是示出可以结合本公开的实施方案中的一个或多个使用的示例性计算系统的框图。

具体实施方式

本文所述的实施方案提供了用于管理电子设备的远程数据输入的技术。将参考以下论述的细节来描述各种实施方案和方面,并且附图将对各种实施方案进行说明。以下说明书和附图为例示性的,并且不应被理解为限制性的。描述了许多具体细节,以提供对各个实施方案的全面理解。然而,在某些实例中,熟知的或常规的细节并未被描述,以便提供对实施方案的简明论述。

在本说明书中对“一个实施方案”或“实施方案”的引用是指结合该实施方案描述的特定特征、结构或特性可以被包括在本发明的至少一个实施方案中。在本说明书中的各个位置出现短语“在一个实施方案中”不一定都是指同一个实施方案。随后的附图中描绘的过程由处理逻辑执行,该处理逻辑包括硬件(例如,电路、专用逻辑)、软件(作为非暂态机器可读存储介质上的指令),或硬件和软件的组合。现在将详细地参考各种实施方案,这些实施方案的示例在附图中示出。在下面的详细描述中给出了许多具体细节,以便提供对本发明的彻底理解。但是,对本领域技术人员将显而易见的是,本发明可在没有这些具体细节的情况下被实施。在其他情况下,没有详细地描述众所周知的方法、过程、部件、电路和网络,从而不会不必要地使实施方案的各个方面晦涩难懂。

还将理解的是,虽然术语“第一”、“第二”等可能在本文中用于描述各种元素,但是这些元素不应当被这些术语限定。这些术语只是用于将一个元件与另一元件区分开。例如,第一接触可被命名为第二接触,并且类似地,第二接触可被命名为第一接触,而不脱离本发明的范围。第一接触和第二接触两者都是接触,但是它们不是同一接触。

在本文中对本发明的描述中所使用的术语只是为了描述特定实施方案,而并非旨在作为对本发明的限制。如本发明说明书和所附权利要求中所使用的那样,单数形式的“一个”(“a”、“an”)和“该”旨在也涵盖复数形式,除非上下文清楚地另有指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联地列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”(“comprises”和/或“comprising”)在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件,和/或其分组。

如本文中所用,根据上下文,术语“如果”可以被解释为意思是“当...时”或“在...时”或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可被解释为是指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。

描述了计算设备、用于此类设备的用户界面、和用于使用此类设备的相关联的过程的实施方案。在一些实施方案中,计算设备是还包含其他功能(诸如PDA和/或音乐播放器功能)的便携式通信设备,诸如移动电话。便携式多功能设备的示例性实施方案包括但不限于来自Apple Computer,Inc.(Cupertino,California)的

本公开的一部分包含受版权保护的材料。由于本专利文档或本专利公开内容出现在专利与商标局专利文件或记录中,因此版权所有人不反对任何人对本专利文档或本专利公开内容的拓制,但会以其他方式保留任何形式的所有版权权利。版权所有2018苹果公司

在以下讨论中,描述一种包括触敏显示器的计算设备。然而,应当理解,计算设备可包括一个或多个其他物理用户界面设备,诸如独立显示器、物理键盘、鼠标、/或操纵杆。本文所述的电子设备支持各种应用程序,诸如以下应用程序中的一个或多个应用程序:记事本应用程序、绘图应用程序、呈现应用程序、文字处理应用程序、网站创建应用程序、盘编辑应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息应用程序、健身应用程序、照片管理应用程序、数字相机应用程序、数字摄像机应用程序、web浏览应用程序、数字音乐播放器应用程序、数字视频播放器应用程序、和/或家庭自动化应用程序。

可在设备上执行的各种应用程序可使用至少一个共用的物理用户界面设备,诸如触敏表面。触敏表面的一种或多种功能以及被显示在设备上的对应信息从一个应用程序到下一个应用程序可被调节和/或变化,和/或在相应应用程序内可被调节和/或变化。这样,该设备的共用物理架构(诸如触敏表面)可利用直观且透明的用户界面来支持各种应用程序。

下面就一些顺序操作描述了一些过程。然而,应当理解,所述操作中的一些操作可以不同的顺序来执行。此外,某些操作也可并行执行而非按顺序执行。

图1是根据实施方案的用于移动设备的示例性网络操作环境100的框图。移动设备102A和移动设备102B可例如通过一个或多个有线和/或无线网络110进行通信以执行数据通信。例如,无线网络112(如蜂窝网络)可通过利用网关116与广域网(WAN)114(如互联网)通信。同样地,接入设备118,诸如移动热点无线接入设备,可提供对广域网114的通信接入。

在一些具体实施中,语音通信和数据通信均可通过无线网络112和/或接入设备118来建立。例如,移动设备102A可通过无线网络112、网关116和广域网114(例如,使用TCP/IP或UDP协议)拨打和接收电话呼叫(例如,使用VoIP协议),发送和接收电子邮件消息(例如,使用POP3协议),以及检索电子文档和/或流,诸如网页、照片和视频。在一些具体实施中,移动设备102A可通过接入设备118和广域网114来拨打和接收电话呼叫、发送和接收电子邮件消息以及检索电子文档。在一些具体实施中,移动设备102A或移动设备102B可使用一条或多条电缆物理地连接到接入设备118,例如,其中接入设备118为个人计算机。在该配置中,移动设备102A或移动设备102B可以被称为“系留”设备。在一个实施方案中,移动设备102A可经由无线对等连接120与移动设备102B进行通信。无线对等连接120可用于在设备之间同步数据。

移动设备102A或移动设备102B可通过一个或多个有线和/或无线网络110与一个或多个服务进行通信,这些服务诸如电话服务130、即时消息服务140、媒体服务150和存储服务160。例如,电话服务130可实现移动设备102A和移动设备102B之间或者移动设备和有线电话设备之间的电话通信。电话服务130可通过广域网114路由基于IP的语音(VoIP)呼叫,或者可访问蜂窝语音网络(例如,无线网络112)。即时消息服务140可例如提供电子邮件和/或其他即时消息服务。媒体服务150可例如提供对媒体文件的访问,诸如歌曲文件、有声读物、电影文件、视频剪辑和其他媒体数据。存储服务160可向移动设备102A和移动设备102B提供网络存储能力以存储文档和媒体文件。还可提供其他服务,包括用于更新移动设备上的操作系统软件或客户端软件的软件更新服务。在一个实施方案中,即时消息服务140、媒体服务150和存储服务160可各自与云服务提供方相关联。

图2是根据实施方案的示出用于安全存储数据项以进行同步的系统200的图示。系统200包括第一设备202、第二设备204、第三设备206和远程存储位置208。第一设备202、第二设备204、第三设备206和远程存储位置208使用一个或多个网络210通信地耦接在一起。一个或多个网络210可包括有线网络和无线网络两者。网络210可以是例如局域网、广域网或互联网的一部分。

第一设备202、第二设备204和第三设备206可包括例如台式或膝上型计算设备、移动设备、平板设备、个人数据助理、可穿戴设备、电视或电视机顶盒、智能扬声器设备或其他计算设备。具体地,第一设备202和第二设备204中的每一者可与第一用户或用户账户212相关联。类似地,第三设备206和未示出的一个或多个其他设备可与第二用户或用户账户214相关联。远程存储位置208可另外耦接到未示出的与一个或多个不同用户或不同用户账户相关联的许多其他设备。

在一个实施方案中,设备可通过在每个设备的唯一或准唯一设备密钥或设备标识符与每个账户的唯一或准唯一账户密钥或账户标识符之间形成关联来与相应的用户或用户账户相关联。例如,第一设备202和第二设备204的密钥或设备标识符可与用户或用户账户212的密钥或账户标识符相关联。第三设备206的密钥或设备标识符可与用户或用户账户214的密钥或用户账户标识符相关联。此类关联可用于允许对远程存储位置208上的基于帐户的存储的经验证的访问。

远程存储位置208可以是单个存储位置或多个存储位置。例如,服务器、网络地址存储位置、计算设备的集合,或者作为呈现虚拟化网络存储的云存储系统的一部分。远程存储位置208包括用于存储来自不同用户/用户账户和应用程序组合的数据的独立逻辑容器。在一些示例中,逻辑容器可以是文件系统中的目录、数据结构、数据库或另一种数据组织单元。例如,第一用户或用户账户212可在远程存储位置208上具有容器216,每个容器用于与用户或用户账户相关联的每个单独的应用程序。类似地,第二用户或用户账户214可具有用于相应应用程序的容器218。从各个设备(例如,第一设备202)接收的应用程序数据项存储在用于该应用程序的相应容器中。远程存储位置208可以包括存储管理器,该存储管理器可创建和管理容器以及为设备生成通知。

第一设备202包括同步管理器222、访问管理器224和一个或多个应用程序220。一个或多个应用程序220可包括各种类型的应用程序,诸如生产力应用程序、系统应用程序、游戏等。每个应用程序可与可用于识别应用程序并识别该应用程序的特定访问权限的唯一密钥或其他标识符相关联。在一些具体实施中,一个或多个应用程序220被沙箱化,使得每个应用程序与每个其他应用程序隔离。

同步管理器222管理向远程存储位置208发送数据项并从远程存储位置208接收信息(例如,数据项或通知)。访问管理器224响应于来自相应应用程序的查询而向应用程序220中的特定应用程序呈现可用数据项。访问管理器224应用一个或多个访问策略来确定哪些数据项对于应用程序220中的特定应用程序将是可见的。在一些实施方案中,数据同步管理器222和访问管理器224可以逻辑指令的形式驻留在存储器中,该逻辑指令能够在电子设备的一个或多个处理器上执行。在一个实施方案中,数据同步管理器222和访问管理器236也可实现为能够在第一设备202内的嵌入式微控制器上执行的逻辑。

类似地,第二设备204包括同步管理器228、访问管理器230和一个或多个应用程序226。应用程序220和应用程序226可包括一个或多个相同的应用程序。类似地,第三设备206包括同步管理器234、访问管理器236和一个或多个应用程序232。第二设备204和第三设备206的所示元件可以类似于相对于第一设备202所述的元件的方式起作用。

图3是根据实施方案的其中可以实现跨多个设备的数据同步的架构中的部件的示意图。一个实施方案提供了一种通信装置310,该通信装置包括通信地耦接到存储器330和通信接口340的一个或多个处理器320。通信装置310可包括在本文所述的任何电子设备中,以促成设备之间的电子通信。在一个实施方案中,数据同步管理器332可驻留在存储器330中并且可由一个或多个处理器320执行。通信接口340可被配置为经由一个或多个通信信道350在通信装置310与一个或多个远程设备360之间提供通信连接。在一个实施方案中,通信信道350可以包括以网络为中心的通信信道352或对等通信信道354。在一些实施方案中,通信装置310可被实现为集成电路装置或其一部分。

在一个实施方案中,一个或多个处理器320可以是可代表应用处理器与远程设备360建立通信信道350的无线基带处理器。在电子设备的应用处理器处于低功率或睡眠状态时,通信装置310可保持与远程设备360的通信信道350。在一些配置中,电子设备可进入无线唤醒状态,在该状态下设备的一个或多个部件进入低功率状态,而一个或多个处理器320可保持至少部分活动状态以接收由一个或多个远程设备360传送的消息。基于所接收的数据或元数据,一个或多个处理器320可将设备唤醒到活动状态或保持设备的低功率状态。

图4是根据一些实施方案的其中可以实现跨多个设备的数据同步的网络环境400的概观的示意图。参考图4,网络环境400可包括一个或多个电子设备,诸如平板电脑402A、台式计算机402B、电视或机顶盒402C、移动电话402E、可穿戴设备402F和/或膝上型计算机402G,它们可统称为电子设备402。彼此范围内的电子设备402可经由直接通信链路(例如蓝牙链路、红外(IR)链路等)建立对等通信信道。此外,电子设备402可直接或经由与基站430的连接而连接至网络420。基站430可以是例如向电子设备402提供网络访问的网络访问设备(例如,路由器、蜂窝基站等)。

网络420可以是任何合适类型的有线或无线网络,诸如局域网(LAN)、广域网(WAN)或其组合。LAN可使用各种网络连接技术来实现,诸如但不限于以太网、无线LAN(例如,Wi-Fi)和/或无线个人局域网(WPAN)。可使用网络协议诸如但不限于传输控制协议(TCP)和互联网协议(IP)来执行网络420上的LAN通信。WAN可使用诸如但不限于同步光网络(SONET)和同步数字体系(SDH)的协议通过包括光纤和铜缆线的各种物理层类型来实现。

各种电子设备402可与位于一个或多个服务器440上的远程存储位置建立连接。远程存储位置可以是例如图2的远程存储位置208。一个或多个服务器440上的远程存储位置可用于在电子设备402之间同步数据。除了同步数据存储之外,如果电子设备402与一个或多个服务器上的账户或一组账户相关联,则该电子设备可在设备之间同步设备行为和/或活动信息。同步的设备行为或活动信息可包括例如设备移动数据、用户健康数据和/或使用特定应用程序花费的时间量。下文描述了可同步的其他类型的设备行为或用户信息。

当用户在不同设备之间转换时,设备行为同步可促成设备之间的无缝转换。例如,当用户从对平板电脑402A的使用转换到移动电话402E时,在平板电脑402A上执行的用户动作或活动可与用户的移动电话402E同步。在一个实施方案中,设备行为或活动信息可在环境400内任何示出的电子设备402之间转换。同步可使用一个或多个服务器440经由网络420来执行,或者可经由电子设备402之间的对等连接来执行。

在电子设备402之间建立对等通信信道之前,在设备之间执行对等发现和配对过程。对等发现过程使得电子设备402能够在数据可用于在电子设备402之间同步之前发现并先行地建立连接。在一些情况下,对等发现过程还可包括对电子设备402应发生通信的用户验证。在一些实施方案中,对等发现可利用促成在无线或其他网络上定位设备和/或服务的现有服务发现协议,例如由UPnP论坛开发的简单服务发现协议(SSDP)或由苹果公司开发的Bonjour网络技术(以IETF RFC 6762和IETF RFC 6763出版,本文称为“Bonjour”)。在设备发现服务中,设备可以通告指示其存在的信息,地址,和另选的关于其功能的另外信息。其他设备可基于广播信息浏览通告并识别所关注的设备。使用通告地址,浏览设备可发起与通告方的通信。

取决于网络和发现服务,广告可任选地包括实时广播信息(例如,通过多播或信标信号)和/或向中央存储库(例如,在网络接入点处)提供通告信息,其他设备可从该中央存储库检索信息。广告浏览可以包括检测广播广告和/或从中央存储库检索广告信息。在一些实施方案中,附接到电源(例如电源插座)的电子设备可连续地执行对等连接服务的通告和发现。移动用户设备可基于用户设备的位置启用对等连接服务的发现。例如,并且在一个实施方案中,在移动设备上启用地理围栏边触发器,使得当移动设备在地理上接近被指定为用户设备的家庭位置的位置时,启用对等连接发现。

当电子设备402中的一个电子设备被电子设备402中的另一个电子设备发现时,可在设备之间建立网络数据连接(例如,TCP、UDP等)。为避免正在通告和发现两者的设备之间的连接竞赛,具有按字典顺序排列较低的永久标识符的设备发起设备之间的连接。设备的永久标识符来源于通过发现服务通告的匿名标识符。在一个实施方案中,为了基于通告信息导出持久性标识符,利用通过先前执行的配对过程交换的数据。在此类实施方案中,直到在设备之间执行某种形式的数据交换(例如,在设备处于彼此的无线电范围内的情况下),才能在设备之间建立数据连接。另选地,设备各自拥有共享的秘密数据,如果设备均与一组用户账户中的用户账户相关联,则共享的秘密数据可被分发给这些设备。该预先连接数据交换可使得电子设备402能够获悉可用于建立对等连接的每个设备的持久性标识符。一旦建立数据连接,可在公共智能家居设备和伴随设备之间建立安全通信会话。然后,公共智能家居设备和连接的伴随设备可以交换存在和可接通性信息。一旦互连,当未通过对等连接交换数据时,电子设备402可以根据需要进入无线唤醒(WoW)状态。在一个实施方案中,连接到电源的电子设备可保持活动状态以减少第一消息延迟。

在电子设备402之间连接丢失的情况下,发现服务可以重新启用和用于搜索本地网络中的设备。如果丢失的设备被重新发现,设备之间的数据连接可被重新建立。如果丢失的设备无法发现,则再次确认和清除丢失的设备记录中的状态发现服务信息。搜索设备随后可尝试经由安全互联网会话与丢失的设备建立通信。在一个实施方案中,在建立数据连接时交换的存在和可接通性信息的一部分包括设备标识符,标识符令牌,中继标识符,或可用于接通或启用与丢失的设备的消息交换的其他形式的识别令牌,例如经由对等或中继互联网连接。如果可以通过网络420成功建立与先前丢失设备的安全互联网连接,则可以通过安全互联网连接交换对等连接消息。

在互连的电子设备402通过网络420(例如,经由基于互联网的连接)连接并且本地连接变得可用的情况下,可经由电子设备402建立对等连接。例如,如果移动电话402E将要跨越地理围栏边界,则移动电话402E可启用发现协议(例如,SSDP、Bonjour等)以搜索其他电子设备402。在一个实施方案中,每当在连接的电子设备402之间失去连接时或者在设备确定更好的连接可用的情况下,就可以执行连接切换。本地连接可能是互联网连接首选,因为本地连接可能较低延迟。此外,从设备和基础结构的角度来看,维护本地连接而非互联网连接可能占用较少资源。例如,在通过网络420经由一个或多个服务器440在电子设备402之间发生设备行为或活动同步的情况下,电子设备402之间的数据交换速率可能由于服务器需求而受到限制。在一个实施方案中,电子设备402可仅在电子设备402的指定更新间隔期间向一个或多个服务器440提供对某些类型的数据的更新。可延迟进一步更新,直到下一个更新间隔。然而,使用设备之间的对等连接,电子设备402之间的本地数据交换可以不受限制地并且以更低的延迟发生。在一个实施方案中,各种对等连接可用作跨该组电子设备402传播设备活动更新的网状依赖,前提条件是电子设备具有已建立的可信关系。

在一个实施方案中,一些设备诸如可穿戴设备402F(例如,电子手表设备或另一可穿戴电子附件)可通过对等信道354与另一设备(例如,移动电话设备402E)同步数据,同时还经由网络420经由通过以网络为中心的信道352的连接来同步数据。例如,可穿戴设备402F可具有与伴随电子设备(诸如移动电话设备402E)的主同步信道。例如,在可穿戴设备402F正在充电时,可穿戴设备402F还可经由以网络为中心的信道352接收同步数据。在一个实施方案中,要与可穿戴设备402F同步的一些数据可与移动电话设备402E或另一伴随设备同步。在可穿戴设备402F和移动电话402E之间划分同步职责可使得丰富的数据能够以及时的方式递送到可穿戴设备402F,而不会不利地影响可穿戴设备402F的功率和性能。在一个实施方案中,存储在可穿戴设备402F上的数据可作为备份数据周期性地存储到服务器440的远程存储装置,即使此类数据将不立即与其他设备同步。

图5是根据本文所述实施方案的用于发现和连接电子设备的发现过程500的操作的流程图。所示的发现过程500包括在电子设备502和电子设备504上执行的操作。电子设备502和电子设备504可各自为例如平板电脑402A、台式计算机402B、电视或机顶盒402C、移动电话402E、可穿戴设备402F或膝上型计算机402G,如图4所示。在一个实施方案中,在电子设备502和电子设备504之间建立的对等连接可被称为伴随链路连接,并且所连接的对等体可被称为伴随设备。能够形成如本文所述的对等连接的设备可以通告对伴随服务的支持。

在一个实施方案中,如图框510所示,电子设备502可设定状态位以指示该设备当前未配对,或者换句话讲正寻找与之配对的伴随设备。状态位可以是在由电子设备502通告的状态信息中列出的状态标志指示符中的位。在框512处,电子设备502可经由发现协议(例如SSDP,Bonjour等)通告其存在,因为支持伴随链路服务。例如,使用Bonjour,电子设备502可以用名称和服务类型通告自身。名称可以是伴随发现的用户可读名称;在一些实例中,通告的名称可以在设备定义记录的伴随发现信息服务实例中指定的名称。服务类型可被定义用于统一附件协议(例如,服务类型“_companion-link._tcp”)。通告还可包括附加信息。类似的信息可以使用其他服务发现协议和技术来分发。例如,使用SSDP,伴随发现可以包括使用多播HTTP通知消息通告名称和服务类型URI。URI可由电子设备504使用以经由对电子设备502的单播请求检索附加信息。

在电子设备502经由服务发现协议开始通告伴随链路服务之后,如在框514所示,电子设备504可以在浏览未配对设备时发现电子设备502。通告开始和服务浏览开始之间不需要特定定时,但是在电子设备504浏览时,除非电子设备502发现通告是可检测的,否则电子设备504将无法发现电子设备502。

在一个实施方案中,电子设备504可响应于触发器诸如由在电子设备504上的应用程序执行所提供的触发器来浏览未配对的设备。在一个实施方案中,当电子设备504与未配对设备物理邻近放置时,电子设备504可以浏览未配对设备。例如,用于电子设备502的开箱即用设置可包括在短程无线通信机构(例如,使用蓝牙和/或蓝牙低功耗(BLE)、近场通信(NFC)、对等Wi-Fi等)上的数据交换,其可触发电子设备504以浏览未配对设备。在一个实施方案中,电子设备505可尝试经由设备注册表发现其他设备,该设备注册表存储与电子设备504的用户的一个云服务账户、一组云服务账户或朋友的云服务账户相关联的其他设备的标识符。

在框516处,个人设备504可以经由发现服务通告找到设备,例如,通过检测在框512执行的通告。在框518处,电子设备504可基于通告确定所发现的设备是连接候选,诸如未配对电子设备502。在一个实施方案中,当发现的设备正在通告伴随链路服务时,电子设备504可确定所发现的设备是连接候选。电子设备504可检查发现状态标志以确定是否可与电子设备502建立对等连接。例如,电子设备504可检查通告的协议版本以确定电子设备502的伴随链路协议版本是否与由电子设备504支持的伴随链路协议兼容。如果电子设备504确定电子设备502没有通告建立伴随链路,则电子设备504可返回到框514并继续浏览。

在框522处,电子设备504可通过用户界面诸如电子设备504的显示设备向用户呈现关于电子设备502的信息。在框524处,个人设备504可经由用户界面从用户接收关于利用检测到的设备执行的动作的输入。例如,用户可提供指示电子设备504是否应与电子设备502建立配对的输入。电子设备504可呈现从由电子设备502提供的通告数据获得的任何或全部信息,并提示用户指示电子设备504是否应连接到电子设备502。请求用户确认可有助于避免设备之间的虚假的或不需要的配对。

在框526处,电子设备504可解释在框524处接收的用户输入,并确定是否与电子设备502配对。除了用户批准发起配对操作之外,可执行其他操作来完成配对操作以最小化在未批准电子设备504的合法所有者/操作者的情况下发生配对的风险,因为完成配对过程可允许电子设备502接受关于电子设备504的用户的个人特点的查询。例如,电子设备504和/或电子设备502可请求输入电子设备504的用户已知的密码。在一个实施方案中,可由电子设备502和/或电子设备504请求生物特征验证(例如,指纹、面部识别等)以在框526处完成配对操作。

如果用户指示电子设备504拒绝配对或用户验证操作失败,则电子设备504可返回到框514以查找其他附件或设备。如果电子设备504和电子设备502在框528和框530处配对,则电子设备504和电子设备502可分别执行配对设置过程。在一些实施方案中,该配对设置过程可用于建立加密密钥以促进电子设备504和电子设备502之间的安全通信。在一些实施方案中,用户确认可结合到配对设置过程中,并且不需要在启动配对设置之前进行单独的用户确认。在一个实施方案中,配对设置过程使得在电子设备502和电子设备504之间能够建立可信关系。可以在安全通信会话的设置期间稍后验证已建立的可信关系。

如果配对设置过程成功完成,则在框531处,电子设备502可更新设备状态信息,以指示现在需要授权与附件通信和/或附件现在与电子设备504的至少一个实例配对,例如通过更新通告设备数据内的状态标志指示符。

在框532处,电子设备504可从电子设备502获取并高速缓存设备定义记录,在框534处,电子设备502可根据请求提供该记录。设备定义记录可包括由设备支持的一组服务和/或能够使其他电子设备504以及其他连接的设备能够确定如何控制、连接或以其他方式与电子设备502交互的其他相关特性。在电子设备404高速缓存设备定义记录的情况下,信息可以被用于促进检测电子设备502的状态变化。在一些实施方案中,电子设备504也可以高速缓存来自由电子设备502提供的通告数据的信息,该信息还可以被用于检测电子设备的状态变化。

在框536和538处,电子设备504和电子设备502可开始交换用于建立安全通信信道的数据。数据交换可包括设备之间的密钥或证书交换。密钥交换可通过在设备之间交换的共享密钥来保护,其中共享密钥可使用带外通信方法交换。另外,数据交换可包括设备之间的一个或多个长期密钥的交换,其本身可能受到一个或多个短期密钥的保护。一旦建立配对,可利用配对以提供端到端消息加密,使得仅配对设备能够读取设备之间交换的消息。在一个实施方案中,安全通信信道是双向信道,使得在该信道上通信的任一设备能够发起消息交换。在消息交换期间,发起通信会话的设备称为客户端设备,而接受该会话的设备称为服务器设备。在一个实施方案中,在设备之间交换的第一消息是信息交换消息。客户端设备可发送包括特征标志或其他设备信息的初始信息消息。服务器设备可以然后针对支持的功能以信息消息作为响应。一旦建立安全通信信道并且发生信息交换,如果没有未决的立即操作,则通信设备可进入空闲状态。

在一个实施方案中,电子设备502可在框540处执行附加操作以将连接的个人设备504确认为伴随设备。在此类实施方案中,发现过程500可利用多个设备来执行,但一些类型的数据可仅与特定设备交换。

应当理解,本文所述的发现和配对过程是示例性的,且变型形式和修改形式是可能的。可并行执行按顺序描述的操作,可改变步骤的顺序,并且可修改、合并、添加或省略步骤。此外,虽然SSDP和Bonjour服务用作设备发现服务的示例,但可以在其他设备发现服务的上下文中应用类似的概念。在一些实施方案中,在确定是否与电子设备502或任何其他发现的设备配对之前,电子设备504可请求来自配对候选设备的定义记录(或其一部分),其可例如经由HTTP请求来请求。

在一些实施方案中,发现过程500,或类似的过程,可被用于检测配对设备的状态变化。例如,当设备状态变化时,设备通告的状态数值可以递増。当设备通告状态变化时,其他配对设备可例如通过广播更新的Bonjour TXT记录来通告状态变化,并且先前高速缓存设备记录的配对设备可通过将状态数的广播值与高速缓存值进行比较来检测变化。

在框536处和框538处的设备之间建立的安全通信信道可用于交换伴随链路消息。在一个实施方案中,在通过伴随链路交换伴随链接消息之前,在电子设备502和电子设备504之间建立或重新建立安全会话。在一个实施方案中,建立会话包括执行配对验证过程以验证设备之间的配对。配对验证过程依赖于先前建立的电子设备502与电子设备504之间的配对关系。例如,以及在一个实施方案中,在设备之间建立伴随链路会话可能需要设备的永久标识符,其可来源于通过发现服务通告的匿名标识符。然而,为了基于通告信息导出持久标识符,可以使用在设备之间配对过程期间交换的一个或多个数据元素。在一个实施方案中,配对验证过程可包括生成用于对在验证过程期间交换的消息进行加密或签名的短期公钥对,以及在设备初始配对期间交换的先前交换的长期密钥对的验证。每次使用配对链路连接在设备之间建立安全会话时,可执行配对验证过程。

已经描述了可适于实现电子设备之间的数据同步的电子设备的各种结构以及可在设备之间建立的各种类型的数据连接,将参考图6至图7描述通信信道选择的操作方面,这些附图是根据实施方案示出用于实现多个设备之间的数据同步的方法中的操作的流程图。图8A至图8D描述了可在设备之间同步的设备活动信息。图9示出了设备活动同步的流程图。

参考图6,数据同步管理器222可以发起从电子设备采集应用数据的过程。以举例的方式,在操作610处,数据同步管理器222可以响应于环境条件发起采集应用数据的过程。在一些示例中,应用数据可以包括与在电子设备102上执行的一个或多个应用程序相关联的上下文数据,包括但不限于用户在给定时间段内已与应用程序互动的时间量、会话数据、连接数据等。可采集应用数据的环境条件包括经过与电子设备或与在电子设备上执行的一个或多个应用程序相关联的同步时间段。在一些示例中,该时间段可以是静态的。在其他示例中,就该时间段可响应于操作条件而变化的意义而言,该时间段可以是动态的。例如,如果在特定应用程序上针对特定用户定义了时间限制,则时间段可随着用户接近时间限制而减少。另选地或除此之外,数据同步管理器222可响应于一个或多个环境条件诸如电子设备越过地理位置阈值或进入特定地理区域,或者响应于基于时间的参数或基于活动的参数来发起同步过程。

在操作615处,数据同步管理器222将应用数据存储到存储设备,该存储设备可以是非易失性存储设备或易失性存储设备,诸如系统存储器。在操作620处,数据同步管理器222检测同步事件。在一些示例中,同步事件可以是用户从第一电子设备切换到不同于第一电子设备的第二电子设备。在其他示例中,同步事件可以是同步时间段或基于活动的参数。例如,在电子设备未被充分使用的时间段期间,同步时间段可被设置为相对较长的时间段。相比之下,在电子设备被充分使用的时间段期间,同步时间段可被设置为相对较短的时间段。应当理解,可使用其他事件来发起同步过程。在一个实施方案中,电子设备可检测连接设备的通告数据中设置的标记或位,该标记或位指示设备正向其他连接设备请求数据更新。在一个实施方案中,电子设备能够经由其通过以网络为中心的信道同步数据的云存储服务可设置指示更新数据被请求的位。

在操作625处,响应于同步事件,同步管理器222生成同步数据集。在一些示例中,同步数据集可以包括在操作615中存储到存储设备的应用数据,以及诸如一个或多个应用标识符、时间戳、位置数据等补充数据。在一些示例中,可以压缩同步数据集以减少在同步过程期间需要传输到其他设备的数据量。在操作630处,同步管理器将同步数据集存储在存储器中,诸如图3所示的存储器330或另一存储器设备中。

在操作635处,同步管理器222发起同步过程。参考图7描述了同步过程的细节。在图7所示的图示中,在同步过程期间执行的操作可由数据同步管理器222单独地或与电子设备202的其他部件结合地实现。

参考图7,在操作710处,数据同步管理器222检索在操作630中存储在存储器中的同步数据集,该数据被称之为同步数据集。在操作715处,数据同步管理器222评估同步数据集以确定指示同步数据集是否适于经由对等数据连接传输到远程设备的各种参数。例如,数据同步管理器222可以确定同步数据集的大小、与同步数据集中的数据相关联的数据类型,或者同步数据集是否包括时间敏感数据。

在操作720处,数据同步管理器222评估与电子设备202附近的一个或多个远程设备的通信连接的可用性,以确定通信连接是否适于将同步数据集传送到电子设备202附近的远程设备。例如,在图3所示的实施方案中,数据同步管理器222可以从通信接口340接收与可用于通过以网络为中心的通信信道352和/或对等通信信道354进行通信的带宽相关的信息。

在操作725处,数据同步管理器222确定同步数据集是否适于经由直接(例如,对等)通信连接传输到远程设备。在一些示例中,数据同步管理器222可以从通信接口340接收带宽信息,该带宽信息指示经由对等通信连接可用的带宽量。然后,数据同步管理器222可以根据带宽信息和同步数据集的大小来确定将同步数据集传输到远程设备所需的近似时间量。如果传送同步数据集所需的时间小于阈值传输时间参数,则数据同步管理器222确定同步数据集适于经由对等通信信道354传输。相比之下,如果传送同步数据集所需的时间不小于阈值传输时间参数,则数据同步管理器222确定同步数据集不适于经由对等通信信道354传输。

传输时间参数可以是静态参数,例如阈值毫秒数,或者可响应于电子设备的操作条件或同步数据的特性而动态地设置。例如,流式视频数据可能需要短的传输时间参数。相比之下,静态数据可容许更长的传输时间参数。

如果在操作725处,同步数据集不适于经由对等通信连接进行传输,则控制转到操作740,并且数据同步管理器222与被指定用于接收同步数据集的远程设备360建立基于网络的通信信道352。在操作745处,数据同步管理器222经由基于网络的通信信道352将同步数据传送到远程设备。

相比之下,如果在操作725处,同步数据集适于经由对等通信信道354传输,则控制转到操作730,然后数据同步管理器222确定与远程设备360的直接(例如,对等)连接是否可用。在一些示例中,数据同步管理器222可以确定同步数据集要传送到的远程设备360的睡眠状态。例如,通信接口340可尝试发起与远程设备360的通信连接。如果通信接口340从远程设备360接收到“无唤醒”信号(例如,在远程设备360中的应用处理器处于睡眠状态的情况下),并且响应于该“无唤醒”信号,可确定直接传输信道不可用。相比之下,如果通信接口340从远程设备360接收到适当回复,则数据同步管理器222可以确定直接(例如,对等)通信信道可用。

如果在操作730处,数据同步管理器222确定直接(例如,对等)通信信道不可用,则控制转到操作740,并且数据同步管理器222与被指定用于接收同步数据集的远程设备360建立基于网络的通信信道352。在操作745处,数据同步管理器222经由基于网络的通信信道352将同步数据传送到远程设备。

相比之下,如果在操作730处数据同步管理器222确定直接(例如,对等)通信信道352可用,则控制转到操作735,并且数据同步管理器222与远程设备360建立直接(例如,对等)数据信道354。在一个实施方案中,在操作735处,一旦对等设备进入无线范围,数据同步管理器222就可以与对等设备预先建立直接数据信道354,以减少第一消息延迟。在操作745处,数据同步管理器222经由直接(例如,对等)通信信道354将同步数据传送到远程设备。

在操作750处,远程设备360经由所选择的通信信道接收同步数据集,并且在操作755处,远程设备360可使用同步数据集来使远程设备360与电子设备202同步。

虽然描述了使用无唤醒信号来确定是否可以与远程设备建立对等通信信道,但本文所述的实施方案提供了使设备唤醒最小化的其他技术。例如,在远程设备的应用处理器处于低功率状态的情况下,数据同步管理器222在尝试与远程设备通信时,可指示该远程设备不应回复。

在一些实施方案中,电子设备只能经由使用特定唤醒模式来唤醒对等电子设备。当设备转换到低功率状态时,只有当固件接收到具有特定唤醒数据模式的通告时,设备才能将该设备的BLE固件配置为唤醒主CPU。在一个实施方案中,可使用设备的身份解析密钥来得出设备的唤醒数据模式。例如,唤醒模式可包括前缀字符串和BLE地址的密钥散列值,使用身份解析密钥作为密钥。在一个实施方案中,该身份解析密钥是与用于启用BLE连接的身份解析密钥不同的密钥,但是用于设备识别和认证目的的备用的身份解析密钥。当电子设备打算唤醒远程设备时,电子设备可使用BLE扫描远程设备以从通告包中找到远程设备的当前BLE地址。然后,电子设备可使用该BLE地址和备用的身份解析密钥来生成唤醒数据模式。当远程设备接收到通告唤醒模式时,远程设备可唤醒远程设备的CPU的一个或多个内核。

允许多个设备之间的数据同步的通信信道逻辑部件可用于在各种情况下同步各种设备数据。在一个实施方案中,该逻辑部件可用于同步与可被视为个人信息数据的同一账户或一组账户相关联的设备之间的活动。本公开认识到在本发明技术中使用此类个人信息数据可用于使用户受益。例如,当用户在不同设备之间转换时,用户的健康活动可在各种设备之间同步。用户之间的设备活动的同步可使得每个设备能够在任何给定时间更主动地预测用户的需求或兴趣。父母可以限制子女使用设备的屏幕时间,并且可以跨多个设备应用此类屏幕时间限制。此外,本公开还预期个人信息数据有益于用户的其他用途。

本公开还设想负责此类个人信息数据的收集、分析、公开、传输、存储或其他用途的实体将遵守已确立的隐私政策和/或隐私做法。具体地,此类实体应当实行并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和安全性的行业或政府要求的隐私政策和实践。例如,来自用户的个人信息应当被收集用于实体的合法且合理的用途,并且不在这些合法用途之外共享或出售。另外,此类收集应当仅在用户知情同意之后进行。另外,此类实体应采取任何所需的步骤,以保障和保护对此类个人信息数据的访问,并且确保能够访问个人信息数据的其他人遵守他们的隐私政策和程序。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。

不管前述情况如何,本公开还预期用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,就广告递送服务而言,本发明的技术可被配置为在注册服务期间允许用户选择“加入”或“退出”参与对个人信息数据的收集。又如,用户可选择不为目标内容递送服务提供位置信息。再如,用户可选择不提供精确的位置信息,但准许传输位置区域信息。

图8A至图8C是根据实施方案的示出设备活动同步的框图。图8A示出了可在一设备处采集并且跨设备同步的一组示例性设备活动800。图8B示出了可用于促成在设备之间传输丰富数据的备用的或多个通信信道。图8C示出了使用基于网络的远程同步和设备之间的对等同步的设备使用同步。

如图8A所示,多种设备活动800可以跨设备同步。在一个实施方案中,各种类型的事件数据810可被同步。可以从用户的多个设备采集事件数据810,并将其组合为聚合的用户数据。事件数据810可从各种用户设备采集,包括可穿戴电子设备、移动设备诸如智能电话和平板计算设备、膝上型计算设备和台式计算设备。事件数据810包括但不限于用户动作数据812、上下文数据814和设备状态数据816。

用户动作数据812包括例如设备运动数据、应用程序内操作和重点关注应用数据。运动数据可包括设备的原始加速度计数据以及经处理的加速度计数据,该经处理的加速度计数据指示诸如用户行走的步数、行进的距离、运动数据、行走的楼梯段数、站立与静坐量度等信息。应用程序内的操作包括在应用程序内执行的活动,诸如在在线应用商店或媒体商店中进行的购买、在应用程序内进行的应用内购买、由web浏览器访问的网站、由相机应用程序拍摄的照片以及给定应用程序内的其他用户操作。重点关注应用数据包括关于哪些应用程序是活动的以及用户使用那些应用程序的持续时间的信息。

上下文数据814包括与其他事件810相关联的上下文信息,该其他事件诸如用户动作812或设备状态816。例如,对于每个用户动作812,可以采集上下文数据814以提供关于那些动作的附加信息。例如,如果用户定期跑步以进行锻炼,则用户的活动设备可在跑步期间将这些跑步的时间和位置记录为上下文数据814。在跑步期间,还可记录接近度信息,诸如活动设备与其他用户的设备或与用户的地理兴趣点的接近度。

事件数据810还可包括设备状态816,诸如Wi-Fi设备状态,包括信号强度分析和对设备的可用接入点。设备状态816还可包括电池信息,包括当前和历史电池能量水平、充电状态以及专用于特定活动或应用的电池使用百分比。

可使用本文所述的通信信道选择技术在活动用户设备之间同步各种事件810和其他设备活动800。当用户在不同设备之间转换时,可从活动设备采集设备活动800并在其他活动设备之间对其进行同步。设备活动800可用于向用户生成信息图形或显示,诸如活动或健康显示,或用于可穿戴电子设备的基于活动的表盘。

如图8B所示,可使用备用的或多个通信信道来促成在移动电话402E和可穿戴设备402F之间传输丰富数据。在一个实施方案中,可穿戴设备402F是智能手表设备,但本文所述的概念不限于手表设备。可穿戴设备402F可与移动电话402E或本文所述的电子设备中的另一电子设备配对。另外,如本文所述,移动电话402E可以另选地通过网络420经由以网络为中心的信道352或经由对等信道354与对等设备836同步,如图4中进一步所示。

在一个实施方案中,可穿戴设备402F可以使用移动电话402E作为代理来执行与对等设备836的对等同步。例如,在可穿戴设备402F附接到外部电源的情况下,当对可穿戴设备402F的内部电池充电时,可穿戴设备402F还可经由网络420使用以网络为中心的信道352同步。

在一个实施方案中,智能电话应用程序834可以使用移动电话402E上可用的API通过可穿戴设备402F和移动电话402E之间的对等通信信道354向可穿戴设备402F提供快捷方式数据。智能电话应用程序834还可以提供上下文信息以通知可穿戴设备402F快捷方式信息的显示何时将与用户相关。在一个实施方案中,智能电话应用程序还可以提供指定快捷方式外观的模板信息。提供给可穿戴设备402F的快捷方式可以显示在表盘832上,并且可以具有由智能电话应用程序834限定的外观。当被选择时,快捷方式允许用户执行与智能电话应用程序834相关联的某一动作。在一个实施方案中,快捷方式允许用户利用将用户直接带到应用程序的内部屏幕的启动上下文来启动可穿戴设备402F或移动电话402E上的应用程序。另选地,快捷方式可以为用户执行特定后台动作。例如,快捷方式可以经由表盘832显示,以将用户直接带到社交媒体应用程序的新闻提要或新闻应用程序的特定故事。还可以显示为用户执行特定后台动作的快捷方式。例如,可显示快捷方式以使用户能够通过智能电话应用程序834订购食物或饮品。

在一个实施方案中,提供给可穿戴设备402F的快捷方式可以在该快捷方式将与可穿戴设备的穿戴者相关的时间和/或位置处显示在表盘832上。快捷方式将与可穿戴设备402F的穿戴者相关的时间和/或位置可由可穿戴设备基于通过可穿戴设备402F与移动电话402E之间的对等通信信道354同步的上下文信息以及基于经由通过网络420建立的以网络为中心的信道352同步到可穿戴设备402F的历史信息来确定。可以提供关于快捷方式的历史信息,该历史信息指示与快捷方式相关联的动作由可穿戴设备402F的穿戴者执行的过去的时间和/或位置。此类历史信息可经由通过网络420建立的以网络为中心的信道352提供给可穿戴设备402F,因为此类信息可具有这样的量,使其将在可穿戴设备402F具有外部电源时被最好地同步。例如,在已经确定用户在特定时间或特定位置经由智能电话应用程序834定期订购食物或饮品的情况下,智能电话应用程序834可请求可穿戴设备402F基于用户的历史活动在相关时间和/或位置经由表盘832向用户显示快捷方式。显示相关快捷方式的请求可以经由在移动电话402E和可穿戴设备402F之间建立的对等信道354从智能电话应用程序834转发到可穿戴设备402F。用于构造显示在可穿戴设备402F的表盘832上的相关快捷方式的数据可以经由通过网络420建立的以网络为中心的信道352利用远程存储位置(诸如与云服务提供方相关联的存储位置)与可穿戴设备同步。

在一个实施方案中,可穿戴设备402F和移动电话402E各自具有机器学习模型,该机器学习模型可以基于行为数据进行训练以确定经由表盘832向用户显示快捷方式的最相关时间。当可穿戴设备402F和移动电话402E各自附接到外部电源时,机器学习模型可各自被训练。可经由网络420在以网络为中心的信道352上检索用于训练设备的数据。此外,当可穿戴设备402F连接到外部电源时,由智能电话应用程序834提供以与快捷方式一起显示的图形数据可以经由通过网络420建立的以网络为中心的信道352由可穿戴设备402F提供。在一个实施方案中,可穿戴设备402F可以有机会在给定时间段期间经由表盘832显示大量快捷方式。经由通过网络420建立的以网络为中心的信道352与可穿戴设备402F同步的数据可以用于训练本地机器学习模型,该本地机器学习模型然后可以确定在给定时间段内哪些快捷方式与用户最相关。然后可以经由表盘显示最相关的快捷方式。在一个实施方案中,用于训练可穿戴设备402F上的机器学习模型的数据也可以与移动电话402E同步,该移动电话还可以训练机器学习模型以使移动电话402E能够确定是否应请求可穿戴设备402F显示任何相关的快捷方式。

如图8C所示,可使用行为数据的子集来允许用户管理或限制个人使用其电子设备花费的时间量。另外,父母可将使用限制诸如总体使用极限或应用程序使用极限应用于与一组云服务账户中的子女账户相关联的设备。

在一个实施方案中,使用数据可以在一组子女设备842A至842C之间同步,该组子女设备是与已被指定为子女用户的云服务账户相关联的设备。子女设备842A至842C可分别为本文所述的任何电子设备。本文所述的使用数据的各种元素可以使用对等的或基于网络的连接在设备之间同步,并且可以使用对等或基于网络的(例如,云)数据同步来执行同步。可以针对特定类别的应用程序/网站和/或特定设备功能(例如,电话时间、一般的屏幕时间、音频时间)设置限制。还可针对总体设备使用时间设置限制。每个子女设备842A至842C上的活动可被聚合并存储至子女云数据843。如果在子女设备842A上执行第一组动作,之后在子女设备842B上执行第二组动作,则关于在子女设备842A上执行的动作的更新数据可经由子女设备842A和子女设备842B之间的对等连接,或通过子女设备842A向子女云数据843提供活动数据而被提供给子女设备842B。例如,在允许子女设备842B向子女云数据843提供更新的更新间隔期间,也可将在子女设备842B上执行的活动提供至子女云数据843。

在一个实施方案中,子女云数据843可任选地与父母云数据844同步,以使父母设备845能够观察相对于所施加的限制的聚合和/或个性化活动。虽然父母设备845被示出为智能电话设备,但父母设备845可以是本文所述的任何电子设备。在一个实施方案中,子女设备842A至842C上的活动数据使用对等连接与父母设备845同步。在一个实施方案中,父母设备845还可接收由子女设备842A至842C采集的健康数据(例如,心率等)。健康数据可在各种子女设备842A至842C之间同步,并且聚合数据可被传送至父母设备845。由于该组子女设备842A至842C可各自同步以维护一组一致的聚合数据,因此如果父母设备845落入子女设备842A至842C中的任何一者的对等无线范围内,则父母设备845可通过对等连接来接收更新的活动数据。

图9示出了根据一个实施方案的设备活动同步的方法900的流程图。方法900可由本文所述的电子设备执行,以将设备活动与跟同一云服务账户或一组账户相关联的另一电子设备同步。

如框905处所示,方法900包括接收在第一设备处用户的活动数据。该第一设备可以是如本文所述的电子设备(例如,移动设备102A-102B等)。例如,数据提供方可将原始或离散化数据提供给更新池以与其他设备同步。所提供的数据可存储在存储器中,诸如图3中的存储器330。然后,第一用户设备可设置指示在第一设备处存在更新数据的标记,如框910所示。例如,电子设备可以设置通告数据中指示更新信息在设备上可用的位。在一个实施方案中,方法900包括任选地停止第一设备处的活动,如框915所示。

如框920处所示,方法900还包括活动同步逻辑部件检测第二设备处的活动的开始。如框925所示,当活动在第二设备处开始时,第二设备可搜索与该第二设备知道的其他设备相关联的更新标记。其他设备可以是与云服务账户或一组云服务账户相关联的设备。其他设备可以是在第二设备的无线电范围内的设备,包括但不限于第一设备。

然后,第二设备可选择通信信道以用于检索更新的设备活动,如框930所示。可使用如本文所述的信道选择逻辑部件来选择通信信道。然后,第二设备可通过所选择的通信信道来检索更新的设备活动,如框935所示。

本文所述的实施方案包括环境中的一个或多个应用编程接口(API),其中调用程序代码与通过一个或多个编程接口调用的其他程序代码进行交互。各种功能调用、消息或其他类型的调用还可包括各种参数,这些调用可以经由调用程序和被调用代码之间的API而传输。此外,API可以给调用程序代码提供使用在API中定义的、并在被调用程序代码中实现的数据类型或类别的能力。

API允许API调用部件的开发者(可以是第三方开发者)利用由API实现部件提供的指定特征。可以有一个API调用部件或可以有多于一个此类部件。API可以是计算机系统或程序库提供的源代码接口,以便支持来自应用程序的服务请求。操作系统(OS)可具有多个API,以允许运行于OS上的应用程序调用那些API中的一个或多个API,并且服务(例如程序库)可具有多个API,以允许使用服务的应用程序调用那些API中的一个或多个API。可按照在构建应用程序时能够解译或编译的编程语言来指定API。

在一些实施方案中,API实现部件可提供多于一个API,每个API提供不同视图或具有不同方面,该不同方面访问由API实现部件实现的功能的不同方面。例如,API实现部件的一个API可提供第一函数集,并可暴露于第三方开发者,并且API实现部件的另一个API可被隐藏(不暴露)并提供第一函数集的子集,并且还提供另一函数集,诸如不在第一函数集中的测试或调试函数。在其他实施方案中,API实现部件本身可经由下层API调用一个或多个其它部件,因而既是API调用部件又是API实现部件。

API定义在访问和使用API实现部件的指定特征时API调用部件所使用的语言和参数。例如,API调用部件通过被API暴露的一个或多个API调用或引用(例如由函数或方法调用实现)来访问API实现部件的指定特征,并经由API调用或引用使用参数来传递数据和控制信息。API实现部件可响应于来自API调用部件的API调用而通过API返回值。尽管API定义API调用的语法和结果(例如,如何引起API调用以及API调用能干什么),但API可不揭示API调用如何完成由API调用指定的函数。经由调用(API调用部件)和API实现部件之间的一个或多个应用编程接口来传输各种API调用。传输API调用可包括发出、发起、引用、调用、接收、返回或响应函数调用或消息;换句话讲,传输能够描述API调用部件或API实现部件中的任一者的动作。API的函数调用或其它引用可通过参数列表或其它结构发送或接收一个或多个参数。参数可以是常数、键、数据结构、对象、对象类、变量、数据类型、指针、数组、列表或指向函数或方法的指针或援引要经由API传递的数据或其它项目的另一种方式。

此外,数据类型或类可由API提供并由API实现部件实现。因此,API调用部件可利用API中提供的定义来声明变量、使用指向此类类型或类的指针、使用或实例化此类类型或类的恒定值。

通常,可使用API来访问由API实现部件提供的服务或数据,或启动执行由API实现部件提供的操作或计算。以举例的方式,API实现部件和API调用部件可各自为操作系统、库、设备驱动程序、API、应用程序或其它模块(应当理解,API实现部件和API调用部件可以是彼此相同或不同类型的模块)中的任一种。在一些情况下,可至少部分地在固件、微码或其它硬件逻辑部件中实现API实现部件。在一些实施方案中,API可以允许客户端程序使用由软件开发工具包(SDK)库提供的服务。在其他实施方案中,应用程序或其他客户端程序可使用由应用程序框架提供的API。在这些实施方案中,应用程序或客户端程序可将调用结合到由SDK提供和由API提供的函数或方法中,或使用SDK中定义并由API提供的数据类型或对象。在这些实施方案中,应用程序框架可为程序提供主要事件循环,其对框架定义的各种事件作出响应。API允许应用程序利用应用程序框架来指定事件和对事件的响应。在一些具体实施中,API调用能够向应用程序报告硬件设备的能力或状态,包括与诸如输入能力和状态、输出能力和状态、处理能力、电源状态、存储容量和状态、通信能力等方面相关的能力或状态,并且API可部分地由固件、微码或部分地在硬件部件上执行的其它低电平逻辑部件实现。

API调用部件可以是本地部件(即与API实现部件在同一数据处理系统上)或远程部件(即在不同于API实现部件的数据处理系统上),所述部件经由网络通过API与API实现部件进行通信。应当理解,API实现部件也可充当API调用部件(即,它可对被不同API实现部件暴露的API进行API调用),并且API调用部件也可通过实现暴露于不同API调用部件的API来充当API实现部件。

API可允许以不同编程语言编写的多个API调用部件与API实现部件通信(从而API可包括用于转换API实现部件和API调用部件之间的调用和返回的特征);不过,可以特定的编程语言实现API。在一个实施方案中,API调用部件可调用来自不同提供商的API,例如来自OS提供商的一组API和来自插件提供商的另一组API,以及来自另一提供商(例如软件库的提供商)或另一组API的创建者的另一组API。

图10是示出了可用于本发明的一些实施方案中的示例性API架构的框图。如图10中所示,API架构1000包括实现API 1020的API实现部件1010(例如,操作系统、库、设备驱动程序、API、应用程序、软件或其它模块)。API 1020指定可由API调用部件1030使用的API实现部件的一个或多个函数、方法、类、对象、协议、数据结构、格式和/或其他特征。API 1020可指定至少一个调用约定,该调用约定指定API实现部件中的函数如何从API调用部件接收参数以及函数如何向API调用部件返回结果。API调用部件1030(例如操作系统、库、设备驱动程序、API、应用程序、软件或其它模块)通过API 1020进行API调用,以访问并使用由API1020指定的API实现部件1010的特征。API实现部件1010可响应于API调用而通过API 1020向API调用部件1030返回值。

应当理解,API实现部件1010可包括未通过API 1020指定且对于API调用部件1030不可用的附加函数、方法、类、数据结构和/或其它特征。应理解,API调用部件1030可与API实现部件1010在同一系统上,或者可远程定位并通过网络来使用API 1020访问API实现部件1010。尽管图10示出了单个API调用部件1030与API 1020交互,但应理解,可用与API调用部件1030不同的语言(或相同的语言)编写的其它API调用部件可以使用API 1020。

API实现部件1010、API 1020和API调用部件1030可以存储在机器可读介质中,其包括用于以机器(例如计算机或其他数据处理系统)可读的形式存储信息的任何机构。例如,机器可读介质包括磁盘、光盘、随机存取存储器;只读存储器、闪存存储器设备等。

图11A至图11B是根据实施方案的示例性API软件栈1100、1110的框图。图11A示出了示例性API软件栈1100,其中应用程序1102可使用服务API对服务A或服务B进行调用以及使用OS API调用操作系统1104。此外,服务A和服务B可使用若干OS API调用操作系统1104。

图11B示出了示例性软件栈1110,包括应用程序1、应用程序2、服务1、服务2和操作系统1104。如所示,服务2具有两个API,其中一个(服务2API 1)从应用程序1接收调用并返回值,另一个(服务2API 2)从应用程序2接收调用并返回值。服务1(例如,可以是软件库)向OS API 1进行调用并接收返回的值,并且服务2(例如,可以是软件库)向OS API 1和OS API2两者进行调用并接收返回的值。应用程序2对OS API 2进行调用并接收返回的值。

图12是根据实施方案的用于移动或嵌入式设备的设备架构1200的框图。设备架构1200包括存储器接口1202、包括一个或多个数据处理器的处理系统1204、图像处理器和/或图形处理单元以及外围设备接口1206。如本文所用,术语“处理器”意指任何类型的计算元件,诸如但不限于微处理器、微控制器、复杂指令集计算(CISC)微处理器、精简指令集(RISC)微处理器、超长指令字(VLIW)微处理器,或任何其他类型的处理器或处理电路。各种部件可通过一条或多条通信总线或信号线耦接。各种部件可以是单独的逻辑部件或设备或可以集成在一个或多个集成电路,诸如片上系统集成电路。存储器接口1202可以耦接至存储器1250,其可以包括高速随机存取存储器诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)和/或非易失性存储器,诸如但不限于闪存存储器(例如,NAND闪存、NOR闪存,等等)。

传感器、设备和子系统可耦接到外围设备接口1206以促进多个功能。例如,运动传感器1210、光传感器1212和接近传感器1214可耦接到外围设备接口1206以促进移动设备功能。还可存在一个或多个生物特征传感器1215,诸如用于指纹识别的指纹扫描器或用于面部识别的图像传感器。其他传感器1216也可连接至外围设备接口1206,诸如定位系统(例如,GPS接收器)、温度传感器、或其他感测设备以促进相关的功能。可利用相机子系统1220和光学传感器1222(如电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光学传感器)来促进相机功能,诸如拍摄照片和视频剪辑。

可通过一个或多个无线通信子系统1224来促成通信功能,该无线通信子系统可包括可被配置为从远程源接收或传送数据包和/或数据流的射频接收器和发射器和/或光(例如,红外)接收器和发射器。无线通信子系统1224的具体设计与实现可取决于移动设备打算通过其操作的通信网络。例如,包括示出的设备架构1200的移动设备可包括设计来通过GSM网络、CDMA网络、LTE网络、Wi-Fi网络、Bluetooth网络或任何其他无线网络操作的无线通信子系统1224。具体地,无线通信子系统1224可提供通信机构,在该通信机构中,媒体回放应用程序可从远程媒体服务器检索资源或从远程日历或事件服务器检索调度事件。

音频子系统1226可耦接到扬声器1228和麦克风1230以促进支持语音的功能,诸如声音识别、语音复制、数字记录和电话功能。在本文描述的智能媒体设备中,音频子系统1226可以是包括支持虚拟环绕声的高质量音频系统。

I/O子系统1240可包括触摸屏控制器1242和/或其他输入控制器1245。对于包括显示设备的计算设备,触摸屏控制器1242可耦接至触敏显示器系统1246(例如,触摸屏)。触敏显示系统1246和触摸屏控制器1242可例如使用多种触摸和压力感测技术的任何一种检测接触和运动或压力,触摸和压力感测技术包括但不限于电容性、电阻性、红外和表面声波技术,以及用于确定与触敏显示系统1246接触的一个或多个点的其他接近传感器阵列或其他元件。触敏显示系统1246的显示输出可由显示控制器1243生成。在一个实施方案中,显示控制器1243可在可变帧速率下向触敏显示系统1246提供帧数据。

在一个实施方案中,包括传感器控制器1244以监测、控制,和/或处理从一个或多个运动传感器1210、光传感器1212、接近传感器1214,或其他传感器1216接收的数据。传感器控制器1244可包括逻辑来解释传感器数据以通过分析来自传感器的传感器数据来确定多个运动事件或活动中的一者的发生。

在一个实施方案中,I/O子系统1240包括其他输入控制器1245,可耦接到其他输入/控制设备1248,诸如一个或多个按钮、摇臂开关、拇指轮、红外线端口、USB端口和/或指针设备诸如触笔或控件/装置诸如扬声器1228和/或麦克风1230的音量控件的向上/向下按钮。

在一个实施方案中,耦接至存储器接口1202的存储器1250可存储操作系统1252的指令,包括便携式操作系统接口(POSIX)兼容和不兼容的操作系统或嵌入式操作系统。操作系统1252可包括用于处理基础系统服务以及用于执行硬件相关任务的指令。在一些具体实施中,操作系统1252可以是内核。

存储器1250还可以存储通信指令1254以促进与一个或多个附加设备、一个或多个计算机和/或一个或多个服务器的通信,例如从远程web服务器获取web资源。存储器1250还可包括用户界面指令1256,包括图形用户界面指令以有利于图形用户界面处理。

此外,存储器1250可存储传感器处理指令1258以促进传感器相关处理和功能;促进与电话相关的过程及功能的电话指令1260;促进与电子消息处理相关的过程及功能的即时消息指令1262;促进与网页浏览相关的过程和功能的网页浏览指令1264;促进与媒体处理相关的过程和功能的媒体处理指令1266;位置服务指令包括GPS和/或导航指令1268和基于Wi-Fi的位置指令以促进基于位置的功能性;促进与相机相关的过程和功能的相机指令1270;和/或其他软件指令1272,以有利于其他过程和功能,例如安全过程和功能以及与系统相关的过程和功能。存储器1250还可以存储其他软件指令,诸如促进与web视频相关的过程和功能的web视频指令;和/或促进与网络购物相关的过程和功能的网络购物指令。在一些具体实施中,媒体处理指令1266分为音频处理指令和视频处理指令,以分别用于促进与音频处理相关的过程和功能以及与视频处理相关的过程和功能。移动设备标识符,诸如国际移动设备身份(IMEI)1274或类似的硬件标识符也可存储在存储器1250中。

上面所识别的指令和应用程序中的每一者可对应于用于执行上述一个或多个功能的指令集。这些指令不需要作为独立软件程序、进程或模块来实现。存储器1250可包括附加指令或更少的指令。此外,可在硬件和/或软件中,包括在一个或多个信号处理和/或专用集成电路中,执行各种功能。

图13为根据实施方案的计算系统1300的框图。示出的计算机系统1300旨在表示一系列计算系统(有线或无线的),包括例如台式计算机系统、膝上型计算机系统、平板电脑系统、蜂窝电话、包括支持蜂窝的PDA的个人数字助理(PDA)、机顶盒、娱乐系统或其他消费电子设备、智能电器设备、或者智能媒体回放设备的一个或多个具体实施。另选的计算系统可以包括更多、更少和/或不同的部件。计算系统1300可用于提供在计算设备和/或计算设备可能与之连接的服务器设备。

计算机系统1300包括总线1335或用于传递信息的其他通信设备,和与总线1335耦接的可处理信息的处理器1310。虽然计算系统1300被图示为具有单个处理器,但是计算系统1300可以包括多个处理器和/或协处理器。计算系统1300还可包括耦接到总线1335的随机存取存储器1320(RAM)或其他动态存储设备。存储器1320可存储可由处理器1310执行的信息和指令。在由处理器1310执行指令期间,主存储器1320还可用于存储临时变量或其他中间信息。

计算系统1300还可包括只读存储器(ROM)1330和/或耦接到总线1335的可存储用于处理器1310的信息和指令的其他数据存储设备1340。数据存储设备1340可以是或包括各种存储设备,例如闪存存储器设备、磁盘,或光盘并且可通过总线1335或通过远程外围设备接口耦接到计算系统1300。

计算系统1300还可经由总线1335耦接到显示设备1350以向用户显示信息。计算系统1300还可以包括数字字母混合输入设备1360,该设备包括数字字母键和其他键,其可以联接到总线1335以将信息和命令选项发送到处理器1310。另一种用户输入设备包括光标控件1370设备,诸如触控板、鼠标、轨迹球、或光标方向键,用于向处理器1310传递方向信息和命令选择以及在显示设备1350上控制光标移动。计算系统1300还可以经由一个或多个网络接口1380从通信地耦接的远程设备接收用户输入。

计算系统1300还可以包括一个或多个网络接口1380,以提供对诸如局域网之类的网络的访问。网络接口1380可以包括,例如具有天线1385的无线网络接口,所述天线可以表示一个或多个天线。计算系统1300可以包括多个无线网络接口,诸如Wi-Fi和

在一个实施方案中,网络接口1380可以例如通过符合IEEE 802.11标准来提供对局域网的接入,并且/或者无线网络接口可以例如通过符合蓝牙标准提供对个人区域网络。其他无线网络接口和/或协议也可得到支持。除了经由无线LAN标准进行通信之外或代替经由无线LAN标准进行通信,网络接口1380可以使用例如时分多址(TDMA)协议、全球移动通信系统(GSM)协议、码分多址(CDMA)协议、长期演进(LTE)协议和/或任何其他类型的无线通信协议来提供无线通信。

计算系统1300还可包括一个或多个能量源1305和一个或多个能量测量系统1345。能量源1305可包括耦接到外部电源的AC/DC适配器、一个或多个电池、一个或多个电荷存储设备、USB充电器,或其他能量源。能量测量系统包括至少一个电压或电流测量设备,可测量计算系统1300在预先确定的时间段内消耗的能量。此外,可包括一个或多个能量测量系统测量,例如,显示设备,冷却子系统,Wi-Fi子系统,或其他常用的或高能量消费子系统所消耗的能量。

在一些实施方案中,本文所述的散列函数可利用系统(客户端设备或服务器)的专用硬件电路(或固件)。例如,该函数可以是硬件加速函数。此外,在一些实施方案中,系统可使用作为专用指令集的一部分的函数。例如,可使用指令集,该指令集可为针对特定类型的微处理器的指令集架构的扩展。因此,在一个实施方案中,该系统可提供硬件加速机制以用于执行密码操作,从而提高使用这些指令集执行本文所述函数的速度。

此外,硬件加速引擎/功能被设想为包括硬件、固件或其组合中的任何实现,包括各种配置,这些配置可包括作为单独处理器集成到SoC中的硬件/固件,或者包括为专用CPU(或核心),或者集成到电路板上的协处理器中,或者包含在扩展电路板的芯片上,等等。

应当指出的是,术语“大约”或“基本上”可在本文中使用,并且可被解释为“尽可能接近实际”、“在技术限制内”等。另外,除非另有说明,否则术语“或”的使用指示包含性的或(例如,和/或)。

在前面的说明中,已经描述了本公开的示例性实施方案。显而易见的是,在不脱离本公开的更广泛的实质和范围的情况下,可对其进行各种修改。相应地,说明书和附图被视为是例示性意义而不是限定性意义。所提供的描述和示例中的具体细节可用于一个或多个实施方案中的任何地方。不同实施方案或示例的各种特征可与所包括的一些特征和排除的其他特征不同地组合,以适应多种不同的应用。示例可包括主题,诸如方法,用于执行该方法的行为的装置,包括指令的至少一种机器可读介质,所述指令在由机器执行时使得机器执行该方法的行为,或者根据本文所述的实施方案和示例执行装置或系统的动作。另外,本文描述的各种部件可以是用于执行本文描述的操作或功能的装置。

通过附图以及通过上述具体实施方式,本实施方案的其他特征将显而易见。因此,在研究附图、说明书和所附权利要求时,这些实施方案的真正范围对于技能熟练的从业人员来说是显而易见的。

相关技术
  • 跨多个设备的数据同步
  • 跨设备的音视频数据同步播放的方法、播放设备及系统
技术分类

06120112146292