CN107690666A - 用于日历事件的行程更新 - Google Patents

用于日历事件的行程更新 Download PDF

Info

Publication number
CN107690666A
CN107690666A CN201680033164.1A CN201680033164A CN107690666A CN 107690666 A CN107690666 A CN 107690666A CN 201680033164 A CN201680033164 A CN 201680033164A CN 107690666 A CN107690666 A CN 107690666A
Authority
CN
China
Prior art keywords
event
time
equipment
estimation
instruction set
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201680033164.1A
Other languages
English (en)
Inventor
C·B·姆茨盖维瑞恩
S·艾德勒
V·米拉迪诺夫
M·B·波尔
C·Y·崔布雷
T·瓦格纳
K·塞恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Priority to CN202110016094.1A priority Critical patent/CN112700224A/zh
Publication of CN107690666A publication Critical patent/CN107690666A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • G06Q10/1093Calendar-based scheduling for persons or groups
    • G06Q10/1095Meeting or appointment
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/024Guidance services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/025Services making use of location information using location based information parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0225Power saving arrangements in terminal devices using monitoring of external events, e.g. the presence of a signal
    • H04W52/0229Power saving arrangements in terminal devices using monitoring of external events, e.g. the presence of a signal where the received signal is a wanted signal
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Automation & Control Theory (AREA)
  • Navigation (AREA)

Abstract

本发明提供了一种为存储在设备的日历应用程序中的事件提供行程更新的方法。该方法在设备的导航应用程序处从日历应用程序接收事件的位置和开始时间。该方法确定从设备的当前位置到事件的位置的估计的行程时间。该方法基于估计的行程时间来确定及时前往事件的时间。该方法向日历应用程序提供包括及时前往的时间的多个行程更新。日历应用程序利用行程更新来提供关于及时前往事件的时间的一组警报。

Description

