对等设备运动通信转让专利

申请号 : CN201480015998.0

文献号 : CN105247818B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : P.J.德尔克斯D.J.迪什诺

申请人 : 微软技术许可有限责任公司

摘要 :

本公开的实施例提供设备运动的对等传送。第一计算设备经由对等连接接收来自第二计算设备的消息。如果该消息不包括运动信息,则第一计算设备向第二计算设备请求描述第二设备的行进的运动信息。在通过对等连接接收到运动信息时,第一计算设备将所接收到的消息以及所接收到的运动信息呈现给第一计算设备的用户。运动信息可以包括路线、速度、朝向以及所估计的到达时间,并且可以经由被发送到第一计算设备的附加消息而被周期性地更新。在某些实施例中,第一计算设备以及第二计算设备被配置来在没有用户输入的情况下,自动地发送和接收运动信息。

权利要求 :

1.一种用于运动信息的对等传送的系统,所述系统包括:

提供描述第一计算设备的行进的运动信息的一个或多个传感器;以及

处理器,其被编程为:

从所述第一计算设备的第一用户接收消息,所述消息打算给在第二计算设备处的第二用户;

响应于对所述消息的接收,从所述一个或多个传感器导出所述运动信息;

基于所述第二计算设备的位置、允许共享的运动信息的类型以及所述运动信息从中导出的上下文,过滤所述导出的运动信息;

过滤后的所述导出的运动信息包括所述导出的运动信息的一部分,其中所述部分的确定是基于许可,所述许可是基于对所述接收到的消息的评估而动态定义的;

经由对等连接将所述接收到的消息和过滤后的所述导出的运动信息发送到所述第二计算设备;

随后从所述一个或多个传感器导出所述第一计算设备的更新的运动信息;

将所述导出的、更新的运动信息与所述被发送的运动信息进行比较;以及根据所述比较,将所述导出的、更新的运动信息发送到所述第二计算设备。

2.根据权利要求1所述的系统,其中所述运动信息包括路线或者速度中的至少一个,以及所述处理器被编程为在确定所述导出的、更新的运动信息指示不同于由所述被发送的运动信息所指示的行进的行进时,将所述导出的、更新的运动信息发送到所述第二计算设备。

3.根据权利要求1所述的系统,其中所述运动信息包括第一估计的到达时间,其中所述更新的运动信息包括第二估计的到达时间,以及其中所述处理器被编程为在确定所述第二估计的到达时间与所述第一估计的到达时间相差预定义的门限量时,将所述导出的、更新的运动信息发送到所述第二计算设备。

4.根据权利要求1所述的系统,进一步包括存储一组用户标识符以及与其相关联的许可的存储器区域,其中所述处理器被编程为导出所述运动信息以及基于对应于所述第二用户的所述许可将所述接收到的消息和所述导出的运动信息发送到所述第二计算设备。

5.一种对等传送方法,其包括:

由第一计算设备经由对等连接来接收来自第二计算设备的消息;

响应于对该消息的接收,请求来自所述第二计算设备的运动信息,所述运动信息描述了所述第二计算设备的行进;

由所述第一计算设备来接收来自所述第二计算设备的过滤后的导出的运动信息,其中,所述过滤后的导出的运动信息通过如下步骤产生:从与所述第二计算设备相关联的一个或多个传感器中导出运动信息,并且基于所述第一计算设备的位置、允许共享的运动信息的类型以及所述运动信息从中导出的上下文,过滤所述导出的运动信息,过滤后的所述导出的运动信息包括所述导出的运动信息的一部分,其中确定所述导出的运动信息的所述部分是基于许可,所述许可是基于对所述请求的评估而动态定义的;以及将所述接收到的消息以及所述接收到的过滤后的导出的运动信息呈现给所述第一计算设备的第一用户。

6.根据权利要求5所述的方法,其中将所述接收到的消息以及所述接收到的过滤后的导出的运动信息呈现给所述第一用户包括在所述第一计算设备上执行单个应用的同时,将所述接收的消息以及所述接收到的过滤后的导出的运动信息显示在被显示在所述第一计算设备上的单个用户接口元素上。

7.根据权利要求5所述的方法,其中请求来自所述第二计算设备的运动信息在没有来自所述第一用户的输入的情况下发生。

8.根据权利要求5所述的方法,其中所述接收到的消息是来自发起用户,进一步包括将所述发起用户与关联于所述第一用户的一组用户进行比较,以及其中对所述运动信息的请求基于所述比较而发生。

9.根据权利要求8所述的方法,其中在基于所述比较确定所述发起用户是被阻塞用户时,将对所述运动信息的请求阻塞,以及其中在基于所述比较确定所述发起用户是所允许的用户时,对所述运动信息的请求被允许。

