专利名称:基于位置在用户设备处执行动作的方法、系统和程序产品的制作方法
技术领域:
本公开一般地涉及计算设备的基于位置的操作。
背景技术:
计算机可以使用提醒来通知用户有任务需要执行或有事件即将发生。例如,计算机可以为用户存储待办事项列表。该待办事项列表可以包括一个或多个任务的列表。每个任务可以与一排定的到期日相关联。随着任务到期日的临近,计算机可以例如通过呈现警告对话框来向用户提供提醒。在某些实现中,待办事项列表可由日历应用程序管理。日历应用程序可以允许用户在登录后创建或修改待办事项列表并查看提醒。
发明内容
公开了基于位置进行提醒的方法、程序产品和系统。第一用户设备可以接收规定在给定位置呈现提醒的输入。该第一用户设备可以向服务器计算机提供包括提醒的类型和内容以及位置的提醒请求,用于推送至一个或多个用户设备。第二用户设备接收到该提醒请求后可以确定该第二用户设备的设备位置。如果所述给定位置与该设备位置相匹配,第二用户设备就可以在用户界面内呈现所述提醒。可以进行基于位置的提醒以实现如下益处。相比于常规提醒,基于位置的提醒能够给予用户关于如何设置提醒的更多选项。除了提醒在“何时”被触发之外,用户还可以规定提醒在“何处”被激活。例如,用户可以设置工作相关的提醒以在工作处的计算机上显示,还可以设置家务相关的提醒以在家中的计算机上显示。在移动设备上,用户可以设置将在同时(例如,周一上午9点)但在不同位置显示的两个提醒。移动设备可以基于该移动设备所处的位置来选择显示这两个提醒中的一个。此外,用户还可以为移动设备设置提醒,以在该移动设备进入或离开某一位置时呈现该提醒。有关基于位置的提醒的一个或多个实现的细节将在附图和如下描述中阐述。基于位置的提醒的其他特征、方面和益处将会根据说明书、附图和权利要求而变得显见。
图1是提供基于位置进行提醒的示例性系统的概述的图示。图2是配置或呈现基于位置的提醒的示例性系统的框图。图3例示了 配置基于位置的提醒的示例性事件用户界面。
图4例示了呈现基于位置的提醒的示例性应用用户界面。图5是呈现基于位置的提醒的示例性过程的流程图。图6是例示了配置基于位置的提醒的示例性过程的流程图。图7是例示了使用服务器提供基于位置的提醒的示例性过程的流程图。图8是实现基于位置的提醒的特征和操作的示例性系统架构的框图。图9是实现基于位置的提醒的特征和操作的移动设备的示例性设备架构的框图。图10是用于实现基于位置的提醒的特征和操作的移动设备的示例性网络操作环境的框图。图11是示例性用户设备的框图。各附图中相似的参考符号指示类似的元素。
具体实施例方式基于定位的提醒的概述图1是提供基于定位进行提醒的示例性系统100的概述的图示。系统100可以包括第一用户设备102。第一用户设备102可以是桌上型计算机或移动设备,例如移动电话或平板计算机。第一用户设备102可以接收输入以创建提醒。输入可以规定动作104以及用于执行动作104的场所(venue)。动作104例如可以是显示包含消息的警告对话框或播放包含消息的音频提醒,该消息例如是“准备交税!!”。场所可以是地址或地址的一部分,例如"IOOOak Street,CA94063”。场所可以是与地址相关联的标签,例如“家”。场所可以是与社会事件上下文(例如,广告或日历)中的地址相关联的社会事件,例如“创作者大会(MakerFaire ),,。第一用户设备102可以从输入生成事件106。事件106可以包括动作104和事件位置108。事件位置108可以包括完整地址或一组地理坐标,或以上两者。第一用户设备102可以基于在输入中规定的场所确定事件位置108。在某些实现中,第一用户设备102可以在存储在第一用户设备102上的或是远离该第一用户设备102的服务器计算机上的数据库中执行基于场所的搜索。例如,当在输入中规定的场所是“家”时,第一用户设备102可以在地址簿中搜索与由提供输入的用户指定的“家”相关联的完整地址。该地址簿可以存储在第一用户设备102上,或者存储在可由用户设备102访问的服务器计算机上。在某些实现中,当场所是社会事件时,第一用户设备102可以在存储于第一用户设备102上或远程服务器上的社会事件日历或广告中搜索地址。例如,第一用户设备102可以确定在当前时刻,社会事件“创作者大会”正在地址“ IOOOak Street, CA94063”处举行。第一用户设备102随后可以执行另一搜索,以确定该地址的纬度坐标、经度坐标和高度坐标。此外,第一用户设备102可以基于输入创建执行动作的触发事件。该触发事件可以规定动作在事件位置处被执行,或是在进入或离开该事件位置时被执行。第一用户设备102可以将该触发事件存储为与事件106中的动作104和事件位置108相关联。事件106可被存储在调度程序(例如,日历应用程序)的事件列表中。第一用户设备102 可以使用同步并通过通信网络110将事件106提供给远离该第一用户设备102的一个或多个服务器计算机112。服务器计算机112可以将事件106推送给一个或多个第二用户设备。作为附加或者替换,第一用户设备102可以通过通信网络110将事件106推送给第二用户设备而无需使用服务器计算机112。第二用户设备可以是注册至提供了输入以生成事件106的用户或是被授权查看事件106中规定的提醒的另一用户(例如,与原始用户共享事件列表的用户)的设备。第二用户设备可以包括移动设备或固定设备。固定设备可以是虽然可移动但典型地位于固定位置(例如,在建筑物的特定楼层)的计算机。第二用户设备可以包括计算机114。计算机114可以是典型地为固定的(例如,位于家中的)计算机。计算机114可以处于无线接入点116的通信范围内。计算机114可以基于无线接入点116确定设备位置118,该设备位置118是对计算机114所处位置的估计。无线接入点116可以与数据库中的估计的接入点位置相关联。该估计的接入点位置可以基于来自知晓位置的设备的历史数据而统计地确定。估计的接入点位置可与无线接入点116的标识符(例如,媒体访问控制(MAC)地址)相关联地存储。计算机114可以基于无线接入点116的估计的接入点位置来确定设备位置118。例如,计算机114可以将无线接入点116的估计的接入点位置指定为设备位置118,或者可以使用无线接入点116的估计的接入点位置以及其他无线接入点的一个或多个估计的接入点位置来确定设备位置118。计算机114可以接收事件106,并且确定在事件106中规定的事件位置108与设备位置118相匹配。确定事件位置108与设备位置118相匹配可以包括:确定事件位置108位于如设备位置所规定的以一组地理坐标为中心并且具有一半径的圆或三维空间中的球体之内,或者确定设备位置位于如事件位置所规定的圆或球体之内。如果事件位置和该组地理坐标之间的距离满足阈值距离(例如,当该距离小于或等于该半径时),计算机114就可以确定触发动作104的条件被满足。计算机114于是可以执行在事件106中规定的动作104,例如通过提供用于显示的警告对话框120。在某些实现中,第二用户设备可以包括移动设备124。移动设备124可以确定最初移动设备124处于位置A。位置 A可以远离第一用户设备102和计算机114。移动设备124可以通过监视处于通信范围内的一个或多个无线接入点(例如,无线接入点126)来确定地理位置。一旦接收到事件106,移动设备124就可以基于在事件位置108中规定的一组地理坐标生成地理围栏(geofence)。移动设备124可以使用上述的一个或多个无线接入点来监视移动设备124是否已进入或离开该地理围栏。例如,移动设备124可以例如根据丢失来自无线接入点126的信号而确定移动设备124已经移动离开无线接入点126。移动设备124随后可以例如通过检测到来自无线接入点116的信号而确定移动设备124处于无线接入点116的通信范围内。移动设备124可以基于无线接入点116的位置确定移动设备124现在处于位置B,表明移动设备124已经进入地理围栏。由此,移动设备124可以确定触发动作104的条件被满足。计算机114于是可以执行在事件106中规定的动作104,例如通过提供用于显示的警告对话框128。示例性设备部件图2是配置或呈现基于位置的提醒的示例性系统200的框图。系统200可以在一个或多个计算机上实现。这些计算机可以是用户设备或是服务器计算机。系统200可以包括事件创建子系统202。事件创建子系统202可被编程为提供事件用户界面204用于显示在用户设备上,以及通过事件用户界面204接收规定要执行什么动作(例如,呈现提醒)、在什么场所位置、在什么时间、以及动作将由进入该场所位置还是离开该场所位置来触发的用户输入。用于配置基于位置的提醒的事件用户界面204的附加细节将在下文参考图3描述。系统200可以包括事件位置子系统206。事件位置子系统206可被编程为基于场所位置确定执行动作的事件位置。事件位置子系统206可以接收来自事件创建子系统的场所位置,并且确定街道地址或是一组地理坐标。系统200可以包括地址子系统208,该地址子系统208被编程为存储场所位置和地址之间的关联,或与外部系统相接口以确定场所的地址。例如,事件创建子系统202可以使用标签“家”来向事件位置子系统206提供场所位置。事件位置子系统206可以使用地址子系统208执行搜索,以确定该标签“家”与一完整街道地址相关联。事件位置子系统206可以通过用于将街道地址映射至地理坐标的内部或外部系统而进一步地确定该完整街道地址的纬度坐标、经度坐标以及可选的高度坐标。高度坐标例如可以基于完整街道地址的一部分(例如,指示该地址的楼层的“402室”)或者基于地理标记(geotagging)而被确定。事件创建子系统202随后可以创建规定动作的事件,以及与该动作相关联的事件条件。事件条件可以规定事件位置和触发事件。系统200可以在事件群组(例如,提醒列表)中存储该触发事件,并通过通信网络110将事件提醒发送至一个或多个用户设备。系统200可以包括应用管理子系统210。应用管理子系统210可被编程为接收与规定了动作和事件条件的事件相对应的请求,并且根据事件条件执行动作。应用管理子系统210可以与位置确定子系统212通信。位置确定子系统212可以是系统200的部件,被配置为确定用户设备所处的设备位置。位置确定子系统212可以使用来自无线通信子系统214的信息来确定设备位置,其中该无线通信子系统214被配置为检测来自无线接入点216的信号并与其通信。无线 通信子系统214可将无线接入点216的标识符提供给位置确定子系统212。位置确定子系统212可以在本地或远程数据库中执行搜索以估计无线接入点216的位置,并且基于无线接入点216的位置确定设备位置。当应用管理子系统210接收到来自位置确定子系统212的设备位置时,应用管理子系统210可以确定事件中的事件条件是否被满足。例如,应用管理子系统210可以确定设备位置是否与事件位置相匹配。如果事件条件被满足,则应用管理子系统210可以使动作被执行,并将结果呈现在应用用户界面218内。例如,应用管理子系统210可以启动应用或显示警告对话框。应用用户界面218的附加细节随后将参考图4描述。在某些实现中,系统200可在单个用户设备上实现。例如,系统200可以在膝上型或平板设备上实现。该膝上型或平板设备可以在第一位置(例如,办公室)接收用于配置提醒的用户输入,并在该膝上型或平板设备移至与第一位置不同的第二位置(例如,家)时呈现该提醒。在某些实现中,系统200可在多个用户设备上实现。例如,事件创建子系统202、事件位置子系统206和地址子系统208可以在处于第一位置的第一用户设备上实现。该第一用户设备可以接收来自用户的输入,生成在一位置执行动作的事件,并将该事件与基于网络的服务(例如,基于因特网的服务)进行同步。该基于网络的服务例如可以通过将请求发送至一个或多个第二用户设备而将该事件与该一个或多个第二用户设备进行同步。第二用户设备可以是已注册了该基于网络的服务的设备。应用管理子系统210、位置确定子系统212、无线通信子系统214以及应用用户界面218可以在第二用户设备上实现。在某些实现中,系统200的多个部件可以在一个或多个服务器计算机上实现。例如,事件创建子系统202、事件位置子系统206、地址子系统208、应用管理子系统210、位置确定子系统212、无线通信子系统214以及应用用户界面218可以在提供各种服务(例如,事件创建、提醒呈现、以及作为web服务在用户设备间同步)的服务器计算机上实现。示例性用户界面图3例示了配置基于位置的提醒的示例性事件用户界面204。事件用户界面204可以包括事件编辑器302,用于接收用于配置事件的用户输入。事件编辑器302可以包括事件类型编辑字段304,用于接收规定要执行的动作的输入。该动作可以是呈现提醒。动作例如可以包括呈现警告对话框、播放音频消息、启动应用程序、提供力反馈(例如,使设备振动)、或者开关电子设备。事件编辑器302可以包括事件消息编辑字段306,用于接收规定要在警告对话框中显示的或要在音频消息中播放的消息的输入。事件编辑器302可以包括事件场所编辑字段308,用于接收规定动作要执行的场所的输入。该场所可以是用户创建的标签、与地址相关联的事件、或者完整或部分的街道地址。事件编辑器302可以包括事件触发编辑字段310,用于接收规定要执行动作的触发事件的一个或多个参数的输入。触发事件的一个或多个参数可以规定该触发事件是进入场所位置还是离开场所位置。在某些实现中,触发参数可以是计数,使得动作仅在第一次、第二次、第三次或第η次进入或离开该场所时被触发。事件用户界面204可以包括事件列表编辑字段314。事件可被存储在群组中,例如文件夹或事件列表中。每个群组可与一个类别相关联,类别可以是标签,例如“工作相关提醒”或“孩子相关提醒”。事件列表编辑字段314可以接收规定通过事件编辑器302创建的事件所归入的群组的输入。该群组可由标签标识。事件用户界面204可以包括事件共享字段316。可以在多个用户之间共享事件群组。当共享事件群组时,负责同步事件的系统可以将事件推送到共享该事件群组的每一个用户的设备。这些用户中任何用户的任何设备在位于、进入或离开事件位置时,可被触发执行在该共享群组的事件中所规定的动作。事件共享字段316可以接收规定共享事件群组的用户或用户群组的标识符(例如,名字)的输入。图4例示了呈现基于位置的提醒的示例性应用用户界面218。应用用户界面218可以是在共享事件群组的用户的用户设备上执行的提醒程序的界面。应用用户界面218可以包括提供消息显示的警告对话框402,所述消息例如是在如上参考图3描述的事件消息编辑字段306中规定的消息。示例性过程 图5是呈现基于位置的提醒的示例性过程500的流程图。过程500可由具有参考图2描述的架构的用户设备执行。用户设备可以接收(502)执行动作的请求。该请求可以与规定动作要在规定的事件位置被执行的激活条件相关联。该事件位置可以包括街道地址和一组地理坐标(例如,纬度、经度和高度)中的至少一者。
用户设备可基于位于该用户设备的无线通信范围内的无线接入点来确定(504)该用户设备所处的设备位置。设备位置可以包括纬度坐标、经度坐标、可选的高度坐标、以及表示该设备位置的不确定度的半径。确定用户设备处于该设备位置可以包括由用户设备执行如下操作。用户设备可以使用无线接入点的标识符(例如,MAC地址)来识别(例如,从数据库中识别)无线接入点的接入点位置。数据库可以是存储无线接入点的标识符以及与各个标识符分别对应的接入点位置的本地或远程数据库。用户设备可以基于所识别的接入点位置确定设备位置的纬度坐标、经度坐标、和半径。用户设备可以确定(506)事件位置和设备位置之间的距离满足阈值距离。在某些实现中,用户设备可以通过确定事件位置处于从设备位置的纬度坐标和经度坐标起的半径之内来做出这一确定。在某些实现中,用户设备是移动设备。用户设备可以确定当移动设备进入或离开地理围栏时事件位置和设备位置之间的距离满足阈值距离。地理围栏可由纬度坐标、经度坐标、以及表示关于位置的不确定度的半径来定义。阈值距离可以对应于半径。地理围栏的纬度坐标、经度坐标和半径可以通过对事件位置进行地理标记来确定。用户设备可以在阈值距离被满足时执行(508)动作。如果用户设备已事先向提供基于位置的提醒的服务器计算机注册,则执行动作可以包括提供用户界面项的显示而不要求用户登录用户设备,该用户界面项例如是包括警告对话框的提醒。服务器计算机可以在提醒事件的同步期间将在事件位置处执行动作的请求推送至已注册的用户设备群组。服务器计算机可以远离该用户设备群组中的每一 个用户设备。图6是例示了配置基于位置的提醒的示例性过程的流程图600。过程600可由具有参考图2描述的架构的用户设备执行。用户设备可以生成(602)事件。用户设备可以通过创建新事件或修改现有事件来生成事件。生成事件可以包括基于输入指定执行动作的事件条件。事件条件可以规定,要在规定的场所执行所述动作。该动作可以包括呈现提醒。场所可以包括在某地发生的社会事件(诸如,会议、运动事件、音乐会、展览会或集会)的标识符。场所可以包括用户指定的地理位置的标签,例如办公室、家或学校。场所可以包括街道地址的至少一部分。在某些实现中,用户设备可以在事件群组(例如,提醒列表)中存储事件。事件群组可以与一事件类别相对应。用户设备可以在多个用户之间共享该事件群组。这多个用户中的每一个用户可由一个用户标识符来标识。用户设备可以基于所存储的将场所与事件位置相关联的数据来确定(604)执行动作的事件位置。该事件位置可以包括社会事件地址,其可以是根据上下文发生该社会事件的地方。上下文可以是社会事件日历。事件日历可被存储在用户设备或服务器计算机上,或者基于来自搜索的结果生成。事件位置可以包括一组地理坐标。事件位置可以包括街道地址。用户设备可以提供(606)请求给第二用户设备。该请求可以包括激活条件,该激活条件可以使得第二用户设备在该第二用户设备处于事件位置时执行动作。用户设备和第二用户设备可以处于不同的位置。激活条件可以包括如下成分:位置触发、街道地址、和一组地理坐标。如下是一个示例性的激活条件。接近方式:[进入I离开I位于其中]
位置:[街道地址] 地理坐标:[纬度、经度、高度]列表1:示例性激活条件在上例中,“接近方式”条目可以定义动作要在一位置处被执行的触发,包括例如当第二用户设备处于距一组地理坐标的规定距离内时。如果距离被设定,则可以在该第二移动设备处于与该地理坐标相距为该距离与设备位置的半径之和的范围内时触发该动作。如果该距离未被显式设定,则可以在该第二移动设备与该地理坐标相距设备位置的半径以内时触发动作。作为附加或替换,该“接近方式”条目可以规定是在该第二用户设备进入还是离开该位置时执行动作。“位置”条目可以包括地址。“地理坐标”条目可以包括纬度坐标、经度坐标以及可选的高度坐标。提供请求给第二用户设备可由服务器计算机实现,后者在同步操作中将该请求推送给第二用户设备的群组。图7是例示了使用服务器提供基于位置的提醒的示例性过程700的流程图。服务器可以包括被编程为处理从用户设备接收的请求并响应于所述请求提供响应给用户设备的一个或多个服务器计算机。服务器可以接收(702)来自位于第一位置的第一用户设备的事件。该事件可以规定动作和事件位置,以及将在该事件位置处执行动作的请求。动作可以是在视觉、音频或机械用户界面中呈现提醒。机械用户界面可以包括用于生成振动力的机械部件。服务器可以基于该事件所属于的事件群组来识别(704) —个或多个第二用户设备。事件群组可以在第一用户设备的用户和一个或多个第二用户设备的一个或多个用户之间共享。 服务器可以同步(706)第一用户设备和一个或多个第二用户设备。服务器可以将该事件推送至一个或多个第二用户设备,以使得在所述一个或多个第二用户设备中的任一第二用户设备处于事件位置时,由该第二用户设备执行动作。将该事件推送至用户设备可以包括将该事件发送至该用户设备而无需接收到来自用户设备的对该事件的请求。第一用户设备可以远离这一个或多个第二用户设备中的每一个设备。在某些实现中,服务器可以从第一用户设备接收修改动作或事件位置的事件更新。服务器可以自动将更新推送至一个或多个用户设备中的每一个设备。示例性系统架构图8是实现基于位置的提醒的特征和操作的示例性系统架构的框图。其他架构也是可能的,包括带有更多或更少部件的架构。在某些实现中,架构800可以包括一个或多个处理器802 (例如,双核Intel Xeon 处理器)、一个或多个输出设备804 (例如,ixd)、一个或多个网络接口 806、一个或多个输入设备808 (例如,鼠标、键盘、触摸敏感显示器)、以及一个或多个计算机可读介质812 (例如,狀11、1 01、50狀1、硬盘、光盘、闪存等)。这些部件可以经由能够利用各种硬件和软件以促进数据和控制信号在各部件之间转移的一个或多个通信通道810 (例如,总线)来交换通信和数据。术语“计算机可读介质”指的是参与向处理器802提供指令以供执行的任何介质,包括但不限于非易失性介质(例如,光盘或磁盘)、易失性介质(例如,存储器)和传输介质。传输介质包括但不限于同轴线缆、铜线和光纤。计算机可读介质812还可以包括操作系统814 (例如,Mac OS 服务器、Windows NT服务器)、网络通信模块816、事件配置模块820、事件同步模块830、以及事件呈现模块840。事件配置模块820可被编程为接收用于配置事件的输入,其中该事件规定将在一位置处执行动作。事件同步模块830可被编程为在彼此远离的用户设备之间同步事件。事件呈现模块840可被编程为确定用户设备的位置并且在用户设备处于给定位置时使得该用户设备执行动作,例如呈现提醒。操作系统814可以是多用户、多处理、多任务、多线程、实时的等等。操作系统814执行基本任务,包括但不限于:识别来自设备808的输入并将输出提供给设备806 ;保持跟踪并管理计算机可读介质812 (例如,存储器或存储设备)上的文件和目录;控制外围设备;以及管理一个或多个通信通道810上的通信量。网络通信模块816包括用于建立和维持网络连接的各种部件(例如,执行诸如TCP/IP、HTTP等通信协议的软件)。计算机可读介质812还可以包括数据库接口。数据库接口可以包括与文件系统上的一个或多个数据库的接口。数据库可被组织为分层文件夹结构,这些文件夹映射至文件系统中的目录。架构800可被包括在能够承载数据库应用程序的任何设备内。架构800可被实现为并行处理或对等基础框架,或在单个设备上用一个或多个处理器实现。软件可以包括多个软件部件或者可以是单体代码。所描述的特征可以有利地在一个或多个计算机程序中实现,所述一个或多个计算机程序能在可编程系统上执行,所述可编程系统则包括至少一个可编程处理器、数据存储系统、至少一个输入设备和至少一个输出设备,其中该处理器被耦合以从数据存储系统和输入设备接收数据和指令,并向数据存储系统和输出设备发送数据和指令。计算机程序是能够在计算机内被直接或间·接使用以执行特定活动或带来特定结果的指令集。计算机程序可以用包括编译或解释语言在内的任何形式的编程语言(例如,Objective-C、Java)编写,并且能够以任何形式被利用,包括作为独立的程序或作为模块、部件、子例程、基于浏览器的web应用、或适于在计算环境中使用的其他单元。用于执行程序指令的合适的处理器例如包括任何种类计算机的通用和专用微处理器两者、以及单独的处理器或多处理器或多核中的一个处理器或核。一般而言,处理器将接收来自只读存储器或随机存取存储器或前述两者的指令和数据。计算机必不可少的要素是执行指令的处理器以及存储指令和数据的一个或多个存储器。一般而言,计算机还将包括存储数据文件的一个或多个大容量存储设备,或与其操作性地耦合以进行通信;这些大容量存储设备包括诸如内置硬盘和可移动盘的磁盘;磁光盘;和光盘。适于有形地具体化计算机程序指令的存储设备包括所有形式的非易失性存储器,例如包括半导体存储器设备,诸如EPROM、EEPROM和闪存设备;诸如内置硬盘和可移动盘的磁盘;磁光盘;以及⑶-ROM和DVD-ROM盘。处理器和存储器可由ASIC (专用集成电路)补充或集成在其中。为了提供与用户的交互,可以在计算机上实现的特征包括诸如CRT (阴极射线管)或LCD (液晶显示器)监视器的用于向用户显示信息的显示设备、以及用户能够通过其而向计算机提供输入的键盘和诸如鼠标或跟踪球的指示设备。这些特征可在如下的计算机系统中实现:其包括后端部件,诸如数据服务器;或者其包括中间件部件,诸如应用服务器或因特网服务器;或者其包括前端部件,诸如具有图形用户界面或因特网浏览器的客户端计算机;或前述任意组合。系统的各部件可以通过数字数据通信的任何形式或媒介(诸如,通信网络)相连。通信网络的例子包括例如LAN、WAN、以及形成因特网的计算机和网络。计算机系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且典型地通过网络进行交互。客户端和服务器的关系借助于在各自计算机上运行的并彼此具有客户端-服务器关系的计算机程序而产生。示例性移动设备架构图9是实现基于图案的手势识别的特征和操作的移动设备的示例性设备架构900的框图。移动设备可以包括存储器接口 902、一个或多个数据处理器、图像处理器和/或处理器904、以及外设接口 906。存储器接口 902、一个或多个处理器904和/或外设接口 906可以是分开的部件,也可被集成在一个或多个集成电路中。处理器904可以包括一个或多个应用处理器(AP)以及一个或多个基带处理器(BP)。应用处理器和基带处理器可被集成在单个处理芯片内。移动设备内的各种部件例如可以通过一个或多个通信总线或信号线相耦接。传感器、设备和子系统可被耦接至外设接口 906以促进多功能的实现。例如,运动传感器910、光传感器912和接近传感器914可被耦接至外设接口 906以促进移动设备的定向、照明和接近度功能。位置处理器915 (例如,GPS接收器)可被连接至外设接口 906以提供地理定位。电子磁力计916 (例如,集成电路芯片)也可被连接至外设接口 906以提供可被用来确定北磁极的方向的数据。于是,电子磁力计916可被用作电子指南针。运动传感器910可以包括被配置为确定移动设备的移动速度和方向的改变的一个或多个加速度计。重力计917可以包括连接至外设接口 906并被配置为测量地球的局部重力场的一个或多个设备。相机子系统920和光学传感器922 (例如,电荷稱合器件((XD)或互补金属氧化物半导体(CMOS)光学传感器)可被用于促进相机功能,诸如记录照片和视频剪辑。通信功能可以通过一个或多个无线通信子系统924来促进,所述子系统可以包括射频接收机和发射机和/或光(例如,红外)接收机和发射机。通信子系统924的具体设计和实现可以取决于移动设备要在其上工作的通信网络(一个或多个)。例如,移动设备可以包括被设计为在CDMA系统、WiFi 或WiMax 网络、以及Bluetooth 网络上工作的通信子系统924。特别地,无线通信子系统924可以包括托管协议,使得移动设备可被配置作为其他无线设备的基站。音频子系统926可被耦合至扬声器928和麦克风930,以促进语音使能的功能,诸如语音识别、语音复制、数字记录和电话功能。I/O子系统940可以包括触摸表面控制器942和/或其他输入控制器(一个或多个)944。触摸表面控制器942可以耦合至触摸表面946(例如,触摸屏或板)。触摸表面946和触摸表面控制器942可以使用多种触摸敏感技术中的任意技术来例如检测接触和移动或其中断,其中所述触摸敏感技术包括但不限于电容性、电阻性、红外、表面声波技术,以及用于确定与触摸屏946的一个或多个接触点的其他接近传感器阵列或其他元件。其他输入控制 器(一个或多个)944可被耦合至其他输入/控制设备948,诸如一个或多个按钮、摇杆开关、拇指轮、红外端口、USB端口、和/或诸如触笔的指针设备。一个或多个按钮(未不出)可以包括用于扬声器928和/或麦克风930的音量控制的上/下按钮。在一个实现中,按下按钮达第一持续时间可以解除触摸表面946 (例如,触摸屏)的锁定;并且按下按钮达长于该第一持续时间的第二持续时间可以开关移动设备的电源。用户还可以具有定制一个或多个按钮的功能的能力。触摸表面946例如还可被用于实现虚拟或软按钮和/或键盘。在某些实现中,移动设备可以播放记录的音频和/或视频文件,诸如MP3、AAC和MPEG文件。在某些实现中,移动设备可以包括MP3播放器的功能。移动设备因此可以包括引脚连接器。还可以使用其他输入/输出和控制设备。存储器接口 902可以耦接至存储器950。存储器950可以包括高速随机存取存储器和/或非易失性存储器,诸如一个或多个磁盘存储设备、一个或多个光学存储设备、和/或闪存(例如,NAND, N0R)。存储器950可以存储操作系统952,诸如Darwin、RTXC, LINUX、UNIX、OS X、WINDOWS,或嵌入式操作系统,诸如VxWorks。操作系统952可以包括用于处理基本系统服务并用于执行依赖于硬件的任务的指令。在某些实现中,操作系统952可以包括内核(例如,UNIX内核)。存储器950还可以存储通信指令954以促进与一个或多个附加设备、一个或多个计算机和/或一个或多个服务器的通信。存储器950可以包括:促进图形用户界面处理的图形用户界面指令956 ;促进传感器相关的处理和功能的传感器处理指令958 ;促进电话相关的处理和功能的电话指令960 ;促进电子消息收发相关的处理和功能的电子消息收发指令962 ;促进web浏览相关的处理和功能的web浏览指令964 ;促进媒体处理相关的处理和功能的媒体处理指令966 ;促进GPS和导航相关的处理和功能的GPS/导航指令968 ;促进相机相关的处理和功能的相机指令970 ;促进磁力计校准的磁力计数据972和校准指令974。存储器950还可以存储其他软件指令(未示出),诸如安全指令、促进web视频相关的处理和功能的web视频指令、和/或促进web购物相关的处理和功能的web购物指令。在某些实现中,媒体处理指令966可被划分为促进音频处理相关的处理和功能的音频处理指令和促进视频处理相关的处理和功能的视频处理指令。还可以在存储器950中存储激活记录和国际移动设备识别码(MEI)或类似硬件标识符。存储器950可以包括基于位置的提醒指令976。基于位置的提醒指令976可以·是被配置为使得移动设备执行配置或呈现基于位置的提醒的操作的计算机程序产品。 上面列出的指令和应用中的每一个可以与一个用于执行一个或多个上述功能的指令集相对应。这些指令无需被实现为分开的软件程序、过程或模块。存储器950可以包括额外的指令或是更少的指令。此外,移动设备的各种功能可由包括在一个或多个信号处理和/或专用集成电路中的硬件和/或软件实现。示例性操作环境图10是用于实现基于位置的提醒的特征和操作的移动设备的示例性网络操作环境1000的框图。移动设备1002a和1002b分别可以是如上所述的第一用户设备和第二用户设备。在数据通信中,移动设备1002a和1002b例如可以经由一个或多个有线和/或无线网络1010进行通信。例如,诸如蜂窝网络的无线网络1012可以通过使用网关1016而与诸如因特网的广域网(WAN) 1014通信。类似地,诸如802.1lg无线接入设备的接入设备1018可以提供对广域网1014的通信接入。在某些实现中,语音和数据通信两者都可经由无线网络1012和接入设备1018建立。例如,移动设备1002a可以经由无线网络1012、网关1016以及广域网1014(例如,使用传输控制协议/互联网协议(TCP/IP)或用户数据报协议(UDP))发起和接收电话呼叫(例如,使用IP电话(VoIP)协议)、发送和接收电子邮件消息(例如,邮局协议第三版(POP3))、以及检索电子文档和/或数据流,诸如网页、照片和视频。类似地,在某些实现中,移动电话1002b也可以经由接入设备1018和广域网1014来发起并接收电话呼叫、发送和接收电子邮件消息、以及检索电子文档。在某些实现中,移动设备1002a或1002b可以使用一个或多个线缆物理连接至接入设备1018,并且该接入设备1018可以是个人计算机。在此配置中,移动设备1002a或1002b可被称作是“系缆”设备。移动设备1002a和1002b也可通过其他方式建立通信。例如,无线移动设备1002a可以经由无线网络1012与其它无线设备(例如,其它移动设备1002a或1002b、蜂窝电话等)通信。类似地,移动设备1002a和1002b可以通过使用一个或多个通信子系统(诸如,Bluetooth 通信设备)建立对等通信1020,例如私域网。其他的通信协议和拓扑也是可以实现的。移动设备1002a或1002b例如可以经由一个或多个有线和/或无线网络与一个或多个服务1030和1040通信。例如,一个或多个提醒服务1030可被用于提供用于配置事件或呈现提醒的用户界面,在移动设备1002a和1002b之间同步事件,以及提供事件群组的共享。位置服务1040可以将一个或多个无线接入点的位置提供给移动设备1002a和1002b,或基于部分地址或社会事件确定街道地址或一组地理坐标。
移动设备1002a或1002b还可以经由一个或多个有线和/或无线网络访问其他数据和内容。例如,移动设备1002a或1002b可以访问诸如新闻网站、简易信息聚合(RSS)馈送、web站点、博客、社交网站、开发人员网站等内容发布方。这类访问可以通过响应于用户触摸例如Web对象而调用web浏览功能或应用(例如,浏览器)来提供。根据一个实施例,图11示出根据上述本发明原理的用户设备1100的示例性框图。用户设备1100的功能部件可以由硬件、软件、或硬件和软件的组合来实现。本领域技术人员将理解,图11中描述的功能部件可以被组合或被分割成子部件来实现上述的本发明的原理。因此,这里的描述可以支持任何可能的组合或分割,或是这里描述的功能部件的进一步定义。如图11所示,用户设备1100可以包括接收部件1110、定位部件1120、确定部件1130和使能部件1140。接收部件1110可以被配置为接收执行动作的请求,该请求与规定该动作将在规定的事件位置执行的激发条件相关联。定位部件1120可以被配置为基于处于用户设备的无线通信范围内的无线接入点,确定该用户设备处于一设备位置。确定部件1130可以被配置为确定事件位置和设备位置之间的距离满足阈值距离。使能部件1140可以被配置为当该阈值距离被满足时使该用户设备执行所述动作。根据一个实施例,用户设备1100可以是移动设备,并且确定事件位置和设备位置之间的距离满足阈值距离可以包括:确定该移动设备进入或离开地理围栏。根据一个实施例,地理围栏可以由纬度坐标、经度坐标和半径定义,并且阈值距离对应于所述半径。根据一个实施例,地理围栏的纬度坐标、经度坐标和半径可以通过对事件位置进行地理标记而确定。根据一个实施例,事件位置可以包括街道地址和一组地理坐标中的至少一者。设备位置可以包括纬度坐标、经度坐标和半径。确定用户设备处于该设备位置可以包括:使用该无线接入点的标识符从数据库中识别该无线接入点的接入点位置,其中所述数据库存储无线接入点的标识符以及与各个标识符分别对应的接入点位置;以及基于所识别的接入点位置确定所述设备位置的纬度坐标、经度坐标和半径。并且,确定事件位置和设备位置之间的距离满足阈值距离可以包括:确定事件位置处于从设备位置的纬度坐标和经度坐标起的半径之内。根据一个实施例,执行动作可以包括:提供用户界面项的显示而不要求用户登录用户设备。根据一个实施例,在提醒事件的同步期间可以将所述请求从服务器计算机推送至包括该用户设备的一组用户设备,其中所述服务器计算机远离该组用户设备中的每一个用户设备。根据一个实施例,执行动作可以包括:提供提醒的显示。根据一个实施例,用户设备1100可被包括在一系统中,以通过与其他设备合作来实现本发明的原理。将理解的是,尽管接收部件1110、定位部件1120、确定部件1130和使能部件1140被示出为包括在用户设备1100中,这不应当作为限制。例如,代替被包括在用户设备中,这些部件可以与用户设备分开,并且可以与任何用户设备一起使用来实现根据本发明原理的系统。 已经描述了本发明的多个实现。然而,将会理解可以作出各种修改而不背离本发明的精神和范围。
权利要求
1.一种用户设备执行的方法,所述方法包括: 接收执行动作的请求,该请求与规定该动作将在规定的事件位置执行的激发条件相关联; 基于处于用户设备的无线通信范围内的无线接入点,确定该用户设备处于一设备位置; 确定事件位置和设备位置之间的距离满足阈值距离;以及 当该阈值距离被满足时由该用户设备执行所述动作。
2.如权利要求1所述的方法,其中用户设备是移动设备,并且确定事件位置和设备位置之间的距离满足阈值距离包括:确定该移动设备进入或离开地理围栏。
3.如权利要求2所述的方法,其中地理围栏由纬度坐标、经度坐标和半径定义,并且阈值距离对应于所述半径。
4.如权利要求3所述的方法,其中地理围栏的纬度坐标、经度坐标和半径是通过对事件位置进行地理标记而确定的。
5.如权利要求1所述的方法,其中: 事件位置包括街道地址和一组地理坐标中的至少一者; 设备位置包括纬度坐标、经度坐标和半径; 确定用户设备处于该设备位置包括: 使用该无线接入点的标识符从数据库中识别该无线接入点的接入点位置,其中所述数据库存储无线接入点的标识符以及与各个标识符分别对应的接入点位置;以及 基于所识别的接入点位置确定所述设备位置的纬度坐标、经度坐标和半径;并且确定事件位置和设备位置之间的距离满足阈值距离包括:确定事件位置处于从设备位置的纬度坐标和经度坐标起的半径之内。
6.如权利要求1所述的方法,其中执行动作包括:提供用户界面项的显示而不要求用户登录用户设备。
7.如权利要求1所述的方法,其中在提醒事件的同步期间将所述请求从服务器计算机推送至包括该用户设备的一组用户设备,所述服务器计算机远离该组用户设备中的每一个用户设备。
8.如权利要求1所述的方法,其中执行动作包括:提供提醒的显示。
9.一种用户设备,包括: 接收部件,被配置为接收执行动作的请求,该请求与规定该动作将在规定的事件位置执行的激发条件相关联; 定位部件,被配置为基于处于用户设备的无线通信范围内的无线接入点,确定该用户设备处于一设备位置; 确定部件,被配置为确定事件位置和设备位置之间的距离满足阈值距离;以及 使能部件,被配置为当该阈值距离被满足时使该用户设备执行所述动作。
10.如权利要求9所述的用户设备,其中该用户设备是移动设备,并且确定事件位置和设备位置之间的距离满足阈值距离包括:确定该移动设备进入或离开地理围栏。
11.如权利要求10所述的用户设备,其中地理围栏由纬度坐标、经度坐标和半径定义,并且阈值距离 对应于所述半径。
12.如权利要求11所述的用户设备,其中地理围栏的纬度坐标、经度坐标和半径是通过对事件位置进行地理标记而确定的。
13.如权利要求9所述的用户设备,其中: 事件位置包括街道地址和一组地理坐标中的至少一者; 设备位置包括纬度坐标、经度坐标和半径; 确定用户设备处于该设备位置包括: 使用该无线接入点的标识符从数据库中识别该无线接入点的接入点位置,其中所述数据库存储无线接入点的标识符以及与各个标识符分别对应的接入点位置;以及 基于所识别的接入点位置确定所述设备位置的纬度坐标、经度坐标和半径;并且确定事件位置和设备位置之间的距离满足阈值距离包括:确定事件位置处于从设备位置的纬度坐标和经度坐标起的半径之内。
14.如权利要求9所述的用户设备,其中执行动作包括:提供用户界面项的显示而不要求用户登录用户设备。
15.如权利要求9所述的用户设备,其中在提醒事件的同步期间将所述请求从服务器计算机推送至包括该用户设备的一组用户设备,所述服务器计算机远离该组用户设备中的每一个用户设备。
16.如权利要求9所述的用户设备,其中执行动作包括:提供提醒的显示。
17.—种系统,包括: 用户设备; 接收执行动作的请求的装置,该请求与规定该动作将在规定的事件位置执行的激发条件相关联; 基于处于用户设备的无线通信范围内的无线接入点,确定该用户设备处于一设备位置的装置; 确定事件位置和设备位置之间的距离满足阈值距离的装置;以及 当该阈值距离被满足时由该用户设备执行所述动作的装置。
18.如权利要求17所述的系统,其中: 事件位置包括街道地址和一组地理坐标中的至少一者; 设备位置包括纬度坐标、经度坐标和半径; 确定用户设备处于该设备位置包括: 使用该无线接入点的标识符从数据库中识别该无线接入点的接入点位置,其中所述数据库存储无线接入点的标识符以及与各个标识符分别对应的接入点位置;以及 基于所识别的接入点位置确定所述设备位置的纬度坐标、经度坐标和半径;并且确定事件位置和设备位置之间的距离满足阈值距离包括:确定事件位置处于从设备位置的纬度坐标和经度坐标起的半径之内。
19.如权利要求17所述的系统,其中执行动作包括:提供用户界面项的显示而不要求用户登录用户设备。
20.如权利要求17所述的系统,其中在提醒事件的同步期间将所述请求从服务器计算机推送至包括该用户设备的一组用户设备,所述服务器计算机远离该组用户设备中的每一个用户设备。
21.—种包括 如权利要求9 — 16中任一项所述的用户设备的系统。
全文摘要
公开了基于位置进行提醒的方法、程序产品和系统。第一用户设备可以接收规定在给定位置呈现提醒的输入。该第一用户设备可以向服务器计算机提供包括提醒的类型和内容以及位置的提醒请求,用于推送至一个或多个用户设备。第二用户设备接收到该提醒请求后可以确定该第二用户设备的设备位置。如果所述给定位置与该设备位置相匹配,则第二用户设备可以在用户界面内呈现所述提醒。
文档编号H04W4/02GK103248999SQ20131004278
公开日2013年8月14日 申请日期2013年2月1日 优先权日2012年2月2日
发明者C·J·雷博兰斯, C·S·利纳, J-P·E·卡弗罗, L·杜塔, S·U·谷拉卡塔 申请人:苹果公司