用于日历事件的行程更新
背景技术
日历应用程序被广泛用于电子设备中以跟踪约会。日历提供了一个或多个时间段(诸如年、月、周、日和小时)的视觉表示。
如今许多电子设备诸如平板电脑、智能电话、笔记本电脑和台式计算机都提供日历应用程序。一个或多个用户的不同的设备上的日历可以是同步的。用户可以在他们的日历上安排事件,并且可请求在事件开始时或者在事件开始之前的固定时间段通知他们即将到来的事件。用户还可以请求再次显示日历通知,例如,通过选择延时按钮。
随着这些日历应用程序变得越来越普遍,需要为应用程序提供附加的特征和进一步的改进。然而,附加特征会导致功率消耗的增加。由于如今许多电子设备是便携式设备,因此希望这些设备上的不同的应用程序以高功效模式操作。
发明内容
一些实施方案提供了一种用于识别设备日历中的事件位置的新方法,并且提供了离开时间的警报,以便准时参加事件。当准时参加活动具有高置信度时,则可以提供离开时间警报。
在一些实施方案中,日历中的事件可以手动输入,或者从邀请、电子邮件、文本消息等提供的信息中自动获取。当事件与地址相关联时,该地址被解析为唯一地识别事件位置的确切地址。日历应用程序接收唯一地识别事件位置的句柄。在一些实施方案中,位置句柄是由日历应用程序存储的二进制大对象。在一些实施方案中,位置句柄的内容对日历应用程序是不透明的并且日历应用程序不使用句柄中的单独数据项。相反,日历应用程序将句柄传递至其他应用程序和服务以便为其他应用程序和服务提供事件的位置。例如,日历应用程序在事件开始之前将位置句柄传递至导航守护进程,并请求实时行程更新,诸如准时离开时间、交通报告等。
当日历应用程序请求接收事件的行程更新时,导航守护进程在从接收到日历应用程序的请求直到设备到达事件位置时的时间段或者直到事件结束时的时间段内提供若干更新。行程更新需要利用功率消耗任务来确定设备的当前位置、设置到事件位置的路线、访问不同的数据库、利用网络资源等。
在一些实施方案中,导航应用程序实现了用于生成事件的离开时间和其他数据项的若干新型功率节省技术。功率节省技术包括使用用于估计以提供下次行程更新的时间的高效方法。功率节省技术还包括请求不太精确的位置(例如,使用WiFi而不是GPS确定的位置),与其他应用程序共享位置和路线信息,以及使用灵活的定时器休眠唤醒以提供下一次更新。为了节省功率,灵活的定时器允许设备同时同步唤醒需要相同资源(例如,位置确定、路线确定、网络请求)和/或相同数据项(例如,设备的当前位置、设备的当前路线)的若干应用程序。
上述发明内容旨在用作对本发明的一些实施方案的简单介绍。其并非意味着对在本文档中公开的所有发明主题的介绍或概述。随后的具体实施方式以及在具体实施方式中所参照的附图将进一步描述发明内容中所述的实施方案以及其他实施方案。因此,为了理解该文档所描述的所有实施方案,需要全面审阅发明内容、具体实施方式和附图。此外,受权利要求书保护的题材不受发明内容、具体实施方式及附图中的示例性细节限制,而是由所附权利要求书限定,这是因为受权利要求书保护的题材在不脱离本题材的实质的情况下能够以其他特定形式体现。
附图说明
在所附的权利要求中阐述了本发明的新特征。然而,出于说明的目的,在以下附图中阐释了本发明的若干实施方案。
图1概念性地示出了在一些实施方案中具有日历和导航应用程序的移动设备的示例。
图2概念性地示出了在一些实施方案中用于通过设备的日历应用程序生成离开时间警报的过程。
图3概念性地示出了在本发明的一些实施方案中日历应用程序与设备的其他应用程序和服务的交互作用。
图4概念性地示出了在一些实施方案中包括手动输入的约会和自动检测到的事件的日历的每日视图。
图5概念性地示出了在一些实施方案中由日历应用程序执行的解析位置地址的过程。
图6概念性地示出了在一些实施方案中从地理编码器接收的事件位置的数据项以及被发送至日历应用程序的相关联的位置句柄的示例。
图7概念性地示出了在一些实施方案中用于从日历应用程序向导航服务发送事件信息以及从导航服务接收离开时间警报和其他行程更新的过程。
图8概念性地示出了在一些实施方案中为日历事件提供实时行程更新的导航应用程序的服务。
图9概念性地示出了在一些实施方案中的假设数据结构。
图10概念性地示出了在一些实施方案中从设备的当前位置到事件位置的估计行程时间的不同部分。
图11概念性地示出了在一些实施方案中从设备的当前位置到事件位置的不同人的行程时间的分布。
图12A和图12B概念性地示出了在本发明的一些实施方案中用于估计行程时间的过程。
图13A至图13B概念性地示出了在一些实施方案中用于通过日历应用程序提供离开时间警报的过程。
图14A至图14B概念性地示出了在一些实施方案中用于生成事件假设的过程。
图15概念性地示出了在一些实施方案中用于确定下次为事件假设提供更新的时间的函数。
图16概念性地示出了在一些实施方案中出发前往事件之前的剩余空闲时间。
图17是一些实施方案中的移动计算设备的架构的示例。
图18概念性地示出了用于实现本发明的一些实施方案的电子***的另一个示例。
具体实施方式
在本发明的以下具体实施方式中,提出并描述了本发明的许多细节、示例和实施方案。然而,对于本领域的技术人员来说将清楚和显而易见的是,本发明并不限于所陈述的实施方案,并且本发明可在没有使用所讨论的一些具体细节和示例的情况下被实施。例如,出于简单和/或解释的目的,相对于特定数量的设备对本申请的许多附图进行描述。本领域的普通技术人员将认识到,本发明不限于在这些附图中示出的设备的数量,并且本发明可利用任何数量的不同设备来实践。
在一些实施方案中,移动设备是具有位置识别、地图绘制、路由和日历服务的智能电话、平板电脑或膝上型电脑。设备上的日历应用程序保持即将到来的约会和事件的列表。与事件(或约会)相关联的地址字符串被解析为唯一地识别事件位置的一组位置数据项。日历应用程序向导航应用程序提供唯一的地址,并请求接收实时行程更新,诸如从设备的当前位置到事件位置的估计行程时间和/或为了准时参加事件的离开时间。在一些实施方案中,导航应用程序提供附加的实时信息,诸如设备用户是否来得及参加事件、当前交通状况、沿线的事故等。
图1概念性地示出了在一些实施方案中具有此类服务的移动设备100的示例。移动设备的示例为智能电话、触摸板、膝上型电脑、个人数字助理(PDA)设备等。如图所示,设备100包括日历应用程序145、事件获取器110、地理编码器接口130、用户界面(UI)140、地图绘制服务接口150、导航引擎165、导航守护进程105、交通工具接口160、核心例程170、设备位置识别引擎175以及一组应用程序115,诸如电子邮件(email)应用程序、文本即时消息应用程序等。此外,设备包括获取事件存储装置(例如,数据库)120。为简单起见,未示出设备的其他组件。
日历应用程序145提供了一个或多个时间段(诸如年、月、周、日和小时)的视觉表示。日历应用程序允许设备保持不同约会、会议、提醒、事件等事件列表。由日历应用程序保持的这些约会、会议、提醒、事件等中的每者在本文中被称为“事件”。在一些实施方案中,日历中的事件通过UI 140手动输入或者通过事件获取器110自动检测。事件获取器110从由一个或多个应用程序115供应的内容中获取事件。获取的事件被存储在获取事件存储装置120中。在一些实施方案中,事件获取器在日历中输入获取的事件。在其他实施方案中,日历应用程序从事件获取器110和/或获取事件存储装置120检索获取的事件。
许多事件都与地址相关联。例如,地址获取器可能已经识别了具有包括在餐厅共进晚餐的邀请的消息的电子邮件。该消息还可包括时间和日期,以及餐厅的名称和所在的城市。事件获取器识别与事件相关联的地址并将该地址存储在获取事件存储装置120中或存储在单独的获取地址存储装置(未示出)中。
与事件相关的地址可能不完整或不明确。日历应用程序145将事件地址发送至地理编码器接口130。地理编码器接口请求地理编码器服务(例如,一个或多个服务器的外部组)以确定该地址是否可被明确地解析。对于可被明确解析为唯一位置的地址,地理编码器接口从地理编码器接收一组数据项。地理编码器接口130提取关于事件位置的相关信息,并将该信息置于位置句柄中传递至日历。
在一些实施方案中,位置句柄是由日历应用程序存储的二进制大对象。在一些实施方案中,位置句柄的内容对日历应用程序是不透明的并且日历应用程序不使用句柄中的单独数据项。相反,日历应用程序将句柄传递至其他应用程序和服务以识别事件的位置。例如,日历应用程序145在事件开始之前将位置句柄传递至导航守护进程105,并请求实时行程更新,诸如一个或多个估计行程时间、估计离开时间、交通报告等。
导航守护进程105与设备上的其他应用程序和服务(诸如地图绘制服务接口150、交通工具接口160、设备位置识别引擎175和导航引擎165)进行交互以设置到事件位置的路线,接收交通和事故报告,估计行程时间等。导航守护进程生成估计行程时间的报告(称为假设)以及任选地交通和事故报告。在一些实施方案中,当导航守护进程生成与事件位置相关的报告时,日历应用程序订阅(或注册)以悉知。例如,日历应用程序利用用于进程间通信的应用编程接口(API)请求事件的行程更新并从导航守护进程接收事件假设。导航守护进程在事件持续期间生成若干这样的报告。报告以基于到事件开始的剩余时间量、交通状况等动态确定的时间间隔提供。在一些实施方案中,请求接收这些更新的任何其他应用程序都可注册以接收来自导航守护进程的更新。
在一些实施方案中,地图绘制服务接口150从一组外部服务器(诸如,一个或多个地图服务服务器)接收路线信息以及诸如交通拥堵数据、事故数据、道路封闭数据和天气报告等其他信息。在一些实施方案中,路线生成是在设备100上执行以产生路线的路由引擎。在其他实施方案中,地图绘制服务接口150使用连接到设备的一个或多个服务器上的路线生成器来生成路线。
不同的实施方案使用不同的位置识别引擎175。在一些实施方案中,该引擎包括使用GPS数据识别设备的当前位置的全球定位***(GPS)引擎。在这些实施方案中的一些实施方案中,该引擎利用其他陆地跟踪数据(诸如三角蜂窝塔数据、三角无线电塔数据以及与已知接入点的相关性(例如,小区ID、Wi-Fi ID/网络ID))增强GPS数据,以提高所识别的位置的准确性。此外,一些实施方案使用一种或多种类型的陆地跟踪数据而不使用GPS数据。
在一些实施方案中,请求设备位置的应用程序指定设备位置所需的精度水平(例如,高精度、中精度或低精度)。设备位置识别引擎175利用所需的精度水平来优化功耗。例如,为了节省功率和处理资源,导航守护进程请求设备位置的低精度估计,以计算到事件位置的行程时间。当所需精度水平较低时,设备位置识别引擎175可使用需要更少功率并且具有比GPS更低的精度的WiFi位置确定方法。在一些实施方案中,设备位置识别引擎175合并来自设备上的若干应用程序的对设备位置的请求。在这些实施方案中,如果已经为另一个应用程序执行了更高精度的GPS定位,则相同的位置数据也被提供至其他应用程序和服务,诸如导航守护进程。否则,则使用低精度、低功耗的方法(诸如WiFi)来确定设备位置。
当设备从一个位置导航至另一个位置时,导航引擎165提供逐向导航方向。在一些实施方案中,导航引擎165在内部生成导航指令。在其他实施方案中,导航引擎165从一组一个或多个外部服务器接收这些指令。
交通工具接口160与交通工具中的不同***进行交互,并被导航守护进程105用来确定设备是否在交通工具内部。如下文所进一步描述的,参加事件的行程时间的一部分包括步行至停放的交通工具。一旦导航引擎165确定设备正在与交通工具进行交互,导航守护进程105推断设备用户已经完成至交通工具的步行。此外,在一些实施方案中,导航守护进程105利用设备与汽车的交互确定设备用户已经出发前往事件。
导航守护进程105还与核心例程170进行交互以接收目的地预测。核心例程170利用来自设备(或设备用户)的先前行程的历史数据并对设备可能前往的下一个目的地进行静态预测。导航守护进程利用核心例程的静态预测作为若干因素之一生成目的地预测,该预测基于诸如设备是否正主动地导航至目的地、沿着特定路线行进或者朝着日历中指定的事件前进等因素。在一些实施方案中,导航守护进程权衡从核心例程接收的目的地预测、由导航引擎当前导航的目的地(如果有的话)、日历中的事件以及与交通工具进行交互而得出的实时目的地预测。下文描述了这些实施方案和若干个更多实施方案的细节。
在下面的章节中描述了本发明的若干更详细的实施方案。部分I概念性地描述了根据本发明的一些实施方案确定日历事件的位置。接下来,部分II描述了根据本发明的一些实施方案的日历应用程序与导航守护进程之间的交互以生成即将到来的事件的离开时间警报。接下来,部分III描述了根据本发明的一些实施方案的导航守护进程所利用的功率节省技术的细节。最后,部分VI描述了实现本发明的一些实施方案的电子***。
I.确定日历事件的位置
日历中的事件通常与地址相关联。地址可能指的是部分地址、企业或位置名称或者是不明确的地址。日历应用程序将这些地址(例如,通过使用地理编码器服务)解析为唯一识别的位置。在与唯一识别的位置相关联的事件开始之前的一段时间内,日历应用程序将事件位置发送至导航服务,并请求接收准时离开时间、到事件的行程时间以及其他与行程相关的信息诸如到事件的沿线的交通状况和事故报告的定期估计。
在接收到定期更新时,日历应用程序使用不同的启发式方法在不同的时间生成通知设备用户为了准时参加事件的离开时间的警报以及通知用户他/她已经来不及参加该事件的警报。与在事件之前或之后的固定时间段生成日历警报的现有技术不同,在一些实施方案中,日历应用程序接收取决于到事件的距离、交通和天气状况、事故等的实时行程时间更新。
图2概念性地示出了在一些实施方案中用于通过设备的日历应用程序生成离开时间警报的过程200。如图所示,该过程接收(在205处)具有相关联的地址字符串的事件。例如,该事件为自动获取的事件、手动输入的事件或设备用户接受的邀请。
该过程随后将与事件相关联的地址字符串提供(在210处)至诸如地理编码器的服务以唯一地识别事件位置。该过程随后接收(在215处)到与事件位置相关联的一组数据项的句柄。在事件开始之前,该过程将位置句柄和事件的开始时间发送(在220处)至导航服务,并且请求离开时间和/或到事件的估计行程时间的更新。该过程随后在若干不同时间从导航应用程序接收(在225处)离开时间和/或到事件位置的估计行程时间的更新。随后,该过程结束。下文进一步提供了过程200的不同操作的细节。
A.事件的获取
图3概念性地示出了在本发明的一些实施方案中日历应用程序与设备的其他应用程序和服务的交互作用。如图所示,日历应用程序145从不同的源接收事件。设备用户通过设备UI 140手动输入事件(例如,约会、会议、提醒、事件等)。设备用户还通过日历接受来自其他人的邀请。其中一些约会和事件还通过其他设备同步。
事件获取器110获取事件并将这些地址存储在获取地址数据存储装置120中。在不同的实施方案中,事件获取器以不同的方式捕获事件。例如,在一些实施方案中,事件获取器从一个或多个应用程序115(例如,电子邮件应用程序、文本即时消息应用程序等)接收电信消息(例如,电子邮件消息、文本消息等),分析这些消息,提取它在这些消息中找到的任何事件,并将事件数据(例如,事件的名称、位置、时间和/或参与者)存储在获取事件数据存储装置120中。
在一些实施方案中,应用程序115仅将所接收的电信消息提供至获取器110。在其他实施方案中,应用程序115仅将传送的电信消息提供至获取器110。在其他实施方案中,应用程序115将所发送的和所接收的电信消息两者提供至获取器110。
除了此类事件之外,获取器110还通过行程安排应用程序存储指定事件的地址。特别地,在一些实施方案中,获取器110直接接收事件和地址以从行程安排应用程序(例如,另一台设备的日历、电子票务应用程序、在线邀请应用程序等)获取。例如,当一些实施方案的电子票务应用程序具有事件门票时,其将事件数据项提供至事件获取器110以存储在获取事件存储装置120中。在一些实施方案中,事件获取器110将获取的事件提供至日历应用程序145。在其他实施方案中,日历应用程序从事件获取器和/或获取事件存储装置120检索事件。
在一些实施方案中,日历应用程序区分由人类(即,设备用户)输入的或明确接受的事件以及自动获取的事件。例如,在一些实施方案中,自动获取的事件以不同的颜色显示和/或在用户发起事件之前不同步到其他设备。
图4概念性地示出了在一些实施方案中包括手动输入的或接受的约会和自动检测到的事件的日历的每日视图。许多日历应用程序允许用户根据不同的时间布局(诸如月布局、周布局、日布局等)查看他们的约会。这些视图或布局中的每一个都提供了不同时间范围的不同水平的细节。如该图所示,GUI 400包括日历视图选择器410、日期选择器405和日历显示区域425。
在图4所示的示例中,每日日历布局400包括两个约会项(或事件)420和430。约会项420是由设备用户手动输入的,而约会项430是自动获取的事件。约会项430(其未被用户确认)具有与约会项420不同的视觉外观(例如,以不同的字体、不同的颜色、不同的明暗程度示出),以将约会项430区分为自动获取的事件。
一些实施方案不会在用户的不同设备之间同步自动获取的事件直到用户发起事件。例如,在一些实施方案中,警报用户确定是否保持此类事件和/或是否在不同设备之间对它们进行同步。在一些实施方案中,日历UI400为用户提供禁用个别事件、一类事件(例如,自动获取的事件)或所有事件的离开时间警报的工具。在一些实施方案中,UI还提供用于删除一些或全部自动获取的事件或禁用(暂时或永久)自动获取的事件的工具。
B.将不明确的地址转换为明确的规范形式
如图4所示,约会420和430分别具有相关联的位置“Los Encinos历史公园”和“Luigi's Trattoria,Encino”。然而,这两个地址识别位置名称并且可能是不明确的。例如,可能存在多个名称为“洛杉矶恩西诺历史公园”的公园或多家名称为“Luigi'sTrattoria”的餐厅。如图3所示,日历应用程序145通过地理编码器接口130将与事件位置相关联的地址字符串发送至诸如地理编码器的服务,以将事件位置解析为明确的、唯一识别的位置。地理编码器是一种使用不同启发式方法解析地址的服务。例如,在恩西诺市可能只存在一家名称为“Luigi's Trattoria”的餐厅。类似地,在设备的当前位置周围的预先确定的地理区域中可能只存在一个名称为“洛杉矶恩西诺历史公园”的公园,或者在存储公园名称的数据库只存在一个该名称的公园。在一些实施方案中,此类唯一的位置被称为规范地址。规范地址从其他位置中唯一地识别该位置。
图5概念性地示出了在一些实施方案中由日历应用程序执行的解析位置地址的过程500。如图所示,该过程接收(在505处)具有相关联的地址字符串的事件。该过程随后将与事件相关联的地址字符串提供(在510处)至诸如地理编码器的服务以将该地址字符串解析为唯一的位置。该过程确定(在515处)地址字符串是否可以被解析为唯一的位置的地址。在一些实施方案中,如果地理编码器能够明确地将地址字符串解析为唯一的位置,则地理编码器仅返回位置。例如,如果地址字符串是梅因街100号,则地理编码器可找到该地址的许多匹配项。另一方面,圣马特奥梅因街100号可解析为唯一的位置。
如果地理编码器不返回位置,则该过程确定(在520处)该地址不能被唯一地解析。否则,该过程接收(在525处)事件位置的句柄(例如,如图3所示)。该过程存储(在530处)事件位置的句柄。随后,该过程结束。
在一些实施方案中,由地理编码器返回的事件的解析地址包括许多不同的数据项。日历应用程序可能不会使用这些数据项中的一些数据项。其他数据项可能在事件未决期间发生改变。在一些实施方案中,日历应用程序接收两组数据项。一组数据项是不透明的事件位置句柄。在一些实施方案中,事件位置句柄是二进制大对象(blob),其包括其他应用程序和服务所需的数据项以提供日历应用程序的与事件相关的报告。
例如,导航守护进程从日历应用程序接收事件位置句柄,并提取导航守护进程(或导航守护进程使用的服务)所需的位置数据项以生成事件的行程更新。换句话讲,地理编码器接口130包括日历应用程序外部的服务所需的位置句柄中的数据项。为了将句柄发送至其他应用程序,日历应用程序存储该句柄。日历应用程序将句柄发送至诸如导航守护进程的服务,以请求对事件位置进行行程更新。在一些实施方案中,位置句柄的内容对日历应用程序是不透明的,并且位置句柄中的单独数据项不是单独使用的和/或为未知的或日历应用程序无法使用的格式。另一方面,日历应用程序所需的单独位置数据项由地理编码器接口130发送至与位置句柄分开的日历应用程序145。
图6概念性地示出了从地理编码器接收的事件位置的数据项以及被发送至日历应用程序的相关联的位置句柄的示例。如图所示,位置数据项601包括地理坐标,即事件位置的纬度620和经度625。数据项还包括以下各项中的一个或多个:区域630(例如,围绕事件位置或包括事件位置的较大区域的圆的中心坐标和半径),事件位置635的街道地址,与该位置相关联的一个或多个电话号码640,该位置的名称645,该位置的入口点650(例如,到大型建筑物、公园、体育场等的不同入口点),不同社交网站或由不同的人提供的对该位置的评论655,事件位置或附近位置的一个或多个照片660,访问与该位置相关联的一个或多个网站665的链接,该位置的企业类别670,用户在该位置可使用的应用程序675(例如,下载优惠券以获得折扣),该位置附近的一组感兴趣的点680等。
诸如评论655、网站665、电话号码640、照片660或相关联的应用程序675的这些数据项中的许多数据项可在事件的未决期间改变或得到更新。此外,日历应用程序或由日历应用程序使用的服务可能不需要这些数据项中的大部分数据项。由于日历项经常在用户的不同设备之间同步,所以在不同设备之间同步大量数据项是非常耗时的。此外,如果日历存储与事件相关联的所有数据项601,则一旦发生更新,该信息就失效。
在一些实施方案中,日历应用程序仅接收位置句柄602,该位置句柄包括日历应用程序和日历应用程序外部的服务所需的为日历中的事件提供基于位置的服务的位置数据项的最小子组。日历应用程序存储位置句柄并将其发送至这些应用程序和服务(例如,导航守护进程)以获取与事件位置相关的报告和行程更新。在一些实施方案中,地址句柄是诸如blob的数据结构,并且blob中包括的数据项不被日历应用程序单独使用(或者blob是日历应用程序未知的格式)。换句话讲,地理编码器接口130知道导航守护进程或其他应用程序需要什么数据项来向日历应用程序提供基于位置的服务,并将这些数据项***到位置句柄blob中。当日历应用程序请求对位置进行行程更新时,日历应用程序存储位置blob并将其发送至例如导航守护进程。
句柄的内容取决于诸如导航守护进程的应用程序所需的为日历应用程序提供基于位置的服务数据项。在一些实施方案中,句柄的内容包括诸如纬度620、经度625和区域630的数据项。如果日历应用程序需要供日历应用程序内部使用的事件位置数据项601中的任一个数据项,则单独的数据项从地理编码器接口130发送至与事件句柄位置分开的日历应用程序。
如图6所示,日历应用程序145接收两组数据项。事件位置句柄602包括一组对日历应用程序不透明的数据项。日历应用程序存储事件位置句柄602,以便在需要对事件位置进行行程更新时将其发送至导航守护进程。另一组数据项605至610是日历应用程序145需要单独访问的数据项。这些数据项605至610可能或者可能没有与事件位置句柄中的数据项重叠。例如,事件位置句柄602和数据项615两者都可包括纬度、经度和地区数据项。
事件位置句柄中包括的数据项对日历应用程序是不透明的并且不被日历应用程序单独使用,而日历应用程序会使用数据项605至610。作为示例,在一些实施方案中,日历应用程序出于兼容性的目的而存储纬度和经度,以将数据与不具有类似于导航守护进程的服务的设备同步(例如,具有较旧版本操作***的用户的另一个设备)。作为另一个示例,用户的另一个设备可删除位置句柄。在这种情况下,可使用单独存储的纬度和经度来设置到事件位置的路线。
II.提供离开时间警报
对于具有明确位置的事件,日历应用程序提供离开时间警报以确保设备用户离开设备的当前位置以准时参加事件。重新参照图3,日历应用程序145在事件之前的预先确定的时间向导航守护进程(或服务)105发送诸如位置句柄和事件开始时间的事件数据,并且请求离开时间估计。
在一些实施方案中,日历应用程序还发送附加数据项,诸如事件持续时间(或另选地事件结束时间)和交通工具。例如,在一些实施方案中,日历应用程序为设备用户提供用于指定交通工具(诸如驾车或步行至事件)的工具。当到事件的交通工具可用时,日历应用程序将该信息发送至导航守护进程。否则,导航守护进程利用启发式方法和历史数据来确定到事件的交通工具。导航守护进程105(在内部和/或通过从外部服务器接收数据)确定估计的离开时间和/或从设备的当前位置到事件位置的行程时间,并将它们提供至日历应用程序。导航守护进程提供实时更新,其更新频率是基于不同的因素(诸如到事件开始的剩余时间、交通状况、天气状况、路线上的事件等)动态确定的。
A.在日历和导航应用程序之间建立通信信道以确定事件的估计离开时间
图7概念性地示出了在一些实施方案中用于从日历应用程序向导航服务发送事件信息以及从导航服务接收离开时间警报和其他行程更新的过程700。如图所示,在事件开始之前,日历应用程序将位置信息(例如,位置句柄)和事件的开始时间发送(在705处)至诸如导航应用程序的应用程序(例如,发送至诸如由导航应用程序提供的导航守护进程105的服务)。例如,在事件开始之前的预先确定的时间(诸如4小时、2小时、1小时等),该过程将事件信息发送至导航应用程序。该过程还任选地将事件持续时间(或结束时间)发送至导航应用程序。该过程还任选地将交通工具(如果已知的话)发送至导航应用程序。
该过程随后通过导航应用程序订阅(在710处)关于事件的一组行程更新。例如,在一些实施方案中,日历应用程序利用用于进程间通信的API从导航守护进程接收数据结构(诸如事件假设)中的数据(如图3所示)。在其他实施方案中,当导航应用程序具有关于事件的已更新的信息时,日历应用程序获得通知(例如,被唤醒或接收中断)。
该过程随后在不同时间从导航应用程序接收(在715处)一个或多个实时行程更新,诸如准时参加事件的离开时间以及任选地迟到警报、交通状况、天气状况、事故报告等。在一些实施方案中,该过程接收(包括离开时间估计或者代替离开时间估计)从设备的当前位置到事件位置的估计行程时间。在这些实施方案中,日历应用程序通过从事件的开始时间减去行程时间来计算离开时间。该过程随后提供(在720处)一组警报(如图3所示)以通知设备用户出发前往事件位置以便准时参加事件,以及当用户已经来不及参加事件时的警报、交通状况、事故报告等。
图8概念性地示出了在一些实施方案中为日历事件提供实时行程更新的导航应用程序的服务。如图所示,导航服务(称为导航守护进程或NAVd)105从一个或多个其他应用程序(诸如导航引擎165、核心例程170、交通工具接口160、日历145、地图绘制服务接口150以及设备位置识别引擎175)接收数据。导航守护进程选择性地使用从这些应用程序中的一个或多个应用程序所接收的信息,并向订阅接收目的地预测或事件假设的应用程序830提供目的地预测和事件假设。
核心例程170利用来自设备的先前行程的历史数据并且基于设备的当前位置对设备可能前往的下一个目的地进行静态预测。在一些实施方案中,核心例程不考虑设备当前是否正沿着特定方向移动。然而,一些应用程序可能需要更精确的目的地预测。这些应用程序订阅由导航守护进程105提供的目的地预测。
除了核心例程的静态目的地预测之外,导航守护进程105还与其他应用程序进行交互以提供实时目的地预测。当设备正主动导航至目的地(即,设备用户已经输入了目的地并且已经请求了到目的地的导航方向)时,导航守护进程105从导航引擎165接收目的地信息。在一些实施方案中,该目的地取代任何其他目的地预测,因为该目的地是设备用户所寻求的实际目的地。
此外,导航守护进程105从交通工具接口160接收关于设备是否位于交通工具中的指示。交通工具接口160与交通工具中的不同***进行交互,并被导航守护进程用来确定设备位于交通工具内部。例如,在一些实施方案中,交通工具接口160通过诸如蓝牙的近程通信协议与交通工具***通信。此类通信被用作指示设备位于交通工具内部,以及例如设备用户不再朝着交通工具步行。如下文所进一步描述的,参加事件的行程时间的一部分包括步行至停放的交通工具。一旦导航引擎165确定设备正在与交通工具进行交互,导航引擎165推断设备用户已经到达交通工具。在一些实施方案中,当确定设备位于交通工具内部时,导航守护进程确定设备的用户已经遵从了离开时间警报。
导航守护进程105还从日历应用程序接收事件位置,该事件位置被用作预测设备的下一个目的地的另一个因素。在一些实施方案中,导航守护进程权衡从核心例程接收的目的地预测、由导航引擎当前导航的目的地(如果有的话)、日历中的事件、与交通工具的交互等从而得出设备的当前目的地的实时预测。
作为单独的服务,导航守护进程105提供到不同位置的行程更新。诸如日历应用程序的应用程序向导航守护进程提供事件数据,诸如位置、开始时间、持续时间和交通工具(如果已知的话),并请求到该位置的行程更新。请求应用程序随后订阅由导航守护进程提供的到事件位置的实时行程更新。在一些实施方案中,导航守护进程从设备位置识别引擎175接收设备的当前位置。导航守护进程还从地图绘制服务接口150请求从当前设备位置到事件位置的路线。在一些实施方案中,导航守护进程还从地图绘制服务接口请求估计的离开时间和/或估计的行程时间。在一些实施方案中,导航守护进程指定用于计算离开时间的置信度的百分比,以便得到用户准时参加事件的高百分比(例如,80%、90%、95%等)。在其他实施方案中,估计离开时间或到事件的行程时间的服务器被编程为提供此类高置信度估计。地图绘制服务接口150将路线请求和离开时间和/或行程时间请求发送至一组外部服务器,并将响应提供至导航守护进程。在一些实施方案中,导航守护进程基于其他信息(诸如当前交通状况和从当前设备位置到事件位置的沿线上的任何事故)进一步更新估计的离开时间。
导航守护进程随后向日历应用程序145提供离开时间。导航引擎165向导航守护进程105提供(例如,通过一个或多个外部服务器)交通状况、天气状况、道路封闭报告、事件/事故报告等。导航守护进程105将离开时间和其他任选的数据项诸如交通信息、天气信息、道路封闭、交通事故等存储在本文中称之为假设的数据结构中。导航守护进程向已订阅接收事件行程更新的应用程序(诸如日历应用程序)提供假设。
图9概念性地示出了在一些实施方案中的假设数据结构(或对象)。如图所示,事件假设900包括若干数据项915至975。事件开始时间915是由导航守护进程监视的事件的开始时间。建议的离开日期(或离开时间)920是建议的出发日期和时间,其提供了使大部分用户准时参加事件的置信度的预定水平。建议的离开时间是事件开始时间915与从设备的当前位置(起始位置940)到事件位置的估计行程时间之间的差值。
当正在驾驶交通工具时,一些实施方案考虑除了驾车时间之外的附加因素来计算行程时间。例如,一些实施方案考虑设备用户步行至停放的交通工具所花费的时间以及将交通工具停放在目的地的时间以及步行至该事件的时间。此外,在一些实施方案中,导航守护进程调整从外部服务器接收的离开时间以考虑当前交通和事故状况。
B.确定到事件的总行程时间
图10概念性地示出了在一些实施方案中从设备的当前位置到事件位置的估计行程时间的不同部分。如图所示,行程时间1040包括三个部分。第一部分是步行至交通工具的时间1005,该时间从设备用户在当前设备位置出发的时间1020开始直到设备到达交通工具的时间1025。
行程时间1040的下一部分是交通(或驾车)时间1010,该时间从设备用户到达交通工具的时间1025直到交通工具到达驾车目的地的时间1030。行程时间1040的最后部分是停放交通工具和步行至事件的时间1015,该时间从交通工具到达驾车目的地的时间1030到设备到达(例如,设备用户步行进入)事件位置的时间1035。
在一些实施方案中,行程时间1040被估计使得它让大部分用户能够准时参加活动。与计算从当前设备位置到事件位置的行程的平均时间或中值时间不同(从下半部分将数据样本、人口或行程时间的分配的上半部分分开的数字),导航守护进程提供了保证比用户准时参加事件的平均概率更高的百分比(例如,95%的概率)的行程时间。具有使用户准时参加事件的预先确定的高置信度百分比的行程时间考虑到驾车(或步行)比平均值慢的驾驶员(或步行者)以及寻找停车位置并且步行至事件位置的附加时间。
此外,在一些实施方案中,导航守护进程提供了迟到离开日期925(图9所示),其指示如果此时用户还没有开始朝着事件位置移动,则设备用户将很有可能来不及参加事件。为了确定迟到离开日期925,导航守护进程提供了仅使小部分用户(例如,预先确定的百分比,诸如驾车或步行速度比平均值更快的5%用户)准时到达的“迟到离开时间”。
图11概念性地示出了在一些实施方案中从设备的当前位置到事件位置的不同人的行程时间的分布1100。如图所示,准时到达的估计行程时间1105具有高百分比的准时到达事件位置的用户(例如,预先确定的百分比诸如95%的用户)。图9中的建议的离开日期(或离开时间)920是事件开始时间915减去高置信度估计行程时间1105。
相比之下,迟到的估计行程时间1110(比估计的行程时间1105更短)仅使得5%的用户准时参加事件。迟到离开日期925是事件开始时间915减去低置信度估计行程时间1110。这是日历应用程序可以以高置信度水平向用户提供警报的离开时间,即此时大部分用户将来不及参加事件。
图12A和图12B概念性地示出了在本发明的一些实施方案中用于估计行程时间的过程1200。在一些实施方案中,过程1200由诸如导航守护进程105的服务来执行。如图所示,该过程确定(在1205处)交通模式(例如,图9中的交通类型945)是否为驾车。如果不是,该过程确定(在1210处)从当前设备位置到事件位置的估计步行时间。在一些实施方案中,过程1200将设备的当前位置和事件的位置提供至一组一个或多个外部服务器(例如,通过地图绘制服务接口150)以确定并发回步行至事件位置的时间。在其他实施方案中,过程1200无需使用外部服务器来确定估计的步行时间。随后,该过程结束。
当交通模式为驾车时,该过程确定(在1215处)交通工具位置是否已知。例如,在一些实施方案中,设备包括确定(例如,通过与上述交通工具接口160进行交互)设备是否位于交通工具内部或设备在什么位置离开交通工具的服务。该位置被存储为交通工具停放的可能位置。在其他实施方案中,设备包括与导航引擎(165)进行交互以确定设备是否正导航至目的地的服务,并且一旦设备到达目的地,则将最终目的地存储为交通工具停放的可能位置。
当交通工具的位置已知时,该过程确定(在1220处)从设备的当前位置步行至交通工具位置的估计时间。在一些实施方案中,过程1200将当前设备位置和交通工具的位置提供至一组一个或多个外部服务器以确定并发回步行至交通工具的时间。在其他实施方案中,过程1200无需使用外部服务器来确定到交通工具的估计步行时间。该过程随后继续下述1230。
当交通工具的位置未知时,该过程使用(在1225处)预先确定的时间量作为从当前设备位置到交通工具的估计时间。该过程随后确定(在1230处)到事件位置的估计驾车时间(例如,如参照图11中的行程时间1105所述)使得准时到达目的地的概率高于预先确定的阈值(例如,85%、90%、95%等)。在一些实施方案中,过程1200将交通工具位置和事件位置提供至一组一个或多个外部服务器以确定并发回到事件位置的驾车时间。在一些实施方案中,该过程还向该组服务器提供所请求的置信度水平(如上所述),以获得用户准时到达事件的高百分比。在其他实施方案中,服务器被预编程以提供此类高置信度估计。在一些实施方案中,过程1200确定无需使用外部服务器来确定准时到达的估计驾车时间。
该过程还任选地确定到事件位置的估计驾车时间(例如,如参照图11中的行程时间1110所述)使得来不及到达目的地的概率高于预先确定的阈值(例如,80%、95%、98%等)。在一些实施方案中,过程1200将交通工具位置和事件位置提供至一组一个或多个外部服务器并请求确定并发回到事件位置的驾车时间。在一些实施方案中,该过程还向该组服务器提供所请求的置信度水平,使得大部分用户来不及参加事件。在其他实施方案中,服务器被预编程以在估计中提供此类置信度水平。在一些实施方案中,过程1200确定无需使用外部服务器来确定会迟到的估计驾车时间。
该过程随后确定(在1240处)来自到事件位置的一个或多个先前驾车数据是否可用于该设备(或可用于该设备用户)。在一些实施方案中,设备上的服务存储不同的导航信息,诸如在不同时间点的设备的位置。如果来自一个或多个先前驾车数据可用,则该过程使用(在1245处)该数据来确定停放交通工具并到达事件的估计时间。该过程随后继续下述1255。
否则,该过程确定(在1250处)寻找停车位置并步行至事件位置的估计时间。该过程随后将准时参加事件的估计总行程时间设置(在1255处)为从当前设备位置到交通工具的估计时间、准时到达的估计驾车时间和停放交通工具并到达事件的估计时间的总和。该过程随后任选地将来不及参加事件的估计总行程时间设置(在1260处)为从当前设备位置到交通工具的估计时间、迟到的估计驾车时间和停放交通工具并到达事件的估计时间的总和。随后,该过程结束。
重新参照图9,在假设900中提供的建议离开时间(离开时间)920指示到事件的离开时间,该离开时间并不仅仅是基于大量用户计算出的离开时间的中值或平均值。相反,如上所述,离开时间是有偏差的(例如,偏差了在程序时间或运行时间设置的百分比),以确保设备用户准时参加日历事件的更高的百分比(例如,85%、90%、95%等)。这种高百分比的成功部分是因为行程时间被计算为使得高百分比的用户(例如,在程序时间或在运行时间设置的百分比诸如85%、90%、95%)准时参加事件而不是使得一半的用户准时参加事件的中值行程时间。
假设900还包括以下各项中的一项或多项。起始位置940,该位置是设备的当前位置。交通类型945,其是行程估计所提供的交通类型(例如,驾车或步行)。行程状态950,其指示了设备是否正在移动、是否正朝着事件位置移动、是否正远离事件位置或者正在移动但是不清楚是否朝着事件位置移动。该假设还任选地提供当前交通密度(例如,低、中、高)955、历史交通密度(例如,低、中、高)960、到事件位置沿线的最相关事故965、到事件位置的路线上的道路封闭970、当前天气状况975等中的一个或多个。
C.生成离开时间警报
一旦确定了提供使设备准时参加事件的高置信水平的总行程时间(例如,如上文参照图12所述),准时的离开时间计算如下:
准时参加事件的离开时间=事件开始时间-准时参加事件的估计总行程时间
在一些实施方案中,上述计算由提供估计的离开时间的一组服务器完成。在其他实施方案中,上述计算由导航守护进程完成(例如,在过程1200结束之前)。在其他实施方案中,导航守护进程在假设数据结构中提供准时参加事件的估计总行程时间(例如,包括建议的离开日期925或代替建议的离开日期),并且日历应用程序使用估计的总行程时间计算离开时间。下面的示例描述了导航守护进程向日历应用程序发送离开时间的实施方案。应当理解,该讨论也适用于日历应用程序或服务器组计算离开时间的实施方案。
在一些实施方案中,导航守护进程多次提供离开时间估计,并且每次都基于若干因素更新(诸如到事件开始的剩余时间、当前交通状况、道路上的事故、道路封闭等)离开时间。
图13A至图13B概念性地示出了在一些实施方案中用于通过日历应用程序提供离开时间警报的过程1300。如图所示,在事件开始之前,该过程将事件位置(例如,事件位置句柄)和事件开始时间发送(在1305处)至导航应用程序服务(例如,导航守护进程)。该过程还任选地将事件结束时间(或事件持续时间)和交通工具(如果已知的话)发送至导航守护进程。例如,在事件开始之前的预先确定的时间(诸如4小时、2小时、1小时等),该过程将事件信息发送至导航守护进程。
该过程随后订阅(在1310处)导航守护进程的到事件位置的行程信息的更新。例如,在一些实施方案中,日历应用程序利用用于进程间通信的API从导航守护进程接收事件假设。在其他实施方案中,当导航应用程序具有关于事件的已更新的信息时,日历应用程序获得通知(例如,被唤醒或接收中断)。该过程随后确定(在1315处)设备是否已经到达目的地(即,事件位置)。如果是,则该过程取消订阅(在1325处)事件的导航报告。随后,该过程结束。
否则,该过程确定是否从导航守护进程接收到(在1320处)假设。如果不是,该过程转到(例如,在预先确定的延迟之后)上述1315。否则,该过程确定(在1330处)准时参加事件的离开时间。例如,该过程从图9所示的假设数据结构900中检索建议的离开日期(或离开时间)920。
该过程随后任选地确定(在1335处)事件的迟到时间。例如,该过程从图9所示的假设数据结构900中检索迟到离开日期925。
该过程随后确定(在1337处)该时间是否是离开时间之前的预先确定的时间以及设备没有朝着事件位置移动。如果不是,该过程转到下述1345。否则,该过程提供(在1340处)离开时间的预先警报。例如,如果离开时间是下午5:23,在该时间的15分钟之前(即下午5:08),该过程向用户提供警报:“您有15分钟的时间出发前往父亲的生日聚会”。警报可以是可视弹出消息、声响消息、电子邮件、文本消息等中的一个或多个。该过程随后转到上述1315。在一些实施方案中,过程1300为每个事件生成一个或多个预先警报。并且,在一些实施方案中,无论设备是否正朝着事件位置移动,一旦到达预先确定的时间,该过程就提供离开时间的预先警报。在其他实施方案中,该过程仅当到达预定时间并且设备没有朝着事件位置移动时才提供离开时间的预先警报。
该过程确定(在1345处)是否到达离开时间并且设备没有朝着事件位置移动。如果不是,该过程转到下述1355。否则,该过程提供(在1350处)离开时间警报。例如,该过程向用户提供警报“该出发前往父亲的生日了”。警报可以是可视弹出消息、声响消息、电子邮件、文本消息等中的一个或多个。该过程随后转到上述1315。在一些实施方案中,无论设备是否正朝着事件位置移动,一旦到达离开时间,该过程就提供离开时间警报。在其他实施方案中,该过程仅当到达离开时间并且设备没有朝着事件位置移动时才提供离开时间警报。
该过程确定(在1355处)是否到达迟到时间并且设备没有朝着事件位置移动。如果不是,该过程转到下述1365。否则,该过程提供(在1360处)事件迟到警报。例如,该过程向用户提供警报“您来不及参加父亲的生日了”。警报可以是可视弹出消息、声响消息、电子邮件、文本消息等中的一个或多个。该过程随后转到上述1315。一些实施方案不使用单独的迟到时间。如果从离开时间已经过去了预先确定的时间(例如,5分钟、10分钟等)并且设备尚未开始朝着事件移动,则这些实施方案提供事件迟到警报。
该过程确定(在1365处)到事件位置的路线上的交通或事故报告是否可用。如果不是,该过程转到上述1315。否则,该过程从假设数据结构检索报告并向设备用户提供消息。该过程转到上述1315。一些实施方案不提供这种交通或事故报告。这些实施方案跳过操作1365至1370。如果可从假设数据结构获得附加信息,其他实施方案提供附加的信息(诸如天气报告)。
III.用于提供离开时间更新的功率节省技术
当日历应用程序请求事件的行程更新时,导航守护进程在从接收到日历应用程序的请求直到设备到达事件位置时或者直到事件结束时的时间段内提供若干更新。行程更新需要利用功率消耗任务来确定设备的当前位置、设置到事件位置的路线、访问不同的数据库、利用网络资源等。在一些实施方案中具体实施中,导航守护进程实现了用于在事件假设中生成离开时间和其他数据项的若干新型功率节省技术。
图14A至图14B概念性地示出了在一些实施方案中用于生成事件假设的过程1400。在一些实施方案中,过程1400由诸如导航守护进程的导航服务执行。如图所示,该过程从日历应用程序接收(在1405处)事件位置和事件开始时间(例如,事件位置句柄)。在一些实施方案中,该过程还任选地接收事件结束时间和交通工具。
该过程随后接收(在1410处)设备的当前位置的低精度估计。过程1400被用于确定到事件的估计行程时间和离开时间,并且不需要诸如导航引擎的其他应用程序所需的精确设备位置。与设备的精确位置相比,设备是否正朝着事件位置移动与过程1400更相关。
在一些实施方案中,请求设备位置的应用程序指定设备位置所需的精度水平(例如,高精度、中精度或低精度)。设备位置识别引擎175(图1所示)利用所需的精度水平来优化功耗。例如,为了节省功率和处理资源,导航守护进程请求设备位置的低精度估计,以计算到事件位置的行程时间。当所需精度水平较低时,设备位置识别引擎175可使用低功率和低精度WiFi位置确定方法来代替GPS。
如果最近为设备上的另一个应用程序计算了该位置,则设备位置识别引擎175也可以提供基于GPS的位置。在一些实施方案中,设备位置识别引擎175合并来自设备上的若干应用程序的对设备位置的请求。在这些实施方案中,如果已经为另一个应用程序确定了更高精度的GPS定位,则相同的位置数据被提供至导航守护进程。否则,则使用低精度、低功耗的方法(诸如WiFi)来确定设备位置。
该过程随后接收(在1415处)从设备的当前位置到事件位置的路线。例如,一些实施方案中的过程将事件位置提供至在设备上执行的路由引擎以设置到事件位置的路线。在其他实施方案中,该过程请求地图绘制服务接口150(图1所示)向在一组外部服务器上运行的路线发生器发起网络请求以生成路线并将其提供至设备。
一些实施方案合并多个应用程序中的位置请求、路线请求和/或网络请求。如下所述,当灵活的定时器结束时,该过程休眠(在1460处)并唤醒。灵活的定时器用于将过程1400的位置请求(在1410处)、路线请求(在1415处)和/或网络访问请求与请求相同资源的应用程序合并以节省功率。需要相同资源的应用程序被同时唤醒(在它们灵活的定时器的容差范围内)以共享相同的资源和/或相同的信息。
该过程随后确定(在1420处)具有预先确定的准时参加事件的高置信度的准时参加事件的离开时间。例如,该过程使用上文参照图10至图12B所述的方法。
该过程随后确定(在1430处)具有预先确定的百分比几率的来不及参加事件的时间,在该时间大部分用户将来不及参加该事件。例如,该过程使用上文参照图10至图12B所述的方法。该过程随后生成(在1440处)具有准时离开时间、迟到时间以及其他数据项的事件的假设,如上文参照图9所述。该过程随后向已订阅接收事件假设的应用程序(诸如日历应用程序)提供(在1445处)假设(诸如图9中的假设900)。
该过程随后利用(在1450处)当前时间、行程时间、交通密度和其他任选的信息(诸如路线上的相关事故)来确定对事件假设提供的下一次更新。图15概念性地示出了在一些实施方案中用于确定下次为事件假设提供更新的时间的函数。函数1500将离开时间之前的剩余空闲时间(x轴1505)映射到对事件假设提供下一次更新的时间(y轴1510)。
图16概念性地示出了在一些实施方案中出发前往事件之前的剩余空闲时间。如图所示,事件持续时间1635是从事件的开始时间1610到事件的结束时间1615。准时到达的离开时间1605是事件的开始时间1610与准时到达的行程时间1630(如参照图10和图12A至图12B所述)之间的差值。空闲时间1625是从当前时间1620到准时到达的离开时间1605之间的时间。
图15中的函数1500表达了提供离开时间估计作为剩余空闲时间的函数的轮询频率。在一些实施方案中,函数1500是基于使用经验和历史数据的机器学习而生成的。例如,该函数是基于诸如交通量改变的速度的因素生成的。该函数是通过确定在不同的时间段(诸如15分钟、30分钟、60分钟、120分钟、180分钟、240分钟等)内交通量可改变多少而生成的。然后基于交通量可改变的量来确定下一次提供事件假设更新。例如,在离开时间之前4个小时,交通量可改变多次。没有理由过于频繁地更新事件假设。因此,当距离事件开始仍然有很长的空闲时间时,函数1500提供更长的时间来更新假设。相比之下,随着离开时间越来越近,交通量改变将对离开时间产生更大的影响。因此,当离开时间之前的空闲时间缩短时,函数1500提供更短的时间来更新假设。
如图15所示,图形1500是这样构成的:随着时间越来越接近离开时间,更新频率就越快。由于更新的频率不固定,图形1500的使用提供了功率节省。相反,随着离开时间越来越近,更新更频繁。
当日历应用程序最初向导航守护进程提供事件信息时(在该示例中,在离开时间之前的4小时),导航守护进程在时间1515提供初始事件假设。然后通过输入函数1500上的剩余空闲时间以获得提供下一次更新的对应的时间来确定下一次提供更新的时间1520。例如,图15的示例示出了在当前估计的离开时间之前的1小时(空闲时间为1小时),应在30分钟内提供下一次更新(如纵轴1510所示)。
此外,在一些实施方案中,导航守护进程考虑剩余空闲时间之外的因素来确定下一次更新的时间。例如,如果当前时间更临近离开时间并且交通状况比历史平均状况更差,则导航守护进程缩短下次更新的时间。相比之下,当交通状况比历史平均状况轻松时,导航守护进程增加下次更新的时间。在一些实施方案中,更新频率是数学函数,该数学函数是剩余时间以及其他因素(诸如交通状况)的函数。当导航守护进程唤醒时,它首先获得新的估计离开时间(例如,从前上述的一组外部服务器获得)。导航守护进程随后计算剩余空闲时间。剩余空闲时间随后被馈送至数学函数中以输出更新频率(即,提供下一次更新的时间)。
同样如图所示,函数1500被用于在离开时间1540之前的时间间隔1520以及在离开时间之后的时间间隔1525内提供假设更新(如果事件仍在进行中并且设备还未到达事件位置)。应当理解,函数1500是固定函数,用于将剩余空闲时间映射到提供下一次行程时间(即,事件假设)更新的时间。
重新参考图14B,一旦确定提供下一次更新的时间,该过程设置(在1455处)定时器以唤醒下一次更新并请求在定时器结束之后唤醒。为了节省功率,在一些实施方案中,该定时器为将下一次更新时间指定为最近唤醒时间的灵活的定时器。此外,该定时器包括允许该过程在较早的时间唤醒的容差区间。例如,如果下一次更新的时间是1小时,则定时器指定1小时作为具有20分钟容差的最近唤醒时间。换句话讲,定时器指示该过程必须休眠至少40分钟(即,理想的唤醒时间是1小时,但是该过程可以在40分钟后任何时间唤醒)。
灵活的定时器的使用可以合并若干应用程序和服务的唤醒请求。例如,需要特定资源(诸如GPS、处理单元、网络等)的应用程序和服务可定时为一起唤醒。需要特定资源的应用程序或服务指定它们需要哪些资源,并且在它们的唤醒定时器的容差期内,它们被一起唤醒(例如,通过设备操作***)。应用程序可以同时唤醒并共享相同的信息。
过程1400随后休眠(在1460处)直到灵活的定时器结束。当灵活的计时器结束时(或者当该过程在定时器的容差时间内被唤醒时),该过程随后被唤醒(在1465处)。该过程随后确定(在1470处)事件是否结束。如果不是,该过程转到上述1410。
否则,该过程从监视的事件的列表(即,过程1400提供假设更新的事件)中移除(在1475处)该事件。该过程随后任选地将实际驾车时间发送(在1480处)至外部服务器作为众包数据。该过程还任选地存储(在1485处)停放交通工具的时间以在下一次设备用户将要去相同的事件位置时使用(例如,通过过程1200)。随后,该过程结束。
过程1400和函数1500的使用确保了假设数据结构中的建议离开时间(离开时间)920是有效的。如果在出发之前还有很多时间,那么这个假设的更新频率就会降低。随着事件开始的时间(以及离开时间)的临近,该假设更新得更频繁以确保日历应用程序提供具有足够准确性的离开时间警报以确保用户准时到达事件。
在一些实施方案中,如果该过程确定设备正远离事件位置,则过程1400停止提供离开时间估计。例如,该过程设置(在1415处)到事件位置的路线。这条路线可以随时间改变。无论该过程何时提供下一次离开时间估计并确定设备远离事件位置,该事件对应的假设都将受到不利影响。例如,当日历应用程序请求若干事件的离开时间估计时,过程1400为每个事件提供单独的假设。其中两个或更多个事件可共享它们的路线中的一部分路线。只要设备沿着到若干事件的路线的公共部分行进,过程1400就为每个事件提供假设。一旦设备进入岔路并远离事件的位置,该事件的假设就会被视为用户可能不会前去的事件。一旦该过程确定设备正在远离事件,并且例如设备朝着事件移动的概率低于阈值,则该过程停止提供离开时间更新。
IV.电子***
上文所述的特征和应用程序中的许多可被实现为被指定为在计算机可读存储介质(还称为计算机可读介质)上记录的一组指令的软件过程。在这些指令由一个或多个计算或处理单元(例如,一个或多个处理器、处理器的内核或者其它处理单元)执行时,这些指令使得一个或多个处理单元能够执行指令中所指示的动作。计算机可读介质的示例包括但不限于CD-ROM、闪存驱动器、随机存取存储器(RAM)芯片、硬盘驱动器、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)等。计算机可读介质不包括无线地传送或通过有线连接的载波和电信号。
在本说明书中,术语“软件”意在包括驻留在只读存储器中的固件或者存储在磁性存储设备中的应用程序,该固件或应用程序可被读取到存储器中以用于由处理器进行处理。另外,在一些实施方案中,可在保留不同的软件发明的同时,将多个软件发明实现为更大应用程序的子部分。在一些实施方案中,还可将多个软件发明实施为独立应用程序。最后,共同实施本文所述的软件发明的单独应用程序的任何组合均在本发明的范围内。在一些实施方案中,当被安装以在一个或多个电子***上运行时,软件应用程序定义执行和施行软件应用程序的操作的一个或多个特定机器具体实施。
A.移动设备
一些实施方案的地图绘制和导航应用程序在移动设备诸如智能电话(例如,)和平板电脑(例如,)上操作。图17是这种移动计算设备的架构1700的示例。移动计算设备的示例包括智能电话、平板电脑、膝上型电脑等。如图所示,移动计算设备1700包括一个或多个处理单元1705、存储器接口1710和***设备接口1715。
***设备接口1715耦接到各种传感器和子***,该子***包括摄像机子***1720、无线通信子***1725、音频子***1730、输入/输出(I/O)子***1735等。***设备接口1715能够实现处理单元1705与各种***设备之间的通信。例如,取向传感器1745(例如,陀螺仪)和加速度传感器1750(例如,加速度计)耦接到***设备接口1715,以便促进取向和加速功能。
摄像机子***1720耦接到一个或多个光学传感器1740(例如,电荷耦合设备(CCD)光学传感器、互补金属氧化物半导体(CMOS)光学传感器等)。与光学传感器1740耦接的相机子***1720促进相机功能,诸如图像和/或视频数据捕获。无线通信子***1725用于促进通信功能。在一些实施方案中,无线通信子***1725包括射频接收器和发射器,以及光学接收器和发射器(图17中未示出)。一些实施方案的这些接收器和发射器被实现为工作于一个或多个通信网络上,该通信网络诸如是GSM网络、Wi-Fi网络、蓝牙网络等。音频子***1730耦接到扬声器以输出音频(例如,以输出语音导航指令)。另外,音频子***1730耦接到麦克风以促进支持语音的功能,诸如语音识别(例如,用于搜索)、数字记录等。
I/O子***1735涉及输入/输出***设备(诸如显示器、触摸屏等)与处理单元1705的数据总线之间通过***设备接口1715的传输。输入/输出子***1735包括触摸屏控制器1755和其他输入控制器1760以有利于输入/输出***设备和处理单元1705的数据总线之间的传输。如图所示,触摸屏控制器1755耦接至触摸屏1765。触摸屏控制器1755使用多种触敏技术中的任一种来检测触摸屏1765上的接触和移动。其它输入控制器1760耦接至其它输入/控制设备,诸如一个或多个按钮。一些实施方案包括旁近触感屏和对应控制器,该对应控制器可检测替代触摸交互或除触摸交互之外的接近触摸交互。
存储器接口1710耦合至存储器1770。在一些实施方案中,存储器1770包括易失性存储器(例如,高速随机存取存储器)、非易失性存储器(例如,闪存存储器)、易失性存储器和非易失性存储器的组合和/或任何其他类型的存储器。如图17中所示,存储器1770存储操作***(OS)1772。OS 1772包括用于处理基础***服务以及用于执行硬件相关任务的指令。
存储器1770还包括:促进与一个或多个附加设备通信的通信指令1774;促进图形用户界面处理的图形用户界面指令1776;促进图像相关的处理和功能的图像处理指令1778;促进输入相关(例如,触摸输入)的过程和功能的输入处理指令1780;促进音频相关的过程和功能的音频处理指令1782;以及促进相机相关的过程和功能的相机指令1784。上述指令仅是示例性的,并且在一些实施方案中,存储器1770包括附加的和/或其他指令。例如,用于智能电话的存储器可包括促进电话相关的过程和功能的电话指令。另外,存储器可包括用于地图绘制和导航应用程序以及其他应用程序的指令。以上所识别的指令不需要作为独立的软件应用程序或模块来实施。可在硬件和/或软件中,包括在一个或多个信号处理和/或专用集成电路中来实现移动计算设备的各种功能。
虽然图17中例示的组件被示出为独立的组件,但是本领域的普通技术人员将认识到,可将两个或更多个组件集成到一个或多个集成电路中。另外,两个或更多个组件可由一条或多条通信总线或信号线来耦接在一起。另外,虽然已将许多功能描述为由一个组件执行,但是本领域的技术人员将认识到,可将相对于图17所述的功能拆分到两个或更多个集成电路中。
B.计算机***
图18概念性地示出了实现本发明的一些实施方案所利用的电子***1800的另一个示例。电子***1800可为计算机(例如,台式计算机、个人计算机、平板电脑等)、电话、PDA或任何其它种类的电子或计算设备。此类电子***包括各种类型的计算机可读介质以及用于各种其它类型的计算机可读介质的接口。电子***1800包括总线1805、处理单元1810、***存储器1820、网络1825、只读存储器1830、永久性存储设备1835、输入设备1840以及输出设备1845。
总线1805总体表示在通信上连接电子***1800的许多内部设备的所有***、***设备、以及芯片组总线。例如,总线1805可通信地将处理单元1810与只读存储器1830、***存储器1820以及永久性存储设备1835连接。
处理单元1810从这些各种存储器单元检索要执行的指令和要处理的数据,以便执行本发明的过程。在不同实施方案中,一个或多个处理单元可为单个处理器或者多核处理器。
只读存储器(ROM)1830存储一个或多个处理单元1810以及电子***的其他模块所需的静态数据和指令。另一方面,永久性存储设备1835是读写存储器设备。该设备是即使在电子***1800关闭时也存储指令和数据的非易失性存储器单元。本发明的一些实施方案将海量存储设备(诸如磁盘或光盘及其相应硬盘驱动器、集成式闪存存储器)用作永久性存储设备1835。
其他实施方案将可移动的存储设备(诸如软盘、闪存存储器设备等,及其对应的驱动器)用作永久性存储设备。与永久性存储设备1835一样,***存储器1820也是读写存储器设备。但是,与存储设备1835不同的是,***存储器1820是易失性读写存储器,诸如随机存取存储器。***存储器1820存储处理器运行时所需的指令和数据中的一些指令和数据。在一些实施方案中,本发明的过程存储在***存储器1820、永久性存储设备1835和/或只读存储器1830中。一个或多个处理单元1810从这些各种存储器单元检索将要执行的指令以及将要处理的数据,以便执行一些实施方案的过程。
总线1805还连接至输入设备和输出设备1840和1845。输入设备1840使得用户能够将信息和选择命令传达至电子***。输入设备1840包括字母数字键盘和指示设备(也称为“光标控制设备”)、摄像机(例如,网络摄像机)、麦克风或用于接收语音命令的类似设备等。输出设备1845显示由电子***生成的图像或者其他输出数据。输出设备1845包括打印机以及诸如阴极射线管(CRT)或液晶显示器(LCD)的显示设备,以及扬声器或类似的音频输出设备。一些实施方案包括充当输入设备和输出设备两者的设备诸如触摸屏。
最后,如图18中所示,总线1805还通过网络适配器(未示出)将电子***1800耦接到网络1825。这样,计算机可以是计算机的网络(诸如局域网(“LAN”)、广域网(“WAN”)或内联网)的一部分,或者可以是网络的网络(诸如互联网)的一部分。电子***1800的任何或所有组件均可与本发明结合使用。
一些实施方案包括将计算机应用程序指令存储在机器可读或计算机可读介质(或者称为计算机可读存储介质、机器可读介质或机器可读存储介质)中的电子组件,诸如微处理器、存储装置以及存储器。此类计算机可读介质的一些示例包括RAM、ROM、只读光盘(CD-ROM)、可刻录光盘(CD-R)、可重写光盘(CD-RW)、只读数字通用光盘(例如,DVD-ROM、双层DVD-ROM)、各种可刻录/可重写DVD(例如,DVD-RAM、DVD-RW、DVD+RW等)、闪存存储器(例如,SD卡,mini-SD卡、micro-SD卡等)、磁性和/或固态硬盘驱动器、只读和可刻录盘、超密度光盘、任何其他光学或磁性介质以及软盘。计算机可读介质可存储计算机应用程序,该计算机应用程序可由至少一个处理单元来执行并且包括用于执行各种操作的指令集。计算机应程序或者计算机代码的示例包括机器代码诸如由编译器所产生的机器代码,以及包括由计算机、电子部件或微处理器使用解译器执行的更高级别代码的文件。
虽然上述讨论主要涉及执行软件的微处理器或多核处理器,但一些实施方案由一个或多个集成电路来执行,诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)。在一些实施方案中,此类集成电路执行存储在电路自身上的指令。此外,一些实施方案执行存储在可编程逻辑设备(PLD)、ROM或RAM设备中的软件。
如本说明书以及本专利申请的任何权利要求所用,术语“计算机”、“服务器”、“处理器”及“存储器”均是指电子或其它技术设备。这些术语不包括人或者人的群组。出于本说明书的目的,术语显示或正在显示意指在电子设备上显示。如在本专利申请的本说明书以及任何权利要求中所使用的,术语“计算机可读介质”以及“机器可读介质”完全限于以可由计算机读取的形式存储信息的可触摸的物理对象。这些术语不包括任何无线信号、有线下载信号以及任何其他短暂信号。
虽然已参考许多特定细节描述了本发明,但本领域的普通技术人员将认识到,可在不脱离本发明的实质的情况下以其它特定形式来体现本发明。此外,多个附图组诸如图2、图5、图7、图12A至图12B、图13A至图13B以及图14A至图14B概念性地示出了过程。这些过程的特定操作可不以所示出和所描述的确切次序执行。可不在一个连续的操作系列中执行该特定操作,并且可在不同实施方案中执行不同的特定操作。此外,该过程可使用若干子过程来实施,或者作为更大宏过程来实施。因此,本领域的普通技术人员将理解,本发明不受前述示例性细节限制,而是将由所附的权利要求所限定。