10.根据权利要求8所述的方法,其中基于与所述第一用户相关联的联系人、日历条目或者之前的消息中的至少一个,来自动地填充所述一组用户。

11.一种计算机可读存储介质,其上存储了计算机可读指令,所述指令在被计算机执行时导致计算机执行如权利要求5-10中任何一项所述的方法。

说明书 :

对等设备运动通信

背景技术

[0001] 用户常常希望知晓其朋友和/或家庭成员的当前位置。使用现有的移动电话系统,用户手动地例如以文本消息的形式发起位置请求。例如,用户可以向朋友发送一个文本消息来询问“你在哪里?”,并且朋友可以以另一个文本消息来进行响应,回答“在杂货店”。
[0002] 此外,许多现有的移动电话装备有全球定位系统(GPS)来使得能够识别当前设备位置。这些现有移动电话中的某些也使得用户能够将示出当前设备位置的地图附加在文本消息中。但是,这样的现有移动电话要求用户和接收方的手动参与,并且当前设备位置是静态信息。也就是说,这样的现有移动电话缺乏用于在当前设备位置改变时更新当前设备位置的机制。

发明内容

[0003] 在某些实施例中,第一计算设备从第一用户接收打算给在第二计算设备的第二用户的消息。响应于接收消息,第一计算设备导出运动信息(例如,从第一计算设备的传感器上)。第一计算设备经由对等连接将所接收到的消息以及所导出的运动信息发送到第二计算设备。随后,第一计算设备从传感器导出用于第一计算设备的更新的运动信息,并且将所导出的、更新的运动信息与所发送的运动信息进行比较。基于该比较,更新的运动信息被发送到第二计算设备。
[0004] 在其他实施例中,第一计算设备经由对等连接从第二计算设备接收消息。响应于接收消息,第一计算设备向第二计算设备请求关于第二计算设备的描述第二计算设备的行进的运动信息。在第一计算设备已经接收到来自第二计算设备的所请求的运动信息之后,第一计算设备将所接收到的消息以及所接收到的运动信息呈现给第一计算设备的用户。
[0005] 本发明内容被提供来以简化的形式介绍在下文具体实施方式中进一步被描述的概念的选择。本发明内容不是旨在识别所要求保护的主题的关键特征或必要特征,也不是旨在被用来帮助确定要求保护的主题的范围。

附图说明

[0006] 图1是图示了经由网络与关联于第二用户的第二计算设备进行通信的关联于第一用户的第一计算设备的示例性框图。
[0007] 图2是图示了将消息以及运动信息发送给第二计算设备的第一计算设备的操作的示例性流程图。
[0008] 图3是图示了将运动信息发送到第二移动电话的第一移动电话的示例性框图。
[0009] 图4是图示了检测其运动并且将运动信息发送到第二移动电话的第一移动电话的示例性框图。
[0010] 图5是图示了接收和呈现来自第二计算设备的运动信息的第一计算设备的操作的示例性流程图。
[0011] 图6是图示了请求和接收来自第二移动电话的运动信息的第一移动电话的示例性框图。

具体实施方式

