本专利申请要求本专利申请要求于2019年4月17日提交的美国临时专利申请序列第62/835,494号、于2019年6月1日提交的美国临时专利申请第62/855,975号以及于2019年9月9日提交的美国临时专利申请第62/897,789号的优先权,这些专利申请中的每一者据此以引用方式并入本文。
具体实施方式
本文所述的实施方案提供了针对丢失或错置的无法与广域网进行通信的设备启用安全的众包定位器服务的技术。将参考以下论述的细节来描述各种实施方案和方面,并且附图将对各种实施方案进行说明。以下说明书和附图为例示性的,并且不应被理解为限制性的。描述了许多具体细节,以提供对各个实施方案的全面理解。然而,在某些实例中,熟知的或常规的细节并未被描述,以便提供对实施方案的简明论述。
本说明书中所使用的术语仅仅是为了描述特定实施方案并非旨在对本发明进行限制。如本发明说明书和所附权利要求中所使用的那样,单数形式的“一个”(“a”、“an”)和“该”旨在也涵盖复数形式,除非上下文清楚地另有指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联地列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”(“comprises”和/或“comprising”)在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件,和/或其分组。
在以下讨论中,描述一种包括触敏显示器的计算设备。然而,应当理解,计算设备可包括一个或多个其他物理用户界面设备。可在设备上执行的各种应用程序可使用至少一个共用的物理用户界面设备,诸如触敏表面。触敏表面的一种或多种功能以及被显示在设备上的对应信息从一个应用程序到下一个应用程序可被调节和/或变化,和/或在相应应用程序内可被调节和/或变化。这样,该设备的共用物理架构(诸如触敏表面)可利用直观且透明的用户界面来支持各种应用程序。
下面就一些顺序操作描述了一些过程。然而,应当理解,所述操作中的一些操作可以不同的顺序来执行。此外,某些操作也可并行执行而非按顺序执行。
图1是根据实施方案的用于移动设备的网络操作环境100的框图;网络操作环境100包括多个移动设备,诸如移动设备102A和移动设备102B。移动设备102A至102B可各自为能够与无线网络和一个或多个无线附件设备进行通信的任何电子设备。一些示例性移动设备包括但不限于智能电话、平板电脑、笔记本计算机、可穿戴计算机(例如,智能手表或其他可穿戴计算附件)、移动媒体播放器、个人数字助理和其他类似的设备。移动设备102A和移动设备102B中的每一者包括用户界面,诸如移动设备102B的用户界面104。移动设备102A和移动设备102B可通过一个或多个有线和/或无线网络110进行通信以执行数据通信。例如,无线网络112(例如,蜂窝网络、Wi-Fi网络)可通过使用网关116与广域网114(诸如互联网)进行通信。同样地,接入设备118,诸如移动热点无线接入设备,可提供对广域网114的通信接入。然后,网关116和接入设备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可与提供或启用一个或多个服务的服务提供商115通信。示例性服务包括通过一个或多个有线和/或无线网络110的电话服务130、即时消息服务140、媒体服务150、存储服务160和设备定位器服务170。例如,电话服务130可实现移动设备102A和移动设备102B之间或者移动设备和有线电话设备之间的电话通信。电话服务130可通过广域网114路由基于IP的语音(VoIP)呼叫,或者可访问蜂窝语音网络(例如,无线网络112)。即时消息服务140可例如提供电子邮件和/或其他即时消息服务。媒体服务150可例如提供对媒体文件的访问,诸如歌曲文件、有声读物、电影文件、视频剪辑和其他媒体数据。存储服务160可向移动设备102A和移动设备102B提供网络存储能力以存储文档和媒体文件。设备定位器服务170可使得用户能够定位丢失或错置的设备,该丢失或错置的设备至少在某个点处连接到一个或多个有线和/或无线网络110。例如,移动设备102A可针对移动设备102B执行位置查询。设备定位器服务170还可经由使用探测器设备的网络来启用针对不具有网络连接的设备的位置查询,如下图2至图3所示。还可提供其他服务,包括用于更新移动设备上的操作系统软件或客户端软件的软件更新服务。在一个实施方案中,消息递送服务140、媒体服务150、存储服务160和设备定位器服务170可各自与云服务提供方相关联,其中经由与移动设备102A至102B相关联的云服务账户来促进各种服务。
图2示出了根据实施方案的用于定位无法访问广域网的无线附件201的系统200。系统200还可用于定位不能访问WAN或LAN并因此不能传输设备位置的设备。在一个实施方案中,无线附件201包括一个或多个无线收发器,并且可通过无线网络或对等通信链路直接或间接(例如,通过另一设备或计算机)地与伴随设备(例如,移动设备102)进行通信。无线附件设备的一些示例包括但不限于无线耳塞、双耳式耳机、头戴式耳机以及其他可穿戴设备(例如,智能手表、健身手环、光学头戴式显示器)。无线附件201还可包括其他无线设备,诸如游戏控制器或遥控器。在一个实施方案中,无线附件201还包括至少暂时不能访问广域网诸如互联网(例如,如图1所示的广域网114)的智能电话、平板电脑、膝上型计算机、智能扬声器设备、电视机或电视机机顶盒。无线附件还可以是包括信标或定位器标签的任何其他无线设备,这些信标或定位器标签可附加到其他设备或项目以使得能够跟踪或定位那些设备或项目。在一个实施方案中,无线附件201可利用无线技术标准(诸如但不限于蓝牙)与移动设备102进行配对。无线附件201还可通过无线技术诸如Wi-Fi直连、Zigbee或类似技术与移动设备102进行通信。尽管无线附件201与之配对的伴随设备通常被称为移动设备102,但伴随设备不限于移动设备。在一些实施方案中,伴随设备还可包括膝上型设备或台式设备,并且可另外包括一些可穿戴附件,诸如但不限于智能手表设备或可穿戴显示器。
在一个实施方案中,无线附件201可周期性地传输无线信标信号。无线附件201可使用本文所述的各种无线技术(例如,蓝牙、Wi-Fi等)中的一种无线技术来传输信标信号,并且在一个实施方案中还可使用超宽带(UWB)无线电技术来发送信标。可利用单个无线技术、多个可选无线技术中的一者、或多个同时发生的无线技术来传输信标信号。信标信号可传输信标标识符,该信标标识符包括专门识别无线附件201的信息。在一个实施方案中,信标标识符是与设备相关联的公共加密密钥。
信标信号还可传达关于无线附件201的信息,诸如信标类型、设备分类、电池电平。在一个实施方案中,信标信号还可传达设备状态,诸如丢失状态、警报状态或近所有者状态。信标信号还可包括指定电池寿命、充电状态和/或其他状态信息的信息。丢失状态可指示无线附件201已确定其自身已丢失或已被设备的所有者置于丢失状态下。警报状态可指示无线附件201置于如果设备从当前位置移动则设备应当触发警报的状态下。近所有者状态可指示无线附件201已检测到与附件的所有者相关联的移动设备102存在于附近。
信标信号可由本地靠近无线附件201的探测器设备202来检测。探测器设备202可以是与移动设备102类似的设备,并且可以通过广域网114接收和传输数据,并且使用与无线附件201类似的无线技术(例如,蓝牙等)接收和传输。具体地讲,探测器设备202可使用通过其传输信标信号的无线协议来接收数据。探测器设备202可使用一个或多个位置和/或定位服务来确定位置,该一个或多个位置和/或定位服务包括但不限于卫星定位服务206或地面定位系统,该地面定位系统使用从无线基站205诸如Wi-Fi接入点或蜂窝电话网络的蜂窝塔发射器接收到的RF信号。在一个实施方案中,探测器设备202周期性地存储基于一个或多个位置和/或定位服务确定的其位置。所存储的位置可与针对其确定该位置的时间戳相关联。当探测器设备202从无线附件201接收到信标信号时,探测器设备202可通过广域网114将探测器设备的位置传输到设备定位器服务器203。用于确定的探测器设备202的位置的时间戳可与接收到信标信号以将地理位置与接收到的信标信号相关联的时间戳相关联。在一个实施方案中,无线附件201包括经由集成卫星定位服务(例如,GPS)接收器的位置确定能力。如果无线附件无法访问网络以将位置发送到设备定位器服务器203,则无线附件可对信标信号301内的加密位置数据进行编码。然后,探测器设备202可将加密位置数据中继到设备定位器服务器203。
在无线附件201在信标信号内提供公钥的情况下,探测器设备202可加密所确定的位置数据并通过广域网114将加密位置数据传输到设备定位器服务器203。在一个实施方案中,附加数据可被加密并与位置数据一起传输,或者未加密地传输到设备定位器服务器203。例如,信标信号的接收信号强度指示器(RSSI)可与位置数据一起传输。然后,RSSI数据可用于确定无线附件201与探测器设备202的距离,并且有助于对所有者设备的三角测量。在RSSI数据以未加密状态传输的情况下,在一个实施方案中,如果存在其他更强的信号,则服务器可使用RSSI信息通过丢弃非常弱的信号来降低噪声。在一个实施方案中,还可提供UWB测距数据,其中此类数据可用。
在一个实施方案中,探测器设备202可根据由无线附件201传达的设备状态在从无线附件201接收到信标信号时表现不同。对于标准信标信号,探测器设备202可将加密位置数据置于队列中并在周期性传输窗口期间将位置数据传输到设备定位器服务器203。然而,如果无线附件201正指示警报状态,则探测器设备202可立即将位置数据传输到设备定位器服务器203。另外,如果无线附件201的信标信号指示附件靠近附件的所有者,则探测器设备202可不将位置数据传输到设备定位器服务器203。另选地,探测器设备202可延迟加密位置数据的传输。
如果无线附件201的所有者希望定位无线附件,则所有者可访问移动设备102上的设备定位器用户界面(例如,设备定位器UI 204)。设备定位器UI 204可与设备定位器应用程序相关联,该设备定位器应用程序用于定位向用户的在线账户(诸如云服务账户或另一类型的在线账户)注册的电子设备和附件。设备所有者可使用设备定位器UI 204来向设备定位器服务器203查询可能已由无线附件201的探测器设备202传输到设备定位器服务器的位置数据。在一个实施方案中,移动设备102可将与无线附件201相关联的公共加密密钥传输到设备定位器服务器203。然后,设备定位器服务器203可返回与公共加密密钥对应的任何存储的位置数据。返回到移动设备102的位置数据可以是由探测器设备202使用公共加密密钥加密的加密数据。移动设备102可使用相关联的私钥来解密该加密位置数据。然后,由移动设备102处理经解密的位置数据以确定无线附件201的最可能位置。在各种实施方案中,可通过来自多个接收位置的三角测量并使用其他数据,诸如与每个位置和时间戳相关联的信标信号RSSI或包括在位置数据内的UWB测距数据,来确定无线附件201的最可能位置。
图3示出了根据本文所述的实施方案的用于对无线附件进行配对和定位的系统300。在一个实施方案中,无线附件201的用户的移动设备102可呈现附件配对UI 302,用户可通过该附件配对UI使移动设备102与无线附件201配对。在移动设备102和无线附件之间的初始配对(305)期间,可在移动设备和无线附件之间执行公钥交换(310)。在一个实施方案中,在公钥交换(310)期间,移动设备102和无线附件201交换由设备和附件生成的公钥对中的公钥。在一个实施方案中,公钥交换(310)是单向传送,其中移动设备102将公钥/私钥对中的公钥传输到无线附件201。除此之外或另选地,公钥交换(310)可以是迪菲-赫尔曼密钥交换,其中设备和附件在两方之间建立共享秘密。在一个实施方案中,公钥交换(310)另外使用椭圆曲线密码学来建立共享秘密。例如,椭圆曲线迪菲-赫尔曼(ECDH)可用于实现公钥对以及一个或多个共享秘密的建立。在一个实施方案中,该一个或多个共享秘密包括防跟踪秘密,该防跟踪秘密可由无线附件201使用以周期性地导出附加公钥。在一个实施方案中,无线附件可广告临时身份并随后使用基于身份的加密,而不是使用具有广播的公钥的公钥加密。利用基于身份的加密,公钥是关于用户身份的信息的某个唯一元素,或者公钥派生于关于用户身份的信息的某个唯一元素,诸如电子邮件地址。要对加密信息进行解密的实体可从可信中央管理机构获得解密密钥。
在无线附件201已与移动设备102配对之后,无线附件201可周期性地广播包括设备状态信息和信标标识符的信标信号301。在一个实施方案中,信标标识符是来源于在公钥交换(310)期间建立的共享秘密的公钥。另外,无线附件201可周期性地执行公钥派生(315)以生成新的公钥并开始作为信标标识符广播新的公钥。公钥是K字节密钥,其中,每M分钟生成或轮转使用一个新的K字节密钥。值K和M可在各实施方案之间变化。在一个实施方案中,使用28字节的K值。在一个实施方案中,使用27字节的K值。值K可至少部分地基于与用于传输信标信号301的无线协议相关联的信标长度来确定。在一个实施方案中,信标信号可传输与低功耗无线电协议(诸如蓝牙低功耗)相关联的信标广告包的变体。
在一个实施方案中,值M为15分钟,使得每15分钟生成一个新的K字节密钥。可基于在公钥交换310期间生成的时间戳和防跟踪秘密来确定性地导出公钥。公钥派生(315)过程使得无线附件201能够随时间推移使用不同的密钥,从而防止与特定密钥和特定设备的长期关联性。可基于仅移动设备102和无线附件201已知的防跟踪秘密来导出密钥,从而允许移动设备102并且仅允许移动设备确定无线附件201在任何给定时间戳处将广播哪个公钥。防跟踪秘密可与ECDH公钥一起生成并传输到无线附件201。然后,防跟踪秘密可用于使无线附件201能够生成公钥序列Pi。在一个实施方案中,公钥序列Pi=λi·P,其定义标量或指数值λi与组元素之间的组操作,例如椭圆曲线点P。标量或指数值λ=KDF(AT,i),其中KDF是秘钥派生函数,AT是防跟踪秘密,并且i是计数器或时间戳。
在一个实施方案中,可在无线附件201受损的情况下启用反向跟踪抵抗以保护防跟踪秘密。当启用反向跟踪抵抗时,将防跟踪秘密传输到无线附件201,但无线附件不保留该防跟踪秘密。相反,附件计算值λi+1=H(λi||时间),其中,λ0=AT和H为密码散列函数。然后,无线附件201在给定时间段i内存储λi。如果无线附件201受损,则仅暴露用于当前和未来的值i的λi,而不暴露防跟踪秘密AT。在一个实施方案中,反向跟踪抵抗通过周期性地将λi写入到无线附件201的非易失性存储器来执行。该方法是可使用的若干方法中的一种方法。在各种实施方案中,还可以使用其他密钥安全技术。例如,在一个实施方案中可使用如下文相对于图15至图16所述的密钥生成和多样化技术。
在一个实施方案中,无线附件201可每两秒传输信标信号301,尽管可使用其他信标速率,并且信标速率可在某些情况下变化。例如,当处于近所有者状态下时,无线附件201可降低信标速率。信标速率也可基于加速度计触发的事件而变化。例如,当处于警报状态下时,无线附件201可增大信标速率,这可由无线附件201上的加速度计触发。
如果在传输信标信号301之后,无线附件201接收到来自与附件的用户相关联的移动设备102的回复,该回复指示移动设备102在无线附件的范围内,则无线附件201可进入近所有者状态。另外,当无线附件处于近所有者状态下时,信标信号301所传输的数据的量可减小。在一个实施方案中,当无线附件处于近所有者状态时,无线附件201的广告速率可降低。
无线附件201可在从移动设备102接收到指示无线附件201应进入警报状态的消息时进入警报状态。当处于警报状态时,无线附件可初始进入警备状态,在该警备状态中无线附件201可减少或停止传输定位器信标信号,但其他类型的无线信令可持续。无线附件201可保持在该警备状态下,直到移动设备102停用该状态或警报被触发。在一个实施方案中,警报可以在例如经由无线附件201内的加速度计检测到移动时被触发。在一个实施方案中,还可在检测到无线附件已经移出移动设备的范围并且不再处于近所有者状态时触发警报。当警报被触发时,信标信号301的速率可增大以增大可定位无线附件201的速度。
由无线附件201传输的信标信号301可由一组探测器设备303来检测,这组探测器设备是可接收由无线附件传输的信标信号并经由广域网114向设备定位器服务器203传输与信标信号301相关联的位置和其他数据的其他电子设备。在一个实施方案中,这组探测器设备303包括移动设备102的变体,或者可为其他类型的电子设备。这组探测器设备303可包括图2的探测器设备202的变体,并且可确定类似的位置确定技术。例如,这组探测器设备可执行操作(320)以将从无线附件201接收到的信标信号301与和探测器设备相关联的设备位置相关联。如相对于图2所述,设备位置可经由卫星定位服务或使用从无线基站(例如,Wi-Fi接入点或蜂窝塔发射器)接收到的RF信号的地面定位系统来确定。在一个实施方案中,该组探测器设备303还可包括可接收信标信号301的静止设备,诸如智能扬声器设备、电视机或电视机机顶盒。
该组探测器设备303可利用信标信号301内接收的信标标识符(例如,公钥)加密位置数据并将位置数据发送(325)到设备定位器服务器203。由这组探测器设备303发送的数据以匿名方式发送,并且探测器设备的识别信息不与探测器设备发送的数据一起储存。
设备定位器服务器203可将加密位置数据存储在数据存储库304中,在一个实施方案中,该数据存储库可以是具有多个节点的分布式数据库。附件的信标标识符/公钥的散列可与加密位置数据一起发送。加密位置数据可基于信标标识符的散列存储到数据库节点。可由设备定位器服务器203使用信标标识符的散列来索引加密位置数据。发送信标标识符的散列而不是完整的信标标识符可防止将完整的信标标识符存储到服务器。其他信息也可与位置数据一起以加密或未加密状态发送和存储。其他信息可包括信标信号301何时被接收的时间戳、接收到的信标的RSSI信息和/或例如经由UWB测距确定的测距信息。
当无线附件201的用户或所有者希望定位附件时,用户或所有者可访问移动设备102上的设备定位器UI 204。设备定位器UI 204可与移动设备102的设备定位器应用程序或特征相关联。设备定位器UI 204还可具有可从移动设备102或另一类型的电子设备(诸如膝上型设备或台式设备)访问的基于web的界面。在加载设备定位器UI 204时,移动设备102可向设备定位器服务器203发送用于位置数据的请求(330)。请求330可包括可用作信标数据的信标标识符的一组公钥散列。移动设备102可基于由移动设备102和无线附件201持有的秘密信息以及移动设备102希望接收位置数据的时间戳来生成这组公钥。在一个实施方案中,这组公钥基于公钥序列,Pi公钥序列基于防跟踪秘密生成。公钥序列Pi与私钥的匹配序列di对应。移动设备102可生成公钥序列以及对应的公钥序列di,其中i为计数器或时间戳。在一个实施方案中,移动设备102可在请求330内生成并发送先前24小时的公钥的散列。如果未发现24小时公钥的数据,则移动设备102可在较早的时间段内发送散列的密钥,返回到预先确定的位置数据保留限制。
基于公钥的散列而不是公钥来存储和索引加密位置数据,以防止位置服务数据的提供商存储可用于将加密位置数据绑定到特定设备并因此绑定到特定用户或用户账户的数据。探测器设备发送在与观测位置相关联的信标信号301内广播的公钥的散列。设备的所有者可利用针对查询时间段确定的公钥的散列来查询设备定位器服务器203。
在一些实施方案中,如果要经由来自电子设备诸如膝上型设备或台式设备的基于web的界面来执行位置查询,则可能需要将密钥发送到电子设备以使得能够解密位置数据。在一个实施方案中,可将位置数据的解密密钥发送到服务器,该服务器提供基于web的界面以使得服务器至少在通过基于web的界面查看位置数据时能够解密位置数据。在经由基于web的界面显示位置数据之前,可呈现通知以通知用户:正在与基于web的界面服务器临时共享位置解密密钥以使得能够解密并呈现位置数据。在一个实施方案中,可经由与基于web的界面相关联的代理帐户的位置查询权限的自动和临时授权来执行位置解密密钥的共享。
在一个实施方案中,可将无线附件201置于光丢失模式下。在光丢失模式下,可为无线附件生成一组未来公钥并且可将那些公钥的散列传输到设备定位器服务器203。然后,如果接收到与这组未来公钥中的密钥对应的任何位置数据,则设备定位器服务器203可通知移动设备102。在一个实施方案中,发送处于光丢失模式下的无线附件的位置的探测器设备可由设备定位器服务器203引导以将消息中继给无线附件201,该消息通知无线附件其处于光丢失模式下。类似的机构也可用于将消息中继给使附件置于显式丢失模式下的无线附件201。用户可经由设备定位器UI 204启用显式丢失模式。在显式丢失模式下,除非被所有者解锁,否则无线附件201不能与另一设备配对。
图4A至图4C是示出与本文所述的设备定位器系统一起使用的方法的流程图。图4A示出了用于将移动设备与无线附件配对的方法400。图4B示出了经由设备定位器服务器来确定无线附件的位置的方法410。图4C示出了经由设备定位器服务器来确定无线附件的位置的附加方法420。方法400、410和420的各方面同样在图2和图3中示出,如上所述。例如,以下操作的描述涉及移动设备102、无线附件201和设备定位器服务器203。
如图4A所示,方法400包括执行与无线附件的初始配对的操作(框401)。初始配对可以是蓝牙配对或利用其他无线电技术进行的另一种类型的配对。在初始配对期间,移动设备和无线附件可交换使得能够在移动设备或另一电子设备与无线附件之间执行无线数据交换的标识符、密钥或其他凭据。在一个实施方案中,与无线附件的初始配对可包括与针对其执行配对的无线协议相关联的凭据的交换,从而允许无线地交换的所有数据均至少具有第一加密层。
然后,移动设备可生成公钥/私钥对以及一个或多个附加共享秘密(框402)。设备然后可将公钥以及一个或多个附加共享秘密发送到无线附件(框403)。可使用多种密钥生成技术。在一个实施方案中,ECDH的变体用于生成用于加密的公钥对。在一个实施方案中,一个或多个附加共享秘密可包括防跟踪秘密,该防跟踪秘密使得无线附件能够基于现有的公钥来导出新的公钥。
在生成公钥/私钥对以及一个或多个附加共享秘密之后,移动设备可将公钥/私钥对存储到密钥库(框404)。在一个实施方案中,密钥库是基于云的密钥库,其可和与移动设备和无线附件关联到的同一云服务账户或一系列云服务账户相关联的其他设备同步。基于云的密钥库允许无线附件可被其他同步设备定位。移动设备然后可向设备管理服务器注册无线附件(框405)。向设备管理服务器注册无线附件可在无线附件和移动设备关联到的云服务账户之间形成关联。设备管理服务器可与其他基于云的服务器(诸如图2和图3的设备定位器服务器203)相关联,该其他基于云的服务器用于促进移动设备可访问的基于云的服务。
如图4B所示,方法410包括电子设备启动设备定位器UI的操作(框411)。响应于启动设备定位器UI,可为如本文所述的移动设备的电子设备或与和该移动电子设备相同的云服务账户相关联的另一电子设备可执行操作以生成包括在由无线附件在第一时间段期间广播的信标信号内的一组公钥(框412)。第一时间段可为例如先前的24小时。电子设备知道无线附件生成或轮转新公钥的频率,并且电子设备可使用通过无线附件生成的共享秘密来生成与由无线附件在第一时间段内生成的密钥对应的一组公钥。然后,电子设备可在请求内发送该组公钥,请求设备定位器服务器发送与该组公钥对应的位置数据(框413)。在一个实施方案中,将使用作为无线附件的信标标识符传输的公钥来加密由服务器响应于请求而发送的位置数据。电子设备可使用在与无线附件的初始配对期间生成的私钥来解密由服务器接收到的加密位置数据(框414)。然后,电子设备可处理位置数据以确定无线附件的最高概率位置(框415)。
处理位置数据可包括多种不同的操作。在一个实施方案中,位置数据包括纬度和经度信息以及位置被确定时的时间戳。电子设备可基于时间戳来进行三角测量并移除噪声或异常位置。在一个实施方案中,位置数据指定检测到信标的探测器设备的位置。位置数据还可包括由探测器设备检测到的信标的UWB测距信息和/或RSSI信息。电子设备可分析在设备位置的上下文中的UWB测距信息和/或RSSI信息,以产生无线附件的更准确位置。在图10中示出了并在下文描述了可由探测器设备传输并用于位置处理的数据。
如图4C所示,方法420包括可在设备定位器服务器不具有要响应于请求而向电子设备提供的位置数据的情况下执行的操作。电子设备可以生成包括在由无线附件在第一时间段期间广播的信标信号内的第一组公钥(框421)。第一时间段可以是例如24小时,但是可以使用其他初始搜索时间段。电子设备可以执行后续操作以请求设备定位器服务器发送与第一组公钥对应的位置数据(框422)。如果该数据由服务器返回(框423,“是”),则电子设备可以使用与这组公钥对应的私钥来解密从服务器接收的位置数据(框429)。
如果服务器未返回数据(框423,“否”),则电子设备可以生成包括在由无线附件在第二时间段期间广播的信标信号内的第二组公钥(框424)。第二时间段可以是第一时间段之前的24、48或其他小时数。然后,电子设备可以请求设备定位器服务器发送与第二组公钥对应的数据(框425)。如果响应于该请求,服务器返回数据(框426,“是”),则方法420可以前进到框429,其中电子设备解密接收的数据。如果服务器未返回数据(框426,“否”),或者服务器发送指示数据不可用的回复,则方法420包括:电子设备可以通过连续请求更早的时间段直到达到最大时间段,来加宽搜索时间(框427)。
图5是示出根据实施方案的在无线附件处广播信号信标的方法500的流程图。方法500的方面也在图2和图3中示出。方法500包括无线附件导出公钥(框502)。可以基于共享秘密和基于无线附件的时钟或计时设备确定的时间戳来导出公钥。然后,无线附件可以第一传输间隔传输信标信号,其中信标信号包括公钥(框503)。第一传输间隔可变化,并且在一个实施方案中为每两秒传输一个信标。
在传输信标信号之后,无线附件可监听来自所有者设备的响应。如果无线信号接收到来自所有者设备的响应(框504,“是”),则无线附件可进入近所有者状态(框505)并开始以较慢的第二传输间隔传输信标信号(框507)。如果无线附件没有从所有者设备接收到响应(框504,“否”),则无线附件可以第一传输间隔继续发送信标(框506)。
方法500还包括在发送信标时,使无线设备每M分钟轮转一次公钥,其中M的值可跨实施方案和/或基于设备状态而变化。基于计时器到期、计数器或其他机制,无线附件可以确定附件是否已进入新的密钥时间段(框508)。虽然无线附件尚未进入新的密钥时间段(框508,“否”),但附件可以使用当前公钥继续发送信标(框510)。当无线附件检测到它已进入新的密钥时间段时(框508,“是”),附件可使用当前时间戳导出新的公钥(框509)。在一个实施方案中,可以使用现有公钥、时间戳和防跟踪秘密来导出新公钥。
图6A至图6B示出了根据本文所述的实施方案的可由探测器设备执行的方法600的操作。方法600的方面也在图2和图3中示出。
如图6A所示,方法600包括当探测器设备的应用处理器处于低功率模式时,探测器设备使用无线基带处理器执行周期性信标扫描(框601)。虽然也可以在应用处理器处于活动状态时执行信标扫描,但是当探测器设备空闲、不活动或其他方式处于低功率状态时,信标扫描可以由无线处理器和无线电设备接收器作为低功率操作来执行。探测器设备可以将时间戳和信标标识符存储到信标扫描缓冲器,以用于由探测器设备接收的任何信标数据(框602)。在一个实施方案中,信标标识符是由无线设备基于时间戳和利用所有者的移动设备生成的共享秘密生成的公钥。
方法600还包括在应用处理器处于低功率模式时,探测器设备使用无线处理器执行周期性Wi-Fi扫描(框603)。虽然也可以在应用处理器处于活动状态时执行Wi-Fi扫描,但是当探测器设备空闲、不活动或其他方式处于低功率状态时,Wi-Fi扫描可以由无线处理器和无线电设备接收器作为低功率操作来执行。然后,探测器设备可以将Wi-Fi服务集标识符(SSID)和扫描时间戳存储到探测器设备上的Wi-Fi扫描缓冲器(框604)。
在一个实施方案中,Wi-Fi扫描缓冲器是滚动缓冲器,其存储最近检测到的SSID,同时覆盖较早检测到的SSID。在一个实施方案中,信标扫描缓冲器可为具有用于预定数量条目的空间的固定大小缓冲器。当信标扫描缓冲器变满时,探测器设备可以唤醒应用处理器(框605),并将那些信标扫描与Wi-Fi扫描缓冲器中最近检测到的SSID相关联。该关联性可使得探测器设备能够基于Wi-Fi扫描缓冲器数据来确定与接收到的信标对应的一组设备位置(框606)。
方法600在图6B中继续,并且包括:如果其他位置数据可用,则探测器设备将来自Wi-Fi扫描缓冲器数据的设备位置与其他位置数据相关联(框607),以生成细化的设备位置。如果生成了细化的设备位置,则探测器设备可以可选地将信标数据与细化的设备位置组合(框608)。探测器设备还可将信号强度(RSSI)或测距数据添加到位置数据(框609)。当探测器设备接收到信标信号时,可以收集信号强度和测距数据(例如,UWB测距数据)。然后,探测器设备可利用信标数据内接收到的一个或多个公钥来加密位置数据(框610)。信号和测距数据可以与位置数据一起加密,或者可以与加密位置数据一起未加密地发送。探测器设备可将加密位置数据入队以传输到设备定位器服务器(框611)。设备定位器服务器可以是多个云服务服务器之一,通常以批量和节流的方式进行通信。可收集一批加密数据并将其置于传输队列中,直到到达传输间隔,在此期间探测器设备可将数据传输到云服务服务器(框612)。加密数据可与信标标识符的散列一起发送,这些散列对应于加密位置,并且服务器将存储由信标标识符的散列索引的加密位置。
图7示出了根据实施方案的由探测器设备执行的信号和测距数据的采集。在一个实施方案中,探测器设备202可以针对跨多个位置702A至702N从无线附件201接收的信标信号301来收集信号强度信息(例如,RSSI 704A至704N)。探测器设备202还可表示多个探测器设备,诸如图3中的一组探测器设备303,其中每个探测器设备在不同位置处检测信标信号。每个探测器设备202可以发送不同的位置和信号强度,并且从多个探测器设备接收的位置和信号强度数据将由设备定位器服务器聚合。在一个实施方案中,在探测器设备和无线设备各自包括UWB无线电设备的情况下,如果探测器设备和无线设备在UWB传输的范围内,则可执行UWB测距706。UWB测距和信号强度数据可以与探测器设备的位置数据一起传输到设备定位器服务器。
所有者设备可从设备定位器服务器检索RSSI或UWB信息和位置数据以及位置被确定时的时间戳,在一个实施方案中,该位置数据以纬度和经度信息的形式提供。然后,所有者设备可使用位置数据、时间戳和信号信息来三角测量无线附件201的最可能位置。
图8示出了根据实施方案的用于定位设备和无线附件的联网系统800。根据一个实施方案,系统800还示出了用于设备定位器服务器203的示例性服务器架构。在一个实施方案中,设备定位器服务器203是互连的服务器设备的集群,其可以是单个数据中心内的物理或虚拟服务器,或者跨多个数据中心和/或地理位置分布。如上所述,设备定位器服务器203可以通过广域网114与附件所有者或用户的移动设备102和这组探测器设备303通信。移动设备102包括由使得能够定位无线附件的本地或web应用程序提供的UI,并且探测器设备303从无线附件接收信标信号并将与接收到的信号相关联的位置数据传输到设备定位器服务器203。
在一个实施方案中,设备定位器服务器203包括定位器服务器前端803、账户数据库825、数据库集群管理器813和一组数据库集群节点823A至823C。定位器服务器前端803是移动设备102和这组探测器设备303可以与之通信的前端接口。账户数据库825存储移动设备102和探测器设备303所关联的云服务提供商的账户的账户配置文件数据。数据库集群管理器813可以将数据库集群节点823A至823C配置为分布式位置数据库,该分布式位置数据库可以存储与由这组探测器设备303接收的信号信标的信标标识符相关联的位置、信号和测距数据。
在一个实施方案中,账户数据库825可以包含与每个云服务账户相关联的设备的列表。响应于定位给定设备(包括如本文所述的无线附件)的请求,账户数据库825可以验证该请求来自被授权请求给定设备的位置的设备。在一个实施方案中,当用户启动设备定位器UI并与定位器服务前端803通信时,定位器服务前端可以与账户数据库825通信并为与请求的用户相关联的每个设备提供当前或最后的已知位置,所述设备包括与请求的用户相关联的账户系列中的其他用户所关联的设备和/或无线附件。
在一个实施方案中,数据库集群管理器813可以通过对与一组位置数据相关联的信标ID执行散列来选择要存储信标数据的数据库集群节点823A至823C。每个数据库集群节点823A至823C可以与一系列散列值相关联。然后,数据库集群管理器可以将位置数据存储到对应于与给定信标ID的散列相关联的散列值范围的集群节点。尽管示出了三个数据库集群节点,但是实施方案不限于任何特定数量的节点,并且可以使用更多或更少的节点。
图9A至图9C示出了根据实施方案的设备定位器UI 204。图9A示出了根据一个实施方案的设备定位器UI 204的第一图形用户界面,其示出了用户的各种电子设备和无线附件的位置。图9B示出了根据一个实施方案的设备定位器UI 204的第二图形用户界面,其使得无线附件能够被设置为警报模式。图9C示出了根据一个实施方案的设备定位器UI 204的第三图形用户界面,其使得无线附件能够被设置为丢失模式。
如图9A所示,设备定位器UI 204可以显示在电子设备900上,该电子设备可以是移动设备,或者本文描述的任何其他类型的电子设备。设备定位器UI 204可以呈现统一的图形界面,通过该统一的图形界面可以定位多种不同类型的设备和附件,包括具有网络或蜂窝接入的无线设备和无本地网络接入的无线附件。设备定位器UI 204可以包括具有标记902的地图901,该标记示出无线设备或附件的当前或最后已知位置。标记902可以是标识附件并传达附件的位置的图标、图像、图形或任何其他用户界面元素。设备定位器UI中的可选元素903可以呈现无线设备或附件的描述或名称,并且可以示出无线设备或附件与电子设备900的当前位置之间的估计距离。
如图9B所示,设备定位器UI 204可以呈现使得无线附件能够被设置为警报模式的第二用户界面。在一个实施方案中,第二用户界面可以响应于选择图9A中所示的可选元素903而显示。第二用户界面可以呈现表示和/或描述所考虑的无线附件的用户界面元素904,以及显示无线附件的当前或最后已知位置的地图901和标记902。在一个实施方案中,设备定位器UI 204可以呈现可选择元素905,诸如按钮或另一用户界面元素,其允许设备定位器UI 204的用户将所选无线附件置于警报模式。当处于警报模式时,无线附件可以被配置为如果该无线附件从其当前位置移动则触发对用户的通知。
在一个实施方案中,无线附件可以经由该无线附件内的加速度计或其他类型的运动传感器来检测移动。无线附件可通过在由无线附件的信标信号传输的数据包中设置指示无线附件警报已被触发的标记来发起通知。在各种实施方案中,可使用其他触发或通知模式。在一个实施方案中,警报可以可选地在检测到无线附件已经移出移动设备的范围并且不再处于近所有者状态时由移动设备触发。在一个实施方案中,当无线附件超出与无线附件所关联的用户账户或账户系列相关联的任何设备的范围之外或者不能被这些设备定位时,可以可选地触发警报。
如图9C所示,设备定位器UI 204可呈现使得无线附件能够被设置为丢失模式的第三图形用户界面。在一个实施方案中,当无线附件不能经由设备定位器UI 204定位时,地图901将不显示指示附件的位置的标记。设备定位器UI 204可呈现表示和/或描述所考虑的无线附件的用户界面元素904和一组可选的用户界面元素。一个可选的用户界面元素906可呈现用于在发现附件时通知用户的选项。当启用发现时通知时,在一个实施方案中,可将无线附件置于轻丢失模式。与设备定位器UI 204相关联的电子设备可以生成一组公钥,无线附件将在未来时间段期间(例如,接下来的24小时,接下来的48小时等)将这组公钥与信标信号一起广播。如果探测器设备使用未来密钥中的一个检测到信号,则设备定位器服务器可以通知与该用户相关联的一个或多个电子设备。
另一个可选的用户界面元素907可以将无线附件置于显式丢失模式。当明确置于丢失模式时,无线附件将无法与其他设备配对,直到附件被将该设备置于丢失模式的用户或所有者解锁。当发送将无线附件置于丢失模式的请求时,可以要求请求的用户输入认证信息以确保请求的用户被授权请求在丢失的附件上启动丢失模式。认证信息可以包括与用户的账户相关联的用户名或密码,诸如用户、电子设备和无线附件所关联的云服务账户。认证信息还可包括生物特征信息,诸如指纹或面部识别数据、语音识别、虹膜识别和其他生物特征识别信息。
在一个实施方案中,可以在用户设备上显示由请求的用户提供的消息和联系人信息,以提示找到丢失的无线附件的人如何联系请求的用户。在一个实施方案中,当另一用户尝试将另一电子设备与丢失的附件配对时,可显示消息和联系人信息。
图10示出了根据实施方案的在尝试与丢失的无线附件进行配对时显示的附件配对UI 302。在一个实施方案中,当不同于图9的电子设备900并且不与无线附件的注册用户或所有者相关联的电子设备1000尝试与丢失的无线附件配对时,该电子设备的附件配对UI可如图10所示显示。在一个实施方案中,附件配对UI 302可显示与无线附件相关联的名称或描述1001,以及在将附件置于丢失模式时由附件的用户输入的消息1002。联系人信息1004还可与用户界面元素1006(诸如按钮)一起显示,该用户界面元素使得电子设备1000能够通过使用所提供的联系人信息1004联系请求用户。
本文所述的实施方案包括环境中的一个或多个应用编程接口(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。
图11是示出了可用于本发明的一些实施方案中的示例性API架构的框图。如图11中所示,API架构1100包括实现API 1120的API实现组件1110(例如,操作系统、库、设备驱动程序、API、应用程序、软件或其它模块)。API 1120指定可由API调用部件1130使用的API实现部件的一个或多个函数、方法、类、对象、协议、数据结构、格式和/或其他特征。API 1120可指定至少一个调用约定,该调用约定指定API实现部件中的函数如何从API调用部件接收参数以及函数如何向API调用部件返回结果。API调用组件1130(例如操作系统、库、设备驱动程序、API、应用程序、软件或其它模块)通过API 1120进行API调用,以访问并使用由API1120指定的API实现组件1110的特征。API实现组件1110可响应于API调用而通过API 1120向API调用组件1130返回值。
应当理解,API实现组件1110可包括未通过API 1120指定且对于API调用组件1130不可用的附加函数、方法、类、数据结构和/或其它特征。应理解,API调用部件1130可与API实现部件1110在同一系统上,或者可远程定位并通过网络来使用API 1120访问API实现部件1110。尽管图11示出了API调用部件1130的单个实例与API 1120交互,但应理解,可能以与API调用部件1130不同的语言(或相同的语言)编写的其他API调用部件也可使用API1120。
API实现组件1110、API 1120和API调用组件1130可以存储在机器可读介质中,其包括用于以机器(例如计算机或其他数据处理系统)可读的形式存储信息的任何机构。例如,机器可读介质包括磁盘、光盘、随机存取存储器;只读存储器、闪存存储器设备等。
图12是根据实施方案的用于移动或嵌入式设备的设备架构1200的框图。设备架构1200包括存储器接口1202、一个或多个处理器1204(例如,数据处理器、图像处理器和/或图形处理器)以及外围设备接口1206。各种部件可通过一条或多条通信总线或信号线耦接。各种部件可以是单独的逻辑部件或设备或可以集成在一个或多个集成电路,诸如片上系统集成电路。
存储器接口1202可以耦接至存储器1250,其可以包括高速随机存取存储器诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)和/或非易失性存储器,诸如但不限于闪存存储器(例如,NAND闪存、NOR闪存,等等)。
传感器、设备和子系统可耦接到外围设备接口1206以促进多个功能。例如,包括运动传感器1211、光传感器1212和接近传感器1214的一组传感器1210可耦接到外围设备接口1206以促进移动设备功能。还可存在一个或多个生物特征传感器1215,诸如用于指纹识别的指纹扫描器或用于面部识别的图像传感器。其他传感器1216也可连接至外围设备接口1206,诸如定位系统(例如,GPS接收器)、温度传感器、或其他感测设备以促进相关的功能。
设备架构1200还包括音频/视频系统1220。可利用相机子系统1221和光学传感器1222(例如,电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光学传感器)来促进相机功能,诸如拍摄照片和视频剪辑。音频子系统1226可耦接到扬声器1228和麦克风1230以促进支持语音的功能,诸如声音识别、语音复制、数字记录和电话功能。在本文描述的智能媒体设备中,音频子系统1226可以是包括支持虚拟环绕声的高质量音频系统。
可通过一个或多个无线通信子系统1224来促进通信功能,这些无线通信子系统可包括射频接收器和发射器和/或光学(例如,红外)接收器和发射器。无线通信子系统1224的具体设计与实现可取决于移动设备打算通过其操作的通信网络。例如,包括示出的设备架构1200的移动设备可包括设计来通过GSM网络、CDMA网络、LTE网络、Wi-Fi网络、Bluetooth网络或任何其他无线网络操作的无线通信子系统1224。具体地,无线通信子系统1224可提供通信机构,在该通信机构中,媒体回放应用程序可从远程媒体服务器检索资源或从远程日历或事件服务器检索调度事件。
I/O子系统1240可包括触摸屏控制器1242和/或其他输入控制器1245。对于包括显示设备的计算设备,触摸屏控制器1242可耦接到触敏显示器系统1246(例如,触摸屏)。触敏显示系统1246和触摸屏控制器1242可例如使用多种触摸和压力感测技术的任何一种技术来检测接触和运动或压力,触摸和压力感测技术包括但不限于电容性、电阻性、红外和表面声波技术,以及用于确定与触敏显示系统1246接触的一个或多个点的其他接近传感器阵列或其他元件。触敏显示系统1246的显示输出可由显示控制器1243生成。在一个实施方案中,显示控制器1243可在可变帧速率下向触敏显示系统1246提供帧数据。
在一个实施方案中,包括了传感器控制器1244以监测、控制和/或处理从运动传感器1211、光传感器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(例如,总线、构架)以实现计算系统1300的部件之间的通信。一个或多个处理器1310可与互连器1335耦接。计算系统1300还可包括存储器1320,以随机存取存储器(RAM)或其他动态存储设备的形式耦接到互连器1335。存储器1320可存储可由处理器1310执行的信息和指令。存储器1320还可为主存储器,用于在由处理器1310执行指令期间存储临时变量或其他中间信息。
计算系统1300还可包括耦接到互连器1335的可存储用于处理器1310的信息和指令的只读存储器(ROM)1330和/或其他数据存储设备1340。数据存储设备1340可以是或包括各种存储设备,例如闪存存储器设备、磁盘或光盘,并且可经由互连器1335或经由远程外围设备接口耦接到计算系统1300。
计算系统1300还可经由互连器1335耦接到显示设备1350以向用户显示信息。计算系统1300还可以包括数字字母混合输入设备1360,该设备包括数字字母键和其他键,其可以耦接到互连器1335以将信息和命令选项发送到处理器1310。另一种用户输入设备包括光标控件1370设备,诸如触控板、鼠标、轨迹球、或光标方向键,用于向处理器1310传递方向信息和命令选择以及在显示设备1350上控制光标移动。计算系统1300还可以经由一个或多个网络接口1380从通信地耦接的远程设备接收用户输入。
计算系统1300还可以包括一个或多个网络接口1380,以提供对诸如局域网之类的网络的访问。网络接口1380可以包括,例如具有天线1385的无线网络接口,所述天线可以表示一个或多个天线。计算系统1300可以包括多个无线网络接口,诸如Wi-Fi和
近场通信(NFC)和/或蜂窝电话接口的组合。网络接口1380也可以包括例如有线网络接口,以经由网络电缆1387与远程设备通信,该电缆可以是例如,以太网电缆、同轴电缆、光纤电缆、串行电缆或并行电缆。
在一个实施方案中,网络接口1380可以例如通过符合IEEE 802.11无线标准来提供对局域网的接入,并且/或者无线网络接口可以例如通过符合蓝牙标准提供对个人区域网络。其他无线网络接口和/或协议也可得到支持。除了经由无线LAN标准进行通信之外或代替经由无线LAN标准进行通信,网络接口1380可以使用例如时分多址(TDMA)协议、全球移动通信系统(GSM)协议、码分多址(CDMA)协议、长期演进(LTE)协议和/或任何其他类型的无线通信协议来提供无线通信。
计算系统1300还可包括一个或多个功率源1305和一个或多个能量测量系统1345。功率源1305可包括耦接到外部电源的AC/DC适配器、一个或多个电池、一个或多个电荷存储设备、USB充电器或其他功率源。能量测量系统包括至少一个电压或电流测量设备,可测量计算系统1300在预先确定的时间段内消耗的能量。此外,可包括一个或多个能量测量系统测量,例如,显示设备,冷却子系统,Wi-Fi子系统,或其他常用的或高能量消费子系统所消耗的能量。
位置数据采集和修剪
图14示出了根据实施方案的系统1400,其中探测器设备可采集和修剪检测到的无线信标信号的位置信息。系统1400包括硬件部件,诸如蓝牙控制器1433、实时响应处理器(AOP)1459、Wi-Fi控制器1463和应用处理器1434。应用处理器1434(其可为多核应用处理器)可执行例示的操作系统守护进程,该操作系统守护进程促进针对检测到的无线信标信号的位置确定。在一个实施方案中,操作系统部件包括蓝牙守护进程1427、Wi-Fi守护进程1453、位置守护进程1401和搜索守护进程1437。虽然描述了蓝牙信标信号,但这些技术不限于蓝牙广告,并且来自无线附件的其他类型的无线广告可用于无线附件和设备的众包位置确定。
蓝牙控制器1433可执行包括低功率扫描器1431,该低功率扫描器在控制器激活时执行操作。低功率扫描器1431可用于检测正在使用无线电信号广播广告的附近蓝牙(例如,蓝牙低功耗)设备的存在。蓝牙控制器1433的具体配置细节可由蓝牙守护进程1427确定,该蓝牙守护进程包括蓝牙处理器逻辑部件1423和对象发现逻辑部件1425。蓝牙处理器逻辑部件1423可控制蓝牙控制器1433的操作。对象发现逻辑部件1425可将由蓝牙控制器1433检测到的带时间标签的广告1413转发到位置守护进程1401以供进一步处理。在一个实施方案中,并非所有检测到的广告都被转发以用于处理。相反,仅转发包括指示正在广播的设备的位置应被确定并上传到云服务器1470的位或标记的广告,而出于所示系统1400的目的忽略其他广告。在一个实施方案中,蓝牙控制器1433被配置为基于广告的类型来过滤所扫描的广告,并且可仅存储包括指示正在广播的设备的位置应被确定并上传到云服务器1470的位或标记的广告。
在一个实施方案中,蓝牙控制器1433可在应用处理器1434处于低功率状态时执行扫描和处理操作。蓝牙控制器1433可在蓝牙广告缓冲器1429中缓冲检测到的广告,而不是在检测到广告时一再地中断应用处理器。蓝牙控制器1422可包括逻辑部件1424以对蓝牙广告缓冲器1429进行去重复,使得缓冲器不填充相同的广告。在应用处理器1434的唤醒事件期间,蓝牙广告缓冲器1429可伺机地卸载。Wi-Fi控制器1463可执行扫描操作(1465)并将与检测到的Wi-Fi信号相关的信息存储在Wi-Fi扫描缓冲器1461中。应用处理器1434经由位置守护进程1401可尝试将检测到的广告与存储在Wi-Fi控制器1463内Wi-Fi扫描缓冲器1461中的Wi-Fi信号数据匹配。
在一个实施方案中,Wi-Fi扫描缓冲器1461是滚动缓冲器,其存储最近检测到的SSID,同时覆盖较早检测到的SSID。在一个实施方案中,Wi-Fi扫描缓冲器可为具有用于预定数量条目的空间的固定大小缓冲器。Wi-Fi守护进程可将Wi-Fi控制器1463配置为在扫描缓冲器变满时唤醒应用处理器1434,或者基于为Wi-Fi守护进程1453配置的WSB唤醒/完全滚动策略1455简单地覆盖较早检测到的SSID。
位置守护进程1401包括集群位置服务接口1403和集群位置服务子采集器1405。集群位置服务接口1403是服务提供商接口,其使得搜索守护进程1437能够查询位置信息,包括关于由位置查询应用程序1435跟踪的无线附件的信息。集群位置服务子采集器1405采集带时间标签的广告1413并将它们与位置信息关联。集群位置服务子采集器1405接收带时间标签的广告1413并将这些广告存储到信标高速缓存1407。拉锁逻辑部件1409使用与GPS提供商1415、Wi-Fi定位提供商1417、信号环境提供商1419和运动活动状态1421相关联的数据来将带时间标签的位置数据与带时间标签的广告1413关联。该关联数据被提供给服务提供商探测器框架1411,该服务提供商探测器框架将关联信标数据递送到搜索守护进程1437内的信标有效载荷高速缓存1441。
在一个实施方案中,GPS提供商1415提供经由从GPS设备接收到的信号确定的位置数据,该GPS设备和与全球定位或全球导航系统(例如,全球定位系统、全球导航卫星系统、BeiDou-2、伽利略全球导航卫星系统等)相关联的一组卫星通信。一般来讲,在本文具体地描述了GPS并且一般地描述了基于卫星的定位服务的情况下,应当理解,所述卫星定位技术可使用任何全球导航卫星系统(GNSS)来执行。还可经由Wi-Fi定位提供商来确定位置,该Wi-Fi定位提供商基于检测到的Wi-Fi SSID和/或媒体访问控制(MAC)地址来估计设备位置。可基于与检测到的信号相关联的RSSI来进一步细化位置估计。信号环境提供商1419可提供关于例如对于给定地理区域是GPS最优还是Wi-Fi定位最优的分类数据。信号环境提供商1419可使用设备上分类器,该设备上分类器基于检测到的Wi-Fi信号的数量来估计Wi-Fi定位的可能精度。
运动活动状态1421提供关于探测器设备是静止的还是处于运动中的信息。可部分地基于由AOP 1459提供的运动更新1457来确定运动活动状态1421。AOP 1459保持通电,而探测器设备内的其他处理器处于低功率状态。AOP 1459可从运动传感器收集数据并推迟运动更新1457,直到应用处理器1434或其他处理器从低功率状态唤醒。在图15中进一步描述了由集群位置服务子采集器1405执行的操作。
搜索守护进程1437与可用于呈现设备定位器UI 204的位置查询应用程序1435通信。搜索守护进程1437还经由网络(例如,经由网络114的设备定位器服务器203)与一组云服务器1470通信。搜索守护进程1437可处理由位置守护进程1401提供的观测,并将那些观测提供给该组云服务器1470。搜索守护进程1437还可包括观测下载器和存储单元1439,该观测下载器和存储单元下载并存储由位置查询应用程序1435跟踪的附件和设备的位置数据。位置数据可从云服务器1470下载并从位置守护进程1401经由集群位置服务接口1403查询。
搜索守护进程1437从服务提供商探测器框架1411接收信标数据并将信标数据存储在信标有效载荷高速缓存1441中。搜索守护进程1437包括去重复逻辑部件1443以对信标有效载荷进行去重复。使用与信标一起广播的公钥(例如,信标ID)来加密(1447)去重复的信标有效载荷内的位置数据。信标数据和相关联的加密位置可在被上传到云服务器1470之前存储在信标上传高速缓存1449中。当信标数据准备上传时,搜索守护进程1437可激活队列和请求上传逻辑部件1451。队列和请求上传逻辑部件1451可与活动调度器1445通信以在下一个服务器上传间隔期间将数据上传到云服务器1470。可限制上传到云服务器1470的信标的数量。另外,当要通过网络传输其他不相关的数据时,可伺机地发送数据。
上传的信标数据包括:与信标相关联的位置,该位置使用传输为信标标识符的公钥来加密;与何时检测到信标相关联的时间戳;以及用于加密位置数据的公钥的散列。云服务器1470可使用公钥的散列来索引加密位置数据和时间戳。使用公钥的散列防止云服务器1470获得与存储数据相关联的附件的所有者的直接信息,同时允许附件的所有者使用附件的所有者已知的公钥的散列来查询设备位置。
图15示出了根据实施方案的将检测到的信标广告与位置关联的系统1500。系统1500包括上述集群位置服务子采集器1405,该集群位置服务子采集器包括上述信标高速缓存1407、拉锁逻辑部件1409和服务提供商探测器框架1411。集群位置服务子采集器1405还包括上下文数据,该上下文数据包括设备的最后位置1521、最后运动状态1523、最后信号环境状态1525以及当前操作设置1527的至少子集。在接收或检测到各种事件时更新上下文数据。基于接收到开机位置事件1529来更新最后位置1521。基于接收到开机运动状态事件1531来更新最后运动状态1523。基于接收到开机信号环境事件1533来更新最后信号环境1525。响应于更新操作设置事件1535来更新操作设置1527。
在一个实施方案中,当在信标高速缓存1407处接收到新广告时,拉锁逻辑部件1409可确定(1507)广告是否可带位置标签。拉锁逻辑部件1409可检查最后位置1521和与最后位置相关联的时间戳。如果最后位置确定的时间在检测到信标广告的时间之后超过阈值秒数,则可能无法针对信标广告可靠地确定位置。在这种情况下,可丢弃该信标广告。如果最后位置确定的时间在检测到信标广告之前超过阈值秒数,则位置可能过期并且拉锁逻辑部件1409可主动请求位置(1509)。如果最后位置1521在与信标广告相关联的时间戳的时间处阈值秒数内,则确定广告可带位置标签。位置附加于信标广告并由服务提供商探测器框架1411保存为信标有效载荷。
如果拉锁逻辑部件1409主动请求位置(1509),则该逻辑部件可确定是否允许GPS(1511)。出于各种原因,诸如如果最后信号环境1525指示GPS可能不准确或者Wi-Fi可能更准确,则可允许或不允许使用GPS。还可基于操作设置1527来确定GPS的使用。如果GPS被允许,拉锁逻辑部件1409可使用图14所示的GPS提供商1415经由GPS请求位置(1515)。如果GPS不被允许,则拉锁逻辑部件1409可使用图14所示的Wi-Fi定位提供商1417使用Wi-Fi定位服务来请求位置(1513)。在一些实施方案中,对Wi-Fi位置确定的请求还可利用基于从其他无线基站(诸如蜂窝或移动网络塔)接收到的RF信号的定位技术。在请求之后,集群位置服务子采集器1405可执行操作(1517)以监视位置请求的超时。如果接收到位置,则接收到开机位置事件1529将击发,并且最后位置1521将更新。如果在指示的广告时间的阈值秒数内接收到位置,则位置可与广告相关联。
用于确定位置是否可以附加到广告的特定阈值可以基于探测器设备的最后运动状态1523或由设备存储的历史运动状态数据而改变。如果探测器设备正在移动,则阈值减小,使得在将位置与广告相关联之前在广告检测和位置确定之间的时间将相对较短(例如,45秒)。然而,如果设备未移动,则阈值可增大(例如,600秒),因为探测器设备在该时间段内的位置数据更可能是准确的并且不改变。
当针对信标广告确定位置时,还可将置信度分数分配给该位置。置信度分数允许搜索守护进程1437对信标有效载荷进行去重复和细化。置信度分数还允许云服务器1470跨可能正在发送附件或设备的位置数据的多个探测器来细化针对附件或设备接收到的位置估计。
置信度分数可基于与位置相关联的不确定性值来确定。可基于对针对广告确定的位置的精度的评估来确定不确定性程度。具体地讲,探测器设备确定的位置是设备的位置。执行附加计算以在探测器设备或无线附件进入和离开彼此的范围时尝试确定信标设备相对于探测器设备的位置。在一个实施方案中,可使用信标RSSI或UWB测距,如图7所示。集群位置服务可获取位置的集群以及与这些位置相关联的确定性,并且将位置的集群细化到一个或多个位置中,该一个或多个位置是在检测到对象的时间期间对象的位置的最佳估计。
为了细化位置的集群,可按时间对检测到的广告的潜在位置的列表进行排序。可以从最近到最早遍历位置列表,并且可以分析每个位置以确定该位置是否与先前读数连续。如果位置看起来是连续的,则采用位置的加权平均值并将其用作信标的位置,其中用于求平均值的权重为位置的不确定性度量。如果存在不连续的单个位置,则可丢弃该位置。然而,如果检测到指示信标对象正在移动的多个位置,则停止求平均值过程并且可针对对象报告多个位置。使用这些分析技术,集群位置服务可确定例如是信标对象正在运动经过静止探测器设备,还是信标对象在探测器设备移动经过时是静止的,或者是信标对象和探测器设备相对于彼此处于运动中。该确定可用于进一步细化位置数据并产生信标对象的一个或多个估计位置,而不是在检测到信标对象时简单地产生探测器设备的一组位置。
图16示出了在探测器设备处于低功率状态时收集信标广告的方法1600。方法1600可由具有类似于图14的系统1400的系统的设备执行。在一个实施方案中,方法1600包括在应用处理器处于低功率状态时使用无线处理器扫描信标广告(框1601)。广告扫描由无线控制器执行,诸如但不限于包括广告缓冲器(例如,蓝牙广告缓冲器1429)的蓝牙控制器(例如,蓝牙控制器1433),该广告缓冲器可在应用处理器(例如,应用处理器1434)处于低功率状态时存储检测到的广告。当检测到信标广告时,无线控制器可以将信标和时间戳存储在信标广告缓冲器中(框1602)。无线控制器还可包括执行处理信标广告缓冲器以移除重复条目的操作的逻辑部件(框1603)。当应用处理器从低功率状态唤醒时,无线控制器可将缓冲器条目传输到应用处理器(框1604)。然后,应用处理器可将信标广告与存储位置数据关联以确定与信标广告相关联的设备的位置估计(框1605)。
图17A至图17B示出了修剪针对对象检测到的位置的方法1700。在一个实施方案中,方法1700可由搜索守护进程1437对存储在信标上传高速缓存1449中的数据执行。在一个实施方案中,方法1700可由去重复逻辑部件1443在存储在信标有效载荷高速缓存1441中的数据去重复期间执行。
如图17A所示,方法1700包括按扫描日期对存储的观测进行排序的操作(框1701)。单独信标对象的观测可单独排序。方法1700还包括计算观测的中值水平精度的操作(框1702)。可针对观测到的每个单独的对象计算单独的中值水平精度。方法1700还包括保留每个唯一密钥的第一观测和扫描日期的操作(框1703)。隐私时间段内的每个唯一密钥可表示检测到的单独对象。对于具有相同密钥的后续观测,方法1700包括对该观测执行抽取/丢弃操作(框1704)。方法1700在图17B中继续。
如图17B所示,对于每次观测并且对于每个对象,可以执行包括多个子操作的抽取/丢弃操作1704。在一个实施方案中,子操作包括用于确定对象的当前保留的观测的次数是否大于观测的最大配置次数的子操作(框1711)。对象的观测的最大次数可以是可动态变化的预定次数。如果已保留最大次数的观测,则丢弃该观测(框1715)。
附加子操作包括确定观测的扫描日期自最后保留的观测以来是否大于N秒(框1712),因为当同一对象的多次观测在时间上非常接近时,保留这些观测可能不是有益的。如果扫描日期自最后保留的观测以来不大于N秒,则丢弃该观测(框1715)。
附加子操作包括确定观测的观测值以及确定观测值是否大于阈值(框1713)。在一个实施方案中,可基于多种因素(包括与观测相关联的位置的置信度分数)来将观测值(例如,高、中、低)赋予观测。观测值还可以基于诸如与观测相关联的RSSI的因素,如基于弱/远距信号的观测可以被视为比基于更强/更接近信号的观测值更低的值。如果观测值不大于或等于阈值观测值(例如,中),则可丢弃该观测(框1715)。
参考框1702处的用于计算对象的观测的中值水平精度的操作,执行附加子操作以确定观测的水平精度是否大于当前保留的观测的中值水平精度(框1714)。如果观测的水平精度不大于中值,则可丢弃该观测(框1715)。如果观测通过了先前的子操作(框1711、框1712、框1713)以及框1714处的子操作的复审,则保留该观测和相关联的扫描日期(例如,时间戳)(框1716)。保留的观测可被进一步处理以上传到存储无线对象和信标的探测器提交的位置的云服务器(例如,云服务器1470)。
图18是根据实施方案的在服务器上处理设备位置数据的方法1800。方法1800可由设备定位器服务器诸如设备定位器服务器203和/或云服务器1454执行。方法1800包括复审设备的一组提交的位置的操作(框1801)。复审针对单个设备或附件的观测,包括从多个探测器设备提交的所有观测。例如,如果无线附件或设备正在信号繁忙区域中发送信标,则多个设备可发送附件或设备的位置。然后,服务器可以复审由该多个探测器设备提交的设备的位置,以进一步限定设备的位置数据。复审位置可包括分析各个位置的置信度分数(框1802)。
如果服务器检测到存在针对其位置数据正在细化的设备的活动位置查询(框1803),则服务器可绕过细化过程的一些步骤并响应于位置查询将当前位置数据发送到客户端设备(框1804)。如果没有针对设备的位置查询待审,则服务器可能花费额外的时间基于位置的置信度分数来细化位置数据(框1805)。细化数据可包括例如基于由多个探测器设备报告的位置来确定设备或附件的估计位置。在一个实施方案中,基于置信度分数来细化位置数据可另外包括跨由多个探测器提交的位置的加权平均操作,其中基于置信度分数来对平均值加权。如果在细化期间的任何时刻接收到位置查询(框1803),则服务器可响应于该查询而发送当前位置数据(框1804)。
如果在发送当前位置数据之后,服务器接收到设备处于运动中的指示(框1806),则服务器可被配置为在接收到新位置数据时发送位置数据的持续馈送(框1808)。由于位置数据可被加密,因此服务器将不会直接了解所查询的设备或附件是否处于运动中。然而,各种探测器设备可能能够确定观测到的设备或附件处于运动中,并且可将运动状态标记发送到服务器。如果设备未处于运动中,则服务器可基于置信度分数来继续细化位置数据(框1805)。
图19A至图19C示出了在膝上型设备上发送广告信标的系统和方法。基于如本文所述的信标广告的众包位置确定可用于多种不同类型的设备和附件,包括具有网络或蜂窝接入的无线设备和没有当前或本地网络接入的无线附件。一般来讲,膝上型设备将能够经由Wi-Fi接入点访问网络并发送位置更新到设备位置服务器。在一个实施方案中,当膝上型设备未连接到网络时,该设备可开始广播无线广告,诸如蓝牙低功耗广告,该无线广告可用于经由附近的探测器设备来确定设备的位置。
如图19A所示,电子设备1902诸如膝上型计算机或平板电脑可经由无线网络协议(例如,Wi-Fi)、移动无线网络(例如,蜂窝)或经由有线网络连接(例如,以太网)来连接网络114。可通过网络114发送设备的位置更新以使得能够定位设备。如果出于各种原因中的任一种原因膝上型设备1902变得与网络114断开连接,则膝上型设备1902可开始经由无线电设备广播信标广告1904,该无线电设备允许附近的探测器设备确定电子设备1902的位置并将该位置上传到设备位置服务器。启用广告信标的方法1910示于图19B中。图19C中出于隐私和功率节省的目的示出了循环广告信标的方法1920。
如图19B所示,方法1910包括将电子设备诸如膝上型设备或平板电脑准备成低功率状态(框1911)。例如,电子设备可准备被置于其中设备的部分被关闭的睡眠状态或被置于低功率状态,而设备的存储器保持至少部分地通电以保留应用程序和系统状态。在一些实施方案中,存储器中的数据可被写入非易失性存储装置,并且电子设备可进入待机状态,在该待机状态中电子设备的更多数量的部件(包括存储设备状态的存储器)可被断电。设备在睡眠状态中经过一段时间之后,可进入待机状态。
当电子设备初始准备转换成低功率(睡眠或待机)状态时,电子设备可确定是否存在与已知网络的连接(框1912)。例如,电子设备可确定该设备是否连接到已知的Wi-Fi接入点或具有已知MAC地址的交换机/路由器。在一个实施方案中,已知网络是电子设备先前连接的网络。在一个实施方案中,已知网络是电子设备先前连接,并且被配置为自动加入的网络。在一个实施方案中,已知网络可以是预先配置的位置处的网络,诸如家庭网络或工作网络。在一个实施方案中,已知网络是在经常访问的感兴趣位置处并且电子设备被配置为自动加入的网络。
如果电子设备连接到已知网络,则电子设备可保持连接到该网络一段时间(框1913)。在该时间段之后,电子设备可与网络断开连接(框1914)。电子设备可例如响应于进入更深睡眠状态(例如,待机)而与网络断开连接。电子设备还可保持在睡眠状态(例如,存储器通电)中,但与网络断开连接以维持电力。该时间段可以是预先确定的时间段(例如,12小时)或者可基于电子设备的电池状态而变化。在一个实施方案中,如果电子设备连接到功率源,则设备可无限期地保持连接到网络。根据设备的功率配置,即使电子设备连接到外部功率源,电子设备也可在预先确定的时间段之后与网络断开连接以降低总体功率消耗。
当电子设备与网络断开连接时,电子设备可确定设备的当前位置是否是安全的感兴趣位置(框1915)。在一个实施方案中,可配置多个安全的感兴趣位置。默认情况下,用户的“家庭”位置是默认的感兴趣位置。如果电子设备在处于安全的感兴趣位置中时与网络断开连接,则用户可能知道在电子设备与网络断开连接之前设备的位置或者将尝试定位设备。在此类场景中,电子设备将不发送信标(框1917)。
如果未连接到已知网络(框1912),则在与网络断开连接之后(框1914)或者一进入低功率状态时,当未处于安全的感兴趣位置时(框1915),电子设备可开始无线信标循环(框1916)。在无线信标循环期间,设备广播信标广告以使得探测器设备能够检测到设备的存在。然后,探测器设备可将电子设备的位置上传到设备位置服务器,如上所述。无线信标循环可经由图19B的方法1920来实现。
如图19B所示,方法1920包括电子设备将电子设备上的无线控制器配置为基于一组密钥来广播信标标识符(框1921)。无线控制器可以是但不限于蓝牙或蓝牙低功耗控制器。在一些实施方案中,可使用其他类型的低功率无线协议。无线控制器可由电子设备在活动时配置,并且电子设备可在无线控制器广播信标广告时进入低功率状态。信标标识符基于一组密钥,该组密钥包括与电子设备相关联的公钥。电子设备可在第一时间段内广播信标标识符(框1922)。在一个实施方案中,第一时间段可以是第一隐私时间段,在此期间将基于公钥广播广告。第一隐私时间段之后,电子设备可使用如上所述的防跟踪秘密来生成新的一组密钥,包括可用作下一个信标标识符的新的公钥。
然后,电子设备可将无线控制器配置为基于新的一组密钥来广播下一个信标标识符(框1923)。然后,电子设备可在第二时间段内广播下一个信标标识符(框1924)。电子设备可继续循环信标标识符直到达到广播超时(框1925)。一旦达到广播超时,电子设备就可以在第三时间段内停止广播(框1926)。电子设备可停止广播以维持电池寿命或降低电子设备的功率消耗。根据位置和时间,电子设备还可以在探测器将不可能在附近检测设备的时间段期间停止广播。
电子设备还可以在恢复广播(框1921)之前周期性地重新配置广播调度(框1927)。当恢复广播时,电子设备可使用与先前广告的信标标识符不同的信标标识符进行广播。当重新配置广播调度时,电子设备可改变信标被广告的时间和/或24小时期间信标被广告的次数。
在一个实施方案中,无线控制器由电子设备的应用处理器直接控制,并且电子设备暂时从睡眠状态唤醒以改变由无线控制器广播的广告。在此类实施方案中,电子设备可在广播的第一天期间更频繁地广播,并且在广播的第二天期间较不频繁地广播。例如,在广告广播的第一天期间,电子设备可广播两个小时,其中信标标识符每15分钟循环一次。然后,电子设备可以停止广播三小时,之后恢复广播两小时。在第二天期间,电子设备可每天广播两次,每个广播时间段广播一小时。
在一个实施方案中,无线控制器包括缓冲器,该缓冲器可包括多个预先生成的密钥集和信标标识符。然后,无线控制器可被配置为自动循环信标标识符而不需要电子设备从低功率状态唤醒。
检测由已知设备广播的信标广告
本文所述的实施方案提供了一种可用于跟踪或定位无线信标设备附加到的项目的无线信标设备。无线信标设备和伴随设备可使用如图3所示的公钥交换(310)或经由协作密钥生成过程加密地相关联。在协作密钥生成过程期间,伴随设备和无线信标设备可协同工作以生成一组基础密钥。协作密钥生成算法使得伴随设备和无线信标设备在交换基线加密材料之后能够单独地生成该组基础密钥。然后,每个设备可以使用基础密钥来生成附加的多样化密钥。多样化密钥可用于确定由无线信标设备使用的无线硬件广播地址(例如,MAC地址)。多样化密钥还可用于导出加密密钥,这些加密密钥使得能够在伴随设备和无线信标设备之间建立加密通信链路。
协作地生成的密钥可用于配置由无线信标设备广告的信标的无线硬件地址。伴随设备可通过搜索信标广告来检测已知设备,这些信标广告具有与已知设备的公钥匹配的硬件地址。各种不同的移动设备类别(例如,移动电话、膝上型设备、平板电脑、定位器标签等)可被配置为广播信标(例如,野外模式信标),这些信标使得探测器设备能够检测这些设备的存在并将设备的估计位置上传到设备定位器服务器。无线信标设备还可被配置为当设备在其伴随设备的无线通信范围内时或者在伴随设备和无线信标设备之间的加密通信会话终止之后的一段时间内以近所有者模式发送信标。无线信标设备可被配置为在设备已以近所有者模式发送信标达阈值时间段之后转换成以野外模式状态发送信标。
由无线信标设备广播的广告包可根据设备的广告模式而不同。图20中示出了近所有者和野外模式广告包。图21中示出了从近所有者模式转换成野外模式的方法。根据针对信标设备检测到的包的类型,执行匹配过程以确定信标设备是否为已知设备,该匹配过程可实时发生或推迟到稍后的时间段。在一个实施方案中,针对以近所有者模式发送信标的设备执行实时匹配,而针对处于野外模式的设备的匹配可推迟直到信标公布事件。
图20示出了用于无线附件的广告信标包2010。由无线附件广播的广告包可基于附件是处于近所有者模式(包2011)、还是处于野外信标状态(包2012)或者是正在广告不需要的跟踪确定或抑制数据(包2013)而变化。在一个实施方案中,广告包可以是蓝牙低功耗广告包。然而,实施方案并不限于如此。另外,包格式可不同于标准无线协议广告包。
在一个实施方案中,近所有者广告包2011包括用作广告地址的第一公钥部分(PubKey1/2)。第一公钥部分可包括无线附件的当前公钥的前六个字节。在一个实施方案中,广告地址的最高有效位被约束为值0b11,其指定静态设备地址。相反,如果无线附件是无线信标标签,则实际地址位与定义无线附件的标签类型的位一起存储在EK(额外密钥)字段中。近所有者包可另外包括字段L1、T1、CID、T2、L2和S1。L1是广告类型字段的长度,T1是广告类型字段,CID是伴随ID字段,T2是有效载荷类型(例如,对象发现),L2是对象发现字段的长度,S1是状态标记字段。对象发现有效载荷的长度可根据无线附件是处于近所有者模式还是野外模式而变化。状态标记字段可包括例如电池状态和附加设备类型标记,诸如无线附件是否为无线信标标签。
在一个实施方案中,野外模式广告包2012可包括与近所有者广告包2011类似的字段。野外模式广告包2012可以另外包括第二公钥部分(PubKey2/2),该第二公钥部分包括公钥的附加位。在一个实施方案中,公钥或组合公钥(PubKey1/2,PubKey2/2,EK)的附加位可用作无线附件的静态标识符,该静态标识符允许抑制不需要的跟踪通知。在一个实施方案中,组合公钥也可由探测器设备用作加密密钥,以在将观测上传到设备定位器服务器时加密无线信标的观测位置。
在一个实施方案中,无线附件被配置为在附件处于野外模式时以交替的序列广播单独的UT广告包2013和野外模式广告包2012。UT广告包2013可包括RPA1和RPA2值,这些值可用于忽略或抑制通知,直到一天结束或无限期。RPA1和RPA2值基于多样化公钥和IRK值,该多样化公钥每个隐私时间段(例如,每15分钟)滚动一次。在一个实施方案中,IRK_EOD每24小时滚动一次,而IRK_INDEF除非无线附件经历恢复出厂设置否则不滚动。无线附件可以响应于将附件与伴随设备解除配对而恢复出厂设置。
UT广告包2013是可选的。在一个实施方案中,UT广告包2013可被排除并且可通过使用与无线附件相关联的一个或多个静态标识符来执行抑制。静态标识符可被配置为每24小时滚动一次,从而允许每天抑制一次附件的不期望的跟踪通知。例如,在一个实施方案中,在处于野外模式时设备的多样化公钥可继续针对附件在内部滚动,而野外模式广告地址被配置为针对无线附件在例如午夜本地时间滚动。在密钥滚动期间,当前活动的内部公钥可被配置为信标广告的广告地址。为了有助于所有者设备在处于野外模式时重新连接到附件,野外模式广告包2012可以包括提示字段HT,该提示字段包含附件当前使用的公钥的一组位(例如,一组最低有效位)。所有者设备可以使用该信息来生成正确的所有者密钥、所有者令牌和/或连接密钥以将无线附件置于近所有者模式。一旦处于近所有者模式,无线附件就可使用近所有者广告包2011开始广告。
图21示出了启用从近所有者广告模式到野外广告模式的转换的方法2100。方法2100可由如本文所述的任何无线设备、无线附件或无线附件设备执行。在一个实施方案中,在无线设备从与电子设备建立的加密连接断开之后(框2101),无线设备可使用近所有者广告包以近所有者模式发送信标(框2102)。近所有者广告包可以是图20的近所有者模式包2011的变体。无线设备还可基于位置和/或运动状态来配置或更新近所有者超时(框2103)。当无线设备处于家庭位置或感兴趣点或已被指定为安全位置的另一位置或感兴趣点时,近所有者超时可从默认值增大。当无线设备未处于安全位置、处于运动中和/或最近处于运动中时,近所有者超时可从默认值减小。可以在无线设备从与伴随设备的加密连接断开之后配置近所有者超时。还可以在与伴随设备的连接期间基于在连接期间由无线设备确定的上下文信息或基于从伴随设备接收到的状态信息来配置近所有者超时。减少近所有者超时时间段减少了被配置为报告检测到野外模式信标的其他设备检测到潜在丢失的无线设备可能需要的时间量。
在一段时间之后,无线设备可确定是否已达到近所有者超时(框2104)。如果尚未达到近所有者超时(在框2104处为否),则无线设备可能以近所有者模式继续发送信标。如果已达到近所有者超时(在框2104处为是),则无线设备可使用野外模式广告包以野外模式发送信标(框2105)。当处于野外模式时,无线设备广播在无线附件的无线范围内的探测器设备可发现的野外模式广告包。野外模式广告包可以是图20B的野外模式广告包2012的变体。无线设备的信标速率可相对于处于近所有者模式时的信标速率增大。在检测到野外模式广告时,附近的探测器设备可尝试确定或估计无线设备相对于探测器设备的位置,并将所确定或所估计的位置上传到设备位置服务器,其中所确定或所估计的位置由无线设备广播的野外模式地址的散列在设备位置服务器上索引。
当无线设备处于野外模式时,可以在每个隐私时间段内继续执行隐私时间段密钥滚动。隐私时间段密钥滚动导致要用于与无线设备建立连接的加密密钥的改变。在一个实施方案中,与处于近所有者模式时不同,不针对每次密钥滚动更新处于野外模式的设备的广告地址。相反,广告地址可每R次密钥滚动更新一次,从而导致广告地址在例如每24-36小时之间改变。在野外模式下保持相同的广告地址一段时间可有利于在一段时间内抑制或忽略不需要的跟踪警告,而无需加密技术来确定无线设备的多个野外模式地址是否解析为同一设备。
为了与处于近所有者模式的无线设备重新连接,伴随设备可尝试使用无线设备的当前广告地址以及无线设备的当前加密密钥来建立与无线设备的连接。伴随设备可以保持用于在每次密钥滚动期间生成新的密钥的无线设备上的计数器值的估计。伴随设备可使用野外模式广告地址和隐私时间段密钥连接到处于野外模式的无线设备,该隐私时间段密钥可由伴随设备基于计数器估计来生成。在一个实施方案中,密钥块可以由伴随设备在一段时间内(例如,24小时)预先生成,并且可以周期性地生成附加密钥以在该时间段内保持一组密钥。
图22A至图22B示出了根据实施方案的执行实时和推迟密钥匹配以检测已知设备的信标的系统。图22A示出了实时执行密钥匹配以检测已知设备的系统。图22B示出了针对处于近所有者模式的设备实时执行密钥匹配以检测已知设备,并且针对处于野外模式的设备推迟执行密钥匹配以检测已知设备的系统。
如图22A所示,存储信标广告的信标高速缓存1407中的条目可由匹配逻辑部件2202读取。在一个实施方案中,匹配逻辑部件2202被配置为通过执行密钥匹配操作来执行对正在以近所有者模式和野外模式广播的已知设备的信标广告的实时检测。匹配逻辑部件2202可使用由密钥生成逻辑部件2208生成的密钥来检测信标高速缓存1407中由已知设备广播的信标。信标可被分选到已知设备高速缓存2204和未知设备高速缓存2206中。已知设备高速缓存2204可存储针对检测电子设备已知的设备的一组观测。检测电子设备已知的设备包括与检测电子设备加密地相关联的设备,使得检测电子设备是例如检测到的无线设备的所有者设备(例如,伴随设备)或已被授权与检测到的无线设备进行交互的设备。可针对已知设备高速缓存中的信标条目来确定位置,并且这些条目可用于执行这些设备的位置更新。未知设备高速缓存2206中的条目可由滤波器逻辑部件2210处理,以在信标和估计位置被存储到信标有效载荷高速缓存1441之前增强针对那些信标确定的位置估计。
可通过匹配作为无线设备的无线地址广播的一组字节来检测处于近所有者模式的已知设备。例如,处于近所有者模式的无线设备可广播近所有者广告包2011,如图20所示,该近所有者广告包包括用作广告地址的第一公钥部分(PubKey1/2)。第一公钥部分(PubKey1/2)可包括例如用于无线设备的当前公钥的前六个字节,但具体字节数可变化。用于无线设备的当前公钥可每M分钟轮转一次,并且当前公钥可由密钥生成逻辑部件2208实时计算。
也可通过匹配作为无线设备的无线地址广播的一组字节来检测处于野外模式的无线设备。相对于近所有者模式,对于野外模式要匹配的该组字节中的字节数量更大。例如,如图20所示,野外模式广告包2012可以包括第一公钥部分(PubKey1/2)以及第二公钥部分(PubKey2/2)。在无线设备处于野外模式时,用于无线设备的公钥可继续每M分钟轮转一次。然而,在野外模式广告包2012中广告的第一公钥部分(PubKey1/2)和第二公钥部分(PubKey2/2)在每次密钥滚动期间可以不更新。相反,所广告的公钥的一个或多个部分可在预定次数的公钥滚动期间保持静态。因此,可针对处于野外模式的无线设备检查的公钥的数量可大于可针对处于近所有者模式的无线设备检查的密钥的数量。密钥生成逻辑部件2208了解地址更新调度,并且可针对无线设备生成多个潜在公钥,该多个潜在公钥可与信标高速缓存1407中的条目进行比较以确定这些条目中的任一个条目是否与正在以野外模式发送信标的已知设备相关联。
本文所述的一些实施方案可被配置为如图22B所示,其中匹配逻辑部件2202被配置为匹配信标高速缓存1407中的条目以针对正在以近所有者模式发送信标的无线设备执行已知设备检测。针对处于近所有者模式的已知设备检测到的信标可添加为近所有者信标高速缓存2214中的条目。在一个实施方案中,可基于近所有者广告包2011相对于野外模式广告包2012的特定结构来检测近所有者信标。然后,匹配逻辑部件2212可执行密钥匹配操作,以确定检测到的近所有者信标是否由已知设备广播。
实时检测正在以近所有者模式发送信标的无线设备的信标,例如以有利于在这些设备上执行维护操作。维护操作可包括周期性计数器更新操作以防止计数器漂移、调节近所有者模式超时值和/或配置野外模式地址更新时间和更新间隔。针对正在以野外模式发送信标的设备检测到的信标可置于野外模式信标高速缓存2216中,而无需确定处于野外模式的任何检测到的设备是否为已知设备。更大数量的潜在密钥和为了检测处于野外模式设备的已知设备而执行的更复杂的匹配操作使得野外模式匹配与近所有者模式匹配相比处理器工作强度更大。因此,一些实施方案推迟野外模式信标的密钥匹配操作。匹配操作可被推迟直到处理器资源需求低时,使得处理器资源需求低于阈值。在一个实施方案中,可完全绕过野外模式信标的密钥匹配操作,其中使用设备位置查询从云服务器1470检索已知设备的野外模式观测。
如上所述,匹配逻辑部件2212可通过将近所有者信标广告包的地址字段中的特定一组字节与和无线设备相关联的加密密钥(例如,公钥)的相关联字节进行比较来执行检测到的近所有者信标的密钥匹配。在一个实施方案中,不同于如图22A中的使用密钥生成逻辑部件2208的实时密钥生成,可预先生成(例如,经由密钥生成逻辑部件2208)存储在密钥库2218中的密钥块,该密钥块将在预先确定的时间段内针对该组已知设备有效。可周期性地刷新存储在密钥库2218中的密钥块,以确保密钥在预先确定的范围内可用,该预先确定的时间范围可在当前时间之前和之后跨指定时间段延伸。
对于信标高速缓存1407中的每个检测到的信标广告,匹配逻辑部件2212可在信标广告被检测到的时间段内请求针对一组已知设备中的每个设备的适当密钥。如果设备的适当密钥中的位与近所有者信标广告的地址字段(和/或一些实施方案中的另一适当字段)中的位匹配,则信标广告可被确定为近所有者信标并存储在近所有者信标高速缓存2214中。
可将被检测到与近所有者信标不匹配的信标存储在野外模式信标高速缓存2216中。在一个实施方案中,可推迟并响应于处理事件或另一触发事件而执行野外模式信标的已知设备匹配。例如,响应于由活动调度1445调度的处理事件2217,可针对野外模式信标高速缓存2216中的信标执行已知设备确定。处理事件可以是滤波器逻辑部件2210执行针对信标的位置估计、增强针对这些信标确定的位置估计、执行已知设备匹配或在信标和估计位置存储到信标有效载荷高速缓存1441之前执行的其他活动的触发器。可响应于设备定位器服务的设备定位器应用程序的启动和/或设备定位器用户界面204在移动设备102上的呈现来执行已知设备确定。还可在检测到的信标的位置估计过程期间或在信标有效载荷被上传到一组云服务器1470的公布事件期间针对野外模式信标高速缓存2216中的信标执行已知设备确定。在一个实施方案中,可绕过野外模式信标的已知设备匹配,并且可过滤所有野外模式信标而不执行关于野外模式信标是否与已知设备相关联的确定。然后,可通过经由设备定位器用户界面204查询云服务器1470来确定处于野外模式的已知设备的位置数据。
图23示出了根据实施方案的针对近所有者信标广告执行匹配的方法2300。方法2300可在作为无线设备(包括无线信标设备)的伴随设备的电子设备上执行。在一个实施方案中,电子设备可使用电子设备的无线处理器扫描信标广告(框2301)。然后,电子设备可检测具有信标广告包的信标广告(框2302)。然后,电子设备可基于信标广告包的结构来确定信标广告包是否为近所有者广告包(框2303)。如果电子设备确定信标广告包为近所有者包(框2304),则设备可对信标广告包执行密钥匹配操作以确定信标广告是否与已知设备相关联(框2305)。否则,设备可将信标广告和时间戳存储到信标广告数据库以推迟处理(框2306)。在一个实施方案中,如果信标广告与已知设备相关联,则电子设备可确定是否与已知设备建立连接以执行如上所述的周期性维护操作。
针对检测到的信标设备的水平精度调节
如上所述,与位置确定相关联的水平精度可用于细化和过滤针对检测到的无线设备确定的位置估计。在一个实施方案中,可基于探测器设备的位置估计以及探测器设备与检测到的无线设备之间的范围和方向的估计来确定检测到的无线设备的位置估计。根据位置确定技术(例如,卫星定位服务206或使用从无线基站205接收到的RF信号的地面定位系统,如图2所示),无线设备的水平精度或位置不确定性可变化。
参考图14,在一个实施方案中,位置守护进程1401可以向集群位置服务子采集器1405提供水平精度值以及电子设备的位置估计。基于与信号环境提供商1419相关联的设备上分类器,位置守护进程1401可以经由GPS提供商1415或Wi-Fi定位提供商1417请求位置。接收到的位置包括地理坐标(例如,纬度和经度)和表示地理坐标的不确定性的相关联的水平精度估计。探测器设备可使用水平精度来过滤信标观测并细化信标观测的位置估计。信标观测的位置的水平精度也可由一组云服务器1470用于细化、过滤和组合由多个探测器设备针对同一信标标识符报告的信标观测。
在一个实施方案中,探测器设备的位置确定可与信标广告的检测异步执行。除非针对探测器设备确定的最近位置数据在检测到信标广告之前或之后的时间阈值之外,否则将不主动确定探测器设备的位置,其中当探测器设备处于运动中时,时间阈值减小。例如,集群位置服务子采集器1405中的拉锁逻辑部件1409可确定广告是否可带位置标签,该位置由探测器设备基于与信标广告的检测和探测器设备的位置估计的确定相关联的时间戳而确定。
图24示出了对移动探测器设备的水平精度的调节。无线附件201可周期性地广播信标信号301,该信标信号包括设备状态信息和信标标识符(例如,公钥)。探测器设备202可检测信标信号并缓存经由信标信号301接收到的广告包。探测器设备202的位置确定可与信标信号301的检测异步发生。例如,当探测器设备202正在移动时,设备可在第一位置2402A处检测来自无线附件201的信标,并且探测器设备202的位置子系统可确定第二位置2402B处的探测器设备的位置估计。第二位置2402B处的位置确定可具有相关联的水平精度值(例如,X米),该水平精度值允许确定位置估计的不确定性范围2404。然而,在这种情况下,与探测器设备202相关联的不确定性范围2404并不准确地反映无线附件201的信标观测的真实不确定性程度。
在一个实施方案中,可通过基于探测器设备在信标观测时间和位置确定时间之间已行进的距离来调节探测器设备的位置估计的水平精度,从而确定与信标观测相关联的水平精度以达到经调节的水平精度2406。可基于探测器设备202在信标检测与位置确定之间的间隔期间的速度的估计来估计行进距离。可应用各种速度估计技术,如下文相对于图25所述。
经调节的水平精度2406可作为信标位置估计逻辑部件的输入连同在检测到信标信号301时探测器设备202与无线附件201之间的距离和角度的估计一起提供。距离和角度的估计可经由诸如RSSI分析或UWB测距的技术来确定,如本文所述。然后,信标位置估计逻辑部件可估计检测到的信标的位置,该位置可具有相关联的信标不确定性范围2408。
虽然信标信号301被示出为在确定与信标相关联的位置估计之前被检测到,但也可使用在检测到信标信号301之前的阈值时间段内发生的位置确定。在一个实施方案中,如果在检测到信标信号301之前和之后的阈值内确定多个位置,则可使用该多个位置确定来细化无线附件的估计位置。
图25示出了可在探测器设备上使用以对检测到的信标设备执行水平精度调节的系统2500。在一个实施方案中,系统2500包括运动分类器2501、位置子系统2502和水平精度调节子系统2505。水平精度调节子系统2505基于从运动分类器2501接收到的运动活动状态2503和从位置子系统接收到的位置状态2504,可确定要存储在信标有效载荷高速缓存1441中的信标观测2506的经调节的水平精度。系统的部件以及由这些部件执行的技术和过程将在探测器设备的上下文中进行描述,该探测器设备是被配置为检测由本文所述的无线设备、无线附件和/或无线附件设备广播的信标信号(例如,野外模式信标),并且将检测到的设备的估计位置上传到与众包设备定位系统相关联的服务器(例如,云服务器1470、设备定位器服务器203)的任何电子设备。
运动活动状态2503可与图14的运动活动状态1421相同或类似,并且提供关于探测器设备是静止的还是处于运动中的信息。运动分类器2501可基于由运动传感器(例如,如图12所示的运动传感器1210)提供的测量结果而确定的运动上下文来确定运动活动状态。运动传感器可包括诸如加速度计或陀螺仪的多个传感器。来自其他传感器(例如,磁力计、重力传感器等)的数据也可用于定义设备的运动上下文。运动分类器2501可确定探测器设备正在执行的运动类型的估计。运动类型可以是携带设备的用户正在执行的运动活动。例如,运动分类器2501可分析传感器数据以基于运动上下文数据来确定携带或穿戴探测器设备的用户是否正在步行、跑步、骑自行车、滑雪、游泳或经由另一种方式移动。运动分类器2501还可以确定探测器设备202是否处于移动车辆中。此类确定可被包括在运动活动状态2503中。运动活动状态2503还可包括速度,该速度可以是在设备处于运动状态时针对探测器设备确定的平均速度,或者可以是在不能确定设备的速度时与确定运动状态相关联的默认速度。
位置子系统2502包括可使用位置确定系统来确定电子设备的位置估计的硬件部件和软件部件。在一个实施方案中,位置子系统2502包括基于卫星定位服务206或使用从无线基站205接收到的RF信号的地面定位系统来确定或估计设备位置的逻辑部件,如图2所示,例如,图14所示的位置确定部件。位置子系统2502可保持位置状态2504,该位置状态包括探测器设备的最近确定的位置,以及与该确定位置相关联的水平精度。在一些实施方案中,位置状态2504还包括瞬时速度或速度度量。例如,如果基于来自卫星定位服务的数据来确定位置状态,则经由卫星定位数据确定的速度可被包括在位置状态2504中。
在一个实施方案中,水平精度调节子系统2505包括硬件和软件逻辑部件,该硬件和软件逻辑部件调节信标观测2506的初始水平精度以考虑信标观测与位置确定之间的间隔。在一个实施方案中,信标观测2506的水平精度可连同位置确定间隔一起输入到水平精度调节子系统2505,该位置确定间隔指定与信标观测相关联的信标广告的检测和用于给信标观测加标签的位置估计之间的时间量。可以协同地分析与间隔期间的运动活动状态2503的一个或多个实例相关联的一个或多个速度以及来自位置状态2504的速度数据,以估计探测器设备在位置确定间隔期间的平均速度。然后,可将平均速度乘以位置确定间隔的持续时间,以确定用于调节位置确定的水平精度的调节量以生成经调节的水平精度。可将经调节的水平精度存储到信标观测2506,然后可将该信标观测存储到信标有效载荷高速缓存1441。在一个实施方案中,可在信标观测存储在信标有效载荷高速缓存1441中之前执行水平精度调节。在一个实施方案中,可将信标观测存储到信标有效载荷高速缓存,并且水平精度调节可异步执行。
图26示出了用于检测到的信标设备的水平精度调节的方法2600。方法2600可由电子设备(例如,探测器设备)执行,以调节在探测器设备处于运动中时检测到的信标观测的水平精度度量。
探测器设备可检测来自信标无线设备的信标广告(框2601)。然后,探测器设备可将信标广告与由电子设备确定的位置估计关联(框2602)。然后,探测器设备可对电子设备在位置确定间隔内的运动状态数据进行采样,该位置确定间隔是信标广告的检测与关联位置估计的确定之间的间隔(框2603)。如果探测器设备在位置确定间隔期间的位置状态信息包括速度数据(在框2604处为是),则探测器设备可基于该速度数据与经由运动状态确定的速度的比较来调节位置估计的水平精度(框2605)。在一个实施方案中,速度数据包括经由基于卫星的定位和导航系统(例如,GPS)确定的速度和方向数据。
在一个实施方案中,调节基于由速度数据指示的速度的量值和针对运动状态指示的速度中的较大者。针对运动状态指示的速度可以是基于传感器的速度计算结果,或者可以是与每个运动状态相关联的默认速度。在一个实施方案中,调节可基于其他计算结果,诸如经由速度数据确定的瞬时速度和与运动状态相关联的速度的加权平均值。如果没有速度数据可用(在框2604处为否),则探测器设备可完全基于经由运动状态数据确定的速度来调节位置估计的水平精度(框2606)。水平精度的调节提高了探测器设备上以及在信标观测上传到设备定位器服务的服务器之后的下游位置过滤和处理的精度。
在本文中对“一个实施方案”或“实施方案”的引用是指结合该实施方案描述的特定特征、结构或特性可以被包括在本发明的至少一个实施方案中。在本说明书中的各个位置出现短语“在一个实施方案中”不一定都是指同一个实施方案。随后的附图中描绘的过程可由处理逻辑执行,该处理逻辑包括硬件(例如,电路、专用逻辑)、软件(作为非暂态机器可读存储介质上的指令)或硬件和软件的组合。现在将详细地参考各种实施方案,这些实施方案的示例在附图中示出。在下面的详细描述中给出了许多具体细节,以便提供对本发明的彻底理解。但是,对本领域技术人员将显而易见的是,本发明可在没有这些具体细节的情况下被实施。在其他情况下,没有详细地描述众所周知的方法、过程、部件、电路和网络,从而不会不必要地使实施方案的各个方面晦涩难懂。
还将理解的是,虽然术语“第一”、“第二”等可能在本文中用于描述各种元素,但是这些元素不应当被这些术语限定。这些术语只是用于将一个元件与另一元件区分开。例如,第一接触可被命名为第二接触,并且类似地,第二接触可被命名为第一接触,而不脱离本发明的范围。第一接触和第二接触两者都是接触,但是它们不是同一接触。
本文中所使用的术语仅仅是为了描述特定实施方案并非旨在对所有实施方案进行限制。如本发明说明书和所附权利要求中所使用的那样,单数形式的“一个”(“a”、“an”)和“该”旨在也涵盖复数形式,除非上下文清楚地另有指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联地列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”(“comprises”和/或“comprising”)在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件,和/或其分组。
如本文中所用,根据上下文,术语“如果”可以被解释为意思是“当...时”或“在...时”或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可被解释为是指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
描述了计算设备、用于此类设备的用户界面、和用于使用此类设备的相关联的过程。在一些实施方案中,计算设备是还包含其他功能(诸如PDA和/或音乐播放器功能)的便携式通信设备,诸如移动电话。在本申请的描述和附图中,其中描述或示出了无线设备、无线附件或无线附件设备,除非另行指出,否则所描述或示出的属性通常可应用于能够广播无线信标的任何类型的无线设备、无线附件或无线附件设备。
在前面的说明中,已经描述了本公开的示例性实施方案。显而易见的是,在不脱离本公开的更广泛的实质和范围的情况下,可对其进行各种修改。相应地,说明书和附图被视为是例示性意义而不是限定性意义。所提供的描述和示例中的具体细节可用于一个或多个实施方案中的任何地方。不同实施方案或示例的各种特征可与所包括的一些特征和排除的其他特征不同地组合,以适应多种不同的应用。示例可包括主题,诸如方法,用于执行该方法的行为的装置,包括指令的至少一种机器可读介质,所述指令在由机器执行时使得机器执行该方法的行为,或者根据本文所述的实施方案和示例执行装置或系统的动作。另外,本文描述的各种部件可以是用于执行本文描述的操作或功能的装置。
本文所述的实施方案提供了一种电子设备,该电子设备包括与无线电设备耦接的无线处理器、用于存储指令的存储器和用于执行这些指令的一个或多个处理器。在由该一个或多个处理器执行时,这些指令使得该一个或多个处理器:使用该无线处理器扫描信标广告;响应于经由该无线处理器检测到该信标,将该信标和时间戳存储在信标广告缓冲器中;将信标广告与存储位置数据关联以确定与该信标广告相关联的设备的位置估计;使用与该信标标识符一起广播的信标标识符来加密该信标广告的该位置估计;以及将该信标标识符的散列和该信标广告的加密位置估计传输到设备定位器服务器。在一个实施方案中,在该一个或多个处理器的应用处理器处于低功率状态时,该一个或多个处理器可使用该无线处理器扫描信标广告。
一个实施方案提供了一种存储指令的非暂态机器可读介质,这些指令使得电子设备的一个或多个处理器执行操作,包括:在该电子设备的应用处理器处于低功率状态时,使用该电子设备的无线处理器扫描信标广告;响应于经由该无线处理器检测到该信标广告,将该信标广告和时间戳存储为信标广告缓冲器中的条目;在该应用处理器从该低功率状态唤醒时,将缓冲器条目传输到该应用处理器;以及将信标广告与存储位置数据关联以确定与该信标广告相关联的设备的位置估计。
一个实施方案提供了一种方法,该方法包括:在具有与无线电设备耦接的无线处理器的电子设备上,在该电子设备的应用处理器处于低功率状态时,使用该电子设备的无线处理器扫描信标广告;响应于经由该无线处理器检测到该信标广告,将该信标广告和时间戳存储为信标广告缓冲器中的条目;处理该信标广告缓冲器以移除重复条目;在该应用处理器从该低功率状态唤醒时,将缓冲器条目传输到该应用处理器;以及将信标广告与存储位置数据关联以确定与该信标广告相关联的设备的位置估计。
本文所述的实施方案还提供了用于在无线附件设备的位置数据采集期间进行已知设备匹配和水平精度调节的技术。一个实施方案提供了一种方法,该方法包括在具有与无线电设备耦接的无线处理器的电子设备上,使用该电子设备的无线处理器扫描信标广告,以及检测信标广告并具有信标广告包。该信标广告包可为第一类型的广告包或第二类型的广告包。该第一类型的该广告包由在阈值时间段内已与伴随设备连接的设备广播,并且该第二类型的该广告包由在阈值时间段内未与伴随设备连接的设备广播。该方法还包括基于该信标广告包的结构来确定该信标广告包是否为该第一类型的广告包,以及响应于确定该信标广告包为该第一类型的广告包,对该信标广告包执行第一密钥匹配操作以确定该信标广告是否与已知设备相关联。该第一密钥匹配操作可包括将一组密钥中的密钥与该信标广告包中的广告地址进行比较;以及当这些广告地址中的一组位与该组密钥中的密钥中的对应一组位匹配时,确定该信标广告与已知设备相关联。该方法还包括,响应于确定该信标广告包为该第二类型的广告包,将该信标广告和观测时间戳存储到信标广告数据库以推迟处理。
一个实施方案提供了一种方法,该方法包括:在具有与无线电设备耦接的无线处理器的电子设备上:检测来自信标无线设备的信标广告;将该信标广告与由该电子设备确定的位置估计关联;对该电子设备在检测到该信标广告和确定与该信标广告关联的该位置估计之间的间隔内的运动状态数据进行采样;以及基于经由该运动状态数据确定的速度来调节该位置估计的水平精度。经由该运动状态数据确定的该速度可以是确定运动状态的默认速度。该方法还可包括:确定该电子设备在检测到该信标广告和确定与该信标广告关联的该位置估计之间的该间隔内的速度数据是否可用;以及响应于确定该速度数据可用,确定该电子设备在检测到该信标广告和确定与该信标广告关联的该位置估计之间的该间隔期间的该速度的量值。在一个实施方案中,基于经由该运动状态数据确定的速度来调节该位置估计的该水平精度另外包括基于经由该运动状态数据确定的该速度和经由该速度数据确定的该速度的该量值的比较来调节该水平精度。该比较可以是确定该速度的该量值和经由该运动状态确定的该速度中的较大值,并且基于该较大值来调节该水平精度。
该速度数据可基于卫星定位数据来确定。一个实施方案提供了一种数据处理系统,该数据处理系统包括用于执行如本文所述的方法的装置。
通过前述描述,本领域的技术人员将会知道,这些实施方案的广泛技术可以多种形式来实现。因此,虽然已经结合实施方案的特定示例描述了实施方案,但是实施方案的真实范围不应被如此限制,因为在研究附图、说明书和以下权利要求书之后,其他修改对于技术人员而言将变得显而易见。