Claims (21)

1.一种为存储在设备的日历应用程序中的事件提供行程更新的方法,
所述方法包括:
在所述设备的导航应用程序处从所述日历应用程序接收所述事件的位置和所述事件的开始时间;
确定从所述设备的当前位置到所述事件的所述位置的估计的行程时间;
基于所述估计的行程时间来确定及时前往所述事件的时间;以及
向所述日历应用程序提供包括所述及时前往的所述时间的多个行程更新,其中所述日历应用程序利用所述行程更新来提供关于所述及时前往所述事件的所述时间的一组警报。
2.根据权利要求1所述的方法,其中确定所述估计的行程时间包括确定驾车到所述事件的所述位置的附近的时间。
3.根据权利要求2所述的方法,其中确定所述估计的行程时间还包括
确定从所述事件的所述位置的所述附近步行到所述事件的所述位置的时间。
4.根据权利要求2所述的方法,其中确定所述估计的行程时间还包括
确定从所述设备的所述当前位置步行到已知位置处的交通工具的时间。
5.根据权利要求1所述的方法,还包括:
确定所述设备已经到达所述事件的所述位置;以及
当所述设备到达所述事件的所述位置时,停止所述定期行程更新。
6.根据权利要求1所述的方法,还包括:
确定所述事件的结束时间;以及
在所述事件的所述结束时间后,停止所述定期行程更新。
7.根据权利要求1所述的方法,还包括将步行确定为从所述设备的所述当前位置到所述事件的所述位置的交通模式,其中确定所述估计的行程时间包括确定从所述设备的所述当前位置步行到所述事件的所述位置的时间。
8.一种存储程序的非暂态计算机可读介质,所述程序用于提供存储在设备的日历应用程序中的事件的行程更新,所述程序可由至少一个处理单元执行,所述程序包括用于以下操作的指令集:
在所述设备的导航应用程序处从所述日历应用程序接收所述事件的位置和所述事件的开始时间;
确定从所述设备的当前位置到所述事件的所述位置的估计的行程时间;
基于所述估计的行程时间来确定及时前往所述事件的时间;以及
向所述日历应用程序提供包括所述及时前往的所述时间的多个行程更新,其中所述日历应用程序利用所述行程更新来提供关于所述及时前往所述事件的所述时间的一组警报。
9.根据权利要求8所述的非暂态计算机可读介质,其中用于确定所述估计的行程时间的所述指令集包括用于确定驾车到所述事件的所述位置的附近的时间的指令集。
10.根据权利要求9所述的非暂态计算机可读介质,其中用于确定所述估计的行程时间的所述指令集还包括用于确定从所述事件的所述位置的所述附近步行到所述事件的所述位置的时间的指令集。
11.根据权利要求9所述的非暂态计算机可读介质,其中用于确定所述估计的行程时间的所述指令集还包括用于确定从所述设备的所述当前位置步行到已知位置处的交通工具的时间的指令集。
12.根据权利要求8所述的非暂态计算机可读介质,所述程序还包括用于以下操作的指令集:
确定所述设备已经到达所述事件的所述位置;以及
当所述设备到达所述事件的所述位置时,停止所述定期行程更新。
13.根据权利要求8所述的非暂态计算机可读介质,所述程序还包括用于以下操作的指令集:
确定所述事件的结束时间;以及
在所述事件的所述结束时间后,停止所述定期行程更新。
14.根据权利要求8所述的非暂态计算机可读介质,所述程序还包括用于将步行确定为从所述设备的所述当前位置到所述事件的所述位置的交通模式的指令集,其中用于确定所述估计的行程时间的所述指令集包括用于确定从所述设备的所述当前位置步行到所述事件的所述位置的时间的指令集。
15.一种设备,包括:
一组处理单元;以及
一种存储程序的非暂态计算机可读介质,所述程序用于提供存储在设备的日历应用程序中的事件的行程更新,所述程序可由至少一个处理单元执行,所述程序包括用于以下操作的指令集:
在所述设备的导航应用程序处从所述日历应用程序接收所述事件的位置和所述事件的开始时间;
确定从所述设备的当前位置到所述事件的所述位置的估计的行程时间;
基于所述估计的行程时间来确定及时前往所述事件的时间;以及
向所述日历应用程序提供包括及时前往的所述时间的多个行程更新,其中所述日历应用程序利用所述行程更新来提供关于所述及时前往所述事件的所述时间的一组警报。
16.根据权利要求15所述的设备,其中用于确定所述估计的行程时间的所述指令集包括用于确定驾车到所述事件的所述位置的附近的时间的指令集。
17.根据权利要求16所述的设备,其中用于确定所述估计的行程时间的所述指令集还包括用于确定从所述事件的所述位置的所述附近步行到所述事件的所述位置的时间的指令集。
18.根据权利要求16所述的设备,其中用于确定所述估计的行程时间的所述指令集还包括用于确定从所述设备的所述当前位置步行到已知位置处的交通工具的时间的指令集。
19.根据权利要求15所述的设备,所述程序还包括用于以下操作的指令集:
确定所述设备已经到达所述事件的所述位置;以及
当所述设备到达所述事件的所述位置时,停止所述定期行程更新。
20.根据权利要求15所述的设备,所述程序还包括用于以下操作的指令集:
确定所述事件的结束时间;以及
在所述事件的所述结束时间后,停止所述定期行程更新。
21.根据权利要求15所述的设备,所述程序还包括用于将步行确定为从所述设备的所述当前位置到所述事件的所述位置的交通模式的指令集,其中用于确定所述估计的行程时间的所述指令集包括用于确定从所述设备的所述当前位置步行到所述事件的所述位置的时间的指令集。
CN201680033164.1A 2015-06-07 2016-06-03 用于日历事件的行程更新 Pending CN107690666A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110016094.1A CN112700224A (zh) 2015-06-07 2016-06-03 用于日历事件的行程更新

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201562172185P 2015-06-07 2015-06-07
US62/172,185 2015-06-07
US14/869,675 US20160358128A1 (en) 2015-06-07 2015-09-29 Travel updates for calendar events
US14/869,675 2015-09-29
US14/869,729 US20160357804A1 (en) 2015-06-07 2015-09-29 Determining location of a calendar event
US14/869,701 US9652486B2 (en) 2015-06-07 2015-09-29 Power saving techniques for a navigation application
US14/869,729 2015-09-29
US14/869,701 2015-09-29
PCT/US2016/035924 WO2016200704A1 (en) 2015-06-07 2016-06-03 Travel updates for calendar events

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110016094.1A Division CN112700224A (zh) 2015-06-07 2016-06-03 用于日历事件的行程更新