[0012] 参考附图,本公开的实施例使得能够经由对等连接在设备之间发送和/或接收运动信息。例如,第一计算设备102的第一用户104向第二计算设备124的第二用户122推送或者以其他方式提供描述第一计算设备102的行进的运动信息。作为另一个示例,第一计算设备102拉取或者以其他方式请求来自第二计算设备124的运动信息,例如在由第一计算设备102接收到来自第二计算设备124的消息(例如,文本消息)时。示例性的运动信息包括,但不限于,当前的路线、速度、运动的方向、当前估计的到达时间和/或描述设备行进(例如,预期的和/或期望的)的其他数据。
[0013] 本公开的多个方面使得诸如家庭成员、亲密朋友以及商务伙伴之类的两个或多个用户能够交换运动信息。如在本文中进一步所描述的,运动信息可以手动地和/或自动地(例如,没有来自一个或者两个用户的明确动作)被交换。附加地,可以基于事件、基于准则、规则等等来有规律地、周期性地、间歇性地更新该运动信息。
[0014] 通过使用对等连接而不是集中式服务,某些实施例为用户提供对于在设备之间正在被共享的数据的增加的保密性(privacy)、安全性以及控制。例如,利用对等连接,共享的数据没有被存储在其中数据可以由其他各方来挖掘(mine)和访问的中央服务器上。对于敏感的共享数据(例如,运动信息),用户通过对等连接将这样的数据进行共享可以感觉更为安全。
[0015] 附加地,相比使用中央服务来共享运动信息,使用对等连接来共享该运动信息的成本可以更低。实际上,在某些地理区域,用于通过对等连接共享运动信息的成本可以被涵盖在现有的文本消息传送规划内。
[0016] 参考图1,示例性的框图图示了经由网络128与关联于第二用户122的第二计算设备124进行通信的关联于第一用户104的第一计算设备102。计算设备102和124可以使用各种各样的协议和传输来执行通信,例如以便支持话音通信、文本消息传送(例如,短消息传送服务、多媒体消息传送服务)、即时消息传送、经由社交网络服务的通信、电子邮件等等。因此,计算设备102和124可以利用各种各样的不同技术来与彼此进行通信。
[0017] 计算设备102和124经由网络128的一个或多个来通信,其中所述网络可以被实现为包括有线和/或无线网络。网络也可以使用任何类型的网络拓扑和/或通信协议而被实现,并且可以被表示或者以其他方式被实现为两个或者多个网络的组合以便包括因特网协议(IP)网络和/或因特网。网络128也可以包括由移动网络运营商和/或诸如通信服务提供商、移动电话提供商和/或因特网服务提供商之类的其他网络运营商所管理的移动运营商网络。
[0018] 图1的示例图示了用于传送运动信息的系统。尽管参考经由对等连接在计算设备102和124之间进行的通信来描述本公开的多个方面,但是非对等连接也是在本公开的范围之内。
[0019] 计算设备102和124中的每一个都表示执行指令(例如,作为应用程序、操作系统功能或者两者)以实现在本文所描述和图示的操作和功能的任何设备。计算设备102和124可以包括移动计算设备或者任何其他便携式设备。在某些实施例中,移动计算设备包括移动电话、膝上型设备、平板设备、计算板、上网本、游戏设备和/或便携式媒体播放器。计算设备102和124也可以包括不太便携的设备,诸如台式个人计算机、公共电话亭、桌面设备、工业控制设备、无线充电站以及至少用于接收消息和运动信息目的的电动汽车充电站。附加地,计算设备102和124可以表示一组处理单元或者其他计算设备。计算设备102和124中的一个可以表示一种形式或者类型的设备,而计算设备102和124中的另一个可以表示另一种形式或者类型的设备。
[0020] 在某些实施例中,计算设备102和124中的每一个包括在图1中所图示的元件。出于简明起见,参考关联于第一计算设备102来图示元件并且接下来描述元件。
[0021] 如图1所示,第一计算设备102具有一个或多个传感器112,、至少一个处理器106、存储器区域108、以及至少一个用户接口。传感器112包括一个或多个加速计、一个或多个陀螺仪、全球定位系统(GPS)收发信机、无线保真(Wi-Fi)或者其他无线收发信机、感光的光传感器以及提供描述第一计算设备102的数据的其他传感器。
[0022] 处理器106包括任何数量的处理单元,并且其被编程来执行计算机可执行指令(例如,被存储在存储器区域108)以用于实现本公开的多个方面。指令可以由处理器106来执行或者由在第一计算设备102内执行的多个处理器来执行,或者可以由在第一计算设备102外部的处理器来执行。在某些实施例中,处理器106被编程来执行诸如在流程图中所图示的那些指令之类的指令以便实现本文中所描述的功能。
[0023] 在某些实施例中,处理器106表示要执行本文所描述的操作的模拟(analog)技术的实现方式。例如,该操作可以由模拟计算设备和/或数字计算设备来执行。
[0024] 第一计算设备102还具有诸如存储器区域108之类的一个或多个计算机存储媒体。该存储器区域108包括任何数量的与第一计算设备102相关联或者可以由第一计算设备102来访问的媒体。存储器区域108可以在第一计算设备102的内部,可以在第一计算设备102的外部,或者以上两者。在某些实施例中,存储器区域108包括只读存储器和/或线接在模拟计算设备中的存储器。此外,存储器区域108可以是硬件存储器的一部分,其中所述硬件存储器可以包括易失性和/或非易失性存储器,但不包括信号。
[0025] 除了其他数据之外,计算设备102将应用110、用户标识符118以及许可120存储在存储器区域108中。当应用110被处理器106执行时,其操作来执行在第一计算设备102上的功能。示例性的应用110包括邮件应用程序、web浏览器、日历应用程序、地址本应用程序、消息传送程序、媒体应用、游戏应用、地图应用、基于位置的服务、搜索程序等等。应用110可以与诸如经由网络可访问的web服务之类的对应的应用或者服务来进行通信。例如,应用可以表示对应于在云中执行的服务器一侧服务的所下载的客户端一侧应用。
[0026] 用户标识符118存储诸如与第一用户104相关联或者为第一用户104所知晓的第二用户122之类的其他用户的标识。例如,用户标识符118存储基于联系人列表、地址本、日历条目和/或由第一用户104发送的之前的消息的接收方而与第一用户104相关联的其他用户的标识。此外,用户标识符118可以包含标识、联系人细节、以及与诸如朋友、亲属和同事之类的各种不同的联系人群组进行通信的偏好的方式。
[0027] 用户标识符118具有与其相关联的许可120。许可120可以从一个联系人群组到另一个群组变化,可以在每个联系人群组内变化,和/或可以针对与第一用户104相关联的用户而单独设置。例如,一组许可可以与用户的配偶相关联以便第一用户104的运动信息与该配偶共享,而不论一周中的哪一天和一天中的什么时间,而第一用户104的运动信息可以仅在特定天和时间(例如,在工作时间内)与同事进行共享。
[0028] 在某些实施例中,许可120可以是基于地理围栏(geofencing)(例如,许可可以取决于第一用户的位置)。例如,针对与第一用户104相关联的某些特定用户的运动信息可以仅在第一用户104处在距离工作位置(例如,办公室)预定义的距离时或者仅在第一用户104超过预定义距离时而被提供。在某些实施例中,地理围栏的预定义距离或者周界可以由第一用户104动态定义,而在其他实施例中,预定义的距离或者周界可以基于第一用户104的当前位置而被自动地定义。
[0029] 用户标识符118可以被第一用户104所填充,所述第一用户可以改变与用户标识符118相关联的许可120(例如,随着时间的推移)。在其他实施例中,用于用户标识符118的条目可以基于联系人列表、地址本、日历条目和/或之前消息的接收方而被自动地填充。此外,许可120可以被自动设置(例如,基于用于获取或共享运动信息的第一用户104的默认数值或者偏好)。在其他实施例中,尽管用于用户标识符118的条目被自动填充,但是与用户标识符118(或者用户标识符118的群组)中的每一个相关联的许可120可以由第一用户104特定地设置。
[0030] 在操作中,许可120使得能够共享运动信息或者禁止共享运动信息。例如,相应于接收来自第二计算设备124的消息,第一计算设备102上的许可120操作来或者阻塞第一计算设备102请求来自第二计算设备124的运动信息,或者允许第一计算设备102请求来自第二计算设备124的运动信息。类似地,在第二计算设备124接收到来自第一计算设备102的对于运动信息的请求时,第二计算设备124上的许可120操作来或者阻塞或者允许第一计算设备102接收来自第二计算设备124的运动信息。
[0031] 许可120也可以允许或者阻止对运动信息的特定部分的共享。例如,运动信息可以基于如许可120所定义的被允许共享的信息的类型而被过滤。此外,要与特定用户进行共享的运动信息的粒度水平可以经由许可120而被设置。
[0032] 许可120可以基于对所接收的消息的评估而被动态地定义。例如,所接收的消息被评估以便对消息进行分类或者归类,并且许可120是基于该分类或类别而被定义或者确定。诸如在消息的头信息(header)中的元数据可以被评估以便识别消息的发送方。例如,如果消息是由网络128的服务提供商所发送的,则不能请求或者提供任何运动信息。可替换地或者附加地,诸如发送设备和/或接收设备的位置、发送设备和/或接收设备的剩余电池寿命和/或一天中的时间之类的上下文信息被确定和评估以便动态地定义许可120的一个或多个。
[0033] 在某些实施例中,许可120可以被封装在与可以仅仅由作为管理员登录的用户来设置的第一计算设备102相关联的安全性策略中。在某些实施例中,用户标识符118和/或许可120可以由作为管理员而登录的用户来设置,并且不能服从第一计算设备102的其他用户的修改。作为示例,当在被存储于第一计算设备102的用户标识符118中所标识的第二用户122请求时,第一计算设备102的位置可以被自动发送到第二计算设备124,而不会提示第一用户104。例如,父母可能设置孩子的移动电话的用户标识符118和/或许可120,并且可以远程地查询孩子的移动电话以便获取孩子的移动电话的当前位置,而孩子不会知晓该查询。
[0034] 第一计算设备102进一步具有至少一个将运动信息和消息呈现给第一用户104的用户接口。在某些实施例中,用户接口可以包括用于将数据显示给第一用户104以及接收来自第一用户104的数据的图形卡。用户接口也可以包括用于操作图形卡的计算机可执行指令(例如,驱动器)。此外,用户接口可以包括显示器(例如,触摸屏显示器或者自然用户接口)和/或用于操作显示器的计算机可执行指令(例如,驱动器)。用户接口也可以包括将数据提供给第一用户104或者从第一用户104接收数据的下述装置中的一个或多个:扬声器、声卡、摄像机、麦克风、振动马达、一个或多个加速计、蓝牙牌通信模块、全球定位系统(GPS)硬件和感光的光传感器。例如,第一用户104可以通过将第一计算设备102以特定的方式移动来输入命令或者操纵数据。
[0035] 接下来参考图2,示例性流程图图示了将消息和运动信息发送到第二计算设备124的第一计算设备102的操作。在202处,第一计算设备102检查打算给第二计算设备124的消息是否已经从第一用户104接收。例如,第一用户104可以将该消息键入到第一计算设备102。当该消息被接收到时,第一计算设备102在204处从传感器112和/或其他方式(诸如,使用蜂窝电话网络、基于Wi-Fi的系统或者地图应用)导出描述第一计算设备102的行进的运动信息。该运动信息包括例如行进信息,诸如正在由第一计算设备102的第一用户104所使用的路线以及所估计的到达时间(ETA)。运动信息可以进一步包括朝向、速度信息和/或第一计算设备102沿着路线的所投射的轨迹以及第一计算设备102的当前位置。当前位置可以以纬度、精度、海拔、上升速度和/或下降来表示。
[0036] 在某些实施例中,运动信息根据从传感器112所获取的数据(例如,位置数据)、地图信息、交通信息等等来导出。例如,地图应用可以结合地图信息和/或交通信息来后处理来自传感器112的位置数据以便产生运动信息。
[0037] 在206处,所接收的消息和所导出的运动信息由第一计算设备102发送到第二计算设备124。基于用于第二用户122的用户标识符118以及许可120,第一计算设备102可以自动地或者以其他方式在没有来自第一用户104的明确的或者同时发生的输入的情况下,将消息和运动信息发送到第二计算设备124。在其他实施例中,第一用户104被提示来授权与消息一起发送该运动信息。
[0038] 在某些实施例中,该消息和运动信息以相同的消息被发送到第二计算设备124和/或在第二计算设备124处由相同的应用显示。在其他实施例中,消息和运动信息以不同的消息被发送到第二计算设备124。第二计算设备124将消息和运动信息显示给第二用户122。
[0039] 随后,或者以其他方式在将消息和运动信息发送到第二计算设备124之后的某个时间点上,在208处第一计算设备102从传感器112导出更新的运动信息。在某些实施例中,第一计算设备102响应于经过的时间、触发器、事件、准则、规则和/或其他因素来导出更新的运动信息。例如,第一计算设备102可以在预定义的时间段已经经过之后,在检测到交通情况的改变(例如,拥塞)时,在检测到第一计算设备102的行进(例如,路线)的改变时,和/或其他因素时,导出更新的运动信息。
[0040] 在210处,第一计算设备102将更新的运动信息与之前发送的运动信息进行比较。基于该比较,在214处,第一计算设备102将更新的运动信息发送到第二计算设备124。例如,在212处第一计算设备102可以检查更新的运动信息是否指示与由之前所发送的运动信息所指示的行进所不同的行进。如果更新的运动信息指示与由之前所发送的信息指示的行进所不同的行进,则更新的运动信息在216处被发送到第二计算设备124。例如,更新的运动信息可以指示第一计算设备102现在处于不同于更早路线的路线上。作为另一个示例,在当前ETA不同于更早(例如,早一个预定义的持续时间或者时间量的门限)的ETA时,可以发送更新的运动信息。
[0041] 如果更新的运动信息并非显著地(例如,以预定义的门限)不同于之前所发送的运动信息,则第一计算设备102在218处不会将更新的运动信息发送到第二计算设备124。例如,如果更新的运动信息大约或者基本上与之前所发送的运动信息相同,则该更新的运动信息不会被发送到第二计算设备124。
[0042] 可替换地或者附加地,更新的运动信息根据存储在存储器区域108中的更新频率而被导出和发送。更新频率可以由第一用户104、由第一计算设备102的操作系统和/或其他实体来定义。
[0043] 接下来参考图3,示例性的框图图示了其中第一移动电话306将运动信息发送到第二移动电话302的实施例。第一计算设备102(例如,第一移动电话306)经由网络(例如,网络128)与第二计算设备124(例如,第二移动电话302)进行通信。在这个示例中,第一移动电话
306的用户已经给出与第二移动电话302共享运动信息的许可。例如,许可120已经被定义为允许这样的共享。
[0044] 第一移动电话306可以被配置来间歇性地、在预定的时间和/或在另一个预定义的时间发生时,将其运动信息发送到第二移动电话302,而不需要第一移动电话306的用户的任何动作。运动信息以加密的形式304被发送,所述加密形式包括设备标识、当前维度、经度、方向、速度、路线、估计到达目的地的时间等。
[0045] 第二移动电话302可以被配置来接收第一移动电话306的运动信息,而无需提示第二移动电话302的用户来接受或者拒绝该运动信息。相反,在某些实施例中,第二移动电话302接收运动信息并且连同相关联的消息一起显示运动信息。例如,位置可以被显示为文本,被显示在由第二移动电话302执行的地图应用中,和/或被显示在第二移动电话302的主屏幕上的拼接块或者其他用户接口元素中。
[0046] 接下来参考图4,示例性的框图图示了检测其运动并将更新的运动信息发送到第二移动电话302的第一移动电话306。第一移动电话306使用诸如传感器112之类的传感器或者通过其他方式基于触发器、事件、准则等(诸如参考图2所描述的)来检测其运动。无需来自第二移动电话302的请求,第一移动电话306导出更新的运动信息并且以加密的形式404将其发送到第二移动电话302。更新的运动信息例如包括设备标识、当前维度、经度、方向、速度等。第二移动电话302接收更新的运动信息并且将更新的运动信息(例如,作为文本,在地图应用中等)通知给第二移动电话302的用户。
[0047] 接下来参考图5,示例性流程图图示了从第二计算设备124接收和呈现运动信息的第一计算设备102的操作。在图5的示例中,第二计算设备124可以被配置来仅仅在请求时发送运动信息。例如,第二用户122可以尝试减少在第二计算设备124上的功率消耗,或者减少所发送的消息的数量或者大小以便保持在针对消息的数据规划限度以内。
[0048] 在502处,第一计算设备102检查消息是否已经从第二计算设备124接收。当消息从第二计算设备124接收时,第一计算设备102确定运动信息是否已经被包括在该消息中。如果运动信息是不可用的,并且如果该用户标识符118以及许可120指示运动信息被授权来接收,则第一计算设备102在504处将对于与第二计算设备124相关联的运动信息的请求发送到第二计算设备124。
[0049] 例如,发送消息的用户的标识与接收该消息的用户所存储的用户标识符118进行比较。对于运动信息的请求基于该比较被发送到第二计算设备124。例如,如果该比较揭示发送该消息的用户是在亲密的亲属或者朋友的群组之内(例如,所允许的用户),则第一计算设备102发送对于运动信息的请求。相反,如果该比较揭示发送消息的用户不在亲密的亲属或者朋友的群组之内(例如,被阻塞的用户),则该第一计算设备102不会发送对于运动信息的请求。
[0050] 可替换地或者附加地,第二计算设备124使用第二计算设备124所存储的许可120来确定是否响应于来自第一计算设备102的请求来发送运动信息。通过这种方式,第二计算设备124授权或者拒绝与第一计算设备102共享该运动信息。
[0051] 在某些实施例中,操作504和506被执行,而不明确地通知第一用户104(例如,在接收来自第二计算设备124的消息时没有用户动作或者授权)。在某些其他实施例中,第一用户104可以基于输入来发送请求。
[0052] 在506处,第一计算设备102接收来自第二计算设备124的运动信息。在508处,所接收的消息以及运动信息被呈现给第一用户104。在某些实施例中,来自应用110的单个应用执行来在用户接口中显示所接收的消息以及运动信息。
[0053] 在图5中所图示的操作也可以从第二计算设备124的视角来进行描述。特别地,第二计算设备124通过对等连接向第一计算设备102发送消息(例如文本消息),而不发送运动信息。随后,第二计算设备124从第一计算设备102接收对运动信息的请求。第二计算设备124基于许可120分析请求以便确定是否向第一计算设备102发送运动信息。基于该确定,第二计算设备124导出该运动信息(例如,根据来自传感器112的数据)并且通过对等连接(例如,以文本消息)将该运动信息发送到第一计算设备102。
[0054] 接下来,在图5中示出的操作的示例被描述。
[0055] 接下来参考图6,示例性的框图图示了其中第一移动电话306请求来自第二移动电话302的运动信息的实施例。第一移动电话306以及第二移动电话302可以起始地通信以便授权第一移动电话306请求和获取来自第二移动电话302的运动信息。可替换地,该授权可以响应于接收对运动信息的请求而发生,例如在图6中所图示的。
[0056] 尽管图6图示了第一移动电话306请求和接收来自第二移动电话302的运动信息,但是第一移动电话306和第二移动电话302的角色可以掉换,以使得第二移动电话302请求和接收来自第一移动电话306的运动信息。
[0057] 如在图6中所示出的,第一移动电话306向第二移动电话302发送对与第二移动电话302相关联的运动信息的请求606。例如,第一移动电话306响应于接收来自第二移动电话302的消息而请求运动信息。在某些实施例中,请求606被加密并且其包括用于第一移动电话306的设备标识(例如,设备标识符)、请求606的日期和时间(或者从第二移动电话302所接收到的消息的日期和时间)以及校验和。
[0058] 第二移动电话302接收请求606,评估请求606并且响应请求606。例如,第二移动电话302可以通过将来自请求606的信息与第二移动电话302所存储的或者可由第二移动电话302所访问的信息进行比较,来鉴别和/或验证请求606。作为响应,第二移动电话302向第一移动电话306发送所请求的运动信息608。所请求的运动信息608包括例如,与第二移动电话
302相关联的设备标识符、当前路线、当前维度、经度、方向、速度和/或描述第二移动电话
302的其他信息(例如,用于第二移动电话302的行进信息)。此外,所请求的运动信息608可以被加密。
[0059] 附加的示例
[0060] 在一个场景中,运动信息可以自动被收集并且在第一用户104离开工作环境时,被发送到第二用户122。在另一个场景中,运动信息可以自动被收集并且在第一计算设备102被报告为被盗时,被发送到第二用户122。在这些场景中,在没有来自第一用户104的消息的情况下或者利用默认消息,运动信息可以被发送。
[0061] 某些实施例预期拉取场景和推送场景两者的实现方式,诸如在不同的线程中(如果第一计算设备102支持多线程)。例如,第一计算设备102可以检查打算给第二用户122的第一消息是否已经从第一用户104(例如,该第一用户104已经键入消息)所接收并且打算给第一用户104的第二消息是否已经从第二计算设备124所接收,其中所述两个检查都是经由对等连接进行的。
[0062] 响应于接收第一消息,第一计算设备102从传感器112或者通过在本文所描述的其它方式导出第一运动信息,并且将第一消息与该第一运动信息一起发送到第二计算设备124。响应于接收第二消息,第一计算设备102从第二计算设备124获取第二运动信息(例如,通过将对第二运动信息的请求发送到第二计算设备124),并且在接收到第二运动信息时,将第二消息和第二运动信息呈现给第一用户104。
[0063] 本公开的某些方面独立于在第一计算设备102和第二计算设备124上执行的操作系统的类型和品牌操作。在这样的实施例中,第一计算设备102和第二计算设备124中的每一个都执行使得能够进行对等通信的客户端应用。此外,本公开的多个方面是后向兼容的。例如,如果第二计算设备124不能显示或者以其他方式使用从第一计算设备102所接收到的运动信息,则第二计算设备124至少将消息显示给第二用户122并且丢弃该运动信息。
[0064] 某些实施例预期在发送运动信息之前,基于发送设备的位置和/或在接收运动信息的设备处的接收方来过滤运动信息。例如,如果在发送设备处的用户正在步行或者慢跑,则速度和/或方向信息可能不会被发送到接收方。相反,某些实施例预期将元数据添加到消息和/或运动信息。例如,某些实施例预期添加指示消息的紧迫性和/或重要性的标签。消息的紧迫性和/或重要性可以从消息自身和/或从运动信息导出。
[0065] 在某些实施例中,ETA可以基于一周的一天以及时间来细化,其中对应于该周的该天和该时间的之前的交通数据被存储在存储器区域108中,被用来细化ETA。
[0066] 在某些实施例中,第一计算设备102以及第二计算设备124可以使用具有Wi-Fi保护设置的Wi-Fi直连通信方法与彼此进行对等通信。在这样的情况下,计算设备的初始配对可以使用近场通信(NFC)来完成。
[0067] 在某些实施例中,在附图中所图示的各种不同的元件的功能的至少一部分可以由在附图中的其他元件或者未在附图中示出的实体(例如,处理器、web服务、服务器、应用程序、计算设备等)来执行。
[0068] 在某些实施例中,在附图中所图示的操作可以作为被编码在计算机可读介质上的软件指令而被实现,可以被实现在被编程或者被设计来执行该操作的硬件上,或者被实现为上述两者。例如,本公开的多个方面可以被实现为片上系统或者包括多个互联的、电传导的元件的其他电路。
[0069] 在本文中所使用的术语“Wi-Fi”在某些实施例中指的是使用高频无线电信号以用于数据传输的无线局域网。在本文中所使用的术语“蓝牙”在某些实施例中指的是用于使用短波长无线电传输在短距离上交换数据的无线技术标准。在本文中所使用的术语“蜂窝”在某些实施例中指的是使用当联合在一起时使得能够在广泛的地理区域上传输数据的短距离无线电站点的无线通信系统。在本文中所使用的术语“NFC”在某些实施例中指的是用于在短距离上进行数据交换的短距离高频无线通信技术。
[0070] 参考诸如位置或者运动数据之类的从用户监控和/或收集的数据以及该监控的或者收集的数据与其他用户的共享,已经描述了实施例。通知可以被提供给收集和共享数据的用户(例如,经由对话框或者偏好设置),并且用户被给予给出或者否定对监控、收集和/或共享的同意和/或定制什么数据将被收集或者监控和/或与谁共享数据的机会。该同意可以采取选择加入同意或者选择退出同意的形式。
[0071] 示例性操作环境
[0072] 示例性的计算机可读媒体包括闪存驱动器、数字多用途盘(DVD)、紧致盘(CD)、软盘以及盒式磁带。作为示例而非限制,计算机可读媒体包括计算机存储媒体以及通信媒体。计算机存储媒体包括易失性以及非易失性存储器、以用于存储诸如计算机可读指令、数据结构、程序模块和其他数据之类的信息的任何方法或者技术所实现的可移除以及不可移除存储器。计算机存储媒体是有形的并且与通信媒体互不相交。计算机存储媒体不包括传播的数据信号。在某些实施例中,计算机存储媒体以硬件而被实现。示例性计算机存储媒体包括硬盘、闪存驱动器以及其他固态存储器。相反,通信媒体典型地包括计算机可读指令、数据结构、程序模块或者在调制的数据信号(诸如载波或者其他传输机制)中的其他数据,并且包括任何信息递送媒体。
[0073] 尽管结合示例性的计算系统环境进行了描述,但是本公开的实施例能够以众多其他通用或者专用计算系统环境、配置或者设备来实现。
[0074] 可以合适来供本发明的多个方面使用的众所周知的计算系统、环境和/或配置的示例包括但不限于,移动计算设备、个人计算机、服务器计算机、手持或者膝上型设备、多处理器系统、游戏控制台、基于微处理器的系统、机顶盒、可编程消费电子设备、移动电话、网络PC、微型计算机、大型计算机、包括上述系统或者设备中任一个的分布式计算环境等等。在本文中所描述的较少移动或者静止的计算系统可以至少被用来接收消息和运动信息。这样的系统或者设备可以以任何方式(包括从诸如键盘、指示设备之类的输入设备、经由手势输入、接近输入(诸如通过悬浮)、和/或经由话音输入)接受来自用户的输入。
[0075] 本发明的实施例可以在诸如程序模块之类的计算机可执行指令的一般上下文中而被描述,所述计算机可执行指令由一个或多个计算机或者其他设备以软件、固件、硬件或者其组合来执行。该计算机可执行指令可以被组织成一个或多个计算机可执行组件或者模块。一般性地,程序模块包括但不限于,例程、程序、对象、组件以及执行特定任务或者实现特定抽象数据类型的数据结构。本发明的多个方面可以通过任何数量或者组织的这样的组件或者模块来被实现。例如,本发明的多个方面不限于在附图中所图示的以及在本文中所描述的特定的计算机可执行指令或者特定的组件或者模块。本发明的其他实施例可以包括具有相比于在本文中所图示和描述的功能更多或者更少功能的不同的计算机可执行指令或者组件。
[0076] 本发明的多个方面在被配置来执行本文所描述的指令时,将通用计算机转换为专用计算设备。
[0077] 在本文所图示的或者所描述的本发明的实施例中的操作的执行或者实施的顺序不是必要的,除非另有指定。也就是说,所述操作可以以任意顺序执行,除非另有指定,并且本发明的实施例相比在本文中所公开的那些可以包括额外的或者更少的操作。例如,可以预期的是,在另一个操作之前、与另一个操作同时或者在另一个操作之后执行或者实施特定的操作是在本发明的多个方面的范围内的。
[0078] 当引入本发明的多个方面或者其实施例的元件时,冠词“一”、“一个”、“该”以及“所述”是旨在意指存在元件中的一个或多个。术语“包括”、“包含”以及“具有”是旨在是包括性的,并且意指可以存在不同于所列出的元件的附加的元件。术语“示例性”是旨在意指“其一个示例”。短语“下列A、B和C中的一个或多个”意指“至少一个A和/或至少一个B和/或至少一个C”。
[0079] 已经详细描述了本发明的多个方面,将显然的是,在不偏离在所附的权利要求中所定义的本发明的多个方面的范围的情况下,修改和变例是可能的。因为在不偏离本发明的多个方面的范围的情况下,在上述构造、产品以及方法中可以做出各种不同的改变,所以其旨在:包含在上文说明书以及在附图中所示出的所有内容都应该被解释为说明性的而不是限制性意义的。