Publications (1)

Publication Number Publication Date
CN107690666A true CN107690666A (zh) 2018-02-13

Family

ID=57451122

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201680033164.1A Pending CN107690666A (zh) 2015-06-07 2016-06-03 用于日历事件的行程更新
CN202110016094.1A Pending CN112700224A (zh) 2015-06-07 2016-06-03 用于日历事件的行程更新

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202110016094.1A Pending CN112700224A (zh) 2015-06-07 2016-06-03 用于日历事件的行程更新

Country Status (5)

Country Link
US (3) US9652486B2 (zh)
EP (2) EP3284041A1 (zh)
KR (4) KR20200065048A (zh)
CN (2) CN107690666A (zh)
WO (1) WO2016200704A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108718364A (zh) * 2018-05-16 2018-10-30 北京小米移动软件有限公司 一种显示方法、显示装置和计算机可读存储介质
CN110728486A (zh) * 2018-07-16 2020-01-24 上海擎感智能科技有限公司 一种行程日历规划方法、服务端及客户端
CN115136568A (zh) * 2020-02-25 2022-09-30 高通股份有限公司 基于远程移动对象的动态警报

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7660800B2 (en) 2005-11-28 2010-02-09 Commvault Systems, Inc. Systems and methods for classifying and transferring information in a storage network
US20200257596A1 (en) 2005-12-19 2020-08-13 Commvault Systems, Inc. Systems and methods of unified reconstruction in storage systems
US10749734B2 (en) 2015-07-07 2020-08-18 International Business Machines Corporation Management of events and moving objects
US20180018592A1 (en) * 2016-07-15 2018-01-18 International Business Machines Corporation Identifying Alternative Venues for an Activity
US10540516B2 (en) 2016-10-13 2020-01-21 Commvault Systems, Inc. Data protection within an unsecured storage environment
US10451436B2 (en) * 2017-04-12 2019-10-22 Microsoft Technology Licensing, Llc Generating routes using events
US10692049B2 (en) * 2017-05-25 2020-06-23 Microsoft Technology Licensing, Llc Displaying a countdown timer for a next calendar event in an electronic mail inbox
US11392896B2 (en) * 2017-06-02 2022-07-19 Apple Inc. Event extraction systems and methods
US10504368B2 (en) 2017-06-21 2019-12-10 International Business Machines Corporation Management of mobile objects
US10600322B2 (en) * 2017-06-21 2020-03-24 International Business Machines Corporation Management of mobile objects
US20190205841A1 (en) * 2017-12-29 2019-07-04 Microsoft Technology Licensing, Llc Time impact indication system
US20190251204A1 (en) * 2018-02-14 2019-08-15 Commvault Systems, Inc. Targeted search of backup data using calendar event data
US10916137B2 (en) * 2018-08-22 2021-02-09 Ford Global Technologies, Llc Traffic mitigation system
US20210019710A1 (en) * 2019-07-18 2021-01-21 Microsoft Technology Licensing, Llc Computing system that is configured to infer locations of enterprise rooms
WO2021212476A1 (zh) * 2020-04-24 2021-10-28 Sun Jian 一种通讯的方法、设备及***
US11954307B2 (en) 2020-12-04 2024-04-09 Samsung Electronics Co., Ltd. Visual selector for application activities
CN113780975B (zh) * 2021-08-09 2022-12-30 荣耀终端有限公司 日程信息智能提醒方法、设备、存储介质和软件程序产品
US20240048513A1 (en) * 2022-08-03 2024-02-08 Capital One Services, Llc Systems and methods for converting physical meetings into virtual meetings

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100094529A1 (en) * 2008-10-13 2010-04-15 Embarq Holdings Company, Llc System and method for providing travel-related information associated with a calendar appointment
CN102393924A (zh) * 2011-08-16 2012-03-28 上海合合信息科技发展有限公司 提醒控制方法
US20120136572A1 (en) * 2010-06-17 2012-05-31 Norton Kenneth S Distance and Location-Aware Reminders in a Calendar System
CN103703481A (zh) * 2013-02-28 2014-04-02 观致汽车有限公司 一种日历事项制定、提醒及导航方法及其***
US20140163882A1 (en) * 2008-06-27 2014-06-12 Apple Inc. Dynamic alerts for calendar events
CN104537524A (zh) * 2014-12-29 2015-04-22 广东小天才科技有限公司 一种提醒方法和提醒装置

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7925525B2 (en) * 2005-03-25 2011-04-12 Microsoft Corporation Smart reminders
US7617246B2 (en) * 2006-02-21 2009-11-10 Geopeg, Inc. System and method for geo-coding user generated content
KR100810703B1 (ko) * 2006-05-18 2008-03-07 삼성전자주식회사 스케줄 정보를 이용한 출발시각 알림 방법 및 그 장치
US7869941B2 (en) * 2006-12-29 2011-01-11 Aol Inc. Meeting notification and modification service
US9360337B2 (en) * 2007-06-20 2016-06-07 Golba Llc Navigation system and methods for route navigation
US9175964B2 (en) * 2007-06-28 2015-11-03 Apple Inc. Integrated calendar and map applications in a mobile device
US8190359B2 (en) * 2007-08-31 2012-05-29 Proxpro, Inc. Situation-aware personal information management for a mobile device
WO2009065637A1 (en) 2007-11-24 2009-05-28 Routerank Ltd Optimized route planning
US20090210261A1 (en) 2008-02-20 2009-08-20 Rearden Commerce, Inc. System and Method for Multi-Modal Travel Shopping
US8060582B2 (en) * 2008-10-22 2011-11-15 Google Inc. Geocoding personal information
US20100174998A1 (en) 2009-01-06 2010-07-08 Kiha Software Inc. Calendaring Location-Based Events and Associated Travel
US8798914B2 (en) 2009-01-13 2014-08-05 Qualcomm Incorporated Navigating at a wireless device
US8682342B2 (en) 2009-05-13 2014-03-25 Microsoft Corporation Constraint-based scheduling for delivery of location information
US8855918B2 (en) 2009-09-25 2014-10-07 Mitac International Corp. Methods of assisting a user with selecting a route after a personal navigation device transitions from driving mode to walking mode
EP2343694B1 (en) * 2009-12-29 2012-03-14 Research In Motion Limited System and method of sending an arrival time estimate
US20110195727A1 (en) * 2010-02-08 2011-08-11 David Rene Proulx Providing calendar notifications based on changes in traffic patterns
US9311628B2 (en) * 2010-12-22 2016-04-12 Yahoo! Inc. Location-aware adaptive event reminder
NL1038747C2 (nl) * 2011-04-12 2012-10-15 Gerardus Martinus Maria Alders Inrichting voor vertrekwaarschuwing.
US9146115B2 (en) * 2011-10-18 2015-09-29 Microsoft Technology Licensing, Llc Location enhanced meetings and collaboration
US9973884B2 (en) * 2012-03-07 2018-05-15 Intel Corporation Device, system and method of controlling access to location sources
US20140033322A1 (en) * 2012-07-30 2014-01-30 Sunil Nair Method and apparatus for mapping
US9049547B2 (en) * 2012-08-31 2015-06-02 Blackberry Limited Displaying place-related content on a mobile device
US9319843B2 (en) 2013-02-28 2016-04-19 Sap Se Adaptive acceleration-based reminders
US9392393B2 (en) * 2013-06-09 2016-07-12 Apple Inc. Push notification initiated background updates
US9389096B2 (en) * 2013-10-04 2016-07-12 Uber Technologies, Inc. Determining location information using a location data point provided by a computing device
US9488487B2 (en) * 2013-11-01 2016-11-08 Yahoo! Inc. Route detection in a trip-oriented message data communications system
US9456305B2 (en) * 2014-07-13 2016-09-27 Intel IP Corporation Apparatus, system and method of selecting location providers
US9646426B2 (en) * 2014-12-19 2017-05-09 Intel Corporation Methods and devices for determining a location estimate

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140163882A1 (en) * 2008-06-27 2014-06-12 Apple Inc. Dynamic alerts for calendar events
US20100094529A1 (en) * 2008-10-13 2010-04-15 Embarq Holdings Company, Llc System and method for providing travel-related information associated with a calendar appointment
US20120136572A1 (en) * 2010-06-17 2012-05-31 Norton Kenneth S Distance and Location-Aware Reminders in a Calendar System
CN102393924A (zh) * 2011-08-16 2012-03-28 上海合合信息科技发展有限公司 提醒控制方法
CN103703481A (zh) * 2013-02-28 2014-04-02 观致汽车有限公司 一种日历事项制定、提醒及导航方法及其***
CN104537524A (zh) * 2014-12-29 2015-04-22 广东小天才科技有限公司 一种提醒方法和提醒装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108718364A (zh) * 2018-05-16 2018-10-30 北京小米移动软件有限公司 一种显示方法、显示装置和计算机可读存储介质
CN110728486A (zh) * 2018-07-16 2020-01-24 上海擎感智能科技有限公司 一种行程日历规划方法、服务端及客户端
CN115136568A (zh) * 2020-02-25 2022-09-30 高通股份有限公司 基于远程移动对象的动态警报

Also Published As

Publication number Publication date
EP3284041A1 (en) 2018-02-21
KR20190080989A (ko) 2019-07-08
US20160360485A1 (en) 2016-12-08
WO2016200704A1 (en) 2016-12-15
KR20200065048A (ko) 2020-06-08
CN112700224A (zh) 2021-04-23
EP3416116A1 (en) 2018-12-19
KR20210002762A (ko) 2021-01-08
KR20180008741A (ko) 2018-01-24
KR102359071B1 (ko) 2022-02-08
US9652486B2 (en) 2017-05-16
US20160357804A1 (en) 2016-12-08
US20160358128A1 (en) 2016-12-08

Similar Documents

Publication Publication Date Title
CN107690666A (zh) 用于日历事件的行程更新
US11645589B2 (en) Automatic booking of transportation based on context of a user of a computing device
US11506497B2 (en) Warning for frequently traveled trips based on traffic
US10515551B1 (en) Parking information aggregation platform
US9488487B2 (en) Route detection in a trip-oriented message data communications system
CN104156778B (zh) 预测性运输计算
US9377319B2 (en) Estimating times to leave and to travel
US8498953B2 (en) Method for allocating trip sharing
CN102326176B (zh) 用于递送赞助地标和位置标签的***和方法
CN104838673B (zh) 提供路线推荐
US20120265434A1 (en) Identifying Parking Spots
US10643185B2 (en) Suggested locations for calendar events
EP3332536B1 (en) Method and apparatus for syncing an embedded system with plurality of devices
WO2017040567A1 (en) Itinerary generation and adjustment system
CN106465060A (zh) 确定重要用户位置以用于提供基于位置的服务
CN107923762A (zh) 检测和校正用户行为中的潜在错误
WO2016029628A1 (zh) 一种交通信息的推送方法、装置、设备和计算机存储介质
CN103575268A (zh) 具有移动参与机制的导航***及其操作方法
WO2015157487A1 (en) System utilizing location-based data and methods of its use
CN104272770A (zh) 物理位置信息的自动化检索
Toader et al. Using passive data collection methods to learn complex mobility patterns: an exploratory analysis
KR101766647B1 (ko) 스케줄러를 이용한 대중교통 예매 시스템
US20230053402A1 (en) Controlled access of radio map quality information

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180213