首页 / 专利库 / 旅游与酒店业 / 游乐园 / 用于在触敏设备上主动识别和显示相关内容的系统和方法

用于在触敏设备上主动识别和显示相关内容的系统和方法

阅读:1009发布:2020-10-31

专利汇可以提供用于在触敏设备上主动识别和显示相关内容的系统和方法专利检索,专利查询,专利分析的服务。并且本文公开了用于在具有触敏显示器的 电子 设备上主动识别和显示相关内容的系统和方法。在一个方面,所述方法包括响应于来自所述电子设备用户的指令,在所述电子设备上执行应用程序。在执行所述应用程序时,所述方法还包括收集使用数据。所述使用数据至少包括由所述用户在所述应用程序内执行的一个或多个动作。所述方法还包括:在无人为干预的情况下,基于所述收集的使用数据来自动获取至少一个触 发条 件,以及将所述至少一个触发条件与所述用户在所述应用程序内执行的所述一个或多个动作中的特定动作相关联。在确定已经满足所述至少一个触发条件时,所述方法包括向所述用户提供以下指示:与所述触发条件相关联的所述特定动作可用。,下面是用于在触敏设备上主动识别和显示相关内容的系统和方法专利的具体信息内容。

1.一种存储可执行指令的非暂态计算机可读存储介质,当所述可执行指令由具有触敏显示器的电子设备执行时,使得所述电子设备:
响应于来自所述电子设备的用户的指令,而在所述电子设备上执行应用程序;
在执行所述应用程序时,收集使用数据,其中所述使用数据至少包括由所述用户在所述应用程序内执行的一个或多个动作;
在无人为干预的情况下,基于所收集的使用数据自动获取至少一个触发条件;
将所述至少一个触发条件与由所述用户在所述应用程序内执行的一个或多个动作中的特定动作相关联;以及
在确定已经满足所述至少一个触发条件时,向所述用户提供以下指示:与所述触发条件相关联的所述特定动作可用。
2.一种存储可执行指令的非暂态计算机可读存储介质,当所述可执行指令由具有触敏显示器的电子设备执行时,使得所述电子设备:
获取至少一个触发条件,所述至少一个触发条件基于与电子设备的用户相关联的使用数据,所述使用数据包括在所述电子设备上执行应用程序时由所述用户在所述应用程序内执行的一个或多个动作;
将所述至少一个触发条件与由所述用户在所述应用程序内执行的一个或多个动作中的特定动作相关联;以及
在确定已经满足所述至少一个触发条件时,向所述用户提供以下指示:与所述触发条件相关联的所述特定动作可用。
3.根据前述权利要求中任一项所述的非暂态计算机可读存储介质,其中获取所述至少一个触发条件包括向自所述电子设备远程定位的一个或多个服务器发送所述使用数据,并从所述一个或多个服务器接收所述至少一个触发条件。
4.根据前述权利要求中任一项所述的非暂态计算机可读存储介质,其中提供所述指示包括:在所述触敏显示器上的定屏幕上显示对应于与所述触发条件相关联的所述特定动作的用户界面对象。
5.根据权利要求4所述的非暂态计算机可读存储介质,其中所述用户界面对象包括与所述触发条件相关联的所述特定动作的描述。
6.根据权利要求5所述的非暂态计算机可读存储介质,其中所述用户界面对象还包括与所述应用相关联的图标。
7.根据权利要求4-6中任一项所述的非暂态计算机可读存储介质,其中所述可执行指令还使得所述电子设备:
在所述用户界面对象处检测第一手势;以及
响应于检测到所述第一手势:
在所述触敏显示器上显示所述应用程序;并且
在显示所述应用程序的同时,执行与所述触发条件相关联的所述特定动作。
8.根据权利要求7所述的非暂态计算机可读存储介质,其中所述第一手势是在所述用户界面对象上的轻扫手势。
9.根据权利要求4-6中任一项所述的非暂态计算机可读存储介质,其中所述可执行指令还使得所述电子设备:
在所述用户界面对象处检测第二手势;以及
响应于检测到所述第二手势并且同时继续在所述触敏显示器上显示所述锁定屏幕,来执行与所述触发条件相关联的所述特定动作。
10.根据权利要求9所述的非暂态计算机可读存储介质,其中所述第二手势是在所述用户界面对象的预定义区域处的单次轻击。
11.根据权利要求4-10中任一项所述的非暂态计算机可读存储介质,其中所述用户界面对象显示在所述锁定屏幕的预定义的中心部分中。
12.根据权利要求1-2中任一项所述的非暂态计算机可读存储介质,其中向所述用户提供与所述触发条件相关联的所述特定动作可用的所述指示包括执行所述特定动作。
13.根据权利要求4所述的非暂态计算机可读存储介质,其中所述用户界面对象是与所述应用程序相关联的图标,并且进一步地,其中所述用户界面对象大体上显示在所述触敏显示器上所述锁定屏幕的落。
14.根据前述权利要求中任一项所述的非暂态计算机可读存储介质,其中所述可执行指令还使得所述电子设备:
接收来自所述用户的解锁所述电子设备的指令;以及
响应于接收到所述指令,来在所述触敏显示器上显示所述电子设备的home屏幕;以及在所述home屏幕上向所述用户提供以下指示:与所述触发条件相关联的所述特定动作可用。
15.根据权利要求14所述的非暂态计算机可读存储介质,其中所述home屏幕包括(i)第一部分,所述第一部分包括一个或多个用户界面页面,用于启动所述电子设备上可用的第一组应用程序,以及(ii)第二部分,所述第二部分邻近所述第一部分显示,用于启动所述电子设备上可用的第二组应用程序,其中所述第二部分显示在所述第一部分中所包括的所有用户界面页面上,并且进一步地,其中在所述home屏幕上提供所述指示包括在第二部分上显示所述指示。
16.根据权利要求15所述的非暂态计算机可读存储介质,其中所述第二组应用程序与所述第一组应用程序不同且小于所述第一组应用程序。
17.根据前述权利要求中任一项所述的非暂态计算机可读存储介质,其中确定已经满足所述至少一个触发条件包括:确定所述电子设备已经与不同于所述电子设备的第二设备耦接。
18.根据前述权利要求中任一项所述的非暂态计算机可读存储介质,其中确定已经满足所述至少一个触发条件包括:确定所述电子设备已经到达对应于与所述用户相关联的家庭位置或工作位置的地址处。
19.根据权利要求18所述的非暂态计算机可读存储介质,其中确定所述电子设备已经到达对应于与用户相关联的所述家庭位置或所述工作位置的地址处包括:监视来自所述电子设备的加速度计的运动数据,并基于所述监视的运动数据确定所述电子设备未移动超过阈值量的时间。
20.根据前述权利要求中任一项所述的非暂态计算机可读存储介质,其中所述使用数据还包括来自所述用户的口头指令,所述口头指令被提供给虚拟助理应用程序,同时继续执行所述应用程序,并且进一步地,其中所述至少一个触发条件还基于提供给所述虚拟助理应用程序的所述口头指令。
21.根据权利要求20所述的非暂态计算机可读存储介质,其中所述口头指令包括创建提醒的请求,该提醒对应于所述应用程序的当前状态,所述当前状态对应于提供所述口头指令时的所述应用程序状态。
22.根据权利要求21所述的非暂态计算机可读存储介质,其中提供所述口头指令时的所述应用程序状态选自由以下各项组成的组:提供所述口头指令时在所述应用程序内显示的页面,提供所述口头指令时在所述应用程序内播放的内容,提供所述口头指令时在所述应用程序内显示的通知,以及提供所述口头指令时在所述应用程序内显示的所述页面的活动部分。
23.根据权利要求21所述的非暂态计算机可读存储介质,其中所述口头指令包括与所述应用程序的所述当前状态有关的术语“该”。
24.一种方法,包括:
在一个或多个电子设备处:
响应于来自所述第一电子设备的用户的指令,来在所述一个或多个电子设备的第一电子设备上执行应用程序;
在执行所述应用程序时,在无人为干预的情况下,自动收集使用数据,其中所述使用数据至少包括由所述用户在所述应用程序内执行的一个或多个动作;
在无人为干预的情况下,基于所收集的使用数据自动建立至少一个触发条件;
将所述至少一个触发条件与由所述用户在所述应用程序内执行的一个或多个动作中的特定动作相关联;以及
在确定已经满足所述至少一个触发条件时,向所述用户提供以下指示:与所述触发条件相关联的所述特定动作可用。
25.一种电子设备,包括:
触敏显示器;
一个或多个处理器;和
存储一个或多个程序的存储器,所述一个或多个程序当由所述一个或多个处理器执行时使得所述电子设备:
响应于来自所述电子设备的用户的指令,而在所述电子设备上执行应用程序;
在执行所述应用程序时,收集使用数据,其中所述使用数据至少包括由所述用户在所述应用程序内执行的一个或多个动作;
在无人为干预的情况下,基于所收集的使用数据自动获取至少一个触发条件;
将所述至少一个触发条件与由所述用户在所述应用程序内执行的一个或多个动作中的特定动作相关联;以及
在确定已经满足所述至少一个触发条件时,向所述用户提供以下指示:与所述触发条件相关联的所述特定动作可用。
26.一种方法,包括:
在具有触敏显示器的电子设备处:
响应于来自所述电子设备的用户的指令,而在所述电子设备上执行应用程序;
在执行所述应用程序时,收集使用数据,其中所述使用数据至少包括由所述用户在所述应用程序内执行的一个或多个动作;
在无人为干预的情况下,基于所收集的使用数据自动获取至少一个触发条件;
将所述至少一个触发条件与由所述用户在所述应用程序内执行的一个或多个动作中的特定动作相关联;以及
在确定已经满足所述至少一个触发条件时,向所述用户提供以下指示:与所述触发条件相关联的所述特定动作可用。
27.一种存储可执行指令的非暂态计算机可读存储介质,当所述可执行指令由具有触敏显示器的电子设备执行时,使得所述电子设备:
在所述触敏显示器上检测来自所述电子设备用户的搜索激活手势;
响应于检测到所述搜索激活手势,来在所述触敏显示器上显示搜索界面,所述搜索界面包括:
(i)搜索入口部分;和
(ii)在所述搜索入口部分处接收任何用户输入之前显示的预测部分,所述预测部分填充有以下项中的一个或多个:
(a)用于联系多个先前联系人员中某个人员的至少一个示能表示,其中至少部分地基于当前时间从所述多个先前联系的人员自动选择所述人员;和
(b)用于在所述电子设备上可用的多个应用程序的某个应用程序内执行预测的动作的至少一个示能表示,其中至少部分地基于与所述电子设备用户相关联的应用程序使用历史来自动选择所述预测的动作。
28.根据权利要求27所述的非暂态计算机可读存储介质,其中至少部分地基于对应于所述电子设备的位置数据来进一步选择所述人员。
29.根据权利要求27-28中任一项所述的非暂态计算机可读存储介质,其中从所述电子设备的存储器检索用于所述人员的所述应用程序使用历史和联系人信息。
30.根据权利要求27-28中任一项所述的非暂态计算机可读存储介质,其中从自所述电子设备远程定位的服务器检索用于所述人员的所述应用程序使用历史和联系人信息。
31.根据权利要求27-30中任一项所述的非暂态计算机可读存储介质,其中所述预测部分进一步由执行预测应用程序的至少一个示能表示填充,其中所述预测应用程序至少部分地基于所述应用程序使用历史而自动选择。
32.根据权利要求27-31中任一项所述的非暂态计算机可读存储介质,其中所述预测部分进一步用预测的地点类别的至少一个示能表示填充,并且进一步地,其中所述预测的地点类别至少部分地基于以下项中的一个或多个而自动选择:当前时间以及对应于所述电子设备的位置数据。
33.根据权利要求27-32中任一项所述的非暂态计算机可读存储介质,其中所述可执行指令还使得所述电子设备:
检测用户输入以滚动所述预测部分;
响应于检测到用于滚动所述预测部分的所述用户输入,来根据所述用户输入而滚动所述预测部分;以及
响应于滚动,来在所述预测部分中显示预测新闻文章的至少一个示能表示。
34.根据权利要求33所述的非暂态计算机可读存储介质,其中至少部分地基于对应于所述电子设备的位置数据而自动选择所述预测的新闻文章。
35.根据权利要求27-34中任一项所述的非暂态计算机可读存储介质,其中所述可执行指令还使得所述电子设备:
检测对于在所述应用程序内执行所述预测的动作的所述至少一个示能表示的选择;以及
响应于检测到所述选择,来在所述触敏显示器上显示所述应用程序,并在所述应用程序内执行所述预测的动作。
36.根据权利要求29-30中任一项所述的非暂态计算机可读存储介质,其中所述可执行指令还使得所述电子设备:
检测对于联系所述人员的所述至少一个示能表示的选择;以及
响应于检测到所述选择,来使用所述人员的所述联系信息来联系所述人员。
37.根据权利要求31所述的非暂态计算机可读存储介质,其中所述可执行指令还使得所述电子设备:
检测对于执行所述预测的应用程序的所述至少一个示能表示的选择;以及响应于检测到所述选择,来在所述触敏显示器上显示所述预测的应用程序。
38.根据权利要求32所述的非暂态计算机可读存储介质,其中所述可执行指令还使得所述电子设备:
检测对于所述预测的地点类别的所述至少一个示能表示的选择;以及
响应于检测到所述选择:
接收对应于至少一个附近地点的数据;并且
在所述触敏显示器上显示对应于所述至少一个附近地点的所述接收数据。
39.根据权利要求33所述的非暂态计算机可读存储介质,其中所述可执行指令还使得所述电子设备:
检测对于所述预测的新闻文章的所述至少一个示能表示的选择;以及
响应于检测到所述选择,来在所述触敏显示器上显示所述预测的新闻文章。
40.根据权利要求27-39中任一项所述的非暂态计算机可读存储介质,其中所述搜索激活手势可从至少两个不同的用户界面获取,并且进一步地,其中所述至少两个不同用户界面的第一用户界面对应于以下操作:在所述触敏显示器上显示home屏幕页面序列的相应home屏幕页面。
41.根据权利要求40所述的非暂态计算机可读存储介质,其中当所述相应home屏幕页面是所述home屏幕页面序列中的第一home屏幕页面时,所述搜索激活手势包括下述项中的一个:(i)相对于所述电子设备用户大体上沿向下方向移动的手势,或(ii)大体上垂直于所述向下方向并相对于所述用户大体上沿从左到右方向移动的连续手势。
42.根据权利要求41所述的非暂态计算机可读存储介质,其中当所述相应home屏幕页面是所述home屏幕页面序列中的第二home屏幕页面时,所述搜索激活手势包括相对于所述电子设备用户大体上沿所述向下方向移动的连续手势。
43.根据权利要求40所述的非暂态计算机可读存储介质,其中所述至少两个不同用户界面中的第二用户界面对应于在所述触敏显示器上显示应用程序切换界面。
44.根据权利要求43所述的非暂态计算机可读存储介质,其中所述搜索激活手势包括在所述触敏显示器上接触所述应用程序切换界面的预定义搜索激活部分。
45.一种电子设备,包括:
触敏显示器;
一个或多个处理器;和
存储一个或多个程序的存储器,所述一个或多个程序当由所述一个或多个处理器执行时使得所述电子设备:
在所述触敏显示器上检测来自所述电子设备用户的搜索激活手势;
响应于检测到所述搜索激活手势,来在所述触敏显示器上显示搜索界面,所述搜索界面包括:
(i)搜索入口部分;和
(ii)在所述搜索入口部分处接收任何用户输入之前显示的预测部分,所述预测部分填充有以下项中的一个或多个:
(a)用于联系多个先前联系人员中某个人员的至少一个示能表示,其中至少部分地基于当前时间从所述多个先前联系的人员自动选择所述人员;和
(b)用于在所述电子设备上可用的多个应用程序的某个应用程序内执行预测的动作的至少一个示能表示,其中至少部分地基于与所述电子设备用户相关联的应用程序使用历史来自动选择所述预测的动作。
46.一种方法,包括:
在具有触敏显示器的电子设备处:
在所述触敏显示器上检测来自所述电子设备用户的搜索激活手势;
响应于检测到所述搜索激活手势,在所述触敏显示器上显示搜索界面,所述搜索界面包括
(i)搜索入口部分;和
(ii)在所述搜索入口部分处接收任何用户输入之前显示的预测部分,所述预测部分填充有以下项中的一个或多个:
(a)用于联系多个先前联系人员中某个人员的至少一个示能表示,其中至少部分地基于当前时间从所述多个先前联系的人员自动选择所述人员;和
(b)用于在所述电子设备上可用的多个应用程序的某个应用程序内执行预测的动作的至少一个示能表示,其中至少部分地基于与所述电子设备用户相关联的应用程序使用历史来自动选择所述预测的动作。
47.一种电子设备,包括:
触敏显示单元,所述触敏显示单元被配置为显示用户界面并从用户接收接触;
处理单元,所述处理单元与所述触敏显示单元耦接,所述处理单元被配置为:
响应于来自所述电子设备的用户的指令,而在所述电子设备上执行应用程序;
在执行所述应用程序时,收集使用数据,所述使用数据至少包括由所述用户在所述应用程序内执行的一个或多个动作;
在无人为干预的情况下,基于所收集的使用数据自动获取至少一个触发条件;
将所述至少一个触发条件与由所述用户在所述应用程序内执行的一个或多个动作中的特定动作相关联;以及
在确定已经满足所述至少一个触发条件时,向所述用户提供以下指示:与所述触发条件相关联的所述特定动作可用。
48.根据权利要求47所述的电子设备,其中获取所述至少一个触发条件包括向自所述电子设备远程定位的一个或多个服务器发送所述使用数据,并从所述一个或多个服务器接收所述至少一个触发条件。
49.根据权利要求47-48中任一项所述的电子设备,其中提供所述指示包括:在所述触敏显示单元上的锁定屏幕上显示对应于与所述触发条件相关联的所述特定动作的用户界面对象。
50.根据权利要求49所述的电子设备,其中所述用户界面对象包括与所述触发条件相关联的所述特定动作的描述。
51.根据权利要求50所述的电子设备,其中所述用户界面对象还包括与所述应用相关联的图标。
52.根据权利要求49-51中任一项所述的电子设备,其中所述处理单元被进一步配置为:
在所述用户界面对象处检测第一手势;
响应于检测到所述第一手势:
(i)在所述触敏显示单元上显示所述应用程序;以及
(ii)在显示所述应用程序的同时,执行与所述触发条件相关联的所述特定动作。
53.根据权利要求52所述的电子设备,其中所述第一手势是在所述用户界面对象上的轻扫手势。
54.根据权利要求49-52中任一项所述的电子设备,其中所述处理单元被进一步配置为:
在所述用户界面对象处检测第二手势;以及
响应于检测到所述第二手势并且同时继续在所述触敏显示单元上显示所述锁定屏幕,来执行与所述触发条件相关联的所述特定动作。
55.根据权利要求54所述的电子设备,其中所述第二手势是在所述用户界面对象的预定义区域处的单次轻击。
56.根据权利要求49-55中任一项所述的电子设备,其中所述用户界面对象显示在所述锁定屏幕的预定义的中心部分中。
57.根据权利要求47所述的电子设备,其中向所述用户提供与所述触发条件相关联的所述特定动作可用的所述指示包括执行所述特定动作。
58.根据权利要求49所述的电子设备,其中所述用户界面对象是与所述应用程序相关联的图标,并且所述用户界面对象大体上显示在所述触敏显示单元上所述锁定屏幕的角落。
59.根据权利要求47-58中任一项所述的电子设备,其中所述处理单元被进一步配置为:
接收来自所述用户的解锁所述电子设备的指令;
响应于接收到所述指令,来在所述触敏显示单元上显示所述电子设备的home屏幕;以及
在所述home屏幕上向所述用户提供以下指示:与所述触发条件相关联的所述特定动作可用。
60.根据权利要求59所述的电子设备,其中所述home屏幕包括(i)第一部分,所述第一部分包括一个或多个用户界面页面,用于启动所述电子设备上可用的第一组应用程序,以及(ii)第二部分,所述第二部分邻近所述第一部分显示,用于启动所述电子设备上可用的第二组应用程序,其中所述第二部分显示在所述第一部分中所包括的所有用户界面页面上,并且在所述home屏幕上提供所述指示包括在第二部分上显示所述指示。
61.根据权利要求60所述的电子设备,其中所述第二组应用程序与所述第一组应用程序不同且小于所述第一组应用程序。
62.根据权利要求47-61中任一项所述的电子设备,其中确定已经满足所述至少一个触发条件包括:确定所述电子设备已经与不同于所述电子设备的第二设备耦接。
63.根据权利要求47-62中任一项所述的电子设备,其中确定已经满足所述至少一个触发条件包括:确定所述电子设备已经到达对应于与所述用户相关联的家庭位置或工作位置的地址处。
64.根据权利要求63所述的电子设备,其中确定所述电子设备已经到达对应于与用户相关联的所述家庭位置或所述工作位置的地址处包括:监视来自所述电子设备的加速度计的运动数据,并基于所述监视的运动数据确定所述电子设备未移动超过阈值量的时间。
65.根据权利要求47-64中任一项所述的电子设备,其中所述使用数据还包括来自所述用户的口头指令,所述口头指令被提供给虚拟助理应用程序,同时继续执行所述应用程序,并且进一步地,其中所述至少一个触发条件还基于提供给所述虚拟助理应用程序的所述口头指令。
66.根据权利要求65所述的电子设备,其中所述口头指令包括创建提醒的请求,该提醒对应于所述应用程序的当前状态,所述当前状态对应于提供所述口头指令时的所述应用程序状态。
67.根据权利要求66所述的电子设备,其中提供所述口头指令时的所述应用程序状态选自由以下各项组成的组:提供所述口头指令时在所述应用程序内显示的页面,提供所述口头指令时在所述应用程序内播放的内容,提供所述口头指令时在所述应用程序内显示的通知,以及提供所述口头指令时在所述应用程序内显示的所述页面的活动部分。
68.根据权利要求66所述的电子设备,其中所述口头指令包括与所述应用程序的所述当前状态有关的术语“该”。
69.一种存储可执行指令的非暂态计算机可读存储介质,当所述可执行指令由具有触敏表面和显示器的电子设备执行时,使得所述电子设备:
接收语音通信的至少一部分,其中所述语音通信的所述部分包括由所述远程设备的远程用户提供的语音,所述远程用户不同于所述电子设备的用户;
至少部分地基于由所述远程设备的所述远程用户提供的所述语音来提取内容项;
确定所述电子设备上的所述内容项当前是否可用;
根据确定所述内容项当前在所述电子设备上不可用:
识别与所述内容项相关联的应用程序;
在显示器上显示所述内容项的可选描述;
响应于检测到对所述可选描述的选择,来存储所述内容项,以利用所识别的应用程序来呈现。
70.根据权利要求69所述的非暂态计算机可读存储介质,其中所述内容项是新事件。
71.根据权利要求69所述的非暂态计算机可读存储介质,其中所述内容项是当前与所述电子设备上的日历应用程序相关联的事件的新事件细节。
72.根据权利要求69所述的非暂态计算机可读存储介质,其中所述内容项是新联系人。
73.根据权利要求69所述的非暂态计算机可读存储介质,其中所述内容项是与所述电子设备上的电话应用程序相关联的现有联系人的新联系人信息。
74.根据权利要求69-73中任一项所述的非暂态计算机可读存储介质,其中所述语音通信是实时电话呼叫。
75.根据权利要求69-73中任一项所述的非暂态计算机可读存储介质,其中所述语音通信是实时FaceTime呼叫。
76.根据权利要求69-73中任一项所述的非暂态计算机可读存储介质,其中所述语音通信是记录的语音信箱。
77.根据权利要求69-76中任一项所述的非暂态计算机可读存储介质,其中显示所述可选描述包括在用户界面内显示所述可选描述,其中所述用户界面包括使用电话应用程序进行的最近通话。
78.根据权利要求77所述的非暂态计算机可读存储介质,其中所述可选描述与以下指示一起显示:所述内容项与所述语音通信相关联。
79.根据权利要求77所述的非暂态计算机可读存储介质,其中检测所述选择包括:在显示包括最近通话的所述用户界面时接收所述选择。
80.根据权利要求69-79中任一项所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时还使得所述电子设备:
结合显示所述内容项的所述可选描述,向所述电子设备的所述用户提供已经检测到所述内容项的反馈。
81.根据权利要求80所述的非暂态计算机可读存储介质,其中提供反馈包括:向所述电子设备附近的另一台电子设备发送与检测到所述内容项有关的信息。
82.根据权利要求69-81中任一项所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时还使得所述电子设备:
确定所述语音通信包括关于第一物理位置的信息;
检测输入;以及
响应于检测到所述输入,来打开能够接受位置数据的应用程序,并使用关于所述第一物理位置的信息填充所述应用程序。
83.根据权利要求82所述的非暂态计算机可读存储介质,其中所述应用程序为地图应用程序,并且使用关于所述第一物理位置的信息填充所述地图应用程序包括:使用对应于所述第一物理位置的位置标识符填充所述地图应用程序内显示的地图。
84.根据权利要求69-81中任一项所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时还使得所述电子设备:
确定所述语音通信包括关于第一物理位置的信息;
检测输入;以及
响应于检测到所述输入,来使用关于所述第一物理位置的信息填充搜索界面。
85.根据权利要求69-84中任一项所述的非暂态计算机可读存储介质,其中提取所述内容项包括分析所述语音通信的所述部分以检测预定类型的内容,其中在经由与所述电子设备通信的音频系统而输出所述语音通信时执行所述分析。
86.根据权利要求85所述的非暂态计算机可读存储介质,其中分析所述语音通信包括:
将由所述远程设备的所述远程用户所提供的所述语音转换为文本;
自然语言处理算法应用于所述文本,以确定所述文本是否包括一个或多个预定义的关键字;以及
根据确定所述文本包括相应的预定义关键字,确定所述语音通信包括描述所述内容项的语音。
87.根据权利要求69-86中任一项所述的非暂态计算机可读存储介质,其中接收所述语音通信的至少一部分包括从所述电子设备的用户接收应分析所述语音通信的所述部分的指示。
88.根据权利要求87所述的非暂态计算机可读存储介质,其中所述指示对应于对某一硬件按钮的选择。
89.根据权利要求87所述的非暂态计算机可读存储介质,其中所述指示对应于来自所述电子设备用户的命令,包括字词“嘿,Siri”。
90.根据权利要求69-89中任一项所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
接收所述语音通信的第二部分,其中所述第二部分包括由所述远程设备的所述远程用户提供的语音,以及由所述电子设备的所述用户提供的语音;
至少部分地基于所述远程设备的所述远程用户提供的语音以及由所述电子设备的所述用户提供的语音来提取第二内容项;
根据确定所述第二内容项当前在所述电子设备上不可用:
识别与所述第二内容项相关联的第二应用程序;
在所述显示器上显示所述第二内容项的第二可选描述;
响应于检测到对所述第二可选描述的选择,来存储所述第二内容项,以利用所识别的第二应用程序来呈现。
91.根据权利要求90所述的非暂态计算机可读存储介质,其中所述可选描述和所述第二可选描述显示在包括使用电话应用程序进行的最近通话的用户界面内。
92.一种方法,包括:
在具有一个或多个处理器、存储器、触敏表面和显示器的电子设备处:
接收语音通信的至少一部分,其中所述语音通信的所述部分包括由所述远程设备的远程用户提供的语音,所述远程用户不同于所述电子设备的用户;
至少部分地基于由所述远程设备的所述远程用户提供的所述语音来提取内容项;
确定所述电子设备上的所述内容项当前是否可用;
根据确定所述内容项当前在所述电子设备上不可用:
识别与所述内容项相关联的应用程序;
在显示器上显示所述内容项的可选描述;
响应于检测到对所述可选描述的选择,来存储所述内容项,以利用所识别的应用程序来呈现。
93.根据权利要求92所述的方法,其中所述内容项是新事件。
94.根据权利要求92所述的方法,其中所述内容项是当前与所述电子设备上的日历应用程序相关联的事件的新事件细节。
95.根据权利要求92所述的方法,其中所述内容项是新联系人。
96.根据权利要求92所述的方法,其中所述内容项是与所述电子设备上的电话应用程序相关联的现有联系人的新联系人信息。
97.根据权利要求92-96中任一项所述的方法,其中所述语音通信是实时电话呼叫。
98.根据权利要求92-96中任一项所述的方法,其中所述语音通信是实时FaceTime呼叫。
99.根据权利要求92-96中任一项所述的方法,其中所述语音通信是记录的语音信箱。
100.根据权利要求92-99中任一项所述的方法,其中显示所述可选描述包括在用户界面内显示所述可选描述,其中所述用户界面包括使用电话应用程序进行的最近通话。
101.根据权利要求100所述的方法,其中所述可选描述与以下指示一起显示:所述内容项与所述语音通信相关联。
102.根据权利要求100所述的方法,其中检测所述选择包括:在显示包括最近通话的所述用户界面时接收所述选择。
103.根据权利要求92-102中任一项所述的方法,还包括:
结合显示所述内容项的所述可选描述,向所述电子设备的所述用户提供已经检测到所述内容项的反馈。
104.根据权利要求103所述的方法,其中提供反馈包括:向所述电子设备附近的另一台电子设备发送与检测到所述内容项有关的信息。
105.根据权利要求92-104中任一项所述的方法,还包括:
确定所述语音通信包括关于第一物理位置的信息;
检测输入;以及
响应于检测到所述输入,来打开能够接受位置数据的应用程序,并使用关于所述第一物理位置的信息填充所述应用程序。
106.根据权利要求105所述的方法,其中所述应用程序为地图应用程序,并且使用关于所述第一物理位置的信息填充所述地图应用程序包括:使用对应于所述第一物理位置的位置标识符填充所述地图应用程序内显示的地图。
107.根据权利要求92-104中任一项所述的方法,还包括:
确定所述语音通信包括关于第一物理位置的信息;
检测输入;以及
响应于检测到所述输入,来使用关于所述第一物理位置的信息来填充搜索界面。
108.根据权利要求92-107中任一项所述的方法,其中提取所述内容项包括分析所述语音通信的所述部分以检测预定类型的内容,其中在经由与所述电子设备通信的音频系统而输出所述语音通信时执行所述分析。
109.根据权利要求108所述的方法,其中分析所述语音通信包括:
将由所述远程设备的所述远程用户所提供的所述语音转换为文本;
将自然语言处理算法应用于所述文本,以确定所述文本是否包括一个或多个预定义的关键字;以及
根据确定所述文本包括相应的预定义关键字,确定所述语音通信包括描述所述内容项的语音。
110.根据权利要求92-109中任一项所述的方法,其中接收所述语音通信的至少一部分包括从所述电子设备的用户接收应分析所述语音通信的所述部分的指示。
111.根据权利要求110所述的方法,其中所述指示对应于对某一硬件按钮的选择。
112.根据权利要求110所述的方法,其中所述指示对应于来自所述电子设备用户的命令,包括字词“嘿,Siri”。
113.根据权利要求92-112中任一项所述的方法,还包括:
接收所述语音通信的第二部分,其中所述第二部分包括由所述远程设备的所述远程用户提供的语音,以及由所述电子设备的所述用户提供的语音;
至少部分地基于所述远程设备的所述远程用户提供的语音以及由所述电子设备的所述用户提供的语音来提取第二内容项;
根据确定所述第二内容项当前在所述电子设备上不可用:
识别与所述第二内容项相关联的第二应用程序;
在所述显示器上显示所述第二内容项的第二可选描述;
响应于检测到对所述第二可选描述的选择,来存储所述第二内容项,以利用所识别的第二应用程序来呈现。
114.根据权利要求113所述的方法,其中所述可选描述和所述第二可选描述显示在包括使用电话应用程序进行的最近通话的用户界面内。
115.一种电子设备,包括:
触敏表面;
显示器;
一个或多个处理器;
存储器,所述存储器存储被配置为由所述一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行根据权利要求92-114中任一项所述的方法的指令。
116.一种电子设备上的图形用户界面,所述电子设备具有存储器、触敏表面、显示器、以及用于执行存储在所述存储器中的一个或多个程序的一个或多个处理器,所述图形用户界面包括根据权利要求92-114所述的方法中的任一方法所显示的用户界面。
117.一种具有触敏表面和显示器的电子设备,所述电子设备包括:
用于执行根据权利要求92-114中任一项所述的方法的装置。
118.一种用于在包括触敏表面和显示器的电子设备中使用的信息处理装置,包括:
用于执行根据权利要求92-114中任一项所述的方法的装置。
119.一种电子设备,包括:
触敏表面;
显示器;
一个或多个处理器;
存储器,所述存储器存储被配置为由所述一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行根据权利要求92-114中任一项所述的方法的指令。
120.一种电子设备上的图形用户界面,所述电子设备具有存储器、触敏表面、显示器、以及用于执行存储在所述存储器中的一个或多个程序的一个或多个处理器,所述图形用户界面包括根据权利要求92-114所述的方法中的任一方法所显示的用户界面。
121.一种具有触敏表面和显示器的电子设备,所述电子设备包括:
用于执行根据权利要求92-114中任一项所述的方法的装置。
122.一种用于在包括触敏表面和显示器的电子设备中使用的信息处理装置,包括:
用于执行根据权利要求92-114中任一项所述的方法的装置。
123.一种电子设备,包括:
触敏表面单元,所述触敏表面单元被配置为接收来自用户的接触;
显示单元,所述显示单元被配置为显示用户界面;和
处理单元,所述处理单元与所述触敏表面单元和所述显示单元耦接,所述处理单元被配置为:
接收语音通信的至少一部分,其中所述语音通信的所述部分包括由所述远程设备的远程用户提供的语音,所述远程用户不同于所述电子设备的用户;
至少部分地基于由所述远程设备的所述远程用户提供的所述语音来提取内容项;
确定所述电子设备上的所述内容项当前是否可用;
根据确定所述内容项当前在所述电子设备上不可用:
识别与所述内容项相关联的应用程序;
在显示单元上显示所述内容项的可选描述;
响应于检测到对所述可选描述的选择,来存储所述内容项,以利用所识别的应用程序来呈现。
124.根据权利要求123所述的电子设备,其中所述内容项是新事件。
125.根据权利要求123所述的电子设备,其中所述内容项是当前与所述电子设备上的日历应用程序相关联的事件的新事件细节。
126.根据权利要求123所述的电子设备,其中所述内容项是新联系人。
127.根据权利要求123所述的电子设备,其中所述内容项是与所述电子设备上的电话应用程序相关联的现有联系人的新联系人信息。
128.根据权利要求123-127中任一项所述的电子设备,其中所述语音通信是实时电话呼叫。
129.根据权利要求123-127中任一项所述的电子设备,其中所述语音通信是实时FaceTime呼叫。
130.根据权利要求123-127中任一项所述的电子设备,其中所述语音通信是记录的语音信箱。
131.根据权利要求123-130中任一项所述的电子设备,其中显示所述可选描述包括在用户界面内显示所述可选描述,其中所述用户界面包括使用电话应用程序进行的最近通话。
132.根据权利要求131所述的电子设备,其中所述可选描述与以下指示一起显示:所述内容项与所述语音通信相关联。
133.根据权利要求131所述的电子设备,其中检测所述选择包括:在显示包括最近通话的所述用户界面时接收所述选择。
134.根据权利要求123-133中任一项所述的电子设备,其中所述处理单元被进一步配置为:
结合显示所述内容项的所述可选描述,向所述电子设备的所述用户提供已经检测到所述内容项的反馈。
135.根据权利要求134所述的电子设备,其中提供反馈包括:向所述电子设备附近的另一台电子设备发送与检测到所述内容项有关的信息。
136.根据权利要求123-135中任一项所述的电子设备,其中所述处理单元被进一步配置为:
确定所述语音通信包括关于第一物理位置的信息;
检测输入;以及
响应于检测到所述输入,来打开能够接受位置数据的应用程序,并使用关于所述第一物理位置的信息填充所述应用程序。
137.根据权利要求136所述的电子设备,其中所述应用程序为地图应用程序,并且使用关于所述第一物理位置的信息填充所述地图应用程序包括:使用对应于所述第一物理位置的位置标识符填充所述地图应用程序内显示的地图。
138.根据权利要求123-135中任一项所述的电子设备,其中所述处理单元被进一步配置为:
确定所述语音通信包括关于第一物理位置的信息;
检测输入;以及
响应于检测到所述输入,来使用关于所述第一物理位置的信息填充搜索界面。
139.根据权利要求123-138中任一项所述的电子设备,其中提取所述内容项包括分析所述语音通信的所述部分以检测预定类型的内容,其中在经由与所述电子设备通信的音频系统而输出所述语音通信时执行所述分析。
140.根据权利要求139所述的电子设备,其中分析所述语音通信包括:
将由所述远程设备的所述远程用户所提供的所述语音转换为文本;
将自然语言处理算法应用于所述文本,以确定所述文本是否包括一个或多个预定义的关键字;以及
根据确定所述文本包括相应的预定义关键字,确定所述语音通信包括描述所述内容项的语音。
141.根据权利要求123-140中任一项所述的电子设备,其中接收所述语音通信的至少一部分包括从所述电子设备的用户接收应分析所述语音通信的所述部分的指示。
142.根据权利要求141所述的电子设备,其中所述指示对应于对某一硬件按钮的选择。
143.根据权利要求141所述的电子设备,其中所述指示对应于来自所述电子设备用户的命令,包括字词“嘿,Siri”。
144.根据权利要求123-143中任一项所述的电子设备,其中所述处理单元被进一步配置为:
接收所述语音通信的第二部分,其中所述第二部分包括由所述远程设备的所述远程用户提供的语音,以及由所述电子设备的所述用户提供的语音;
至少部分地基于所述远程设备的所述远程用户提供的语音以及由所述电子设备的所述用户提供的语音来提取第二内容项;
根据确定所述第二内容项当前在所述电子设备上不可用:
识别与所述第二内容项相关联的第二应用程序;
在所述显示单元上显示所述第二内容项的第二可选描述;
响应于检测到对所述第二可选描述的选择,来存储所述第二内容项,以利用所识别的第二应用程序来呈现。
145.根据权利要求144所述的电子设备,其中所述可选描述和所述第二可选描述显示在包括使用电话应用程序进行的最近通话的用户界面内。
146.一种存储可执行指令的非暂态计算机可读存储介质,当所述可执行指令由具有触敏表面和显示器的电子设备执行时,使得所述电子设备:
接收语音通信的至少一部分,其中所述语音通信的所述部分包括由所述远程设备的远程用户提供的语音,所述远程用户不同于所述电子设备的用户;
确定所述语音通信包括识别物理位置的语音;
响应于确定所述语音通信包括识别所述物理位置的语音,来提供已经检测到关于所述物理位置的信息的指示;
经由所述触敏表面检测输入;以及
响应于检测到所述输入:
打开接受地理位置数据的应用程序;以及
使用关于所述物理位置的信息来填充所述应用程序。
147.根据权利要求146所述的非暂态计算机可读存储介质,其中所述语音通信是实时电话呼叫。
148.根据权利要求146所述的非暂态计算机可读存储介质,其中所述语音通信是实时FaceTime呼叫。
149.根据权利要求146所述的非暂态计算机可读存储介质,其中所述语音通信是记录的语音信箱。
150.根据权利要求146-149中任一项所述的非暂态计算机可读存储介质,其中提供所述指示包括在用户界面内显示所述物理位置的可选描述,所述用户界面包括使用电话应用程序进行的最近通话。
151.根据权利要求150所述的非暂态计算机可读存储介质,其中所述可选描述指示所述内容项与所述语音通信相关联。
152.根据权利要求150-151中任一项所述的非暂态计算机可读存储介质,其中检测所述输入包括:在显示包括最近通话的所述用户界面时检测所述可选描述上的输入。
153.根据权利要求146-152中任一项所述的非暂态计算机可读存储介质,其中提供所述指示包括向所述电子设备的所述用户提供触觉反馈
154.根据权利要求146-153中任一项所述的非暂态计算机可读存储介质,其中提供所述指示包括将关于所述物理位置的信息发送到邻近所述电子设备的不同电子设备。
155.根据权利要求146-154中任一项所述的非暂态计算机可读存储介质,其中确定所述语音通信包括描述所述物理位置的语音包括:分析所述语音通信的所述部分以检测关于物理位置的信息,其中在经由与所述电子设备通信的音频系统而输出所述语音通信时执行所述分析。
156.根据权利要求146-155中任一项所述的非暂态计算机可读存储介质,其中接收所述语音通信的至少一部分包括:从所述电子设备的用户接收应分析所述语音通信的所述部分的指令。
157.根据权利要求156所述的非暂态计算机可读存储介质,其中所述指示对应于对某一硬件按钮的选择。
158.根据权利要求156所述的非暂态计算机可读存储介质,其中所述指令对应于来自所述电子设备用户的命令,包括字词“嘿,Siri”。
159.一种方法,包括:
在具有一个或多个处理器、存储器、触敏表面和显示器的电子设备处:
接收语音通信的至少一部分,其中所述语音通信的所述部分包括由所述远程设备的远程用户提供的语音,所述远程用户不同于所述电子设备的用户;
确定所述语音通信包括识别物理位置的语音;
响应于确定所述语音通信包括识别所述物理位置的语音,来提供已经检测到关于所述物理位置的信息的指示;
经由所述触敏表面检测输入;以及
响应于检测到所述输入:
打开接受地理位置数据的应用程序;以及
使用关于所述物理位置的信息来填充所述应用程序。
160.根据权利要求159所述的方法,其中所述语音通信是实时电话呼叫。
161.根据权利要求159所述的方法,其中所述语音通信是实时FaceTime呼叫。
162.根据权利要求159所述的方法,其中所述语音通信是记录的语音信箱。
163.根据权利要求159-162中任一项所述的方法,其中提供所述指示包括在用户界面内显示所述物理位置的可选描述,所述用户界面包括使用电话应用程序进行的最近通话。
164.根据权利要求163所述的方法,其中所述可选描述指示所述内容项与所述语音通信相关联。
165.根据权利要求163-164中任一项所述的方法,其中检测所述输入包括:在显示包括最近通话的所述用户界面时检测所述可选描述上的输入。
166.根据权利要求159-165中任一项所述的方法,其中提供所述指示包括向所述电子设备的所述用户提供触觉反馈。
167.根据权利要求159-166中任一项所述的方法,其中提供所述指示包括将关于所述物理位置的信息发送到邻近所述电子设备的不同电子设备。
168.根据权利要求159-167中任一项所述的方法,其中确定所述语音通信包括描述所述物理位置的语音包括:分析所述语音通信的所述部分以检测关于物理位置的信息,其中在经由与所述电子设备通信的音频系统而输出所述语音通信时执行所述分析。
169.根据权利要求159-168中任一项所述的方法,其中接收所述语音通信的至少一部分包括:从所述电子设备的用户接收应分析所述语音通信的所述部分的指令。
170.根据权利要求169所述的方法,其中所述指示对应于对某一硬件按钮的选择。
171.根据权利要求169所述的方法,其中所述指令对应于来自所述电子设备用户的命令,包括字词“嘿,Siri”。
172.一种电子设备,包括:
触敏表面;
显示器;
一个或多个处理器;
存储器,所述存储器存储被配置为由所述一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行根据权利要求159-171中任一项所述的方法的指令。
173.一种电子设备上的图形用户界面,所述电子设备具有存储器、触敏表面、显示器、以及用于执行存储在所述存储器中的一个或多个程序的一个或多个处理器,所述图形用户界面包括根据权利要求159-171所述的方法中的任一方法所显示的用户界面。
174.一种具有触敏表面和显示器的电子设备,所述电子设备包括:
用于执行根据权利要求159-171中任一项所述的方法的装置。
175.一种用于在包括触敏表面和显示器的电子设备中使用的信息处理装置,包括:
用于执行根据权利要求159-171中任一项所述的方法的装置。
176.一种电子设备,包括:
触敏表面单元,所述触敏表面单元被配置为接收来自用户的接触;
显示单元,所述显示单元被配置为显示用户界面;和
处理单元,所述处理单元与所述触敏表面单元和所述显示单元耦接,所述处理单元被配置为:
接收语音通信的至少一部分,其中所述语音通信的所述部分包括由所述远程设备的远程用户提供的语音,所述远程用户不同于所述电子设备的用户;
确定所述语音通信包括识别物理位置的语音;
响应于确定所述语音通信包括识别所述物理位置的语音,来提供已经检测到关于所述物理位置的信息的指示;
经由所述触敏表面单元检测输入;以及
响应于检测到所述输入:
打开接受地理位置数据的应用程序;以及
使用关于所述物理位置的信息来填充所述应用程序。
177.根据权利要求176所述的电子设备,其中所述语音通信是实时电话呼叫。
178.根据权利要求176所述的电子设备,其中所述语音通信是实时FaceTime呼叫。
179.根据权利要求176所述的电子设备,其中所述语音通信是记录的语音信箱。
180.根据权利要求176-179中任一项所述的电子设备,其中提供所述指示包括在用户界面内显示所述物理位置的可选描述,所述用户界面包括使用电话应用程序进行的最近通话。
181.根据权利要求180所述的电子设备,其中所述可选描述指示所述内容项与所述语音通信相关联。
182.根据权利要求180-181中任一项所述的电子设备,其中检测所述输入包括:在显示包括最近通话的所述用户界面时检测所述可选描述上的输入。
183.根据权利要求176-182中任一项所述的电子设备,其中提供所述指示包括向所述电子设备的所述用户提供触觉反馈。
184.根据权利要求176-183中任一项所述的电子设备,其中提供所述指示包括将关于所述物理位置的信息发送到邻近所述电子设备的不同电子设备。
185.根据权利要求176-184中任一项所述的电子设备,其中确定所述语音通信包括描述所述物理位置的语音包括:分析所述语音通信的所述部分以检测关于物理位置的信息,其中在经由与所述电子设备通信的音频系统而输出所述语音通信时执行所述分析。
186.根据权利要求176-185中任一项所述的电子设备,其中接收所述语音通信的至少一部分包括:从所述电子设备的用户接收应分析所述语音通信的所述部分的指令。
187.根据权利要求186所述的电子设备,其中所述指令对应于对某一硬件按钮的选择。
188.根据权利要求186所述的电子设备,其中所述指令对应于来自所述电子设备用户的命令,包括字词“嘿,Siri”。
189.一种存储可执行指令的非暂态计算机可读存储介质,当所述可执行指令由具有显示器和触敏表面的电子设备执行时,使得所述电子设备:
在所述显示器上的即时消息应用程序中呈现文本输入字段和会话副本;
当在所述显示器上呈现所述即时消息应用程序时,确定来自所述电子设备用户的所述下一个可能的输入是关于物理位置的信息;
分析与所述文本输入字段和所述会话副本相关联的内容,以至少部分地基于所述分析内容的一部分来确定建议的物理位置;
在所述显示器上的所述即时消息应用程序内呈现识别所述建议的物理位置的可选用户界面元素;
接收对所述可选用户界面元素的选择;以及
响应于接收到所述选择,来在所述文本输入字段中呈现所述建议的物理位置的表示。
190.根据权利要求189所述的非暂态计算机可读存储介质,其中所述即时消息应用程序包括虚拟键盘,并且所述可选用户界面元素显示在与所述虚拟键盘相邻并且在所述虚拟键盘上方的建议部分中。
191.根据权利要求189-190中任一项所述的非暂态计算机可读存储介质,其中确定来自所述电子设备用户的下一个可能的输入是关于物理位置的信息包括:处理与所述文本输入字段和所述会话副本相关联的所述内容,以检测所述会话副本包括关于所述用户当前位置的问题。
192.根据权利要求191所述的非暂态计算机可读存储介质,其中处理所述内容包括应用自然语言处理算法以检测形成所述问题的一个或多个预定义的关键字。
193.根据权利要求191-192中任一项所述的非暂态计算机可读存储介质,其中所述问题被包括在从不同于所述用户的第二用户接收的消息中。
194.根据权利要求189-193中任一项所述的非暂态计算机可读存储介质,其中确定来自所述电子设备用户的下一个可能的输入是关于物理位置的信息包括:在所述即时消息应用程序的所述文本输入部分中监视从用户接收的键入输入。
195.根据权利要求189-194中任一项所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
根据确定所述用户正在键入且尚未选择所述可选用户界面元素,停止呈现所述可选用户界面元素。
196.根据权利要求189-194中任一项所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
根据确定所述用户已提供指示所述用户将不选择所述可选用户界面元素的另外输入,停止呈现所述可选用户界面元素。
197.根据权利要求189-196中任一项所述的非暂态计算机可读存储介质,其中所述建议的物理位置的所述表示包括识别所述电子设备的当前地理位置的信息。
198.根据权利要求189-197中任一项所述的非暂态计算机可读存储介质,其中所述建议的物理位置的表示是地址。
199.根据权利要求189-197中任一项所述的非暂态计算机可读存储介质,其中所述建议的物理位置的表示是地图对象,所述地图对象包括用于所述建议的物理位置的标识符。
200.根据权利要求189-199中任一项所述的非暂态计算机可读存储介质,其中所述建议的物理位置对应于所述用户最近在所述即时消息应用程序之外的应用程序中查看的位置。
201.根据权利要求189-200中任一项所述的非暂态计算机可读存储介质,其中所述即时消息应用程序是邮件应用程序。
202.根据权利要求189-200中任一项所述的非暂态计算机可读存储介质,其中所述即时消息应用程序是文本即时消息应用程序。
203.一种方法,包括:
在具有一个或多个处理器、存储器、触敏表面和显示器的电子设备处:
在所述显示器上的即时消息应用程序中呈现文本输入字段和会话副本;
当在所述显示器上呈现所述即时消息应用程序时,确定来自所述电子设备用户的所述下一个可能的输入是关于物理位置的信息;
分析与所述文本输入字段和所述会话副本相关联的内容,以至少部分地基于所述分析内容的一部分来确定建议的物理位置;
在所述显示器上的所述即时消息应用程序内呈现识别所述建议的物理位置的可选用户界面元素;
接收对所述可选用户界面元素的选择;以及
响应于接收到所述选择,来在所述文本输入字段中呈现所述建议的物理位置的表示。
204.根据权利要求203所述的方法,其中所述即时消息应用程序包括虚拟键盘,并且所述可选用户界面元素显示在与所述虚拟键盘相邻并且在所述虚拟键盘上方的建议部分中。
205.根据权利要求203-204中任一项所述的方法,其中确定来自所述电子设备用户的下一个可能的输入是关于物理位置的信息包括:处理与所述文本输入字段和所述会话副本相关联的所述内容,以检测所述会话副本包括关于所述用户当前位置的问题。
206.根据权利要求205所述的方法,其中处理所述内容包括应用自然语言处理算法以检测形成所述问题的一个或多个预定义的关键字。
207.根据权利要求205-206中任一项所述的方法,其中所述问题被包括在从不同于所述用户的第二用户接收的消息中。
208.根据权利要求203-207中任一项所述的方法,其中确定来自所述电子设备用户的下一个可能的输入是关于物理位置的信息包括:在所述即时消息应用程序的所述文本输入部分中监视从用户接收的键入输入。
209.根据权利要求203-208中任一项所述的方法,还包括:
根据确定所述用户正在键入且尚未选择所述可选用户界面元素,停止呈现所述可选用户界面元素。
210.根据权利要求203-209中任一项所述的方法,还包括:
根据确定所述用户已提供指示所述用户将不选择所述可选用户界面元素的另外输入,停止呈现所述可选用户界面元素。
211.根据权利要求203-210中任一项所述的方法,其中所述建议的物理位置的所述表示包括识别所述电子设备的当前地理位置的信息。
212.根据权利要求203-211中任一项所述的方法,其中所述建议的物理位置的表示是地址。
213.根据权利要求203-211中任一项所述的方法,其中所述建议的物理位置的表示是地图对象,所述地图对象包括用于所述建议的物理位置的标识符。
214.根据权利要求203-213中任一项所述的方法,其中所述建议的物理位置对应于所述用户最近在所述即时消息应用程序之外的应用程序中查看的位置。
215.根据权利要求203-214中任一项所述的方法,其中所述即时消息应用程序是邮件应用程序。
216.根据权利要求203-214中任一项所述的方法,其中所述即时消息应用程序是文本即时消息应用程序。
217.一种电子设备,包括:
触敏表面;
显示器;
一个或多个处理器;
存储器,所述存储器存储被配置为由所述一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行根据权利要求203-216中任一项所述的方法的指令。
218.一种电子设备上的图形用户界面,所述电子设备具有存储器、触敏表面、显示器、以及用于执行存储在所述存储器中的一个或多个程序的一个或多个处理器,所述图形用户界面包括根据权利要求203-216所述的方法中的任一方法所显示的用户界面。
219.一种具有触敏表面和显示器的电子设备,所述电子设备包括:
用于执行根据权利要求203-216中任一项所述的方法的装置。
220.一种用于在包括触敏表面和显示器的电子设备中使用的信息处理装置,包括:
用于执行根据权利要求203-216中任一项所述的方法的装置。
221.一种电子设备,包括:
触敏表面单元,所述触敏表面单元被配置为接收来自用户的接触;
显示单元,所述显示单元被配置为显示用户界面;和
处理单元,所述处理单元与所述触敏表面单元和所述显示单元耦接,所述处理单元被配置为:
在所述显示器上的即时消息应用程序中呈现文本输入字段和会话副本;
当在所述显示器上呈现所述即时消息应用程序时,确定来自所述电子设备用户的所述下一个可能的输入是关于物理位置的信息;
分析与所述文本输入字段和所述会话副本相关联的内容,以至少部分地基于所述分析内容的一部分来确定建议的物理位置;
在所述显示器上的所述即时消息应用程序内呈现识别所述建议的物理位置的可选用户界面元素;
接收对所述可选用户界面元素的选择;以及
响应于接收到所述选择,来在所述文本输入字段中呈现所述建议的物理位置的表示。
222.根据权利要求221所述的电子设备,其中所述即时消息应用程序包括虚拟键盘,并且所述可选用户界面元素显示在与所述虚拟键盘相邻并且在所述虚拟键盘上方的建议部分中。
223.根据权利要求221-222中任一项所述的电子设备,其中确定来自所述电子设备用户的下一个可能的输入是关于物理位置的信息包括:处理与所述文本输入字段和所述会话副本相关联的所述内容,以检测所述会话副本包括关于所述用户当前位置的问题。
224.根据权利要求223所述的电子设备,其中处理所述内容包括应用自然语言处理算法以检测形成所述问题的一个或多个预定义的关键字。
225.根据权利要求223-224中任一项所述的电子设备,其中所述问题被包括在从不同于所述用户的第二用户接收的消息中。
226.根据权利要求221-225中任一项所述的电子设备,其中确定来自所述电子设备用户的下一个可能的输入是关于物理位置的信息包括:在所述即时消息应用程序的所述文本输入部分中监视从用户接收的键入输入。
227.根据权利要求221-226中任一项所述的电子设备,其中所述处理单元被进一步配置为:
根据确定所述用户正在键入且尚未选择所述可选用户界面元素,停止呈现所述可选用户界面元素。
228.根据权利要求221-226中任一项所述的电子设备,其中所述处理单元被进一步配置为:
根据确定所述用户已提供指示所述用户将不选择所述可选用户界面元素的另外输入,停止呈现所述可选用户界面元素。
229.根据权利要求221-228中任一项所述的电子设备,其中所述建议的物理位置的所述表示包括识别所述电子设备的当前地理位置的信息。
230.根据权利要求221-229中任一项所述的电子设备,其中所述建议的物理位置的表示是地址。
231.根据权利要求221-229中任一项所述的电子设备,其中所述建议的物理位置的表示是地图对象,所述地图对象包括用于所述建议的物理位置的标识符。
232.根据权利要求221-231中任一项所述的电子设备,其中所述建议的物理位置对应于所述用户最近在所述即时消息应用程序之外的应用程序中查看的位置。
233.根据权利要求221-232中任一项所述的电子设备,其中所述即时消息应用程序是邮件应用程序。
234.根据权利要求221-232中任一项所述的电子设备,其中所述即时消息应用程序是文本即时消息应用程序。
235.一种存储可执行指令的非暂态计算机可读存储介质,当所述可执行指令由与显示器通信的电子设备执行时,使得所述电子设备:
在显示第一应用程序时,获取用于识别用户在所述第一应用程序中查看的第一物理位置的信息;
退出所述第一应用程序;
在退出所述第一应用程序之后,接收来自所述用户的打开不同于所述第一应用程序的第二应用程序的请求;以及
响应于接收到所述请求并且根据确定所述第二应用程序能够接受地理位置信息,呈现所述第二应用程序,其中呈现所述第二应用程序包括使用至少部分地基于所述第一物理位置识别信息的信息来填充所述第二应用程序。
236.根据权利要求235所述的非暂态计算机可读存储介质,其中接收打开所述第二应用程序的所述请求包括:退出所述第一应用程序后,检测所述第二应用程序的示能表示上的输入。
237.根据权利要求236所述的非暂态计算机可读存储介质,其中所述第二应用程序的所述示能表示是显示在所述电子设备home屏幕内的图标。
238.根据权利要求236所述的非暂态计算机可读存储介质,其中:
检测所述输入包括
在物理home按钮上检测双击,
响应于检测到所述双击,来显示应用程序切换用户界面,以及
从所述应用程序切换用户界面内检测对所述示能表示的选择。
239.根据权利要求235-238中任一项所述的非暂态计算机可读存储介质,其中填充所述第二应用程序包括显示用户界面对象,所述用户界面对象包括至少部分地基于所述第一物理位置识别信息的信息。
240.根据权利要求239所述的非暂态计算机可读存储介质,其中所述用户界面对象包括文本描述,所述文本描述通知所述用户所述第一物理位置最近在第一应用程序中被查看。
241.根据权利要求240所述的非暂态计算机可读存储介质,其中:
所述用户界面对象是在所述第二应用程序内显示的地图,并且
填充所述第二应用程序包括:填充所述地图以包括所述第一物理位置的标识符。
242.根据权利要求240-241中任一项所述的非暂态计算机可读存储介质,其中所述第二应用程序呈现有虚拟键盘,并且所述用户界面对象显示在所述虚拟键盘的上方。
243.根据权利要求240-242中任一项所述的非暂态计算机可读存储介质,其中获取所述信息包括获取关于第二物理位置的信息,并且显示所述用户界面对象包括显示具有与所述第二物理位置有关的所述信息的所述用户界面对象。
244.根据权利要求235-243中任一项所述的非暂态计算机可读存储介质,其中确定所述第二应用程序能够接受地理位置信息包括以下项中的一个或多个:(i)确定所述第二应用程序包括能够接受和处理地理位置数据的输入接收字段;(ii)确定所述第二应用程序能够在地图上显示地理位置信息;(iii)确定所述第二应用程序能够使用地理位置信息来促进路线引导;以及(iv)确定所述第二应用程序能够使用地理位置信息定位和提供运输服务。
245.根据权利要求244所述的非暂态计算机可读存储介质,其中:
确定所述第二应用程序能够接受地理位置信息包括:确定所述第二应用程序包括能够接受和处理地理位置数据的输入接收字段,并且
所述输入接收字段是允许在所述第二应用程序内显示的地图内进行搜索的搜索框。
246.根据权利要求235-245中任一项所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
响应于接收到所述请求,基于所述用户的应用程序使用历史来确定所述第二应用程序是否与所述第一应用程序相关联。
247.根据权利要求246所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
在呈现所述第二应用程序之前,为所述第二应用程序提供对识别所述第一物理位置的所述信息的访问,其中在提供所述访问之前,所述第二应用程序不能访问识别所述第一物理位置的所述信息。
248.一种方法,包括:
在具有一个或多个处理器、存储器、触敏表面和显示器的电子设备处:
在显示第一应用程序时,获取用于识别用户在所述第一应用程序中查看的第一物理位置的信息;
退出所述第一应用程序;
在退出所述第一应用程序之后,接收来自所述用户的打开不同于所述第一应用程序的第二应用程序的请求;以及
响应于接收到所述请求并且根据确定所述第二应用程序能够接受地理位置信息,呈现所述第二应用程序,其中呈现所述第二应用程序包括使用至少部分地基于所述第一物理位置识别信息的信息来填充所述第二应用程序。
249.根据权利要求248所述的方法,其中接收打开所述第二应用程序的所述请求包括:
退出所述第一应用程序后,检测所述第二应用程序的示能表示上的输入。
250.根据权利要求249所述的方法,其中所述第二应用程序的所述示能表示是显示在所述电子设备home屏幕内的图标。
251.根据权利要求249所述的方法,其中:
检测所述输入包括
在物理home按钮上检测双击,
响应于检测到所述双击,来显示应用程序切换用户界面,以及
从所述应用程序切换用户界面内检测对所述示能表示的选择。
252.根据权利要求248-251中任一项所述的方法,其中填充所述第二应用程序包括显示用户界面对象,所述用户界面对象包括至少部分地基于所述第一物理位置识别信息的信息。
253.根据权利要求252所述的方法,其中所述用户界面对象包括文本描述,所述文本描述通知所述用户所述第一物理位置最近在第一应用程序中被查看。
254.根据权利要求253所述的方法,其中:
所述用户界面对象是在所述第二应用程序内显示的地图,并且
填充所述第二应用程序包括:填充所述地图以包括所述第一物理位置的标识符。
255.根据权利要求253-254中任一项所述的方法,其中所述第二应用程序呈现有虚拟键盘,并且所述用户界面对象显示在所述虚拟键盘的上方。
256.根据权利要求253-255中任一项所述的方法,其中获取所述信息包括获取关于第二物理位置的信息,并且显示所述用户界面对象包括显示具有与所述第二物理位置有关的所述信息的所述用户界面对象。
257.根据权利要求248-256中任一项所述的方法,其中确定所述第二应用程序能够接受地理位置信息包括以下项中的一个或多个:(i)确定所述第二应用程序包括能够接受和处理地理位置数据的输入接收字段;(ii)确定所述第二应用程序能够在地图上显示地理位置信息;(iii)确定所述第二应用程序能够使用地理位置信息来促进路线引导;以及(iv)确定所述第二应用程序能够使用地理位置信息定位和提供运输服务。
258.根据权利要求257所述的方法,其中:
确定所述第二应用程序能够接受地理位置信息包括:确定所述第二应用程序包括能够接受和处理地理位置数据的输入接收字段,并且
所述输入接收字段是允许在所述第二应用程序内显示的地图内进行搜索的搜索框。
259.根据权利要求248-258中任一项所述的方法,还包括:
响应于接收到所述请求,基于所述用户的应用程序使用历史来确定所述第二应用程序是否与所述第一应用程序相关联。
260.根据权利要求259所述的方法,还包括:
在呈现所述第二应用程序之前,为所述第二应用程序提供对识别所述第一物理位置的所述信息的访问权限,其中在提供有所述访问权限之前,所述第二应用程序不具有对识别所述第一物理位置的所述信息的访问权限。
261.一种电子设备,包括:
触敏表面;
显示器;
一个或多个处理器;
存储器,所述存储器存储被配置为由所述一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行根据权利要求248-260中任一项所述的方法的指令。
262.一种电子设备上的图形用户界面,所述电子设备具有存储器、触敏表面、显示器、以及用于执行存储在所述存储器中的一个或多个程序的一个或多个处理器,所述图形用户界面包括根据权利要求248-260所述的方法中的任一方法所显示的用户界面。
263.一种具有触敏表面和显示器的电子设备,所述电子设备包括:
用于执行根据权利要求248-260中任一项所述的方法的装置。
264.一种用于在包括触敏表面和显示器的电子设备中使用的信息处理装置,包括:
用于执行根据权利要求248-260中任一项所述的方法的装置。
265.一种电子设备,包括:
触敏表面单元,所述触敏表面单元被配置为接收来自用户的接触;
显示单元,所述显示单元被配置为显示用户界面;和
处理单元,所述处理单元与所述触敏表面单元和所述显示单元耦接,所述处理单元被配置为:
在显示第一应用程序时,获取用于识别用户在所述第一应用程序中查看的第一物理位置的信息;
退出所述第一应用程序;
在退出所述第一应用程序之后,接收来自所述用户的打开不同于所述第一应用程序的第二应用程序的请求;以及
响应于接收到所述请求并且根据确定所述第二应用程序能够接受地理位置信息,呈现所述第二应用程序,其中呈现所述第二应用程序包括使用至少部分地基于所述第一物理位置识别信息的信息来填充所述第二应用程序。
266.根据权利要求265所述的电子设备,其中接收打开所述第二应用程序的所述请求包括:退出所述第一应用程序后,检测所述第二应用程序的示能表示上的输入。
267.根据权利要求266所述的电子设备,其中所述第二应用程序的所述示能表示是显示在所述电子设备home屏幕内的图标。
268.根据权利要求266所述的电子设备,其中:
检测所述输入包括
在物理home按钮上检测双击,
响应于检测到所述双击,来显示应用程序切换用户界面,以及
从所述应用程序切换用户界面内检测对所述示能表示的选择。
269.根据权利要求265-268中任一项所述的电子设备,其中填充所述第二应用程序包括显示用户界面对象,所述用户界面对象包括至少部分地基于所述第一物理位置识别信息的信息。
270.根据权利要求269所述的电子设备,其中所述用户界面对象包括文本描述,所述文本描述通知所述用户所述第一物理位置最近在第一应用程序中被查看。
271.根据权利要求270所述的电子设备,其中:
所述用户界面对象是在所述第二应用程序内显示的地图,并且
填充所述第二应用程序包括:填充所述地图以包括所述第一物理位置的标识符。
272.根据权利要求270-271中任一项所述的电子设备,其中所述第二应用程序呈现有虚拟键盘,并且所述用户界面对象显示在所述虚拟键盘的上方。
273.根据权利要求270-272中任一项所述的电子设备,其中获取所述信息包括获取关于第二物理位置的信息,并且显示所述用户界面对象包括显示具有与所述第二物理位置有关的所述信息的所述用户界面对象。
274.根据权利要求265-273中任一项所述的电子设备,其中确定所述第二应用程序能够接受地理位置信息包括以下项中的一个或多个:(i)确定所述第二应用程序包括能够接受和处理地理位置数据的输入接收字段;(ii)确定所述第二应用程序能够在地图上显示地理位置信息;(iii)确定所述第二应用程序能够使用地理位置信息来促进路线引导;以及(iv)确定所述第二应用程序能够使用地理位置信息定位和提供运输服务。
275.根据权利要求274所述的电子设备,其中:
确定所述第二应用程序能够接受地理位置信息包括:确定所述第二应用程序包括能够接受和处理地理位置数据的输入接收字段,并且
所述输入接收字段是允许在所述第二应用程序内显示的地图内进行搜索的搜索框。
276.根据权利要求265-275中任一项所述的电子设备,其中所述处理单元被进一步配置为:
响应于接收到所述请求,基于所述用户的应用程序使用历史来确定所述第二应用程序是否与所述第一应用程序相关联。
277.根据权利要求276所述的电子设备,其中所述处理单元被进一步配置为:
在呈现所述第二应用程序之前,为所述第二应用程序提供对识别所述第一物理位置的所述信息的访问权限,其中在提供有所述访问权限之前,所述第二应用程序不具有对识别所述第一物理位置的所述信息的访问权限。
278.一种存储可执行指令的非暂态计算机可读存储介质,当所述可执行指令由与显示器通信的电子设备执行时,使得所述电子设备:
获取用于识别用户在第一应用程序中查看的第一物理位置的信息;
检测第一输入;
响应于检测到所述第一输入:
识别能够接受地理位置信息的第二应用程序;
在所述显示器的至少一部分上呈现不同于所述第一应用程序的示能表示,并建议打开具有关于所述第一物理位置的信息的所述第二应用程序;
检测所述示能表示处的第二输入;以及
响应于在所述示能表示处检测到第二输入:
打开所述第二应用程序;
填充所述第二应用程序以包括至少部分地基于所述第一物理位置识别信息的信息。
279.根据权利要求278所述的非暂态计算机可读存储介质,其中所述第一输入对应于打开应用程序切换用户界面的请求。
280.根据权利要求279所述的非暂态计算机可读存储介质,其中所述示能表示在所述应用程序切换用户界面内呈现。
281.根据权利要求280所述的非暂态计算机可读存储介质,其中呈现所述示能表示包括:
结合呈现所述示能表示,在所述应用程序切换用户界面内呈现正在所述电子设备上执行的应用程序的表示;以及
在位于所述应用程序的所述表示下方的所述显示器区域中呈现所述示能表示。
282.根据权利要求278所述的非暂态计算机可读存储介质,其中所述第一输入对应于打开所述电子设备home屏幕的请求。
283.根据权利要求282所述的非暂态计算机可读存储介质,其中所述示能表示在所述home屏幕的一部分上呈现。
284.根据权利要求278-283中任一项所述的非暂态计算机可读存储介质,其中所述建议包括文本描述,所述文本描述特定于与所述第二应用程序相关联的类型。
285.根据权利要求278-284中任一项所述的非暂态计算机可读存储介质,其中填充所述第二应用程序包括显示用户界面对象,所述用户界面对象包括至少部分地基于所述第一物理位置识别信息的信息。
286.根据权利要求285所述的非暂态计算机可读存储介质,其中所述用户界面对象包括文本描述,所述文本描述通知所述用户所述第一物理位置最近在第一应用程序中被查看。
287.根据权利要求286所述的非暂态计算机可读存储介质,其中:
所述用户界面对象是在所述第二应用程序内显示的地图,并且
填充所述第二应用程序包括:填充所述地图以包括所述第一物理位置的标识符。
288.根据权利要求286-287中任一项所述的非暂态计算机可读存储介质,其中所述第二应用程序呈现有虚拟键盘,并且所述用户界面对象显示在所述虚拟键盘的上方。
289.根据权利要求278-288中任一项所述的非暂态计算机可读存储介质,其中识别所述第二应用程序能够接受地理位置信息包括以下项中的一个或多个:(i)确定所述第二应用程序包括能够接受和处理地理位置数据的输入接收字段;(ii)确定所述第二应用程序能够在地图上显示地理位置信息;(iii)确定所述第二应用程序能够使用地理位置信息来促进路线引导;以及(iv)确定所述第二应用程序能够使用地理位置信息定位和提供运输服务。
290.根据权利要求289所述的非暂态计算机可读存储介质,其中:
识别所述第二应用程序能够接受地理位置信息包括:确定所述第二应用程序包括能够接受和处理地理位置数据的输入接收字段,并且
所述输入接收字段是允许在所述第二应用程序内显示的地图内进行搜索的搜索框。
291.一种方法,包括:
在具有一个或多个处理器、存储器、触敏表面和显示器的电子设备处:
获取用于识别用户在第一应用程序中查看的第一物理位置的信息;
检测第一输入;
响应于检测到所述第一输入:
识别能够接受地理位置信息的第二应用程序;
在所述显示器的至少一部分上呈现不同于所述第一应用程序的示能表示,并建议打开具有关于所述第一物理位置的信息的所述第二应用程序;
检测所述示能表示处的第二输入;以及
响应于在所述示能表示处检测到第二输入:
打开所述第二应用程序;
填充所述第二应用程序以包括至少部分地基于所述第一物理位置识别信息的信息。
292.根据权利要求291所述的方法,其中所述第一输入对应于打开应用程序切换用户界面的请求。
293.根据权利要求292所述的方法,其中所述示能表示在所述应用程序切换用户界面内呈现。
294.根据权利要求293所述的方法,其中呈现所述示能表示包括:
结合呈现所述示能表示,在所述应用程序切换用户界面内呈现正在所述电子设备上执行的应用程序的表示;以及
在位于所述应用程序的所述表示下方的所述显示器区域中呈现所述示能表示。
295.根据权利要求291所述的方法,其中所述第一输入对应于打开所述电子设备home屏幕的请求。
296.根据权利要求295所述的方法,其中所述示能表示在所述home屏幕的一部分上呈现。
297.根据权利要求291-296中任一项所述的方法,其中所述建议包括文本描述,所述文本描述特定于与所述第二应用程序相关联的类型。
298.根据权利要求291-297中任一项所述的方法,其中填充所述第二应用程序包括显示用户界面对象,所述用户界面对象包括至少部分地基于所述第一物理位置识别信息的信息。
299.根据权利要求298所述的方法,其中所述用户界面对象包括文本描述,所述文本描述通知所述用户所述第一物理位置最近在第一应用程序中被查看。
300.根据权利要求299所述的方法,其中:
所述用户界面对象是在所述第二应用程序内显示的地图,并且
填充所述第二应用程序包括:填充所述地图以包括所述第一物理位置的标识符。
301.根据权利要求299-300中任一项所述的方法,其中所述第二应用程序呈现有虚拟键盘,并且所述用户界面对象显示在所述虚拟键盘的上方。
302.根据权利要求291-301中任一项所述的方法,其中识别所述第二应用程序能够接受地理位置信息包括以下项中的一个或多个:(i)确定所述第二应用程序包括能够接受和处理地理位置数据的输入接收字段;(ii)确定所述第二应用程序能够在地图上显示地理位置信息;(iii)确定所述第二应用程序能够使用地理位置信息来促进路线引导;以及(iv)确定所述第二应用程序能够使用地理位置信息定位和提供运输服务。
303.根据权利要求302所述的方法,其中:
识别所述第二应用程序能够接受地理位置信息包括:确定所述第二应用程序包括能够接受和处理地理位置数据的输入接收字段,并且
所述输入接收字段是允许在所述第二应用程序内显示的地图内进行搜索的搜索框。
304.一种电子设备,包括:
触敏表面;
显示器;
一个或多个处理器;
存储器,所述存储器存储被配置为由所述一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行根据权利要求291-303中任一项所述的方法的指令。
305.一种电子设备上的图形用户界面,所述电子设备具有存储器、触敏表面、显示器、以及用于执行存储在所述存储器中的一个或多个程序的一个或多个处理器,所述图形用户界面包括根据权利要求291-303所述的方法中的任一方法所显示的用户界面。
306.一种具有触敏表面和显示器的电子设备,所述电子设备包括:
用于执行根据权利要求291-303中任一项所述的方法的装置。
307.一种用于在包括触敏表面和显示器的电子设备中使用的信息处理装置,包括:
用于执行根据权利要求291-303中任一项所述的方法的装置。
308.一种电子设备,包括:
触敏表面单元,所述触敏表面单元被配置为接收来自用户的接触;
显示单元,所述显示单元被配置为显示用户界面;和
处理单元,所述处理单元与所述触敏表面单元和所述显示单元耦接,所述处理单元被配置为:
获取用于识别用户在第一应用程序中查看的第一物理位置的信息;
检测第一输入;
响应于检测到所述第一输入:
识别能够接受地理位置信息的第二应用程序;
在所述显示单元的至少一部分上呈现不同于所述第一应用程序的示能表示,并建议打开具有关于所述第一物理位置的信息的所述第二应用程序;
检测所述示能表示处的第二输入;以及
响应于在所述示能表示处检测到第二输入:
打开所述第二应用程序;
填充所述第二应用程序以包括至少部分地基于所述第一物理位置识别信息的信息。
309.根据权利要求308所述的电子设备,其中所述第一输入对应于打开应用程序切换用户界面的请求。
310.根据权利要求309所述的电子设备,其中所述示能表示在所述应用程序切换用户界面内呈现。
311.根据权利要求310所述的电子设备,其中呈现所述示能表示包括:
结合呈现所述示能表示,在所述应用程序切换用户界面内呈现正在所述电子设备上执行的应用程序的表示;以及
在位于所述应用程序的所述表示下方的所述显示单元区域中呈现所述示能表示。
312.根据权利要求308所述的电子设备,其中所述第一输入对应于打开所述电子设备home屏幕的请求。
313.根据权利要求312所述的电子设备,其中所述示能表示在所述home屏幕的一部分上呈现。
314.根据权利要求308-313中任一项所述的电子设备,其中所述建议包括文本描述,所述文本描述特定于与所述第二应用程序相关联的类型。
315.根据权利要求308-314中任一项所述的电子设备,其中填充所述第二应用程序包括显示用户界面对象,所述用户界面对象包括至少部分地基于所述第一物理位置识别信息的信息。
316.根据权利要求315所述的电子设备,其中所述用户界面对象包括文本描述,所述文本描述通知所述用户所述第一物理位置最近在第一应用程序中被查看。
317.根据权利要求316所述的电子设备,其中:
所述用户界面对象是在所述第二应用程序内显示的地图,并且
填充所述第二应用程序包括:填充所述地图以包括所述第一物理位置的标识符。
318.根据权利要求316-317中任一项所述的电子设备,其中所述第二应用程序呈现有虚拟键盘,并且所述用户界面对象显示在所述虚拟键盘的上方。
319.根据权利要求308-318中任一项所述的电子设备,其中识别所述第二应用程序能够接受地理位置信息包括以下项中的一个或多个:(i)确定所述第二应用程序包括能够接受和处理地理位置数据的输入接收字段;(ii)确定所述第二应用程序能够在地图上显示地理位置信息;(iii)确定所述第二应用程序能够使用地理位置信息来促进路线引导;以及(iv)确定所述第二应用程序能够使用地理位置信息定位和提供运输服务。
320.根据权利要求319所述的电子设备,其中:
识别所述第二应用程序能够接受地理位置信息包括:确定所述第二应用程序包括能够接受和处理地理位置数据的输入接收字段,并且
所述输入接收字段是允许在所述第二应用程序内显示的地图内进行搜索的搜索框。
321.一种存储可执行指令的非暂态计算机可读存储介质,当所述可执行指令由与显示器通信的电子设备执行时,使得所述电子设备:
获取用于识别用户在所述电子设备上正在执行的所述第一应用程序中查看的第一物理位置的信息;
确定所述用户已经进入车辆;
响应于确定所述用户已经进入车辆,来向所述用户提供使用所述第一物理位置作为路线引导的目的地的提示;
响应于提供所述提示,来从所述用户接收使用所述第一物理位置作为路线引导的目的地的指令;以及
促进到所述第一物理位置的路线引导。
322.根据权利要求321所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
检测所述电子设备已经接收到消息,包括:检测所述消息包括识别第二物理位置的信息;并且
响应于所述检测,来向所述用户提供使用所述第二物理位置作为路线引导的新目的地的新提示。
323.根据权利要求322所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
响应于从所述用户接收到使用所述第二物理位置作为新目的地的指令,来促进到所述第二物理位置的路线引导。
324.根据权利要求322-323中任一项所述的非暂态计算机可读存储介质,其中检测所述消息包括识别所述第二物理位置的所述信息包括:当所述电子设备上可用的虚拟助理正在经由与所述电子设备通信的音频系统而将所述消息读出给所述用户时,执行所述检测。
325.根据权利要求322-324中任一项所述的非暂态计算机可读存储介质,其中确定所述用户已经进入所述车辆包括检测所述电子设备已经建立与所述车辆的通信链路。
326.根据权利要求322-325中任一项所述的非暂态计算机可读存储介质,其中促进所述路线引导包括经由所述电子设备的所述显示器提供所述路线引导。
327.根据权利要求322-325中任一项所述的非暂态计算机可读存储介质,其中促进所述路线引导包括向所述车辆发送识别所述第一物理位置的所述信息。
328.根据权利要求322-327中任一项所述的非暂态计算机可读存储介质,其中促进所述路线引导包括经由与所述电子设备通信的音频系统来提供所述路线引导。
329.一种方法,包括:
在具有一个或多个处理器、存储器、触敏表面和显示器的电子设备处:
获取用于识别用户在所述电子设备上正在执行的所述第一应用程序中查看的第一物理位置的信息;
确定所述用户已经进入车辆;
响应于确定所述用户已经进入车辆,来向所述用户提供使用所述第一物理位置作为路线引导的目的地的提示;
响应于提供所述提示,来从所述用户接收使用所述第一物理位置作为路线引导的目的地的指令;以及
促进到所述第一物理位置的路线引导。
330.根据权利要求329所述的方法,还包括:
检测所述电子设备已经接收到消息,包括:检测所述消息包括识别第二物理位置的信息;并且
响应于所述检测,来向所述用户提供使用所述第二物理位置作为路线引导的新目的地的新提示。
331.根据权利要求330所述的方法,还包括:
响应于从所述用户接收到使用所述第二物理位置作为新目的地的指令,来促进到所述第二物理位置的路线引导。
332.根据权利要求330-331中任一项所述的方法,其中检测所述消息包括识别所述第二物理位置的所述信息包括:当所述电子设备上可用的虚拟助理正在经由与所述电子设备通信的音频系统而将所述消息读出给所述用户时,执行所述检测。
333.根据权利要求330-332中任一项所述的方法,其中确定所述用户已经进入所述车辆包括检测所述电子设备已经建立与所述车辆的通信链路。
334.根据权利要求330-333中任一项所述的方法,其中促进所述路线引导包括经由所述电子设备的所述显示器提供所述路线引导。
335.根据权利要求330-333中任一项所述的方法,其中促进所述路线引导包括向所述车辆发送识别所述第一物理位置的所述信息。
336.根据权利要求330-335中任一项所述的方法,其中促进所述路线引导包括经由与所述电子设备通信的音频系统来提供所述路线引导。
337.一种电子设备,包括:
触敏表面;
显示器;
一个或多个处理器;
存储器,所述存储器存储被配置为由所述一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行根据权利要求329-336中任一项所述的方法的指令。
338.一种电子设备上的图形用户界面,所述电子设备具有存储器、触敏表面、显示器、以及用于执行存储在所述存储器中的一个或多个程序的一个或多个处理器,所述图形用户界面包括根据权利要求329-336所述的方法中的任一方法所显示的用户界面。
339.一种具有触敏表面和显示器的电子设备,所述电子设备包括:
用于执行根据权利要求329-336中任一项所述的方法的装置。
340.一种用于在包括触敏表面和显示器的电子设备中使用的信息处理装置,包括:
用于执行根据权利要求329-336中任一项所述的方法的装置。
341.一种电子设备,包括:
触敏表面单元,所述触敏表面单元被配置为接收来自用户的接触;
显示单元,所述显示单元被配置为显示用户界面;和
处理单元,所述处理单元与所述触敏表面单元和所述显示单元耦接,所述处理单元被配置为:
获取用于识别用户在所述电子设备上正在执行的所述第一应用程序中查看的第一物理位置的信息;
确定所述用户已经进入车辆;
响应于确定所述用户已经进入车辆,来向所述用户提供使用所述第一物理位置作为路线引导的目的地的提示;
响应于提供所述提示,来从所述用户接收使用所述第一物理位置作为路线引导的目的地的指令;以及
促进到所述第一物理位置的路线引导。
342.根据权利要求341所述的电子设备,其中所述处理单元被进一步配置为:
检测所述电子设备已经接收到消息,包括:检测所述消息包括识别第二物理位置的信息;并且
响应于所述检测,来向所述用户提供使用所述第二物理位置作为路线引导的新目的地的新提示。
343.根据权利要求342所述的电子设备,其中所述处理单元被进一步配置为:
响应于从所述用户接收到使用所述第二物理位置作为新目的地的指令,来促进到所述第二物理位置的路线引导。
344.根据权利要求342-343中任一项所述的电子设备,其中检测所述消息包括识别所述第二物理位置的所述信息包括:当所述电子设备上可用的虚拟助理正在经由与所述电子设备通信的音频系统而将所述消息读出给所述用户时,执行所述检测。
345.根据权利要求342-344中任一项所述的电子设备,其中确定所述用户已经进入所述车辆包括检测所述电子设备已经建立与所述车辆的通信链路。
346.根据权利要求342-345中任一项所述的电子设备,其中促进所述路线引导包括经由所述电子设备的所述显示器提供所述路线引导。
347.根据权利要求342-345中任一项所述的电子设备,其中促进所述路线引导包括向所述车辆发送识别所述第一物理位置的所述信息。
348.根据权利要求342-347中任一项所述的电子设备,其中促进所述路线引导包括经由与所述电子设备通信的音频系统来提供所述路线引导。
349.一种存储可执行指令的非暂态计算机可读存储介质,当所述可执行指令由与显示器通信的电子设备执行时,使得所述电子设备:
在第一应用程序中呈现内容;
接收来自所述用户的打开不同于所述第一应用程序的第二应用程序的请求,所述第二应用程序包括输入接收字段;
响应于接收到所述请求,来呈现具有所述输入接收字段的所述第二应用程序;
在所述输入接收字段处接收任何用户输入之前,提供可选用户界面对象以允许所述用户将所述内容的至少一部分粘贴到所述输入接收字段;
响应于检测到对所述可选用户界面对象的选择,来将所述内容的所述部分粘贴到所述输入接收字段中。
350.根据权利要求349所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
在提供所述可选用户界面对象前,将所述输入接收字段识别为能够接受所述内容的所述部分的字段。
351.根据权利要求350所述的非暂态计算机可读存储介质,其中响应于检测到对所述输入接收字段的选择,将所述输入接收字段识别为能够接受所述内容的所述部分的字段。
352.根据权利要求349-351中任一项所述的非暂态计算机可读存储介质,其中所述内容的所述部分对应于图像。
353.根据权利要求349-351中任一项所述的非暂态计算机可读存储介质,其中所述内容的所述部分对应于文本内容。
354.根据权利要求349-351中任一项所述的非暂态计算机可读存储介质,其中所述内容的所述部分对应于文本内容和图像。
355.根据权利要求349-354中任一项所述的非暂态计算机可读存储介质,其中所述第一应用程序是网页浏览应用程序,并且所述第二应用程序是即时消息应用程序。
356.根据权利要求349-354中任一项所述的非暂态计算机可读存储介质,其中所述第一应用程序是照片浏览应用程序,并且所述第二应用程序是即时消息应用程序。
357.根据权利要求349-356中任一项所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
在接收打开所述第二应用程序的所述请求前,接收复制所述内容的至少所述部分的请求。
358.根据权利要求349-357中任一项所述的非暂态计算机可读存储介质,其中所述可选用户界面对象与以下指示一起显示:所述内容的所述部分最近在第一应用程序中被查看。
359.一种方法,包括:
在具有一个或多个处理器、存储器、触敏表面和显示器的电子设备处:
在第一应用程序中呈现内容;
接收来自所述用户的打开不同于所述第一应用程序的第二应用程序的请求,所述第二应用程序包括输入接收字段;
响应于接收到所述请求,来呈现具有所述输入接收字段的所述第二应用程序;
在所述输入接收字段处接收任何用户输入之前,提供可选用户界面对象以允许所述用户将所述内容的至少一部分粘贴到所述输入接收字段;
响应于检测到对所述可选用户界面对象的选择,来将所述内容的所述部分粘贴到所述输入接收字段中。
360.根据权利要求359所述的方法,还包括:
在提供所述可选用户界面对象前,将所述输入接收字段识别为能够接受所述内容的所述部分的字段。
361.根据权利要求360所述的方法,其中响应于检测到对所述输入接收字段的选择,将所述输入接收字段识别为能够接受所述内容的所述部分的字段。
362.根据权利要求359-361中任一项所述的方法,其中所述内容的所述部分对应于图像。
363.根据权利要求359-361中任一项所述的方法,其中所述内容的所述部分对应于文本内容。
364.根据权利要求359-361中任一项所述的方法,其中所述内容的所述部分对应于文本内容和图像。
365.根据权利要求359-364中任一项所述的方法,其中所述第一应用程序是网页浏览应用程序,并且所述第二应用程序是即时消息应用程序。
366.根据权利要求359-364中任一项所述的方法,其中所述第一应用程序是照片浏览应用程序,并且所述第二应用程序是即时消息应用程序。
367.根据权利要求359-366中任一项所述的方法,还包括:
在接收打开所述第二应用程序的所述请求前,接收复制所述内容的至少所述部分的请求。
368.根据权利要求359-367中任一项所述的方法,其中所述可选用户界面对象与以下指示一起显示:所述内容的所述部分最近在第一应用程序中被查看。
369.一种电子设备,包括:
触敏表面;
显示器;
一个或多个处理器;
存储器,所述存储器存储被配置为由所述一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行根据权利要求359-368中任一项所述的方法的指令。
370.一种电子设备上的图形用户界面,所述电子设备具有存储器、触敏表面、显示器、以及用于执行存储在所述存储器中的一个或多个程序的一个或多个处理器,所述图形用户界面包括根据权利要求359-368所述的方法中的任一方法所显示的用户界面。
371.一种具有触敏表面和显示器的电子设备,所述电子设备包括:
用于执行根据权利要求359-368中任一项所述的方法的装置。
372.一种用于在包括触敏表面和显示器的电子设备中使用的信息处理装置,包括:
用于执行根据权利要求359-368中任一项所述的方法的装置。
373.一种电子设备,包括:
触敏表面单元,所述触敏表面单元被配置为接收来自用户的接触;
显示单元,所述显示单元被配置为显示用户界面;和
处理单元,所述处理单元与所述触敏表面单元和所述显示单元耦接,所述处理单元被配置为:
在第一应用程序中呈现内容;
接收来自所述用户的打开不同于所述第一应用程序的第二应用程序的请求,所述第二应用程序包括输入接收字段;
响应于接收到所述请求,来呈现具有所述输入接收字段的所述第二应用程序;
在所述输入接收字段处接收任何用户输入之前,提供可选用户界面对象以允许所述用户将所述内容的至少一部分粘贴到所述输入接收字段;
响应于检测到对所述可选用户界面对象的选择,来将所述内容的所述部分粘贴到所述输入接收字段中。
374.根据权利要求373所述的电子设备,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
在提供所述可选用户界面对象前,将所述输入接收字段识别为能够接受所述内容的所述部分的字段。
375.根据权利要求374所述的电子设备,其中响应于检测到对所述输入接收字段的选择,将所述输入接收字段识别为能够接受所述内容的所述部分的字段。
376.根据权利要求373-375中任一项所述的电子设备,其中所述内容的所述部分对应于图像。
377.根据权利要求373-375中任一项所述的电子设备,其中所述内容的所述部分对应于文本内容。
378.根据权利要求373-375中任一项所述的电子设备,其中所述内容的所述部分对应于文本内容和图像。
379.根据权利要求373-378中任一项所述的电子设备,其中所述第一应用程序是网页浏览应用程序,并且所述第二应用程序是即时消息应用程序。
380.根据权利要求373-378中任一项所述的电子设备,其中所述第一应用程序是照片浏览应用程序,并且所述第二应用程序是即时消息应用程序。
381.根据权利要求373-380中任一项所述的电子设备,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
在接收打开所述第二应用程序的所述请求前,接收复制所述内容的至少所述部分的请求。
382.根据权利要求373-381中任一项所述的电子设备,其中所述可选用户界面对象与以下指示一起显示:所述内容的所述部分最近在第一应用程序中被查看。
383.一种存储可执行指令的非暂态计算机可读存储介质,当所述可执行指令由具有显示器和触敏表面的电子设备执行时,使得所述电子设备:
在所述显示器上呈现与应用程序相关联的文本内容;
确定所述文本内容的一部分与以下项有关:(i)位置,(ii)联系人,或(iii)事件;
在确定所述文本内容的所述部分与位置相关时,从所述电子设备上的位置传感器获取位置信息,并准备所述获取的位置信息以显示为预测的内容项;
在确定所述文本内容的所述部分与联系人相关时,在所述电子设备上针对与所述文本内容的所述部分相关的联系人信息进行搜索,并准备与经由所述搜索而检索到的至少一个联系人相关联的信息,以显示为预测的内容项;
在确定所述文本内容的所述部分与事件相关时,在所述电子设备上针对与所述文本内容的所述部分相关的事件信息进行新搜索,并准备至少部分地基于经由所述新搜索而检索到的至少一个事件的信息,以显示为预测的内容项;
在所述应用程序内显示包括所述预测内容项的示能表示;
经由所述触敏表面检测对所述示能表示的选择;以及
响应于检测到所述选择,来在所述显示器上邻近所述文本内容显示与所述预测内容项相关联的信息。
384.根据权利要求383所述的非暂态计算机可读存储介质,其中所述文本内容的所述部分对应于最近在所述应用程序内呈现的文本内容。
385.根据权利要求383-384中任一项所述的非暂态计算机可读存储介质,其中所述应用程序是即时消息应用程序,并且所述文本内容的所述部分是在所述即时消息应用程序中接收到的来自不同于所述电子设备的远程设备的远程用户的问题。
386.根据权利要求383-384中任一项所述的非暂态计算机可读存储介质,其中所述文本内容的所述部分是由所述电子设备的用户在所述应用程序内的输入接收字段处提供的输入。
387.根据权利要求383所述的非暂态计算机可读存储介质,其中响应于以下用户输入来识别所述文本内容的所述部分:选择包括所述文本内容的所述部分的用户界面对象。
388.根据权利要求387所述的非暂态计算机可读存储介质,其中所述应用程序是即时消息应用程序,并且所述用户界面对象是在所述即时消息应用程序内显示的会话中的消息气泡。
389.根据权利要求387-388中任一项所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
检测对第二用户界面对象的选择;
响应于检测到所述选择:
停止显示具有所述预测内容项的所述示能表示;
确定与所述第二用户界面对象相关联的文本内容涉及位置、联系人或事件;并且根据所述确定,在所述应用程序内显示新的预测内容项。
390.根据权利要求383-389中任一项所述的非暂态计算机可读存储介质,其中所述示能表示邻近所述应用程序内的虚拟键盘。
391.根据权利要求390所述的非暂态计算机可读存储介质,其中与所述预测内容项相关联的信息被显示在输入接收字段中,其中所述输入接收字段是显示在所述虚拟键盘处接收到的键入输入的字段。
392.根据权利要求383-391中任一项所述的非暂态计算机可读存储介质,其中所述确定包括在所述文本内容被所述应用程序接收时对其进行解析,以检测已知与联系人、事件和/或位置有关的所存储模式。
393.一种方法,包括:
在具有一个或多个处理器、存储器、触敏表面和显示器的电子设备处:
在所述显示器上呈现与应用程序相关联的文本内容;
确定所述文本内容的一部分与以下项有关:(i)位置,(ii)联系人,或(iii)事件;
在确定所述文本内容的所述部分与位置相关时,从所述电子设备上的位置传感器获取位置信息,并准备所述获取的位置信息以显示为预测内容项;
在确定所述文本内容的所述部分与联系人相关时,在所述电子设备上针对与所述文本内容的所述部分相关的联系人信息进行搜索,并准备与经由所述搜索而检索到的至少一个联系人相关联的信息,以显示为预测内容项;
在确定所述文本内容的所述部分与事件相关时,在所述电子设备上针对与所述文本内容的所述部分相关的事件信息进行新搜索,并准备至少部分地基于经由所述新搜索而检索到的至少一个事件的信息,以显示为预测内容项;
在所述应用程序内显示包括所述预测内容项的示能表示;
经由所述触敏表面检测对所述示能表示的选择;以及
响应于检测到所述选择,来在所述显示器上邻近所述文本内容显示与所述预测内容项相关联的信息。
394.根据权利要求393所述的方法,其中所述文本内容的所述部分对应于最近在所述应用程序内呈现的文本内容。
395.根据权利要求393-394中任一项所述的方法,其中所述应用程序是即时消息应用程序,并且所述文本内容的所述部分是在所述即时消息应用程序中接收到的来自不同于所述电子设备的远程设备的远程用户的问题。
396.根据权利要求393-394中任一项所述的方法,其中所述文本内容的所述部分是由所述电子设备的用户在所述应用程序内的输入接收字段处提供的输入。
397.根据权利要求393所述的方法,其中响应于以下用户输入来识别所述文本内容的所述部分:选择包括所述文本内容的所述部分的用户界面对象。
398.根据权利要求397所述的方法,其中所述应用程序是即时消息应用程序,并且所述用户界面对象是在所述即时消息应用程序内显示的会话中的消息气泡。
399.根据权利要求397-398中任一项所述的方法,还包括:
检测对第二用户界面对象的选择;
响应于检测到所述选择:
停止显示具有所述预测内容项的所述示能表示;
确定与所述第二用户界面对象相关联的文本内容涉及位置、联系人或事件;并且根据所述确定,在所述应用程序内显示新的预测内容项。
400.根据权利要求393-399中任一项所述的方法,其中所述示能表示邻近所述应用程序内的虚拟键盘来显示。
401.根据权利要求400所述的方法,其中与所述预测内容项相关联的信息被显示在输入接收字段中,其中所述输入接收字段是显示在所述虚拟键盘处接收到的键入输入的字段。
402.根据权利要求393-401中任一项所述的方法,其中所述确定包括在所述文本内容被所述应用程序接收时对其进行解析,以检测已知与联系人、事件和/或位置有关的所存储模式。
403.一种电子设备,包括:
触敏表面;
显示器;
一个或多个处理器;
存储器,所述存储器存储被配置为由所述一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行根据权利要求393-402中任一项所述的方法的指令。
404.一种电子设备上的图形用户界面,所述电子设备具有存储器、触敏表面、显示器、以及用于执行存储在所述存储器中的一个或多个程序的一个或多个处理器,所述图形用户界面包括根据权利要求393-402所述的方法中的任一方法所显示的用户界面。
405.一种具有触敏表面和显示器的电子设备,所述电子设备包括:
用于执行根据权利要求393-402中任一项所述的方法的装置。
406.一种用于在包括触敏表面和显示器的电子设备中使用的信息处理装置,包括:
用于执行根据权利要求393-402中任一项所述的方法的装置。
407.一种电子设备,包括:
触敏表面单元,所述触敏表面单元被配置为接收来自用户的接触;
显示单元,所述显示单元被配置为显示用户界面;和
处理单元,所述处理单元与所述触敏表面单元和所述显示单元耦接,所述处理单元被配置为:
在所述显示器上呈现与应用程序相关联的文本内容;
确定所述文本内容的一部分与以下项有关:(i)位置,(ii)联系人,或(iii)事件在确定所述文本内容的所述部分与位置相关时,从所述电子设备上的位置传感器获取位置信息,并准备所述获取的位置信息以显示为预测的内容项;
在确定所述文本内容的所述部分与联系人相关时,在所述电子设备上针对与所述文本内容的所述部分相关的联系人信息进行搜索,并准备与经由所述搜索而检索到的至少一个联系人相关联的信息,以显示为预测的内容项;
在确定所述文本内容的所述部分与事件相关时,在所述电子设备上针对与所述文本内容的所述部分相关的事件信息进行新搜索,并准备至少部分地基于经由所述新搜索而检索到的至少一个事件的信息,以显示为预测的内容项;
在所述应用程序内显示包括所述预测内容项的示能表示;
经由所述触敏表面检测对所述示能表示的选择;以及
响应于检测到所述选择,来在所述显示器上邻近所述文本内容显示与所述预测内容项相关联的信息。
408.根据权利要求407所述的电子设备,其中所述文本内容的所述部分对应于最近在所述应用程序内呈现的文本内容。
409.根据权利要求407-408中任一项所述的电子设备,其中所述应用程序是即时消息应用程序,并且所述文本内容的所述部分是在所述即时消息应用程序中接收到的来自不同于所述电子设备的远程设备的远程用户的问题。
410.根据权利要求407-408中任一项所述的电子设备,其中所述文本内容的所述部分是由所述电子设备的用户在所述应用程序内的输入接收字段处提供的输入。
411.根据权利要求407所述的电子设备,其中响应于以下用户输入来识别所述文本内容的所述部分:选择包括所述文本内容的所述部分的用户界面对象。
412.根据权利要求411所述的存储器,其中所述应用程序是即时消息应用程序,并且所述用户界面对象是在所述即时消息应用程序内显示的会话中的消息气泡。
413.根据权利要求411-412中任一项所述的电子设备,其中所述处理单元被进一步配置为:
检测对第二用户界面对象的选择;
响应于检测到所述选择:
停止显示具有所述预测内容项的所述示能表示;
确定与所述第二用户界面对象相关联的文本内容涉及位置、联系人或事件;并且根据所述确定,在所述应用程序内显示新的预测内容项。
414.根据权利要求407-413中任一项所述的电子设备,其中所述示能表示邻近所述应用程序内的虚拟键盘来显示。
415.根据权利要求414所述的电子设备,其中与所述预测内容项相关联的信息被显示在输入接收字段中,其中所述输入接收字段是显示在所述虚拟键盘处接收到的键入输入的字段。
416.一种存储可执行指令的非暂态计算机可读存储介质,当所述可执行指令由具有触敏表面和显示器的电子设备执行时,使得所述电子设备:
在所述显示器上显示与正在所述电子设备上执行的应用程序相关联的内容;
通过所述触敏表面检测轻扫手势,所述轻扫手势当被检测到时,使得所述电子设备进入与所述应用程序不同的搜索模式;
响应于检测到所述轻扫手势,来进入所述搜索模式,所述搜索模式包括显示在所述显示器上的搜索界面;
结合进入所述搜索模式,至少部分地基于与所述内容相关联的信息来确定至少一个建议的搜索查询;以及
在所述搜索界面处接收到任何用户输入之前,使用所述至少一个建议的搜索查询来填充所述显示的搜索界面。
417.根据权利要求416所述的非暂态计算机可读存储介质,其中检测所述轻扫手势包括在当前显示的所述内容的至少一部分上检测所述轻扫手势。
418.根据权利要求416-417中任一项所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
在检测所述轻扫手势之前,检测与查看所述电子设备home屏幕的请求相对应的输入;
以及
响应于检测到所述输入,来停止显示与所述应用程序相关联的内容,并显示所述电子设备的所述home屏幕的相应页面,其中:
所述相应页面是home屏幕页面序列中的初始页面;并且
在所述显示器上显示所述home屏幕的所述初始页面时检测所述轻扫手势。
419.根据权利要求416-418中任一项所述的非暂态计算机可读存储介质,其中所述搜索界面被显示为半透明地覆盖在所述应用程序上。
420.根据权利要求416-419中任一项所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
根据确定所述内容包括文本内容,至少部分地基于所述文本内容确定所述至少一个建议的搜索查询。
421.根据权利要求420所述的非暂态计算机可读存储介质,其中至少部分地基于所述文本内容确定所述至少一个建议的搜索查询包括:分析所述文本内容以检测用于确定所述至少一个建议搜索查询的一个或多个预定义关键字。
422.根据权利要求416-421中任一项所述的非暂态计算机可读存储介质,其中:
确定所述至少一个建议的搜索查询包括确定多个建议的搜索查询,并且
填充所述搜索界面包括用所述多个建议的搜索查询来填充所述搜索界面。
423.根据权利要求416-422中任一项所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
通过所述触敏表面检测当前显示的新内容上的新的轻扫手势;以及
响应于检测到所述新的轻扫手势,来进入所述搜索模式,其中进入所述搜索模式包括在所述显示器上显示所述搜索界面;以及
结合进入所述搜索模式并根据确定所述新内容不包括文本内容,使用所述建议的搜索查询来填充所述搜索界面,其中所述建议的搜索查询基于来自所述电子设备用户的一组选择的历史搜索查询。
424.根据权利要求423所述的非暂态计算机可读存储介质,其中基于由不同于所述应用程序的第二应用程序所提供的位置信息,而将所述搜索界面与兴趣点一起显示。
425.根据权利要求423-424中任一项所述的非暂态计算机可读存储介质,其中所述搜索界面还包括一个或多个建议的应用程序。
426.根据权利要求423-425中任一项所述的非暂态计算机可读存储介质,其中至少部分地基于最近搜索查询的频率来选择所述一组历史搜索查询。
427.根据权利要求416-426中任一项所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
结合进入所述搜索模式,通过使用所述电子设备上可用的一个或多个辅助功能来获取与所述内容相关联的信息。
428.根据权利要求427所述的非暂态计算机可读存储介质,其中使用所述一个或多个辅助功能包括,通过以下方式使用所述一个或多个辅助功能,以生成与所述内容相关联的信息:
(i)将自然语言处理算法应用于当前在所述应用程序内显示的文本内容,以及(ii)使用从所述自然语言处理算法获取的数据来确定描述所述内容的一个或多个关键字,并且其中所述至少一个建议的搜索查询基于所述一个或多个关键字确定。
429.根据权利要求428所述的非暂态计算机可读存储介质,其中确定描述所述内容的所述一个或多个关键字还包括
(i)检索与当前在所述应用程序中显示的非文本内容相对应的元数据,以及(ii)除了从所述自然语言处理算法获取的所述数据外,还使用所述检索的元数据来确定所述一个或多个关键字。
430.根据权利要求416-429中任一项所述的非暂态计算机可读存储介质,其中所述搜索界面还包括一个或多个趋势查询。
431.根据权利要求430所述的非暂态计算机可读存储介质,其中所述搜索界面还包括被预测为所述电子设备的用户感兴趣的一个或多个应用程序。
432.一种方法,包括:
在包括一个或多个处理器、存储器、触敏表面和显示器的电子设备处:
在所述显示器上显示与正在所述电子设备上执行的应用程序相关联的内容;
通过所述触敏表面检测轻扫手势,所述轻扫手势当被检测到时,使得所述电子设备进入与所述应用程序不同的搜索模式;
响应于检测到所述轻扫手势,来进入所述搜索模式,所述搜索模式包括显示在所述显示器上的搜索界面;
结合进入所述搜索模式,至少部分地基于与所述内容相关联的信息来确定至少一个建议的搜索查询;以及
在所述搜索界面处接收到任何用户输入之前,使用所述至少一个建议的搜索查询来填充所述显示的搜索界面。
433.根据权利要求432所述的方法,其中检测所述轻扫手势包括在当前显示的所述内容的至少一部分上检测所述轻扫手势。
434.根据权利要求432-433中任一项所述的方法,包括:
在检测所述轻扫手势之前,检测与查看所述电子设备home屏幕的请求相对应的输入;
以及
响应于检测到所述输入,来停止显示与所述应用程序相关联的内容,并显示所述电子设备的所述home屏幕的相应页面,其中:
所述相应页面是home屏幕页面序列中的初始页面;并且
在所述显示器上显示所述home屏幕的所述初始页面时检测所述轻扫手势。
435.根据权利要求432-434中任一项所述的方法,其中所述搜索界面被显示为半透明地覆盖在所述应用程序上。
436.根据权利要求432-435中任一项所述的方法,包括:
根据确定所述内容包括文本内容,至少部分地基于所述文本内容确定所述至少一个建议的搜索查询。
437.根据权利要求436所述的方法,其中至少部分地基于所述文本内容确定所述至少一个建议的搜索查询包括:分析所述文本内容以检测用于确定所述至少一个建议搜索查询的一个或多个预定义关键字。
438.根据权利要求432-437中任一项所述的方法,其中:
确定所述至少一个建议的搜索查询包括确定多个建议的搜索查询,并且
填充所述搜索界面包括用所述多个建议的搜索查询来填充所述搜索界面。
439.根据权利要求432-438中任一项所述的方法,包括:
通过所述触敏表面检测当前显示的新内容上的新的轻扫手势;以及
响应于检测到所述新的轻扫手势,来进入所述搜索模式,其中进入所述搜索模式包括在所述显示器上显示所述搜索界面;以及
结合进入所述搜索模式并根据确定所述新内容不包括文本内容,使用所述建议的搜索查询来填充所述搜索界面,所述建议的搜索查询基于来自所述电子设备用户的一组选择的历史搜索查询。
440.根据权利要求439所述的方法,其中基于由不同于所述应用程序的第二应用程序所提供的位置信息,而将所述搜索界面与兴趣点一起显示。
441.根据权利要求439-440中任一项所述的方法,其中所述搜索界面还包括一个或多个建议的应用程序。
442.根据权利要求439-441中任一项所述的方法,其中至少部分地基于最近搜索查询的频率来选择所述一组历史搜索查询。
443.根据权利要求432-442中任一项所述的方法,包括:
结合进入所述搜索模式,通过使用所述电子设备上可用的一个或多个辅助功能来获取与所述内容相关联的信息。
444.根据权利要求443所述的方法,其中使用所述一个或多个辅助功能包括,通过以下方式使用所述一个或多个辅助功能,以生成与所述内容相关联的信息:
(i)将自然语言处理算法应用于当前在所述应用程序内显示的文本内容,以及(ii)使用从所述自然语言处理算法获取的数据来确定描述所述内容的一个或多个关键字,并且其中所述至少一个建议的搜索查询基于所述一个或多个关键字确定。
445.根据权利要求444所述的方法,其中确定描述所述内容的所述一个或多个关键字还包括
(i)检索与当前在所述应用程序中显示的非文本内容相对应的元数据,以及(ii)除了从所述自然语言处理算法获取的所述数据外,还使用所述检索的元数据来确定所述一个或多个关键字。
446.根据权利要求432-445中任一项所述的方法,其中所述搜索界面还包括一个或多个趋势查询。
447.根据权利要求446所述的方法,其中所述搜索界面还包括被预测为所述电子设备的用户感兴趣的一个或多个应用程序。
448.一种电子设备,包括:
触敏表面;
显示器;
一个或多个处理器;
存储器,所述存储器存储被配置为由所述一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行根据权利要求432-447中任一项所述的方法的指令。
449.一种电子设备上的图形用户界面,所述电子设备具有触敏表面、显示器、存储器以及用于执行存储在所述存储器中的一个或多个程序的一个或多个处理器,所述图形用户界面包括根据权利要求432-447所述的方法中的任一方法所显示的用户界面。
450.一种电子设备,包括:
触敏表面;
显示器;和
用于执行根据权利要求432-447中任一项所述的方法的装置。
451.一种用于在包括触敏表面和显示器的电子设备中使用的信息处理装置,包括:
用于执行根据权利要求432-447中任一项所述的方法的装置。
452.一种电子设备,包括:
显示单元,所述显示单元被配置为显示用户界面;
触敏单元,所述触敏单元被配置为通过所述触敏显示单元的触敏表面检测来自用户的接触;
处理单元,所述处理单元与所述触敏表面单元和所述显示单元耦接,所述处理单元被配置为:
在所述显示单元上显示与正在所述电子设备上执行的应用程序相关联的内容;
通过所述触敏表面单元检测轻扫手势,所述轻扫手势当被检测到时,使得所述电子设备进入与所述应用程序不同的搜索模式;
响应于检测到所述轻扫手势,来进入所述搜索模式,所述搜索模式包括显示在所述显示单元上的搜索界面;
结合进入所述搜索模式,至少部分地基于与所述内容相关联的信息来确定至少一个建议的搜索查询;以及
在所述搜索界面处接收到任何用户输入之前,使用所述至少一个建议的搜索查询来填充所述显示的搜索界面。
453.根据权利要求452所述的电子设备,其中检测所述轻扫手势包括在当前显示的所述内容的至少一部分上检测所述轻扫手势。
454.根据权利要求452-453中任一项所述的电子设备,其中所述处理单元被进一步配置为:
在检测所述轻扫手势之前,检测与查看所述电子设备home屏幕的请求相对应的输入;
以及
响应于检测到所述输入,来停止显示与所述应用程序相关联的内容,并显示所述电子设备的所述home屏幕的相应页面,其中:
所述相应页面是home屏幕页面序列中的初始页面;并且
在所述显示单元上显示所述home屏幕的所述初始页面时检测所述轻扫手势。
455.根据权利要求452-454中任一项所述的电子设备,其中所述搜索界面被显示为半透明地覆盖在所述应用程序上。
456.根据权利要求452-455中任一项所述的电子设备,其中所述处理单元被进一步配置为:
根据确定所述内容包括文本内容,至少部分地基于所述文本内容确定所述至少一个建议的搜索查询。
457.根据权利要求456所述的电子设备,其中至少部分地基于所述文本内容确定所述至少一个建议的搜索查询包括:分析所述文本内容以检测用于确定所述至少一个建议搜索查询的一个或多个预定义关键字。
458.根据权利要求452-457中任一项所述的电子设备,其中:
确定所述至少一个建议的搜索查询包括确定多个建议的搜索查询,并且
填充所述搜索界面包括用所述多个建议的搜索查询来填充所述搜索界面。
459.根据权利要求452-458中任一项所述的电子设备,其中所述处理单元被进一步配置为:
通过所述触敏表面单元检测当前显示的新内容上的新的轻扫手势;以及
响应于检测到所述新的轻扫手势,来进入所述搜索模式,其中进入所述搜索模式包括在所述显示单元上显示所述搜索界面;以及
结合进入所述搜索模式并根据确定所述新内容不包括文本内容,使用所述建议的搜索查询来填充所述搜索界面,其中所述建议的搜索查询基于来自所述电子设备用户的一组选择的历史搜索查询。
460.根据权利要求459所述的电子设备,其中基于由不同于所述应用程序的第二应用程序所提供的位置信息,而将所述搜索界面与兴趣点一起显示。
461.根据权利要求459-460中任一项所述的电子设备,其中所述搜索界面还包括一个或多个建议的应用程序。
462.根据权利要求459-461中任一项所述的电子设备,其中至少部分地基于最近搜索查询的频率来选择所述一组历史搜索查询。
463.根据权利要求452-462中任一项所述的电子设备,其中所述处理单元被进一步配置为:
结合进入所述搜索模式,通过使用所述电子设备上可用的一个或多个辅助功能来获取与所述内容相关联的信息。
464.根据权利要求463所述的电子设备,其中使用所述一个或多个辅助功能包括,通过以下方式使用所述一个或多个辅助功能,以生成与所述内容相关联的信息:
(i)将自然语言处理算法应用于当前在所述应用程序内显示的文本内容,以及(ii)使用从所述自然语言处理算法获取的数据来确定描述所述内容的一个或多个关键字,并且其中所述至少一个建议的搜索查询基于所述一个或多个关键字确定。
465.根据权利要求464所述的电子设备,其中确定描述所述内容的所述一个或多个关键字还包括
(i)检索与当前在所述应用程序中显示的非文本内容相对应的元数据,以及(ii)除了从所述自然语言处理算法获取的所述数据外,还使用所述检索的元数据来确定所述一个或多个关键字。
466.根据权利要求452-465中任一项所述的电子设备,其中所述搜索界面还包括一个或多个趋势查询。
467.根据权利要求466所述的电子设备,其中所述搜索界面还包括被预测为所述电子设备的用户感兴趣的一个或多个应用程序。
468.一种存储可执行指令的非暂态计算机可读存储介质,当所述可执行指令由具有触敏表面和显示器的电子设备执行时,使得所述电子设备:
通过所述触敏表面检测用户界面上的轻扫手势,其中所述轻扫手势当被检测到时,使得所述电子设备进入搜索模式;以及
响应于检测到所述轻扫手势,来进入所述搜索模式,其中进入所述搜索模式包括:在搜索界面内接收到任意用户输入前,使用第一内容项填充与所述用户界面不同的搜索界面,其中:
根据确定所述用户界面包括与应用程序相关联的内容,所述用户界面不同于包括用于调用应用程序的可选图标的home屏幕,使用所述第一内容项填充所述搜索界面包括:使用至少一个建议的搜索查询来填充所述搜索界面,所述至少一个建议的搜索查询至少部分地基于与所述应用程序相关联的所述内容;以及
根据确定所述用户界面与所述home屏幕的页面相关联,使用所述第一内容项填充所述搜索界面包括:使用示能表示填充所述搜索界面,所述示能表示包括对处于所述电子设备当前位置的阈值距离内的至少一个兴趣点的可选描述。
469.根据权利要求468所述的非暂态计算机可读存储介质,其中:
使用所述示能表示填充所述搜索界面包括:在所述触敏表面上显示所述搜索界面的搜索入口部分;并且
所述指令在由所述电子设备执行时还使得所述电子设备:
在所述搜索入口部分处检测输入;以及
响应于在所述搜索入口部分检测到输入,来停止显示所述示能表示并且在所述搜索界面内显示至少一个建议的搜索查询。
470.一种方法,包括:
在包括一个或多个处理器、存储器、触敏表面和显示器的电子设备处:
通过所述触敏表面检测用户界面上的轻扫手势,其中所述轻扫手势当被检测到时,使得所述电子设备进入搜索模式;以及
响应于检测到所述轻扫手势,来进入所述搜索模式,其中进入所述搜索模式包括:在搜索界面内接收到任意用户输入前,使用第一内容项填充与所述用户界面不同的所述搜索界面,
其中:
根据确定所述用户界面包括与应用程序相关联的内容,所述用户界面不同于包括用于调用应用程序的可选图标的home屏幕,使用所述第一内容项填充所述搜索界面包括:使用至少一个建议的搜索查询来填充所述搜索界面,所述至少一个建议的搜索查询至少部分地基于与所述应用程序相关联的所述内容;以及
根据确定所述用户界面与所述home屏幕的页面相关联,使用所述第一内容项填充所述搜索界面包括:使用示能表示填充所述搜索界面,所述示能表示包括对处于所述电子设备当前位置的阈值距离内的至少一个兴趣点的可选描述。
471.根据权利要求470所述的方法,其中:
使用所述示能表示填充所述搜索界面包括:在所述触敏表面上显示所述搜索界面的搜索入口部分;并且
所述方法还包括:
在所述搜索入口部分检测输入;以及
响应于在所述搜索入口部分检测到输入,来停止显示所述示能表示并且在所述搜索界面内显示至少一个建议的搜索查询。
472.一种电子设备,包括:
触敏表面;
显示器;
一个或多个处理器;和
存储器,所述存储器存储被配置为由所述一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行根据权利要求470-471中任一项所述的方法的指令。
473.一种电子设备上的图形用户界面,所述电子设备具有触敏表面、显示器、存储器以及用于执行存储在所述存储器中的一个或多个程序的一个或多个处理器,所述图形用户界面包括根据权利要求470-471所述的方法中的任一方法所显示的用户界面。
474.一种电子设备,包括:
触敏表面;
显示器;和
用于执行根据权利要求470-471中任一项所述的方法的装置。
475.一种用于在包括触敏表面和显示器的电子设备中使用的信息处理装置,包括:
用于执行根据权利要求470-471中任一项所述的方法的装置。
476.一种电子设备,包括:
显示单元,所述显示单元被配置为显示用户界面;
触敏表面单元,所述触敏表面单元被配置为接收来自用户的接触;
处理单元,所述处理单元与所述触敏表面单元和所述显示单元耦接,所述处理单元被配置为:
通过所述触敏表面单元检测用户界面上的轻扫手势,其中当检测到所述轻扫手势时,使得所述电子设备进入搜索模式;以及
响应于检测到所述轻扫手势,来进入所述搜索模式,其中进入所述搜索模式包括:在搜索界面内接收到任意用户输入前,使用第一内容项填充与所述用户界面不同的搜索界面,其中:
根据确定所述用户界面包括与应用程序相关联的内容,所述用户界面不同于包括用于调用应用程序的可选图标的home屏幕,使用所述第一内容项填充所述搜索界面包括:使用至少一个建议的搜索查询来填充所述搜索界面,所述至少一个建议的搜索查询至少部分地基于与所述应用程序相关联的所述内容;以及
根据确定所述用户界面与所述home屏幕的页面相关联,使用所述第一内容项填充所述搜索界面包括:使用示能表示填充所述搜索界面,所述示能表示包括对处于所述电子设备当前位置的阈值距离内的至少一个兴趣点的可选描述。
477.根据权利要求476所述的电子设备,其中:
使用所述示能表示填充所述搜索界面包括显示所述搜索界面的搜索入口部分;并且所述处理单元被进一步配置为:
在所述搜索入口部分处检测输入;以及
响应于在所述搜索入口部分检测到输入,来停止显示所述示能表示并且在所述搜索界面内显示所述至少一个建议的搜索查询。
478.一种存储可执行指令的非暂态计算机可读存储介质,所述可执行指令当由具有触敏表面、显示器和位置传感器的电子设备执行时,使得所述电子设备:
自动地,并且在没有来自用户的指令的情况下:
确定所述电子设备用户位于已经停靠在某个地理位置处的车辆中;
在确定所述用户已经离开位于所述地理位置处的车辆时,确定从所述位置传感器检索的用于识别所述地理位置的定位信息是否满足准确度标准;
在确定所述定位信息不满足所述准确度标准时,向所述用户提供用于输入有关所述地理位置的信息的提示;以及
响应于提供所述提示,来从所述用户接收关于所述地理位置的信息并将所述信息存储为车辆位置信息。
479.根据权利要求478所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
在确定所述定位信息满足准确度标准时,自动地并且在没有来自用户的指令情况下,将所述定位信息存储为所述车辆位置信息。
480.根据权利要求479所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
根据确定所述用户正前往所述地理位置,显示包括所述车辆位置信息的用户界面对象。
481.根据权利要求480所述的非暂态计算机可读存储介质,其中所述用户界面对象是地图对象,所述地图对象包括所述用户当前位置的标识符和地理位置的单独标识符。
482.根据权利要求481所述的非暂态计算机可读存储介质,其中所述用户界面对象显示在所述电子设备的锁定屏幕上。
483.根据权利要求481所述的非暂态计算机可读存储介质,其中响应于使得所述电子设备进入搜索模式的轻扫手势,来显示所述用户界面对象。
484.根据权利要求483所述的非暂态计算机可读存储介质,其中响应于接收到所述轻扫手势,来执行确定所述用户是否正在前往所述地理位置。
485.根据权利要求478-484中任一项所述的非暂态计算机可读存储介质,其中:
所述提示是由通过所述电子设备可用的虚拟助理所提供的音频提示,
从所述用户接收所述信息包括从所述用户接收识别所述地理位置的口头描述,以及显示所述用户界面对象包括显示可选示能表示,当所述可选示能表示被选择时,使得所述设备回放所述口头描述。
486.根据权利要求478-484中任一项所述的非暂态计算机可读存储介质,其中:
所述提示被显示在所述电子设备的所述显示器上,
从所述用户接收所述信息包括从所述用户接收识别所述地理位置的文本描述,以及显示所述用户界面对象包括显示来自所述用户的所述文本描述。
487.根据权利要求478-484中任一项所述的非暂态计算机可读存储介质,其中:
确定所述用户是否正在前往所述地理位置包括:使用从所述位置传感器接收的新的定位信息来确定所述电子设备正在向所述地理位置移动。
488.根据权利要求487所述的非暂态计算机可读存储介质,其中:
确定所述用户是否正在前往所述地理位置包括
(i)确定所述电子设备在不同的地理位置处停留超出阈值时间周期,以及(ii)确定所述新的定位信息指示所述电子设备正在远离所述不同的地理位置并朝向所述地理位置移动。
489.根据权利要求478-488中任一项所述的非暂态计算机可读存储介质,其中确定所述用户处于已经停靠在所述地理位置处的所述车辆中包括:(i)通过确定所述电子设备正在以高于阈值速度行进,来确定所述用户位于所述车辆中(ii)通过以下项中的一个或多个来确定所述车辆已经停靠在所述地理位置处:(a)确定所述电子设备已经在所述地理位置处停留超出阈值时间周期,(b)确定所述电子设备与所述车辆之间的通信链路已经断开,以及(c)确定所述地理位置对应于停车场内的位置。
490.根据权利要求489所述的非暂态计算机可读存储介质,其中确定所述车辆已经停靠在所述地理位置处包括:确定所述电子设备已经在所述地理位置处停留超出阈值时间周期。
491.根据权利要求489-490中任一项所述的非暂态计算机可读存储介质,其中确定所述车辆已经停靠在所述地理位置处包括:确定所述电子设备和所述车辆之间的通信链路已经断开。
492.根据权利要求489-491中任一项所述的非暂态计算机可读存储介质,其中确定所述车辆已经停靠在所述地理位置处包括:确定所述地理位置对应于停车场内的位置。
493.根据权利要求478-492中任一项所述的非暂态计算机可读存储介质,其中所述准确度标准包括当与所述定位信息相关联的GPS读数准确度高于准确度的阈值平时所满足的标准。
494.一种方法,包括:
在包括一个或多个处理器、存储器、触敏表面、显示器和位置传感器的电子设备处:
自动地,并且在没有来自用户的指令的情况下:
确定所述电子设备用户位于已经停靠在某个地理位置处的车辆中;
在确定所述用户已经离开位于所述地理位置处的车辆时,确定从所述位置传感器检索的用于识别所述地理位置的定位信息是否满足准确度标准;
在确定所述定位信息不满足所述准确度标准时,向所述用户提供用于输入有关所述地理位置的信息的提示;以及
响应于提供所述提示,来从所述用户接收关于所述地理位置的信息并将所述信息存储为车辆位置信息。
495.根据权利要求494所述的方法,包括:
在确定所述定位信息满足准确度标准时,自动地并且在没有来自用户的指令情况下,将所述定位信息存储为所述车辆位置信息。
496.根据权利要求495所述的方法,包括:
根据确定所述用户正前往所述地理位置,显示包括所述车辆位置信息的用户界面对象。
497.根据权利要求496所述的方法,其中所述用户界面对象是地图对象,所述地图对象包括所述用户当前位置的标识符和地理位置的单独标识符。
498.根据权利要求497所述的方法,其中所述用户界面对象显示在所述电子设备的锁定屏幕上。
499.根据权利要求497所述的方法,其中响应于使得所述电子设备进入搜索模式的轻扫手势,来显示所述用户界面对象。
500.根据权利要求499所述的方法,其中响应于接收到所述轻扫手势,来执行确定所述用户是否正在前往所述地理位置。
501.根据权利要求494-500中任一项所述的方法,其中:
所述提示是由通过所述电子设备可用的虚拟助理所提供的音频提示,
从所述用户接收所述信息包括从所述用户接收识别所述地理位置的口头描述,以及显示所述用户界面对象包括显示可选示能表示,当所述可选示能表示被选择时,使得所述设备回放所述口头描述。
502.根据权利要求494-500中任一项所述的方法,其中:
所述提示被显示在所述电子设备的所述显示器上,
从所述用户接收所述信息包括从所述用户接收识别所述地理位置的文本描述,以及显示所述用户界面对象包括显示来自所述用户的所述文本描述。
503.根据权利要求494-500中任一项所述的方法,其中:
确定所述用户是否正在前往所述地理位置包括:使用从所述位置传感器接收的新的定位信息来确定所述电子设备正在向所述地理位置移动。
504.根据权利要求503所述的方法,其中:
确定所述用户是否正在前往所述地理位置包括
(i)确定所述电子设备在不同的地理位置处停留超出阈值时间周期,以及(ii)确定所述新的定位信息指示所述电子设备正在远离所述不同的地理位置并朝向所述地理位置移动。
505.根据权利要求494-504中任一项所述的方法,其中确定所述用户处于已经停靠在所述地理位置处的所述车辆中包括:(i)通过确定所述电子设备正在以高于阈值速度行进,来确定所述用户位于所述车辆中(ii)通过以下项中的一个或多个来确定所述车辆已经停靠在所述地理位置处:(a)确定所述电子设备已经在所述地理位置处停留超出阈值时间周期,(b)确定所述电子设备与所述车辆之间的通信链路已经断开,以及(c)确定所述地理位置对应于停车场内的位置。
506.根据权利要求505所述的方法,其中确定所述车辆已经停靠在所述地理位置处包括:确定所述电子设备已经在所述地理位置处停留超出阈值时间周期。
507.根据权利要求505-506中任一项所述的方法,其中确定所述车辆已经停靠在所述地理位置处包括:确定所述电子设备和所述车辆之间的通信链路已经断开。
508.根据权利要求505-507中任一项所述的方法,其中确定所述车辆已经停靠在所述地理位置处包括:确定所述地理位置对应于停车场内的位置。
509.根据权利要求494-508中任一项所述的方法,其中所述准确度标准包括当与所述定位信息相关联的GPS读数准确度高于准确度的阈值水平时所满足的标准。
510.一种电子设备,包括:
触敏表面;
显示器;
位置传感器;
一个或多个处理器;和
存储器,所述存储器存储被配置为由所述一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行根据权利要求494-509中任一项所述的方法的指令。
511.一种电子设备上的图形用户界面,所述电子设备具有触敏表面、显示器、位置传感器、存储器以及用于执行存储在所述存储器中的一个或多个程序的一个或多个处理器,所述图形用户界面包括根据权利要求494-509所述的方法中的任一方法所显示的用户界面。
512.一种电子设备,包括:
触敏表面;
位置传感器;
显示器;和
用于执行根据权利要求494-509中任一项所述的方法的装置。
513.一种用于在包括触敏表面、显示器和位置传感器的电子设备中使用的信息处理装置,包括:
用于执行根据权利要求494-509中任一项所述的方法的装置。
514.一种电子设备,包括:
显示单元,所述显示单元被配置为显示用户界面;
触敏表面单元,所述触敏表面单元被配置为接收来自用户的接触;
位置传感器单元,所述位置传感器单元被配置为获取所述电子设备的定位信息;
处理单元,所述处理单元与所述触敏表面单元、所述显示单元和所述位置传感器单元耦接,所述处理单元被配置为:
自动地,并且在没有来自用户的指令的情况下:
确定所述电子设备用户位于已经停靠在某个地理位置处的车辆中;
在确定所述用户已经离开位于所述地理位置处的车辆时,确定从所述位置传感器单元检索的用于识别所述地理位置的定位信息是否满足准确度标准;
在确定所述定位信息不满足所述准确度标准时,向所述用户提供用于输入有关所述地理位置的信息的提示;以及
响应于提供所述提示,来从所述用户接收关于所述地理位置的信息并将所述信息存储为车辆位置信息。
515.根据权利要求514所述的电子设备,其中所述处理单元被进一步配置为:
在确定所述定位信息满足准确度标准时,自动地并且在没有来自用户的指令情况下,将所述定位信息存储为所述车辆位置信息。
516.根据权利要求515所述的电子设备,其中所述处理单元被进一步配置为:
根据确定所述用户正前往所述地理位置,显示包括所述车辆位置信息的用户界面对象。
517.根据权利要求516所述的电子设备,其中所述用户界面对象是地图对象,所述地图对象包括所述用户当前位置的标识符和地理位置的单独标识符。
518.根据权利要求517所述的电子设备,其中所述用户界面对象显示在所述电子设备的锁定屏幕上。
519.根据权利要求517所述的电子设备,其中响应于使得所述电子设备进入搜索模式的轻扫手势,来显示所述用户界面对象。
520.根据权利要求519所述的电子设备,其中响应于接收到所述轻扫手势,来执行确定所述用户是否正在前往所述地理位置。
521.根据权利要求514-520中任一项所述的电子设备,其中:
所述提示是由通过所述电子设备可用的虚拟助理所提供的音频提示,
从所述用户接收所述信息包括从所述用户接收识别所述地理位置的口头描述,以及显示所述用户界面对象包括显示可选示能表示,当所述可选示能表示被选择时,使得所述设备回放所述口头描述。
522.根据权利要求514-520中任一项所述的电子设备,其中:
所述提示被显示在所述电子设备的所述显示器上,
从所述用户接收所述信息包括从所述用户接收识别所述地理位置的文本描述,以及显示所述用户界面对象包括显示来自所述用户的所述文本描述。
523.根据权利要求514-520中任一项所述的电子设备,其中:
确定所述用户是否正在前往所述地理位置包括:使用从所述位置传感器单元接收的新的定位信息来确定所述电子设备正在向所述地理位置移动。
524.根据权利要求523所述的电子设备,其中:
确定所述用户是否正在前往所述地理位置包括
(i)确定所述电子设备在不同的地理位置处停留超出阈值时间周期,以及(ii)确定所述新的定位信息指示所述电子设备正在远离所述不同的地理位置并朝向所述地理位置移动。
525.根据权利要求514-524中任一项所述的电子设备,其中确定所述用户处于已经停靠在所述地理位置处的所述车辆中包括:(i)通过确定所述电子设备正在以高于阈值速度行进,来确定所述用户位于所述车辆中(ii)通过以下项中的一个或多个来确定所述车辆已经停靠在所述地理位置处:(a)确定所述电子设备已经在所述地理位置处停留超出阈值时间周期,(b)确定所述电子设备与所述车辆之间的通信链路已经断开,以及(c)确定所述地理位置对应于停车场内的位置。
526.根据权利要求525所述的电子设备,其中确定所述车辆已经停靠在所述地理位置处包括:确定所述电子设备已经在所述地理位置处停留超出阈值时间周期。
527.根据权利要求525-526中任一项所述的电子设备,其中确定所述车辆已经停靠在所述地理位置处包括:确定所述电子设备和所述车辆之间的通信链路已经断开。
528.根据权利要求525-527中任一项所述的电子设备,其中确定所述车辆已经停靠在所述地理位置处包括:确定所述地理位置对应于停车场内的位置。
529.根据权利要求514-528中任一项所述的电子设备,其中所述准确度标准包括当与所述定位信息相关联的GPS读数准确度高于准确度的阈值水平时所满足的标准。
530.一种存储可执行指令的非暂态计算机可读存储介质,所述可执行指令当由具有触敏表面、显示器和位置传感器的电子设备执行时,使得所述电子设备:
在未接收到来自所述电子设备用户的任何指令的情况下:
使用所述位置传感器监测所述电子设备的地理位置;
基于所述监测的地理位置来确定所述电子设备在预先确定的类型的兴趣点的阈值距离内;
根据确定所述电子设备在所述兴趣点的所述阈值距离内:
识别当前在所述兴趣点处流行的至少一项活动;
检索关于所述兴趣点的信息,包括检索关于当前在所述兴趣点处流行的至少一项活动的信息;
通过所述触敏表面检测第一输入,所述第一输入当被检测到时,使得所述电子设备进入搜索模式;并且
响应于检测到所述第一输入,来进入所述搜索模式,其中进入所述搜索模式包括,在所述搜索界面处接收到任何用户输入之前,通过所述显示器呈现包括以下项的示能表示:(i)关于所述至少一项活动的信息,以及(ii)所述至少一项活动已被识别为当前在所述兴趣点处流行的指示。
531.根据权利要求530所述的非暂态计算机可读存储介质,其中所述可执行指令在由所述电子设备执行时使得所述电子设备:
检测第二输入;以及
响应于检测到所述第二输入,来更新所述示能表示以包括关于不同于所述兴趣点的第二兴趣点处的当前活动的可用信息,其中所述兴趣点在所述电子设备的阈值距离内。
532.根据权利要求530-531中任一项所述的非暂态计算机可读存储介质,其中所述示能表示还包括可选类别的兴趣点,并且所述可执行指令在由所述电子设备执行时使得所述电子设备:
检测对于相应可选类别的选择;以及
响应于检测到所述选择,来更新所述示能表示以包括关于附加兴趣点的信息,所述附加兴趣点位于所述设备的第二阈值距离内。
533.根据权利要求530-532中任一项所述的非暂态计算机可读存储介质,其中所述兴趣点为游乐园,并且所述检索的信息包括游乐园处的乘坐装置的当前等待时间。
534.根据权利要求533所述的非暂态计算机可读存储介质,其中所述检索的信息包括关于位于所述电子设备的预定义距离内的乘坐装置的等待时间的信息。
535.根据权利要求530-532中任一项所述的非暂态计算机可读存储介质,其中所述兴趣点为餐厅,并且所述检索的信息包括关于所述餐厅中流行菜单项的信息。
536.根据权利要求535所述的非暂态计算机可读存储介质,其中所述检索的信息是从与所述电子设备用户相关联的社交网络检索到的。
537.根据权利要求530-532中任一项所述的非暂态计算机可读存储介质,其中所述兴趣点为电影院,并且所述检索的信息包括关于所述电影院的放映时间的信息。
538.根据权利要求537所述的非暂态计算机可读存储介质,其中所述检索的信息是从与所述电子设备用户相关联的社交网络检索到的。
539.根据权利要求530-538中任一项所述的非暂态计算机可读存储介质,其中在解锁所述电子设备后,响应于在所述电子设备home屏幕的初始页面上大体沿水平方向的轻扫,所述示能表示可用。
540.一种方法,包括:
在包括一个或多个处理器、存储器、触敏表面、显示器和位置传感器的电子设备处,在未接收到来自所述电子设备用户的任何指令的情况下:
使用所述位置传感器监测所述电子设备的地理位置;
基于所述监测的地理位置来确定所述电子设备在预先确定类型的兴趣点的阈值距离内;
根据确定所述电子设备在所述兴趣点的所述阈值距离内:
识别当前在所述兴趣点处流行的至少一项活动;
检索关于所述兴趣点的信息,包括检索关于当前在所述兴趣点处流行的所述至少一项活动的信息;
通过所述触敏表面检测第一输入,所述第一输入当被检测到时,使得所述电子设备进入搜索模式;以及
响应于检测到所述第一输入,来进入所述搜索模式,其中进入所述搜索模式包括:在所述搜索界面处接收到任何用户输入之前,通过所述显示器呈现包括以下项的示能表示:(i)关于所述至少一项活动的信息,以及(ii)所述至少一项活动已被识别为当前在所述兴趣点处流行的指示。
541.根据权利要求540所述的方法,包括:
检测第二输入;以及
响应于检测到所述第二输入,来更新所述示能表示以包括关于不同于所述兴趣点的第二兴趣点处的当前活动的可用信息,其中所述兴趣点在所述电子设备的阈值距离内。
542.根据权利要求540-541中任一项所述的方法,其中所述示能表示还包括可选类别的兴趣点,并且所述方法还包括:
检测对于相应可选类别的选择;以及
响应于检测到所述选择,来更新所述示能表示以包括关于附加兴趣点的信息,所述附加兴趣点位于所述设备的第二阈值距离内。
543.根据权利要求540-542中任一项所述的方法,其中所述兴趣点为游乐园,并且所述检索的信息包括游乐园处的乘坐装置的当前等待时间。
544.根据权利要求543所述的方法,其中所述检索的信息包括关于位于所述电子设备的预定义距离内的乘坐装置的等待时间的信息。
545.根据权利要求540-542中任一项所述的方法,其中所述兴趣点为餐厅,并且所述检索的信息包括关于所述餐厅中流行菜单项的信息。
546.根据权利要求545所述的方法,其中所述检索的信息是从与所述电子设备用户相关联的社交网络检索到的。
547.根据权利要求540-542中任一项所述的方法,其中所述兴趣点为电影院,并且所述检索的信息包括关于所述电影院的放映时间的信息。
548.根据权利要求547所述的方法,其中所述检索的信息是从与所述电子设备用户相关联的社交网络检索到的。
549.根据权利要求540-548中任一项所述的方法,其中在解锁所述电子设备后,响应于在所述电子设备home屏幕的初始页面上大体沿水平方向的轻扫,所述示能表示可用。
550.一种电子设备,包括:
触敏表面;
显示器;
位置传感器;
一个或多个处理器;和
存储器,所述存储器存储被配置为由所述一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于执行根据权利要求540-549中任一项所述的方法的指令。
551.一种电子设备上的图形用户界面,所述电子设备具有触敏表面、显示器、位置传感器、存储器以及用于执行存储在所述存储器中的一个或多个程序的一个或多个处理器,所述图形用户界面包括根据权利要求540-549所述的方法中的任一方法所显示的用户界面。
552.一种电子设备,包括:
触敏表面;
位置传感器;
显示器;和
用于执行根据权利要求540-549中任一项所述的方法的装置。
553.一种用于在包括触敏表面、显示器和位置传感器的电子设备中使用的信息处理装置,包括:
用于执行根据权利要求540-549中任一项所述的方法的装置。
554.一种电子设备,包括:
显示单元,所述显示单元被配置为显示用户界面;
触敏表面单元,所述触敏表面单元被配置为接收来自用户的接触;
位置传感器单元,所述位置传感器单元被配置为获取地理位置;
处理单元,所述处理单元与所述触敏显示单元耦接,所述处理单元被配置为:
在未接收到来自所述电子设备用户的任何指令的情况下:
使用所述位置传感器单元监测所述电子设备的地理位置;
基于所述监测的地理位置来确定所述电子设备在预先确定的类型的兴趣点的阈值距离内;
根据确定所述电子设备在所述兴趣点的所述阈值距离内:
识别当前在所述兴趣点处流行的至少一项活动;
检索关于所述兴趣点的信息,包括检索关于当前在所述兴趣点处流行的至少一项活动的信息;
通过所述触敏表面单元检测第一输入,所述第一输入当被检测到时,使得所述电子设备进入搜索模式;并且
响应于检测到所述第一输入,来进入所述搜索模式,其中进入所述搜索模式包括:在所述搜索界面处接收到任何用户输入之前,通过所述显示单元呈现包括以下项的示能表示:
(i)关于所述至少一项活动的信息,以及(ii)所述至少一项活动已被识别为当前在所述兴趣点处流行的指示。
555.根据权利要求554所述的电子设备,其中所述处理单元被进一步配置为:
检测第二输入;以及
响应于检测到所述第二输入,来更新所述示能表示以包括关于不同于所述兴趣点的第二兴趣点处的当前活动的可用信息,其中所述兴趣点在所述电子设备的阈值距离内。
556.根据权利要求554-555中任一项所述的电子设备,其中所述示能表示还包括可选类别的兴趣点,并且所述处理单元被进一步配置为:
检测对于相应可选类别的选择;以及
响应于检测到所述选择,来更新所述示能表示以包括关于附加兴趣点的信息,所述附加兴趣点位于所述设备的第二阈值距离内。
557.根据权利要求554-556中任一项所述的电子设备,其中所述兴趣点为游乐园,并且所述检索的信息包括游乐园处的乘坐装置的当前等待时间。
558.根据权利要求557所述的电子设备,其中所述检索的信息包括关于位于所述电子设备的预定义距离内的乘坐装置的等待时间的信息。
559.根据权利要求554-556中任一项所述的电子设备,其中所述兴趣点为餐厅,并且所述检索的信息包括关于所述餐厅中流行菜单项的信息。
560.根据权利要求559所述的电子设备,其中所述检索的信息是从与所述电子设备用户相关联的社交网络检索到的。
561.根据权利要求554-556中任一项所述的电子设备,其中所述兴趣点为电影院,并且所述检索的信息包括关于所述电影院的放映时间的信息。
562.根据权利要求561所述的电子设备,其中所述检索的信息是从与所述电子设备用户相关联的社交网络检索到的。
563.根据权利要求554-562中任一项所述的电子设备,其中在解锁所述电子设备后,响应于在所述电子设备home屏幕的初始页面上大体沿水平方向的轻扫,所述示能表示可用。

说明书全文

用于在触敏设备上主动识别和显示相关内容的系统和方法

技术领域

[0001] 本文公开的实施方案总体涉及具有触敏显示器的电子设备,更具体地,涉及用于在与显示器和触敏表面通信的电子设备上主动识别和显示相关内容的系统和方法。

背景技术

[0002] 带触敏显示器的手持式电子设备无处不在。这些广泛使用的手持式电子设备的用户现在可以在其设备上安装大量应用程序,并使用这些应用程序帮助他们更有效地执行日常活动。但为了访问这些应用程序,用户通常必须解其设备,定位所需的应用程序(例如,通过浏览home屏幕以定位与所需应用程序相关联的图标或通过在搜索界面内搜索所需的应用程序),然后在所需的应用程序内定位所需的功能。因此,用户经常花费大量时间来定位所需应用程序和这些应用程序内的所需功能,而无法立即执行(例如,通过单个触摸输入)所需应用程序和/或所需功能。
[0003] 此外,大量安装应用程序使用户淹没在连续信息流中,使其无法立即彻底地查看这些信息。因此,用户经常希望在稍后某个时间点返回以查看他们先前注意到的某条特定信息或在稍后某个时间点使用某条特定信息。但用户经常无法定位或不记得如何定位某条特定信息。
[0004] 因此,期望提供一种直观且易用的系统和方法,用于在与显示器和触敏表面通信的电子设备上主动识别和显示相关内容(例如,某条特定信息)。发明内容
[0005] 因此,需要具有更快、更有效的方法和界面的电子设备,以用于快速访问应用程序和这些应用程序内的所需功能。此外,需要电子设备在用户明确请求信息之前,通过主动识别和提供相关信息(例如,联系人、附近地点、应用程序、新闻文章、地址和设备上的其他可用信息)帮助用户管理他们每天接收到的连续信息流。此类方法和界面任选地补充或替换了访问应用程序的常规方法。此类方法和界面通过要求更少的输入以便用户定位所需信息,产生了更有效的人机界面。对于电池驱动的设备,这种方法和界面节省电并增加了电池充电间隔时间(例如,通过要求较少数量的触摸输入以执行各种功能)。此外,这种方法和界面有助于通过要求较少数量的触摸输入延长触敏显示器的寿命(例如,本文公开的方法和界面无需用户输入即可主动提供所需的某条信息,而不必连续且无目的地轻击触敏显示器来定位该条信息)。
[0006] 通过所公开的设备解决了与用于具有触敏表面的电子设备的用户界面相关联的上述缺陷和其他问题。在一些实施方案中,该设备是台式计算机。在一些实施方案中,该设备是便携式的(例如,笔记本电脑平板电脑手持设备)。在一些实施方案中,该设备具有触控板。在一些实施方案中,该设备具有触敏显示器(也称为“触摸屏”或“触摸屏显示器”)。在一些实施方案中,该设备具有图形用户界面(GUI)、一个或多个处理器、存储器和一个或多个模、被存储在存储器中以用于执行多个功能的程序或指令集。在一些实施方案中,用户主要通过触笔和/或手指接触以及触敏表面上的手势来与GUI进行交互。在一些实施方案中,这些功能任选地包括图像编辑、绘图、呈现、文字处理、网页创建、盘编辑、电子表格制作、玩游戏、接打电话、视频会议、收发电子邮件、即时消息通信、健身支持、数字摄影、数字视频录制、网页浏览、数字音乐播放和/或数字视频播放。用于执行这些功能的可执行指令任选地被包括在被配置用于由一个或多个处理器执行的非暂态计算机可读存储介质或其他计算机程序产品中。
[0007] (A1)根据一些实施方案,在具有触敏显示器(触摸屏112,图1C)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)上执行方法。该方法包括:响应于来自电子设备用户的指令,在电子设备上执行某一应用程序。在执行应用程序时,该方法还包括:收集使用数据。使用数据至少包括用户在应用程序内执行的一个或多个动作(或动作类型)。该方法还包括:(i)在无人为干预的情况下,基于收集的使用数据自动获取至少一个触发条件,以及(ii)将所述至少一个触发条件与用户在应用程序内执行的一个或多个动作的特定动作相关联。在确定已经满足所述至少一个触发条件时,该方法包括:向用户提供指示,指示与触发条件相关联的特定动作可用。
[0008] (A2)在A1方法的一些实施方案中,获取所述至少一个触发条件包括:向远离电子设备定位的一个或多个服务器发送使用数据,并从一个或多个服务器接收所述至少一个触发条件。
[0009] (A3)在A1至A2中任一项的方法的一些实施方案中,提供指示包括在触敏显示器上的锁定屏幕上显示用户界面对象,该用户界面对象对应于与触发条件相关联的特定动作。
[0010] (A4)在A3方法的一些实施方案中,用户界面对象包括与触发条件相关联的特定动作的描述。
[0011] (A5)在A4方法的一些实施方案中,用户界面对象还包括与应用程序相关联的图标。
[0012] (A6)在A3至A5中任一项的方法的一些实施方案中,该方法还包括:在用户界面对象处检测第一手势。响应于检测到第一手势:(i)在触敏显示器上显示应用程序,以及(ii)在显示应用程序的同时,该方法包括:执行与触发条件相关联的特定动作。
[0013] (A7)在A6方法的一些实施方案中,第一手势是在用户界面对象上的轻扫手势。
[0014] (A8)在A3至A5中任一项的方法的一些实施方案中,该方法还包括:在用户界面对象处检测第二手势。响应于检测到第二手势并且同时继续在触敏显示器上显示锁定屏幕,执行与触发条件相关联的特定动作。
[0015] (A9)在A8方法的一些实施方案中,第二手势是在用户界面对象的预定义区域的单次轻击。
[0016] (A10)在A3至A9中任一项的方法的一些实施方案中,用户界面对象显示在锁定屏幕的预定义的中心部分。
[0017] (A11)在A1方法的一些实施方案中,向用户提供与触发条件相关联的特定动作可用的指示包括执行特定动作。
[0018] (A12)在A3方法的一些实施方案中,用户界面对象是与应用程序相关联的图标,并且用户界面对象大体上显示在触敏显示器上锁定屏幕的落。
[0019] (A13)在A1至A12中任一项的方法的一些实施方案中,该方法还包括:从用户接收指令以解锁电子设备。响应于接收到指令,该方法包括:在触敏显示器上显示电子设备的home屏幕。该方法还包括:在home屏幕上向用户提供指示,指示与触发条件相关联的特定动作可用。
[0020] (A14)在A13方法的一些实施方案中,home屏幕包括:(i)第一部分,该部分包括一个或多个用户界面页面,用于启动电子设备上可用的第一组应用程序,以及(ii)第二部分,该部分显示在与第一部分相邻的位置,用于启动电子设备上可用的第二组应用程序。第二部分显示在第一部分中包括的所有用户界面页面上,并且在home屏幕上提供指示包括在第二部分上显示指示。
[0021] (A15)在A14方法的一些实施方案中,第二组应用程序与第一组应用程序不同且小于第一组应用程序。
[0022] (A16)在A1至A15中任一项的方法的一些实施方案中,确定已经满足所述至少一个触发条件包括:确定电子设备已经与不同于该电子设备的第二设备耦接。
[0023] (A17)在A1至A16中任一项的方法的一些实施方案中,确定已经满足所述至少一个触发条件包括:确定电子设备已经到达与用户相关联的家庭位置或工作位置的对应地址。
[0024] (A18)在A17方法的一些实施方案中,确定电子设备已经到达与用户相关联的家庭位置或工作位置的对应地址包括:监视来自电子设备的加速度计的运动数据,并基于监视的运动数据确定电子设备未移动超出阈值量的时间。
[0025] (A19)在A1至A18中任一项的方法的一些实施方案中,使用数据还包括来自用户的口头指令,该指令被提供给虚拟助理应用程序,同时继续执行该应用程序。所述至少一个触发条件还基于提供给虚拟助理应用程序的口头指令。
[0026] (A20)在A19方法的一些实施方案中,口头指令包括创建提醒的请求,该提醒对应于应用程序的当前状态,所述当前状态对应于提供口头指令时的应用程序状态。
[0027] (A21)在A20方法的一些实施方案中,提供口头指令时的应用程序状态选自由以下各项组成的组:提供口头指令时在应用程序内显示的页面,提供口头指令时在应用程序内播放的内容,提供口头指令时在应用程序内显示的通知,以及提供口头指令时在应用程序内显示的页面的活动部分。
[0028] (A22)在A20方法的一些实施方案中,口头指令包括与应用程序的当前状态有关的词语“这”。
[0029] (A23)在另一方面,在一个或多个电子设备(例如,图5的便携式多功能设备100,图5的一个或多个服务器502)执行方法。该方法包括:响应于来自第一电子设备的用户的指令,来在一个或多个电子设备的第一电子设备上执行应用程序。在执行应用程序的过程中,该方法包括:在无人为干预的情况下,自动收集使用数据,使用数据至少包括用户在应用程序内执行的一个或多个动作(或动作类型)。该方法还包括:在无人为干预的情况下,基于收集的使用数据自动建立至少一个触发条件。该方法另包括:将所述至少一个触发条件与用户在应用程序内执行的一个或多个动作的特定动作相关联。在确定已经满足所述至少一个触发条件时,该方法包括:向用户提供指示,指示与触发条件相关联的特定动作可用。
[0030] (A24)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏显示器、一个或多个处理器、以及存储一个或多个程序的存储器,当由一个或多个处理器执行该程序时,将使电子设备执行A1至A22中任一项描述的方法。
[0031] (A25)在又一方面,提供了一种电子设备,该电子设备包括:触敏显示器和用于执行A1至A22中任一项所述方法的装置。
[0032] (A26)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏显示器的电子设备执行这些指令时,将使电子设备执行A1至A22中任一项描述的方法。
[0033] (A27)在另一方面,提供了具有触敏显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据A1至A22中任一项描述的方法显示的用户界面。
[0034] (A28)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图42的显示单元4201)、触敏表面单元(例如,图42的触敏表面单元4203)和处理单元(例如,图42的处理单元4205)。在一些实施方案中,根据图1E所示计算设备的任何一个(即计算设备A至D)配置电子设备。为便于说明,图42示出了与电子设备4200集成的显示单元4201和触敏表面单元4203,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元与触敏表面单元和显示单元耦合。在一些实施方案中,触敏表面单元和显示单元集成在单个触敏显示器单元(在本文中也称为触敏显示器)中。处理单元包括执行单元(例如,图42的执行单元4207)、收集单元(例如,图42的收集单元4209)、获取单元(例如,图42的获取单元4211)、关联单元(例如,图42的关联单元
4213)、提供单元(例如,图42的提供单元4215)、发送单元(例如,图42的发送单元4217)、接收单元(例如,图42的接收单元4219)、显示单元(例如,图42的显示单元4221)、检测单元(例如,图42的检测单元4223)、执行单元(例如,图42的执行单元4225)、确定单元(例如,图42的确定单元4227)和监视单元(例如,图42的监视单元4229)。处理单元(或其一个或多个部件,诸如单元4207至4229)被配置为:响应于来自电子设备的用户的指令,在电子设备上执行应用程序(例如,通过执行单元4207);在执行应用程序时,收集使用数据(例如,使用收集单元
4209),使用数据至少包括用户在应用程序内执行的一个或多个动作;在无人为干预的情况下,自动基于收集的使用数据获取至少一个触发条件(例如,通过获取单元4211);将所述至少一个触发条件与用户在应用程序内执行的一个或多个动作的特定动作关联(例如,通过关联单元4213);并且在确定已经满足所述至少一个触发条件时,向用户提供指示(例如,通过提供单元4215),指示与触发条件相关联的特定动作可用。
[0035] (A29)在A28的电子设备的一些实施方案中,获取所述至少一个触发条件包括:向远离电子设备定位的一个或多个服务器发送(例如,通过发送单元4217)使用数据,以及从一个或多个服务器接收(例如,通过接收单元4219)所述至少一个触发条件。
[0036] (A30)在A28至A29中任一项的电子设备的一些实施方案中,提供指示包括在触敏显示器单元上的锁定屏幕上显示(例如,通过显示单元4217和/或显示单元4201)与触发条件相关联的特定动作对应的用户界面对象。
[0037] (A31)在A30的电子设备的一些实施方案中,用户界面对象包括与触发条件相关联的特定动作的描述。
[0038] (A32)在A31的电子设备的一些实施方案中,用户界面对象还包括与应用程序相关联的图标。
[0039] (A33)在A30至A32中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:在用户界面对象处检测(例如,通过检测单元4223和/或触敏表面单元4203)第一手势。响应于检测到第一手势:(i)在触敏显示器单元上显示(例如,通过显示单元4217和/或显示单元4201)应用程序,以及(ii)在显示应用程序的同时执行(例如,通过执行单元4225)与触发条件相关联的特定动作。
[0040] (A34)在A33的电子设备的一些实施方案中,第一手势是在用户界面对象上的轻扫手势。
[0041] (A35)在A30至A33中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:在用户界面对象处检测(例如,通过检测单元4223和/或触敏表面单元4203)第二手势。响应于检测到第二手势并且同时继续在触敏显示器单元上显示锁定屏幕,处理单元被配置为:执行(例如,通过执行单元4225)与触发条件相关联的特定动作。
[0042] (A36)在A35的电子设备的一些实施方案中,第二手势是在用户界面对象的预定义区域的单次轻击。
[0043] (A37)在A30至A36中任一项的电子设备的一些实施方案中,用户界面对象显示在锁定屏幕的预定义的中心部分。
[0044] (A38)在A28的电子设备的一些实施方案中,向用户提供与触发条件相关联的特定动作可用的指示包括执行(例如,通过执行单元4225)特定动作。
[0045] (A39)在A30的电子设备的一些实施方案中,用户界面对象是与应用程序相关联的图标,并且用户界面对象大体上显示在触敏显示器单元上锁定屏幕的角落。
[0046] (A40)在A28至A39中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:接收(例如,通过接收单元4219)来自用户的解锁电子设备的指令。响应于接收到指令,处理单元被配置为:在触敏显示器单元上显示(例如,通过显示单元4217和/或显示单元4201)电子设备的home屏幕。处理单元被进一步配置为:在home屏幕上向用户提供(例如,通过提供单元4215)指示,指示与触发条件相关联的特定动作可用。
[0047] (A41)在A40的电子设备的一些实施方案中,home屏幕包括:(i)第一部分,该部分包括一个或多个用户界面页面,用于启动电子设备上可用的第一组应用程序,以及(ii)第二部分,该部分显示在与第一部分相邻的位置,用于启动电子设备上可用的第二组应用程序。第二部分显示在第一部分中包括的所有用户界面页面上,并且在home屏幕上提供指示包括在第二部分上显示(例如,通过显示单元4217和/或显示单元4201)指示。
[0048] (A42)在A41的电子设备的一些实施方案中,第二组应用程序与第一组应用程序不同且小于第一组应用程序。
[0049] (A43)在A28至A42中任一项的电子设备的一些实施方案中,确定已经满足所述至少一个触发条件包括:确定(例如,通过确定单元4227)电子设备已经与不同于该电子设备的第二设备耦接。
[0050] (A44)在A28至A43中任一项的电子设备的一些实施方案中,确定已经满足所述至少一个触发条件包括:确定(例如,通过确定单元4227)电子设备已经到达与用户相关联的家庭位置或工作位置的对应地址。
[0051] (A45)在A44的电子设备的一些实施方案中,确定电子设备已经到达与用户相关联的家庭位置或工作位置的对应地址包括:监视(例如,通过监视单元4229)来自电子设备的加速度计的运动数据,并基于监视的运动数据确定(例如,通过确定单元4227)电子设备未移动超出阈值量的时间。
[0052] (A46)在A28至A45中任一项的电子设备的一些实施方案中,使用数据还包括来自用户的口头指令,该指令被提供给虚拟助理应用程序,同时继续执行该应用程序。所述至少一个触发条件还基于提供给虚拟助理应用程序的口头指令。
[0053] (A47)在A46的电子设备的一些实施方案中,口头指令包括创建提醒的请求,该提醒对应于应用程序的当前状态,所述当前状态对应于提供口头指令时的应用程序状态。
[0054] (A48)在A47的电子设备的一些实施方案中,提供口头指令时的应用程序状态选自由以下各项组成的组:提供口头指令时在应用程序内显示的页面,提供口头指令时在应用程序内播放的内容,提供口头指令时在应用程序内显示的通知,以及提供口头指令时在应用程序内显示的页面的活动部分。
[0055] (A49)在A46的电子设备的一些实施方案中,口头指令包括与应用程序的当前状态有关的术语“这”。
[0056] (B1)根据一些实施方案,在具有触敏显示器(触摸屏112,图1C)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)上执行方法。该方法包括:获取至少一个触发条件,所述至少一个触发条件基于与电子设备的用户相关联的使用数据,该使用数据包括在电子设备上执行应用程序时由用户在应用程序内执行的一个或多个动作(或动作类型)。该方法还包括:将所述至少一个触发条件与用户在应用程序内执行的一个或多个动作的特定动作相关联。在确定已经满足所述至少一个触发条件时,该方法包括:向用户提供指示,指示与触发条件相关联的特定动作可用。
[0057] (B2)在B1方法的一些实施方案中,该方法还包括在A2至A22中中任一项描述的方法。
[0058] (B3)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏显示器、一个或多个处理器、以及存储一个或多个程序的存储器,当由一个或多个处理器执行该程序时,将使电子设备执行B1至B2中任一项描述的方法。
[0059] (B4)在又一方面,提供一种电子设备,并且该电子设备包括:触敏显示器和用于执行B1至B2中任一项所述方法的装置。
[0060] (B5)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏显示器的电子设备执行这些指令时,将使电子设备执行B1至B2中任一项描述的方法。
[0061] (B6)在另一方面,提供了具有触敏显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据B1至B2中任一项描述的方法显示的用户界面。
[0062] (B7)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图42的显示单元4201)、触敏表面单元(例如,图42的触敏表面单元4203)和处理单元(例如,图42的处理单元4205)。在一些实施方案中,根据图1E所示计算设备的任何一个(即计算设备A至D)配置电子设备。为便于说明,图42示出了与电子设备4200集成的显示单元4201和触敏表面单元4203,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括执行单元(例如,图42的执行单元4207)、收集单元(例如,图42的收集单元4209)、获取单元(例如,图42的获取单元4211)、关联单元(例如,图42的关联单元4213)、提供单元(例如,图42的提供单元4215)、发送单元(例如,图
42的发送单元4217)、接收单元(例如,图42的接收单元4219)、显示单元(例如,图42的显示单元4221)、检测单元(例如,图42的检测单元4223)、执行单元(例如,图42的执行单元
4225)、确定单元(例如,图42的确定单元4227)和监视单元(例如,图42的监视单元4229)。处理单元(或其一个或多个部件,诸如单元4207至4229)被配置为:获取(例如,通过获取单元
4211)至少一个触发条件,所述至少一个触发条件基于与电子设备的用户相关联的使用数据,该使用数据包括在电子设备上执行应用程序时由用户在应用程序内执行的一个或多个动作;将所述至少一个触发条件与用户在应用程序内执行的一个或多个动作的特定动作关联(例如,通过关联单元4213);并且在确定已经满足所述至少一个触发条件时,向用户提供指示(例如,通过提供单元4215),指示与触发条件相关联的特定动作可用。
[0063] (B8)在B7的电子设备的一些实施方案中,获取所述至少一个触发条件包括:向远离电子设备定位的一个或多个服务器发送(例如,通过发送单元4217)使用数据,以及从一个或多个服务器接收(例如,通过接收单元4219)所述至少一个触发条件。
[0064] (B9)在B7至B8中任一项的电子设备的一些实施方案中,提供指示包括在触敏显示器上的锁定屏幕上显示(例如,通过显示单元4217和/或显示单元4201)与触发条件相关联的特定动作对应的用户界面对象。
[0065] (B10)在B9的电子设备的一些实施方案中,用户界面对象包括与触发条件相关联的特定动作的描述。
[0066] (B11)在B10的电子设备的一些实施方案中,用户界面对象还包括与应用程序相关联的图标。
[0067] (B12)在B9至B11中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:在用户界面对象处检测(例如,通过检测单元4223和/或触敏表面单元4203)第一手势。响应于检测到第一手势:(i)在触敏显示器上显示(例如,通过显示单元4217和/或显示单元
4201)应用程序,以及(ii)在显示应用程序的同时执行(例如,通过执行单元4225)与触发条件相关联的特定动作。
[0068] (B13)在B12的电子设备的一些实施方案中,第一手势是在用户界面对象上的轻扫手势。
[0069] (B14)在B9至B12中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:在用户界面对象处检测(例如,通过检测单元4223和/或触敏表面单元4203)第二手势。响应于检测到第二手势并且同时继续在触敏显示器上显示锁定屏幕,处理单元被配置为:
执行(例如,通过执行单元4225)与触发条件相关联的特定动作。
[0070] (B15)在B14的电子设备的一些实施方案中,第二手势是在用户界面对象的预定义区域的单次轻击。
[0071] (B16)在B9至B15中任一项的电子设备的一些实施方案中,用户界面对象显示在锁定屏幕的预定义的中心部分。
[0072] (B17)在B7的电子设备的一些实施方案中,向用户提供与触发条件相关联的特定动作可用的指示包括执行(例如,通过执行单元4225)特定动作。
[0073] (B18)在B9的电子设备的一些实施方案中,用户界面对象是与应用程序相关联的图标,并且用户界面对象大体上显示在触敏显示器上锁定屏幕的角落。
[0074] (B19)在B7至B18中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:接收(例如,通过接收单元4219)来自用户的解锁电子设备的指令。响应于接收到指令,处理单元被配置为:在触敏显示器上显示(例如,通过显示单元4217和/或显示单元4201)电子设备的home屏幕。处理单元被进一步配置为:在home屏幕上向用户提供(例如,通过提供单元4215)指示,指示与触发条件相关联的特定动作可用。
[0075] (B20)在B19的电子设备的一些实施方案中,home屏幕包括:(i)第一部分,该部分包括一个或多个用户界面页面,用于启动电子设备上可用的第一组应用程序,以及(ii)第二部分,该部分显示在与第一部分相邻的位置,用于启动电子设备上可用的第二组应用程序。第二部分显示在第一部分中包括的所有用户界面页面上,并且在home屏幕上提供指示包括在第二部分上显示(例如,通过显示单元4217和/或显示单元4201)指示。
[0076] (B21)在B20的电子设备的一些实施方案中,第二组应用程序与第一组应用程序不同且小于第一组应用程序。
[0077] (B22)在B7至B21中任一项的电子设备的一些实施方案中,确定已经满足所述至少一个触发条件包括:确定(例如,通过确定单元4227)电子设备已经与不同于该电子设备的第二设备耦接。
[0078] (B23)在B7至B22中任一项的电子设备的一些实施方案中,确定已经满足所述至少一个触发条件包括:确定(例如,通过确定单元4227)电子设备已经到达与用户相关联的家庭位置或工作位置的对应地址。
[0079] (B24)在B23的电子设备的一些实施方案中,确定电子设备已经到达与用户相关联的家庭位置或工作位置的对应地址包括:监视(例如,通过监视单元4229)来自电子设备的加速度计的运动数据,并基于监视的运动数据确定(例如,通过确定单元4227)电子设备未移动超出阈值量的时间。
[0080] (B25)在B7至B24中任一项的电子设备的一些实施方案中,使用数据还包括来自用户的口头指令,该指令被提供给虚拟助理应用程序,同时继续执行该应用程序。所述至少一个触发条件还基于提供给虚拟助理应用程序的口头指令。
[0081] (B26)在B25的电子设备的一些实施方案中,口头指令包括创建提醒的请求,该提醒对应于应用程序的当前状态,所述当前状态对应于提供口头指令时的应用程序状态。
[0082] (B27)在B26的电子设备的一些实施方案中,提供口头指令时的应用程序状态选自由以下各项组成的组:提供口头指令时在应用程序内显示的页面,提供口头指令时在应用程序内播放的内容,提供口头指令时在应用程序内显示的通知,以及提供口头指令时在应用程序内显示的页面的活动部分。
[0083] (B28)在B26的电子设备的一些实施方案中,口头指令包括与应用程序的当前状态有关的术语“这”。
[0084] (C1)根据一些实施方案,在具有触敏显示器(触摸屏112,图1C)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)上执行方法。该方法包括:在触敏显示器上检测来自电子设备用户的搜索激活手势。响应于检测到搜索激活手势,该方法包括:在触敏显示器上显示搜索界面,该搜索界面包括:(i)搜索入口部分以及(ii)在搜索入口部分处接收到任何用户输入前显示的预测部分。预测部分由以下一项或多项填充:(a)用于联系多个先前联系人员中某个人员的至少一个示能表示,至少部分地基于当前时间从所述多个之前联系的人员中自动选择该人员,以及(b)用于在电子设备上可用的多个应用程序的某个应用程序中执行预测的动作的至少一个示能表示,至少部分地基于与电子设备用户相关联的应用程序使用历史来自动选择预测的动作。
[0085] (C2)在C1方法的一些实施方案中,至少部分地基于对应于电子设备的位置数据来进一步选择人员。
[0086] (C3)在C1至C2中任一项的方法的一些实施方案中,从电子设备的存储器中检索该人员的应用程序使用历史和联系人信息。
[0087] (C4)在C1至C2中任一项的方法的一些实施方案中,从远离电子设备定位的存储器中检索该人员的应用程序使用历史和联系人信息。
[0088] (C5)在C1至C4中任一项的方法的一些实施方案中,预测部分进一步由执行预测应用程序的至少一个示能表示填充,该预测应用程序至少部分地基于应用程序使用历史自动选择。
[0089] (C6)在C1至C5中任一项的方法的一些实施方案中,预测部分进一步由预测的地点(或附近地点)类别的至少一个示能表示填充,并且预测的地点类别至少部分地基于与电子设备相对应的当前时间和位置数据的一项或多项自动选择。
[0090] (C7)在C1至C6中任一项的方法的一些实施方案中,该方法还包括:检测用户输入以滚动预测部分。响应于检测到用户输入以滚动预测部分,该方法包括:根据用户输入滚动预测部分。响应于滚动,该方法包括:在预测部分中显现预测的新闻文章的至少一个示能表示(例如,预测的新闻文章是预测为用户感兴趣的文章)。
[0091] (C8)在C7方法的一些实施方案中,至少部分地基于对应于电子设备的位置数据自动选择预测的新闻文章。
[0092] (C9)在C1至C8中任一项的方法的一些实施方案中,该方法还包括:检测在应用程序内执行预测的动作的所述至少一个示能表示的选择。响应于检测到选择,该方法包括:在触敏显示器上显示应用程序并在应用程序内执行预测的动作。
[0093] (C10)在C3至C4中任一项的方法的一些实施方案中,该方法还包括:检测联系该人员的所述至少一个示能表示的选择。响应于检测到选择,该方法包括:使用该人员的联系人信息与其联系。
[0094] (C11)在C5方法的一些实施方案中,该方法还包括:检测执行预测应用程序的所述至少一个示能表示的选择。响应于检测到选择,该方法包括:在触敏显示器上显示预测的应用程序。
[0095] (C12)在C6方法的一些实施方案中,该方法还包括:检测预测地点类别的所述至少一个示能表示的选择。响应于检测到选择,该方法还包括:(i)接收对应于至少一个附近地点的数据,以及(ii)在触摸敏感显示器上显示对应于所述至少一个附近地点的接收数据。
[0096] (C13)在C7方法的一些实施方案中,该方法还包括:检测预测新闻文章的所述至少一个示能表示的选择。响应于检测到选择,该方法包括:在触敏显示器上显示预测的新闻文章。
[0097] (C14)在C1至C13中任一项的方法的一些实施方案中,搜索激活手势可从至少两个不同的用户界面获取,并且所述至少两个不同用户界面的第一用户界面对应于在触敏显示器上显示home屏幕页面序列的相应home屏幕页面。
[0098] (C15)在C14方法的一些实施方案中,当相应的home屏幕页面是home屏幕页面序列中的第一home屏幕页面时,搜索激活手势包括以下中的一种:(i)相对于电子设备用户大体上沿向下方向移动的手势,或(ii)相对用户大体上沿从左到右方向移动并大体上垂直于向下方向的连续手势。
[0099] (C16)在C15方法的一些实施方案中,当相应的home屏幕页面是home屏幕页面序列中的第二home屏幕页面时,搜索激活手势包括相对电子设备用户大体上沿向下方向移动的连续手势。
[0100] (C17)在C14方法的一些实施方案中,所述至少两个不同用户界面的第二用户界面对应于在触敏显示器上显示应用程序切换界面。
[0101] (C18)在C17方法的一些实施方案中,搜索激活手势包括在触敏显示器上接触应用程序切换界面的预定义搜索激活部分。
[0102] (C19)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏显示器、一个或多个处理器、以及存储一个或多个程序的存储器,当由一个或多个处理器执行该程序时,将使电子设备执行C1至C18中任一项描述的方法。
[0103] (C20)在又一方面,提供一种电子设备,并且该电子设备包括:触敏显示器和用于执行C1至C18中任一项所述方法的装置。
[0104] (C21)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏显示器的电子设备执行这些指令时,将使电子设备执行C1至C18中任一项描述的方法。
[0105] (C22)在另一方面,提供了具有触敏显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据C1至C18中任一项描述的方法显示的用户界面。
[0106] (C23)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图43的显示单元4301)、触敏表面单元(例如,图43的触敏表面单元4303)和处理单元(例如,图43的处理单元4305)。在一些实施方案中,根据图1E所示计算设备的任何一个(即计算设备A至D)配置电子设备。为便于说明,图43示出了与电子设备4300集成的显示单元4301和触敏表面单元4303,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括显示单元(例如,图43的显示单元4309)、检测单元(例如,图43的检测单元4307)、检索单元(例如,图43的检索单元4311)、填充单元(例如,图43的填充单元4313)、滚动单元(例如,图43的滚动单元4315)、显现单元(例如,图
43的显现单元4317)、选择单元(例如,图43的选择单元4319)、接触单元(例如,图43的接触单元4321)、接收单元(例如,图43的接收单元4323)和执行单元(例如,图43的执行单元
4325)。处理单元(或其一个或多个部件,诸如单元4307至4225)被配置为:检测(例如,通过检测单元4307和/或触敏表面单元4303)触敏显示器上来自电子设备用户的搜索激活手势;
响应于检测到搜索激活手势,在触敏显示器上显示(例如,通过显示单元4309和/或显示单元4301)搜索界面,该搜索界面包括:(i)搜索入口部分;以及(ii)在搜索入口部分处接收到任何用户输入前显示的预测部分,预测部分由以下一项或多项填充:(a)用于联系多个先前联系人员中某个人员的至少一个示能表示,至少部分地基于当前时间从所述多个之前联系的人员中自动选择(例如,通过选择单元4319)该人员,以及(b)用于在电子设备上可用的多个应用程序的某个应用程序中执行预测的动作的至少一个示能表示,至少部分地基于与电子设备用户相关联的应用程序使用历史来自动选择(例如,通过选择单元4319)预测的动作。
[0107] (C24)在C23的电子设备的一些实施方案中,至少部分地基于对应于电子设备的位置数据进一步选择(例如,通过选择单元4319)该人员。
[0108] (C25)在C23至C24中任一项的电子设备的一些实施方案中,从电子设备的存储器中检索(例如,通过检索单元4311)该人员的应用程序使用历史和联系人信息。
[0109] (C26)在C23至C24中任一项的电子设备的一些实施方案中,从远离电子设备定位的服务器中检索(例如,通过检索单元4311)该人员的应用程序使用历史和联系人信息。
[0110] (C27)在C23至C26中任一项的电子设备的一些实施方案中,预测部分进一步由执行预测应用程序的至少一个示能表示填充(例如,通过填充单元4313),该预测应用程序至少部分地基于应用程序使用历史自动选择(例如,通过选择单元4319)。
[0111] (C28)在C23至C27中任一项的电子设备的一些实施方案中,预测部分进一步由预测的地点类别的至少一个示能表示填充(例如,通过填充单元4313),并且预测的地点类别至少部分地基于与电子设备相对应的当前时间和位置数据的一项或多项自动选择(例如,通过选择单元4319)。
[0112] (C29)在C23至C28中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:检测(例如,通过检测单元4307和/或触敏表面单元4303)用户输入以滚动预测部分。响应于检测用户输入以滚动预测部分,处理单元被配置为:根据用户输入滚动(例如,通过滚动单元4319)预测部分。响应于滚动,该处理单元被配置为:在预测部分中显现(例如,通过显现单元4317)预测的新闻文章的至少一个示能表示(例如,预测的新闻文章是预测为用户感兴趣的文章)。
[0113] (C30)在C7的电子设备的一些实施方案中,至少部分地基于对应于电子设备的位置数据自动选择(例如,通过选择单元4319)预测的新闻文章。
[0114] (C31)在C23至C30中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:检测(例如,通过检测单元4307和/或触敏表面单元4303)在应用程序内执行预测的动作的所述至少一个示能表示的选择。响应于检测到选择,处理单元被配置为:在触敏显示器(例如,显示单元4301)上显示(例如,通过显示单元4309)应用程序并在应用程序内执行(例如,通过执行单元4325)预测的动作。
[0115] (C32)在C25至C26中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:检测(例如,通过检测单元4307和/或触敏表面单元4303)联系该人员的所述至少一个示能表示的选择。响应于检测到选择,处理单元被配置为:使用该人员的联系人信息与其联系(例如,通过接触单元4321)。
[0116] (C33)在C27的电子设备的一些实施方案中,处理单元被进一步配置为:检测(例如,通过检测单元4307和/或触敏表面单元4303)执行预测应用程序的所述至少一个示能表示的选择。响应于检测到选择,处理单元被配置为:在触敏显示器(例如,显示单元4301)上显示(例如,通过显示单元4307)预测的应用程序。
[0117] (C34)在C28的电子设备的一些实施方案中,处理单元被进一步配置为:检测(例如,通过检测单元4307和/或触敏表面单元4303)预测的地点类别的所述至少一个示能表示的选择。响应于检测到选择,处理单元被配置为:(i)接收(例如,通过接收单元4323)与至少一个附近地点相对应的数据,以及(ii)在触敏显示器(例如,显示单元4301)上显示(例如,通过显示单元4307)与所述至少一个附近地点相对应的接收的数据。
[0118] (C35)在C29的电子设备的一些实施方案中,处理单元被进一步配置为:检测(例如,通过检测单元4307和/或触敏表面单元4303)预测新闻文章的所述至少一个示能表示的选择。响应于检测到选择,处理单元被配置为:在触敏显示器(例如,显示单元4301)上显示(例如,通过显示单元4307)预测的新闻文章。
[0119] (C36)在C23至C35中任一项的电子设备的一些实施方案中,搜索激活手势可从至少两个不同的用户界面获取,并且所述至少两个不同用户界面的第一用户界面对应于在触敏显示器上显示home屏幕页面序列的相应home屏幕页面。
[0120] (C37)在C36的电子设备的一些实施方案中,当相应的home屏幕页面是home屏幕页面序列中的第一home屏幕页面时,搜索激活手势包括以下中的一种:(i)相对于电子设备用户大体上沿向下方向移动的手势,或(ii)相对用户大体上沿从左到右方向移动并大体上垂直于向下方向的连续手势。
[0121] (C38)在C37的电子设备的一些实施方案中,当相应的home屏幕页面是home屏幕页面序列中的第二home屏幕页面时,搜索激活手势包括相对电子设备用户大体上沿向下方向移动的连续手势。
[0122] (C39)在C36的电子设备的一些实施方案中,所述至少两个不同用户界面的第二用户界面对应于在触敏显示器上显示应用程序切换界面。
[0123] (C40)在C39的电子设备的一些实施方案中,搜索激活手势包括在触敏显示器上接触应用程序切换界面的预定义搜索激活部分。
[0124] 因此,具有显示器、触敏表面和用于检测与触敏表面的接触强度的任选一个或多个传感器的电子设备被提供有更快、更有效的方法和界面以用于主动访问应用程序并主动执行应用程序内的功能,从而提高此类设备的效能、效率和用户满意度。这样的方法和界面可以补充或替代用于访问与此相关的应用程序和功能的常规方法。
[0125] (D1)根据一些实施方案,在具有触敏表面(例如,触敏表面195,图1D)和显示器(例如,显示器194,图1D)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)上执行方法。该方法包括:在显示器上显示与正在电子设备上执行的应用程序相关联的内容。该方法还包括:通过触敏表面检测轻扫手势,该手势当被检测到时,将使电子设备进入不同于该应用程序的搜索模式。该方法还包括:响应于检测到轻扫手势,进入搜索模式,搜索模式包括显示在显示器上的搜索界面。结合进入搜索模式,该方法包括:至少部分地基于与内容相关联的信息来确定至少一个建议的搜索查询。在搜索界面处接收到任何用户输入之前,该方法包括:使用所述至少一个建议的搜索查询填充显示的搜索界面。这样,该设备基于用户查看的应用内容向其提供相关建议,用户只需选择其中一条建议而无需键入任何内容,从而使用户不必记忆信息并在搜索界面中重新输入信息。
[0126] (D2)在D1方法的一些实施方案中,检测轻扫手势包括在当前显示的内容的至少一部分上检测轻扫手势。
[0127] (D3)在D1至D2中任一项的方法的一些实施方案中,该方法还包括:检测轻扫手势之前,检测与查看电子设备home屏幕的请求相对应的输入;并且响应于检测到该输入,停止显示与应用程序相关联的内容并显示电子设备的home屏幕的相应页面。在一些实施方案中,所述相应页面是home屏幕页面序列中的初始页面,并且在显示器上显示home屏幕的初始页面时检测轻扫手势。
[0128] (D4)在D1至D3中任一项的方法的一些实施方案中,搜索界面被显示为半透明地覆盖应用程序。
[0129] (D5)在D1至D4中任一项的方法的一些实施方案中,该方法还包括:根据确定该内容包括文本内容,至少部分地基于文本内容确定所述至少一个建议的搜索查询。
[0130] (D6)在D5方法的一些实施方案中,至少部分地基于文本内容确定所述至少一个建议的搜索查询包括:分析文本内容以检测用于确定所述至少一个建议搜索查询的一个或多个预定义关键字。
[0131] (D7)在D1至D6中任一项的方法的一些实施方案中,确定所述至少一个建议的搜索查询包括确定多个建议的搜索查询,并且填充搜索界面包括用所述多个建议的搜索查询填充搜索界面。
[0132] (D8)在D1至D7中任一项的方法的一些实施方案中,该方法还包括:通过触敏表面检测当前显示的新内容上的新的轻扫手势;并且响应于检测到新的轻扫手势,进入搜索模式,进入搜索模式包括在显示器上显示搜索界面;并且结合进入搜索模式并根据确定新内容不包括文本内容,使用建议的搜索查询填充搜索界面,建议的搜索查询基于来自电子设备用户的一组选择的历史搜索查询。
[0133] (D9)在D8方法的一些实施方案中,搜索界面基于不同于该应用程序的第二应用程序提供的位置信息显示兴趣点。
[0134] (D10)在D8至D9中任一项的方法的一些实施方案中,搜索界面还包括一个或多个建议的应用程序。
[0135] (D11)在D8至D10中任一项的方法的一些实施方案中,至少部分地基于最近搜索查询的频率选择该组历史搜索查询。
[0136] (D12)在D1至D11中任一项的方法的一些实施方案中,该方法还包括:结合进入搜索模式,通过使用电子设备上可用的一个或多个辅助功能获取与该内容相关联的信息。
[0137] (D13)在D12方法的一些实施方案中,使用一个或多个辅助功能包括使用一个或多个辅助功能来生成与内容相关联的信息,方法是:(i)将自然语言处理算法应用于当前在应用程序中显示的文本内容,以及(ii)使用从自然语言处理算法获取的数据确定描述该内容的一个或多个关键字,并基于所述一个或多个关键字确定所述至少一个建议的搜索查询。
[0138] (D14)在D13方法的一些实施方案中,确定描述该内容的一个或多个关键字还包括:(i)检索与当前在应用程序中显示的非文本内容相对应的元数据,以及(ii)除从自然语言处理算法获取的数据外,还使用检索的元数据确定一个或多个关键字。
[0139] (D15)在D1至D14中任一项的方法的一些实施方案中,搜索界面还包括一个或多个趋势查询。
[0140] (D16)在D15方法的一些实施方案中,搜索界面还包括预测为电子设备用户感兴趣的一个或多个应用程序。
[0141] (D17)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面和显示器、一个或多个处理器、以及存储一个或多个程序的存储器,当由一个或多个处理器执行该程序时,将使电子设备执行D1至D16中任一项描述的方法。
[0142] (D18)在又一方面,提供一种电子设备,并且该电子设备包括:触敏表面和显示器,以及用于执行D1至D16中任一项所述方法的装置。
[0143] (D19)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面和显示器的电子设备执行这些指令时,将使电子设备执行D1至D16中任一项描述的方法。
[0144] (D20)在另一方面,提供了具有触敏表面和显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据D1至D16中任一项描述的方法显示的用户界面。
在另一方面,提供了一种在包括触敏表面和显示器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行D1至D16中任一项描述的方法的装置。
[0145] (D21)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图44的显示单元4401)、触敏表面单元(例如,图44的触敏表面单元4403)和处理单元(例如,图44的处理单元4405)。处理单元与触敏表面单元和显示单元耦合。在一些实施方案中,根据图1E所示计算设备的任何一个(即计算设备A至D)配置电子设备。为便于说明,图44示出了与电子设备4400集成的显示单元4401和触敏表面单元4403,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。在一些实施方案中,触敏表面单元和显示单元集成在单个触敏显示器单元(在本文中也称为触敏显示器)中。处理单元包括检测单元(例如,图44的检测单元4407)、显示单元(例如,图44的显示单元4409)、检索单元(例如,图44的检索单元4411)、搜索模式进入单元(例如,图44的搜索模式进入单元4412)、填充单元(例如,图44的填充单元4413)、获取单元(例如,图44的获取单元4415)、确定单元(例如,图44的确定单元4417)和选择单元(例如,图44的选择单元4419)。处理单元(或其一个或多个部件,诸如单元1007至1029)被配置为:在显示单元(例如,显示单元4407)上显示(例如,通过显示单元4407)与正在电子设备上执行的应用程序相关联的内容;通过触敏表面单元(例如,触敏表面单元4403)检测(例如,通过检测单元4407)轻扫手势,该手势当被检测到时,将使电子设备进入不同于该应用程序的搜索模式;响应于检测到轻扫手势,进入搜索模式(例如,通过搜索模式进入单元4412),搜索模式包括显示单元(例如,显示单元4407)上显示的搜索界面;结合进入搜索模式,至少部分地基于与该内容相关联的信息确定(例如,通过确定单元4417)至少一个建议的搜索查询;并且在搜索界面处接收到任何用户输入之前,使用所述至少一个建议的搜索查询填充(例如,通过填充单元
4413)显示的搜索界面。
[0146] (D22)在D21的电子设备的一些实施方案中,检测轻扫手势包括在当前显示的内容的至少一部分上检测(例如,通过检测单元4407)轻扫手势。
[0147] (D23)在D21至D22中任一项的电子设备的一些实施方案中,其中处理单元被进一步配置为:在检测轻扫手势之前,检测(例如,通过检测单元4407)与查看电子设备home屏幕的请求相对应的输入;并且响应于检测(例如,通过检测单元4407)到该输入,停止显示与应用程序相关联的内容并显示电子设备的home屏幕的相应页面(例如,通过显示单元4409),其中:所述相应页面是home屏幕页面序列中的初始页面;并且在显示单元上显示home屏幕的初始页面时检测(例如,通过检测单元4407)轻扫手势。
[0148] (D24)在D21至D23中任一项的电子设备的一些实施方案中,搜索界面被显示(例如,通过显示单元4409和/或显示单元4401)为半透明地覆盖应用程序。
[0149] (D25)在D21至D24中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:根据确定该内容包括文本内容,至少部分地基于文本内容确定(例如,通过确定单元4417)所述至少一个建议的搜索查询。
[0150] (D26)在D25的电子设备的一些实施方案中,至少部分地基于文本内容确定所述至少一个建议的搜索查询包括:分析文本内容以检测(例如,通过检测单元4407)用于确定(例如,通过确定单元4417)所述至少一个建议搜索查询的一个或多个预定义的关键字。
[0151] (D27)在D21至D26中任一项的电子设备的一些实施方案中,确定所述至少一个建议的搜索查询包括确定(例如,通过确定单元4417)多个建议的搜索查询,并且填充搜索界面包括使用所述多个建议的搜索查询填充(例如,通过填充单元4413)搜索界面。
[0152] (D28)在D21至D27中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:通过触敏表面单元(例如,触敏表面单元4403)检测(例如,通过检测单元4407)当前显示的新内容上的新的轻扫手势;并且响应于检测到新的轻扫手势,进入搜索模式(例如,通过搜索模式进入单元4412),并且进入搜索模式包括在显示单元上显示搜索界面(例如,通过显示单元4409);并且结合进入搜索模式并根据确定新内容不包括文本内容,使用建议的搜索查询填充(例如,通过填充单元4413)搜索界面,其中建议的搜索查询基于来自电子设备用户的一组选择的历史搜索查询。
[0153] (D29)在D28的电子设备的一些实施方案中,搜索界面与兴趣点一起显示(例如,显示单元4409),兴趣点基于与不同于该应用程序的第二应用程序提供的位置信息。
[0154] (D30)在D28至D29中任一项的电子设备的一些实施方案中,搜索界面还包括一个或多个建议的应用程序。
[0155] (D31)在D28至D30中任一项的电子设备的一些实施方案中,至少部分地基于最近搜索查询的频率选择(例如,通过选择单元4419)该组历史搜索查询。
[0156] (D32)在D21至D31中任一项的电子设备的一些实施方案中,处理单元被进一步配置为:结合进入搜索模式,通过使用电子设备上可用的一个或多个辅助功能获取(例如,通过获取单元4415)与该内容相关联的信息。
[0157] (D33)在D32的电子设备的一些实施方案中,使用一个或多个辅助功能包括使用一个或多个辅助功能来生成与内容相关联的信息,方法是:(i)将自然语言处理算法应用于当前在应用程序中显示的文本内容,以及(ii)使用从自然语言处理算法获取(例如,通过获取单元4415)的数据确定(例如,通过确定单元4417)描述该内容的一个或多个关键字,其中所述至少一个建议的搜索查询基于所述一个或多个关键字确定(例如,通过确定单元4417)。
[0158] (D34)在D33的电子设备的一些实施方案中,确定描述该内容的一个或多个关键字还包括:(i)检索(例如,通过检索单元4411)与当前在应用程序中显示的非文本内容相对应的元数据,以及(ii)除从自然语言处理算法获取的数据外,还使用检索的元数据确定(例如,通过确定单元4417)一个或多个关键字。
[0159] (D35)在D21至D34中任一项的电子设备的一些实施方案中,搜索界面还包括一个或多个趋势查询。
[0160] (D36)在D35的电子设备的一些实施方案中,搜索界面还包括预测为电子设备用户感兴趣的一个或多个应用程序。
[0161] (E1)根据一些实施方案,在具有触敏表面(例如,触敏表面195,图1D)和显示器(例如,显示器194,图1D)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)上执行方法。该方法包括:通过触敏表面检测用户界面上的轻扫手势,并且该轻扫手势当被检测到时,使电子设备进入搜索模式。该方法还包括:响应于检测到轻扫手势,进入搜索模式,并且进入搜索模式包括:在搜索界面内接收到任意用户输入前,使用第一内容项填充与用户界面不同的搜索界面。在一些实施方案中,根据确定用户界面包括与某个应用程序相关联的内容,其中该用户界面不同于包括用于调用应用程序的可选图标的home屏幕,使用第一内容项填充搜索界面包括使用所述至少一个建议的搜索查询填充搜索界面,其中该搜索查询至少部分地基于与该应用程序相关联的内容;并且根据确定用户界面与home屏幕的页面相关联,使用第一内容项填充搜索界面包括使用示能表示填充搜索界面,该示能表示包括对电子设备当前位置的阈值距离内的至少一个兴趣点的可选描述。
[0162] (E2)在E1方法的一些实施方案中,用示能表示填充搜索界面包括在触敏表面上显示搜索界面的搜索入口部分;并且该方法还包括:检测搜索入口部分的输入;并且响应于检测到搜索入口部分的输入,停止显示示能表示并在搜索界面内显示所述至少一个建议的搜索查询。
[0163] (E3)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、一个或多个处理器、以及存储一个或多个程序的存储器,当由一个或多个处理器执行该程序时,将使电子设备执行E1至E2中任一项描述的方法。
[0164] (E4)在又一方面,提供一种电子设备,并且该电子设备包括:触敏表面、显示器以及用于执行E1至E2中任一项所述方法的装置。
[0165] (E5)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面和显示器的电子设备执行这些指令时,将使电子设备执行E1至E2中任一项描述的方法。
[0166] (E6)在另一方面,提供了具有触敏表面和显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据E1至E2中任一项描述的方法显示的用户界面。
在另一方面,提供了一种在包括触敏表面和显示器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行E1至E2中任一项描述的方法的装置。
[0167] (E7)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图45的显示单元4501)、触敏表面单元(例如,图45的触敏表面单元4503)和处理单元(例如,图45的处理单元4505)。处理单元与触敏表面单元和显示单元耦合。在一些实施方案中,根据图1E所示计算设备的任何一个(即计算设备A至D)配置电子设备。为便于说明,图45示出了与电子设备4500集成的显示单元4501和触敏表面单元4503,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。在一些实施方案中,触敏表面单元和显示单元集成在单个触敏显示器单元(在本文中也称为触敏显示器)中。处理单元包括检测单元(例如,图45的检测单元4507)、显示单元(例如,图45的显示单元4509)、填充单元(例如,图45的填充单元4511)和搜索模式进入单元(例如,图45的搜索模式进入单元4513)。处理单元(或其一个或多个部件,诸如单元4507至4513)被配置为:通过触敏表面单元(例如,触敏表面单元4503)检测(例如,通过检测单元4507)用户界面上的轻扫手势,其中当检测到轻扫手势时,将使电子设备进入搜索模式;并且响应于检测到轻扫手势,进入搜索模式(例如,通过搜索模式进入单元4513),其中进入搜索模式包括:在搜索界面内接收到任意用户输入前,使用第一内容项填充(例如,通过填充单元4511)与用户界面不同的搜索界面。在一些实施方案中,根据确定用户界面包括与某个应用程序相关联的内容,其中该用户界面不同于包括用于调用应用程序的可选图标的home屏幕,使用第一内容项填充搜索界面包括使用所述至少一个建议的搜索查询填充(例如,通过填充单元
4511)搜索界面,其中该搜索查询至少部分地基于与该应用程序相关联的内容;并且根据确定用户界面与home屏幕的页面相关联,使用第一内容项填充搜索界面包括使用示能表示填充(例如,通过填充单元4511)搜索界面,该示能表示包括对电子设备当前位置的阈值距离内的至少一个兴趣点的可选描述。
[0168] (E8)在E7的电子设备的一些实施方案中,用示能表示填充搜索界面包括显示(例如,通过显示单元4507和/或显示单元4501)搜索界面的搜索入口部分;并且处理单元被进一步配置为:检测(例如,通过检测单元4507)搜索入口部分的输入;并且响应于在搜索入口部分检测到输入,停止显示(例如,通过显示单元4507和/或显示单元4501)示能表示并在搜索界面内显示(例如,通过显示单元4507和/或显示单元4501)所述至少一个建议的搜索查询。
[0169] (F1)根据一些实施方案,在具有位置传感器、触敏表面(例如,触敏表面195,图1D)和显示器(例如,显示器194,图1D)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)上执行方法。该方法包括:在无来自用户的指令情况下,自动确定电子设备用户位于停留在某个地理位置的车辆内;当确定用户已经离开位于该地理位置的车辆时,确定从位置传感器检索的用于识别地理位置的定位信息是否满足准确度标准。该方法还包括:在确定定位信息不满足准确度标准时,向用户提供输入有关地理位置的信息的提示。该方法还包括:响应于提供提示,从用户接收关于地理位置的信息并将该信息存储为车辆位置信息。
[0170] (F2)在权利要求F1的方法的一些实施方案中,该方法还包括:在确定定位信息满足准确度标准时,在无来自用户的指令情况下,自动将定位信息存储为车辆位置信息。
[0171] (F3)在权利要求F2的方法的一些实施方案中,该方法还包括:根据确定用户正前往该地理位置,显示包括车辆位置信息的用户界面对象。
[0172] (F4)在权利要求F3的方法的一些实施方案中,用户界面对象是包括用户当前位置标识符和地理位置的单独标识符的地图对象。
[0173] (F5)在权利要求F4的方法的一些实施方案中,用户界面对象显示在电子设备的锁定屏幕上。
[0174] (F6)在权利要求F4的方法的一些实施方案中,响应于使得电子设备进入搜索模式的轻扫手势,显示用户界面对象。
[0175] (F7)在权利要求F6的方法的一些实施方案中,响应于接收到轻扫手势,执行确定,确定用户是否正在前往该地理位置。
[0176] (F8)在F1至F7中任一项的方法的一些实施方案中,该提示是由可通过电子设备使用的虚拟助理提供的音频提示,从用户接收信息包括从用户接收识别该地理位置的口头描述,显示用户界面对象包括显示可选择的示能表示,当选择该示能表示时将使设备回放口头描述。
[0177] (F9)在F1至F7中任一项的方法的一些实施方案中,该提示显示在电子设备的显示器上,从用户接收信息包括从用户接收识别该地理位置的文本描述,显示用户界面对象包括显示来自用户的文本描述。
[0178] (F10)在F1至F7中任一项的方法的一些实施方案中,确定用户是否正在前往该地理位置包括:使用从位置传感器接收的新的定位信息来确定电子设备正在向该地理位置移动。
[0179] (F11)在F10的方法的一些实施方案中,确定用户是否正在前往该地理位置包括:(i)确定电子设备在另一个地理位置处停留超出阈值时间周期,以及(ii)确定新的定位信息表明电子设备正在离开另一个地理位置并向该地理位置移动。
[0180] (F12)在F1至F11中任一项的方法的一些实施方案中,确定用户处于停留在该地理位置处的车辆中包括:(i)通过确定电子设备正在以高于阈值速度行进确定用户位于车辆内(ii)通过以下一项或多项确定车辆已经停留在该地理位置处:(a)确定电子设备已经在该地理位置处停留超出某个阈值时间周期,(b)确定电子设备与车辆之间的通信链路已断开,以及(c)确定该地理位置对应于停车场内的某个位置。
[0181] (F13)在权利要求F12的方法的一些实施方案中,确定车辆已停留在该地理位置处包括确定电子设备已经在该地理位置处停留超出某个阈值时间周期。
[0182] (F14)在F12至F13中任一项的方法的一些实施方案中,确定车辆已停留在该地理位置处包括确定电子设备和车辆之间的通信链路已经断开。
[0183] (F15)在F12至F14中任一项的方法的一些实施方案中,确定车辆已停留在该地理位置处包括确定该地理位置对应于停车场内的某个位置。
[0184] (F16)在F1至F15中任一项的方法的一些实施方案中,准确度标准包括当与定位信息相关联的GPS读数准确度高于准确度的阈值平时所满足的标准。
[0185] (F17)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、位置传感器、一个或多个处理器、以及存储一个或多个程序的存储器,当由一个或多个处理器执行该程序时,将使电子设备执行F1至F16中任一项描述的方法。
[0186] (F18)在又一方面,提供一种电子设备,并且该电子设备包括:触敏表面、显示器、位置传感器以及用于执行F1至F16中任一项所述方法的装置。
[0187] (F19)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面、显示器和位置传感器的电子设备执行这些指令时,将使电子设备执行F1至F16中任一项描述的方法。
[0188] (F20)在另一方面,提供了具有触敏表面、显示器和位置传感器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据F1至F16中任一项描述的方法显示的用户界面。在另一方面,提供了一种在包括触敏表面、显示器和位置传感器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行F1至F16中任一项描述的方法的装置。
[0189] (F21)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图46的显示单元4601)、触敏表面单元(例如,图46的触敏表面单元4603)、位置传感器单元(例如,图46的位置传感器单元4607)和处理单元(例如,图46的处理单元4605)。处理单元与触敏表面单元、显示单元和位置传感器单元耦合。在一些实施方案中,根据图1E所示计算设备的任何一个(即计算设备A至D)配置电子设备。为便于说明,图46示出了与电子设备4600集成的显示单元4601和触敏表面单元4603,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。在一些实施方案中,触敏表面单元和显示单元集成在单个触敏显示器单元(在本文中也称为触敏显示器)中。处理单元包括显示单元(例如,图46的显示单元4609)、检索单元(例如,图46的检索单元4611)、确定单元(例如,图46的确定单元4613)、存储单元(例如,图46的存储单元4615)、识别单元(例如,图46的识别单元4617)、选择单元(例如,图46的选择单元4619)、接收单元(例如,图46的接收单元4621)、提供单元(例如,图46的提供单元4623)和回放单元(例如,图46的回放单元4625)。处理单元(或其一个或多个部件,诸如单元4607至4625)被配置为:在无来自用户的指令情况下,自动确定(例如,通过确定单元4613)电子设备用户位于停留在某个地理位置的车辆内;在确定用户已经离开位于该地理位置的车辆时,确定(例如,通过确定单元4613)从位置传感器单元(例如,位置传感器单元4607)检索(例如,通过检索单元4611)的用于识别(例如,通过识别单元4617)地理位置的定位信息是否满足准确度标准;在确定(例如,通过确定单元4613))定位信息不满足准确度标准时,向用户提供(例如,通过提供单元4623)输入有关地理位置信息的提示;并且响应于提供该提示,从用户接收(例如,通过接收单元
4621)关于该地理位置的信息,并将该信息存储(例如,通过存储单元4615)为车辆位置信息。
[0190] (F22)在F21的电子设备的一些实施方案中,处理单元被进一步配置为:在确定定位信息满足准确度标准时,在无来自用户的指令情况下,自动将定位信息存储(例如,通过存储单元4615)为车辆位置信息。
[0191] (F23)在F22的电子设备的一些实施方案中,处理单元被进一步配置为:根据确定用户正前往该地理位置,显示(例如,通过显示单元4609结合显示单元4601)包括车辆位置信息的用户界面对象。
[0192] (F24)在F23的电子设备的一些实施方案中,用户界面对象是包括用户当前位置标识符和地理位置的单独标识符的地图对象。
[0193] (F25)在F24的电子设备的一些实施方案中,用户界面对象显示(例如,通过显示单元4609结合显示单元4601)在电子设备的锁定屏幕上。
[0194] (F26)在F24的电子设备的一些实施方案中,响应于使得电子设备进入搜索模式的轻扫手势,显示(例如,通过显示单元4609结合显示单元4601)用户界面对象。
[0195] (F27)在F26的电子设备的一些实施方案中,响应于接收到轻扫手势,执行确定,确定用户是否正在前往该地理位置。
[0196] (F28)在F21至F27中任一项的电子设备的一些实施方案中,该提示是由可通过电子设备使用的虚拟助理提供的音频提示,从用户接收信息包括从用户接收(例如,通过接收单元4621)识别该地理位置的口头描述,显示用户界面对象包括显示(例如,通过显示单元4609结合显示单元4601)可选择的示能表示,当选择(例如,通过选择单元4619)该示能表示时将使设备回放(例如,通过回放单元4625)口头描述。
[0197] (F29)在F21至F27中任一项的电子设备的一些实施方案中,该提示显示(例如,通过显示单元4609结合显示单元4601)在电子设备的显示器上,从用户接收信息包括从用户接收(例如,通过接收单元4621)识别该地理位置的文本描述,显示用户界面对象包括显示来自用户的文本描述。
[0198] (F30)在F21至F27中任一项的电子设备的一些实施方案中,确定用户是否正在前往该地理位置包括:使用从位置传感器单元(例如,位置传感器单元4607)接收(例如,通过接收单元4621)的新的定位信息来确定(例如,通过确定单元4613)电子设备正在向该地理位置移动。
[0199] (F31)在F30的电子设备的一些实施方案中,确定用户是否正在前往该地理位置包括:(i)确定(例如,通过确定单元4613)电子设备在另一个地理位置处停留超出阈值时间周期,以及(ii)确定(例如,通过确定单元4613)新的定位信息表明电子设备正在离开另一个地理位置并向该地理位置移动。
[0200] (F32)在F21至F31中任一项的电子设备的一些实施方案中,确定用户处于停留在该地理位置处的车辆中包括:(i)通过确定(例如,通过确定单元4613)电子设备正在以高于阈值速度行进确定用户位于车辆内(ii)通过以下一项或多项确定车辆已经停留在该地理位置处:(a)确定(例如,通过确定单元4613)电子设备已经在该地理位置处停留超出某个阈值时间周期,(b)确定(例如,通过确定单元4613)电子设备与车辆之间的通信链路已断开,以及(c)确定(例如,通过确定单元4613)该地理位置对应于停车场内的某个位置。
[0201] (F33)在F32的电子设备的一些实施方案中,确定车辆已停留在该地理位置处包括确定(例如,通过确定单元4613)电子设备已经在该地理位置处停留超出某个阈值时间周期。
[0202] (F34)在F32至F33中任一项的电子设备的一些实施方案中,确定车辆已停留在该地理位置处包括确定(例如,通过确定单元4613)电子设备和车辆之间的通信链路已经断开。
[0203] (F35)在F32至F34中任一项的电子设备的一些实施方案中,确定车辆已停留在该地理位置处包括确定(例如,通过确定单元4613)该地理位置对应于停车场内的某个位置。
[0204] (F36)在F21至F35中任一项的电子设备的一些实施方案中,准确度标准包括当与定位信息相关联的GPS读数准确度高于准确度的阈值水平时所满足的标准。
[0205] (G1)根据一些实施方案,在具有位置传感器、触敏表面(例如,触敏表面195,图1D)和显示器(例如,显示器194,图1D)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)上执行方法。该方法包括:使用位置传感器监测电子设备的地理位置。该方法还包括:基于所监测的地理位置确定电子设备在预先确定的类型的兴趣点的阈值距离内。该方法还包括:根据确定电子设备在兴趣点的阈值距离内:识别当前在兴趣点处流行的至少一项活动并检索关于该兴趣点的信息,包括检索关于当前在兴趣点处流行的至少一项活动的信息。该方法还包括:通过触敏表面检测第一输入,第一输入时当被检测到时使电子设备进入搜索模式;并且响应于检测到第一输入,进入搜索模式,其中进入搜索模式包括在搜索界面处接收到任何用户输入之前,通过显示器呈现包括以下项的示能表示:(i)关于所述至少一项活动的信息,以及(ii)所述至少一项活动已被确定为当前在兴趣点处流行的指示。
[0206] (G2)在权利要求G1的方法的一些实施方案中,该方法包括:检测第二输入;并且响应于检测到第二输入,更新示能表示以包括关于不同于该兴趣点的第二兴趣点处的当前活动的可用信息,该兴趣点在电子设备的阈值距离内。
[0207] (G3)在G1至G2中任一项的方法的一些实施方案中,该示能表示还包括可选择的兴趣点类别,并且该方法还包括:检测相应可选择类别的选择;并且响应于检测到该选择,更新示能表示以包括关于附加兴趣点的信息,其中所述附加兴趣点位于设备的第二阈值距离内。
[0208] (G4)在G1至G3中任一项的方法的一些实施方案中,兴趣点为游乐园,并且检索的信息包括游乐园的乘坐装置的当前等待时间。
[0209] (G5)在权利要求G4的方法的一些实施方案中,检索的信息包括关于位于电子设备的预定义距离内的乘坐装置的等待时间的信息。
[0210] (G6)在G1至G3中任一项的方法的一些实施方案中,兴趣点为餐厅,并且检索的信息包括关于餐厅中流行菜单项的信息。
[0211] (G7)在权利要求G6的方法的一些实施方案中,检索的信息为从与电子设备用户相关联的社交网络检索到的信息。
[0212] (G8)在G1至G3中任一项的方法的一些实施方案中,兴趣点为电影院,并且检索的信息包括关于电影院的放映时间的信息。
[0213] (G9)在权利要求G8的方法的一些实施方案中,检索的信息为从与电子设备用户相关联的社交网络检索到的信息。
[0214] (G10)在G1至G9中任一项的方法的一些实施方案中,解锁电子设备后,响应于在电子设备home屏幕的初始页面上大体沿水平方向的轻扫,示能表示可用。
[0215] (G11)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、位置传感器、一个或多个处理器、以及存储一个或多个程序的存储器,当由一个或多个处理器执行该程序时,将使电子设备执行G1至G10中任一项描述的方法。
[0216] (G12)在又一方面,提供一种电子设备,并且该电子设备包括:触敏表面、显示器、位置传感器以及用于执行G1至G10中任一项所述方法的装置。
[0217] (G13)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面、显示器和位置传感器的电子设备执行这些指令时,将使电子设备执行G1至G10中任一项描述的方法。
[0218] (G14)在另一方面,提供了具有触敏表面、显示器和位置传感器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据G1至G10中任一项描述的方法显示的用户界面。在另一方面,提供了一种在包括触敏表面、显示器和位置传感器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行G1至G10中任一项描述的方法的装置。
[0219] (G15)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图47的显示单元4701)、触敏表面单元(例如,图47的触敏表面单元4703)、位置传感器单元4707和处理单元(例如,图47的处理单元4705)。处理单元与触敏表面单元、显示单元和位置传感器单元耦合。在一些实施方案中,根据图1E所示计算设备的任何一个(即计算设备A至D)配置电子设备。为便于说明,图47示出了与电子设备4700集成的显示单元4701和触敏表面单元4703,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。在一些实施方案中,触敏表面单元和显示单元集成在单个触敏显示器单元(在本文中也称为触敏显示器)中。处理单元包括检测单元(例如,图47的检测单元4709)、显示单元(例如,图47的显示单元4711)、检索单元(例如,图47的检索单元4713)、确定单元(例如,图47的确定单元4715)、识别单元(例如,图47的识别单元4717)、解锁单元(例如,图47的解锁单元4719)和搜索模式进入单元(例如,图47的搜索模式进入单元
4721)。处理单元(或其一个或多个部件,诸如单元4709至4721)被配置为:在不接收任何来自电子设备用户的指令情况下:使用位置传感器单元(例如,位置传感器单元4707)监测电子设备的地理位置;基于监测的地理位置确定(例如,通过确定单元4715)电子设备在预定类型的兴趣点的阈值距离内;根据确定电子设备在兴趣点的阈值距离内:识别(例如,通过识别单元4717)当前在兴趣点处流行的至少一项活动;检索(例如,通过检索单元4713)关于该兴趣点的信息,包括检索关于至少一项当前在兴趣点处流行的活动的信息;通过触敏表面单元(例如,触敏表面单元4703)检测(例如,通过检测单元4709)第一输入,第一输入当被检测到时使电子设备进入搜索模式;并且响应于检测到第一输入,进入搜索模式(例如,通过搜索模式进入单元4721),并且进入搜索模式包括在搜索界面处接收到任何用户输入之前,通过显示单元(例如,显示单元4701)呈现(例如,通过显示单元4711)包括以下项的示能表示:(i)关于所述至少一项活动的信息,以及(ii)所述至少一项活动已被确定为当前在兴趣点处流行的活动的指示。
[0220] (G16)在G15的电子设备的一些实施方案中,处理单元被进一步配置为:检测(例如,通过检测单元4709)第二输入;并且响应于检测到第二输入,更新(例如,通过显示单元4711)示能表示以包括关于不同于该兴趣点的第二兴趣点处的当前活动的可用信息,并且该兴趣点在电子设备的阈值距离内。
[0221] (G17)在G15至G16中任一项的电子设备的一些实施方案中,该示能表示还包括可选择的兴趣点类别,并且处理单元被进一步配置为:检测(例如,通过检测单元4709)相应可选择类别的选择;并且响应于检测到该选择,更新(例如,通过显示单元4711)示能表示以包括关于附加兴趣点的信息,其中所述附加兴趣点位于设备的第二阈值距离内。
[0222] (G18)在G15至G17中任一项的电子设备的一些实施方案中,兴趣点为游乐园,并且检索的信息包括游乐园的乘坐装置的当前等待时间。
[0223] (G19)在G18的电子设备的一些实施方案中,检索的信息包括关于位于电子设备的预定义距离内的乘坐装置的等待时间的信息。
[0224] (G20)在G15至G17中任一项的电子设备的一些实施方案中,兴趣点为餐厅,并且检索的信息包括关于餐厅中流行菜单项的信息。
[0225] (G21)在G20的电子设备的一些实施方案中,检索的信息为从与电子设备用户相关联的社交网络检索到的信息。
[0226] (G22)在G15至G17中任一项的电子设备的一些实施方案中,兴趣点为电影院,并且检索的信息包括关于电影院的放映时间的信息。
[0227] (G23)在G22的电子设备的一些实施方案中,检索的信息为从与电子设备用户相关联的社交网络检索到的信息。
[0228] (G24)在G15至G23中任一项的电子设备的一些实施方案中,解锁(例如,通过解锁单元4719)电子设备后,响应于在电子设备home屏幕的初始页面上大体沿水平方向的轻扫,示能表示可用。
[0229] (H1)根据一些实施方案,在具有触敏表面和显示器(在一些实施方案中,触敏表面和显示器集成在一起,如在图1C的触摸屏112示出的)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)上执行方法。该方法包括:接收语音通信的至少一部分(例如,10秒或更短的实时电话呼叫或记录的语音信箱),语音通信的该部分包括由远程设备的远程用户提供的语音,该远程用户不同于电子设备的用户。该方法还包括:至少部分地基于由远程设备的远程用户提供的语音来提取内容项。该方法还包括:确定该内容项当前在电子设备上是否可用。根据确定内容项当前在电子设备上不可用,该方法包括:(i)识别与该内容项相关联的应用程序,以及(ii)在显示器上显示该内容项的可选描述。响应于检测到可选描述的选择,该方法包括:存储内容项以通过识别的应用程序进行呈现(例如,存储内容项以使其可由识别的应用程序呈现)。这样,用户能够存储在语音通信中提到或讨论过的内容项,而不必记住讨论的所有细节并在随后输入这些细节以创建适当的内容项。相反,电子设备能够基于描述各种相应内容项的语音来检测和提取内容项,然后提供可由用户选择的内容项的可选描述,以便将相应的内容项存储在电子设备上。
[0230] (H2)在H1的方法的一些实施方案中,内容项是某个新事件。
[0231] (H3)在H1的方法的一些实施方案中,内容项是当前与电子设备上的日历应用程序相关联的事件的新事件细节。
[0232] (H4)在H1的方法的一些实施方案中,内容项是某个新联系人。
[0233] (H5)在H1的方法的一些实施方案中,内容项是与电子设备上的电话应用程序相关联的现有联系人的新联系人信息。
[0234] (H6)在H1至H5中任一项的方法的一些实施方案中,语音通信是实时电话呼叫。
[0235] (H7)在H1至H5中任一项的方法的一些实施方案中,语音通信是实时FaceTime通话。
[0236] (H8)在H1至H5中任一项的方法的一些实施方案中,语音通信是记录的语音信箱。
[0237] (H9)在H1至H8中任一项的方法的一些实施方案中,显示可选描述包括在用户界面内显示可选描述,其中该用户界面包括使用电话应用程序进行过的最近通话。这样,用户能够轻易且方便地直接通过包括最近通话的用户界面访问提取的内容项(例如,在相应的语音通信期间提取的内容项)。
[0238] (H10)在H9的方法的一些实施方案中,可选描述与以下指示一起显示:内容项与语音通信相关联。
[0239] (H11)在H9的方法的一些实施方案中,检测选择包括:在显示包括最近通话的用户界面的同时接收选择。
[0240] (H12)在H1至H11中任一项的方法的一些实施方案中,该方法还包括:结合显示内容项的可选描述,将已检测到内容项的反馈(例如,电子设备生成的触觉反馈或呈现在第二设备上的用户界面对象,从而使用户不必在电话呼叫期间将电话从其朵移开)提供给电子设备用户。这样,向用户提供一条简明指示,指示在语音通信期间检测/提取到了内容项,然后用户可以决定是否存储该内容项。
[0241] (H13)在H12的方法的一些实施方案中,提供反馈包括向该电子设备附近的另一台电子设备(例如,膝上型电脑、电视监视器、智能手表等)发送与内容项检测有关的信息。这样,用户不必中断语音通信,但仍然可以在另一台设备上查看与检测/提取的内容项相关的细节。
[0242] (H14)在H1至H13中任一项的方法的一些实施方案中,该方法还包括:确定语音通信包括关于第一物理位置的信息(例如,在电话呼叫期间提到的地址或在电话呼叫期间讨论的餐厅名称等,以下提供了更多细节)。该方法还包括:检测输入,并且响应于检测到输入,打开能够接受位置数据的应用程序并使用有关第一物理位置的信息填充该应用程序。这样,除了检测和提取事件和联系人信息外,该电子设备还能够提取在语音通信期间讨论的位置信息,并在适当的应用程序中向用户提供该位置信息(例如,使用户免受记忆电话上讨论的具体位置细节的烦扰,特别是用户可能不熟悉的新细节,该设备提取这些位置细节并进行显示以供用户使用)。
[0243] (H15)在H14的方法的一些实施方案中,该应用程序为地图应用程序,并且使用与第一物理位置有关的信息填充该地图应用程序包括:使用与第一物理位置对应的位置标识符填充该地图应用程序内显示的地图。这样,用户能够方便地使用新提取的位置细节前往新的目的地、查看特定位置有多远并使用由地图应用程序提供的其他功能。
[0244] (H16)在H1至H13中任一项的方法的一些实施方案中,该方法还包括:确定语音通信包括与第一物理位置有关的信息。该方法还包括:检测输入(例如,搜索激活手势,诸如以下详细讨论的轻扫手势),并且响应于检测到输入,使用关于第一物理位置的信息填充搜索界面。这样,除了(或作为替代)向用户提供用于特定应用程序的位置信息外,电子设备还能够提供在搜索界面中使用的位置信息(例如,用于搜索相关的兴趣点或搜索关于第一物理位置的更多细节,诸如电话号码、菜单等)。
[0245] (H17)在H1至H16中任一项的方法的一些实施方案中,提取内容项包括分析语音通信的该部分以检测预定类型的内容,并且在通过与电子设备通信的音频系统输出语音通信的同时执行分析(例如,在将语音通信输出给电子设备用户的同时实时分析语音通信)。
[0246] (H18)在H17的方法的一些实施方案中,分析语音通信包括:(i)将由远程设备的远程用户提供的语音转换为文本;(ii)将自然语言处理算法应用于该文本以确定文本是否包括一个或多个预定义的关键字;并且(iii)根据确定文本包括相应的预定义关键字,确定语音通信包括描述内容项的语音。
[0247] (H19)在H1至H18中任一项的方法的一些实施方案中,接收至少该部分语音通信包括从电子设备用户接收应分析语音通信该部分的指示。
[0248] (H20)在H19的方法的一些实施方案中,该指示对应于硬件按钮的选择(例如,用户在音频系统输出语音通信的同时选择硬件按钮,该语音通信用于指示应分析的预定语音通信的秒数(例如,先前的10、15或20秒))。在一些实施方案中,该按钮还可以是呈现在电子设备显示器上供用户进行选择的按钮(例如,在语音通信期间显示“轻击此处分析语音通信以获取新内容”的按钮)。
[0249] (H21)在H19的方法的一些实施方案中,该指示对应于来自电子设备用户的命令,包括字词“嘿,Siri”。因此,用户能够轻松指示电子设备开始分析语音通信的该部分以检测在语音通信中讨论的内容项(诸如事件、联系人信息和关于物理位置的信息)。
[0250] (H22)在H1至H21中任一项的方法的一些实施方案中,该方法还包括:接收语音通信的第二部分,该第二部分包括由远程设备的远程用户提供的语音和由电子设备用户提供的语音(例如,语音通信是实时电话呼叫,并且第二部分包括用户和远程用户之间的讨论)。该方法还包括:至少部分地基于由远程设备的远程用户提供的语音和由电子设备用户提供的语音来提取第二内容项。根据确定第二内容项当前在电子设备上不可用,该方法包括:
(i)识别与第二内容项相关联的第二应用程序,以及(ii)在显示器上显示第二内容项的第二可选描述。响应于检测到第二可选描述的选择,该方法包括:存储第二内容项以通过识别的第二应用程序进行呈现。
[0251] (H23)在H22的方法的一些实施方案中,在用户界面内显示可选描述和第二可选描述,其中该用户界面包括使用电话应用程序进行过的最近通话。这样,向用户提供了单个界面,该界面方便地包括在多个语音通信(例如,多个电话呼叫、语音信箱或电话呼叫和语音信箱)上检测到的内容项。
[0252] (H24)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、一个或多个处理器、以及存储一个或多个程序的存储器,其中当由一个或多个处理器执行该程序时,将使电子设备执行H1至H23中任一项描述的方法。
[0253] (H25)在又一方面,提供了一种电子设备,该电子设备包括:触敏表面、显示器以及用于执行H1至H23中任一项所述方法的装置。
[0254] (H26)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面和显示器的电子设备执行这些指令时,将使电子设备执行H1至H23中任一项描述的方法。
[0255] (H27)在另一方面,提供了具有触敏表面和显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据H1至H23中任一项描述的方法显示的用户界面。
[0256] (H28)在另一方面,提供了一种在包括触敏表面和显示器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行H1至H23中任一项描述的方法的装置。
[0257] (H29)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图48的显示单元4801)、触敏表面单元(例如,图48的触敏表面单元4803)和处理单元(例如,图48的处理单元4805)。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图48示出了与电子设备4800集成的显示单元4801和触敏表面单元4803,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括语音通信接收单元(例如,图48的语音通信接收单元4807)、内容项提取单元(例如,图48的内容项提取单元4809)、可用性确定单元(例如,图48的可用性确定单元4811)、应用程序识别单元(例如,图48的应用程序识别单元4813)、显示单元(例如,图48的显示单元4815)、内容项存储单元(例如,图48的内容项存储单元4817)、反馈提供单元(例如,图48的反馈提供单元4819)、输入检测单元(例如,图48的输入检测单元4821)、应用程序打开单元(例如,图48的应用程序打开单元4823)、填充单元(例如,图48的填充单元4825)和语音通信分析单元(例如,图48的语音通信分析单元
4827)。处理单元(或其一个或多个部件,诸如单元4807至4827)被配置为:接收语音通信的至少一部分(例如,通过语音通信接收单元4807),语音通信的该部分包括由不同于电子设备用户的远程设备的远程用户提供的语音。处理单元还被配置为:至少部分地基于由远程设备的远程用户提供的语音来提取内容项(例如,通过内容项提取单元4809),并确定内容项当前在电子设备上是否可用(例如,通过可用性确定单元4811)。根据确定内容项当前在电子设备上不可用,处理单元还被配置为:(i)识别与内容项相关联的应用程序(例如,通过应用程序识别单元4813),以及(ii)在显示器上显示内容项的可选描述(例如,通过显示单元4815和/或显示单元4801)。响应于检测到可选描述的选择(例如,通过输入检测单元4821和/或触敏表面单元4803),处理单元被配置为:存储该内容项以通过识别的应用程序进行呈现(例如,通过内容项存储单元4817)。
[0258] (H30)在H29的电子设备的一些实施方案中,处理单元(或其一个或多个部件,诸如单元4907至4927)被进一步配置为执行H2至H23中任一项描述的方法。
[0259] (I1)根据一些实施方案,在具有触敏表面和显示器(在一些实施方案中,触敏表面和显示器集成在一起,如在图1C的触摸屏112示出的)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)上执行方法。该方法包括:接收语音通信的至少一部分,语音通信的该部分(例如,实时电话呼叫、记录的语音信箱)包括由远程设备的远程用户提供的语音,该远程用户不同于电子设备的用户。该方法还包括:确定语音通信包括识别第一物理位置的语音。响应于确定语音通信包括识别该物理位置的语音,该方法包括:提供指示(例如,向用户提供触觉反馈,显示带有关于该物理位置的信息的用户界面对象,或将关于该物理位置的信息发送到附近设备以在该附近设备上显示),指示已检测到有关该物理位置的信息。该方法另包括:通过触敏表面检测输入。响应于检测到输入,该方法包括:(i)打开接受地理位置数据的应用程序;以及(ii)使用有关物理位置的信息填充该应用程序。这样,用户能够存储在语音通信中提到或讨论过的关于物理位置的信息,而不必记住讨论过的所有细节并于随后在适当的应用程序中输入这些细节。相反,电子设备能够基于描述物理位置的语音(例如,餐厅的描述、某个物理位置的驾车路线等)检测和提取关于该物理位置的信息,然后提供指示,指示已检测到与相应物理位置有关的信息。
[0260] (I2)在I1的方法的一些实施方案中,语音通信是实时电话呼叫。
[0261] (I3)在I1的方法的一些实施方案中,语音通信是实时FaceTime通话。
[0262] (I4)在I1的方法的一些实施方案中,语音通信是记录的语音信箱。
[0263] (I5)在I1至I4中任一项的方法的一些实施方案中,提供指示包括在用户界面内显示物理位置的可选描述,其中该用户界面包括使用电话应用程序进行过的最近通话。
[0264] (I6)在I5的方法的一些实施方案中,可选描述指示内容项与语音通信相关联。
[0265] (I7)在I5至I6中任一项的方法的一些实施方案中,检测输入包括:在显示包括最近通话的用户界面的同时在可选描述上检测输入。
[0266] (I8)在I1至I7中任一项的方法的一些实施方案中,提供指示包括向电子设备的用户提供触觉反馈。
[0267] (I9)在I1至I8中任一项的方法的一些实施方案中,提供指示包括将关于物理位置的信息发送到靠近该电子设备的另一台电子设备。
[0268] (I10)在I1至I9中任一项的方法的一些实施方案中,确定语音通信包括描述物理位置的语音包括:分析语音通信的该部分以检测关于物理位置的信息,并且在通过与电子设备通信的音频系统输出语音通信的同时执行分析。
[0269] (I11)在I1至I10中任一项的方法的一些实施方案中,接收至少该部分语音通信包括从电子设备用户接收应分析语音通信该部分的指令。
[0270] (I12)在I11的方法的一些实施方案中,该指令对应于硬件按钮的选择。在一些实施方案中,该按钮还可以是呈现在电子设备显示器上供用户进行选择的按钮(例如,在语音通信期间显示“轻击此处分析语音通信以获取新内容”的按钮)。
[0271] (I13)在I11的方法的一些实施方案中,该指令对应于来自电子设备用户的命令,包括字词“嘿,Siri”。
[0272] (I14)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、一个或多个处理器、以及存储一个或多个程序的存储器,其中当由一个或多个处理器执行该程序时,将使电子设备执行I1至I13中任一项描述的方法。
[0273] (I15)在又一方面,提供了一种电子设备,该电子设备包括:触敏表面、显示器以及用于执行I1至I13中任一项所述方法的装置。
[0274] (I16)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面和显示器的电子设备执行这些指令时,将使电子设备执行I1至I13中任一项描述的方法。
[0275] (I17)在另一方面,提供了具有触敏表面和显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据I1至I13中任一项描述的方法显示的用户界面。
[0276] (I18)在另一方面,提供了一种在包括触敏表面和显示器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行I1至I13中任一项描述的方法的装置。
[0277] (I19)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图49的显示单元4901)、触敏表面单元(例如,图49的触敏表面单元4903)和处理单元(例如,图49的处理单元4905)。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图49示出了与电子设备4900集成的显示单元4901和触敏表面单元4903,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括语音通信接收单元(例如,图49的语音通信接收单元4907)、内容项提取单元(例如,图49的内容项提取单元4909)、指示提供单元(例如,图49的指示提供单元4911)、输入检测单元(例如,图49的输入检测单元4913)、应用程序打开单元(例如,图49的应用程序打开单元4915)、应用程序填充单元(例如,图49的应用程序填充单元4917)、反馈提供单元(例如,图49的反馈提供单元4919)和语音通信分析单元(例如,图49的语音通信分析单元4921)。处理单元(或其一个或多个部件,诸如单元4907至4921)被配置为:接收语音通信的至少一部分(例如,通过语音通信接收单元4907),语音通信的该部分包括由不同于电子设备用户的远程设备的远程用户提供的语音。处理单元还被配置为:确定语音通信包括识别物理位置的语音(例如,通过内容项提取单元4909)。
响应于确定语音通信包括识别该物理位置的语音,处理单元被配置为:提供已检测到关于该物理位置的信息的指示(例如,通过内容项提取单元4909)。处理单元还被配置为:通过触敏表面单元检测输入(例如,通过输入检测单元4911)。响应于检测到输入,处理单元被配置为:(i)打开接受地理位置数据的应用程序(例如,通过应用程序打开单元4913),并且(ii)使用有关物理位置的信息填充该应用程序(例如,通过应用程序填充单元4915)。
[0278] (I20)在I19的电子设备的一些实施方案中,处理单元(或其一个或多个部件,例如单元4907至4921)被进一步配置为执行I2至I13中任一项描述的方法。
[0279] (J1)根据一些实施方案,在具有触敏表面和显示器(在一些实施方案中,触敏表面和显示器集成在一起,如在图1C的触摸屏112示出的)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)上执行方法。该方法包括:在显示器上的即时消息应用程序中呈现文本输入字段和会话副本。该方法还包括:当在显示器上呈现即时消息应用程序时,确定来自电子设备用户的下一个可能的输入是关于物理位置的信息。该方法还包括:分析与文本输入字段和会话副本相关联的内容,至少部分地基于分析的内容的一部分确定建议的物理位置。该方法另包括:在显示器上的即时消息应用程序内呈现识别建议物理位置的可选用户界面元素,并且接收可选用户界面元素的选择。响应于接收到选择,该方法包括:在文本输入字段中呈现建议物理位置的表示。这样,即可方便地向电子设备用户提供所需内容,而不必键入任何内容,并且不必搜索内容(例如,用户只需选择可选用户界面元素来输入其当前地址,而不必访问地图应用程序以确定其确切位置,然后切换回即时消息应用程序并提供明确的输入以发送位置信息)。
[0280] (J2)在J1的方法的一些实施方案中,即时消息应用程序包括虚拟键盘,并且可选用户界面元素显示在与虚拟键盘相邻并且在虚拟键盘上方的建议部分中。
[0281] (J2)在J1至J2中任一项的方法的一些实施方案中,确定来自电子设备用户的下一个可能的输入是关于物理位置的信息包括:处理与文本输入字段和会话副本相关联的内容以检测会话副本包括有关用户当前位置的问题。这样,向用户提供与会话副本中的讨论直接相关的建议物理位置(例如,响应于第二用户的问题“你在哪儿?”,向用户呈现用户界面对象,该用户界面对象当被选择时,将使设备向第二用户发送关于用户当前位置的信息)。
[0282] (J4)在J3的方法的一些实施方案中,处理内容包括应用自然语言处理算法来检测构成问题的一个或多个预定义关键字(例如,“你在哪儿?”或“你的家庭地址是什么?”)。
[0283] (J5)在J3至J4中任一项的方法的一些实施方案中,该问题包括在从不同于该用户的第二用户接收的消息中。
[0284] (J6)在J1至J5中任一项的方法的一些实施方案中,确定来自电子设备用户的下一个可能的输入是关于物理位置的信息包括:在即时消息应用程序的文本输入部分中监视从用户接收的键入输入。
[0285] (J7)在J1至J6中任一项的方法的一些实施方案中,该方法还包括:根据确定用户正在键入且尚未选择可选用户界面元素,停止呈现可选用户界面元素。这样,如果可以确定用户对选择对象不感兴趣,则设备不会继续呈现可选用户界面对象。
[0286] (J8)在J1至J7中任一项的方法的一些实施方案中,该方法还包括:根据确定用户已提供附加输入,其中该输入指示用户将不会选择可选用户界面元素,停止呈现可选用户界面元素。这样,如果可以确定用户对选择对象不感兴趣,则设备不会继续呈现可选用户界面对象。
[0287] (J9)在J1至J5中任一项的方法的一些实施方案中,建议物理位置的表示包括用于识别电子设备的当前地理位置的信息。
[0288] (J10)在J1至J9中任一项的方法的一些实施方案中,建议物理位置的表示是地址。
[0289] (J11)在J1至J9中任一项的方法的一些实施方案中,建议的物理位置是地图对象,该地图对象包括建议物理位置的标识符。
[0290] (J12)在J1至J11中任一项的方法的一些实施方案中,建议的物理位置对应于用户最近在即时消息应用程序之外的应用程序中查看的位置。
[0291] (J13)在J1至J12中任一项的方法的一些实施方案中,即时消息应用程序是电子邮件应用程序。
[0292] (J14)在J1至J12中任一项的方法的一些实施方案中,即时消息应用程序是文本消息应用程序。
[0293] (J15)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、一个或多个处理器、以及存储一个或多个程序的存储器,其中当由一个或多个处理器执行该程序时,将使电子设备执行J1至J14中任一项描述的方法。
[0294] (J16)在又一方面,提供了一种电子设备,该电子设备包括:触敏表面、显示器以及用于执行J1至J14中任一项所述方法的装置。
[0295] (J17)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面和显示器的电子设备执行这些指令时,将使电子设备执行J1至J14中任一项描述的方法。
[0296] (J18)在另一方面,提供了具有触敏表面和显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据J1至J14中任一项描述的方法显示的用户界面。
[0297] (J19)在另一方面,提供了一种在包括触敏表面和显示器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行J1至J14中任一项描述的方法的装置。
[0298] (J20)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图50的显示单元5001)、触敏表面单元(例如,图50的触敏表面单元5003)和处理单元(例如,图50的处理单元5005)。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图50示出了与电子设备5000集成的显示单元5001和触敏表面单元5003,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括呈现单元(例如,图50的呈现单元5007)、下一输入确定单元(例如,图50的下一输入确定单元5009)、内容分析单元(例如,图
50的内容分析单元5011)、选择接收单元(例如,图50的选择接收单元5013)、键入输入监视单元(例如,图50的键入输入监视单元5015)和呈现停止单元(例如,图50的呈现停止单元
5017)。处理单元(或其一个或多个部件,例如单元5007至5017)被配置为:在显示器上的即时消息应用程序中呈现文本输入字段和会话副本(例如,通过呈现单元5007和/或显示单元
5001)。当在显示器上呈现即时消息应用程序时,处理单元还被配置为:确定来自电子设备用户的下一个可能的输入是关于物理位置的信息(例如,通过下一输入确定单元5009)处理单元另被配置为:分析与文本输入字段和会话副本相关联的内容,至少部分地基于分析的内容的一部分确定建议的物理位置(例如,通过内容分析单元5011);在显示器上的即时消息应用程序内呈现识别建议物理位置的可选用户界面元素(例如,通过呈现单元5007);接收可选用户界面元素的选择(例如,通过选择接收单元5013和/或触敏表面单元5003);并且响应于接收到选择,在文本输入字段中呈现建议物理位置的表示(例如,通过呈现单元
5007)。
[0299] (J21)在J20的电子设备的一些实施方案中,处理单元(或其一个或多个部件,例如单元5007至5017)被进一步配置为执行J2至J14中任一项描述的方法。
[0300] (K1)根据一些实施方案,在具有触敏表面和显示器(在一些实施方案中,触敏表面和显示器集成在一起,如在图1C的触摸屏112示出的)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)上执行方法。该方法包括:在显示第一应用程序的同时,获取用于识别用户在第一应用程序中查看的第一物理位置的信息(例如,用户在允许搜索本地商家的应用程序中搜索过的餐厅)。该方法还包括:退出第一应用程序,并且在退出第一应用程序后,从用户接收打开不同于第一应用程序的第二应用程序的请求。在一些实施方案中,在第一应用程序中未接收到任何输入情况下接收请求(例如,请求不包括在第一应用程序内点击链接或按钮)。响应于接收到请求并且根据确定第二应用程序能够接受地理位置信息,该方法包括:呈现第二应用程序,并且呈现第二应用程序包括使用至少部分地基于第一物理位置识别信息的信息填充第二应用程序。这样,用户不需要在两个不同的应用程序之间手动传输信息。相反,设备智能地确定第二应用程序能够接受地理位置信息,然后将在第一应用程序中查看的物理位置的相关信息直接填充到第二应用程序中(例如,在第二应用程序中填充地图对象以包括物理位置的标识符)。
[0301] (K2)在K1的方法的一些实施方案中,接收打开第二应用程序的请求包括:退出第一应用程序后,在第二应用程序的示能表示上检测输入。换句话讲,请求不对应于在第一应用程序内点击链接,相反,用户明确并直接地请求打开第二应用程序,然后设备决定使用关于先前查看的物理位置(先前在不同的第一应用程序中查看)的信息来填充第二应用程序,使得用户可以在第二应用程序中进一步研究或调查先前查看的该物理位置。
[0302] (K3)在K2的方法的一些实施方案中,第二应用程序的示能表示是显示在电子设备home屏幕内的图标。在一些实施方案中,home屏幕是操作系统的系统级部件,包括用于调用电子设备上可用的应用程序的图标。
[0303] (K4)在K2的方法的一些实施方案中,检测输入包括:(i)在物理Home按钮上检测双击,(ii)响应于检测到双击,显示应用程序切换用户界面,以及(iii)从应用程序切换用户界面内检测示能表示的选择。
[0304] (K5)在K1至K4中任一项的方法的一些实施方案中,填充第二应用程序包括显示用户界面对象,该用户界面对象包括至少部分地基于第一物理位置识别信息的信息。
[0305] (K6)在K5的方法的一些实施方案中,该用户界面对象包括通知用户第一物理位置最近在第一应用程序中被查看的文本描述。
[0306] (K7)在K6的方法的一些实施方案中,该用户界面对象是在第二应用程序中显示的地图,并且填充第二应用程序包括填充地图以包括第一物理位置的标识符。
[0307] (K8)在K6至K7中任一项的方法的一些实施方案中,第二应用程序呈现虚拟键盘,并且该用户界面对象显示在虚拟键盘的上方。
[0308] (K9)在K6至K8中任一项的方法的一些实施方案中,获取信息包括获取关于第二物理位置的信息,显示用户界面对象包括显示具有与第二物理位置有关的信息的用户界面对象。
[0309] (K10)在K1至K9中任一项的方法的一些实施方案中,确定第二应用程序能够接受地理位置信息包括以下中的一项或多项:(i)确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段;(ii)确定第二应用程序能够在地图上显示地理位置信息;(iii)确定第二应用程序能够使用地理位置信息来促进路线引导;以及(iv)确定第二应用程序能够使用地理位置信息定位和提供运输服务。
[0310] (K11)在K10的方法的一些实施方案中,确定第二应用程序能够接受地理位置信息包括:确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段,并且输入接收字段是搜索框,该搜索框允许在第二应用程序中显示的地图内进行搜索。
[0311] (K12)在K1至K11中任一项的方法的一些实施方案中,该方法还包括:响应于接收到请求,基于用户的应用程序使用历史来确定第二应用程序是否与第一应用程序关联(例如,在打开第一应用程序后打开了阈值次数)。
[0312] (K13)在K12的方法的一些实施方案中,该方法还包括:在呈现第二应用程序之前,为第二应用程序提供对识别第一物理位置的信息的访问权限,并且在提供该访问权限之前,第二应用程序不能访问识别第一物理位置的信息。这样,第二应用程序能够接收关于用户在第一应用程序中执行的动作的信息,从而向用户提供在第二应用程序中使用该信息的方式(例如,搜索关于第一物理位置的更多信息,或者为通过第二应用程序可用的一些服务例如顺车使用第一物理位置)。
[0313] (K14)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、一个或多个处理器、以及存储一个或多个程序的存储器,其中当由一个或多个处理器执行该程序时,将使电子设备执行K1至K13中任一项描述的方法。
[0314] (K15)在又一方面,提供了一种电子设备,该电子设备包括:触敏表面、显示器以及用于执行K1至K13中任一项所述方法的装置。
[0315] (K16)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面和显示器的电子设备执行这些指令时,将使电子设备执行K1至K13中任一项描述的方法。
[0316] (K17)在另一方面,提供了具有触敏表面和显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据K1至K13中任一项描述的方法显示的用户界面。
[0317] (K18)在另一方面,提供了一种在包括触敏表面和显示器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行K1至K13中任一项描述的方法的装置。
[0318] (K19)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图51的显示单元5101)、触敏表面单元(例如,图51的触敏表面单元5103)和处理单元(例如,图51的处理单元5105)。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图51示出了与电子设备5100集成的显示单元5101和触敏表面单元5103,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括信息获取单元(例如,图51的信息获取单元5107)、应用程序退出单元(例如,图51的应用程序退出单元5109)、请求接收单元(例如,图51的请求接收单元5111)、应用程序能力确定单元(例如,图51的应用程序能力确定单元5113)、应用程序呈现单元(例如,图51的应用程序呈现单元5115)、应用程序填充单元(例如,图51的应用程序填充单元5117)、输入检测单元(例如,图51的输入检测单元5119)、应用程序切换用户界面显示单元(例如,图51的应用程序切换用户界面显示单元5121)、应用程序关联确定单元(例如,图51的应用程序关联确定单元5123)和访问提供单元(例如,图51的访问提供单元5125)。处理单元(或其一个或多个部件,例如单元5107至5125)被配置为:在显示第一应用程序的同时,获取用于识别用户在第一应用程序中查看的第一物理位置的信息(例如,通过信息获取单元5107)。处理单元还被配置为:退出第一应用程序(例如,通过应用程序退出单元5109),并且在退出第一应用程序后,从用户接收打开不同于第一应用程序的第二应用程序的请求(例如,通过请求接收单元5111)。响应于接收到请求并且根据确定第二应用程序能够接受地理位置信息(例如,由应用程序能力确定单元5113处理或执行的确定),呈现第二应用程序(例如,通过应用程序呈现单元5115),并且呈现第二应用程序包括使用至少部分地基于第一物理位置识别信息的信息填充第二应用程序(例如,通过应用程序填充单元5117)。
[0319] (K20)在K19的电子设备的一些实施方案中,处理单元(或其一个或多个部件,诸如单元5107至5125)被进一步配置为执行K2至K13中任一项描述的方法。
[0320] (L1)根据一些实施方案,在具有触敏表面和显示器(在一些实施方案中,触敏表面和显示器集成在一起,如在图1C的触摸屏112示出的)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)上执行方法。该方法包括:获取用于识别用户在第一应用程序中查看的第一物理位置的信息并检测第一输入。响应于检测到第一输入,该方法包括:(i)识别能够接受地理位置信息的第二应用程序,以及(ii)在显示器的至少一部分上呈现不同于第一应用程序的示能表示,并建议打开具有关于第一物理位置的信息的第二应用程序。该方法还包括:在示能表示处检测第二输入。响应于在示能表示处检测到第二输入:(i)打开第二应用程序,以及(ii)填充第二应用程序以包括至少部分地基于第一物理位置识别信息的信息。
[0321] 和与上述K1相关联的操作相比,在向用户提供建议,建议其打开具有第一物理位置相关信息的第二应用程序前,与L1相关联的操作不会从用户接收打开第二应用程序的请求。这样,通过提供与上述K1和L1相关联的操作(以及使用来自这些方法中的每一种的一些处理步骤的组合),电子设备能够提供高效的用户体验,允许用户在打开能够接受地理位置信息的应用程序之前或之后预测地使用位置数据。另外,对于L1,确定第二应用程序能够接受地理位置信息在打开第二应用程序之前进行,并且以这种方式,在L1的实施方案中,其中输入对应于打开应用程序切换用户界面的请求,仅在已知应用程序可以接受位置数据时,应用程序切换用户界面才显示请求,请求打开具有第一物理位置相关信息的应用程序(例如,第二应用程序)。
[0322] (L2)在L1的方法的一些实施方案中,第一输入对应于打开应用程序切换用户界面的请求(例如,第一输入是在电子设备的物理Home按钮上的双击)
[0323] (L3)在L2的方法的一些实施方案中,在应用程序切换用户界面内呈现示能表示。
[0324] (L4)在L3的方法的一些实施方案中,呈现示能表示包括:结合呈现示能表示,在应用程序切换用户界面内呈现正在电子设备上执行的应用程序的表示(例如,应用程序的应用程序内容快照);并且在位于应用程序表示下方的显示器区域中呈现示能表示。
[0325] (L5)在L1的方法的一些实施方案中,第一输入对应于打开电子设备home屏幕的请求(例如,第一输入是在电子设备的物理Home按钮上的单次轻击)。
[0326] (L6)在L5的方法的一些实施方案中,在home屏幕的一部分上呈现示能表示。
[0327] (L7)在L1至L6中任一项的方法的一些实施方案中,该建议包括文本描述,该文本描述特定于与第二应用程序相关联的类型。
[0328] (L8)在L1至L7中任一项的方法的一些实施方案中,填充第二应用程序包括显示用户界面对象,该用户界面对象包括至少部分地基于第一物理位置识别信息的信息。
[0329] (L9)在L8的方法的一些实施方案中,该用户界面对象包括通知用户第一物理位置最近在第一应用程序中被查看的文本描述。
[0330] (L10)在L9的方法的一些实施方案中,该用户界面对象是在第二应用程序中显示的地图,并且填充第二应用程序包括填充地图以包括第一物理位置的标识符。
[0331] (L11)在L9至L10中任一项的方法的一些实施方案中,第二应用程序呈现虚拟键盘,并且该用户界面对象显示在虚拟键盘的上方。
[0332] (L12)在L1至L11中任一项的方法的一些实施方案中,识别第二应用程序能够接受地理位置信息包括以下中的一项或多项:(i)确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段;(ii)确定第二应用程序能够在地图上显示地理位置信息;(iii)确定第二应用程序能够使用地理位置信息来促进路线引导;以及(iv)确定第二应用程序能够使用地理位置信息定位和提供运输服务。
[0333] (L13)在L12的方法的一些实施方案中,识别第二应用程序能够接受地理位置信息包括:确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段,并且输入接收字段是搜索框,该搜索框允许在第二应用程序中显示的地图内进行搜索。
[0334] (L14)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、一个或多个处理器、以及存储一个或多个程序的存储器,其中当由一个或多个处理器执行该程序时,将使电子设备执行L1至L13中任一项描述的方法。
[0335] (L15)在又一方面,提供了一种电子设备,该电子设备包括:触敏表面、显示器以及用于执行L1至L13中任一项所述方法的装置。
[0336] (L16)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面和显示器的电子设备执行这些指令时,将使电子设备执行L1至L13中任一项描述的方法。
[0337] (L17)在另一方面,提供了具有触敏表面和显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据L1至L13中任一项描述的方法显示的用户界面。
[0338] (L18)在另一方面,提供了一种在包括触敏表面和显示器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行L1至L13中任一项描述的方法的装置。
[0339] (L19)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图52的显示单元5201)、触敏表面单元(例如,图52的触敏表面单元5203)和处理单元(例如,图52的处理单元5205)。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图52示出了与电子设备5200集成的显示单元5201和触敏表面单元5203,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括信息获取单元(例如,图52的信息获取单元5207)、输入检测单元(例如,图52的输入检测单元5209)、应用程序识别单元(例如,图52的应用程序识别单元5211)、示能表示呈现单元(例如,图52的示能表示呈现单元5213)、应用程序打开单元(例如,图52的应用程序打开单元5215)、应用程序填充单元(例如,图52的应用程序填充单元5217)、应用程序切换用户界面呈现单元(例如,图52的应用程序切换用户界面呈现单元5219)、应用程序能力确定单元(例如,图52的应用程序能力确定单元5221)。处理单元(或其一个或多个部件,诸如单元5207至5221)被配置为:获取用于识别用户在第一应用程序中查看的第一物理位置的信息(例如,通过信息获取单元5207)并且检测第一输入(例如,通过输入检测单元5209)。响应于检测到第一输入,处理单元被配置为:(i)识别能够接受地理位置信息的第二应用程序(例如,通过应用程序识别单元5209),以及(ii)在显示器的至少一部分上呈现不同于第一应用程序的示能表示,并建议打开具有关于第一物理位置的信息的第二应用程序(例如,通过示能表示呈现单元5213)。处理单元还被配置为:在示能表示处检测第二输入(例如,通过输入检测单元5209)。响应于在示能表示处检测到第二输入,处理单元被配置为:(i)打开第二应用程序(例如,通过应用程序打开单元5215),以及(ii)填充第二应用程序以包括至少部分地基于第一物理位置识别信息的信息(例如,通过应用程序填充单元5217)。
[0340] (L20)在L19的电子设备的一些实施方案中,处理单元(或其一个或多个部件,诸如单元5207至5221)被进一步配置为执行L2至L13中任一项描述的方法。
[0341] (M1)根据一些实施方案,在具有触敏表面和显示器(在一些实施方案中,触敏表面和显示器集成在一起,如在图1C的触摸屏112示出的)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)上执行方法。该方法包括:获取用于识别第一物理位置的信息,其中第一物理位置是用户在电子设备上正在执行的第一应用程序中查看的位置。该方法还包括:确定用户已经进入车辆。响应于确定用户已经进入车辆,向用户提供提示,提示用户将第一物理位置作为路线引导的目的地使用。响应于提供提示,该方法包括:从用户接收指令,指示用户将第一物理位置作为路线引导的目的地使用。该方法还包括:促进到第一物理位置的路线引导。这样,即可方便地向用户提供建议,建议用户基于他们之前在电子设备上的应用程序中查看的物理位置规划目的地的路线。
[0342] (M2)在M1的方法的一些实施方案中,该方法还包括:检测电子设备已经接收到消息,包括检测消息包括用于识别第二物理位置的信息;并且响应于该检测,向用户提供新的提示,提示用户将第二物理位置用作路线引导的新目的地。这样,用户还可以基于消息(例如,短信、电子邮件、语音信箱等)中包括的信息动态地添加路点或添加新目的地用于路线引导。
[0343] (M3)在M2的方法的一些实施方案中,该方法还包括:响应于从用户接收到将第二物理位置作为新目的地使用的指令,促进到第二物理位置的路线引导。
[0344] (M4)在M2至M3中任一项的方法的一些实施方案中,检测消息含有识别第二物理位置的信息包括:当电子设备上可用的虚拟助理正在通过和电子设备通信的音频系统将消息读出给用户时,执行检测。这样,当用户正在监听由音频系统读出的消息时(例如,通过经由电子设备可用的个人助理),电子设备检测用于识别第二物理位置的信息并使用检测到信息建议将第二物理位置用作新目的地。因此,用户在驾驶时不必将其注意力从道路上转移,而仍然能够动态地调整路线引导设置和目的地。
[0345] (M5)在M2至M4中任一项的方法的一些实施方案中,确定用户已经进入车辆包括检测电子设备已经建立与车辆的通信链路。
[0346] (M6)在M2至M5中任一项的方法的一些实施方案中,促进路线引导包括通过电子设备的显示器提供路线引导。
[0347] (M7)在M2至M5中任一项的方法的一些实施方案中,促进路线引导包括向车辆发送识别第一物理位置的信息。
[0348] (M8)在M2至M7中任一项的方法的一些实施方案中,促进路线引导包括通过与电子设备通信的音频系统提供路线引导(例如,汽车扬声器或设备自身的内部扬声器)。
[0349] (M9)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、一个或多个处理器、以及存储一个或多个程序的存储器,其中当由一个或多个处理器执行该程序时,将使电子设备执行M1至M8中任一项描述的方法。
[0350] (M10)在又一方面,提供了一种电子设备,该电子设备包括:触敏表面、显示器以及用于执行M1至M8中任一项所述方法的装置。
[0351] (M11)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面和显示器的电子设备执行这些指令时,将使电子设备执行M1至M8中任一项描述的方法。
[0352] (M12)在另一方面,提供了具有触敏表面和显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据M1至M8中任一项描述的方法显示的用户界面。
[0353] (M13)在另一方面,提供了一种在包括触敏表面和显示器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行M1至M8中任一项描述的方法的装置。
[0354] (M14)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图53的显示单元5301)、触敏表面单元(例如,图53的触敏表面单元5303)和处理单元(例如,图53的处理单元5305)。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图53示出了与电子设备5300集成的显示单元5301和触敏表面单元5303,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括信息获取单元(例如,图53的信息获取单元5307)、车辆进入确定单元(例如,图53的车辆进入确定单元5309)、提示提供单元(例如,图53的提示提供单元5311)、指令接收单元(例如,图53的指令接收单元5313)、路线引导促进单元(例如,图53的路线引导促进单元5315)和消息检测单元(例如,图53的消息检测单元5317)。处理单元(或其一个或多个部件,诸如单元5307至5317)被配置为:获取用于识别用户在所述电子设备上正在执行的所述第一应用程序中查看的第一物理位置的信息(例如,通过信息获取单元5307)。处理单元还被配置为:确定用户已经进入车辆(例如,通过车辆进入确定单元5309)。响应于确定用户已经进入车辆,处理单元被配置为:向用户提供提示,提示用户将第一物理位置作为路线引导的目的地使用(例如,通过提示提供单元5311)。响应于提供该提示,从用户接收指令,指示用户将第一物理位置作为路线引导的目的地使用(例如,通过指令接收单元5313)。处理单元另被配置为:促进到第一物理位置的路线引导(例如,通过路线引导促进单元5307)。
[0355] (M15)在M14的电子设备的一些实施方案中,处理单元(或其一个或多个部件,诸如单元5307至5317)被进一步配置为执行M2至M8中任一项描述的方法。
[0356] (N1)根据一些实施方案,在具有触敏表面和显示器(在一些实施方案中,触敏表面和显示器集成在一起,如在图1C的触摸屏112示出的)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)上执行方法。该方法包括:在第一应用程序中呈现内容。该方法还包括:接收来自用户的打开不同于第一应用程序的第二应用程序的请求,第二应用程序包括输入接收字段。响应于接收到该请求,该方法包括:呈现具有输入接收字段的第二应用程序。在输入接收字段处接收任何用户输入之前,该方法包括:提供可选用户界面对象以允许用户将内容的至少一部分粘贴到输入接收字段。响应于检测到可选用户界面对象的选择,该方法包括:将该部分内容粘贴到输入接收字段中。这样,在先前于第一动作中查看的基于第二应用程序的内容中向用户提供主动粘贴动作(例如,这使得用户能够将内容粘贴到第二应用程序中,而不必重新打开第一应用程序、执行明确的复制操作、重新打开第二应用程序,然后明确请求将复制的内容粘贴到第二应用程序中)。
[0357] (N2)根据N1的方法的一些实施方案,在提供可选用户界面对象前,该方法包括:将输入接收字段识别为能够接受内容该部分的字段。
[0358] (N3)根据N2的方法的一些实施方案,响应于检测到输入接收字段的选择,将输入接收字段识别为能够接受内容该部分的字段。
[0359] (N4)根据N1至N3中任一项的方法的一些实施方案,该部分内容对应于图像。
[0360] (N5)根据N1至N3中任一项的方法的一些实施方案,该部分内容对应于文本内容。
[0361] (N6)根据N1至N3中任一项的方法的一些实施方案,该部分内容对应于文本内容和图像。
[0362] (N7)根据N1至N6中任一项的方法的一些实施方案,第一应用程序是网页浏览应用程序,第二应用程序是即时消息应用程序。
[0363] (N8)根据N1至N6中任一项的方法的一些实施方案,第一应用程序是照片浏览应用程序,第二应用程序是即时消息应用程序。
[0364] (N9)根据N1至N8中任一项的方法的一些实施方案,该方法包括:在接收打开第二应用程序的请求前,接收至少复制内容的所述部分的请求。
[0365] (N10)根据N1至N9中任一项的方法的一些实施方案,可选用户界面对象与最近在第一应用程序中查看内容部分的指示一起显示。这样,向用户提供关于为什么提出粘贴建议的清楚指示。
[0366] (N11)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、一个或多个处理器、以及存储一个或多个程序的存储器,其中当由一个或多个处理器执行该程序时,将使电子设备执行N1至N10中任一项描述的方法。
[0367] (N12)在又一方面,提供了一种电子设备,该电子设备包括:触敏表面、显示器以及用于执行N1至N10中任一项所述方法的装置。
[0368] (N13)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面和显示器的电子设备执行这些指令时,将使电子设备执行N1至N10中任一项描述的方法。
[0369] (N14)在另一方面,提供了具有触敏表面和显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据N1至N10中任一项描述的方法显示的用户界面。
[0370] (N15)在另一方面,提供了一种在包括触敏表面和显示器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行N1至N10中任一项描述的方法的装置。
[0371] (N16)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图54的显示单元5401)、触敏表面单元(例如,图54的触敏表面单元5403)和处理单元(例如,图54的处理单元5405)。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图54示出了与电子设备5400集成的显示单元5401和触敏表面单元5403,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括呈现单元(例如,图54的呈现单元5407)、请求接收单元(例如,图54的请求接收单元5409)、用户界面对象提供单元(例如,图
54的用户界面对象提供单元5411)、主动粘贴单元(例如,图54的主动粘贴单元5413)和能力确定单元(例如,图54的能力确定单元5415)。处理单元(或其一个或多个部件,诸如单元
5407至5415)被配置为:在第一应用程序中呈现内容(例如,通过呈现单元5407和/或显示单元5401);从用户接收打开不同于第一应用程序的第二应用程序的请求(例如,通过请求接收单元和/或触敏表面单元5403),第二应用程序包括输入接收字段;响应于接收到请求,呈现具有输入接收字段的第二应用程序(例如,通过呈现单元5407和/或显示单元5401);在输入接收字段处接收到任何用户输入之前,提供可选用户界面对象以允许用户将内容的至少一部分粘贴到输入接收字段中(例如,通过用户界面对象提供单元5411和/或显示单元
5401);并且响应于检测到可选用户界面对象的选择,将该部分内容粘贴到输入接收字段中(例如,通过主动粘贴单元5413)。
[0372] (N17)在N16的电子设备的一些实施方案中,处理单元(或其一个或多个部件,诸如单元5407至5415)被进一步配置为执行N1至N10中任一项描述的方法。
[0373] (O1)根据一些实施方案,在具有触敏表面和显示器(在一些实施方案中,触敏表面和显示器集成在一起,如在图1C的触摸屏112示出的)的电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)上执行方法。该方法包括:在显示器上呈现与应用程序相关联的文本内容。该方法还包括:确定文本内容的一部分与以下项有关:(i)位置,(ii)联系人,或(iii)事件。在确定文本内容的该部分与某个位置相关时,该方法包括:从电子设备上的位置传感器获取位置信息,并准备获取的位置信息以将其显示为预测的内容项。在确定文本内容的该部分与联系人相关时,该方法包括:在电子设备上进行搜索,搜索与文本内容的该部分相关的联系人信息,并准备与通过搜索检索到的至少一个联系人相关联的信息,以显示为预测的内容项。在确定文本内容的该部分与事件相关时,该方法包括:在电子设备上进行新的搜索,搜索与文本内容的该部分相关的事件信息,并准备至少部分地基于至少一个事件的信息(通过新搜索检索得到),以显示为预测的内容项。该方法还包括:在应用程序内显示包括预测内容项的示能表示;通过触敏表面检测示能表示的选择;并且响应于检测到选择,在与文本内容相邻的显示器上显示与预测内容项相关联的信息。这样,即可方便地向用户提供预测的内容项,这些内容项可用于完成陈述(或响应于其他用户例如在即时消息应用程序中提出的问题),而不必键入任何内容,并且不必浏览电子设备上可用的信息以查找所需的信息。例如,电子设备提供电话号码、当前位置、新事件的安排功能、与现有事件相关联的细节,所有这些都不需要任何显式请求或用户进行额外工作,从而节省了时间,同时仍然确保有效地将所需信息提供给用户。
[0374] (O2)根据O1的方法的一些实施方案,文本内容的该部分对应于最近在应用程序中呈现的文本内容。
[0375] (O3)根据O1至O2中任一项的方法的一些实施方案,该应用程序是即时消息应用程序,并且文本内容的该部分是在即时消息应用程序中接收到的来自不同于电子设备的远程设备的远程用户的问题。
[0376] (O4)根据O1至O2中任一项的方法的一些实施方案,文本内容的该部分是由电子设备用户在应用程序内的输入接收字段提供的输入。
[0377] (O5)根据O1的方法的一些实施方案,响应于用户输入选择包括文本内容该部分的用户界面对象,识别文本内容的该部分。
[0378] (O6)根据O5的方法的一些实施方案,该应用程序是即时消息应用程序,并且用户界面对象是在即时消息应用程序内显示的对话中的消息气泡。
[0379] (O7)根据O5至O6中任一项的方法的一些实施方案,该方法还包括:检测第二用户界面对象的选择;响应于检测到选择,(i)停止显示带有预测内容项的示能表示,并确定与第二用户界面对象相关联的文本内容涉及位置、联系人或事件;并且根据确定,在应用程序内显示新的预测内容项。这样,用户能够轻易地返回即时消息对话中以选择先前接收到的消息,并且仍然向其提供适当的预测内容项。
[0380] (O8)根据O1至O7中任一项的方法的一些实施方案,该示能表示显示在应用程序内和虚拟键盘相邻的输入接收字段中。
[0381] (O9)根据O8中任一项的方法的一些实施方案,输入接收字段是显示虚拟键盘上接收到的键入输入的字段。
[0382] (O10)根据O1至O9中任一项的方法的一些实施方案,所述确定包括:在文本内容被应用程序接收时对其进行解析,以检测已知与联系人、事件和/或位置有关的存储的模式。
[0383] (O11)在另一方面,提供了一种电子设备。在一些实施方案中,该电子设备包括:触敏表面、显示器、一个或多个处理器、以及存储一个或多个程序的存储器,其中当由一个或多个处理器执行该程序时,将使电子设备执行O1至O10中任一项描述的方法。
[0384] (O12)在又一方面,提供了一种电子设备,该电子设备包括:触敏表面、显示器以及用于执行O1至O10中任一项所述方法的装置。
[0385] (O13)在另一方面,提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质用于存储可执行指令,当由具有触敏表面和显示器的电子设备执行这些指令时,将使电子设备执行O1至O10中任一项描述的方法。
[0386] (O14)在另一方面,提供了具有触敏表面和显示器的电子设备上的图形用户界面。在一些实施方案中,图形用户界面包括根据O1至O10中任一项描述的方法显示的用户界面。
[0387] (O15)在另一方面,提供了一种在包括触敏表面和显示器的电子设备中使用的信息处理装置。该信息处理装置包括:用于执行O1至O10中任一项描述的方法的装置。
[0388] (O16)在另一方面,提供了一种电子设备,该设备包括显示单元(例如,图55的显示单元5501)、触敏表面单元(例如,图55的触敏表面单元5503)和处理单元(例如,图55的处理单元5505)。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图55示出了与电子设备5500集成的显示单元5501和触敏表面单元5503,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括呈现单元(例如,图55的呈现单元5507)、确定单元(例如,图55的确定单元5509)、获取单元(例如,图55的获取单元5511)、搜索执行单元(例如,图55的搜索执行单元5513)、信息准备单元(例如,图55的信息准备单元
5515)、示能表示显示单元(例如,图55的示能表示显示单元5517)和检测单元(例如,图55的检测单元5519)。处理单元(或其一个或多个部件,诸如单元5507至5519)被配置为:在显示器上呈现与应用程序相关联的文本内容(例如,通过呈现单元5507和/或显示单元5501);确定文本内容的一部分与以下项有关:(i)位置,(ii)联系人,或(iii)事件(例如,通过确定单元5509);在确定文本内容的该部分与位置相关时,从电子设备上的位置传感器获取位置信息(例如,通过获取单元5511),并且准备所获取的位置信息以显示为预测的内容项(例如,通过信息准备单元5515);在确定文本内容的该部分与联系人相关时,在电子设备上进行搜索,搜索与文本内容的该部分相关的联系人信息(例如,通过搜索执行单元5513),并且准备与至少一个通过搜索检索到的联系人相关联的信息以显示为预测的内容项(例如,通过信息准备单元5515);在确定文本内容的该部分与事件相关时,在电子设备上执行新的搜索,搜索与文本内容的该部分相关的事件信息(例如,通过搜索执行单元5513),并且准备至少部分地基于通过搜索检索到的至少一个事件的信息,以显示为预测的内容项(例如,通过信息准备单元5515);在应用程序中显示包括预测内容项的示能表示(例如,通过示能表示显示单元5517和/或显示单元5501);通过触敏表面检测示能表示的选择(例如,通过检测单元
5519);并且响应于检测到选择,在显示器上与文本内容相邻处显示与预测内容项相关联的信息(例如,通过呈现单元5507和/或显示单元5501)。
[0389] (O17)在O16的电子设备的一些实施方案中,处理单元(或其一个或多个部件,诸如单元5507至5519)被进一步配置为执行O1至O10中任一项描述的方法。
[0390] 如上所述(并在以下进行详述),本发明技术的一个方面在于采集和使用得自各种来源的数据(例如,基于语音通信期间提供的语音),以改进向用户递送其可能感兴趣的内容。本公开预期,在一些实例中,这些采集到的数据可包括唯一地识别或可用于联系或定位特定人员的个人信息数据。此类个人信息数据可包括人口数据、基于位置的数据、电话号码、电子邮件地址、家庭地址或任何其他识别信息。
[0391] 本公开认识到在本发明技术中使用此类个人信息数据可用于使用户受益。例如,该个人信息数据可用于递送用户较感兴趣的目标内容。因此,使用此类个人信息数据使得能够对所递送的内容进行有计划的控制。此外,本公开还预期个人信息数据有益于用户的其他用途。
[0392] 本公开还预期负责此类个人信息数据的收集、分析、公开、传输、存储或其他用途的实体将遵守已确立的隐私政策和/或隐私实践。具体地,此类实体应实施并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和安全性的行业或政府要求的隐私政策和实践。例如,来自用户的个人信息应被收集用于实体的合法且合理的用途,并且不在这些合法使用之外共享或出售。另外,此类收集应仅在用户知情同意之后进行。此外,此类实体应采取任何所需的步骤,以保障和保护对此类个人信息数据的访问,并且确保有权访问个人信息数据的其他人遵守他们的隐私政策和程序。另外,此类实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。
[0393] 不管前述情况如何,本公开还设想用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开设想可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,就监视语音通信或监视用户在应用程序中执行的动作而言,本发明的技术可被配置为在注册服务期间允许用户选择“加入”或“退出”参与对个人信息数据的收集。又如,用户可选择不为目标内容递送服务提供位置信息。再如,用户可选择不提供精确的位置信息,但准许传输位置区域信息。
[0394] 因此,虽然本公开广泛地覆盖了使用个人信息数据来实现一个或多个各种所公开的实施方案,但本公开还设想各种实施方案也可在无需访问此类个人信息数据的情况下被实现。即,本发明技术的各种实施方案不会由于缺少此类个人信息数据的全部或一部分而无法正常进行。例如,可通过基于非个人信息数据或绝对最低限度的个人信息,诸如与用户相关的设备所请求的内容、对内容传送服务可用的其他非个人信息或公开可用信息来推断偏好,从而选择内容并传送给用户。
[0395] 需注意,上述各种实施方案可与本文所述任何其他实施方案相结合。本说明书中描述的特征和优点并不全面,具体来说,根据附图、说明书和权利要求书,许多另外的特征和优点对本领域的普通技术人员将是显而易见的。此外,应当指出,出于可读性和指导性目的,在原则上选择了本说明书中使用的语言,并且可以不这样选择以描绘或界定本发明的主题。

附图说明

[0396] 为了更好地理解各种所述实施方案,应结合以下附图来参考下面的具体实施方式部分,其中在整个附图中类似的附图标记是指对应的部件。
[0397] 图1A是根据一些实施方案的带有触敏显示器的计算设备的高级框图
[0398] 图1B是根据一些实施方案的用于事件处理的示例性部件的框图。
[0399] 图1C是根据一些实施方案的具有触敏显示器的便携式多功能设备的示意图。
[0400] 图1D是用于示出根据一些实施方案的计算设备的示意图,该计算设备具有与显示器分开的触敏表面。
[0401] 图2是根据一些实施方案的触摸屏的示意图,其用于示出应用程序的菜单的用户界面。
[0402] 图3A至图3B是示出根据一些实施方案的用于存储应用程序使用数据的数据结构的框图。
[0403] 图4A至图4B是示出根据一些实施方案的用于存储触发条件的数据结构的框图。
[0404] 图5是示出根据一些实施方案的触发条件建立系统示例的框图。
[0405] 图6A至图6B是根据一些实施方案用于在具有触敏显示器的电子设备上主动识别和显示(例如,显示以供用户选择)相关内容的方法的流程图表示。
[0406] 图7A至图7B是根据一些实施方案的触敏显示器的示意图,其用于示出旨在主动识别和显示相关内容的用户界面。
[0407] 图8A至图8B是根据一些实施方案用于在具有触敏显示器的电子设备上主动识别和显示(例如,显示以供用户选择)相关内容的方法的流程图表示。
[0408] 图9A至图9D是根据一些实施方案的触敏显示器的示意图,其用于示出旨在主动识别和显示相关内容的用户界面。
[0409] 图10A至图10C是根据一些实施方案基于当前电子设备上显示的内容主动建议搜索查询的方法的流程图表示。
[0410] 图11A至图11J是根据一些实施方案的触敏显示器的示意图,其用于示出基于触敏显示器上当前显示的内容主动建议搜索查询的用户界面。
[0411] 图12是根据一些实施方案基于启发式过程进入搜索模式的方法的流程图表示。
[0412] 图13A至图13B是根据一些实施方案的触敏显示器的示意图,其用于示出基于启发式过程进入搜索模式的用户界面。
[0413] 图14是根据一些实施方案在具有触敏显示器的电子设备上主动提供车辆位置的方法的流程图表示。
[0414] 图15A至图15B是根据一些实施方案的触敏显示器的示意图,其用于示出旨在主动提供车辆位置的用户界面。
[0415] 图16A至图16B是根据一些实施方案主动提供用于搜索查询的附近兴趣点(POI)信息的方法的流程图表示。
[0416] 图17A至图17E是根据一些实施方案的触敏显示器的示意图,其用于示出旨在主动提供用于搜索查询的附近兴趣点(POI)信息的用户界面。
[0417] 图18A至图18B是根据一些实施方案从语音通信中提取内容项并与提取的内容项进行交互的方法的流程图表示。
[0418] 图19A至图19F是根据一些实施方案的触敏显示器的示意图,其用于示出旨在显示从语音通信中提取的内容项并与其进行交互的用户界面。
[0419] 图20是根据一些实施方案,确定语音通信包括识别物理位置的语音并使用有关物理位置的信息填充应用程序的方法的流程图表示。
[0420] 图21A至图21B是根据一些实施方案的触敏显示器的示意图,其用于示出旨在确定语音通信包括识别物理位置的语音并使用有关物理位置的信息填充应用程序的用户界面。
[0421] 图22A至图22B是根据一些实施方案主动建议在即时消息应用程序中使用的物理位置的方法的流程图表示。
[0422] 图22C是根据一些实施方案主动建议与位置、事件或联系人相关的信息的方法的流程图表示。
[0423] 图23A至图23O是根据一些实施方案的触敏显示器的示意图,其用于示出旨在主动建议与位置、事件或联系人相关的信息的用户界面(例如,为便于用户选择并包括在即时消息应用程序中)。
[0424] 图24A至图24B是根据一些实施方案,使用用户先前在另一个应用程序中查看的信息主动填充某个应用程序的方法的流程图表示。
[0425] 图25A至图25J是根据一些实施方案的触敏显示器的示意图,其用于示出旨在使用用户先前在另一个应用程序中查看的信息主动填充某个应用程序的用户界面(例如,使用用户在检查应用程序中查看的关于位置的信息填充顺风车应用程序)。
[0426] 图26A至图26B是根据一些实施方案,主动建议将用户先前在第一应用程序中查看的建议信息用于第二应用程序的流程图表示。
[0427] 图27是根据一些实施方案,主动建议物理位置以用作车辆中路线引导的目的地的流程图表示。
[0428] 图28是根据一些实施方案的触敏显示器的示意图,用于示出旨在主动建议物理位置以用作车辆中路线引导的目的地的用户界面。
[0429] 图29是根据一些实施方案主动建议粘贴动作的方法的流程图表示。
[0430] 图30A至图30D是根据一些实施方案的触敏显示器的示意图,其用于示出旨在主动建议粘贴动作的用户界面。
[0431] 图31_1示出了根据一些实施方案被配置为执行移动设备的动态调节的移动设备。
[0432] 图31_2示出了根据一些实施方案用于调用启发式过程的示例性过程。
[0433] 图31_3示出了根据一些实施方案使用启发式过程调节移动设备设置的过程。
[0434] 图31_4示出了根据一些实施方案用于执行后台获取应用程序更新的示例性系统。
[0435] 图31_5示出了根据一些实施方案用于确定移动设备100上的应用程序的用户调用概率的对等预报。
[0436] 图31_6是根据一些实施方案用于预测地启动应用程序以执行后台更新的示例性过程的流程图。
[0437] 图31_7是根据一些实施方案用于确定何时启动移动设备上的应用程序的示例性过程的流程图。
[0438] 图31_8是根据一些实施方案示出趋势表中条目的状态转变的流程图。
[0439] 图31_9是示出根据一些实施方案用于向移动设备提供推送通知的系统的框图。
[0440] 图31_10是根据一些实施方案用于在推送通知服务器处执行非唤醒推送的示例性过程的流程图。
[0441] 图31_11是根据一些实施方案用于响应于低优先级推送通知来执行应用程序后台更新的示例性过程的流程图。
[0442] 图31_12是根据一些实施方案用于响应于高优先级推送通知来执行应用程序后台更新的示例性过程的流程图。
[0443] 图31_13是根据一些实施方案用于在移动设备上执行后台下载和/或数据上载的示例性系统的框图。
[0444] 图31_14是根据一些实施方案用于执行后台下载和上载的示例性过程的流程图。
[0445] 图31_15示出了根据一些实施方案用于启用和/或禁用移动设备上的应用程序后台更新的示例性图形用户界面(GUI)。
[0446] 图31_16示出了根据一些实施方案用于在对等设备之间共享数据的示例性系统。
[0447] 图31_17示出了根据一些实施方案用于在对等设备之间共享数据的示例性过程。
[0448] 图32_1是根据一些实施方案,基于输入查询前缀返回搜索结果的系统的一个实施方案的框图。
[0449] 图32_2是根据一些实施方案,基于输入查询前缀确定查询完成项和相关结果的过程的一个实施方案的流程图。
[0450] 图32_3是根据一些实施方案的聚合器和多个搜索域的一个实施方案的框图。
[0451] 图32_4是根据一些实施方案的查询完成项搜索域的一个实施方案的图示。
[0452] 图32_5是地图搜索域的一个实施方案的图示。图32_6是根据一些实施方案用于确定来自多个搜索域的查询完成项的过程的一个实施方案的流程图。
[0453] 图32_7是根据一些实施方案的确定相关结果的过程的一个实施方案的流程图,所述结果为来自确定查询完成项的多个搜索域上的结果。
[0454] 图32_8是根据一些实施方案将用户反馈并入反馈搜索索引的系统的一个实施方案的框图。
[0455] 图32_9是根据一些实施方案将用户反馈并入引用搜索索引的过程的一个实施方案的流程图。
[0456] 图32_10是根据一些实施方案在用户搜索会话期间收集用户反馈的过程的一个实施方案的流程图。
[0457] 图32_11是根据一些实施方案将用户反馈并入反馈索引的过程的一个实施方案的流程图。
[0458] 图32_12是根据一些实施方案使用用户反馈更新结果高速缓存的过程的一个实施方案的流程图。
[0459] 图32_13是根据一些实施方案使用表征查询完成项来执行多域搜索的联合器的一个实施方案的框图。
[0460] 图32_14是根据一些实施方案使用词汇服务来确定相关结果的过程的一个实施方案的流程图。
[0461] 图32_15是根据一些实施方案用于表征查询完成项的过程的一个实施方案的流程图。
[0462] 图32_16是根据一些实施方案的完成项模块的一个实施方案的框图,该完成项模块用于确定来自多个搜索域的查询完成项。
[0463] 图32_17是根据一些实施方案的结果模块的一个实施方案的框图,该模块用于确定来自确定查询完成项的多个搜索域上的相关结果。
[0464] 图32_18是根据一些实施方案的收集反馈模块的一个实施方案的框图,该模块用于在用户搜索会话期间收集用户反馈。
[0465] 图32_19是根据一些实施方案的过程反馈模块的一个实施方案的框图,该模块用于将用户反馈并入反馈索引。
[0466] 图32_20是根据一些实施方案的更新查询结果模块的一个实施方案的框图,该模块用于使用用户反馈来更新结果高速缓存。
[0467] 图32_21是根据一些实施方案的过程反馈模块的一个实施方案的框图,该模块用于将用户反馈并入反馈索引。
[0468] 图32_22是根据一些实施方案的更新查询结果模块的一个实施方案的框图,该模块用于使用用户反馈来更新结果高速缓存。
[0469] 图33_1以框图的形式示出了如本领域中所公知的计算设备上的本地搜索子系统和远程搜索子系统。
[0470] 图33_2以框图形式示出了根据一些实施方案具有本地学习能力的本地搜索子系统,本地学习能力可以用于改进从计算设备上的远程搜索应用程序返回的结果。
[0471] 图33_3以框图形式示出了根据一些实施方案,利用本地搜索查询、本地结果和基于本地结果的本地反馈在本地学习查询特征的方法。
[0472] 图33_4以框图形式示出了根据一些实施方案,利用从本地搜索查询和远程搜索查询的两者返回的搜索结果以及本地和远程搜索查询结果两者的本地反馈在本地学习查询特征的方法。
[0473] 图33_5以框图形式示出了根据一些实施方案学习查询特征的方法,该查询特征是响应于发送至远程服务的查询,由远程服务传递到本地服务的查询特征。
[0474] 图33_6以框图形式示出了根据一些实施方案接收或确定新特征、在本地训练特征以及利用特征的方法。
[0475] 图33_7示出了根据一些实施方案可在本发明的一些实施方案中使用的软件栈的示例性实施方案。
[0476] 图34_5A示出了根据一些实施方案的用于建议联系人的示例性数据架构的框图。
[0477] 图34_5B示出了根据一些实施方案的用于建议日历事件的示例性数据架构的框图。
[0478] 图34_6A至图34_6G示出了根据一些实施方案的用于提供建议联系人和日历事件的示例性用户界面。图1A至图1B、图2和图3描述了用于执行本部分中描述的用于建议联系人和事件信息的技术的示例性设备。图34_6A至图34_6G示出了用于建议联系人和事件信息的示例性用户界面,并且这些图中的用户界面还用于说明以下描述的过程,包括图34_7A至图34_13中的过程。
[0479] 图34_7A和图34_7B示出了根据一些实施方案的用于生成建议联系人的示例性过程的流程图。
[0480] 图34_8A和图34_8B示出了根据一些实施方案的使用建议的联系人信息项目更新现有联系人的示例性过程的流程图。
[0481] 图34_9A和图34_9B示出了根据一些实施方案的用于显示具有建议联系人信息的联系人的示例性过程的流程图。
[0482] 图34_10示出了根据一些实施方案的建议联系人信息与消息一起显示的示例性过程的流程图。
[0483] 图34_11A和图34_11B示出了根据一些实施方案的用于生成建议日历事件的示例性过程的流程图。
[0484] 图34_12示出了根据一些实施方案的建议事件信息与消息一起显示的示例性过程的流程图。
[0485] 图34_13示出了根据一些实施方案的多个建议联系人信息或事件信息与消息一起显示的示例性过程的流程图。
[0486] 图34_14是根据一些实施方案的电子设备的功能框图。
[0487] 图34_15是根据一些实施方案的电子设备的功能框图。
[0488] 图35_1是根据一些实施方案用于基于检测到的事件建议应用程序的方法35_100的流程图。
[0489] 图35_2示出了根据一些实施方案的分段过程35_200。
[0490] 图35_3示出了根据一些实施方案可生成的决策树35_300。
[0491] 图35_4是根据一些实施方案的用于基于事件向计算设备的用户建议应用程序的方法35_400的流程图。
[0492] 图35_5A至图35_5D示出了根据一些实施方案的各种正确数字和不正确数字的示例性二项分布的曲线图。
[0493] 图35_6A和图35_6B示出了根据一些实施方案由分段产生的父模型和子模型。
[0494] 图35_7示出了根据一些实施方案用于向用户提供与一个或多个应用程序交互的用户界面的示例性架构35_700。
[0495] 图36_1是根据一些实施方案基于触发事件来识别应用程序的方法的流程图。
[0496] 图36_2示出了根据一些实施方案用于确定触发事件的系统的框图。
[0497] 图36_3示出了根据一些实施方案基于触发事件为用户识别应用程序的系统的框图。
[0498] 图36_4示出了根据一些实施方案用于识别具有多个预测模型的应用程序的系统的框图。
[0499] 图36_5是根据一些实施方案基于触发事件并通过设备识别应用程序的方法的流程图。
[0500] 图36_6是根据一些实施方案的带有音乐应用程序用户界面的设备的简化图。
[0501] 图36_7A和图36_7B是根据一些实施方案的用于从用户界面移除所识别的应用程序的方法的流程图。
[0502] 图37_1是根据一些实施方案的方法100的流程图,该方法用于基于检测到的事件来建议要联系的接收人。
[0503] 图37_2示出了根据一些实施方案用于确定触发事件的系统的框图。
[0504] 图37_3示出了根据一些实施方案基于触发事件识别要联系的接收人的系统的框图。
[0505] 图37_4示出了根据一些实施方案在电子邮件应用程序的用户界面中建议要联系的接收人的示例。
[0506] 图37_5示出了根据一些实施方案在搜索应用程序的用户界面中建议要联系的接收人的示例。
[0507] 图37_6是根据一些实施方案的方法37_600的流程图,该方法用于基于事件向计算设备的用户建议接收人。
[0508] 图37_7示出了根据一些实施方案的建议要联系的接收人的示例性数据流。
[0509] 图37_8示出了根据一些实施方案的交互模块的框图。
[0510] 图37_9示出了根据一些实施方案的示例性架构37_900,该架构用于向用户提供用户界面以建议要联系的接收人。
[0511] 图38_1示出了根据一些实施方案被配置为实现本文所述的各种技术的移动计算设备的不同部件的框图。
[0512] 图38_2示出了根据一些实施方案由图38_1的应用程序预测引擎执行的方法。
[0513] 图38_3示出了根据一些实施方案由图1的搜索应用程序执行的方法。
[0514] 图38_4示出了根据一些实施方案的图38_1的搜索应用程序的示例性用户界面的概念图
[0515] 图39_1示出了根据一些实施方案被配置为实现本文所述的各种技术的移动计算设备的不同部件的框图。
[0516] 图39_2示出了根据一些实施方案,图39_1(或图1A)中示出的移动计算设备的特定部件的更详细视图的框图。
[0517] 图39_3A示出了根据一些实施方案的用于预测引擎高级初始化和运行的方法。
[0518] 图39_3B示出了根据一些实施方案的用于在预测引擎处同步提供预测的方法。
[0519] 图39_3C示出了根据一些实施方案的用于在预测引擎处异步提供预测的方法。
[0520] 图39_4A示出了根据一些实施方案,消费者应用程序请求同步接收预测的方法。
[0521] 图39_4B示出了根据一些实施方案,消费者应用程序注册以异步接收预测的方法。
[0522] 图39_5A示出了根据一些实施方案,用于在预测引擎中心管理预测引擎注册的方法。
[0523] 图39_5B示出了根据一些实施方案,用于在预测引擎中心向消费者应用程序同步提供预测的方法。
[0524] 图39_5C示出了根据一些实施方案,用于在预测引擎中心向消费者应用程序异步提供预测的方法。
[0525] 图40_1是根据一些实施方案,用于监视、预测和通知上下文客户端计算设备的当前上下文中的变化的示例性系统的框图。
[0526] 图40_2A示出了根据一些实施方案的可构成当前上下文的上下文项的示例。
[0527] 图40_2B示出了根据一些实施方案的添加到当前上下文的新上下文项的示例。
[0528] 图40_3示出了根据一些实施方案的示例性回调谓词数据库
[0529] 图40_4是示出根据一些实施方案的与上下文项相关联的示例性状态随时间变化的图。
[0530] 图40_5是示出根据一些实施方案的与上下文项相关联的示例性事件流的图。
[0531] 图40_6示出了根据一些实施方案的示例性历史事件流数据库。
[0532] 图40_7是根据一些实施方案的用于向请求客户端提供上下文回调通知的示例性系统的框图。
[0533] 图40_8A是根据一些实施方案的示例性系统的框图,示出了重启已被终止的请求客户端。
[0534] 图40_8B是根据一些实施方案的示例性系统的框图,示出了重启已被终止的请求客户端。
[0535] 图40_9A是根据一些实施方案的示例性系统的框图,示出了重启已被终止的上下文守护进程
[0536] 图40_9B是根据一些实施方案的示例性系统的框图,示出了重启已被终止的上下文守护进程
[0537] 图40_10A是根据一些实施方案的示例性系统的框图,示出了重启已被终止的上下文守护进程和请求客户端。
[0538] 图40_10B是根据一些实施方案的示例性系统的框图,示出了重启已被终止的上下文守护进程和请求客户端。
[0539] 图40_11是根据一些实施方案的示例性系统的框图,该系统被配置为基于启动守护进程接收的设备状态信息重启客户端和/或上下文守护进程。
[0540] 图40_12A是根据一些实施方案的示例性系统的框图,示出了使用启动守护进程重启上下文守护进程。
[0541] 图40_12B是根据一些实施方案的示例性系统的框图,示出了使用启动守护进程重启上下文守护进程。
[0542] 图40_13A是根据一些实施方案的示例性系统的框图,示出了使用启动守护进程重启请求客户端。
[0543] 图40_13B是根据一些实施方案的示例性系统的框图,示出了使用启动守护进程重启请求客户端。
[0544] 图40_14是示出根据一些实施方案用于预测未来事件的时隙方式平均的示例的图。
[0545] 图40_15描绘了根据一些实施方案的示出时隙加权的示例性图。
[0546] 图40_16A是示出根据一些实施方案用于预测未来上下文的示例性方法的图。
[0547] 图40_16B是示出根据一些实施方案将时隙方式概率转换为概率曲线的示例性方法的图。
[0548] 图40_17示出了根据一些实施方案包括预测的未来事件的示例性事件流。
[0549] 图40_18是根据一些实施方案用于通知客户端计算设备上的上下文变化的示例性过程的流程图。
[0550] 图40_19是根据一些实施方案用于重启上下文守护进程以服务回调请求的示例性过程的流程图。
[0551] 图40_20是根据一些实施方案用于重启回调客户端以接收回调通知的示例性过程的流程图。
[0552] 图40_21是根据一些实施方案用于基于历史上下文信息预测未来事件的示例性过程的流程图。
[0553] 图40_22是根据一些实施方案用于服务睡眠上下文回调请求的示例性过程的流程图。
[0554] 图41_1是索引应用程序状态以在本地设备搜索索引中使用的系统的一个实施方案的框图。
[0555] 图41_2是使用设备上应用程序状态搜索索引搜索应用程序状态的系统的一个实施方案的框图。
[0556] 图41_3是在其他查询结果之间显示应用程序状态查询结果的用户界面的实施方案的框图。
[0557] 图41_4A是用于索引从设备上多个不同应用程序接收的应用程序状态的过程的一个实施方案的流程图。
[0558] 图41_4B是使用应用程序状态索引确定查询的查询结果的过程的一个实施方案的流程图。
[0559] 图41_5是将应用程序状态作为查询结果的一部分接收和呈现的过程的一个实施方案的流程图。
[0560] 图41_6是索引应用程序状态以在远程搜索索引中使用的系统的一个实施方案的框图。
[0561] 图41_7是使用远程应用程序状态搜索索引搜索应用程序状态的系统的一个实施方案的框图。
[0562] 图41_8是将应用程序状态添加至应用程序状态索引的过程的一个实施方案的流程图。
[0563] 图41_9是将应用程序状态导出至应用程序状态索引服务的过程的一个实施方案的流程图。
[0564] 图41_10是使用应用程序状态索引执行查询搜索的过程的一个实施方案的流程图。
[0565] 图41_11是将应用程序状态作为查询结果的一部分接收和呈现的过程的一个实施方案的流程图。
[0566] 图41_12是索引应用程序状态视图以在远程搜索索引中使用的系统的一个实施方案的框图。
[0567] 图41_13是应用程序视图的一个实施方案的框图。
[0568] 图41_14是使用应用程序状态生成应用程序状态视图的过程的一个实施方案的流程图。
[0569] 图41_15是将应用程序状态(包括应用程序状态视图)作为查询结果的一部分接收和呈现的过程的一个实施方案的流程图。
[0570] 图42至图55为根据一些实施方案的电子设备的功能框图。

具体实施方式

[0571] 如上所述并在以下进行详述,需要具有更快、更有效的方法和界面的电子设备,以用于快速访问应用程序和这些应用程序内的所需功能。具体地讲,需要一种设备,该设备能够帮助用户避免重复性任务并在用户明确请求相关信息前识别和提供该信息来提供主动协助。另外,需要在特定的时间段(例如,每天早晨醒来之后访问日历应用程序)、特定的地点(例如,在健身房访问音乐应用程序)等快速访问应用程序和应用程序中的所需功能。本文公开了用于解决这些需求的新颖的方法和界面,并为用户提供了在这些特定地点、时间段等快速访问这些应用程序和应用程序中的功能的方法。此类方法和界面任选地补充或替代了访问应用程序的常规方法。此类方法和界面减少对用户所造成的认知负担,并且产生更有效的人机界面。对于电池驱动设备,此类方法和界面可节省用电并且增加两次电池充电之间的时间。此外,这种方法和界面有助于通过要求较少数量的触摸输入延长触敏显示器的寿命(例如,本文公开的方法和界面无需用户输入即可主动提供所需的某条信息,而不必连续且无目的地轻击触敏显示器来定位该条信息)。
[0572] 下面,图1A至图1E和图2提供了对示例性设备的描述。图10和图11提供了示例性电子设备的功能框图。图3A至图3B和图4A至图4B是用于主动识别和显示相关内容的示例性数据结构的框图(这些数据结构在参照图6A至图6B所描述的方法和参照图8A至图8B所描述的方法中使用)。图5是示出旨在建立用于主动识别和显示相关内容的触发条件的示例性系统的框图(该示例性系统在参照图6A至图6B所描述的方法和参照图8A至图8B所描述的方法中使用)。图6A至图6B是用于描绘主动识别和显示相关内容的方法的流程图。图7A至图7B是用于说明旨在主动识别和显示相关内容的示例性用户界面和手势的触敏显示器的示意图。图8A至图8B是用于描绘主动识别和显示相关内容的方法的流程图。图9A至图9D是用于说明旨在主动识别和显示相关内容的附加用户界面的触敏显示器的示意图。图3A至图3B、图4A至图4B、图5和图7A至图7B用于示出图6A至图6B中的方法和/或过程。图3A至图3B、图4A至图
4B、图5和图9A至图9D用于示出图8A至图8B中的方法和/或过程。
[0573] 图10A至图10C是用于描绘基于当前在具有触敏显示器的电子设备上显示的内容主动建议搜索查询的方法的流程图。图11A至图11J是触敏显示器的示意图,其用于示出基于触敏显示器上当前显示的内容主动建议搜索查询的用户界面。图11A至图11J用于示出图10A至图10C中的方法和/或过程。
[0574] 图12是基于启发式过程进入搜索模式的方法的流程图表示。图13A至图13B是触敏显示器的示意图,其用于示出基于启发式过程进入搜索模式的用户界面。图13A至图13B用于示出图12的方法和/或过程。
[0575] 图14是根据一些实施方案在具有触敏显示器的电子设备上主动提供车辆位置的方法的流程图表示。图15A至图15B是根据一些实施方案的触敏显示器的示意图,其用于示出旨在主动提供车辆位置的用户界面。图15A至图15B用于示出图14的方法和/或过程。
[0576] 图16A至图16B是根据一些实施方案主动提供用于搜索查询的附近兴趣点(POI)信息的方法的流程图表示。图17A至图17E是根据一些实施方案的触敏显示器的示意图,其用于示出旨在主动提供用于搜索查询的附近兴趣点(POI)信息的用户界面。图16A至图16B用于示出图17A至图17E中的方法和/或过程。
[0577] 图18A至图18B是根据一些实施方案从语音通信中提取内容项并与提取的内容项进行交互的方法的流程图表示。图19A至图19F是根据一些实施方案的触敏显示器的示意图,其用于示出旨在显示从语音通信中提取的内容项并与其进行交互的用户界面。图19A至图19F用于示出图18A至图18B中的方法和/或过程。
[0578] 图20是根据一些实施方案,确定语音通信包括识别物理位置的语音并使用有关物理位置的信息填充应用程序的方法的流程图表示。图21A至图21B是根据一些实施方案的触敏显示器的示意图,其用于示出旨在确定语音通信包括识别物理位置的语音并使用有关物理位置的信息填充应用程序的用户界面。图19A至图19F和图21A至图21B用于示出图20的方法和/或过程。
[0579] 图22A至图22B是根据一些实施方案主动建议在即时消息应用程序中使用的物理位置的方法的流程图表示。图23A至图23O是根据一些实施方案的触敏显示器的示意图,其用于示出旨在主动建议与位置、事件或联系人相关的信息的用户界面(例如,为便于用户选择并包括在即时消息应用程序中)。图23A至图23O用于示出图22A至图22B中的方法和/或过程。
[0580] 图22C是根据一些实施方案主动建议与位置、事件或联系人相关的信息的方法的流程图表示。图23A至图23O用于示出图22C中的方法和/或过程。
[0581] 图24A至图24B是根据一些实施方案,使用用户先前在另一个应用程序中查看的信息主动填充某个应用程序的方法的流程图表示。图25A至图25J是根据一些实施方案的触敏显示器的示意图,其用于示出旨在使用用户先前在另一个应用程序中查看的信息主动填充某个应用程序的用户界面(例如,使用用户在检查应用程序中查看的关于位置的信息填充顺风车应用程序)。图25A至图25J用于示出图24A至图24B中的方法和/或过程。
[0582] 图26A至图26B是根据一些实施方案,主动建议将用户先前在第一应用程序中查看的建议信息用于第二应用程序的流程图表示。图25A至图25J用于示出图26A至图26B中的方法和/或过程。
[0583] 图27是根据一些实施方案,主动建议物理位置以用作车辆中路线引导的目的地的流程图表示。图28是根据一些实施方案的触敏显示器的示意图,用于示出旨在主动建议物理位置以用作车辆中路线引导的目的地的用户界面。图28用于示出图27的方法和/或过程。
[0584] 图29是根据一些实施方案主动建议粘贴动作的方法的流程图表示。图30A至图30D是根据一些实施方案的触敏显示器的示意图,其用于示出旨在主动建议粘贴动作的用户界面。图30A至图30D用于示出图29的方法和/或过程。
[0585] “实施方案附加描述”部分中第1至11部分描述了更多细节,用以补充参照图1A至图30D提供的细节。
[0586] 现在将详细地参考实施方案,这些实施方案的示例在附图中示出。下面的详细描述中示出许多具体细节,以便提供对各种所描述的实施方案的充分理解。但是,对本领域的普通技术人员将显而易见的是,各种所描述的实施方案可以在没有这些具体细节的情况下被实践。在其他情况下,没有详细地描述众所周知的方法、过程、部件、电路和网络,从而不会不必要地使实施方案的各个方面晦涩难懂。
[0587] 还将理解的是,虽然在一些情况下,术语“第一”、“第二”等在本文中用于描述各种元件,但是这些元件不应受到这些术语限制。这些术语只是用于将一个元件与另一元件区分开。例如,第一接触可被命名为第二接触,并且类似地,第二接触可被命名为第一接触,而不脱离各种所描述的实施方案的范围。第一接触和第二接触两者都是接触,但是它们不是同一接触。
[0588] 在本文中对各种所描述的实施方案的描述中所使用的术语只是为了描述特定实施方案的目的,而并非旨在进行限制。如在对各种所述实施方案中的描述和所附权利要求书中所使用的那样,单数形式“一个”(“a”,“an”)和“该”旨在也包括复数形式,除非上下文另外明确地指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联地列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”(“includes”“including”“comprises”和/或“comprising”)在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件和/或其分组。
[0589] 如本文中所使用,根据上下文,术语“如果”任选地被解释为意思是“当……时”或“在……时”或“响应于确定”或“响应于检测”。类似地,根据上下文,短语“如果确定……”或“如果检测到[所陈述的条件或事件]”任选地被解释为意思是“在确定……时”或“响应于确定……”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
[0590] 本文中的公开内容可互换地涉及检测在触敏显示器的特定用户界面元素或特定部分上、特定用户界面元素或特定部分处、特定用户界面元素或特定部分的上方、特定用户界面元素或特定部分的顶部、或基本上在该特定用户界面元素或特定部分内的触摸输入。如本文所使用,在特定用户界面元素“处”检测到的触摸输入还能够在相同用户界面元素“上”、“上方”、“顶部”或“基本上在这个相同用户界面元素内”检测到。在一些实施方案中并且如下更详细地描述,用于检测触摸输入的期望敏感度水平是由电子设备的用户进行配置的(例如,用户可以决定(并且配置要操作的电子设备)触摸输入应当仅在触摸输入完全在用户界面元素内时检测到)。
[0591] 本文描述了电子设备、此类设备的用户界面和使用此类设备的相关联的过程的实施方案。在一些实施方案中,该设备是还包含其他功能诸如PDA和/或音乐播放器功能的便携式通信设备,诸如移动电话。便携式多功能设备的示例性实施方案包括但不限于来自Apple Inc(Cupertino,California)的 和 设备。任选地使用其他便携式电子设备,诸如具有触敏表面(例如,触摸屏显示器和/或触控板)的膝上型电脑或平板电脑。还应当理解的是,在一些实施方案中,该设备并非便携式通信设备,而是具有触敏表面(例如,触摸屏显示器和/或触控板)的台式计算机。
[0592] 在下面的讨论中,描述了一种包括显示器和触敏表面的电子设备。然而,应当理解,该电子设备任选地包括一个或多个其他物理用户接口设备,诸如物理键盘、鼠标和/或操纵杆。
[0593] 该设备通常支持各种应用程序,诸如以下应用程序中的一个或多个应用程序:绘图应用程序、呈现应用程序、文字处理应用程序、网站创建应用程序、盘编辑应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息应用程序、健康/健身应用程序、照片管理应用程序、数字相机应用程序、数字摄像机应用程序、web浏览应用程序、数字音乐播放器应用程序、和/或数字视频播放器应用程序。
[0594] 在设备上执行的各种应用程序任选地使用至少一个共用的物理用户界面设备,诸如触敏表面。触敏表面的一种或多种功能以及被显示在设备上的对应信息任选地对于不同应用程序被调整和/或变化,和/或在相应应用程序内被调整和/或变化。这样,设备的通用物理架构(诸如触敏表面)任选地利用对于用户而言直观且清楚的用户界面来支持各种应用程序。
[0595] 现在关注具有触敏显示器的便携式电子设备的实施方案。图1A是示出根据一些实施方案的具有触敏显示器112的便携式多功能设备100(在本文中也可互动换地称电子设备100或是设备100)的框图。触敏显示器112有时为了方便被叫做“触摸屏”,并且有时被称为或被叫做触敏显示器系统。设备100包括存储器102(其任选地包括一个或多个计算机可读存储介质)、控制器120、一个或多个处理单元(CPU)122、外围设备接口118、RF电路108、音频电路110、扬声器111、麦克风113、输入/输出(I/O)子系统106、其他输入或控制设备116和外部端口124。设备100任选地包括一个或多个光学传感器164。设备100任选地包括用于检测设备100上的接触的强度的一个或多个强度传感器165(例如,触敏表面,诸如设备100的触敏显示系统112)。设备100任选地包括用于在设备100上生成触觉输出的一个或多个触觉输出发生器167(例如,在触敏表面,诸如设备100的触敏显示器系统112或设备100的触控板上生成触觉输出)。这些部件任选地通过一根或多根通信总线或信号线103通信。
[0596] 如在本说明书和权利要求书中所使用,术语触敏表面上的接触的“强度”是指触敏表面上的接触(例如,手指接触)的力或压力(每单位面积的力),或是指触敏表面上的接触的力或压力的替代物(代用物)。接触的强度具有值范围,该值范围包括至少四个不同值并且更典型地包括上百个不同值(例如,至少256个)。接触的强度任选地使用各种方法和各种传感器或传感器的组合来确定(或测量)。例如,在触敏表面下方或相邻于触敏表面的一个或多个力传感器任选地用于测量触敏表面上的不同点处的力。在一些具体实施中,来自多个力传感器的力测量被合并(例如,加权平均),以确定估计的接触力。类似地,触笔的压敏顶端任选地用于确定触笔在触敏表面上的压力。另选地,在触敏表面上检测到的接触区域的大小和/或其变化、接触附近的触敏表面的电容和/或其变化、和/或接触附近的触敏表面的电阻和/或其变化任选地被用作触敏表面上的接触的力或压力的替代物。在一些具体实施中,接触力或压力的替代测量值直接用于确定是否已超出强度阈值(例如,强度阈值以与替代测量值对应的单位描述)。在一些具体实施中,将接触力或压力的替代测量值转换为预估力或压力,并且使用预估力或压力确定是否已超过强度阈值(例如,强度阈值是以压力单位测量的压力阈值)。
[0597] 如本说明书和权利要求书中所使用的,术语“触觉输出”是指将由用户利用用户的触感检测到的设备相对于设备的先前位置的物理位移、设备的部件(例如,触敏表面)相对于设备的另一个部件(例如,外壳)的物理位移、或部件相对于设备的质心的位移。例如,在设备或设备的部件与用户对触摸敏感的表面(例如,手指、手掌或用户手部的其他部分)接触的情况下,通过物理位移生成的触觉输出将由用户解释为触感,该触感与设备或设备的部件的物理特征的所感知的变化对应。例如,触敏表面(例如,触敏显示器或触控板)的移动任选地由用户解释为对物理致动按钮的“按下点击”或“松开点击”。在一些情况下,用户将感觉到触感,诸如“按下点击”或“松开点击”,即使在通过用户的移动而物理地被按压(例如,被移位)的与触敏表面相关联的物理致动按钮没有移动时。作为另一个实施例,即使在触敏表面的光滑度无变化时,触敏表面的移动也会任选地由用户解释为或感测为触敏表面的“粗糙度”。虽然由用户对触摸的此类解释将受到用户的个体化感官知觉的限制,但是存在触摸的许多感官知觉是大多数用户共有的。因此,当触觉输出被描述为与用户的特定感官知觉(例如,“松开点击”、“按下点击”、“粗糙度”)对应时,除非另外陈述,否则所生成的触觉输出与设备或其部件的物理位移对应,该物理位移将会生成典型(或普通)用户的所描述的感官知觉。
[0598] 应当理解,设备100仅是便携式多功能设备的一个实施例,并且设备100任选地具有比所示出的更多或更少的部件,任选地组合两个或更多个部件,或者任选地具有这些部件的不同配置或布置。图1A中所示的各种部件以硬件、软件或软件和硬件的组合来实现,包括一个或多个信号处理和/或专用集成电路
[0599] 存储器102任选地包括高速随机存取存储器(例如,DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备),并且任选地还包括非易失性存储器,诸如一个或多个磁盘存储设备、闪存存储器设备或其他非易失性固态存储器设备。存储器102任选地包括远离一个或多个处理器122定位的一个或多个存储设备。设备100的其他部件(诸如CPU 122和外围设备接口118)对存储器102的访问任选地由控制器120来控制。
[0600] 外围设备接口118可被用于将设备的输入外围设备和输出外围设备耦接到CPU 122和存储器102。所述一个或多个处理器122运行或执行存储在存储器102中的各种软件程序和/或指令集以执行设备100的各种功能并处理数据。
[0601] 在一些实施方案中,外围设备接口118、CPU 122、和控制器120任选地被实现在单个芯片诸如芯片104上。在一些其他实施方案中,它们任选地被实现在独立的芯片上。
[0602] RF(射频)电路108接收和发送也被叫做电磁信号的RF信号。RF电路108将电信号转换为电磁信号/将电磁信号转换为电信号,并且经由电磁信号来与通信网络以及其他通信设备进行通信。RF电路108任选地包括用于执行这些功能的熟知的电路,包括但不限于天线系统、RF收发器、一个或多个放大器、调谐器、一个或多个振荡器数字信号处理器、编解码芯片组、用户身份模块(SIM)卡、存储器等等。RF电路108任选地通过无线通信来与网络以及其他设备进行通信,该网络为诸如互联网(也被称为万维网(WWW))、内联网、和/或无线网络(诸如蜂窝电话网络、无线局域网(LAN)和/或城域网(MAN))。无线通信任选地使用多种通信标准、协议和技术中的任何一种,包括但不限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、演进、纯数据(EV-DO)、HSPA、HSPA+、双单元HSPA(DC-HSPDA)、长期演进(LTE)、近场通信(NFC)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、蓝牙低功耗、无线保真(Wi-Fi)(例如,IEEE 802.11a、IEEE 802.11b、IEEE 802.11g和/或IEEE 802.11n)。
[0603] 音频电路110、扬声器111和麦克风113提供用户和设备100之间的音频接口。音频电路110从外围设备接口118接收音频数据,将音频数据转换为电信号,并将电信号传输到扬声器111。扬声器111将电信号转换为人类可听到的声波。音频电路110还接收由麦克风113根据声波转换的电信号。音频电路110将电信号转换为音频数据,并将音频数据传输到外围设备接口118,以用于处理。音频数据任选地由外围设备接口118检索自和/或传输至存储器102和/或RF电路108。在一些实施例中,音频电路110还包括耳麦插孔。耳麦插孔提供音频电路110与可移除的音频输入/输出外围设备之间的接口,该外围设备诸如仅输出的耳机或者具有输出(例如,单耳或双耳耳机)和输入(例如,麦克风)二者的耳麦。
[0604] I/O子系统106将设备100上的输入/输出外围设备诸如触摸屏112和其他输入控制设备116连接到外围设备接口118。I/O子系统106任选地包括显示控制器156、光学传感器控制器158、强度传感器控制器159、触觉反馈控制器161、和用于其他输入或控制设备的一个或多个输入控制器160。所述一个或多个输入控制器160从其他输入控制设备116接收电信号/将电信号发送到其他输入控制设备。其他输入控制设备116任选地包括物理按钮(例如,下压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击轮等。在一些另选实施方案中,一个或多个输入控制器160任选地耦接至以下各项中的任一者(或不耦接至以下各项中的任一者):键盘、红外线端口、USB端口以及指针设备诸如鼠标。该一个或多个按钮可任选地包括用于扬声器111和/或麦克风113的音量控制的增大/减小按钮。一个或多个按钮任选地包括下压按钮。
[0605] 触敏显示器112提供设备和用户之间的输入接口和输出接口。显示控制器156从触摸屏112接收电信号和/或将电信号发送至该触摸屏。触摸屏112向用户显示视觉输出。视觉输出任选地包括图形、文本、图标、视频和它们的任何组合(统称为“图形”)。在一些实施方案中,一些视觉输出或全部的视觉输出对应于用户界面对象。
[0606] 触摸屏112具有基于触觉和/或触感接触来接受来自用户的输入的触敏表面、传感器或传感器组。触摸屏112和显示控制器156(与存储器102中的任何相关联的模块和/或指令集一起)检测触摸屏112上的接触(和该接触的任何移动或中断),并且将所检测到的接触转换为与被显示在触摸屏112上的用户界面对象(例如,一个或多个软键、图标、网页或图像)的交互。在一个示例性实施方案中,触摸屏112和用户之间的接触点对应于用户手指下方的区域。
[0607] 触摸屏112任选地使用LCD(液晶显示器)技术、LPD(发光聚合物显示器)技术、或LED(发光二极管)技术、或OLED(有机发光二极管)技术,但是在其他实施方案中使用其他显示技术。触摸屏112和显示控制器156任选地使用现在已知的或以后将开发出的多种触摸感测技术中的任何技术以及其他接近传感器阵列或用于确定与触摸屏112接触的一个或多个点的其他元件来检测接触及其任何移动或中断,该多种触摸感测技术包括但不限于电容性的、电阻性的、红外线的、和表面声波技术。在一个示例性实施方案中,使用投射式互电容感测技术,诸如见于Apple Inc.(Cupertino,California)的和 中的技术。
[0608] 触摸屏112任选地具有超过400dpi的视频分辨率。在一些实施方案中,触摸屏112具有至少600dpi的视频分辨率。在其他实施方案中,触摸屏112具有至少1000dpi的视频分辨率。用户任选地使用任何合适的物体或指头诸如触笔或手指等等,来与触摸屏112接触。在一些实施方案中,用户界面被设计用于主要与基于手指的接触和手势工作。在一些实施方案中,设备将基于手指的输入转化为精确的指针/光标位置或命令,以用于执行用户所期望的动作。
[0609] 在一些实施方案中,除了触摸屏之外,设备100任选地包括用于激活或解除激活特定功能的触控板(未示出)。在一些实施方案中,触控板是设备的触敏区域,该触敏区域与触摸屏不同,其不显示视觉输出。触控板任选地是与触摸屏112分开的触敏表面,或者是由触摸屏形成的触敏表面的延伸部分。
[0610] 设备100还包括用于为各种部件供电的电力系统162。电力系统162任选地包括电力管理系统、一个或多个电源(例如,电池、交流电(AC))、再充电系统、电力故障检测电路、功率转换器或逆变器、电源状态指示器(例如,发光二极管(LED))、和与便携式设备中的电力的生成、管理和分配相关联的任何其他部件。
[0611] 设备100任选地还包括一个或多个光学传感器164。图1A示出了耦接到I/O子系统106中的光学传感器控制器158的光学传感器。光学传感器164任选地包括电荷耦合器件(CCD)或互补金属化物半导体(CMOS)光电晶体管。光学传感器164从环境接收通过一个或多个透镜而投射的光,并且将光转换为表示图像的数据。结合成像模块143(也叫做相机模块),光学传感器164任选地捕获静态图像或视频。在一些实施方案中,光学传感器位于设备
100的后部上,与设备前部上的触摸屏112相背对,使得触敏显示器能够用作用于静态图像和/或视频图像采集取景器。在一些实施方案中,另一光学传感器位于设备的前部上,使得用户在触敏显示器上观看其他视频会议参与者的同时,任选地获得该用户的图像以用于视频会议。
[0612] 设备100任选地还包括一个或多个接触强度传感器165。图1A示出耦接到I/O子系统106中强度传感器控制器159的接触强度传感器。接触强度传感器165任选地包括一个或多个压阻应变仪、电容式力传感器、电气力传感器、压电力传感器、光学力传感器、电容式触敏表面、或其他强度传感器(例如,用于测量触敏表面上的接触的力(或压力)的传感器)。接触强度传感器165从环境接收接触强度信息(例如,压力信息或压力信息的代用物)。在一些实施方案中,至少一个接触强度传感器与触敏表面(例如,触敏显示器系统112)并置排列或邻近。在一些实施方案中,至少一个接触强度传感器位于设备100的与位于设备100的前部上的触摸屏112相背对的后部上。
[0613] 设备100任选地还包括一个或多个接近传感器166。图1A示出了耦接到外围设备接口118的接近传感器166。另选地,接近传感器166耦接到I/O子系统106中的输入控制器160。在一些实施方案中,当多功能设备被置于用户的耳朵附近时(例如,当用户正在进行电话呼叫时),接近传感器关闭并且禁用触摸屏112。
[0614] 设备100任选地还包括一个或多个触觉输出发生器167。图1A示出了耦接到I/O子系统106中的触觉反馈控制器161的触觉输出发生器。触觉输出发生器167任选地包括一个或多个电声设备诸如扬声器或其他音频部件;和/或用于将能量转换成线性运动的机电设备诸如电机、螺线管、电活性聚合器、压电致动器、静电致动器或其他触觉输出生成部件(例如,用于将电信号转换成设备上的触觉输出的部件)。接触强度传感器165从触觉反馈模块133接收触觉反馈生成指令,并且在设备100上生成能够由设备100的用户感觉到的触觉输出。在一些实施方案中,至少一个触觉输出发生器与触敏表面(例如,触敏显示器系统112)并置排列或邻近,并且任选地通过竖直地(例如,向设备100的表面内/外)或侧向地(例如,在与设备100的表面相同的平面中向后和向前)移动触敏表面来生成触觉输出。在一些实施方案中,至少一个触觉输出发生器传感器位于设备100的与位于设备100的前部上的触敏显示器112相背对的后部上。
[0615] 设备100任选地还包括一个或多个加速度计168。图1A示出了耦接到外围设备接口118的加速度计168。另选地,加速度计168任选地耦接到I/O子系统106中的输入控制器160。
在一些实施方案中,基于对从该一个或多个加速度计所接收的数据的分析来在触敏显示器上以纵向视图或横向视图显示信息。设备100任选地除了加速度计168之外还包括磁力仪(未示出)和GPS(或GLONASS或其他全球导航系统)接收器(未示出),用于获得关于设备100的位置和取向(例如,纵向或横向)的信息。
[0616] 在一些实施方案中,存储于存储器102中的软件部件包括操作系统126、主动模块163(任选地包括一个或多个应用程序使用数据表335、触发条件表402、触发建立模块163-1和/或使用数据收集模块163-2)、通信模块(或指令集)128、接触/运动模块(或指令集)130、图形模块(或指令集)132、文本输入模块(或指令集)134、全球定位系统(GPS)模块(或指令集)135以及应用(或指令集)136。此外,在一些实施方案中,存储器102存储设备/全局内部状态157,如图1A中所示。设备/全局内部状态157包括以下各项中的一者或多者:活动应用程序状态,该活动应用程序状态用于指示哪些应用程序(如果有的话)当前是活动的;显示状态,该显示状态用于指示什么应用程序、视图或其他信息占据触敏显示器112的各个区域;传感器状态,该传感器状态包括从设备的各个传感器和输入控制设备116获得的信息;
和关于设备位置和/或姿态(例如,设备取向)的位置信息。
[0617] 操作系统126(例如,Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软件组件和/或驱动器,并且有利于各种硬件和软件组件之间的通信。
[0618] 通信模块128有利于通过一个或多个外部端口124与其他设备进行通信,并且还包括用于处理由RF电路108和/或外部端口124所接收的数据的各种软件部件。外部端口124(例如,通用串行总线(USB)、火线等)适于直接耦接到其他设备或通过网络(例如,互联网、无线LAN等)间接耦接。在一些实施方案中,外部端口是与来自APPLE Inc.的IPOD设备的一些实施方案上所使用的30针连接器相同、或类似的和/或与其兼容的多针(例如,30针)连接器。在其他实施方案中,外部端口是与来自APPLEInc.的LIGHTNING连接器中所使用的8针连接器相同的、或类似的和/或与其兼容的多针(例如,8针)连接器。
[0619] 接触/运动模块130任选地检测与触摸屏112(结合显示控制器156)和其他触敏设备(例如,触控板或物理点击式转盘)的接触。接触/运动模块130包括各种软件部件以用于执行与接触检测相关的各种操作,诸如确定是否已经发生了接触(例如,检测手指按下事件)、确定接触强度(例如,接触的力或压力,或者接触的力或压力的替代物)、确定是否存在接触的移动并跟踪在触敏表面上的移动(例如,检测一个或多个手指拖动事件),以及确定接触是否已经停止(例如,检测手指抬起事件或者接触断开)。接触/运动模块130从触敏表面接收接触数据。确定接触点的移动任选地包括确定接触点的速率(量值)、速度(量值和方向)和/或加速度(量值和/或方向的改变),接触点的移动由一系列接触数据表示。这些操作任选地被应用于单个接触(例如,一个手指接触)或多个同时接触(例如,“多触摸”/多个手指接触)。在一些实施方案中,接触/运动模块130和显示控制器156检测触控板上的接触。
[0620] 在一些实施方案中,接触/运动模块130使用一组一个或多个强度阈值来确定操作是否已由用户执行(例如,确定用户是否已“点击”图标)。在一些实施方案中,根据软件参数来确定强度阈值的至少一个子集(例如,强度阈值不是由特定物理致动器的激活阈值来确定的,并且可在不改变设备100的物理硬件的情况下被调节)。例如,在不改变触控板或触敏显示器硬件的情况下,触控板或触敏显示器的鼠标“点击”阈值可被设定成预定义的阈值的大范围中的任一个阈值。另外,在一些具体实施中,向设备的用户提供用于调节一组强度阈值中的一个或多个强度阈值(例如,通过调节各个强度阈值和/或通过利用对“强度”参数的系统级点击来一次调节多个强度阈值)的软件设置。
[0621] 接触/运动模块130任选地检测用户的手势输入。触敏表面上的不同手势具有不同的接触模式(例如,所检测到的接触的不同运动、定时和/或强度)。因此,任选地通过检测特定接触图案来检测手势。例如,检测手指轻击手势包括检测手指按下事件,然后在与手指按下事件相同的位置(或基本上相同的位置)处(例如,在图标的位置处)检测手指抬起(抬离)事件。作为另一个示例,在触敏表面上检测手指轻扫手势包括检测手指按下事件,然后检测一个或多个手指拖动事件,并且在一些实施方案中,还随后检测手指抬起(抬离)事件。
[0622] 图形模块132包括用于在触摸屏112或其他显示器上呈现和显示图形的各种已知的软件部件,包括用于改变所显示的图形的视觉冲击(例如,亮度、透明度、饱和度对比度或其他视觉特征)的部件。如本文所用,术语“图形”包括可以被显示给用户的任何对象,非限制性地包括文本、网页、图标(诸如包括软按键的用户界面对象)、数字图像、视频、动画等等。
[0623] 在一些实施方案中,图形模块132存储待使用的用于表示图形的数据。每个图形任选地被分配有对应的代码。图形模块132从应用程序等接收用于指定待显示的图形的一个或多个代码,在必要的情况下还一起接收坐标数据和其他图形属性数据,并且然后生成屏幕图像数据,以输出至显示控制器156。
[0624] 触觉反馈模块133包括用于生成指令的各种软件部件,该指令由触觉输出发生器167使用,以便响应于用户与设备100的交互而在设备100上的一个或多个位置处产生触觉输出。
[0625] 任选地为图形模块132的部件的文本输入模块134提供用于在各种应用程序(例如,联系人模块137、电子邮件客户端模块140、IM模块141、浏览器模块147和需要文本输入的任何其他应用程序)中输入文本的软键盘。
[0626] GPS模块135确定设备的位置并提供了在各种应用程序中使用的这种信息(例如,提供至用于基于位置的拨号的电话138;提供至相机143作为图片/视频元数据;以及提供至提供基于位置的服务诸如天气桌面小程序、当地黄页桌面小程序和地图/导航桌面小程序的应用程序)。
[0627] 应用程序(“应用”)136任选地包括以下模块(或指令集)或者其子集或超集:
[0628] ·联系人模块137(有时叫做通讯录或联系人列表);
[0629] ·电话模块138;
[0630] ·视频会议模块139;
[0631] ·电子邮件客户端模块140;
[0632] ·即时消息(IM)模块141;
[0633] ·健康模块142;
[0634] ·用于静态图像和/或视频图像的相机模块143;
[0635] ·图像管理模块144;
[0636] ·浏览器模块147;
[0637] ·日历模块148;
[0638] ·桌面小程序模块149,其任选地包括以下各项中的一者或多者:天气桌面小程序149-1、股市桌面小程序149-2、计算器桌面小程序149-3、闹钟桌面小程序149-4、词典桌面小程序149-5和由用户获得的其他桌面小程序,以及用户创建的桌面小程序149-6;
[0639] ·搜索模块151;
[0640] ·视频和音乐播放器模块152,任选地由视频播放器模块和音乐播放器模块构成;
[0641] ·记事本模块153;
[0642] ·地图模块154;和/或
[0643] ·在线视频模块155。
[0644] 任选地存储在存储器102中的其他应用程序136的示例包括其他文字处理应用程序、其他图像编辑应用程序、绘图应用程序、展示应用程序、网站创建应用程序、盘编辑应用程序、电子表格应用程序、支持JAVA的应用程序、加密、数字权益管理、语音识别、用于制作用户创建的桌面小程序的桌面小程序创建器模块149-6,以及语音复制。
[0645] 结合触摸屏112、显示控制器156、接触模块130、图形模块132、和文本输入模块134,联系人模块137任选地用于管理地址簿或联系人列表(例如,被存储在存储器102或存储器370中的联系人模块137中),包括:将一个或多个姓名添加到地址簿;从地址簿删除一个或多个姓名;使一个或多个电话号码、一个或多个电子邮件地址、一个或多个物理地址或其他信息与姓名相关联;使图像与姓名相关联;对姓名归类和分类;提供电话号码或电子邮件地址以发起和/或促进通过电话模块138、视频会议模块139、电子邮件客户端模块140、或IM模块141进行通信;等等。
[0646] 结合RF电路108、音频电路110、扬声器111、麦克风113、触摸屏112、显示控制器156、接触模块130、图形模块132、和文本输入模块134,电话模块138被任选地用于输入与电话号码对应的字符序列、访问地址簿137中的一个或多个电话号码、修改已输入的电话号码、拨打相应的电话号码、进行对话以及当对话完成时断开或挂断。如上所述,无线通信任选地使用多种通信标准、协议和技术中的任一种。
[0647] 结合RF电路108、音频电路110、扬声器111、麦克风113、触摸屏112、显示控制器156、光学传感器164、光学传感器控制器158、接触模块130、图形模块132、文本输入模块
134、联系人列表137和电话模块138,视频会议模块139包括根据用户指令发起、进行和终止用户与一个或多个其他参与方之间的视频会议的可执行指令。
[0648] 结合RF电路108、触摸屏112、显示控制器156、接触模块130、图形模块132和文本输入模块134,电子邮件客户端模块140包括用于响应于用户指令来创建、发送、接收和管理电子邮件的可执行指令。结合图像管理模块144,电子邮件客户端模块140使得非常容易创建和发送具有由相机模块143拍摄的静态图像或视频图像的电子邮件。
[0649] 结合RF电路108、触摸屏112、显示控制器156、接触模块130、图形模块132和文本输入模块134,即时消息模块141包括用于输入与即时消息对应的字符序列、修改先前输入的字符、发送相应即时消息(例如,使用针对基于电话的即时消息的短消息服务(SMS)或多媒体消息服务(MMS)协议或者使用针对基于互联网的即时消息的XMPP、SIMPLE、或IMPS)、接收即时消息以及查看所接收的即时消息的可执行指令。在一些实施方案中,所传输和/或接收的即时消息任选地包括图形、照片、音频文件、视频文件和/或MMS和/或增强消息服务(EMS)中所支持的其他附接件。如本文所用,“即时消息”是指基于电话的消息(例如,使用SMS或MMS传输的消息)和基于互联网的消息(例如,使用XMPP、SIMPLE、或IMPS传输的消息)两者。
[0650] 结合RF电路108、触摸屏112、显示控制器156、接触模块130、图形模块132、文本输入模块134、GPS模块135、地图模块154、以及视频和音乐播放器模块146,健康模块142包括用于以下操作的可执行指令:创建健身(例如具有时间、距离、和/或卡路里燃烧目标);与健身传感器(运动设备,诸如手表或计步器)进行通信;接收健身传感器数据;校准用于监测健身的传感器;选择健身音乐并进行播放;以及显示、存储和传输健身数据。
[0651] 结合触摸屏112、显示控制器156、一个或多个光学传感器164、光学传感器控制器158、接触模块130、图形模块132、和图像管理模块144,相机模块143包括用于以下操作的可执行指令:捕获静态图像或视频(包括视频流)并且将它们存储到存储器102中、修改静态图像或视频的特性、或从存储器102删除静态图像或视频。
[0652] 结合触摸屏112、显示控制器156、接触模块130、图形模块132、文本输入模块134和相机模块143,图像管理模块144包括用于以下操作的可执行指令:排列、修改(例如,编辑)、或以其他方式操纵、加标签、删除、呈现(例如,在数字幻灯片或相册中)、以及存储静态图像和/或视频图像。
[0653] 结合RF电路108、触摸屏112、显示系统控制器156、接触模块130、图形模块132和文本输入模块134,浏览器模块147包括根据用户指令浏览互联网(包括搜索、链接到、接收和显示网页或其部分以及链接到网页的附件和其他文件)的可执行指令。
[0654] 结合RF电路108、触摸屏112、显示系统控制器156、接触模块130、图形模块132、文本输入模块134、电子邮件客户端模块140和浏览器模块147,日历模块148包括用于根据用户指令来创建、显示、修改和存储日历以及与日历相关联的数据(例如,日历条目、待办事项等)的可执行指令。
[0655] 结合RF电路108、触摸屏112、显示系统控制器156、接触模块130、图形模块132、文本输入模块134和浏览器模块147,桌面小程序模块149是任选地由用户下载和使用的微型应用程序(例如,天气桌面小程序149-1、股票桌面小程序149-2、计算器桌面小程序149-3、闹钟桌面小程序149-4和字典桌面小程序149-5)或由用户创建的微型应用程序(例如,用户创建的桌面小程序149-6)。在一些实施方案中,桌面小程序包括HTML(超文本标记语言)文件、CSS(层叠样式表)文件和JavaScript文件。在一些实施方案中,桌面小程序包括XML(可延伸标记语言)文件和JavaScript文件(例如,Yahoo!桌面小程序)。
[0656] 结合RF电路108、触摸屏112、显示系统控制器156、接触模块130、图形模块132、文本输入模块134和浏览器模块147,桌面小程序创建者模块(未示出)任选地被用户用来创建桌面小程序(例如,将网页的用户指定部分转到桌面小程序中)。
[0657] 结合触摸屏112、显示系统控制器156、接触模块130、图形模块132和文本输入模块134,搜索模块151包括用于根据用户指令来搜索存储器102中的匹配一个或多个搜索条件(例如,一个或多个用户指定的搜索词)的文本、音乐、声音、图像、视频和/或其他文件的可执行指令。在一些实施方案中,搜索模块151还包括用于显示搜索入口部分和预测部分的可执行指令(例如,图9B的搜索入口部分920和预测部分930,并且参照图6A至图9C在下文进行了更详细地讨论)。在一些实施方案中,在搜索入口部分接收到任何用户输入之前,搜索模块151结合主动模块163还使用建议或预测的人员、应用程序内的动作、应用程序、附近地点和/或新闻文章的示能表示填充预测部分(如下文参照图3A至图9C更详细地讨论)。
[0658] 结合触摸屏112、显示系统控制器156、接触模块130、图形模块132、音频电路110、扬声器111、RF电路108和浏览器模块147,视频和音乐播放器模块152包括允许用户下载和回放以一种或多种文件格式(诸如MP3或AAC文件)存储的所记录的音乐和其他声音文件的可执行指令,以及显示、展示或以其他方式回放视频(例如,在触摸屏112上或在经由外部端口124连接的外部显示器上)的可执行指令。在一些实施方案中,设备100任选地包括MP3播放器,诸如来自APPLE Inc.的IPOD的功能。
[0659] 结合触摸屏112、显示控制器156、接触模块130、图形模块132和文本输入模块134,记事本模块153包括根据用户指令来创建和管理记事本、待办事项等的可执行指令。
[0660] 结合RF电路108、触摸屏112、显示系统控制器156、接触模块130、图形模块132、文本输入模块134、GPS模块135和浏览器模块147,地图模块154任选地用于根据用户指令接收、显示、修改和存储地图以及与地图相关联的数据(例如,驾驶方向;与特定位置处或附近的商店及其他兴趣点有关的数据;以及其他基于位置的数据)。
[0661] 结合触摸屏112、显示系统控制器156、接触模块130、图形模块132、音频电路110、扬声器111、RF电路108、文本输入模块134、电子邮件客户端模块140和浏览器模块147,在线视频模块155包括指令,该指令允许用户访问、浏览、接收(例如,通过流式传输和/或下载)、回放(例如在触摸屏上或在经由外部端口124所连接的外部显示器上)、发送具有至特定在线视频的链接的电子邮件,以及以其他方式管理一种或多种文件格式诸如H.264的在线视频。在一些实施方案中,即时消息模块141而不是电子邮件客户端模块140用于发送至特定在线视频的链接。
[0662] 如图1A所示,便携式多功能设备100还包括主动模块163,该模块用于主动识别和显示相关内容(例如,显示对应于应用程序内锁定屏幕动作或搜索界面内的动作的用户界面对象(例如,用于播放音乐应用程序内的播放列表的UI对象))。主动模块163任选地包括以下模块(或指令集)或者其子集或超集:
[0663] ·应用程序使用表335;
[0664] ·触发条件表402;
[0665] ·触发建立模块163-1;
[0666] ·使用数据收集模块163-2;
[0667] ·主动建议模块163-3;以及
[0668] ·(语音通信)内容提取模块163-4。
[0669] 结合应用程序136,GPS模块135、操作系统126、I/O子系统106、RF电路108、外部部分124、接近传感器166、音频电路110、加速度计168、扬声器111、麦克风113和外围设备接口118、应用程序使用表335和使用数据收集模块163-2接收(例如,从以上标识的设备100的部件,图1A)和/或存储应用程序使用数据。在一些实施方案中,将应用程序使用报告给使用数据收集模块163-2,然后存储在应用程序使用表335中。在一些实施方案中,应用程序使用数据包括对应于用户使用特定应用程序136的所有(或最重要的、相关的或预测的)上下文使用信息。在一些实施方案中,每个特定应用程序在用户与应用程序交互的同时存储使用数据,然后将该使用数据报告给应用程序使用数据表335进行存储(例如,图3B所示特定应用程序136-1的使用数据193包括所有传感器读数、应用程序内执行的动作、设备耦合信息等,并且将此使用数据193发送到应用程序使用表335以存储为表内的记录)。例如,在用户与浏览器模块147交互时,应用程序使用数据接收并存储所有上下文使用信息,包括设备100的当前GPS坐标(例如,由GPS模块135所确定)、运动数据(例如,由加速度计168所确定),环境光数据(例如,由光学传感器164所确定)和用户在浏览器模块147内执行的应用程序内动作(例如,访问的URL、访问每个页面所花费的时间),以及由应用程序使用表335接收和存储的其他传感器数据和其他上下文使用信息。以下参照图3A至图3B提供关于应用程序使用表
335的附加信息。如以下参照图5所讨论的,在一些实施方案中,在远程存储应用程序使用数据(例如,在图5所示的一个或多个服务器502中)。
[0670] 触发条件表402和触发器建立模块163-1接收和/或存储基于存储在应用程序使用表335中的使用数据建立的触发条件。在一些实施方案中,触发建立模块163-1搜寻并分析存储在应用程序使用表335中的数据以识别模式。例如,如果应用程序使用数据指示用户总是在每天下午3:00至下午4:00之间启动音乐应用程序,则触发建立模块163-1在触发条件表402中创建并存储触发条件,当满足这些触发条件时(例如,当前时间在下午3:00至下午4:00的时间内)时,将使设备100启动音乐应用程序或至少向用户提供指示,指示音乐应用程序可用(例如,在锁定屏幕上显示UI对象,该UI对象允许用户轻松访问音乐应用程序)。以下参照图4A至图4B提供关于触发条件表402的附加信息。如以下参照图5所讨论的,在一些实施方案中,基于所识别的模式在远程服务器识别模式和建立触发条件(例如,图5所示一个或多个服务器502)。
[0671] 主动建议模块163-3与设备100的其他部件协同工作,以主动向用户提供内容用于电子设备上可用的各种不同应用程序。例如,主动建议模块163-3提供建议的搜索查询和其他建议内容以包括在搜索界面中(例如,如下文参考图10A至图10C所讨论的),提供用于帮助用户定位其停放的车辆的信息(例如,如下文参考图14所讨论的),提供关于附近兴趣点的信息(例如,如下文参考图16A至图16B所讨论的),提供从语音通信期间提供的语音中提取的内容项(例如,如下文参考图18A至图18B所讨论的),并帮助提供大量其他建议(例如,如下文参考图20、图21A至图21B、图24A至图24B、图26A至图26B、图27和图29所讨论的),这些建议旨在帮助用户以最少数量的输入高效地定位所需内容(例如,不必搜索该内容,主动建议模块163-3帮助确保在适当的时间提供内容供用户选择)。
[0672] (语音通信)内容提取模块163-4与设备100的其他部件协同工作,以识别与新内容项相关的语音并从语音通信中提取新内容项(例如,联系人信息、关于事件的信息和关于位置的信息,如下参照图18A至图18B和图20更详细地讨论的)。
[0673] 上述所识别的模块和应用程序中的每个模块和应用程序对应于用于执行上述一种或多种功能以及在本专利申请中所描述的方法(例如,本文中所描述的计算机实现的方法和其他信息处理方法)的一组可执行指令。这些模块(例如,指令集)不必被实现为独立的软件程序、过程或模块,因此这些模块的各种子集任选地在各种实施方案中得以组合或以其他方式重新布置。在一些实施方案中,存储器102任选地存储上述模块和数据结构的子集。此外,存储器102任选地存储上面未描述的附加的模块和数据结构。
[0674] 在一些实施方案中,设备100是该设备上的预定义的一组功能的操作唯一地通过触摸屏和/或触控板来执行的设备。通过使用触摸屏和/或触控板作为用于设备100的操作的主要输入控制设备,任选地减少设备100上的物理输入控制设备(诸如下压按钮、拨号盘等等)的数量。
[0675] 唯一地通过触摸屏和/或触控板执行的该预定义的一组功能任选地包括在用户界面之间进行导航。在一些实施方案中,触控板在被用户触摸时将设备100从被显示在设备100上的任何用户界面导航到主菜单、home菜单或根菜单。在此类实施方案中,使用触控板来实现“菜单按钮”。在一些其他实施方案中,菜单按钮是物理下压按钮或者其他物理输入控制设备,而不是触控板。
[0676] 图1B是示出根据一些实施方案的用于事件处理的示例性部件的框图。在一些实施方案中,存储器102(图1A中)包括事件分类器170(例如在操作系统126中)和选自便携式多功能设备100(图1A)的应用程序136之中的相应应用程序136-1(例如,与应用程序136一起存储在存储器102中的前述应用程序中的任一者)。
[0677] 事件分类器170接收事件信息并确定要将事件信息递送到的应用136-1和应用136-1的应用视图191。事件分类器170包括事件监视器171和事件分配器模块174。在一些实施方案中,应用程序136-1包括应用程序内部状态192,该应用程序内部状态指示当应用程序是活动的或正在执行时被显示在触敏显示器112上的一个或多个当前应用程序视图。在一些实施方案中,设备/全局内部状态157被事件分类器170用于确定哪个(哪些)应用当前是活动的,并且应用内部状态192被事件分类器170用于确定要将事件信息递送到的应用视图191。
[0678] 在一些实施方案中,应用内部状态192包括附加信息,诸如以下各项中的一者或多者:当应用136-1恢复执行时将被使用的恢复信息、指示正被应用136-1显示的信息或准备好用于被应用136-1显示的信息的用户界面状态信息、用于使得用户能够返回到应用136-1的前一状态或视图的状态队列,以及用户采取的先前动作的重复/撤销队列。
[0679] 事件监视器171从外围设备接口118接收事件信息。事件信息包括关于子事件(例如,触敏显示器112上的用户触摸,作为多点触摸手势的一部分)的信息。外围设备接口118传输其从I/O子系统106或传感器(诸如接近传感器166、一个或多个加速度计168和/或麦克风113(通过音频电路110))接收的信息。外围设备接口118从I/O子系统106接收的信息包括来自触敏显示器112或触敏表面的信息。
[0680] 在一些实施方案中,事件监视器171以预定的间隔将请求发送至外围设备接口118。作为响应,外围设备接口118传输事件信息。在其他实施方案中,外围设备接口118仅当存在显著事件(例如,接收到高于预先确定的噪声阈值和/或接收到超过预先确定的持续时间的输入)时才传输事件信息。
[0681] 在一些实施方案中,事件分类器170还包括命中视图确定模块172和/或活动事件识别器确定模块173。
[0682] 当触敏显示器112显示多于一个视图时,命中视图确定模块172提供用于确定子事件已在一个或多个视图内的什么地方发生的软件过程。视图由用户能在显示器上看到的控件和其他元素构成。
[0683] 与应用程序相关联的用户界面的另一方面是一组视图,在本文中有时也被称为应用程序视图或用户界面窗口,在其中显示信息并且发生基于触摸的手势。在其中检测到触摸的(相应应用程序的)应用程序视图任选地对应于在应用程序的程序化或视图分级结构内的程序化水平。例如,在其中检测到触摸的最低水平视图任选地被称为命中视图,并且被认为是正确输入的事件集任选地至少部分地基于初始触摸的命中视图来确定,该初始触摸开始基于触摸的手势。
[0684] 命中视图确定模块172接收与基于接触的手势的子事件相关的信息。当应用程序具有在分级结构中组织的多个视图时,命中视图确定模块172将命中视图识别为应对子事件进行处理的分级结构中的最低视图。在大多数情况下,命中视图是发起子事件(例如,形成事件或潜在事件的子事件序列中的第一子事件)在其中发生的最低水平视图。一旦命中视图被命中视图确定模块所识别,命中视图便通常接收与其被识别为命中视图所针对的同一触摸或输入源相关的所有子事件。
[0685] 活动事件识别器确定模块173确定视图分级结构内的哪个或哪些视图应接收特定子事件序列。在一些实施方案中,活动事件识别器确定模块173确定仅命中视图才应接收特定子事件序列。在其他实施方案中,活动事件识别器确定模块173确定包括子事件的物理位置的所有视图都是活跃参与的视图,因此确定所有活跃参与的视图都应接收特定子事件序列。在其他实施方案中,即使触摸子事件完全被局限到与一个特定视图相关联的区域,但在分级结构中较高的视图将仍然保持为活跃参与的视图。
[0686] 事件分配器模块174将事件信息分配到事件识别器(例如,事件识别器180)。在包括活动事件识别器确定模块173的实施方案中,事件分配器模块174将事件信息递送到由活动事件识别器确定模块173确定的事件识别器。在一些实施方案中,事件分配器模块174在事件队列中存储事件信息,该事件信息由相应事件接收器182进行检索。
[0687] 在一些实施方案中,操作系统126包括事件分类器170。另选地,应用程序136-1包括事件分类器170。在另一个实施方案中,事件分类器170是独立的模块,或者是存储在存储器102中的另一个模块(诸如接触/运动模块130)的一部分。
[0688] 在一些实施方案中,应用程序136-1包括多个事件处理程序190和一个或多个应用程序视图191,其中的每一个都包括用于处理发生在应用程序的用户界面的相应视图内的触摸事件的指令。应用程序136-1的每个应用程序视图191包括一个或多个事件识别器180。通常,相应应用视图191包括多个事件识别器180。在其他实施方案中,事件识别器180中的一个或多个事件识别器是独立模块的一部分,该独立模块诸如用户界面工具包(未示出)或应用程序136-1从中继承方法和其他属性的更高水平的对象。在一些实施方案中,相应事件处理程序190包括以下各项中的一者或多者:数据更新器176、对象更新器177、GUI更新器
178和/或从事件分类器170接收的事件数据179。事件处理程序190任选地利用或调用数据更新器176、对象更新器177或GUI更新器178来更新应用程序内部状态192。另选地,应用程序视图191中的一个或多个应用程序视图包括一个或多个相应事件处理程序190。另外,在一些实施方案中,数据更新器176、对象更新器177和GUI更新器178中的一者或多者包括在相应应用程序视图191中。
[0689] 相应的事件识别器180从事件分类器170接收事件信息(例如,事件数据179),并且从事件信息识别事件。事件识别器180包括事件接收器182和事件比较器184。在一些实施方案中,事件识别器180还包括元数据183和事件传递指令188(其任选地包括子事件传递指令)的至少一个子集。
[0690] 事件接收器182接收来自事件分类器170的事件信息。事件信息包括关于子事件例如触摸或触摸移动的信息。根据子事件,事件信息还包括附加信息,诸如子事件的位置。当子事件涉及触摸的运动时,事件信息任选地还包括子事件的速率和方向。在一些实施方案中,事件包括设备从一个取向旋转到另一个取向(例如,从纵向取向旋转到横向取向,或反之亦然),并且事件信息包括关于设备的当前取向(也被称为设备姿态)的对应信息。
[0691] 事件比较器184将事件信息与预定义的事件或子事件定义进行比较,并且基于该比较,确定一个事件或子事件,或确定或更新事件或子事件的状态。在一些实施方案中,事件比较器184包括事件定义186。事件定义186包含事件的定义(例如,预定义的子事件序列),例如事件1(187-1)、事件2(187-2)以及其他。在一些实施方案中,事件187中的子事件例如包括触摸开始、触摸结束、触摸移动、触摸取消和多点触摸。在一个示例中,事件1(187-1)的定义是在被显示对象上的双击。例如,双击包括被显示对象上的预先确定时长的第一次触摸(触摸开始)、预先确定时长的第一次抬起(触摸结束)、被显示对象上的预先确定时长的第二次触摸(触摸开始)以及预先确定时长的第二次抬起(触摸结束)。在另一个示例中,事件2(187-2)的定义是被显示对象上的拖动。例如,拖动包括在被显示对象上的预定时长的触摸(或接触)、该触摸在触敏显示器112上的移动、以及该触摸的抬离(触摸结束)。在一些实施方案中,事件还包括用于一个或多个相关联的事件处理程序190的信息。
[0692] 在一些实施方案中,事件定义186包括对用于相应用户界面对象的事件的定义。在一些实施方案中,事件比较器184执行命中测试,以确定哪个用户界面对象与子事件相关联。例如,在触摸显示器112上显示三个用户界面对象的应用程序视图中,当在触敏显示器112上检测到触摸时,事件比较器184执行命中测试,以确定这三个用户界面对象中的哪一个用户界面对象与该触摸(子事件)相关联。如果每个所显示的对象与相应的事件处理程序
190相关联,则事件比较器使用该命中测试的结果来确定哪个事件处理程序190应当被激活。例如,事件比较器184选择与子事件和触发该命中测试的对象相关联的事件处理程序。
[0693] 在一些实施方案中,相应事件187的定义还包括延迟动作,该延迟动作延迟事件信息的递送,直到已确定子事件序列确实对应于或不对应于事件识别器的事件类型。
[0694] 当相应事件识别器180确定子事件串不与事件定义186中的任何事件匹配时,该相应事件识别器180进入事件不可能、事件失败或事件结束状态,在此之后忽略基于触摸的手势的后续子事件。在这种情况下,对于命中视图保持活动的其他事件识别器(如果有的话)继续跟踪和处理持续的基于触摸的手势的子事件。
[0695] 在一些实施方案中,相应事件识别器180包括具有指示事件递送系统应该如何执行对活跃参与的事件识别器的子事件递送的可配置属性、标志、和/或列表的元数据183。在一些实施方案中,元数据183包括指示事件识别器彼此如何交互或如何能够交互的可配置属性、标志和/或列表。在一些实施方案中,元数据183包括指示子事件是否递送到视图或程序化分级结构中的不同层级的可配置属性、标志和/或列表。
[0696] 在一些实施方案中,当识别事件的一个或多个特定子事件时,相应事件识别器180激活与事件相关联的事件处理程序190。在一些实施方案中,相应事件识别器180将与事件相关联的事件信息递送到事件处理程序190。激活事件处理程序190不同于将子事件发送(和延期发送)到相应命中视图。在一些实施方案中,事件识别器180抛出与所识别的事件相关联的标记,并且与该标记相关联的事件处理程序190获取该标记并执行预定义的过程。
[0697] 在一些实施方案中,事件递送指令188包括递送关于子事件的事件信息而无需激活事件处理程序的子事件递送指令。相反,子事件递送指令将事件信息递送到与子事件系列相关联的事件处理程序或递送到活跃参与的视图。与子事件系列或与活跃参与的视图相关联的事件处理程序接收事件信息并执行预先确定的过程。
[0698] 在一些实施方案中,数据更新器176创建并更新在应用程序136-1中使用的数据。例如,数据更新器176对联系人模块137中所使用的电话号码进行更新,或者对视频或音乐播放器模块145中所使用的视频文件进行存储。在一些实施方案中,对象更新器177创建和更新在应用程序136-1中使用的对象。例如,对象更新器176创建新用户界面对象或更新用户界面对象的位置。GUI更新器178更新GUI。例如,GUI更新器178准备显示信息并将其发送至图形模块132以用于显示在触敏显示器上。
[0699] 在一些实施方案中,一个或多个事件处理程序190包括数据更新器176、对象更新器177和GUI更新器178或者具有对该数据更新器、该对象更新器和该GUI更新器的访问权限。在一些实施例中,数据更新器176、对象更新器177和GUI更新器178被包括在相应应用程序136-1或应用程序视图191的单个模块中。在其他实施例中,它们被包括在两个或更多个软件模块中。
[0700] 在一些实施方案中,每个特定应用程序136-1在用户与应用程序交互的同时存储使用数据,然后将该使用数据报告给应用程序使用数据表335进行存储(例如,图3B所示特定应用程序136-1的使用数据193包括所有传感器读数、应用程序内执行的动作、设备耦合信息等,并且将此使用数据193发送到特定应用程序的应用程序使用表335以存储为表内的记录)。在一些实施方案中,使用数据193在特定应用程序136-1使用的同时(例如,用户与特定应用程序136-1主动交互)存储由使用数据收集模块163-2报告的数据。
[0701] 应当理解,关于触敏显示器上的用户触摸的事件处理的上述论述还适用于利用输入设备来操作多功能设备100的其他形式的用户输入,并不是所有用户输入都是在触摸屏上发起的。例如,任选地利用鼠标移动和鼠标按钮按压,任选结合单次或多次键盘按压或保持;触控板上的接触移动,诸如轻击、拖动、滚动等;触笔输入;设备的移动;口头指令;检测到的眼睛运动;生物测定输入;和/或其任意组合,作为对应于子事件的输入,定义要识别的事件。
[0702] 图1C是根据一些实施方案的具有触敏显示器(例如,触摸屏112)的便携式多功能设备(例如,便携式多功能设备100)的示意图。在该实施方案中,以及在下文中介绍的其他实施方案中,用户可通过例如用一根或多根手指或者用一个或多个触控笔在屏幕上作出手势来选择这些图形中的一个或多个。在一些实施方案中,当用户(例如,通过将手指从屏幕抬离)中断与一个或多个图形的接触时,将发生对一个或多个图形的选择。在一些实施方案中,手势任选地包括一次或多次轻击手势(例如,在抬离后对屏幕的一系列触摸)、一次或多次轻扫手势(在沿屏幕表面的手势期间连续接触,例如,从左向右、从右向左、向上和/或向下)和/或已与设备100发生接触的手指的滚动(例如,从右向左、从左向右、向上和/或向下)。在一些具体实施中或在一些情况下,不经意地与图形接触不会选择图形。例如,当用于启动应用程序的手势是轻击手势时,在应用程序示能表示(例如,图标)上方扫动的轻扫手势任选地不会启动(例如,打开)相应应用程序。
[0703] 设备100任选地还包括一个或多个物理按钮,诸如“home”按钮或菜单按钮204。如前所述,菜单按钮204任选地用于导航到任选地在设备100上被执行的一组应用程序中的任何应用程序136。另选地,在一些实施方案中,菜单按钮被实现为显示在触摸屏112上的GUI中的软键。
[0704] 在一个实施方案中,设备100包括触摸屏112、菜单按钮204、用于对设备开关机和锁定设备进行供电的下压按钮206、音量调节按钮208、用户身份模块(SIM)卡槽210、耳麦插孔212和对接/充电外部端口124。下压按钮206被任选地用于:通过按下按钮并使按钮在下压状态保持预先确定的时间间隔来使设备通电/断电;通过按下按钮并在经过预先确定的时间间隔之前释放按钮来锁定设备;和/或对设备进行解锁或发起解锁过程。在另选的实施方案中,设备100还通过麦克风113来接受用于激活或去激活某些功能的语音输入。设备100还任选地包括用于检测触摸屏112上的接触的强度的一个或多个接触强度传感器165,和/或用于为设备100的用户生成触觉输出的一个或多个触觉输出发生器167。
[0705] 图1D是用于示出设备(例如,图1A的设备100)上的用户界面的示意图,该设备具有与显示器194(例如,触摸屏112)分开的触敏表面195(例如,平板电脑或触控板)。在一些实施方案中,触敏表面195包括用于检测触敏表面195上的接触强度的一个或多个接触强度传感器(例如,接触强度传感器359中的一者或多者),和/或用于为触敏表面195的用户生成触觉输出的一个或多个触觉输出发生器357。
[0706] 尽管将参考触摸屏112(其中组合了触敏表面和显示器)上的输入给出随后的实施例中的一些实施例,但是在一些实施方案中,设备检测与显示器分开的触敏表面上的输入,如图1D中所示。在一些实施方案中,触敏表面(例如,图1D中的195)具有与显示器(例如,194)上的主轴(例如,图1D中的198)对应的主轴(例如,图1D中的199)。根据这些实施方案,设备检测在与显示器上的相应位置对应的位置(例如,在图1D中,197-1对应于196-1并且
197-2对应于196-2)处与触敏表面195的接触(例如,图1D中的197-1和197-2)。这样,在触敏表面(例如,图1D中的195)与多功能设备的显示器(例如,图1D中的194)分开时,由设备在触敏表面上检测到的用户输入(例如,接触197-1和接触197-2以及它们的移动)被该设备用于操控显示器上的用户界面。应当理解,类似的方法任选地用于本文所述的其他用户界面。
[0707] 另外,虽然主要是参考手指输入(例如,手指接触、单指轻击手势、手指轻扫手势)来给出下面的示例,但是应当理解,在一些实施方案中,这些手指输入中的一个或多个手指输入由来自另一输入设备的输入(例如,基于鼠标的输入或触笔输入)替代。例如,轻扫手势任选地由鼠标点击(例如,而不是接触),之后是光标沿着轻扫的路径的移动(例如,而不是接触的移动)来替代。又如,轻击手势任选地由在光标位于轻击手势的位置上方时的鼠标点击(例如,而不是对接触的检测,以及之后的停止检测接触)来代替。类似地,当同时检测到多个用户输入时,应当理解的是,多个计算机鼠标任选地被同时使用,或者鼠标和多个手指接触任选地被同时使用。
[0708] 如本文所用,术语“焦点选择器”是指用于指示用户正与之进行交互的用户界面的当前部分的输入元件。在包括光标或其他位置标记的一些具体实施中,光标充当“焦点选择器”,使得当光标在特定用户界面元素(例如,按钮、窗口、滑块或其他用户界面元素)上方时在触敏表面(例如,图1D中的触敏表面195(在一些实施方案中,触敏表面195是触控板))上检测到输入(例如,按压输入)的情况下,该特定用户界面元素根据所检测到的输入而被调节。在包括能够实现与触摸屏显示器上的用户界面元素的直接交互的触摸屏显示器(例如,图1A中的触敏显示器系统112或触摸屏112)的一些具体实施中,在触摸屏上所检测到的接触充当“焦点选择器”,使得在触摸屏显示器上于特定用户界面元素(例如,按钮、窗口、滑块或其他用户界面元素)的位置处检测到输入(例如,由接触进行的按压输入)时,该特定用户界面元素根据所检测到的输入而被调节。在一些具体实施中,焦点从用户界面的一个区域移动到用户界面的另一个区域,而无需光标的对应移动或触摸屏显示器上的接触的移动(例如,通过使用制表键或箭头键来将焦点从一个按钮移动到另一个按钮);在这些具体实施中,焦点选择器根据用户界面的不同区域之间的焦点移动而移动。不考虑焦点选择器所采取的具体形式,焦点选择器通常是由用户控制的以便传送与用户界面的用户预期的交互(例如,通过向设备指示用户期望与其进行交互的用户界面的元素)的用户界面元素(或触摸屏显示器上的接触)。例如,在触敏表面(例如,触控板或触敏显示器)上检测到按压输入时,焦点选择器(例如,光标、接触或选择框)在相应按钮上方的位置将指示用户期望激活相应按钮(而不是设备显示器上示出的其他用户界面元素)。
[0709] 图4C示出了与显示器194和触敏表面195通信的示例性电子设备。对于电子设备的至少一个子集,根据一些实施方案将显示器194和/或触敏表面195集成在电子设备中。虽然在下文中参照与电子设备(例如,图1A至图1B中的便携式多功能设备100)通信的触敏表面195和显示器194更详细地描述了示例,但应当理解,根据一些实施方案,触敏表面和/或显示器与电子设备集成在一起,而在其他实施方案中,触敏表面和显示器的一个或多个与电子设备分开。另外,在一些实施方案中,电子设备具有集成显示器和/或集成触敏表面,并且与独立于该电子设备的一个或多个附加显示器和/或触敏表面进行通信。
[0710] 在一些实施方案中,下文中参照图6A至图6B、图7A至图7B、图8A至图8B、图9A至图9D、图10A至图10C、图11A至图11J、图12、图13A至图13B、图14、图15A至图15B、图16A至图
16B、图17A至图17E、图18A至图18B、图19A至图19F、图20、图21A至图21B、图22A至图22C、图
23A至图23O、图24A至图24B、图25A至图25J、图26A至图26B、图27、图28、图29、图30A至图30D描述的所有操作在具有用户界面导航逻辑480的单个电子设备上执行(例如,下文中参照图
4C描述的计算设备A)。然而,应当理解,经常将多个不同的电子设备连接在一起以执行在下文中参照图6A至图6B、图7A至图7B、图8A至图8B、图9A至图9D、图10A至图10C、图11A至图
11J、图12、图13A至图13B、图14、图15A至图15B、图16A至图16B、图17A至图17E、图18A至图
18B、图19A至图19F、图20、图21A至图21B、图22A至图22C、图23A至图230、图24A至图24B、图
25A至图25J、图26A至图26B、图27、图28、图29、图30A至图30D所描述的操作(例如,具有用户界面导航逻辑480的电子设备与具有显示器194的独立电子设备和/或具有触敏表面195的独立电子设备通信)。在这些实施方案中的任意一种中,下文中参照图6A至图6B、图7A至图
7B、图8A至图8B、图9A至图9D、图10A至图10C、图11A至图11J、图12、图13A至图13B、图14、图
15A至图15B、图16A至图16B、图17A至图17E、图18A至图18B、图19A至图19F、图20、图21A至图
21B、图22A至图22C、图23A至图23O、图24A至图24B、图25A至图25J、图26A至图26B、图27、图
28、图29、图30A至图30D描述的电子设备是包含用户界面导航逻辑480的电子设备(或设备)。另外,应当理解,在各种实施方案中,用户界面导航逻辑480可在多个不同模块或电子设备之间划分;但是,出于本文中的描述目的,用户界面导航逻辑480将主要被称为位于单个电子设备中,从而不会不必要地模糊实施方案的其他方面。
[0711] 在一些实施方案中,用户界面导航逻辑480包括接收解释输入的一个或多个模块(例如,一个或多个事件处理程序190,包括如上文参照图1C更详细地描述的一个或多个对象更新器177和一个或多个GUI更新器178),并且响应于这些解释输入,根据解释输入生成用于更新图形用户界面的指令,所述解释输入随后用于更新显示器上的图形用户界面。在一些实施方案中,解释输入是已经被检测(例如,通过图1A至图1B和图3中的接触运动130)、识别(例如,通过图1C中的事件识别器180)和/或设置了优先级的输入(例如,通过图1C中的事件分类器170)。在一些实施方案中,解释输入由电子设备处的模块生成(例如,电子设备接收原始接触输入数据,以便从原始接触输入数据中识别手势)。在一些实施方案中,解释输入的一些或全部被电子设备接收为解释输入(例如,包括触敏表面195的电子设备处理原始接触输入数据,以便从原始接触输入数据中识别手势并将指示手势的信息发送到包括用户界面导航逻辑480的电子设备)。
[0712] 在一些实施方案中,显示器194和触敏表面195都与包含用户界面导航逻辑480的电子设备(例如,图4C中的计算设备A)集成。例如,该电子设备可以是具有集成显示器(例如,图3中的340)和触控板(例如,图3中的355)的台式计算机或膝上型计算机。又如,该电子设备可以是具有触摸屏(例如,图2中的112)的便携式多功能设备100(例如,智能电话、PDA、平板电脑等)。
[0713] 在一些实施方案中,触敏表面195与电子设备集成,而显示器194未与包含用户界面导航逻辑480的电子设备(例如,图4C中的计算设备B)集成。例如,该电子设备可以是具有集成触控板(例如,图3中的355)的设备(例如,台式计算机或膝上型计算机等),其中该集成触控板与独立显示器(例如,计算机监视器、电视等)相连(通过有线或无线连接)。又如,该电子设备可以是具有触摸屏(例如,图2中的112)的便携式多功能设备100(例如,智能电话、PDA、平板电脑等),其中该触摸屏与独立显示器(例如,计算机监视器、电视等)相连(通过有线或无线连接)。
[0714] 在一些实施方案中,显示器194与电子设备集成,而触敏表面195未与包含用户界面导航逻辑480的电子设备(例如,图4C中的计算设备C)集成。例如,该电子设备可以是具有集成显示器(例如,图3中的340)的设备(例如,台式计算机、膝上型计算机、带集成式机顶盒的电视),其中该集成显示器与独立触敏表面(例如,远程触控板、便携式多功能设备等)相连(通过有线或无线连接)。又如,该电子设备可以是具有触摸屏(例如,图2中的112)的便携式多功能设备100(例如,智能电话、PDA、平板电脑等),其中该触摸屏与独立触敏表面(例如,远程触控板、另一个触摸屏作为远程触控板使用的便携式多功能设备等)相连(通过有线或无线连接)。
[0715] 在一些实施方案中,显示器194和触敏表面195都未与包含用户界面导航逻辑480的电子设备(例如,图4C中的计算设备D)集成。例如,电子设备可以是连接(通过有线或无线连接)到单独触敏表面(例如,远程触控板、便携式多功能设备等)和单独显示器(例如,计算机监视器,电视等)的独立电子设备(例如,台式计算机、膝上型计算机、控制台、机顶盒等)。又如,该电子设备可以是具有触摸屏(例如,图2中的112)的便携式多功能设备100(例如,智能电话、PDA、平板电脑等),其中该触摸屏与独立触敏表面(例如,远程触控板、另一个触摸屏作为远程触控板使用的便携式多功能设备等)相连(通过有线或无线连接)。
[0716] 在一些实施方案中,计算设备具有集成音频系统。在一些实施方案中,计算设备和独立于计算设备的音频系统通信。在一些实施方案中,音频系统(例如,集成在电视单元中的音频系统)与单独显示器194集成。在一些实施方案中,音频系统(例如,立体音响系统)是与计算设备和显示器194分开的独立系统。
[0717] 现在将注意力转到可在具有显示器和触敏表面的电子设备(诸如设备100)上实现的用户界面(“UI”)实施方案及相关联的过程。
[0718] 图2是根据一些实施方案的触摸屏的示意图,其用于示出应用程序的菜单的用户界面。类似的用户界面任选地在设备100(图1A)上实现。在一些实施方案中,显示在触摸屏112上的用户界面包括以下元素、或者其子集或超集:
[0719] ·一种或多种无线通信(诸如蜂窝信号和Wi-Fi信号)的一个或多个信号强度指示符202;
[0720] ·时间203;
[0721] ·蓝牙指示器205;
[0722] ·电池状态指示器206;
[0723] ·具有常用应用程序的图标的托盘209,图标诸如:
[0724] o 电话模块138的被标记为“电话”的图标216,该图标任选地包括未接来电或语音留言的数量的指示符214;
[0725] o 电子邮件客户端模块140的被标记为“邮件”的图标218,该图标任选地包括未读电子邮件的数量的指示符210;
[0726] o 浏览器模块147的被标记为“浏览器”的图标220;以及
[0727] o 视频和音乐播放器模块152(也称为IPOD(APPLE Inc.的商标)模块152)的被标记为“iPod”的图标222;以及
[0728] 其他应用程序的图标,诸如:
[0729] o IM模块141的被标记为“消息”的图标224;
[0730] o 日历模块148的被标记为“日历”的图标226;
[0731] o 图像管理模块144的被标记为“照片”的图标228;
[0732] o 相机模块143的被标记为“相机”的图标230;
[0733] o 在线视频模块155的被标记为“在线视频”的图标232;
[0734] o 股市桌面小程序149-2的被标记为“股市”的图标234;
[0735] o 地图模块154的被标记为“地图”的图标236;
[0736] o 天气桌面小程序149-1的被标记为“天气”的图标238;
[0737] o 闹钟桌面小程序149-4的被标记为“时钟”的图标240;
[0738] o 健康模块142的被标记“健康”的图标242;
[0739] o 记事本模块153的被标记为“记事本”的图标244;
[0740] o 设置应用程序或模块的图标246,该图标提供对设备100及其各种应用程序的设置的访问;以及
[0741] o 另外的应用程序诸如应用商店、iTunes、语音备忘录和实用程序的其他图标。
[0742] 应当注意,图2中示出的图标标签仅仅是示例性的。对于各种应用程序图标任选地使用其他标签。例如,健康模块142的图标242另选地被标记为“健身支持”、“锻炼”、“锻炼支持”、“运动”、“运动支持”或“健身”。在一些实施方案中,相应应用程序图标的标签包括与该相应应用程序图标对应的应用程序的名称。在一些实施方案中,特定应用图标的标签不同于与该特定应用图标对应的应用的名称。
[0743] 图3A至图3B是示出根据一些实施方案的用于存储应用程序使用数据的数据结构的框图。如图3A所示,应用程序使用数据表335包括数据结构335的集合,任选地实现为安装在设备100上的每个应用程序的表的集合,每个应用程序使用数据表存储与安装在电子设备上的各自对应应用程序相关联的使用数据(例如,应用程序1使用数据表335-1存储应用程序1的使用数据,应用程序使用数据表335-2存储应用程序2的使用数据)。在一些实施方案中,应用程序使用数据表集合中的每个表(例如,表335-1、表335-2、表335-3...表335-N)存储安装在电子设备上的多于一个应用程序的使用数据(例如,表335-1存储由共同应用程序开发者或应用程序供应商提供的相关应用程序的每一者的使用数据,以便有效地存储潜在相关数据)。
[0744] 在一些实施方案中,一个或多个应用程序使用数据表335(例如,应用程序1使用数据表335-1)用于存储与安装在设备100上的应用程序相关联的使用数据。如图3B所示,应用程序1使用数据表335-1包含多个使用条目。在一些实施方案中,使用条目存储在单独的记录340-1至340-z中,并且任选地存储在标头340-0中。在一些实施方案中,标头340-0包含存储在表内的每个信息字段(例如,与每个记录相关联的每个字段)的简要描述。例如,标头340-0指示每条记录340-1至340-z包括用于唯一地标识使用条目的条目ID。在一些实施方案中,除条目ID字段外,应用程序1使用数据表335-1还包括附加字段,诸如用于标识使用条目何时创建和/或存储在表335-1中的时间戳字段,以及用于标识可存储在其他应用程序使用数据表335中的相关使用条目的相关使用条目字段。
[0745] 在一些实施方案中,应用程序1使用数据表335-1中的每个记录包含一个或多个使用条目,所述使用条目包含在用户与应用程序1交互时收集的使用数据(例如,每次用户启动应用程序1,创建新的使用条目以存储收集的使用数据)。在一些实施方案中,表中的每个使用条目存储以下信息和数据结构、或其子集或超集:
[0746] ·用于识别用户在应用程序内执行的应用内动作(例如,执行的应用内动作340-1(a))的信息(在一些实施方案中,这些动作由应用程序报告给设备),例如,应用程序向使用数据收集模块163-2报告用户在特定播放列表中播放了特定歌曲;
[0747] ·用于识别用户在其他应用程序(例如,系统级应用程序)内执行的其他动作(例如,执行的其他动作340-1(b))的信息,诸如向虚拟助理应用程序提供口头指令或执行搜索,在应用程序内搜索信息项(例如,图1A的搜索模块151);
[0748] ·传感器数据(例如,使用数据340-1(c)),包括在用户与使用条目相关联的应用程序交互的同时由设备100上的传感器收集的数据,任选地包括:
[0749] o 当日时间(例如,当日时间340-1(d))信息;
[0750] o 位置数据(例如,位置数据340-1(e)),用于识别用户启动应用程序时的当前位置以及用户在执行应用程序时访问的(例如,由GPS模块132报告的)其他位置;
[0751] o 其他传感器数据(例如,其他传感器数据340-1(f)),在用户与应用程序交互时收集的传感器数据(诸如环境光数据、高度数据、压力读数、运动数据等);
[0752] ·设备耦合信息(例如,设备耦合信息340-1(g)),用于识别在用户与应用程序交互时与设备100耦合的外部设备(例如,示例性外部设备可以是和耳机接口连接的一对耳机;或者另一个示例性设备可以是通过蓝牙连接的设备(例如,机动车中的扬声器或与机动车相关联的免提系统));以及
[0753] ·其他信息(例如,其他信息340-1(h)),在用户与应用程序交互时收集的信息(例如,有关已完成交易的信息,诸如关于用户使用APPLE PAY的信息)
[0754] 在一些实施方案中,应用程序每个使用条目还包括用于识别用户执行的动作类型的信息,而在其他实施方案中,用于识别所执行的应用内动作的信息用于确定或得出动作类型。
[0755] 在一些实施方案中,应用程序使用数据表335还存储关于隐私设置的信息,其中该隐私设置与设备100的用户相关联。例如,设备100的用户能够配置与每个应用程序的使用数据的集合相关联的隐私设置。在一些实施方案中,用户能够控制包含在每个使用条目内的所有信息(例如,执行的应用内动作、执行的其他动作、传感器数据、设备耦合信息和其他信息)的数据收集设置。例如,用户可以配置隐私设置,使得设备100(或其部件,诸如使用数据收集模块163-2)不收集位置数据,而是收集关于针对浏览器模块147执行的应用内动作的信息。又如,用户可以配置隐私设置,使得设备100不收集关于所执行的应用内动作的信息,而是收集在线视频模块155的位置数据。这样,用户能够控制设备100上的使用数据的收集,并且基于其就使用数据收集的个人偏好,为设备100上可用的每个应用程序配置适当的隐私设置。
[0756] 图4A至图4B是示出根据一些实施方案的用于存储触发条件的数据结构的框图。如图4A所示,主动触发条件表402包括数据结构402的集合,任选地实现为安装在设备100上的每个相应应用程序的表的集合,每个主动触发条件表存储与相应应用程序相关联的触发条件(例如,应用程序1触发条件表402-1存储与应用程序1相关联的触发条件(例如,一旦满足将使设备100启动或使用应用程序1的触发条件))。在一些实施方案中,应用程序使用数据表集合中的每个表(例如,表335-1、表335-2、表335-3...表335-N)存储与安装在电子设备上的多于一个应用程序相关联的触发条件(例如,表335-1存储由共同应用程序开发者或应用程序供应商提供的相关应用程序的每一者的触发条件,以便有效地存储潜在相关数据)。
[0757] 在一些实施方案中,一个或多个主动触发条件表402(例如,应用程序1触发条件表402-1)用于存储与安装在设备100上的应用程序相关联的触发条件。例如,如图4B所示,应用程序1触发条件表402-1包含用于识别与应用程序1相关联的每个触发条件的多个先决条件和关联动作的信息。如图4B所示,应用程序1触发条件表402-1包含记录414-1至414-z,并且任选地包括标头414-0。在一些实施方案中,标头414-0包含存储在表内的每个信息字段(例如,与每个记录相关联的每个字段)的简要描述。每个记录(例如,记录414-1)包括允许设备100确定用于满足每个触发条件的先决条件的信息。在一些实施方案中,记录414-1的先决条件1包含或识别多个先决条件(例如,传感器读数),其中当检测到所述先决条件时,将使设备100执行关联的动作(例如,动作4)。
[0758] 作为具体的示例,先决条件1可指示当日时间是否介于下午4:00至下午4:30之间;(例如,由GPS模块135报告的)位置数据显示用户仍然在其办公室附近(例如,在距其工作地点的预先确定的距离内);并且加速度计数据显示用户正在移动(例如,由加速度计168报告),则设备100应检测到与先决条件1相关联的触发条件并执行动作4(例如,动作4与即时消息模块141相关联,并使模块141向用户的配偶发送消息(或呈现对话框,询问用户是否想要发送消息),指示他/她正从工作地返回家中)。在一些实施方案中,基于由触发建立模块
163-1(图1A)识别的用户行为的模式来识别先决条件。在一些实施方案中,触发建立模块
163-1结合使用数据收集模块163-2和应用程序使用数据表335,搜寻存储在应用程序使用数据表中的数据以识别用户行为的模式。继续前面的示例,当在三个不同日期观察到用户在下午4:00至下午4:30之间向其配偶发送消息后(并且同时用户在距其工作地的预先确定距离内并且用户正在移动),则当观察到先决条件时,触发建立模块163-1创建相应的触发条件以自动发送消息(或向用户征求自动发送消息的许可)。在一些实施方案中,触发建立模块163-1以预定义的间隔(例如,每小时,每四小时,每天或当设备连接到外部电源时)分析或搜寻应用程序使用数据表335并仅以这些预定义的间隔创建触发条件。在一些实施方案中,用户确认应创建触发条件(例如,设备100向用户呈现描述先决条件和关联动作的对话框,然后用户确认或拒绝创建触发条件)。例如,一个示例性对话框包含文本“我注意到,您总是在一天的这个时候发送信息给您的妻子告诉她您正在回家的路上。您想要给她发送一条短信告诉她:我正在回家的路上吗?”
[0759] 图5是示出根据一些实施方案的示例性触发条件建立系统的框图。如图5所示,触发条件建立系统500包括便携式多功能设备100,并且还包括一个或多个服务器502。便携式多功能设备100通过一个或多个网络与一个或多个服务器502进行通信。所述一个或多个网络(例如,一个或多个网络520)可通信地将触发条件建立系统500的每个部件与触发条件建立系统500的其他部件相连。在一些实施方案中,所述一个或多个网络520包括公共通信网络、专用通信网络或公共和专用通信网络的组合。例如,所述一个或多个网络520可以是诸如互联网、其他广域网(WAN)、局域网(LAN)、虚拟专用网络(VPN)、城域网(MAN)、对等网络和/或自组连接的任意网络(或网络的组合)。
[0760] 在一些实施方案中,一个或多个主动触发条件表402存储在便携式多功能设备100上,并且一个或多个其他主动触发条件表402存储在一个或多个服务器502上。在一些实施方案中,便携式多功能设备100存储主动触发条件表402;而在其他实施方案中,所述一个或多个服务器502存储主动触发条件表402。类似地,在一些实施方案中,一个或多个应用程序使用数据表335存储在便携式多功能设备100上,并且一个或多个其他应用程序使用数据表335存储在所述一个或多个服务器502上。在一些实施方案中,便携式多功能设备100存储应用程序使用数据表335;而在其他实施方案中,所述一个或多个服务器502存储应用程序使用数据表335。
[0761] 在一个或多个主动触发条件表402或一个或多个应用程序使用数据表335存储在所述一个或多个服务器502的实施方案中,由触发建立模块163-1和使用数据收集模块163-2分别执行的一些功能在所述一个或多个服务器502上执行。在这些实施方案中,通过网络
520在所述一个或多个服务器502和设备100之间交换信息。例如,如果所述一个或多个服务器502存储在线视频模块155的主动触发条件表402,则在一些实施方案中,设备100将向所述一个或多个服务器502发送对应于在线视频模块155的一个或多个使用条目。在一些实施方案中,所述一个或多个服务器502然后搜寻所接收的使用数据以识别使用模式并创建触发条件(如上文参照图4A至图4B所讨论的),并将所创建的触发条件发送到设备100。在一些实施方案中,在接收与在线视频模块155相关联的数据(例如,一个或多个视频流的数据)时,设备100和所述一个或多个服务器502交换使用数据和触发条件。在一些实施方案中,所述一个或多个服务器502还能够检测所创建的触发条件(例如,基于在一个或多个视频流的数据交换期间接收的使用数据,服务器可以确定触发条件已经满足),使得触发条件根本不需要发送到设备100。在一些实施方案中,发送到所述一个或多个服务器502的使用数据的范围是有限的,使得其仅包含与用户使用在线视频模块155有关的信息(如上所述,用户还必须配置涉及使用数据收集的隐私设置,在一些实施方案中,这些隐私设置还还允许用户配置与一个或多个服务器502的使用数据的交换(例如,配置应该发送的数据类型以及不应发送的数据类型))。
[0762] 在一些实施方案中,以下参照第1至11部分讨论的数据结构还用于帮助实现和/或改进本文中讨论的任何方法。例如,下文中参照图1至图11讨论的预测引擎用于帮助建立触发条件,并且/或者第1至11部分中讨论的其他技术还用于帮助监视应用程序使用历史。
[0763] 图6A至图6B示出了根据一些实施方案的用于主动识别和显示相关内容的方法600的流程图表示。图3A至图3B、图4A至图4B、图5和图7A至图7B用于示出图6A至图6B中的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图1D中所示。
[0764] 在一些实施方案中,方法600由电子设备(例如,图1A的便携式多功能设备100)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法600由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法600。在一些实施方案中,参考图1A,方法600的操作至少部分地由以下项执行或使用以下项执行:主动模块(例如,主动模块163)、应用程序使用数据表(例如,应用程序使用数据表335)、触发条件表(例如,触发条件表402)、触发建立模块(例如,触发建立模块163-1)、使用数据收集模块(例如,使用数据收集模块163-2)、主动建议模块(例如,主动建议模块163-3)、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块132)、一个或多个接触强度传感器(例如,接触强度传感器165)和触敏显示器(例如,触敏显示器系统112)。方法600中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
[0765] 如下所述,方法600提供了一种直观的方式以在具有触敏显示器的电子设备上主动识别和显示相关内容。该方法通过要求更少的触摸输入来执行各种功能以创建更有效的人机界面。对于电池驱动的电子设备,更快且更有效地识别和显示相关内容节省了功率并且增加了电池充电之间的时间。
[0766] 如图6A所示,响应于来自电子设备用户的指令,该设备在电子设备(602)上执行应用程序。在一些实施方案中,来自用户的指令是与应用程序相关联的图标上方的触摸输入,或是从用户接收的指示虚拟助理应用程序(例如,由图1A中的操作系统126管理的虚拟助理应用程序)执行应用程序的语音命令。在执行应用程序时,设备(或其部件,诸如使用数据收集模块163-2)收集(604)包括用户在应用程序内执行的一个或多个动作的使用数据。在一些实施方案中,除了包括所述一个或多个动作或作为其替代,使用数据还包括用于识别与所述一个或多个动作的每一者相关联的动作类型的信息。例如,使用数据包括用于识别与音乐播放器模块152交互时的以下动作的信息:用户搜索第一播放列表,在第一播放列表内导航,选择第一播放列表中的第一曲目,然后搜索第二播放列表(例如,使用数据包括用户在音乐播放器模块152内执行的一个或多个动作的每一者)。这样,使用数据包括关于执行的各个动作(例如,用户搜索并播放第一播放列表的第一曲目)的每一者的信息,并且还包括用于识别动作类型(搜索、导航、选择等)的信息。在一些实施方案中,使用数据收集模块163-2收集所述一个或多个动作,然后触发建立模块163-1稍后为所述一个或多个动作的每一者分配动作类型。
[0767] 在一些实施方案中,收集的使用数据存储在与应用程序相关联的应用程序使用数据表中的使用条目中(如上文参照图3A至图3B所描述的)。在一些实施方案中,收集的使用数据包括用户执行的应用内动作、用户执行的其他动作(例如,与虚拟助理应用程序的交互、与搜索界面(例如,搜索模块151)的交互)以及与操作系统126管理的应用程序的其他交互)、与日历事件相关联的信息以及从设备100上的传感器获取的附加数据(如上文参照图3B所解释的)。
[0768] 在一些实施方案中,使用数据包括(618)来自用户的口头指令,该指令被提供给虚拟助理应用程序,同时继续执行该应用程序,并且所述至少一个触发条件还基于提供给虚拟助理应用程序的口头指令。在一些实施方案中,口头指令包括创建提醒的请求,该提醒对应于(例如,引用或需要重建/重新执行)应用程序的当前状态,所述当前状态对应于提供口头指令时的应用程序状态(例如,图1B的一个或多个应用程序视图191)。在一些实施方案中,提供口头指令时的应用程序状态选自由以下各项组成的组:提供口头指令时在应用程序内显示的页面,提供口头指令时在应用程序内播放的内容(例如,当前播放音频曲目),提供口头指令时在应用程序内显示的通知(例如,在用户和浏览器模块147交互时显示的来自即时消息模块141的通知),以及提供口头指令时在应用程序内显示的页面的活动部分(例如,当前在网页中播放视频内容)。作为附加示例,应用程序的当前状态还可对应于:(i)提供口头指令时用户当前在应用程序内查看的特定页面的标识符(例如,当前显示网页的URL),或者用户在导航至应用程序中的当前页面之前所执行动作的历史(例如,在当前显示的网页之前用户访问过的URL)。
[0769] 在一些实施方案中,口头指令包括关于应用程序当前状态的术语“这”或“那”。例如,在显示来自即时消息模块141的通知时,用户向虚拟助理应用程序提供“提醒我‘这个’”的指令,并且作为响应,虚拟助理应用程序使得设备100创建提醒,该提醒对应于通知内显示的内容。又如,当用户观看在线视频模块155中的特定视频内容时,用户向虚拟助理应用程序提供“提醒我注意‘这个’”的指令,作为响应,虚拟助理应用程序使设备100创建对应于特定视频内容的提醒。在一些实施方案中,当从应用程序本身提供口头指令时,设备100接收关于应用程序当前状态的信息(例如,继续前面的示例,在线视频模块155将其当前状态报告回设备100,或报告给其部件,诸如主动模块163,并且以这种方式,主动模块163接收用于识别特定视频内容的信息)
[0770] 设备在无人为干预的情况下,自动基于收集的使用数据获取(606)至少一个触发条件。在一些实施方案中,在设备上建立所述至少一个触发条件,而在其他实施方案中,从服务器(例如,图5所示一个或多个服务器502)获取(612)触发条件,该服务器基于从设备发送至所述一个或多个服务器502的使用数据来建立触发条件(如上文参照图5解释的)。在一些实施方案中,当满足所述至少一个触发条件时,将使设备(或其部件,诸如主动模块163)允许用户轻易地执行(例如,无任何输入或只有来自用户的单个触摸或口头输入)与所述至少一个触发条件相关联的动作。例如,一个示例性触发可指示在下午2:00和下午2:30之间,在(例如,由加速度计168报告的)加速度计数据指示用户在先前访问的GPS坐标(例如,在用户工作地附近经常访问的两幢建筑物之间)之间走动时,设备应自动(并且无来自用户的任何输入)打开音乐应用程序(例如,图1A的音乐播放器152)并开始播放特定的播放列表。在一些实施方案中,在收集使用数据并确定与音乐播放器152相关联的收集的使用数据指示:在平日每天下午2:00至下午2:30之间,当用户在先前访问过的GPS坐标之间走动时,用户打开音乐播放器152并播放特定播放列表后,(通过一个或多个服务器502或由设备100)建立该示例性触发。这样,设备(或服务器)基于收集的使用数据来标识和识别模式。通过为用户自动执行该动作(例如,播放特定播放列表),用户无需浪费任何时间来解锁设备、搜索音乐播放器152、搜索特定播放列表,然后播放特定播放列表。
[0771] 在一些实施方案中,该方法还包括:在建立或获取触发条件之前检查与设备用户相关联的隐私设置,以便确认用户已经允许设备收集某些使用数据和/或验证用户允许设备建立触发条件(例如,用户可以配置设置以禁止设备建立使得设备自动发送短信的触发条件)。
[0772] 该设备(或其部件,诸如触发条件建立模块163-1)还将所述至少一个触发条件与用户在应用程序内执行的所述一个或多个动作的特定动作(或与对应于特定动作的特定动作类型)相关联(608)(例如,通过将用于满足触发条件的先决条件与特定动作一起存储在图4A至图4B所示的主动触发条件表402中)。在确定已经满足所述至少一个触发条件时,设备向用户提供(610)指示,指示与触发条件相关联的特定动作(或特定动作类型)可用。在一些实施方案中,向用户提供指示包括:显示用于启动特定动作(或用于执行对应于特定动作类型的动作)的用户界面对象(例如,UI对象702,图7A),显示与执行该特定动作的应用程序相关联的图标(例如,应用程序图标710,如图7A的触摸屏112的左下角所示),或者简单地执行特定动作(如上述特定播放列表的示例所描述的)。在一些实施方案中,设备显示用户界面对象和/或图标,同时还(在无人为干预的情况下自动)简单地执行特定动作(或与特定动作具有相同特定动作类型的动作)。
[0773] 在一些实施方案中,获取所述至少一个触发条件包括(612):向远离电子设备(例如,图5的服务器502)定位的一个或多个服务器发送使用数据,并从一个或多个服务器接收所述至少一个触发条件。例如,与这些实施方案一致,电子设备(通过网络520)将一个或多个使用条目(例如,图3B的使用条目1)发送到服务器502,并且基于使用数据,服务器502建立所述至少一个触发条件。继续该示例,然后服务器502将所述至少一个触发条件(例如,存储在主动触发条件表402-1中的先决条件和关联动作)发送(使用网络520)到设备100。
[0774] 在一些实施方案中,提供指示包括(614)在触敏显示器上的锁定屏幕上显示用户界面对象,该用户界面对象对应于与触发条件相关联的特定动作。在一些实施方案中,用户界面对象显示在锁定屏幕的预定义的中心部分(例如,如图7A所示,UI对象702大体上显示在锁定屏幕的中间)。例如,设备通过在锁定屏幕上显示UI对象702来提供指示(图7A)。如图7A中所示,UI对象702包括预测的动作706。在一些实施方案中,预测的动作706是与所述至少一个触发条件相关联的动作的描述(换句话讲,用户界面对象包括与触发条件(616)相关联的特定动作的描述),诸如“轻扫以播放散步播放列表的曲目2”)。在一些实施方案中,UI对象702还任选地包括附加信息704,该信息用于向用户提供显示UI对象702的原因的信息。
在一些实施方案中,附加信息704包括用于检测触发条件(例如,传感器数据340-1(c))的使用数据的描述和/或所述至少一个触发条件的先决条件的描述(例如,图4B的记录414-1的先决条件1)。例如,附加信息704指示之所以显示预测的动作706,是因为用户经常在一天的特定时间在用户散步时监听散步播放列表。在一些实施方案中,选择附加信息704(例如,轻击附加信息704顶部)使得设备100显示用户界面,该用户界面允许用户改变与使用数据的收集和触发条件的创建相关联的隐私设置。
[0775] 在一些实施方案中,UI对象702还任选地包括(616)与预测的动作706相关联的应用程序图标710。例如,应用程序图标710是音乐播放器152的图标(如图7A所示)。在一些实施方案中,UI对象702还包括示能表示708,当选中时,将使设备执行预测的动作(例如,使得设备开始播放散步播放列表的曲目2)。在一些实施方案中,用户界面对象(例如,用户界面对象702)包括与触发条件相关联的特定动作(例如,如上文中解释的预测的动作706)的描述。在一些实施方案中,用户界面对象702还包括与应用程序相关联的图标(例如,在UI对象702内显示的应用程序图标710)。在一些实方案中,用户界面对象702还包括暂停按钮,当选择该按钮时,将使设备停止显示UI对象702,并在用户所选择或预先配置的时间段之后重新显示UI对象702。例如,用户选择暂停UI对象702两个小时,则在两小时后,设备重新显示UI对象702。又如,用户选择暂停UI对象702直到其可用,并且在一些实施方案中,设备100搜索日历模块148以识别用户时间表中的下一个开放时隙,并在识别的下一个开放时隙期间重新显示UI对象702。
[0776] 在一些实施方案中,设备在用户界面对象处检测(622)第一手势。响应于检测到第一手势,设备在触敏显示器上显示(624)应用程序,并在显示应用程序的同时,执行与触发条件相关联的特定动作。在一些实施方案中,第一手势是在用户界面对象上的轻扫手势。在一些实施方案中,响应于在用户界面对象上检测到轻扫手势,设备还在显示应用程序之前自行解锁(在其他实施方案中,该应用程序正好显示在锁定屏幕上)。在一些实施方案中,第一手势由在UI对象702内显示的文本进行指示(例如,预测的动作706内的文本包括对第一手势的描述,例如,“轻扫以...”)。参照图7A举例来说,用户接触UI对象702顶部的触敏表面,并在不中断与触敏表面接触的情况下,用户沿着大体上水平的方向移动接触手指扫过UI对象702。响应于在UI对象702上检测到来自用户的这一轻扫手势,设备显示音乐播放器152并开始播放散步播放列表的曲目2。
[0777] 另选地,在一些实施方案中,设备在用户界面对象处检测(626)第二手势(例如,不同于上文中讨论的第一手势的手势,诸如在用户界面对象(例如,播放按钮,诸如示能表示708)的预定义区域的单次轻击)而非检测第一手势。响应于检测到第二手势并且同时继续在触敏显示器上显示锁定屏幕,设备执行(628)与触发条件相关联的特定动作。换句话讲,设备从锁定屏幕执行特定动作并继续显示锁定屏幕,而不显示应用程序。
[0778] 在一些实施方案中,以上参照操作622至操作628讨论的第一手势和第二手势是相同手势,但它们在UI对象702内显示的不同对象上执行。例如,第一手势是在预测的动作706上的轻扫手势,而第二手势是在示能表示708上的轻扫手势。又如,第一手势是在预测的动作706上的单次轻击,并且第二手势是在示能表示708上的单次轻击。
[0779] 在一些实施方案中,向用户提供特定动作可用的指示包括让用户知晓特定动作可用于执行。在一些实施方案中,向用户提供与触发条件相关联的特定动作可用的指示包括执行特定动作。在一些实施方案中,借助于特定动作的执行(例如,用户听到正在播放所需播放列表)向用户提供指示。在一些实施方案中,UI对象702显示在锁定屏幕上,并且在不接收任何用户输入的情况下执行特定动作(诸如以上讨论的第一手势和第二手势)。
[0780] 在一些实施方案中,替代显示UI对象702(或作为补充),设备在大体上位于锁定屏幕角落的位置处显示与应用程序相关联的图标(例如,如图7A所示,应用程序图标710大体上显示在触摸屏112的左下角)。
[0781] 在一些实施方案中,设备接收来自用户的解锁电子设备的指令(例如,在延长接触Home按钮204后,识别出用户的指纹有效)。响应于接收到指令(例如,在解锁设备并停止显示锁定屏幕后),设备在触敏显示器上显示(620)设备的home屏幕,并且在home屏幕上向用户提供与触发条件相关联的特定动作可用的指示。如图7B所示,在接收解锁设备的指令后,UI对象702显示为覆盖home屏幕的跳板部分(或应用程序启动器)。在一些实施方案中,作为在home屏幕顶部显示UI对象702的替代或补充,设备还将在覆盖home屏幕任务栏部分的底部显示应用程序图标710。在一些实施方案中,home屏幕包括:(i)第一部分,该部分包括一个或多个用户界面页面,用于启动电子设备上可用的第一组应用程序(例如,所述第一部分包含home屏幕的跳板部分的所有单个页面),以及(ii)第二部分,该部分显示在与第一部分相邻的位置(例如,下方),用于启动电子设备上可用的第二组应用程序,所述第二部分显示在第一部分中包括的所有用户界面页面上(例如,所述第二部分是任务栏部分)。在一些实施方案中,在home屏幕上提供指示包括在第二部分上显示指示(例如,如图7B所示,包括应用程序图标710的底部显示在任务栏部分上)。在一些实施方案中,第二组应用程序不同于第一组应用程序且小于第一组应用程序(例如,显示在任务栏部分内的第二组应用程序是一组选择的图标,对应于用户收藏的应用程序)。
[0782] 在一些实施方案中,确定已经满足所述至少一个触发条件包括:确定电子设备已经与不同于该电子设备的第二设备耦接。例如,第二设备是通过耳麦插孔212耦接到设备的一对耳机,并且所述至少一个触发条件包括用于指示该对耳机已耦接到设备的先决条件(例如,在执行特定动作前,该特定动作包括在播客应用程序中启动用户收藏的播客,其中该播客是用户在连接耳机后经常启动的播客)。又如,第二设备是与用户的机动车相关联的蓝牙扬声器或其他免提设备,并且所述至少一个触发条件包括指示机动车的蓝牙扬声器已经耦接到设备的先决条件(例如,在执行特定动作前,该动作包括在当日时间和用户位置符合呼叫用户母亲的特定动作的先决条件时,呼叫用户的母亲)。有关外部设备的耦接和响应于耦接执行动作的更多细节在以下第6部分中提供(例如,参照第6部分的图36_1)。
[0783] 在一些实施方案中,确定已经满足所述至少一个触发条件包括:确定电子设备已经到达与用户相关联的家庭位置或工作位置的对应位置。在一些实施方案中,设备监视用户经常访问的位置(例如,与位置相关联的特定GPS坐标或街道地址),并且使用该信息来确定与用户相关联的家庭或工作位置。在一些实施方案中,设备基于从用户接收的信息或由用户输入的信息(诸如存储的联系人)来确定这些位置的地址。在一些实施方案中,确定电子设备已经到达与用户相关联的家庭位置或工作位置的对应地址包括:监视来自电子设备的加速度计的运动数据,并基于监视的运动数据确定电子设备未移动超过阈值量的时间(例如,用户在家中安顿下来并且有10分钟未发生移动)。这样,例如,当用户已经实际在他们的住处安顿下来,而不仅是当用户到达他们住处的车道时,设备确保已执行与所述至少一个触发条件相关联的特定动作。
[0784] 在上述方法600的一些实施方案中,该方法从获取操作606开始,并且任选地包括执行操作602和收集操作604。换句话讲,在这些实施方案中,方法600包括:获取至少一个触发条件,所述至少一个触发条件基于与电子设备的用户相关联的使用数据,该使用数据包括在电子设备上执行应用程序时由用户在应用程序内执行的一个或多个动作;将所述至少一个触发条件与用户在应用程序内执行的一个或多个动作的特定动作关联;并且在确定已经满足所述至少一个触发条件时,向用户提供指示,指示与触发条件相关联的特定动作可用。
[0785] 应当理解,对图6A至图6B中已经进行描述的操作的具体顺序仅仅是一个示例,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文参考本文所述的其他方法(例如,方法800)描述的其他过程的细节同样以类似的方式适用于上文参考图6A至图6B描述的方法600。例如,上文参考方法600描述的用户界面对象任选地具有本文参考本文所述的其他方法(例如,方法800)描述的用户界面对象的特征中的一个或多个。在一些实施方案中,第1至11部分的任何相关细节可以结合方法600用于任何合适的目的。为了简明起见,此处不再重复这些细节。
[0786] 图8A至图8B示出了根据一些实施方案的用于主动识别和显示相关内容的方法800的流程图表示。图3A至图3B、图4A至图4B、图5和图9A至图9D用于示出图8A至图8B中的方法和/或过程。在一些实施方案中,图9A至图9D中所示的用户界面被称为零关键字搜索。零关键字搜索是在无来自用户的任何输入的情况下进行的搜索(例如,搜索入口框保持空白),并且允许用户例如查看用户接下来可能(或预测)要搜索的人员、应用程序、应用程序内的动作、附近地点和/或新闻文章。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图1D中所示。
[0787] 在一些实施方案中,方法800由电子设备(例如,图1A的便携式多功能设备100)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法800由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法800。在一些实施方案中,参考图1A,方法800的操作至少部分地由以下项执行或使用以下项执行:主动模块(例如,主动模块163)、应用程序使用数据表(例如,应用程序使用数据表335)、触发条件表(例如,触发条件表402)、触发建立模块(例如,触发建立模块163-1)、使用数据收集模块(例如,使用数据收集模块163-2)、主动建议模块(例如,主动建议模块163-3)、搜索模块(例如,搜索模块151)、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块132)、一个或多个接触强度传感器(例如,接触强度传感器165)和触敏显示器(例如,触敏显示器系统112)。方法800中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
[0788] 如下所述,方法800提供了一种自动方法,该方法用于(在用户明确要求相关内容之前,例如,用户在搜索界面的搜索入口部分中输入任何文本前)在具有触敏显示器的电子设备上主动识别和显示相关内容。该方法减少了用户在访问应用程序时的认知负担,从而创建一个更有效的人机界面。
[0789] 如图8A所示,设备在触敏显示器上检测(802)搜索激活手势。例如,如图9A所示,设备检测搜索激活手势902-1(例如,接触触敏显示器,随后在显示器上沿着大体上垂直的方向(例如,向下)连续移动接触手指)。又如,同样如图9A所示,设备检测搜索激活手势902-2(例如,接触触敏表面,随后在触敏表面上沿着大体上水平的方向(例如,向右)连续移动接触手指)。在一些实施方案中,搜索激活手势可从至少两个不同的用户界面获取,并且所述至少两个不同用户界面的第一用户界面对应于在触敏显示器上显示home屏幕页面序列的相应home屏幕页面。
[0790] 在一些实施方案中,当相应的home屏幕页面是home屏幕页面序列中的第一home屏幕页面时(例如,如图9A所示),搜索激活手势包括以下中的一种:(i)相对于电子设备用户沿大体上向下方向移动的手势(例如,手势902-1),或(ii)相对用户大体上沿从左到右方向移动并大体上垂直于向下方向的连续手势(例如,手势902-2)。在一些实施方案中,当home屏幕页面是home屏幕页面序列中的第二home屏幕页面(换句话讲,不是第一home屏幕页面)时,搜索激活手势是相对电子设备用户大体上沿向下方向移动的连续手势(换句话讲,只有搜索激活手势902-1可用,并且手势902-2不可用)。
[0791] 在一些实施方案中,所述至少两个不同用户界面的第二用户界面对应于在触敏显示器上显示应用程序切换界面(例如,响应于用户双击Home按钮204)。在一些实施方案中,搜索激活手势包括在触敏显示器上接触应用程序切换页面的预定义的搜索激活部分(例如,应用程序切换页面包括搜索入口部分,所述搜索入口部分是显示在应用程序切换页面顶部的预定义的搜索激活部分(类似于图9B的搜索入口部分920))。
[0792] 响应于检测到搜索激活手势,该设备在触敏显示器上显示(804)搜索界面,该搜索界面包括(806):(a)搜索入口部分(例如,图9B所示用于从用户接收输入的搜索入口部分920,其中该输入将用作搜索查询),以及(b)在搜索入口部分接收到任何用户输入前所显示的预测部分(例如,图9B所示预测部分930)。预测部分由以下一项或多项填充:(a)用于联系多个先前联系人员中某个人员的至少一个示能表示(例如,在图9B的建议的人员940部分显示的示能表示),以及(b)用于在电子设备上可用的多个应用程序的某个应用程序(例如,“深层链接”)内执行预测的动作的至少一个示能表示(例如,图9B的建议的动作950部分)。
应用程序“内”指的是执行预测的动作的所述至少一个示能表示,表示到应用程序内的特定页面、视图或状态的链接(例如,图1B的应用程序视图191的其中一个)。换句话讲,当选中用于执行预测的动作的所述至少一个示能表示时,不仅启动应用程序并显示默认内容(或来自与应用程序先前进行的交互的内容),而是显示对应于深层链接的特定页面、视图或状态。
[0793] 在一些实施方案中,至少部分地基于当前时间从多个先前联系人员中(例如,通过设备100或主动模块163)自动选择该人员。例如,在每天下午5:30左右,当用户仍在工作地时(根据上文参照图6A至图6B的解释确定工作位置),用户向其室友发送短信,表示他们正在返回家中,因此预测部分包括与室友相关联的示能表示(例如,P-1表示室友)。
[0794] 在一些实施方案中,至少部分地基于与电子设备的用户相关联的应用程序使用历史自动选择(例如,通过设备100或主动模块163)预测的动作(例如,(图3A至图3B所示一个或多个应用程序使用表335提供的)应用程序使用历史指示,用户在每天下午2:15左右打开搜索界面(通过提供如上所述的搜索激活手势),搜索“音乐”,选择特定的音乐应用搜索结果,然后播放“散步播放列表”,因此,基于该应用程序使用历史,在搜索入口部分接收到任何用户输入之前,该预测部分包括用于开始在音乐应用内播放该播放列表的示能表示(例如,如图9B中建议的动作950部分中显示的内容所示))。在一些实施方案中,(作为应用程序使用历史的替代或补充)还至少部分地基于当前时间(例如,基于用户在通常执行预测的动作的时间左右提供搜索激活手势)选择在应用程序内执行预测的动作的所述至少一个示能表示。在一些实施方案中(如图9B所示),执行预测的动作的所述至少一个示能表示对应于用户界面对象702,并且因此以上提供的有关用户界面对象702的细节(图6A至6B和图7A至图7B)同样适用于建议的动作部分950以及其中显示的内容。
[0795] 在一些实施方案中,至少部分地基于对应于电子设备的位置数据进一步选择人员(例如,当用户早晨到达与他们工作相关联的地址时频繁联系的重要人员)。在一些实施方案中,从电子设备的存储器(例如,图1A的设备100的存储器102)中检索该人员的应用程序使用历史和联系人信息。在一些实施方案中,从远离电子设备(例如,图5的一个或多个服务器502)定位的服务器检索该人员的应用程序使用历史和联系人信息。
[0796] 在一些实施方案中,使用执行预测应用程序的所述至少一个示能表示进一步填充(808)预测部分(例如,图9B的建议的应用955部分)。在一些实施方案中,至少部分地基于应用程序使用历史自动(通过设备100)选择预测的应用程序。例如,应用程序使用历史(例如,图3A至图3B所示应用程序使用数据表335的一个内的一条或多条记录)指示当用户位于其家庭地址时,每天早上9:00左右打开日历模块143(图1A)。因此,如果当前时间为早上9:00左右,并且位置数据指示用户位于其家庭地址,建议的应用955部分将包括日历模块143的示能表示。再如,应用程序使用历史指示已连续三天在早上5:15左右启动了天气应用程序(例如,图1A的天气桌面小程序149-1),现在是早上5:17(例如,当用户使用搜索激活手势启动spotlight时的当前时间是早上5:17),因此电子设备至少部分地基于该应用程序使用历史用天气应用程序填充搜索界面,使天气应用程序作为预测部分中的预测应用程序中的一个。在一些实施方案中,预测的应用程序和预测的动作显示在单个部分中,其中预测的动作显示在预测的应用程序上方。如之前的示例所述,在一些实施方案中,(作为应用程序使用历史的替代或补充)还至少部分地基于当前时间(例如,基于用户在通常使用预测的应用程序的时间左右提供搜索激活手势)选择执行预测的应用程序的所述至少一个示能表示。
[0797] 在一些实施方案中,为了填充建议的应用955部分,设备100(或其部件诸如主动模块163)确定是否满足触发的任何先决条件(例如,存储在图4A至图4B的触发条件表402之一中的先决条件),并且根据确定满足特定触发,设备100相应地填充建议的应用955部分(例如,添加与触发相关联的应用程序对应的示能表示,诸如前述示例中的日历模块143或天气桌面小程序149-1)。在一些实施方案中,使用类似的确定过程来填充搜索界面内的其他部分(例如,部分940,950,955,960和990)(为了简洁起见,这些细节在这里不再重复)。
[0798] 在一些实施方案中,使用预测的附近地点类别进一步填充(808)预测部分(例如,图9B的建议的地点960部分),并且至少部分地基于对应于设备的当前时间和位置数据的一项或多项自动选择预测的地点(例如,附近地点)类别。例如,当前时间为早上7:30左右,位置数据指示设备在受欢迎的咖啡店(在一些实施方案中,咖啡店的受欢迎程度由与大量不同用户相关联的大量设备100上的众包使用数据确定)附近(在预先确定的距离内),并且因此,设备100使用“咖啡店”的示能表示填充建议的地点960部分。在一些实施方案中,基于当前时间使用对应于附近地点的预测搜索的信息填充建议的地点960部分(作为预测地点类别的补充或替代)。换句话讲,设备基于用户先前在当前时间附近执行的搜索(例如,在搜索模块151或浏览器模块147内进行的搜索),主动预测用户可能再次进行的搜索。例如,基于用户于先前四个场合(或一些其他阈值数量的场合)在上午7:20至上午8:00之间搜索了“咖啡”,响应于检测到搜索激活手势,设备(例如,触发建立模块163-1)使用“咖啡店”的示能表示填充建议的地点960部分。在其他实施方案中,建议的类别仅基于设备的当前位置而不基于时间。例如,显示链接到附近咖啡店的示能表示。这样,用户无需再次手动搜索“咖啡”,而是可简单地选择“咖啡店”或“餐饮”示能表示,然后快速查看所列附近咖啡店的清单。在一些实施方案中,先前的搜索历史连同一个或多个使用条目存储为其他信息(例如,图3B所示其他信息340-1(h))和/或执行过的其他动作(例如,图3B所示执行的其他动作340-1(b))。
[0799] 在一些实施方案中,设备检测滚动预测部分的用户输入(例如,图9B所示滚动手势970),并且响应于检测到滚动预测部分的用户输入,设备根据用户输入滚动预测部分(例如,向下滚动搜索界面或仅滚动搜索界面内的预测部分)。响应于滚动,设备在预测部分(例如,图9C所示建议的新闻文章990部分)显现预测新闻文章的至少一个示能表示。在一些实施方案中,至少部分地基于对应于电子设备的位置数据自动(通过设备100)选择预测的新闻文章。在一些实施方案中,无需滚动输入即显示建议的新闻文章990部分。在一些实施方案中,至少部分地基于以下项任选地选择预测的新闻文章(作为位置数据的补充或替代):
当前时间(例如,用户在当前时间(例如,用户提供搜索激活手势的时间,该手势使得设备显示具有预测部分930的搜索界面)附近已阅读过类似或相关的文章超过阈值次数(例如,三次));对应于用户的先前搜索历史(例如,用户已经搜索与预测的新闻文章类似或相关的文章超过阈值次数(例如,三次));趋势数据,该趋势数据与其他用户、用户的朋友在社交媒体诸如Twitter或Facebook等上搜索的新闻报道相关联。
[0800] 在一些实施方案中,在预测部分930中显示部分940,950,955,960和990的特定顺序是可配置的,使得用户能够为每个部分选择所需的顺序。例如,用户可以配置顺序,使得第一个显示建议的应用955部分,第二个显示建议的人员940部分,第三个显示建议的动作950部分,第四个显示建议的新闻文章990部分,最后一个显示建议的地点960部分。在一些实施方案中,预测部分930包括部分940,950,955,960和990中的任意两个。在其他实施方案中,预测部分930包括部分940,950,955,960和990中的任意三个。在本发明的其他实施方案中,预测部分930包括部分940,950,955,960和990中的任意四个。在另一个实施方案中,预测部分930包括部分940,950,955,960和990中的所有。在一些实施方案中,用户对关于应在预测部分930内显示部分940,950,955,960和990中的多少个以及显示哪几个的偏好进行配置。
[0801] 另外,在一些实施方案中,用户能够配置分配给用于填充部分940,950,955,960和990的每一者的数据(例如,当前时间、应用程序使用历史、位置数据、其他传感器数据等)的权重。例如,当确定在预测部分930的建议的人员940部分显示的示能表示时,用户对偏好进行配置,使得当前时间的权重高于位置数据的权重。
[0802] 现在转向图8B,在一些实施方案中,显示在上述部分940,950,955,960和990的每一者内的示能表示是可选的,使得用户能够选择以下项之一:建议的动作、建议的应用、建议的地点或建议的新闻文章(每个都按照顺序在下文进行讨论)。
[0803] 至于在建议的人员940部分内显示的示能表示的选择,在一些实施方案中,设备检测(810)联系该人员的所述至少一个示能表示的选择。在一些实施方案中,设备在所述至少一个示能表示上检测单个触摸输入(例如,在对应于建议的人员940部分内显示的P-1的示能表示上的单次轻击)。在一些实施方案中,响应于检测到联系该人员的所述至少一个示能表示的选择,设备使用该人员的联系人信息(例如,从以上讨论的设备或一个或多个服务器检索的联系人信息)联系该人员(或建议联系该人员的不同通信媒介,例如,短信、电子邮件、电话等)。例如,响应于在对应于P-1的示能表示上检测到单次轻击,设备向用户的室友发送短信,短信的内容是“正在回家路上”。在一些实施方案中,设备自动联系P-1,而在其他实施方案中,设备显示即时消息模块141并用消息(例如,“正在回家路上”)预先填充模块141内的界面,然后等待来自用户的请求(例如,用户的语音命令或发送按钮的选择),在收到请求后再发送消息。这样,设备用户能够方便和快速地联系该人员(例如,P-1)并且还能发送相关(或所需的)消息,而不必在搜索入口部分中输入任何文本(从而节省了时间,并且避免了用户不得不输入文本而又无法定位该人员的窘境)。
[0804] 至于在建议的动作950部分内显示的示能表示的选择,在一些实施方案中,设备检测(812)执行预测的动作的所述至少一个示能表示的选择。例如,设备在建议的动作950部分内检测单个触摸输入(例如,在音乐播放器152的图标上方的轻击或在文本“轻击以播放散步播放列表的曲目2”上的轻击)。在一些实施方案中,响应于检测到执行预测的动作的所述至少一个示能表示的选择,设备在触摸敏感显示器上显示该应用程序并且在所显示的应用程序内执行预测的动作。换句话讲,设备停止显示搜索界面(例如,具有搜索入口部分和预测部分的搜索模块151),而是启动并显示应用程序,并且在所显示的应用程序内执行预测的动作。例如,响应于在文本“轻击以播放散步播放列表的曲目2”上检测到单次轻击,设备显示音乐播放器模块152,并且通过播放散步播放列表的曲目2来执行预测的动作。这样,设备用户能够方便和快速地访问相关的(或所需的)应用程序(例如,音乐播放器)并且还能在所需应用程序内执行所需的功能,而不必在搜索入口部分中输入任何文本(从而节省了时间,并且避免了用户不得不输入文本而又无法定位音乐播放器模块的窘境)。
[0805] 至于在建议的应用955部分内显示的示能表示的选择,在一些实施方案中,设备检测(814)执行预测的应用程序的所述至少一个示能表示的选择。在一些实施方案中,设备在所述至少一个示能表示上检测单个触摸输入(例如,在浏览器应用147的图标的示能表示上的单次轻击)。在一些实施方案中,响应于检测到执行预测的应用程序的所述至少一个示能表示的选择,设备在触敏显示器上显示预测的应用程序(例如,设备停止显示具有搜索入口部分和预测部分的搜索界面,而在触敏显示器上打开并显示预测的应用程序)。例如,响应于在对应于浏览器应用147图标的示能表示上检测到单次轻击,设备显示浏览器应用147(例如,图1A所示的浏览器模块147)。这样,设备用户能够方便和快速地访问相关的(或所需的)应用程序(例如,浏览器应用程序),而不必在搜索入口部分中输入任何文本(从而节省了时间,并且避免了用户不得不输入文本而又无法定位浏览器应用程序的窘境)。
[0806] 至于在建议的地点960部分内显示的示能表示的选择,在一些实施方案中,设备检测(816)预测的地点(例如,附近地点)类别的所述至少一个示能表示的选择。在一些实施方案中,设备在所述至少一个示能表示上检测单个触摸输入(例如,在“咖啡店”的示能表示上的单次轻击)。在一些实施方案中,响应于检测到执行预测的地点类别的所述至少一个示能表示的选择,设备:(i)接收对应于至少一个附近地点的数据(例如,由地图模块154确定的所述至少一个附近地点的地址信息或GPS坐标),并且(ii)在触敏显示器上显示对应于所述至少一个附近地点的接收的数据(例如,停止显示搜索界面、启动地图模块154、显示地图模块154,该模块包括所显示地图内的用户界面元素,该元素对应于接收的数据,诸如表示所述至少一个附近地点GPS坐标的圆点)。在一些实施方案中,大体上并行地执行接收和显示步骤。例如,响应于在对应于“咖啡店”的示能表示上检测到单次轻击,设备检索附近提供咖啡的咖啡馆的GPS坐标,并且并行地显示地图模块154,并且在接收到GPS坐标之后,显示表示咖啡馆GPS坐标的圆点。这样,设备用户能够方便和快速地定位相关的(或所需的)兴趣点(例如,以上讨论的咖啡馆),而不必在搜索入口部分中输入任何文本(从而节省了时间,并且避免了用户不得不输入文本而又无法定位咖啡馆或任何咖啡店的窘境)。在一些实施方案中,上述接收数据操作在接收预测的地点类别的所述至少一个示能表示的选择之前执行(或至少部分地执行)。这样,预加载对应于附近地点的数据,并且在接收到针对预测的地点类别的所述至少一个示能表示的选择之后,快速在地图上显示该数据。
[0807] 至于在建议的新闻文章990部分内显示的示能表示的选择,在一些实施方案中,设备检测(818)预测的新闻文章的所述至少一个示能表示的选择。在一些实施方案中,设备在所述至少一个示能表示上检测单个触摸输入(例如,在图9C所示新闻1的示能表示上的单次轻击)。在一些实施方案中,响应于检测到预测的新闻文章的所述至少一个示能表示的选择,设备在触敏显示器上显示预测的新闻文章(例如,设备停止显示具有搜索入口部分和预测部分的搜索界面,而在浏览器模块147内打开并显示预测的新闻文章)。例如,响应于在对应于新闻1的示能表示上检测到单次轻击,设备在浏览器应用147(例如,图1A所示的浏览器模块147)内显示对应于新闻1的新闻文章。这样,设备用户能够方便和快速地访问相关的(或所需的)新闻文章(例如,浏览器应用程序),而不必在搜索入口部分中输入任何文本(从而节省了时间,并且避免了用户不得不输入文本而又无法定位预测的新闻文章的窘境)。
[0808] 在一些实施方案中,基于以下参考第1至11部分所讨论的技术选择包括在搜索界面中的预测/建议的内容项(例如,结合方法600和800,或本文讨论的任意其他方法)。
[0809] 应当理解,对图8A至图8B中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文参考本文所述的其他方法(例如,方法600)描述的其他过程的细节同样以类似的方式适用于上文参考图8A至图8B描述的方法800。例如,上文参考方法800描述的用户界面对象任选地具有本文参考本文所述的其他方法(例如,方法600)描述的用户界面对象的特征中的一个或多个。在一些实施方案中,第1至11部分的任何相关细节可以结合方法800用于任何合适的目的。为了简明起见,此处不再重复这些细节。
[0810] 图10A至图10C示出了根据一些实施方案基于当前电子设备上显示的内容主动建议搜索查询的方法1000的流程图表示。图11A至图11J用于示出图10A至图10C中的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图1D中所示。
[0811] 在一些实施方案中,方法1000由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法1000由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法1000。在一些实施方案中,参照图1A,方法1000的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块132)和触敏显示器(例如,触敏显示器系统112)。方法1000中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
[0812] 如下所述,方法1000提供了一种直观的方式以在具有触敏显示器的电子设备上主动建议相关内容(例如,建议的搜索查询)。该方法需要更少的触摸输入以在电子设备上执行搜索(例如,用户仅需选择建议的搜索查询,而不需要键入任何文本),从而创建更有效的人机界面并允许用户快速执行相关搜索。通过提供建议的搜索查询,方法1000还有助于确保用户知晓设备上的主动助理可用,以帮助更快地执行动作(从而提高用户对其设备的满意度)。对于电池驱动的电子设备,方法1000既节省电力又增加了电池两次充电之间的时间间隔。
[0813] 如图10A所示,设备在显示器上显示(1002)与正在电子设备上执行的应用程序相关联的内容。例如,如图11A所示,触摸屏112上显示与正在电子设备100上执行的电子邮件应用程序相关联的内容。该内容至少包括发件人姓名和/或电子邮件地址(例如“发件人:John Applecore”),主题文本(例如,“下一个目的地是哪里?”)和电子邮件正文。在一些实施方案中,电子邮件的正文可以包括图像1108和/或文本1110。
[0814] 在显示应用程序时,设备通过触敏表面检测(1004)轻扫手势,当检测到该手势时,将使电子设备进入不同于该应用程序的搜索模式。在一些实施方案中,检测轻扫手势包括(1006)在当前显示的内容的至少一部分上检测轻扫手势。在一些实施方案中,轻扫手势用于调用应用程序上的搜索界面(例如,诸如图11B所示)。在一些实施方案中,轻扫手势是在应用程序上接收的第一轻扫手势,并且不在与应用程序相关联的内容中包括的任何用户界面字段内接收该手势(例如,第一轻扫手势不是在应用程序中可能显示的搜索框内的轻击)。在一些实施方案中,第一轻扫手势使得电子设备进入不同于该应用程序的电子设备的搜索模式,该搜索模式包括显示搜索界面(例如,诸如图11B和图11D、图11F至图11J所示的搜索界面,并在下文更详细地讨论)。
[0815] 在一些实施方案中,通过在触敏显示器上向下轻扫(并且移动至少阈值距离(例如,2、3、4cm))可在任何时间提供第一轻扫手势(例如,图11A和图11E分别所示的向下轻扫1102-1和1102-3)。在一些实施方案中,在触敏显示器上当前显示应用程序时检测轻扫手势(例如,上文所述的第一轻扫手势),并且在当前为应用程序显示的内容的顶部检测该轻扫手势。例如,在图11A和图11E中,在当前显示电子邮件应用程序时,在电子邮件内容的顶部检测向下轻扫手势1102-1和1102-3。
[0816] 在一些实施方案中,同样使设备进入搜索模式的第二轻扫手势在稍后可用(例如,退出应用程序后)。在一些实施方案中,在检测轻扫手势之前,设备检测(1008)与查看电子设备home屏幕的请求相对应的输入,并且响应于检测到该输入,设备停止显示与应用程序相关联的内容并显示电子设备的home屏幕的相应页面。在一些实施方案中,所述相应页面是home屏幕页面序列中的初始页面(例如,home屏幕页面序列中的第一页面),并且在显示器上显示home屏幕的初始页面时检测轻扫手势(例如,第二轻扫手势)。
[0817] 例如,如图11A和图11E所示,在显示应用程序时,用户通过轻击1106设备的物理Home按钮204退出应用程序并切换到查看图11C所示的home屏幕。在图11C中,通过突出显示home屏幕页面指示符的第一点1112-1而不突出显示home屏幕的其余点1112-2,指示显示home屏幕的第一页面。在查看home屏幕的第一页面时,用户能够通过沿着大体上水平的方向轻扫提供第二轻扫手势(例如,图11E中所示从左向右的轻扫手势1104-1)。响应于接收到第二轻扫手势,电子设备进入搜索模式,该模式包括在触敏显示器上显示搜索界面(如下文参照图11D更详细的讨论)。
[0818] 响应于检测到轻扫手势,设备进入(1010)搜索模式,搜索模式包括显示在显示器上的搜索界面。示例性搜索界面如图11B和图11D所示。在一些实施方案中,搜索界面被显示(1012)为半透明地覆盖应用程序,例如图11B中的搜索界面1115。在一些实施方案中,搜索界面被显示为半透明地覆盖应用程序(例如,图11B中所示的搜索界面1115)。在一些实施方案中,逐渐显示搜索界面1115,使得播放搜索界面1115的动画,例如从一侧淡入和/或切换。在图11B中,搜索界面1115被显示为半透明地覆盖在电子邮件应用程序上,使得在触敏显示器112上,电子邮件应用程序部分可见地位于搜索界面1115下方。在一些实施方案中,响应于上述第二轻扫手势,如图11G至图11J所示,搜索界面被显示为半透明地覆盖home屏幕。
[0819] 在一些实施方案中,搜索界面还包括(1014)一个或多个趋势查询,例如由与用户相关联的社交网络的成员执行的一个或多个趋势术语。在一些实施方案中,所述一个或多个趋势查询包括基于以下项的趋势术语:(i)流行的新闻条目,(ii)电子设备的当前位置(例如,如果用户访问其住处以外的位置(诸如东京),并且/或者(iii)已知的游客感兴趣的项目等。例如,趋势搜索1160在图11B和11D中示出为可选的,并且所述一个或多个趋势术语包括:例如“巴塔哥尼亚”、“厄瓜多尔”、“瑞尼尔山”等。在一些实施方案中,搜索界面还包括趋势GIF(例如,基于激发人们分享GIF欲望的感情性质的术语,诸如“恭喜!”)。
[0820] 结合进入搜索模式,设备至少部分地基于与内容相关联的信息来确定(1018)所述至少一个建议的搜索查询。在一些实施方案中,当播放搜索界面1115的动画时(例如,随着搜索界面1115逐渐显现)进行此项确定。在其他实施方案中,在接收轻扫手势之前进行此项确定。
[0821] 在一些实施方案中,根据确定该内容包括文本内容,设备至少部分地基于文本内容确定(1022)所述至少一个建议的搜索查询。在一些实施方案中,至少部分地基于文本内容确定所述至少一个建议的搜索查询包括(1024):分析文本内容以检测用于确定所述至少一个建议搜索查询的一个或多个预定义关键字。在一些实施方案中,所述一个或多个预定义的关键字存储在电子设备上存储的一个或多个数据结构中,包括具有针对预定义关键字的至少150,000个条目的第一数据结构。这样,设备包括多个通用术语,可以在内容中快速检测这些术语并在随后将其作为建议的搜索查询提供给用户,并且完成这一切不需要用户在搜索界面进行任何输入。在一些实施方案中,所述一个或多个数据结构的第二数据结构与上下文工具包相关联,该上下文工具包利用第二数据结构识别内容的上下文,然后至少部分地基于所识别的内容的上下文识别所述至少一个建议的搜索查询。在一些实施方案中,第二数据结构是设备上索引(诸如特定于电子设备的维基百科索引)。在一些实施方案中,使用第一数据结构和第二数据结构的两者来确定建议的搜索查询,然后将建议的搜索查询聚合并呈现给用户(例如,在接收任何用户输入之前,在搜索界面内)。在一些实施方案中,利用第一数据结构和第二数据结构的两者还允许电子设备帮助区分名称相同但地址/电话不同的商家。
[0822] 例如,在图11A中,与电子邮件应用程序相关联的内容包括文本内容,诸如发件人和/或接收人信息、主题行和电子邮件正文中的文本“我爱厄瓜多尔!”等。设备至少部分地基于文本内容,确定至少一个建议的搜索查询并如图11B所示显示搜索结果,例如,厄瓜多尔、John Applecore、导游服务、卡扬贝火山、安蒂萨纳火山等。术语“厄瓜多尔”可以是作为第一数据结构中条目一部分存储在电子设备上的预定义关键字,同时在利用第一数据结构的同时,可以使用第二数据结构基于内容的上下文来识别其他条目。
[0823] 在一些实施方案中,确定所述至少一个建议的搜索查询包括(1026)确定多个建议的搜索查询,并且填充搜索界面包括用所述多个建议的搜索查询填充搜索界面。如图11B所示,建议的搜索1150中显示一个建议的搜索查询“厄瓜多尔”。任选地,如图11B中的虚线所示,在建议的搜索1150部分中,除了“厄瓜多尔”外,还显示多个建议的搜索查询,例如“John Applecore”、“导游服务”、“卡扬贝火山”和“安蒂萨纳火山”等。
[0824] 在一些实施方案中,结合进入搜索模式,设备通过使用电子设备上可用的一个或多个辅助功能(在显示搜索界面之前和/或之后)获取(1036)与该内容相关联的信息。在一些实施方案中,电子设备的操作系统无法直接访问(或了解)电子设备上的一些应用程序(例如,由操作系统提供商以外的公司开发的第三方应用程序)当前所显示的内容。因此,操作系统通过使用API(例如,辅助功能API)和电子设备上可用的其他功能来获取关于内容的信息,并允许操作系统了解有关在第三方应用程序内显示的内容。
[0825] 在一些实施方案中,使用一个或多个辅助功能包括(1038)使用一个或多个辅助功能来生成与内容相关联的信息,方法是:(i)将自然语言处理算法应用于当前在应用程序中显示的文本内容;以及(ii)使用从自然语言处理算法获取的数据确定描述该内容的一个或多个关键字,并且其中基于所述一个或多个关键字确定所述至少一个建议的搜索查询。(例如,用于提供诸如VoiceOver、Dictation和Speak Screen功能的自然语言处理算法,这些功能可用作电子设备上的所述一个或多个辅助功能)。在一些实施方案中,与内容相关联的信息包括从当前在应用程序中显示的内容中提取的信息,包括(例如,使用上述自然语言处理算法提取的)姓名、地址、电话号码、即时消息处理和电子邮件地址。
[0826] 在一些实施方案中,确定描述该内容的所述一个或多个关键字还包括(1040):(i)检索与当前在应用程序中显示的非文本内容相对应的元数据,以及(ii)除从自然语言处理算法获取的数据外,还使用检索的元数据确定一个或多个关键字。非文本内容的示例是在应用程序内显示的图像(例如,图11A中的图像1108和图11E中的一个或多个图像1114)。在一些实施方案中,一个或多个信息标签(诸如HTML标签、CSS描述符和其他类似元数据)与图像相关联,并且可用于帮助所述一个或多个辅助功能了解图像(例如,信息标签的其中一个可描述图像的类型并且/或者提供关于图像中显示的内容的细节)。
[0827] 在一些实施方案中(特别是当在应用程序中仅显示非文本内容时),不使用自然语言处理算法,而是仅使用所检索的元数据来确定所述一个或多个关键字。在一些实施方案中,先前在应用程序中提供的来自用户的输入还用于帮助确定所述一个或多个关键字。例如,用户搜索特定的餐厅名称以定位地址,并且/或者还可以使用该餐厅的电话号码和名称(例如,即使应用程序中当前并为显示该餐厅名称并且该餐厅名称仅用作较早前的输入或搜索查询)来帮助确定描述该内容的所述一个或多个关键字。
[0828] 转向图10C,在搜索界面处接收到任何用户输入之前,设备使用所述至少一个建议的搜索查询填充(1020)显示的搜索界面。在一些实施方案中,搜索界面包括搜索入口部分(例如,位于图11B、图11D和图11F至图11J所示搜索界面1115顶部的搜索入口部分1120)和搜索结果部分(例如,位于图11B、图11D和图11F至图11J所示搜索入口部分1120正下方的搜索结果部分1130),并且所述至少一个建议的搜索查询显示在搜索结果部分内。例如,在图11B中,建议的搜索1150包括至少一个建议的搜索查询,例如“厄瓜多尔”、“John Applecore”、“导游服务”、“卡扬贝火山”、“安蒂萨纳火山”,并且所述至少一个建议的查询显示在搜索结果部分1130中。
[0829] 在一些实施方案中,在显示home屏幕的任何页面的同时上述第一轻扫手势可用。例如,除了能够在应用程序上使用第一轻扫手势1102-1进入图11A和图11B所示的搜索模式外,用户还可以在home屏幕的任意页面上使用第一轻扫手势进入搜索模式。在图11C中,响应于大体上沿垂直方向(例如,向下)的轻扫1104-2,设备进入搜索模式并显示如图11D所示的搜索界面1105。这样,任何时候用户选择进入搜索模式,向用户呈现与应用程序中最近查看的内容相关的相关搜索查询。尽管图11C示出了在home屏幕的第一页面上检测轻扫手势
1104-2(所述第一页面通过突出显示home屏幕页面指示符的第一点1112-1,而不突出显示home屏幕页面指示符的其余点1112-2来指示),但可以在home屏幕的任意页面上检测轻扫手势1104-2,例如,在home屏幕页面的初始页面以外的页面上检测轻扫手势,其中突出显示其余点1112-2的其中一个,而第一点1112-1则不突出显示。
[0830] 在一些实施方案中,设备通过触敏表面在当前显示的新内容上检测(1028)轻扫手势。响应于检测到新的轻扫手势,设备进入搜索模式。在一些实施方案中,进入搜索模式包括在显示器上显示搜索界面。结合进入搜索模式并根据确定新内容不包括文本内容,在一些实施方案中,设备使用建议的搜索查询填充搜索界面,其中建议的搜索查询基于来自电子设备用户的一组选择的历史搜索查询。
[0831] 例如,在查看如图11A所示的电子邮件内容并退出搜索界面后,用户查看了瑞尼尔山1114-2(图11E)的图片和厄瓜多尔1114-1(图11E)的图片。两个图像均不包括文本内容。随后,如图11E所示,检测到新的轻扫手势1102-3。响应于检测到新的轻扫手势1102-3,设备进入搜索模式并在显示器上显示如图11F所示的搜索界面1115。在图11F中,“瑞尼尔山”显示为历史搜索查询,并显示在最近的搜索1155部分中。
[0832] 在一些实施方案中,搜索界面与兴趣点一起显示(1130),兴趣点基于不同于该应用程序的第二应用程序提供的位置信息。例如,继续上述示例,基于与图像相关联的标签和/或元数据,通过第二应用程序诸如成像应用程序获取瑞尼尔山的位置信息。。如图11F所示,响应于新的轻扫手势1102-3(图11E),如图11F所示,搜索界面1115在建议的地点部分1154中显示兴趣点瑞尼尔山1157-1。
[0833] 在一些实施方案中,兴趣点的显示不仅响应于非文本内容上的新的轻扫手势。可以响应于文本内容上的新的轻扫手势显示兴趣点。例如,在用户正在第一应用程序(诸如YELP应用程序)中搜索餐厅的场景中,用户在随后切换到文本消息应用程序(例如,应用程序),然后用户在文本消息应用程序上提供轻扫手势,作为响应,设备基于用户早期与第一应用程序的交互预先填充搜索界面以包括兴趣点(例如,图11F所示美味寿司1157-2)并将其作为建议的搜索查询。
[0834] 在一些实施方案中,搜索界面还包括(1032)一个或多个建议的应用程序。建议的应用程序是基于与用户相关联的应用程序使用历史预测为电子设备用户感兴趣的应用程序(以上参照图3A和图3B讨论了应用程序使用历史)。在一些实施方案中,至少部分地基于最近搜索查询的频率(例如,基于用户进行每个历史搜索查询的时间和频率)选择该组历史搜索查询。例如,如图11D所示,基于应用程序使用历史,在建议的应用1162部分中向用户建议健康242、图书242、地图236应用程序。可以至少部分地基于最近搜索查询的频率选择这些应用程序建议。在一些实施方案中,预测为用户感兴趣的应用程序是电子设备上尚未安装的应用程序。尚未安装的应用程序237的名称与其他建议的应用程序显示在一起,并提供该应用程序的安装链接。
[0835] 在一些实施方案中,显示一个或多个建议的应用程序不仅响应于在非文本内容上的新的轻扫。例如,如图11D和图11E所示,响应于在home屏幕上检测到轻扫手势1104-2(例如,在home屏幕的任意页面上),建议的应用1155任选地显示在搜索界面1115的搜索结果部分1130中。
[0836] 尽管图11B、图11D和图11F示出了将建议的搜索结果分类并在搜索界面1115的不同部分显示建议的搜索,但是向用户示出了其他显示形式。例如,建议的搜索结果可以混合。如图9D所示,兴趣点、建议的地点、最近搜索和建议的应用程序一起显示在“我的位置和最近浏览”中。在一些实施方案中,根据一组预定义的规则执行建议搜索的混合。例如,来自建议搜索来源的每一者的搜索结果发现的最大数量存在限制(例如,8个)。使用预先确定的优先顺序来确定建议搜索的顺序(例如,关联性、历史,以及卸载的hero资产)。在另一个示例中,预先确定的一组规则包括:(i)对于每种类型的建议搜索结果,其具有某个位置,并且具有最大数量限制;(ii)对于某些类型的建议搜索结果(例如,尚未安装的应用程序),混合结果中此类结果具有最大数量限制(例如,每种只能有1个);(iii)或者,对于历史结果,则取决于用户。例如,在一些实施方案中,至少部分地基于最近搜索查询的频率选择(1034)该组历史搜索查询。(例如,基于用户进行每项历史搜索查询的时间和频率)。
[0837] 在一些实施方案中,响应于搜索激活手势,仅显示预测为用户最感兴趣的一个或多个建议的应用程序。例如,如图11G-11J所示,响应于接收到搜索激活手势(例如,图11C中的轻扫1104),设备进入搜索模式并在触敏显示器上显示半透明搜索界面。搜索界面包括搜索入口部分1120和搜索结果部分1130。例如,如图11G所示,建议应用程序被预测为用户最感兴趣的应用程序。多个应用程序显示在搜索结果部分1130中。
[0838] 在一些实施方案中,建议的应用程序使用位置信息来建议预测为用户所最感兴趣的内容。例如,在图11H中,“找到我的车”应用程序被预测为用户所最感兴趣的。在搜索结果部分1130中,显示“找到我的车”应用程序的用户界面。应用程序使用用户的位置信息在地图上显示一个大头针,并显示用户与通过圆点指示的汽车的相对位置。在另一个示例中,基于用户的位置和/或上述其他信息(例如,使用数据、文本内容和/或非文本内容等),显示附近兴趣点的应用程序被预测为用户所最感兴趣的。在图11I中,搜索结果部分1130包括兴趣点,例如,“餐饮”类别中名为“Go Japanese Fusion”的餐厅。“餐饮”类别如图以双圆突出显示,附近的餐厅“Go Japanese Fusion”基于用户的位置信息和餐厅的位置进行定位。在另一个示例中,如图11J所示,“餐饮”类别中的多个兴趣点被预测为用户所最感兴趣的,并且显示餐饮类别内的这些兴趣点,例如Caffe Macs、Out Steakhouse和Chip Mexican Grill,同时突出显示“餐饮”类别。
[0839] 应当理解,对图10A至图10C中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法600和方法800)所述的其他过程的细节同样以类似的方式适用于上文结合图10A至图10C所述的方法1000。例如,上文参考方法1000描述的用户界面对象(例如,显示在搜索界面内的用户界面对象)任选地具有本文参考本文所述的其他方法(例如,方法600和方法800)描述的用户界面对象的特征中的一个或多个。在一些实施方案中,方法1000的方面任选地由以下讨论的方法1200的方面互换或补充(反之亦然)。在一些实施方案中,第1至11部分的任何相关细节可以结合方法1000用于任何合适的目的。为了简明起见,此处不再重复这些细节。
[0840] 图12示出了根据一些实施方案的进入搜索模式的方法1200的流程图表示。图13A至图13B用于示出图12的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图1D中所示。
[0841] 在一些实施方案中,方法1200由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法1200由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法1200。在一些实施方案中,参照图1A,方法1200的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块132)和触敏显示器(例如,触敏显示器系统112)。方法1200中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
[0842] 如下所述,方法1200提供了一种响应于接收到手势,在电子设备上主动建议相关内容(例如,建议的搜索查询或示能表示,其具有与用户当前位置相关联的内容)的直观方式。该方法允许用户通过最少数量的用户输入高效地识别和选择所需内容,从而创建更有效的人机界面(例如,设备为附近兴趣点提供建议的搜索查询和内容,并且用户仅需选择这些建议的搜索查询和内容,而不必搜索和定位它们)。对于电池驱动的电子设备,更快且更有效地识别和显示相关内容节省了功率并且增加了电池充电之间的时间。
[0843] 如图12所示,设备通过触敏表面在用户界面上检测(1202)轻扫手势。在一些实施方案中,当检测到轻扫手势时将使电子设备进入搜索模式。响应于检测到轻扫手势,设备进入搜索模式。在一些实施方案中,进入搜索模式包括:在搜索界面内接收到任何用户输入前(例如,未在搜索界面内的搜索框中输入文本、搜索框内未接收到输入(未在搜索框内进行轻击)等),使用第一内容项填充不同于用户界面的搜索界面。
[0844] 在一些实施方案中,根据确定用户界面包括与某个应用程序相关联的内容,其中该用户界面不同于包括用于调用应用程序的可选图标的home屏幕(并且因此,在应用特定的内容上检测到轻扫手势),设备使用第一内容项填充搜索界面包括使用至少一个建议的搜索查询填充搜索界面,其中该搜索查询至少部分地基于与该应用程序相关联的内容。例如,如上文参照图11A至图11B所述,响应于具有“John Applecore”、厄瓜多尔图像和/或“我爱厄瓜多尔”文本(图11A)等内容的电子邮件应用程序上的轻扫手势1102,搜索界面1115被填充(图11B)。搜索界面1115至少部分地基于与电子邮件应用程序相关联的内容,包括至少一个建议的搜索查询,例如“厄瓜多尔”、“John Applecore”。在另一个示例中,如上文参照图11E至图11F所述,响应于具有厄瓜多尔和/或瑞尼尔山图像(图11E)内容的图像应用程序上的轻扫手势1102,搜索界面1115被填充(图11F)。搜索界面1115至少部分地基于图像内容包括至少一个建议的搜索查询,例如“厄瓜多尔”、“瑞尼尔山”。
[0845] 在一些实施方案中,根据确定用户界面与home屏幕的页面相关联(例如,图11C所示在初始home屏幕页面上的轻扫手势),使用第一内容项填充搜索界面包括使用示能表示填充搜索界面,该示能表示包括对电子设备当前位置的阈值距离内的至少一个兴趣点的可选描述。例如,当设备接近带餐厅的商场时,将显示关于这些餐厅的信息而不是建议的搜索查询,因为基于用户与商场的接近程度,关于餐厅的信息被预测为用户所最感兴趣的。在以上参照图11I和图11J解释的示例中,响应于在home屏幕上检测到轻扫手势1104(图11C),在搜索界面的搜索结果部分1130中显示至少一个附近兴趣点,例如,“Go Japanese Fusion”餐厅(图11I)、“Caffe Macs”、“Out Steakhouse”、“Chip Mexican Grill”(图11J),而不显示如图11D所示的建议的搜索查询界面。在图11I和图11J中,每个兴趣点包括示能表示,并且包括可选描述,当选中时将提供关于该兴趣点的更多信息,例如,选择图标和/或兴趣点的描述将提供更多描述、价格、菜单和/或距离信息。
[0846] 在一些实施方案中,有关使用建议搜索查询还是附近兴趣点的示能表示填充搜索界面的判定除此之外或另选地基于自显示应用程序内容起是否经过了预先确定的时间段。例如,根据确定(i)在home屏幕页面上检测到轻扫手势(例如,在内容上检测到轻扫手势),以及(ii)自显示与应用程序相关联的内容以来的时间段低于阈值时间段,仍然使用所述至少一个建议的搜索查询填充搜索界面。因此,在这样的实施方案中,确定未在内容上检测到轻扫手势包括:确定自显示该内容以来的时间段达到或超过阈值时间段(例如,在很长一段时间2分钟、3分钟以前查看内容),则设备确定用户不太可能对基于该内容的建议的搜索查询感兴趣,而是使用包括所述至少一个兴趣点的可选描述的示能表示来填充该搜索界面。
这样,如果设备确定最近显示了与该应用程序相关联的内容,则仍然向用户提供建议的搜索查询。
[0847] 在一些实施方案中,使用示能表示填充搜索界面包括(1204)显示搜索界面的搜索入口部分。在一些实施方案中,设备在搜索入口部分检测(1206)输入;并且响应于在搜索入口部分检测到输入(例如,在其中轻击),电子设备停止显示示能表示并在搜索界面内显示所述至少一个建议的搜索查询。例如,如图13A所示,搜索界面包括搜索入口部分1120和搜索结果部分1130,搜索结果部分具有至少一个附近兴趣点的示能表示(例如,图13A所示附近餐厅)。在显示具有附近兴趣点的搜索界面时,在搜索入口部分1120检测输入1302,例如,如图13A所示,输入1302为用户在搜索框内的轻击。响应于检测到输入1302,在图13B中,设备停止显示与附近兴趣点相关联的所述至少一个示能表示,并在搜索结果部分1130中显示建议的搜索查询,例如,厄瓜多尔、雷尼尔山、美味寿司等。因此,设备能够在建议的搜索查询和建议的兴趣点之间快速切换(在该示例中,用户在搜索框内轻击,指示他们对建议的兴趣点不感兴趣,并且因此,设备尝试提供不同类型的建议内容,例如,基于先前在其他应用程序中查看的内容的建议搜索查询)。
[0848] 以下参照图16A至图16B和图17A至图17E提供关于所述至少一个兴趣点的可选描述的更多细节。以上参照图10A至图10C和图11A至图11J提供关于使用所述至少一个建议的搜索查询填充搜索界面的更多细节。
[0849] 应当理解,对图12中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法600,800,1000)所述的其他过程的细节同样以类似的方式适用于上文结合图12所述的方法1200。例如,上文参考方法1200描述的用户界面对象和/或操作任选地具有本文参考本文所述的其他方法(例如,方法600,800和1000)描述的用户界面对象和/或操作的特征中的一个或多个。在一些实施方案中,第1至11部分的任何相关细节可以结合方法1200用于任何合适的目的。为了简明起见,此处不再重复这些细节。
[0850] 图14示出了根据一些实施方案在具有触敏显示器的电子设备上主动提供车辆位置信息的方法1400的流程图表示。图15A至图15B用于示出图14的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图1D中所示。
[0851] 在一些实施方案中,方法1400由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法1400由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法1400。在一些实施方案中,参照图1A,方法1400的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块132)、一个或多个位置传感器(例如,加速度计168、磁力计和/或GPS接收器)和触敏显示器(例如,触敏显示器系统112)。方法1400中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
[0852] 如下所述,当用户立即需要该信息时,方法1400提供了一种直观的方式来主动提供位置信息。该方法通过主动提供车辆位置信息而不需要用户亲自尝试定位该信息,并在确定用户返回到停放的车辆时提供信息,从而创建更有效的人机界面。对于电池驱动的电子设备,方法1400既节省电力又增加了电池两次充电之间的时间间隔。
[0853] 如图14所示,在无来自用户的指令情况下,设备自动地执行(1402)以下所述步骤1404和1406。在步骤1404中,设备确定电子设备用户位于停留在某个地理位置的车辆内。
[0854] 在一些实施方案中,确定车辆已停留在某个地理位置包括:确定电子设备已经在该地理位置处停留超过某个阈值时间周期,例如,设备在以超过阈值速度的速度移动后停留在一个地点约2分钟,因此这表明车辆现在已停放。在一些实施方案中,确定车辆已停留在某个地理位置包括:确定电子设备和车辆之间的通信链路已经断开,例如,设备失去与车辆的蓝牙连接和/或用户拆下用于连接设备和车辆的电缆等,从而提供车辆已停止和/或车辆发动机已关闭的指示。在一些实施方案中,确定车辆已停留在某个地理位置包括:确定该地理位置对应于停车场内的某个位置,例如,将当前GPS坐标插入(或发送到)地图应用程序中以确定该地理位置是否在停车场内。
[0855] 在一些实施方案中,为了确定车辆是否已停留在该地理位置处,仅进行上述确定的一个或多个,在其他实施方案中,执行所述确定的两个或更多个,而在其他实施方案中,执行全部三个确定以评估车辆是否停留在该地理位置处。例如,在一些实施方案中,确定用户处于停留在该地理位置处的车辆中包括:(i)通过确定电子设备如上所述正在以超过阈值速度的速度移动确定用户位于车辆内(ii)通过以下一项或多项确定车辆已经停留在该地理位置处:(a)确定电子设备已经在该地理位置处停留超过如上所述某个阈值时间周期,(b)确定电子设备与车辆之间的通信链路如上所述已断开,以及(c)确定该地理位置对应于如上所述停车场内的某个位置。
[0856] 在步骤1406中,设备进一步确定用户是否已经离开车辆。在一些实施方案中,设备通过确定其当前位置距离该地理位置超出阈值距离来进行该确定。在一些实施方案中,设备通过确定用户已经物理地断开了设备与车辆的连接,或用户已经断开了设备和车辆之间的无线连接(例如,基于蓝牙或WiFi的连接)进行该确定。以下就确定用户已离开位于该地理位置处的车辆(具有足够高的置信度)提供了更多细节。
[0857] 在确定用户已经离开位于该地理位置处的车辆时,设备确定(1408)从位置传感器检索的用以识别地理位置的定位信息是否满足准确度标准。在一些实施方案中,准确度标准包括当与定位信息相关联的GPS读数准确度高于准确度的阈值水平(例如,10米或更小的圆形误差概率)时所满足的标准。
[0858] 在确定定位信息不满足准确度标准(1408–否)时,设备向用户提供(1410)输入关于该地理位置的信息的提示,并且响应于提供该提示,设备从用户接收关于该地理位置的信息并将该信息存储为车辆位置信息。在一些实施方案中,提示是由可通过电子设备使用的虚拟助理提供的音频提示。当提示是音频提示时,从用户接收信息包括从用户接收识别该地理位置的口头描述。在一些实施方案中,来自虚拟助理的提示指示用户拍摄位于该地理位置处的车辆的照片和/或拍摄车辆周围区域的照片。在一些实施方案中,指示用户提供该地理位置的口头描述。
[0859] 在一些实施方案中,在确定定位信息满足准确度标准(1408-是)时,在无来自用户的指令情况下,设备自动将定位信息存储(1412)为车辆位置信息。在一些实施方案中,如果定位信息足够准确(例如,满足准确度标准),则不向用户提供提示。在其他实施方案中,即使定位信息足够准确,设备仍然提示用户提供有关该地理位置的附加细节(口头、文本,或按照上文参照操作1410的解释进行拍照),以便保存这些附加细节并在例如用户返回车辆而设备又没有较强的GPS信号时呈现给用户。
[0860] 在一些实施方案中,设备进一步确定(1414)用户是否正在前往该地理位置。在一些实施方案中,确定用户是否正在前往该地理位置包括:使用从位置传感器接收的新的定位信息来确定电子设备正在向该地理位置移动。在一些实施方案中,确定用户是否正在前往该地理位置包括:(i)确定电子设备在另一个地理位置(例如,在与购物中心、餐厅、已知的用户家庭地址或工作地址相关联的位置/地点等)处停留超过阈值时间周期;以及(ii)确定新的定位信息表明电子设备正在离开另一个地理位置并向该地理位置移动。在一些实施方案中,除此之外或另选地,设备将拍摄的该地理位置的图片与用户当前位置的图像进行比较,以便确定用户是否正在前往该地理位置(例如,通过识别图像中的共同或重叠视觉元素)。在一些实施方案中,除此之外或另选地,设备检测到用户正在访问设置用户界面,该用户界面允许用户建立或搜索与车辆的数据连接,并且以这种方式,设备收到用户正在前往该地理位置的提示。
[0861] 在一些实施方案中,根据确定用户正前往该地理位置,设备显示包括车辆位置信息的用户界面对象。在一些实施方案中,用户界面对象是包括用户当前位置标识符和地理位置的单独标识符的地图对象。例如,如图15A所示,搜索用户界面包括搜索入口部分1120和搜索结果部分1130,搜索结果部分是地图对象,包括由圆点标识的地理位置处的车辆位置信息、位置标签“Infinite Loop2“和由大头针单独标识的用户当前位置。
[0862] 在一些实施方案中,用户界面对象显示在电子设备的锁定屏幕上。例如,如图15B所示,地图对象显示在锁定屏幕上。因此,在无来自用户的指令情况下,设备基于相对准确的位置信息预测搜索汽车被预测为用户所感兴趣的,并且提供指示汽车位置的地图,而无需用户解锁电子设备。
[0863] 在一些实施方案中,响应于使得电子设备进入搜索模式的轻扫手势,显示用户界面对象。在一些实施方案中,响应于接收到相同的轻扫手势,执行确定,确定用户是否正在前往该地理位置。因此,相同的轻扫手势使得设备确定用户是否正在前往该地理位置,并基于相对准确的位置信息显示该用户界面对象。
[0864] 在一些实施方案中,搜索模式包括显示经过预先填充以包括用户界面对象(例如,包括对应于该地理位置的标识符的地图对象)的搜索界面。换句话讲,在搜索界面内从用户接收到任何用户输入之前(例如,在用户输入任何搜索查询之前),填充搜索界面以包括地图对象,使得向用户提供视觉提醒的快速访问,该视觉提醒为关于其停车处的地理位置的提醒(例如,图15A所示用户界面对象1130或用户界面对象1525或两者)。在一些实施方案中,轻扫手势大体上沿从左到右的方向,并且在电子设备显示home屏幕的初始页面时由用户提供轻扫手势(例如,图11C中的1104-1)。在一些情况下,轻扫手势大体上沿向下的方向,并且在查看与应用程序相关联的内容时由用户提供(例如,图11A和图11E中的1102)。
[0865] 在一些实施方案中,结合确定用户正在前往该地理位置(如上文参照操作1414所讨论的),设备还确定与电子设备的位置传感器相关联的当前GPS信号是否足够强以允许设备提供返回该地理位置的精确路线,并且根据确定该GPS信号不够强,该设备提供来自用户的定位信息和附加细节的两者,使得用户可以依靠这两条信息来帮助定位他们停放的车辆。
[0866] 在一些实施方案中,提示是由可通过电子设备使用的虚拟助理提供的音频提示(如上文参照操作1410所讨论的),从用户接收信息包括从用户接收标识该地理位置的口头描述,并且显示用户界面对象包括显示可选的示能表示(例如,图15A至图15B所示示能表示1502),当选中该示能表示时将使设备回放口头描述。在一些实施方案中,来自虚拟助理的提示指示用户拍摄位于该地理位置处的车辆的照片和/或拍摄车辆周围区域的一个或多个照片/视频,并且显示用户界面对象包括显示可选示能表示(例如,图15A至图15B所示示能表示1502),当选中该示能表示时将使设备回放记录的媒体。在一些实施方案中,可选示能表示邻近地图对象显示(如示能表示1502所示),而在其他实施方案中,可选示能表示单独显示(特别是在定位信息不满足准确度的情况中,这种其他显示形式的一个示例是图15A至图15B所示的示能表示1535)。在一些实施方案中(根据是否已提供用户提供的位置信息以外的定位信息),一旦确定用户正在前往其停放的车辆,则显示示能表示1130和1535中的一者或两者。
[0867] 在一些实施方案中,用户界面对象/示能表示(例如,1130、1535或两者)包括到停放的车辆的估计距离(例如,用户界面对象1130在右上角包括“0.3英里”)。
[0868] 在一些实施方案中,该提示显示在电子设备的显示器上,从用户接收信息包括从用户接收识别该地理位置的文本描述,显示用户界面对象包括显示来自用户的文本描述。在其他实施方案中,显示允许用户访问文本描述的可选示能表示。例如,响应于选择示能表示1535(图15A至图15B),设备打开包括来自用户的文本描述的记事本应用程序。
[0869] 应当理解,对图14中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法600,800,1000和1200)所述的其他过程的细节同样以类似的方式适用于上文结合图14所述的方法1400。例如,上文参考方法1400描述的用户界面对象任选地具有本文参考本文所述的其他方法(例如,方法600,800,1000和1200)描述的用户界面对象的特征中的一个或多个。另外,以下参照第1至11部分描述的细节、操作和数据结构也可结合方法1400使用(例如,参照第6部分讨论的细节可用于帮助确定何时呈现包括用户所停放车辆的位置的用户界面对象,参照第5部分讨论的细节可用于帮助识别和学习与用户通常停放其车辆的时间和随后返回时间相关的用户模式,并且与第10部分相关的细节可用于通过依赖于上下文信息帮助完善车辆位置信息)。在一些实施方案中,第1至11部分的任何其他相关细节可以结合方法1400用于任何合适的目的。为了简明起见,此处不再重复这些细节。
[0870] 图16A至图16B是根据一些实施方案主动提供关于附近兴趣点(POI)信息的方法1600的流程图表示。图17A至图17E用于示出图16A至图16B中的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图1D中所示。
[0871] 在一些实施方案中,方法1600由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法1600由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法1600。在一些实施方案中,参照图1A,方法1600的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块132)、一个或多个位置传感器(例如,加速度计168、磁力计和/或GPS接收器)和触敏显示器(例如,触敏显示器系统112)。方法1600中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
[0872] 如下所述,方法1600主动在电子设备上提供兴趣点信息,而不需要用户自己搜索和定位该信息(然后在用户处于特定POI的特定距离内时显示该信息)。因此,该方法通过要求更少的触摸输入来执行所需动作(例如,查看关于附近POI的信息),从而创建了更有效的人机界面。对于电池驱动的电子设备,方法1600既节省电力又增加了电池两次充电之间的时间间隔。
[0873] 如图16A所示,在未接收到来自电子设备用户的任何指令的情况下,设备使用位置传感器监视(1602)电子设备的地理位置。同样在未接收到来自电子设备用户的任何指令的情况下,设备基于所监视的地理位置确定电子设备在预先确定类型的兴趣点的阈值距离内(例如,活动建议对其可用的兴趣点,诸如餐厅、游乐园或电影院)。
[0874] 在一些实施方案中,基于用户经常访问的兴趣点来确定预先确定类型的兴趣点。在一些实施方案中,兴趣点还包括基于当前文本消息、电子邮件和/或与用户的社交网络相关联的其他数据预测为用户所感兴趣的兴趣点。
[0875] 仍然在未接收到来自电子设备用户的任何指令的情况下,根据确定电子设备在兴趣点的阈值距离内,设备识别当前在兴趣点处流行的至少一项活动并检索关于该兴趣点的信息,包括检索关于当前在兴趣点处流行的至少一项活动的信息(例如,当前流行的乘坐装置、当前流行的菜单项、当前流行的电影等)。在一些实施方案中,基于在用户社交网络中发帖内容与所述至少一项活动有关的个人是否达到阈值数量(例如,超过5个)或阈值百分比(例如,5%或10%)评估活动的受欢迎程度。在一些实施方案中,设备维持预先确定数量(例如,5、10或20)的用户经常访问的兴趣点(和/或如上所述,基于文本消息、电子邮件或用户社交网络中的活动确定为现在感兴趣的兴趣点)列表,并且当用户位于这些兴趣点的任意一个的阈值距离内(例如,1英里、1.5英里、2英里)时,设备检索有关这些兴趣点处的当前活动的信息。
[0876] 仍然参照图16A,在检索关于兴趣点的信息之后,设备通过触摸敏感表面检测(1616)第一输入,当检测到所述第一输入时将使得电子设备进入搜索模式。在一些实施方案中,搜索模式是系统级搜索模式,允许在整个电子设备上进行搜索(例如,在应用程序和内容源上(设备上和其他地方的二者),而不仅在单个应用程序内)。在一些实施方案中,第一输入对应于在设备显示home屏幕的初始页面时在触敏表面上接收的轻扫手势(例如,图11C所示大体上沿从左到右方向的轻扫手势1104-1)。
[0877] 在一些实施方案中,根据确定设备在兴趣点的阈值距离内,设备还在锁定屏幕上显示示能表示,该示能表示指示关于兴趣点处的当前活动的信息可用。在一些实施方案中,第一输入对应于浏览关于兴趣点处当前活动的可用信息的请求。例如,如图17D所示,餐厅信息对象显示在锁定屏幕上。餐厅的图标和/或描述可选,并且指示有关餐厅的更多信息诸如菜单信息可用。响应于第一输入例如在“查看菜单”链接上的轻击,(例如,直接在锁定屏幕上或通过解锁设备并打开查看菜单的适当应用程序)显示菜单。在一些实施方案中,图17A至图17E所示任何用户界面对象/示能表示(例如,1713和1715以及其中包含的内容)可在搜索界面或锁定屏幕(或两者)内呈现。
[0878] 转向图16B,响应于检测到第一输入,设备进入(1618)搜索模式。在一些实施方案中,进入搜索模式包括:在搜索界面接收到任何用户输入前(例如,在搜索界面内的搜索框中尚未输入搜索词,并且尚未接收到输入),通过显示器呈现包括以下项的示能表示:(i)关于所述至少一项活动的信息,以及(ii)所述至少一项活动已被识别为当前兴趣点处的流行活动的指示,例如,附近餐厅的流行菜单项(例如,图17C至17D中的示能表示1715)、附近游乐园的乘坐装置等待时间(例如,图17A至图17B中的示能表示1713)、附近电影院的当前放映时间等。
[0879] 例如,如图17A所示,在一些实施方案中,兴趣点为(1604)游乐园,并且检索的信息包括游乐园的乘坐装置的当前等待时间。在图17A所示的一些实施方案中,电子设备使用检索到的信息来呈现所有乘坐装置的平均等待时间(例如,1小时),并且用户可以选择链接以查看每个单独乘坐装置的等待时间。如图17B所示,在一些实施方案中,所检索信息部分包括(1606)关于位于电子设备预定距离内的乘坐装置的等待时间的信息,例如,三个乘坐装置/游乐项目与电子设备的距离在约100到150英尺内,并且(在从用户接收到请求查看乘坐装置等待时间的输入后,诸如在图17A所示“查看等待时间”文本上的输入)显示每个乘坐装置/游乐项目的等待时间。
[0880] 又如,如图17C所示,兴趣点为(1608)餐厅,并且检索的信息包括关于餐厅中流行菜单项的信息。在一些实施方案中,检索的信息为从与电子设备用户相关联的社交网络检索(1610)的信息。例如,在图17C中,在示能表示1715内显示餐厅“Go Japanese Fusion”中的流行菜单项“Yakiniku Koji”,并且可基于从与电子设备用户相关联的社交网络检索的信息来确定流行的菜单项。
[0881] 又如,兴趣点可为(1612)电影院,并且检索的信息包括关于电影院的放映时间的信息。在一些实施方案中,所检索的有关放映时间的信息为(例如,基于个人最近在社交网络中发布的信息)从与电子设备用户相关联的社交网络检索(1614)的信息。
[0882] 在一些实施方案中,设备检测(1620)第二输入,例如,选择示能表示附近(例如,上方)显示的显示更多链接(诸如图17A至图17D中示能表示1713和1715的显示更多链接),并且响应于检测到第二输入,设备更新该示能表示以包括不同于该兴趣点的第二兴趣点处的当前活动的可用信息。在一些实施方案中,第二兴趣点同样位于电子设备的阈值距离内。例如,响应于用户选择图17D所示显示更多链接,设备更新示能表示1715以包括关于餐厅和电子设备1英里内的另一家餐厅“Out Steakhouse”供应的美食的可用信息,如图图17C所示。换句话讲,示能表示1715最初仅呈现关于“Go Japanese Fusion”的信息,并且响应于第二输入,更新示能表示1715以包括关于第二兴趣点的信息(例如,关于“Out Steakhouse”的信息,如图17C虚线所示)。在一些实施方案中,响应于检测到第二输入,显示不同于该兴趣点的多于一个兴趣点,例如,设备更新餐厅信息示能表示以包括除该兴趣点以外的两个或更多个新餐厅的可用信息。在一些实施方案中,锁定屏幕上呈现的示能表示(例如,图17D所示锁定屏幕上显示的示能表示1715)也可提供相同功能(即响应于选择显示更多链接,允许用户查看关于附加兴趣点的信息的功能)。
[0883] 在一些实施方案中,由于用户尚未选择最近的兴趣点,为了捕获用户可能感兴趣的兴趣点,该示能表示还包括(1622)可选择的兴趣点类别,并且设备检测(1624)相应可选类别的选择,并且响应于检测到该选择,更新示能表示以包括关于位于设备第二阈值距离内的附加兴趣点(例如,第二阈值距离大于该阈值距离)。例如,第一阈值距离是100英尺。当电子设备距离兴趣点约50英尺时,该设备将显示“Go Japanese Fusion”作为兴趣点,如图17C和17D所示。响应于检测到“餐饮”类别的选择,如图17E所示,将显示位于100英尺以外、1英里以内的附加兴趣点,例如,“Out Steakhouse”和“Chip Mexican Grill”。
[0884] 在一些实施方案中,在解锁电子设备后,响应于在电子设备home屏幕的初始页面上大体沿水平方向的轻扫(例如,图11C所示从左到右轻扫1104-1),用户界面对象可用(1626)。
[0885] 应当理解,对图16A至图16B中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法600,800,1000、1200和1400)所述的其他过程的细节同样以类似的方式适用于上文结合图16所述的方法1600。例如,上文参考方法1600描述的用户界面对象和/或操作任选地具有本文参考本文所述的其他方法(例如,方法600,800,1000、1200和1400)描述的用户界面对象和/或操作的特征中的一个或多个。在一些实施方案中,第1至11部分的任何相关细节可以结合方法1600用于任何合适的目的。为了简明起见,此处不再重复这些细节。
[0886] 图18A至图18B是根据一些实施方案从语音通信中提取内容项并与提取的内容项进行交互的方法1800的流程图表示。图19A至图19F用于示出图18A至图18B中的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图1D中所示。
[0887] 在一些实施方案中,方法1800由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法1800由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法1800。在一些实施方案中,参照图1A,方法1800的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块132)和触敏显示器(例如,触敏显示器系统112)。方法1800中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
[0888] 如下所述,方法1800提供了一种直观的方式以从语音通信中提取内容项并在具有触敏显示器的电子设备上呈现给用户。该方法减少了所需用户输入的数量(例如,设备自动提取联系人、位置和事件的相关信息,并准备该信息以在设备上存储和使用),从而创建了更有效的人机界面,并且根据语音通信中讨论的内容协助用户添加新内容。对于电池驱动的电子设备,此方法既帮助节省电力又增加了电池两次充电之间的时间间隔。
[0889] 如图18A所示,设备接收语音通信的至少一部分,语音通信的该部分包括由远程设备的远程用户提供的语音,该远程用户不同于电子设备的用户(1801)。在一些实施方案中,语音通信是实时电话呼叫、实时视频通话(例如,FaceTime通话)或记录的语音信箱(1803)。在一些实施方案中,语音通信是用户和远程用户之间的实时电话呼叫(或FaceTime通话),因此语音通信包括由用户和远程用户二者提供的语音。在其他实施方案中,语音通信是由远程用户发送给该用户的记录的语音信箱,所记录的语音信箱通过远程通信网络从远程设备传送给电子设备,然后将所记录的语音信箱存储在电子设备上以供随后播放。
[0890] 在一些实施方案中,基于来自电子设备用户的指令来识别语音通信的该部分(1805)。例如,基于用户对硬件按钮的选择,电子设备用户标记该部分以进行分析(例如,用户轻击硬件按钮如音量按钮,作为响应,设备开始分析预定义量的语音通信(例如,先前的10,9,8或7秒)以检测/提取内容项)。在一些实施方案中,该按钮还可以是呈现在电子设备显示器上供用户进行选择的按钮(例如,在语音通信期间显示在类似于图21B所示用户界面上的按钮,该按钮包括文本“轻击此处分析语音通信以获取新内容”)。
[0891] 在一些实施方案中,来自用户的指令对应于包括短语“嘿,Siri”的口头命令(例如,“嘿,Siri,请保存,”或“嘿,Siri,请记住,”或“嘿,Siri,请抓取刚刚提及的事件细节”等等)。在一些实施方案中,来自用户的口头指令是使设备开始分析语音通信以检测新内容的任何预定义的短语(例如,该短语可以采用英语以外的某种其他语言,或者该短语可以包括不同的单词,诸如“Siri,请分析这个呼叫”或“Siri,请开始分析”或表达类似意思的短语)。
[0892] 在一些实施方案中,设备不会在持久性存储器中记录或保持语音通信的任何部分,相反地,设备仅分析语音通信的该部分(例如,一次10秒),然后立即删除所有记录的数据,并且只保存基于分析提取的内容项(如下文更详细地讨论的那样)。这样,提取的内容项可供用户使用,而又不存储语音通信的实际内容,从而有助于保护用户的隐私。
[0893] 在一些实施方案中,设备分析语音通信的该部分(例如,由用户标记的记录的语音信箱部分,或用户标记的设备用户和另一台远程定位的设备用户之间的实时电话呼叫部分,或由设备自动识别为包括用于提取的新内容的部分)以检测预先确定类型的内容(1807)。在一些实施方案中,分析语音通信包括:将远程用户提供的语音(并且如适用,由电子设备用户提供的语音)转换为文本;将自然语言处理算法应用于该文本以确定文本是否包括一个或多个预定义的关键字;并且根据确定文本包括相应的预定义关键字,确定语音通信包括描述内容项的语音(1809)。
[0894] 换句话讲,使语音通信通过语音到文本处理算法,对通过语音到文本处理产生的文本执行自然语言处理,然后电子设备确定文本是否包括任何一个或多个预定义的关键字。在一些实施方案中,利用自动语音识别算法(例如,帮助执行语音到文本和自然语言处理操作)。在一些实施方案中,所述一个或多个预定义的关键字包括用于识别文本中的关键短语/字符串和用于提供建议输出(例如,以上介绍的可选描述)的数据检测器。在一些实施方案中,在电子设备上执行此整个过程(将语音转换为文本并处理该文本以检测新内容),并且不使用服务器或任何外部设备帮助执行这些操作,并且以这种方式,用户的隐私得以维护和保护。在一些实施方案中,在分析语音通信时使用环形缓冲器(例如,包括10秒或更短语音通信的小型环形缓冲器),并且环形缓冲器中的数据用于存储和转录语音,由于未记录、监视或存储整个对话,还保护了隐私。这样,设备能够快速有效地处理语音通信,从而检测新事件、新联系人信息以及其他新的内容项。
[0895] 在一些实施方案中,对于可从语音通信中提取的某些类型的内容(例如,电话号码),作为对搜索所述一个或多个预定义关键字的替代或补充,设备还检查由自然语言处理算法产生的文本是否包括预定义的位数(例如,对于美国电话号码为10或11位)。在一些实施方案中,同时使用两种技术(例如,设备搜索预定义的关键字诸如“电话号码”,随后不久在文本中搜索预定义的位数,以便定位所引用的电话号码)。
[0896] 在一些实施方案中,在通过与电子设备通信的音频系统输出语音通信时,执行分析(例如,操作1807和1809)。在一些实施方案中,预先确定类型的内容包括在语音通信中讨论的并且与联系人、事件和/或位置信息相关的信息内容(以下提供了关于从语音通信中检测和提取位置信息的更多细节)。例如,分析语音通信以检测预先确定类型的内容包括分析以检测新的联系人信息(包括联系人和现有联系人的新联系人信息)和新的事件(或与修改现有事件有关的内容)。在一些实施方案中,音频系统是设备的内部扬声器、外部耳机或外部音频系统,诸如扬声器或车辆的立体音响系统。
[0897] 在一些实施方案中,设备至少部分地基于远程设备的远程用户提供的语音来提取内容项(1811)(例如,识别或描述内容项的语音,诸如有关即将到来的事件的细节(开始时间、结束时间、位置、参加者等)、联系人信息(电话号码、联系人姓名、雇主姓名等)、餐厅名称、电话号码、到兴趣点的路线以及其他可用于从语音中提取内容项的细节)。在一些实施方案中,同样至少部分地基于电子设备的用户提供的语音来提取内容项(例如,两个用户正在讨论事件细节,并且设备基于两个用户提供的语音来提取这些事件细节)(1815)。
[0898] 在一些实施方案中,内容项是新事件,新事件详细描述了当前和电子设备上的日历应用程序相关联的事件;新联系人,新联系人信息详细描述了与电子设备上的电话应用程序相关联的现有联系人(1813)。
[0899] 在一些实施方案中,电子设备确定内容项当前在电子设备上是否可用(1817)。
[0900] 现在转向图18B,根据确定内容项当前在电子设备上不可用,电子设备识别与内容项相关联的应用程序,并在显示器上显示内容项的可选描述(1821)。图19A示出了一个示例性用户界面,其中在用户当前正在参与语音通信(例如,实时电话呼叫)时显示可选描述1902。如图19A所示,可选描述1902包括所识别的关联应用程序的图标(例如,日历应用程序的图标)、内容项的描述(例如,指示在此电话呼叫上发现新事件的文本)和关于内容项的细节(例如,与新事件相关联的事件细节)。
[0901] 在一些实施方案中,显示可选描述包括在用户界面内显示可选描述,其中该用户界面包括使用电话应用程序进行过的最近通话(1823)。在一些实施方案中,在语音通信完成后显示包括最近通话的用户界面(即当用户在通话时首先显示可选描述1902,然后在通话结束时显示包括最近通话的用户界面)。例如,图19B示出了包括从语音通信中提取的内容项的可选描述1901,1903和1905的示例性用户界面。具体地讲,可选描述1901指示在第一电话呼叫上发现新事件,可选描述1903指示在第二电话呼叫上发现新的联系人信息,并且可选描述1905指示在第三电话呼叫上发现位置。如上所述,语音通信也可以是记录的语音信箱,并且因此,图19B所示的用户界面也可显示在电话应用程序的语音信箱选项卡中。
[0902] 在一些实施方案中,可选描述与以下指示一起显示:内容项与语音通信相关联。例如,可选描述1901至1905的每一者被显示在从中提取这些可选描述的语音通信附近,为用户提供与每个提取的内容项相关联的相应语音通信的清楚指示。
[0903] 根据确定内容项当前在电子设备上不可用,电子设备还向用户提供已经检测到新内容项的反馈(1825)。在一些实施方案中,结合显示可选描述提供反馈(即以大体上同时的方式显示和提供反馈,使得用户能够接收触觉反馈,然后该触觉反馈引导他们查看在语音通信期间显示可选描述1902的显示器)。在一些实施方案中,提供反馈包括向该电子设备附近的另一台电子设备发送与内容项检测有关的信息(例如,向附近膝上型电脑或手表发送信息,从而使用户不必将电话从耳朵移开以查看关于检测的新内容项的详细信息)(1827)。
[0904] 在一些实施方案中,响应于检测到可选描述的选择(例如,在图19A或图19B任意一者所示的用户界面处提供的用户输入),电子设备存储该内容项以通过识别的应用程序进行呈现(1829)。可在用户监听语音通信时选择可选描述(例如,通过轻击图19A所示的可选描述1902)或从包括最近通话的用户界面中选择可选描述(例如,通过轻击图19B所示的可选描述1901)(1831)。响应于该选择,通过识别的应用程序存储内容项(例如,日历应用程序或联系人应用程序,具体取决于提取的内容项类型)。例如,响应于选择可选描述1902或1901的任意一者,电子设备打开创建新事件用户界面,并使用从语音通信的该部分提取的细节填充创建新事件用户界面(例如,填充图19C所示用户界面以包括标题、位置、开始时间、结束时间等)。
[0905] 又如,响应于选择可选描述1903,电子设备打开联系人应用程序的用户界面(例如,允许创建新联系人或在现有联系人上添加新的联系人细节,如图19D至图19E分别所示)并使用从语音通信的该部分提取的细节填充该用户界面(例如,图19D所示用户界面包括名字、姓氏、电话号码、电子邮件地址等,图19E所示用户界面包括现有联系人的新移动电话号码)。
[0906] 在一些实施方案中,电子设备还检测/提取关于在语音通信期间提到或讨论过的物理位置的信息。特别地并重新参照图18B,电子设备确定语音通信包括关于第一物理位置的信息(例如,参照地理位置或提供用于到达所述第一地理位置的路线)(1833)。电子设备还检测输入(例如,所述输入),并且响应于检测到输入,电子设备执行操作1837或操作1839的任意一者,具体取决于输入对应于打开接受地理位置数据的应用程序的请求,还是对应于在电子设备上搜索内容的请求(例如,本文讨论的任何搜索激活手势)(1835)。
[0907] 根据确定输入对应于打开接受地理位置数据的应用程序的请求,电子设备打开能够接受位置数据的应用程序,并且使用关于第一物理位置的信息填充该应用程序(该信息可以是包括在语音通信中的信息或基于语音通信的信息,诸如在实时电话呼叫中讨论的餐厅名称或由电子设备使用该餐厅名称查询的电话号码)(1839)。例如,如图19F所示,该应用程序是地图应用程序,并且使用关于第一物理位置的信息填充地图应用程序包括:使用对应于第一物理位置的位置标识符填充在地图应用程序内显示的地图(或如图19F所示,显示在语音通信期间讨论/提取的每个物理位置的多个位置标识符)。
[0908] 根据确定输入对应于进入搜索模式的请求,电子设备使用关于第一物理位置的信息填充搜索界面(该信息可以是包括在语音通信中的信息或基于语音通信的信息,诸如在实时电话呼叫中讨论的餐厅名称或由电子设备使用该餐厅名称查询的电话号码)(1837)。例如,可填充以上参照图13B讨论的搜索界面,以包括关于第一物理位置的信息作为其中一条建议的搜索1150(例如,通过电话应用程序接收请求)。
[0909] 在一些实施方案中,语音通信可包括描述多个各种内容项(例如,多个新联系人或现有联系人的新联系人信息、多个物理位置、关于新事件或现有事件的多个细节或它们的组合)的语音(来自语音通信期间均在讲话的单个用户或多个用户),并且电子设备被配置为确保从语音通信中提取这些内容项的每一者。例如,方法1800还包括使电子设备接收语音通信的第二部分(例如,所述第二部分包括由远程设备的远程用户和电子设备的用户中的一者或多者提供的语音)。在一些实施方案中,电子设备至少部分地基于由远程设备的远程用户提供的语音和由电子设备用户提供的语音来提取第二内容项。根据确定第二内容项当前在电子设备上不可用,电子设备识别与第二内容项相关联的第二应用程序,并在显示器上显示第二内容项的第二可选描述(例如,如果从每个关联语音通信中提取了多个内容项并且如果适用,图19A所示用户界面可包括多于一个可选描述1902,并且/或者图19B所示用户界面可包括多于一个可选描述1901,1903或1905)。响应于检测到第二可选描述的选择,电子设备存储第二内容项以通过识别的第二应用程序进行呈现(如上参照第一内容项所讨论的)。
[0910] 在一些实施方案中,在选择可选描述或第二可选描述后,电子设备停止在包括最近通话的用户界面中显示相应的可选描述。在一些实施方案中,每个可选描述还显示有删除示能表示(例如,“x”),当选中时,将使得电子设备停止显示相应的可选描述(如图19A和图19B中所示可选描述)。
[0911] 应当理解,对图18A至图18B中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文参考本文所述的其他方法(例如,方法2000)描述的其他过程的细节同样以类似的方式适用于上文参考图18A至图18B描述的方法1800。例如,以上参考方法1800所述的操作任选地实施或并入本文参考本文所述其他方法(例如,方法2000)描述的操作。另外,在第4部分:“结构化建议”中提供的以下细节也可结合方法2000一起使用(例如,在第4节中讨论的有关在消息中检测联系人和事件相关信息的细节也可用于从语音通信中提取相同的信息)。在一些实施方案中,第1至11部分的任何相关细节可以结合方法1800用于任何合适的目的。为了简明起见,此处不再重复这些细节。
[0912] 在一些实施方案中,参照上述方法1800和下文中的方法2000描述的技术还用于检测可从语音通信中提取的其他类型的内容。例如,可以提取电话号码并将其呈现给用户,供其存储为联系人信息(例如,针对新联系人或现有联系人)或立即使用(例如,用户进行电话呼叫并听到包括新电话号码的应答消息,并且响应于检测到消息包括此新电话号码,设备在诸如图21B所示用户界面上呈现该电话号码,从而使用户可以快速且容易地拨打该新电话号码)。
[0913] 在方法1800和2000的一些实施方案中,只要设备检测到新内容(例如,位置、电话号码、联系人信息或任何其他内容)即提供触觉反馈,以向用户提供新内容可用的明确指示[0914] 图20是根据一些实施方案,确定语音通信包括识别物理位置的语音并使用有关物理位置的信息填充应用程序的方法的流程图表示。图19A至图19F和图21A至图21B用于示出图20的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图1D中所示。
[0915] 在一些实施方案中,方法2000由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法2000由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法2000。在一些实施方案中,参照图1A,方法2000的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块132)和触敏显示器(例如,触敏显示器系统112)。方法2000中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
[0916] 如下所述,方法2000提供了一种直观的方式以从语音通信中提取内容项并在具有触敏显示器的电子设备上呈现给用户。该方法减少了所需用户输入的数量(例如,设备自动提取关于物理位置的相关信息,并准备该信息以在设备上存储和使用),从而创建了更有效的人机界面,并且根据语音通信中讨论的内容协助用户调用有关物理位置的信息。对于电池驱动的电子设备,此方法既帮助节省电力又增加了电池两次充电之间的时间间隔。
[0917] 如图20所示,设备接收语音通信的至少一部分,语音通信的该部分包括由远程设备的远程用户提供的语音,该远程用户不同于电子设备的用户(2001)。在一些实施方案中,语音通信是实时电话呼叫、实时视频通话(例如,FaceTime通话)或记录的语音信箱(2003)。参照图18A至图18B提供了关于语音通信(及其关联的部分)示例的更多细节。在一些实施方案中,基于从电子设备用户接收的指令来识别语音通信的该部分(2005)。以上参照图18A至图18B提供了关于从用户接收的指令的示例的更多细节(例如,该指令可对应于硬件按钮的选择或来自用户的口头命令)。
[0918] 在一些实施方案中,设备分析语音通信的该部分以检测关于物理位置的信息,并且当通过与电子设备通信的音频系统输出语音通信时执行分析(2007)。在一些实施方案中,音频系统可以是设备的内部扬声器、外部耳机、外部音频系统,诸如扬声器或车辆的立体音响系统。以上提供了关于该分析操作2007和其他语音到文本处理示例的更多信息,并且这些技术还适用于检测物理位置。
[0919] 在一些实施方案中,电子设备确定语音通信包括识别物理位置的语音(2009)。在一些实施方案中,识别物理位置的语音包括讨论到特定兴趣点的驾驶路线的语音,提到餐厅(或其他兴趣点)名称的语音等。在一些实施方案中,该物理位置可对应于任意兴趣点(诸如餐厅、住处、游乐园等),并且用于识别物理位置的语音可包括提及街道地址的语音、提及物理位置的位置信息(GPS坐标、纬度/经度等)的语音以及提供可用于(通过设备)在地图上定位物理位置的信息的其他相关语音。在一些实施方案中,物理位置也称为命名位置或物理可寻址位置。
[0920] 在一些实施方案中,响应于确定语音通信包括识别物理位置的语音,电子设备提供已检测到关于物理位置的信息的指示(例如,设备提供触觉反馈和/或显示UI对象供选择,诸如分别在图21A和图21B中示出的用户界面对象2101或2103)(2011)。在一些实施方案中,提供指示包括在用户界面内显示物理位置的可选描述,其中该用户界面可以是:包括使用电话应用程序进行过的最近通话的用户界面(例如,图19B所示可选描述1905)、与语音通信相关联的用户界面(例如,图21A至图21B分别所示可选描述2101和2103)或此类用户界面的两者(例如,当语音通信正在进行时,在与语音通信相关联的用户界面内;当语音通信结束后,在包括最近通话的用户界面内)(2013)。在一些实施方案中,可选描述指示内容项与语音通信相关联,例如,可选描述显示在语音通信的标识符下方(如图19B所示),或者可选描述显示在与语音通信相关联的用户界面中(如图21A至图21B所示)。
[0921] 在一些实施方案中,提供指示包括向电子设备的用户提供触觉反馈(2015)。
[0922] 在一些实施方案中,提供指示包括向该电子设备附近的另一台电子设备发送与物理位置有关的信息(例如,发送信息以在附近膝上型电脑或手表上呈现,从而使用户不必将电话从耳朵移开以查看关于检测的新内容项的详细信息)(2017)。
[0923] 在一些实施方案中,电子设备通过触敏表面检测输入(例如,输入对应于打开接受地理位置数据(在语音通信结束后的稍后时间接收)的应用程序的请求,或输入对应于在语音通信期间或之后显示的物理位置的可选描述的选择),并且响应于检测到输入,设备打开接受地理位置数据的应用程序并使用关于该物理位置的信息填充应用程序(2019)。
[0924] 在一些实施方案中,检测输入包括在显示包括最近通话的用户界面时检测可选描述上的输入(例如,选择或轻击图19A所示可选描述1905)。例如,响应于在图19A所示的可选描述1905上检测到触摸,电子设备打开地图应用程序(或能够显示地图对象的应用程序,诸如顺风车应用程序)并使用关于物理位置的信息(例如,用于标识物理位置的大头针,如图19F所示)填充该地图应用程序。
[0925] 在一些实施方案中,检测输入包括在显示与语音通信相关联的用户界面时检测可选描述上的输入(例如,选择或轻击图21A至图21B所示可选描述2101或2103)。例如,响应于在图21A所示的可选描述2101上检测到触摸,电子设备打开地图应用程序(或能够显示地图对象的应用程序,诸如顺风车应用程序)并使用关于物理位置的信息(例如,用于标识物理位置的大头针,如图19F所示)填充该地图应用程序。又如,响应于在可选描述2103上检测到触摸(图21B),设备打开地图应用程序(或能够提供到物理目的地的路线引导的应用程序)并使用关于物理位置的信息(例如,如图19F所示用于标识物理位置的大头针以及到物理位置的路线,其中该路线基于语音通信期间提供的语音提取)填充该地图应用程序。
[0926] 在一些实施方案中,由于响应于输入的检测来填充应用程序,因此在应用程序内接收到任何附加用户输入之前执行填充(例如,当地图应用程序打开时,大头针被填充到图19F所示的地图应用程序中,而无需在地图应用程序中进行任何用户输入)。这样,仅基于在语音通信期间从语音中提取的信息来向用户呈现关于物理位置的信息,并且用户不提供任何附加输入以使用该信息填充应用程序(换句话讲,应用程序预先填充了该信息)。
[0927] 在一些其他实施方案中,存储检测到的地理位置以在适当的应用程序中显示,只要用户在稍后打开所述适当应用程序(例如,能够接受地理位置信息的应用程序)即显示该地理位置,并且因此在语音通信期间不向用户提供任何指示。
[0928] 应当理解,对图20中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文参考本文所述的其他方法(例如,方法1800)描述的其他过程的细节同样以类似的方式适用于上文参考图20描述的方法2000。例如,以上参考方法2000所述的操作任选地通过本文参考本文所述其他方法(例如,方法1800)描述的操作实施或补充。另外,在第4部分:“结构化建议”中提供的以下细节也可结合方法2000一起使用(例如,在第4部分中讨论的有关在消息中检测联系人和事件相关信息的细节也可用于从语音通信中提取相同的信息)。在一些实施方案中,第1至11部分的任何相关细节可以结合方法2000用于任何合适的目的。为了简明起见,此处不再重复这些细节。
[0929] 图22A至图22B是根据一些实施方案主动建议在即时消息应用程序中使用的物理位置的方法的流程图表示。图23A至图23O用于示出图22A至图22B中的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图1D中所示。
[0930] 在一些实施方案中,方法2200由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法2200由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法2200。在一些实施方案中,参照图1A,方法2200的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块132)和触敏显示器(例如,触敏显示器系统112)。方法2200中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
[0931] 如下所述,方法2200提供了一种直观的方式以在具有触敏显示器的电子设备上主动建议用于即时消息应用程序的物理位置。该方法减少了在即时消息应用程序中添加物理位置的相关信息所需的用户输入的数量,从而创建了更有效的人机界面。对于电池驱动的电子设备,主动建议用于即时消息应用程序的物理位置既节省电力又增加了电池两次充电之间的时间间隔(例如,通过避免在进入即时消息应用程序前用户无目的地搜索此信息,从而节省了时间并省去了消耗能源的操作)。
[0932] 如图22A所示,电子设备在显示器上的即时消息应用程序(例如,台式计算机、膝上型电脑、智能电话或智能手表上的电子邮件或iMessage应用程序)中呈现文本输入字段和会话副本(2201)。在一些实施方案中,会话副本包括在一个或多个用户之间交换的消息(诸如电子邮件消息、文本消息、音频消息、视频消息、图片消息等)。在一些实施方案中,会话副本包括文本输入字段(例如,如图23A所示,会话副本2301包括用户在起草新的电子邮件应答时键入的文本)。在一些实施方案中,会话副本和文本输入字段是分开的(例如,如图23C所示,会话副本2303大体上位于单独的文本输入字段2305上方,其中用户可以在文本输入字段中起草新消息)。在一些实施方案中(例如,其中电子设备与显示器通信并且显示器和设备诸如台式计算机或智能电视设备保持物理地分离),呈现包括使显示器呈现相关内容(例如,设备向显示器提供信息,使得显示器能够呈现文本输入字段和会话副本(以及下面讨论的其他用户界面元素))。
[0933] 当在显示器上呈现即时消息应用程序时,电子设备确定来自电子设备用户的下一个可能的输入是关于物理位置的信息(2203)(例如,地址或设备确定的用户的当前位置)。在一些实施方案中,确定来自电子设备用户的下一个可能的输入是关于物理位置的信息包括:处理与文本输入字段和会话副本相关联的内容以检测对话转录包括关于用户当前位置的问题(2205)(例如,第二用户发送消息,询问用户“你在哪儿”,如图23A至图23B和图23C至图23D所示)。在一些实施方案中,处理内容包括应用自然语言处理算法检测构成该问题的一个或多个预定义关键字。在一些实施方案中,所述一个或多个关键字可以由电子设备直接在与文本输入字段和会话副本相关联的内容中搜索,而在其他实施方案中,通过执行语义分析来查找类似于所述一个或多个关键字的短语以检测所述一个或多个关键字(例如,相距短语义距离的字词),并且在一些实施方案中,同时使用这两种技术。在一些实施方案中,该问题包括在从不同于该用户的第二用户接收的消息中(2209)(如图23A至图23B和图
23C至图23D所示)。
[0934] 在一些实施方案中,电子设备分析与文本输入字段和会话副本相关联的内容,至少部分地基于分析的内容(例如,来自最近接收的消息的内容)的一部分确定建议的物理位置(2211)。在一些实施方案中,建议的物理位置对应于用户最近在即时消息应用程序之外的应用程序中查看的位置(2213)。(例如,用户开始键入“我们应该在[自动插入最近查看的地址]吃晚饭。”)例如,用户先前使用评论搜索应用程序(诸如图25A所示)来搜索餐厅,然后设备使用基于在评论搜索应用程序中搜索餐厅的信息来识别建议的物理位置。
[0935] 在一些实施方案中,电子设备在显示器上的即时消息应用程序中呈现可选用户界面元素,用于识别建议的物理位置(2215)。例如,即时消息应用程序包括虚拟键盘,并且可选用户界面元素显示在与虚拟键盘相邻并且在虚拟键盘上方的建议部分中(2217)。如图23A所示,建议部分2307包括可选用户界面元素,当选中时将使设备在文本输入字段中包括用户的当前位置(如图23B所示)。在一些实施方案中,选择2307中所示可选UI元素将使设备在新消息中将用户的当前位置立即发送给远程用户。
[0936] 现在转向图22B,在一些实施方案中,电子设备接收可选用户界面元素的选择(2219)。响应于接收到选择,电子设备在文本输入字段中呈现建议物理位置的表示(2221)。在一些实施方案中,建议物理位置的表示包括用于识别电子设备当前地理位置的信息(2223)(例如,从电子设备的位置传感器检索的用于识别当前地理位置的GPS信息,并且该信息随后呈现在该表示中(如图23B和图23D所示))。如图23B和图23D所示,在一些实施方案中,建议的物理位置的表示是地图对象,该地图对象包括用于建议的物理位置的标识符(2227)。
[0937] 在一些实施方案中,建议的物理位置的表示是地址(2225)。例如,参照图23E,响应于检测到建议部分2307中所示可选用户界面元素的选择,设备更新文本输入字段以包括建议部分2307中显示的地址。在一些实施方案中,该地址可对应于用户自己的地址(家庭、工作等)、存储在设备中的联系人的地址(如图23G至图23H所示)、用户最近在电子设备上查看过的地址(例如,在一些其他应用程序中查看的餐厅位置,如图23F所示)、在此会话副本或其他会话副本中发送给用户的地址或由其他用户(例如,通过电子邮件、社交网络应用程序等)共享给该用户的地址。
[0938] 在一些实施方案中,根据确定用户正在键入(即用户正在连续将文本输入即时消息应用程序中,诸如通过图23E所示的虚拟键盘)并且尚未选择可选用户界面元素(例如,在预定义的时间段诸如2秒、3秒、4秒之后,其中相当地确定用户不会选择可选用户界面元素),设备停止呈现可选用户界面元素(2229)。在一些实施方案中,一旦用户开始键入,设备即停止呈现可选用户界面元素。
[0939] 在一些实施方案中,确定来自电子设备用户的下一个可能的输入是关于物理位置的信息包括:在即时消息应用程序的文本输入部分中监视从用户接收的键入输入。在这样的实施方案中,该方法还包括:在监视打字输入时,确定是否存在任意键入输入与一个或多个触发短语匹配,每个触发短语与相应的内容项相关联;根据确定键入输入的顺序与第一触发短语匹配,在显示器上显示与第一触发短语相关联的建议内容项;并且检测建议内容项的选择,响应于检测到该选择,在即时消息应用程序的文本输入部分中显示关于建议内容项的信息。在一些实施方案中,根据确定用户已提供附加输入,其中该输入指示用户将不会选择可选用户界面元素(例如,连续的击键不再匹配触发短语),电子设备停止呈现可选用户界面元素(2231)。
[0940] 在一些实施方案中,根据确定自从第一次显示可选用户界面对象开始已经过预先确定的时间段(例如,10秒),设备停止呈现可选用户界面对象。
[0941] 在一些实施方案中,与方法2200相关联的技术也可经由其他类型的应用程序(除即时消息应用程序外,诸如文档编写应用程序)可用,并且可用于其他对象类型(作为物理位置的补充,诸如联系人和事件)。例如,如图23I和图23J所示,一些实施方案还能使电子设备主动建议用于安排事件的可用性窗口(以下参照图22C和方法2280进行了更详细地讨论)。另外,如图23K至图23J所示,一些实施方案还能使电子设备主动建议联系人信息(诸如用户或存储在设备上的联系人的电话号码),或者主动建议基于先前对话的适当响应(例如,如图23M所示)或主动建议适当的参考文件(例如,如图23O所示)。下面的方法2280还提供了有关其他类型应用程序和其他对象类型的一些更多细节。在一些实施方案中,组合、交换和/或互换方法2200和2280的各种方面。
[0942] 应当理解,对图22A至图22B中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法2280和方法2900)所述的其他过程的细节同样以类似的方式适用于上文结合图22A至图22B所述的方法2200。例如,以上参考方法2200所述的操作任选地包括本文所述其他方法(例如,方法2280和2900)的一个或多个操作或特征。在一些实施方案中,第1至11部分的任何相关细节可以结合方法2200用于任何合适的目的。为了简明起见,此处不再重复这些细节。
[0943] 图22C是根据一些实施方案主动建议与位置、事件或联系人相关的信息的方法的流程图表示。图23A至图23O用于示出图22C中的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图1D中所示。
[0944] 在一些实施方案中,方法2280由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法2280由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法2280。在一些实施方案中,参照图1A,方法2280的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块132)和触敏显示器(例如,触敏显示器系统112)。方法2280中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
[0945] 如下所述,方法2280提供了一种直观的方式以在具有触敏显示器的电子设备上主动建议与位置、事件或联系人有关的信息。该方法减少了用户输入的数量,其中这些输入旨在定位关于联系人、位置或事件的信息并输入该信息以在应用程序中使用,从而创建了更有效的人机界面。对于电池驱动的电子设备,主动建议与位置、事件或联系人有关的信息可提高用户对电子设备的满意度(通过自动调用信息并在相关时间将其呈现给用户以供立即使用),节省电力并增加了电池两次充电之间的时间间隔。
[0946] 如图22C所示,电子设备在显示器上呈现与应用程序相关联的文本内容(2281)。在一些实施方案中,应用程序是文档编写应用程序(例如,记事本应用程序、文字处理应用程序等)或即时消息应用程序(诸如电子邮件或文本消息应用程序)或任何其他应用程序,其中显示虚拟键盘以输入文本到输入接收字段中。
[0947] 在一些实施方案中,设备确定文本内容的一部分涉及(2283)(或文本内容的该部分参照)以下项:(i)位置(例如,可通过电子设备的位置传感器获取的当前位置信息),(ii)联系人(例如,可通过电子设备上的联系人应用程序获取的信息),或(iii)事件(例如,可通过电子设备上的日历应用程序获取的信息)。在一些实施方案中,文本内容的该部分是由关于位置、联系人或事件(例如,诸如图23A至图23O所示的示例)的信息最好地完成的陈述/问题。在一些实施方案中,文本内容的该部分对于应用程序中最近呈现的文本内容(2285)(诸如用户键入的文本内容或从远程用户接收的消息中的文本内容)。例如,该部分是用户在记事本或即时消息应用程序中键入的当前文本(例如,图23A中的“目前我在”、图23E中的“我的地址是”、图23H中的“约翰的地址是”、图23I中的“我有空”、图23K中的“我的电话号码是”、图23L中的“打我电话”以及图23M中的“什么类型的肿瘤”)。换句话讲,文本内容的该部分是由电子设备用户在应用程序内的输入接收字段(例如,图23C所示即时消息应用程序的字段2305,或图23A所示电子邮件应用程序的字段2301)中提供的输入(即一系列键入输入)(例如,用户在虚拟键盘上提供一系列键入输入或使用口述将文本添加到输入接收字段)。
[0948] 在一些实施方案中,文本内容的该部分是会话副本中最近从某些其他用户接收的消息。例如,该应用程序是即时消息应用程序,并且文本内容的该部分是在即时消息应用程序中从远程设备的远程用户接收的问题(例如,图23C中的“你在哪儿?”、图23F中的“餐厅在哪里?”、图23G中的“约翰住哪?”、图23O中的“你对肿瘤有什么了解?”),其中所述远程设备不同于该电子设备。
[0949] 在一些实施方案中,在确定文本内容的该部分与(i)位置(2289)、(ii)联系人(2291)或(iii)事件(2293)相关联时,电子设备转而识别在电子设备上可用的适当内容项(在一些实施方案中,不必从服务器检索任何信息)并将该内容项呈现给用户以在应用程序中使用(例如,以响应于问题或有效地完成用户自己的键入输入)。这样,用户能够快速且容易地在应用程序中包括有关联系人、事件和位置的信息,而不必离开当前应用程序、搜索适当的内容、复制或记住该内容、返回当前应用程序,然后将该内容包括在当前应用程序中(从而减少用户在应用程序中包括有关联系人、事件和位置的信息所需的输入数)。
[0950] 更具体地讲,至于(i)在确定文本内容的该部分与某个位置相关时,电子设备从电子设备上的位置传感器获取位置信息,并准备获取的位置信息以将其显示为预测的内容项(2289)。例如,在从远程用户接收的消息中,基于文本内容中包括短语“你在哪儿?”的部分(如图23C所示),设备确定该部分与位置相关,然后设备从设备上的GPS传感器获取信息,并且准备该信息以呈现为预测的内容项(参见图23D,其中包括用户当前位置的地图对象被发送给远程用户)。又如,在用户键入新电子邮件时,基于文本内容中包括短语“我在”的部分(如图23A所示),设备确定该部分与位置相关,然后设备从设备上的GPS传感器获取信息,并且准备该信息以呈现为预测的内容项(参见图23B,其中包括用户当前位置的地图对象包括在用户正在准备的新电子邮件中)。更多示例在图23E(例如,设备基于用户键入“我的地址是”确定文本内容的该部分包括与位置有关的信息)和图23F(例如,设备基于用户接收包括文本“餐厅在哪里”的消息确定文本内容的该部分包括与位置有关的信息)中示出。如图23F所示,在一些实施方案中,设备基于用户之前与不同应用程序的交互获取位置信息(例如,用户在不同应用程序诸如提供众包评论的应用程序中搜索餐厅应用程序,因此,不使用位置传感器来获取信息)。以下参照方法2400、2500和2800讨论了关于在两个不同应用程序之间共享信息的更多细节,为了简明起见,此处不再重复这些细节。
[0951] 至于(ii)在确定文本内容的该部分与联系人相关时,电子设备在电子设备上进行搜索,搜索与文本内容的该部分相关的联系人信息,并准备与通过搜索检索到的至少一个联系人相关联的信息,以显示为预测的内容项(2291)。例如,文本内容的该部分是“约翰的地址是什么?”(图23G)、“约翰的地址是”(图23H)或“我的电话号码是”(图23K)或“打我电话”(图23L),设备分析存储在联系人应用程序中的联系人信息,从而检索预测为响应于该部分的联系人,并且作为预测的内容项提供检索到的联系人信息。
[0952] 至于(iii)在确定文本内容的该部分与事件相关时,电子设备在电子设备上进行新的搜索,搜索与文本内容的该部分相关的事件信息,并准备至少部分地基于至少一个事件的信息(通过新搜索检索得到),以显示为预测的内容项(2293)。在一些实施方案中,至少部分地基于所述至少一个事件的信息可以是事件细节(诸如事件时间、持续时间、位置)或来源于事件细节的信息(诸如用户安排新事件的可用性,如图23I和图23J所示)。例如,文本内容的该部分是“在哪间会议室召开会议?”或“会议什么时候开始?”,设备分析与存储在日历应用程序中的事件相关联的信息以检索响应于该问题的信息,并作为预测的内容项提供检索的信息。
[0953] 如上所述,电子设备在应用程序内显示包括预测内容项的示能表示(2294)(例如,在图23A的建议部分2307内显示“添加当前位置”的示能表示,在图23C的建议部分2309内显示“发送我的当前位置”的示能表示等,在图23E、23F、23G、23H、23I、23J、23K、23L、23M、23N和23O中的建议部分2307或2309内显示其他示例性示能表示。)。电子设备还通过触敏表面检测示能表示的选择(2295);并且响应于检测到该选择,设备在显示器上与文本内容相邻处显示与预测内容项相关联的信息(2297)(例如,响应于选择“添加当前位置”的示能表示(图23B),显示具有用户当前位置的地图对象)。
[0954] 在一些实施方案中,响应于用户输入选择包括文本内容该部分的用户界面对象,识别文本内容的该部分(2287)。例如,该应用程序是即时消息应用程序,并且用户界面对象是在即时消息应用程序内显示的对话中的消息气泡。这样,用户能够检索应用程序中显示的特定部分的预测内容项,使得如果他们忘记响应于特定部分,他们能够选择与该部分相关联的用户界面对象,以便容易地查看该特定部分的预测内容项目。作为具体的示例,参照图23M,文本内容的该部分最初为最近显示的文本内容(例如,“什么类型的肿瘤?”),并且因此,建议部分2309包括响应于该部分的文本建议的示能表示(例如,“良性”和“恶性”)。然后,设备检测第二用户界面对象(例如,在最近显示的文本内容前接收的第二消息气泡,该消息气泡包括文本内容“顺便问一下,你在哪儿?”)的选择(例如,图23M所示输入2350)。响应于检测到该选择,设备停止显示带有预测内容项的示能表示,并确定与第二用户界面对象相关联的文本内容与位置、联系人或事件相关(在该示例中,设备确定“你在哪儿?”与位置相关),并且根据该确定,设备在应用程序内显示新的预测内容项(例如,图23N所示建议部分2309中包括“发送我的当前位置”的示能表示)(2299)。
[0955] 如前一段所述,在一些实施方案中,设备还能够确定文本内容的该部分是否与电子设备上可用的其他类型信息有关(除了联系人、位置和事件之外)。例如,设备能够检测与用户在交换的电子邮件、用户编写或从其他用户接收的文档中讨论的信息或来自其他知识来源的信息有关的问题(例如,什么类型的肿瘤)。另外,在一些实施方案中,电子设备确定响应于应用程序中文本内容的特定部分的文档(例如,如图23O所示,建议两个不同文档作为对“你对肿瘤有什么了解?”的响应)。在一些实施方案中,响应于选择所述两个不同文档中的任一一个,设备可打开相应的文档并允许用户查看该文档,然后返回该应用程序。
[0956] 在一些实施方案中,显示在建议部分内并且包括预测内容项的示能表示显示在应用程序内的虚拟键盘附近(例如,上方)。例如,如图23A所示,“添加当前位置”的示能表示显示在虚拟键盘上方的建议部分2307中。
[0957] 在一些实施方案中,与预测内容项相关联并且与文本内容相邻显示的信息被显示在输入接收字段中,并且输入接收字段用于显示在虚拟键盘处接收的键入输入(例如,诸如在记事本应用程序中显示的文档,或在诸如即时消息应用程序中虚拟键盘上方显示的输入接收字段,如图23D的输入接收字段2305所示,其中字段2305位于虚拟键盘的上方)。
[0958] 在一些实施方案中,确定操作2283包括在应用程序接收文本内容时(例如,在用户键入时或应用程序接收消息时)对文本内容进行解析,以检测已知与联系人、事件和/或位置相关的存储模式。在一些实施方案中,训练神经网络对存储的模式执行检测,并且/或者将有限状态语法用于检测,在检测之后,电子设备将信息传递到系统级服务(例如,使用在以下第9部分中讨论的一个或多个预测模型)以检索适当的预测内容项。
[0959] 应当理解,对图22C中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法2200和方法2900)所述的其他过程的细节同样以类似的方式适用于上文结合图22C所述的方法2280。例如,以上参考方法2280所述的操作任选地具有本文参考本文所述其他方法(例如,方法2200和2900)的一个或多个特征,或使用本文参考本文所述其他方法描述的一个或多个操作。在一些实施方案中,第1至11部分的任何相关细节可以结合方法2280用于任何合适的目的。为了简明起见,此处不再重复这些细节。
[0960] 图24A至图24B是根据一些实施方案,使用用户先前在另一个应用程序中查看的信息主动填充某个应用程序的方法的流程图表示。图25A至图25J用于示出图24A至图24B中的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图1D中所示。
[0961] 在一些实施方案中,方法2400由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法2400由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法2400。在一些实施方案中,参照图1A,方法2400的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块132)和触敏显示器(例如,触敏显示器系统112)。方法2400中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
[0962] 如下所述,方法2400提供了一种直观的方式以在具有触敏显示器的电子设备上主动使用用户先前在另一个应用程序中查看的信息来填充应用程序。该方法减少了在不同的第二应用程序中使用来自第一应用程序的信息所需的用户输入的数量,从而创建了更有效的人机界面。对于电池驱动的电子设备,主动使用用户先前在另一个应用程序中查看的信息来填充应用程序既节省电力又增加了电池两次充电之间的时间间隔。
[0963] 如图24A所示,在显示第一应用程序的同时,电子设备获取用于识别用户在所述第一应用程序中查看的第一物理位置的信息(2401)。例如,第一应用程序是当前显示在触敏显示器上的前台应用程序(例如,所述第一应用程序是提供诸如图25A所示众包评论的应用程序)。在一些实施方案中,获取包括将关于位置数据的信息发送到电子设备的操作系统部件,或者获取包括使用辅助功能来获取该信息。以上提供了关于使用辅助功能来获取信息的细节(参见例如以上参照方法1800提供的描述,特别是以上参照操作1807和1809提供的描述)。
[0964] 在一些实施方案中,电子设备退出第一应用程序(2403)(例如,用户轻击Home硬件按钮以请求退出第一应用程序并查看home屏幕,或者用户双击Home硬件按钮以请求退出第一应用程序并查看应用程序切换用户界面)。在退出第一应用程序后,电子设备接收来自用户的打开不同于第一应用程序的第二应用程序的请求(2405)。在一些实施方案中,接收打开所述第二应用程序的请求包括:在退出第一应用程序后,检测第二应用程序的示能表示上的输入(2407)(换句话讲,该请求不对应于点击第一应用程序内的链接)。例如,用户从home屏幕选择第二应用程序(例如,用户轻击图25B所示home屏幕上显示的顺风车应用程序的图标(示能表示))。在一些实施方案中,home屏幕是操作系统的系统级部件,包括用于调用电子设备上可用的应用程序的图标。
[0965] 又如,用户从应用切换用户界面选择第二应用程序(例如,用户轻击图25C所示应用切换用户界面中包括的顺风车应用程序的表示)。更具体地讲,在又一个示例中,检测输入包括:在物理Home按钮(例如,Home 204)上检测双击,响应于检测到双击,显示应用程序切换用户界面,并且从应用程序切换用户界面内检测示能表示的选择(2411)。
[0966] 作为关于操作2405的一个附加示例,用户选择用户界面对象,当选中该用户界面对象时将使设备打开第二应用程序(例如,图25B和图25C所示示能表示2503)。在一些实施方案中,在第一应用程序中未接收到任何输入情况下接收请求(例如,请求不包括在第一应用程序内点击链接或按钮)。
[0967] 响应于接收到请求,电子设备确定第二应用程序是否能够接受地理位置信息(2413)。在一些实施方案中,该确定操作2413包括以下中的一项或多项(2415):(i)确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段;(ii)确定第二应用程序能够在地图上显示地理位置信息;(iii)确定第二应用程序能够使用地理位置信息来促进路线引导;以及(iv)确定第二应用程序能够使用地理位置信息定位和提供运输服务。在一些实施方案中,确定第二应用程序能够接受地理位置信息包括:确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段,并且输入接收字段是搜索框,该搜索框允许在第二应用程序中显示的地图内进行搜索。例如,第二应用程序是包括此类输入接收字段的顺风车应用程序(如图25E所示,示例性顺风车应用程序包括输入接收字段2507,该字段允许在显示的地图内进行搜索),或者第二应用程序是同样包括此类输入接收字段的地图应用程序(如图25F所示)。
[0968] 现在转向图24B,在一些实施方案中,响应于接收到请求,电子设备基于用户的应用程序使用历史确定第二应用程序是否与第一应用程序相关联(例如,在打开第一应用程序后已打开第二应用程序阈值次数),并且还确定第二应用程序能够接受和处理位置数据(如上所述)。换句话讲,在一些实施方案中,电子设备同时确定第二应用程序具有接受位置数据的字段,并且第一应用程序和第二应用程序相关联(借助于用户在打开第一应用程序后经常打开第二应用程序)。在一些实施方案中,在呈现第二应用程序之前,电子设备为第二应用程序提供对识别第一物理位置的信息的访问权限,其中在提供该访问权限之前,第二应用程序不能访问识别第一物理位置的信息(2417)。例如,第二应用程序先前不能访问关于用户在第一应用程序中查看的信息,并且仅在现在向其提供访问权限,并且用户只能使用识别所述第一地理位置的信息来填充第二应用程序中的输入接收字段。这样,由于设备知晓用户经常一起使用第一应用程序和第二应用程序,因此设备能够主动地填充文本输入字段而不需要任何用户输入(除了用于建立第一应用和第二应用之间连接的那些输入)。
[0969] 在一些实施方案中,响应于接收到请求并且根据(以上参照操作2413和操作2415讨论的)确定第二应用程序能够接受地理位置信息,电子设备呈现第二应用程序,并且呈现第二应用程序包括使用至少部分地基于第一物理位置识别信息的信息填充第二应用程序。在一些实施方案中,填充第二应用程序包括显示用户界面对象,该用户界面对象包括至少部分地基于第一物理位置识别信息的信息(2421)。例如,如图25D所示,用户界面对象2505包括至少部分地基于第一物理位置识别信息的信息(例如,用户在第一应用程序中查看的餐厅地址,如图25A所示)。在一些实施方案中,用户界面对象2505可包括餐厅的名称(例如,“Gary Danko”,作为地址的替代或补充,或者UI对象2505可包括关于餐厅位置的其他相关信息)。在一些实施方案中,用户界面对象包括文本描述,该文本描述通知用户所述第一物理位置最近在第一应用程序中被查看(2423)(例如,与第一应用程序相关联的图标包括在用户界面对象2505中,如图25D所示)。
[0970] 在一些实施方案中,用户界面对象是在第二应用程序中显示的地图(例如,图25D所示地图),并且填充第二应用程序包括填充地图以包括第一物理位置的标识符(2425)。在一些实施方案中,电子设备使用第一物理位置的名称、第一物理位置的电话号码、第一物理位置的地址或识别第一物理位置的(并且允许进行搜索的)其他信息查找特定的地理位置,并将该特定地理位置填充至第二应用程序中。在一些实施例中,第二应用程序呈现虚拟键盘,并且在虚拟键盘上方显示用户界面对象(2427)(例如,如图25D所示,用户界面对象2505显示在虚拟键盘上方)。
[0971] 在一些实施方案中,获取信息包括(2429)获取关于第二物理位置的信息,显示用户界面对象包括显示具有与第二物理位置有关的信息的用户界面对象(例如,地图包括第一物理位置和第二物理位置的标识符),并且/或者该示能表示包括关于第一物理位置和第二物理位置的信息。在一些实施方案中,接收请求(例如,操作2405)包括接收打开第二应用程序的请求,所述第二应用程序具有与第一物理位置或第二物理位置之一有关的信息(例如,显示诸如图25G和图25H所示用户界面对象2503,并且用户能够选择先前在第一应用程序中查看的任一物理位置)。
[0972] 在一些实施方案中,用户在地图应用程序内的搜索也可用于获取关于物理位置(例如,以上讨论的第一物理位置和第二物理位置)的信息。如图25F所示,用户可以搜索位置并接收多个搜索结果,包括结果2511A、2511B、2511C和2511D。在一些实施方案中,用户能够选择其中一个结果,诸如图25F所示的2511A,然后在地图上突出显示该位置。进行搜索后,可向用户呈现利用作为搜索结果一部分的物理位置的选项(例如,如图25G所示,用户界面对象2505呈现使用基于至少两个物理位置的信息搭乘顺风车前往任一位置的选项)。在一些实施方案中,图25G所示用户界面对象2505也可通过应用程序切换用户界面访问(如图25H所示)。在一些实施方案中,响应于接收到用户界面对象2505中所示物理位置之一的选择(从图25G或25H的应用切换或home屏幕),将用户带到适当的应用程序(例如,图25I所示顺风车应用程序),并使用基于所选物理位置的信息填充该应用程序(例如,图25I中示出了用户界面对象2505并且包括地址)。
[0973] 使用共享位置数据作为说明上述方法2400的主要示例,但上述相同方法和技术也适用于在两个不同应用程序之间共享其他类型的数据。例如,以上参照方法2400描述的技术还能促进在社交网络应用程序(例如,Facebook)和社交共享应用程序(例如,Twitter)之间共享搜索查询。例如,在用户在Facebook中搜索某个姓名之后,向用户提供在Twitter中搜索相同姓名的建议。又如,可以在日历应用程序和电子邮件应用程序之间共享即将召开的会议的与会者列表,从而如果用户在日历应用程序中查看即将召开的会议,然后切换为使用电子邮件应用程序并点击“撰写”按钮,则将填充新电子邮件的收件人列表以包括即将召开的会议的与会者列表。
[0974] 应当理解,对图24A至图24B中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法2600和方法2700)所述的其他过程的细节同样以类似的方式适用于上文结合图24A至图24B所述的方法2400。例如,以上参考方法2400所述的操作任选地具有本文参考本文所述其他方法(例如,方法2600和2700)的一个或多个特征,或并入本文参考本文所述其他方法描述的操作。在一些实施方案中,第1至11部分的任何相关细节可以结合方法2400用于任何合适的目的。为了简明起见,此处不再重复这些细节。
[0975] 图26A至图26B是根据一些实施方案,主动建议将用户先前在第一应用程序中查看的建议信息用于第二应用程序的流程图表示。图25A至图25J用于示出图26A至图26B中的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图1D中所示。
[0976] 在一些实施方案中,方法2600由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法2600由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法2600。在一些实施方案中,参照图1A,方法2600的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块132)和触敏显示器(例如,触敏显示器系统112)。方法2600中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
[0977] 如下所述,方法2600提供了一种直观的方式以在具有触敏显示器的电子设备上主动建议用户先前在第一应用程序中查看的信息以用于第二应用程序。该方法通过为用户调用有用信息且无需用户执行多个输入来检索该信息,从而创建了更加有效的人机界面。对于电池驱动的电子设备,主动建议用户先前在第一应用程序中查看的信息以用于第二应用程序既节省电力又增加了电池两次充电之间的时间间隔。
[0978] 如图26A所示,电子设备获取用于识别用户在所述第一应用程序中查看的第一物理位置的信息(2601)。以上参照操作2401描述的细节也适用于操作2601。电子设备检测第一输入(2603)。在一些实施方案中,第一输入对应于打开应用程序切换用户界面的请求(2605)(例如,第一输入是在电子设备的物理Home按钮上的双击)。在一些实施方案中,第一输入对应于打开电子设备home屏幕的请求(2607)。(例如,第一输入是在电子设备的Home按钮上的单次轻击)。在一些实施方案中,第一输入是使设备至少部分地退出或切换应用程序的输入。
[0979] 响应于检测到第一输入,电子设备识别能够接受地理位置信息的第二应用程序(2609)。在一些实施方案中,识别第二应用程序能够接受地理位置信息包括以下中的一项或多项(2611):(i)确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段;(ii)确定第二应用程序能够在地图上显示地理位置信息;(iii)确定第二应用程序能够使用地理位置信息来促进路线引导;以及(iv)确定第二应用程序能够使用地理位置信息定位和提供运输服务。在一些实施方案中,识别第二应用程序能够接受地理位置信息包括:确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段,并且输入接收字段是搜索框,该搜索框允许在第二应用程序中显示的地图内进行搜索。
[0980] 响应于检测到第一输入,(作为识别第二应用程序的补充)电子设备在显示器的至少一部分上呈现不同于第一应用程序的示能表示,并建议打开具有关于第一物理位置的信息的第二应用程序(2613)。例如,如果第一输入对应于打开home屏幕的请求,则电子设备在home屏幕的一部分上呈现(2617)(例如,如图25B和图25G所示,在home屏幕的顶部显示示能表示2505)。又如,如果第一输入对应于打开应用程序切换用户界面的请求,则电子设备在应用程序切换用户界面内呈现示能表示(2615)(例如,在显示器上位于正在电子设备上执行的应用程序表示下方的区域,如图25H所示示能表示2505)。在一些实施方案中,该建议包括特定于与第二应用程序相关联的类型的文本描述(2619)(例如,使用识别第一物理位置的信息对在第二应用程序中要执行的动作的描述,或对在第二应用程序中进行的搜索的描述,例如,您想要乘车前往位置X吗?对比您想要查找地址X吗?)在一些实施方案中,基于可通过第二应用程序使用的功能来确定与第二应用程序相关联的类型(例如,第二应用如何使用位置信息以及基于第二应用程序对位置信息的使用可获得哪些功能)。
[0981] 现在转向图25B,电子设备在示能表示处检测第二输入(2621)。响应于在示能表示处检测到第二输入,电子设备打开第二应用程序,并且填充第二应用程序以包括至少部分地基于第一物理位置识别信息的信息(2623)。操作2627、2629和2631分别对应于以上参考方法2400所讨论的操作2423、2425和2427,并且上述讨论也适用于方法2600(为了简明起见,此处不再重复这些细节。)。
[0982] 和方法2400相比,在向用户提供建议,建议其打开具有第一物理位置相关信息的第二应用程序前,方法2600不会从用户接收打开第二应用程序的特定请求。这样,通过使操作与方法2400和2600两者相关联(以及使用来自这些方法中的每一种的一些处理步骤的组合),电子设备能够提供高效的用户体验,允许用户在打开能够接受地理位置信息的应用程序之前或之后预测地使用位置数据。此外,确定第二应用程序能够接受地理位置信息(在方法2600中)甚至在打开所述第二应用程序之前即已执行,并且以这种方式,将仅建议打开具有先前查看的位置信息的应用程序(如果已知该应用可以接受位置数据)。为了简明起见,关于方法2400的一些细节在这里没有针对方法2600重复说明,但是此类细节仍然适用于方法2600(诸如第一应用程序和第二应用程序可直接共享位置数据)。
[0983] 应当理解,对图26A至图26B中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法2400和方法2700)所述的其他过程的细节同样以类似的方式适用于上文结合图26A至图26B所述的方法2600。例如,以上参考方法2600所述的操作任选地具有参考本文所述其他方法(例如,方法2400和2700)在本文中描述的操作的一个或多个特征,或使用参考本文所述其他方法在本文中描述的操作。在一些实施方案中,第1至11部分的任何相关细节可以结合方法2600用于任何合适的目的。为了简明起见,此处不再重复这些细节。
[0984] 图27是根据一些实施方案,主动建议物理位置以用作车辆中路线引导的目的地的流程图表示。图28用于示出图27的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图1D中所示。
[0985] 在一些实施方案中,方法2700由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法2700由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法2700。在一些实施方案中,参照图1A,方法2700的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块132)和触敏显示器(例如,触敏显示器系统112)。方法2700中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
[0986] 如下所述,方法2700提供了一种直观的方式以在具有触敏显示器的电子设备上主动建议物理位置以用作车辆中路线引导的目的地。该方法通过要求更少的触摸输入(或不需要输入)以将物理位置用于路线引导,从而创建了更有效的人机界面。对于电池驱动的电子设备,主动建议物理位置以用作车辆中路线引导的目的地既节省电力又增加了电池两次充电之间的时间间隔。
[0987] 如图27所示,电子设备获取用于识别第一物理位置的信息,其中第一物理位置是用户在电子设备上正在执行的第一应用程序中查看的位置(2701)。电子设备确定用户已经进入车辆(2703)。在一些实施方案中,确定用户已经进入车辆包括检测电子设备已经建立与车辆的通信链路(2705)。在其他实施方案中,确定用户已经进入车辆可包括检测用户是否在该车辆的存储位置的预定距离内,从而在用户进入汽车之前即提示其使用第一地理位置作为路线引导的目的地。在一些实施方案中,以上参照方法1400讨论的任何其他确定也可用于证明用户已经进入车辆。
[0988] 响应于确定用户已经进入车辆,电子设备向用户提供使用第一物理位置作为路线引导目的地的提示(例如,在设备上的用户界面对象中,诸如图28所示用户界面对象2801,或者通过Siri提示,或两者)(2707)。响应于提供提示,电子设备从用户接收指令,指示用户将第一物理位置作为路线引导的目的地使用(2709)。
[0989] 然后,电子设备促进到第一物理位置的路线引导(2711)。在一些实施方案中,促进路线引导包括通过电子设备的显示器提供路线引导(2713)。在一些实施方案中,促进路线引导包括向车辆发送识别第一物理位置的信息(2715)。在一些实施方案中,促进路线引导包括通过与电子设备通信的音频系统提供路线引导(2717)(例如,车辆扬声器或设备自身的内部扬声器)。在一些实施方案中,执行操作2713、2715和2717中的两个或更多个以确保用户准确地跟随路线引导。
[0990] 在一些实施方案中,电子设备检测电子设备已接收到消息(语音信箱、文本、电子邮件或其他社交媒体消息),包括检测该消息包括识别第二物理位置的信息(2719)(在一些实施方案中,使用以上参照方法1800和2000讨论的一种或多种技术来执行检测)。在一些实施方案中,检测消息含有识别第二物理位置的信息包括:当电子设备上可用的虚拟助理正在通过和电子设备通信的音频系统将消息读出给用户时,执行检测(例如,Siri通过设备扬声器或车辆的音频系统读出消息)。
[0991] 在一些实施方案中,响应于检测,电子设备向用户提供将第二物理位置用作路线引导的新目的地的提示(2723)(例如,第二物理位置可对应于新的会合点,诸如在用户驾驶时改变的餐厅位置,而在其他实施方案中,直到用户已经到达第一物理位置之后才识别第二物理位置)。在一些实施方案中,响应于从用户接收到使用第二物理位置作为新目的地的指令,电子设备促进到第二物理位置的路线引导(2725)(例如,使用以上参照操作2711、2713、2715和2717讨论的一个或多个促进技术)。
[0992] 应当理解,对图27中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法2400和方法2600)所述的其他过程的细节同样以类似的方式适用于上文结合图27所述的方法2700。例如,以上参考方法2700所述的操作任选地具有参考本文所述其他方法(例如,方法2400和2600)在本文中描述的操作的一个或多个特征,或使用参考本文所述其他方法在本文中描述的操作。在一些实施方案中,第1至11部分的任何相关细节可以结合方法2700用于任何合适的目的。为了简明起见,此处不再重复这些细节。
[0993] 图29是根据一些实施方案主动建议粘贴动作的方法的流程图表示。图30A至图30D用于示出图29的方法和/或过程。尽管将参考触敏显示器(其中组合了触敏表面和显示器)上的输入给出随后的示例中的一些示例,但是在一些实施方案中,设备检测与显示器194分开的触敏表面195上的输入,如图1D中所示。
[0994] 在一些实施方案中,方法2900由电子设备(例如,图1A的便携式多功能设备100,根据图1E的计算设备A至D的任意一个配置)和/或电子设备的一个或多个部件(例如,I/O子系统106、操作系统126等)来执行。在一些实施方案中,方法2900由存储在非暂态计算机可读存储介质并由设备的一个或多个处理器诸如设备100的一个或多个处理器122(图1A)执行的指令来管理。为了便于解释,以下介绍了由设备100执行的方法2900。在一些实施方案中,参照图1A,方法2900的操作至少部分地通过以下项执行或使用以下项:主动模块(例如,主动模块163)及其部件、接触/运动模块(例如,接触/运动模块130)、图形模块(例如,图形模块132)和触敏显示器(例如,触敏显示器系统112)。方法2900中的一些操作任选地被组合,并且/或者一些操作的顺序任选地被改变。
[0995] 如下所述,方法2900提供了一种直观的方式以在具有触敏显示器的电子设备上主动建议粘贴动作。该方法可减少执行粘贴动作所需的用户输入,从而创建更有效的人机界面。对于电池驱动的电子设备,主动建议粘贴动作既帮助节省电力又增加了电池两次充电之间的时间间隔。
[0996] 如图29所示,电子设备在第一应用程序中呈现内容(2901)(例如,如图30A所示,设备呈现对应于即时消息应用程序的内容,包括来自远程用户的消息“去看big time乐队吧,他们真的很棒!”)。在一些实施方案中,电子设备接收复制该内容的至少一部分的请求(2903)(例如,用户复制文本“big time乐队”)。在一些实施方案中,未接收到任何复制该部分内容的请求(换句话讲,用户仅在第一应用程序中查看内容,而不请求复制任何内容)。
[0997] 电子设备接收来自用户的打开不同于第一应用程序的第二应用程序的请求,第二应用程序包括输入接收字段(2905)(例如,图30C所示输入接收字段3011)。例如,如图30B所示,用户在第二应用程序(例如,图30B所示示例中的浏览器应用程序)的图标上提供输入(例如,触摸3003),该输入对应于打开第二应用程序的请求。如图30C所示,响应于接收到该请求,电子设备呈现具有输入接收字段(例如,图30C所示输入接收字段3011)的第二应用程序(2907)。
[0998] 在一些实施方案中,电子设备将输入接收字段识别为能够接受该部分内容的字段(2909)。在一些实施方案中,响应于检测到输入接收字段的选择(例如,用户在图30C所示输入接收字段3011内轻击),执行识别(2911)。换句话讲,用户将焦点置于第一输入接收字段内,电子设备随后确定该第一输入接收字段能否接受主动复制的该部分内容。
[0999] 在一些实施方案中,在输入接收字段处接收到任何用户输入前,电子设备提供可选用户界面对象(或多于一个可选用户界面对象,诸如在图30C所示建议部分3007内所示的用户界面对象)以允许用户将内容的至少一部分粘贴到输入接收字段中(2913)。例如,使用基于该部分内容的两个建议内容项(例如,“big time乐队”和“big time乐队视频”)填充建议部分3007,其中所述建议部分大体上显示在第二应用程序内的虚拟键盘上方。响应于检测到可选用户界面对象(例如,图30C的输入3009)的选择,电子设备将该部分内容粘贴到输入接收字段(2915)(例如,如图30D所示,“big time乐队视频”被粘贴到输入接收字段3011中)。通过提供这种主动粘贴功能,用户不需要离开第二应用程序、重新打开第一应用程序、从第一应用程序中复制该部分、重新打开第二应用程序,然后在第二应用程序中执行粘贴动作。相反地,用户只需选择与用户想要粘贴的该部分内容相关联的可选用户界面对象,从而大大减少了执行相同粘贴功能所需附加输入的数量,为电子设备实现了更高效和更节能用户界面。
[1000] 在一些实施方案中,该部分内容对应于图像、文本内容或文本内容和图像(2915)。这样,电子设备能够主动针对各种内容类型建议粘贴动作,具体取决于第二应用程序能够接受的数据。
[1001] 在一些实施方案中,可选用户界面对象与以下指示一起显示:最近在第一应用程序中查看该内容的部分(例如,图30C所示建议部分3007包括诸如“您最近查看过一条有关‘big time乐队’的信息”的文本描述)。这样,向用户提供关于为什么提出粘贴建议的清楚指示。
[1002] 在一些实施方案中,用户界面对象还可以呈现在home屏幕或应用程序切换用户界面的一部分上,所述用户界面为用户提供了一个选项,使用户能够执行基于在第一应用程序中查看的内容的动作。在一些实施方案中,在请求打开第二应用程序之前呈现该用户界面对象(操作2905),并且可以在第一应用程序、home屏幕或应用程序切换用户界面上呈现该用户界面对象。图30B中示出了用户界面对象3005的示例。示例性用户界面对象3005允许用户使用第一应用程序中呈现的文本执行搜索(例如,对“big time乐队”执行系统范围搜索(例如,Spotlight搜索)或打开特定应用程序(诸如Safari)并执行该搜索)。
[1003] 虽然即时消息应用程序和浏览器应用程序被用作上述主要示例,但许多其他类型的应用程序也从与方法2900相关联的技术中受益。例如,第一应用程序可以是照片浏览应用程序,并且第二应用程序可以是即时消息应用程序(例如,使得在即时消息应用程序中呈现的主动粘贴建议对应于用户在照片浏览应用程序中查看的照片)。
[1004] 应当理解,对图29中已经进行描述的操作的具体顺序仅仅是示例性的,并非旨在表明所述顺序是可以执行这些操作的唯一顺序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。另外,应当指出的是,本文结合本文所述的其他方法(例如,方法2200和方法2900)所述的其他过程的细节同样以类似的方式适用于上文结合图29所述的方法2900。例如,以上参考方法2900所述的操作任选地具有参考本文所述其他方法(例如,方法2200和2900)在本文中描述的操作的一个或多个特征,或使用参考本文所述其他方法在本文中描述的操作。在一些实施方案中,第1至11部分的任何相关细节可以结合方法2900用于任何合适的目的。为了简明起见,此处不再重复这些细节。
[1005] 下面还提供了有关物理位置的建议信息的更多细节,这些细节可用于补充方法2200、2280、2900、2400、2600和2700。在一些实施方案中,方法2200、2280、2900、2400、2600和2700(或本文描述的任何其他方法)还获得有关以下各项的信息:来自web浏览应用程序(例如,来自加利福尼亚州库比蒂诺的APPLE INC的Safari)中用户查看的位置的物理位置(或其他类型的内容)、用户已经复制(例如,到粘贴板)的地址、与即将到来的日历事件相关联的位置(例如,如果事件被安排在预定时间段(诸如,1小时、30分钟等)内发生,则与该事件相关联的位置还可以在顺风车或其他应用程序中使用并向用户简单建议),以及用户与电子设备上的虚拟助理(例如,APPLE INC的Siri)进行交互时所讨论的位置(诸如,当用户向Siri询问附近的餐厅时,那么有关那些餐厅的信息可以被其他应用程序使用或作为对用户的建议用于其他应用程序中)。
[1006] 在一些实施方案中,位置可供其他应用程序使用或作为用户使用的建议,而不需要与位置相关的任何预先用户交互。例如,如果特定位置与即将到来的日历事件相关联,则可以主动建议该特定位置用于顺风车应用程序,即使用户最近没有查看即将到来的日历事件或特定位置。
[1007] 在一些实施方案中,在整个电子设备(例如,设备100)的各种应用程序和组件中提供了位置建议(例如,使用本文讨论的任何技术可获得的位置的建议)。例如,在一些实施方案中,位置建议可从以下各项内获取:
[1008] ·虚拟键盘上方的建议部分(也称为QuickType栏),例如参考图25D中的用户界面对象2505所讨论的;
[1009] ·应用程序切换用户界面,例如参考图25C中的用户界面对象2503所讨论的;
[1010] ·主屏幕上的地图应用程序,无需任何用户动作;
[1011] ·地图桌面小程序(例如,诸如可响应于用户在home屏幕的第一页上方在大致从左到右的方向上滑动而在主界面内显示的一个地图桌面小程序),在某些实施方案中,用户(即)在地图桌面小程序上方以增加强度执行手势导致在地图桌面小程序内显示建议的位置;
[1012] ·主屏幕上的CarPlay地图应用程序,无需任何用户动作(例如,针对方法2700所讨论的);
[1013] ·搜索界面(例如,以示出与搜索界面内的位置(诸如,图11B中的位置)相对应的搜索查询建议);以及
[1014] ·设备100的虚拟助理组件(例如,响应于来自用户的文本或口头问题,诸如“将我导航到那里”或“调用这个地方”,虚拟助理能够基于根据本文讨论的任何技术确定的建议位置消除对“那里”和“这个”的引用的歧义)。
[1015] 在一些实施方案中,关于使位置可被虚拟助理应用程序使用,设备100能够基于用户当前正在前台应用程序中查看的数据来响应诸如“将我导航到那里”或“调用这个地方”的问题。在一些实施方案中,为了响应向虚拟助理提出的问题而向服务器提交的任何请求以隐私保护方式执行。例如,当解析并响应“将我导航到那里”时,将请求发送到与虚拟助理相关联的服务器,并且仅将位置在当前应用中可用的指示提供给服务器,而没有任何其他用户识别信息,也没有明确公布的位置数据。在一些实施方案中,服务器解读并响应命令/问题,并且指示设备100开始导航到适当的位置(例如,用户在前台位置或某个其他适当位置中查看的位置,诸如即将到来的日历事件的位置)。
[1016] 在一些实施方案中,如果用户复制文本内容,则设备100自动(即,无需来自用户的任何明确指令来执行)确定所复制的文本内容是否包括位置信息(例如,地址或可以用于检索地址的某些其他信息,诸如餐厅名称等)。根据确定所复制的文本内容确实包括位置信息,设备100公布该地址以供能够显示和使用位置信息的其他系统组件(例如,上面提供的示例,诸如QuickType栏和应用程序切换用户界面等)使用。例如,用户接收到具有地址的文本消息,然后用户复制该地址,提供输入(例如,在home按钮上双击以呈现应用程序切换用户界面),并且响应于该输入,设备100显示用户界面对象,诸如读取“在地图中获取<地址>的路线”或位置可用于应用程序中的某些其他适当且指示性的短语的横幅(例如,上面讨论的用户界面2503)。
[1017] 在一些实施方案中,建议供用户使用的位置信息(例如,QuickType栏内、应用程序切换用户界面内等)根据将要使用位置信息的应用程序的类型而不同。例如,如果用户查看众包评论应用程序(例如,Yelp)中的位置,并且用户随后导航到顺风车应用程序(例如,Uber),则用户可以看到与他们之前查看的位置相对应的完整地址。然而,如果用户导航到天气应用程序,则可以仅将用户呈现在他们之前查看的位置的城市和州内而不是完整地址,因为天气应用程序仅需要城市和州的信息,而不需要完整地址。在一些实施方案中,应用程序能够指定提供位置信息应有的粒度级别,然后相应地提供所建议的位置信息(例如,以顺风车应用程序为第一粒度级别,以天气应用程序为第二级粒度级别)。
[1018] 在一些实施方案中,响应于用户对所建议的位置的选择而插入的位置信息取决于触发短语。例如,如果用户查看众包评论应用程序中的位置,然后切换到消息应用程序,并且开始键入“见面地点在”,则设备可能会显示用户之前在众包评论应用程序中(例如,图23F中的用户界面对象2309内)查看的位置。在一些实施方案中,如果用户选择所建议的位置(例如,在用户界面对象2309上轻击),则设备可以插入餐厅名称和餐厅地址(并且还可以插入其他相关信息,诸如菜单链接、电话号码等)。在一些实施方案中,如果用户已经键入“地址是”,则响应于用户对建议的选择,只有地址才可能被插入(而不是名称或其他细节,因为触发短语“地址是”表示只需要地址)。在一些实施方案中,设备100对可用于建议的特定位置的一个以上的表示进行维护,以便以不同粒度级别选择性地提供该信息。例如,如果用户从众包评论应用程序中复制地址,则设备100可以保留所复制的地址,并且可以另外存储可从众包评论应用程序获取的其他信息(例如,包括电话号码、餐厅名称、菜单链接等)。
[1019] 在一些实施方案中,设备100(或组件,诸如图1A的主动模块)主动监视日历事件并建议与即将到来的事件(例如,开始时间在预定时间量(诸如,30分钟、1小时或1.5小时)内的事件)相关联的位置,即使没有接收到与特定事件或其关联位置的任何用户交互。在一些实施方案中,考虑了交通状况以便调整预定时间量。
[1020] 在一些实施方案中,当应用程序被建议使用位置信息(例如,在应用程序切换用户界面中,诸如顺风车应用程序被建议使用图25C中的用户界面对象2503中的Gary Danko的位置)时,该应用程序是基于有助于识别应用程序的各种上下文信息/启发式过程(例如,基于应用程序使用模式、一天中的时间、一周中的日期、应用程序安装的最新情况等)而选择的,更多细节在下面参考第8部分提供)。在一些实施方案中,相应的应用程序最近的使用情况是为了识别应用程序而利用的附加因素(例如,如果用户最近去吃晚饭并且使用顺风车应用程序到达那里,则设备100可以确定用户试图在大约一个小时后回家,并将建议顺风车应用程序,因为该应用程序是最近常使用的)。
[1021] 如上所述,方法2200,2280,2900,2400,2600和2700(或本文描述的任何其他方法)中的任一种可以结合识别、存储和提供关于物理位置的信息来利用上述细节。
[1022] 附加具体实施方式
[1023] 下面在第1至11部分中提供的附加说明提供了补充上面提供的内容的附加细节。在某些情况或实施方案中,上述方法(例如,方法600,800,1000,1200,1400,1600,1800,
2000,2200,2280,2400,2600,2700和2900)中的任一种可以使用下面参考第1至11部分所提供的一些细节,以视情况改进或改善任何方法的操作。本领域的普通技术人员将理解下面第1至11部分中的描述补充本文提供的公开内容(例如,参考图1A至图30D)的众多方式。
[1024] 第1部分:移动设备的动态调整
[1025] 本部分中的内容“移动设备的动态调整”涉及根据一些实施方案的基于用户活动、对等事件数据、系统数据、表决器反馈、系统事件的自适应预测和/或热状况来动态调整移动设备,并且提供了补充本文提供的公开内容的信息。例如,如下面更详细地描述,本部分描述了预测应用程序将在一天中的何时被使用/调用,并且还描述了检查使用统计资料以确定应用程序是否可能在不久的将来被用户调用,这对本文提供的有关例如方法600的操作604和608以及方法800的操作808的公开内容进行了补充。又如,第1部分描述了所使用的时间预测指示与属性相关联的事件在一天中的什么时候可能发生(例如,在24小时内,用户将启动特定类型的应用程序诸如邮件应用程序的可能时间),这对本文提供的公开内容(例如,与使用数据的收集/存储(图3A至图3B)和触发条件的创建/存储(图4A至图4B)以及方法800的操作808相关的公开内容)进行了补充。再如,第1部分讨论了使用附加数据(位置数据、运动数据等)来改进时间预测并生成全景预测,该全景预测分配关于特定应用程序在特定时间段内将被启动的百分比值,这对本文提供的公开内容(例如,与触发条件的创建/存储(图4A至图4B)相关的公开内容)进行了补充。再如,第1部分描述了使用表决系统来管理所预测事件的执行,这对本文提供的公开内容(例如,与使用数据的收集/存储(图3A至图
3B)和触发条件的创建/存储(图4A至图4B)以及方法800的操作808相关的公开内容)进行了补充。再如,第1部分描述了预测与属性相关联的事件将在一段时间内发生的可能性(基于各种类型的预测),这对本文提供的公开内容(例如,与使用数据的收集/存储(图3A至图3B)和触发条件的创建/存储(图4A至图4B)相关的公开内容)进行了补充。再如,第1部分描述了热状况的管理,这对本文提供的有关节省电量(例如,以确保方法600和800或上述任何其他方法以节能方式操作)的公开内容进行了补充。
[1026] 移动设备动态调整的摘要
[1027] 在一些具体实施中,移动设备(例如,图1A的设备100)可以被配置为监视环境、系统和用户事件。移动设备可以被配置为检测可触发对系统设置进行调整的一个或多个事件的发生。
[1028] 在一些具体实施中,移动设备可以被配置有预定义和/或动态定义的属性。系统可以使用该属性来跟踪系统事件。属性事件可以被存储并且稍后用于预测属性事件的未来发生。系统可以使用所存储的属性事件来对移动设备执行的处理做出决定。属性可以与预算相关联,这些预算允许预算资源支持系统上的未来事件或活动。
[1029] 在一些具体实施中,在移动设备上运行的各种应用程序、功能和过程可以提交属性事件。应用程序、功能和过程可以基于所提交的事件稍后请求预测。应用程序、功能和过程可以基于与属性相关联的预算和与所报告的事件相关联的成本执行预算。例如,应用程序、功能和过程可以与移动设备或第三方应用程序的操作系统相关联。
[1030] 在一些具体实施中,移动设备可以被配置为保持频繁调用的应用程序为最新。移动设备可以记录用户何时调用应用程序。基于调用信息,移动设备可以预测应用程序在一天中的何时被调用。然后,移动设备可以预先启动应用程序并下载更新,使得用户可以调用该应用程序并查看当前更新的内容,而不必等待应用程序下载更新的内容。
[1031] 在一些具体实施中,移动设备可以接收与应用程序相关联的推送通知,该推送通知指示有新内容可供应用程序下载。移动设备可以在后台启动与推送通知相关联的应用程序,并且下载新的内容。在下载内容之后,移动设备可以呈现向用户指示接收到推送通知的图形界面。然后,用户可以调用应用程序并查看更新的内容。
[1032] 在一些具体实施中,移动设备可以被配置为执行移动设备上应用程序的内容的下载和/或上载过程。例如,专用过程可以在移动设备上被配置为下载和/或上载移动设备上应用程序的内容。
[1033] 在执行上载/下载时,可以暂停或终止应用程序。当完成上载/下载之后,可以调用应用程序。
[1034] 在一些具体实施中,在运行应用程序或访问网络接口之前,移动设备可以被配置为检查电池电量和蜂窝数据使用预算,以确保足够的电力和数据可用于用户调用的操作。在后台启动应用程序之前,移动设备可以检查使用统计资料,以确定应用程序是否可能在不久的将来被用户调用。
[1035] 在一些具体实施中,属性事件数据可在同一用户拥有的移动设备之间共享。移动设备可以从对等设备接收事件数据,并且基于所接收的事件数据对涉及对等设备的交互或操作做出决定。事件数据可以作为预测、统计资料和/或原始(例如,未经处理的)事件数据被共享。例如,移动设备可以基于所接收的事件数据来确定是否与对等设备进行通信。
[1036] 特定的具体实施提供了至少以下优点:通过响应于检测到的事件而动态调整移动设备的组件,可以节省电池电量。通过预期用户将在何时调用应用程序并且下载内容,使得用户将在调用应用程序时查看更新的内容,可以改进用户体验。
[1037] 在下面的附图和具体实施方式中阐述了一种或多种具体实施的细节。其他特征、方面和潜在优点将在具体实施方式和附图以及权利要求中显而易见。
[1038] 移动设备动态调节的详细说明
[1039] 概述
[1040] 本部分描述了一种系统架构,该系统架构用于基于各种系统事件实现移动设备适配,以便于在电池寿命、功率需求、热管理和性能之间进行权衡。该系统提供基础事件采集架构和一组从系统事件中学习的启发式过程,从而最大限度地延长电池寿命,而不会明显降低用户体验。系统监视系统定义和客户端定义的属性,并可以使用系统定义和客户端定义的属性来预测或预报未来事件的发生率。该系统可以基于动态收集的统计信息和/或明确指定的用户意图来预期系统的未来行为以及用户对设备性能的期望。该系统可以确定要设定的硬件和软件控制参数以及所设定参数的值,以改善用户对于预期系统行为的体验。该系统利用系统监视和硬件控制来实现用户体验的全面改善,同时扩展可用于移动设备的系统和网络资源。因此,系统可以在使系统和网络资源最大化的同时,使对用户体验的影响最小化。
[1041] 数据收集—以用户为中心的统计
[1042] 图31_1示出了被配置为执行移动设备31_100的动态调节的示例性移动设备31_100。在一些具体实施中,移动设备31_100可以包括取样守护进程31_102,其收集与设备状况、网络状况、系统服务(例如,守护进程)和用户行为相关的事件。例如,取样守护进程31_
102可以收集与应用程序、传感器和由移动设备31_100接收的用户输入相关的统计信息,并将该统计信息存储在事件数据存储库31_104中。该统计信息可以由移动设备31_100上运行的各种客户端(例如,应用程序、实用程序、功能、第三方应用程序等)使用被报告为事件的预定义或客户定义的属性来报告给取样守护进程31_102。
[1043] 数据收集—事件和属性
[1044] 在一些具体实施中,移动设备31_100可以被配置为具有用于收集系统和/或应用程序事件的框架。例如,移动设备31_100可以被配置为具有应用编程接口(API),该API允许移动设备31_100的各种应用程序、实用程序和其他部件向取样守护进程31_102提交事件以用于之后的统计分析。
[1045] 在一些具体实施中,由取样守护进程31_102记录在事件数据存储库31_104中的每个事件可以包括属性名称(例如“包名(bundleId)”)、属性值(例如“联系人”)、匿名信标信息、匿名位置信息、日期信息(例如,事件的GMT日期)、时间信息(例如,事件的本地化24小时时间)、网络质量信息、处理器利用率量度、磁盘输入/输出量度、当前用户的标识和/或事件类型(例如,开始、停止、发生)。例如,属性名称可以标识出与事件相关联的属性的类型。属性名称可以用于标识例如由取样守护进程31_102所跟踪的特定度量。属性值可以是与属性相关联的值(例如,字符串、整数、浮点)。匿名信标信息可以指示哪个无线信标(例如,蓝牙、低功耗蓝牙、Wi-Fi等)在移动设备的范围内,而不会将信标信息与用户或设备绑定或相关联起来。类似地,匿名位置信息可以标识移动设备的位置,而不将位置信息与用户或设备绑定或相关联起来。例如,可以使用移动设备31_100上所配置的各种收发器从卫星数据(例如,全球定位卫星系统)、蜂窝数据、Wi-Fi数据、蓝牙数据得出位置信息。网络质量信息可以指示当事件发生时由移动设备31_100所检测到的移动设备网络(例如,Wi-Fi、蜂窝、卫星等)连接质量。
[1046] 在一些具体实施中,每个事件的事件数据可以指示事件发生、开始或停止。例如,可以对指示属性的开始事件和停止事件的相同属性的事件对进行计时(例如,持续时间计时)。例如,取样守护进程31_102可以接收具有值“联系人”的属性“包名”的开始事件。之后,取样守护进程102可以接收具有值“联系人”的属性“包名”的停止事件。取样守护进程31_102可以将开始事件的时间与停止事件的时间进行比较,以确定“联系人”应用程序活动的时间(例如,持续时间)。在一些具体实施中,未受计时的事件可以被记录为点事件(例如,单次发生)。例如,与“电池电量”系统属性(其指定事件发生时的瞬时电池电量)相关联的事件可简单地被记录为事件的发生。
[1047] 下表1提供了由取样守护进程31_102记录在事件数据存储库31_104中的属性事件条目的示例。第一条目记录了“包名”事件,其指示用户“Fred”已经调用了“联系人”应用程序。此“包名”事件为开始事件,其指示Fred已经开始使用联系人应用程序。第二条目是“电池电量”事件条目,其指示移动设备31_100的电池电量为46%;该事件是发生类型事件(例如,单点事件)。第三条目是与值“George”相关联的“人名”事件。“人名”事件用于记录用户Fred已经访问了联系人应用程序中联系人“George”的联系人信息这一事实;这是一个发生类型事件。第四条目记录了“包名”事件,其指示用户“Fred”已经关闭或隐藏了“联系人”应用程序。此“包名”事件为停止事件,其指示Fred已经停止使用联系人应用程序。通过记录“包名”属性的开始和停止事件,取样守护进程31_102可以基于对应于开始和停止事件的时间戳,确定用户Fred已于2014年5月12日使用联系人应用程序8分钟。该属性事件信息可以例如用于预报与移动设备31_100上的应用程序相关的用户活动,特别是关于联系人应用程序的用户活动。
[1048] 表1
[1049]属性名称 值 信标 位置 日期 时间 网络质量 用户ID 状态
包名 “联系人” B1,B2… 位置1 20140512 1421 8 Fred 开始
电池电量 46 B1,B2… 位置2 20140512 1424 8 Fred 发生
人名 “George” B1,B2… 位置2 20140512 1426 8 Fred 发生
包名 “联系人” B1,B2… 位置1 20140512 1429 8 Fred 停止
[1050] 预定义属性
[1051] 在一些具体实施中,可以使用公知的或预定义的属性来将事件数据提交给取样守护进程31_102。公知的或预定义的属性可以是通用系统属性,其可以被移动设备31_100的各种应用程序、实用程序、功能或其他部件所使用,以将事件数据提交给取样守护进程31_102。虽然属性定义(例如,属性名称、相关联值的数据类型等)是预定义是,但是分配给预定义属性的值可以随事件而变化。例如,移动设备31_100可以被配置为具有用于识别应用程序的预定义属性“包名”,和用于识别所关注人的预定义属性“人名”。分配给“包名”的值可以基于移动设备31_100上哪个应用程序处于活动状态而有所不同。分配给“人名”的值可以基于用户输入而有所不同。例如,如果用户自“George”选择电子邮件,则可以将“人名”属性值设定为“George”。如果用户选择与“Bob”相关联的联系人条目,则可以将“人名”属性值设定为“Bob”。当移动设备31_100的应用程序、实用程序、功能或其他部件使用预定义属性将事件提交给取样守护进程31_102时,该应用程序、实用程序、功能或其他部件可以指定与该事件的预定义属性相关联的值。在以下段落中描述了预定义或公知的系统事件的示例。
[1052] 在一些具体实施中,移动设备31_100可以被配置为具有指示安装在移动设备31_100上的应用程序(例如,应用包)名称或标识符的预定义属性(例如,“系统.包名”)。当应用程序启动时,应用程序管理器31_106(例如,负责启动应用程序)可以使用取样守护进程31_
102的API将应用程序的标识符或名称(例如,用于联系人应用程序的“联系人”)提交为“系统.包名”系统属性的值。取样守护进程31_102可以例如与如上所述的其他事件数据一起将“联系人”应用程序启动的发生作为事件记录在事件数据存储库31_104中。另选地,应用程序可以使用取样守护进程31_102的API来指示分别对应于何时调用应用程序“联系人”以及何时隐藏或关闭该应用程序的开始和停止事件。例如,“包名”属性可用于记录移动设备31_
100上的应用程序启动事件。“包名”属性可用于记录移动设备31_100上的应用程序终止事件。通过指定与“包名”属性相关联的开始和停止事件,而不仅仅指定事件的发生,取样守护进程31_102可以确定移动设备31_100的用户使用“联系人”应用程序的时间长短。
[1053] 在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备31_100的用户的名称或标识符或移动设备31_100的用户所感兴趣的人的预定义属性(例如,“系统.人名”)。例如,在登录、唤醒或以其他方式访问移动设备31_100时,可以生成与“人名”属性相关联的事件并将其提交给取样守护进程31_102,该取样守护进程识别移动设备31_100的当前用户。当用户访问与另一个人相关联的数据时,可以生成“人名”属性事件并将其提交给取样守护进程31_102,该取样守护进程将另一个人识别为用户感兴趣的人。
[1054] 在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备31_100位置的预定属性(例如,“系统.匿名位置”)。例如,移动设备31_100可以生成与“匿名位置”属性相关联的事件并将其提交给取样守护进程31_102,该属性指定出在事件生成时移动设备31_100的位置。位置数据可以被匿名,使得该位置无法在之后与特定用户或设备绑定或相关联起来。例如,每当用户使用移动设备31_100的基于位置的服务时,“匿名位置”属性事件可得以生成和存储。
[1055] 在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备31_100的飞行模式打开或关闭的预定义属性(例如,“系统.飞行模式”)。例如,当用户打开或关闭飞行模式时,移动设备31_100可以生成并向取样守护进程31_102提交事件,该取样守护进程指示事件发生时的飞行模式状态。例如,当飞机模式打开时,“飞行模式”属性的值可设定为真(例如,一),当飞机模式关闭时,“飞行模式”属性的值可设定为假(例如,零)。取样守护进程31_102继而可以在事件数据存储库31_104中存储“飞行模式”事件,包括“飞行模式”属性值。
[1056] 在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备31_100的电力缆线被插入或未被插入的预定属性(例如,“系统.缆线插入”)。例如,当移动设备31_100检测到电力缆线已被拔掉时,移动设备31_100可以生成指示“缆线插入”属性值为假(例如,零)的事件。当移动设备31_100检测到电力缆线已经插入到移动设备31_100中时,移动设备31_100可以生成指示“缆线插入”属性为真(例如,一)的事件。移动设备31_100可以将“缆线插入”事件提交给取样守护进程31_102,以存储在事件数据存储库31_104中。
[1057] 在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备31_100的显示屏是被锁定还是解锁的预定义属性(例如,“系统.屏幕锁定”)。例如,移动设备31_100可以检测移动设备31_100的显示屏何时已被锁定(例如,由系统或由用户)或者被解锁(例如,由用户)。在检测到显示屏的锁定或解锁时,移动设备31_100可以生成包括“屏幕锁定”属性的事件,并将事件的“屏幕锁定”属性值设定为真(例如,锁定,整数一)或假(例如,解锁,整数零),以指示移动设备31_100的显示屏是被锁定还是解锁。移动设备31_100可以将“屏幕锁定”事件提交给取样守护进程31_102,以存储在事件数据存储库31_104中。
[1058] 在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备31_100是否处于睡眠模式的预定义属性(例如,“系统.睡眠唤醒”)。例如,移动设备31_100可以检测移动设备31_100何时进入睡眠模式。移动设备31_100可以检测移动设备31_100何时退出睡眠模式(例如,唤醒)。当检测到进入或退出睡眠模式时,移动设备可以生成包括“睡眠唤醒”属性的事件,并将该属性值设定为真或假(例如,分别为整数一或零),以指示“睡眠唤醒”事件发生时的移动设备31_100的睡眠模式状态。移动设备31_100可以将“睡眠唤醒”事件提交给取样守护进程31_102,以存储在事件数据存储库31_104中。
[1059] 在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备31_100的显示器是否点亮的预定属性(例如,“系统背光”)。可为“背光”属性分配指示背光强度或水平的值。例如,移动设备31_100的用户可以调节移动设备31_100的显示器的照明(背光)的强度。当环境光线明亮时,用户可以增加背光的强度。当环境光线较暗时,用户可以降低背光的强度。在检测到背光设置的变化时,移动设备31_100可以生成包括“背光”属性的事件,并将该属性值设定为调节的背光设置(例如,强度级别)。移动设备31_100可以将“背光”变化事件提交给取样守护进程31_102,以存储在事件数据存储库31_104中。
[1060] 在一些具体实施中,移动设备31_100可以被配置为具有指示由移动设备31_100的环境光线传感器检测到的环境光线强度值的预定属性(例如,“系统.ALS”)。可为“ALS”属性分配指示移动设备31_100周围的环境光线的强度或水平的值。例如,移动设备31_100的环境光线传感器可以检测到环境光线强度的变化。移动设备31_100可以确定该强度变化超过某个阈值。当检测到环境光线的变化超过该阈值时,移动设备31_100可以生成包括“ALS”属性的事件,并将该属性值设定为检测到的环境光线强度值。移动设备31_100可以将“ALS”变化事件提交给取样守护进程31_102,以存储在事件数据存储库31_104中。
[1061] 在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备31_100的接近传感器何时检测到移动设备31_100的显示器靠近物体(例如,用户的脸、在桌上等)的预定属性(例如,系统.接近度)。可为“接近度”属性指定指示移动设备的显示器是否接近对象(例如,真、假、0、1)的值。例如,移动设备31_100的接近传感器可以检测接近度的变化。当检测到接近度的变化时,移动设备31_100可以生成包括“接近度”属性的事件,并且当移动设备31_100接近对象时将该属性值设定为真(例如,一)、当移动设备31_100未接近对象时将该属性值设定为假(例如,零)。移动设备31_100可以将“接近度”变化事件提交给取样守护进程31_102,以存储在事件数据存储库31_104中。
[1062] 在一些具体实施中,移动设备31_100可以被配置为具有指示由移动设备31_100检测到的运动的类型的预定属性(例如,“系统.运动状态”)。可为“运动状态”属性指定指示移动设备是否正处于静止、正在移动、正在跑步、正在驾驶、正在行走等等的值。例如,移动设备31_100的运动传感器(例如,加速度计)可以检测移动设备31_100的移动。移动设备31_100可以基于在所检测的移动中检测到的运动模式来将检测到的移动分类。可将运动模式分类成多种用户活动,例如用户静止、移动、跑步、驾驶、行走等。在检测到移动的变化时,移动设备31_100可以生成包括“运动状态”属性的事件,并将该属性值设定为检测到的移动类型(例如,静止、跑步、行走、驾驶等)。移动设备31_100可以将“运动状态”事件提交给取样守护进程31_102,以存储在事件数据存储库31_104中。
[1063] 在一些具体实施中,移动设备31_100可以被配置为具有指示由移动设备31_100检测到的网络连接质量的预定属性(例如,“系统.网络质量”)。可为“网络质量”属性分配指示在n秒(例如,1毫秒,2秒等)时间段内的网络吞吐量值的值。例如,移动设备31_100可以连接到数据网络(例如,蜂窝数据、卫星数据、Wi-Fi、互联网等)。移动设备31_100可以监视一段时间(例如,5秒)内的网络连接的数据吞吐量。移动设备可以计算每秒传输的数据量(例如,比特/秒、字节/秒等)。在检测到吞吐量发生变化或者在创建新的网络连接时,移动设备31_100可以生成包括“网络质量”属性并将该属性值设定为所计算的吞吐量值的事件。移动设备31_100可以将“网络质量”事件提交给取样守护进程31_102,以存储在事件数据存储库
31_104中。
[1064] 在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备31_100的内部电池的瞬时充电水平的预定属性(例如,“系统.电池电量”)。可为“电池电量”属性分配指示电池的充电水平(例如百分比)的值。例如,移动设备31_100可以周期性地(例如,每5秒、每分钟、每15分钟等)确定电池的充电水平,并产生“电池电量”事件以记录电池的充电水平。移动设备31_100可以监视电池充电电量,并确定充电水平何时发生阈值量的改变,并生成“电池电量”事件来记录电池的充电水平。移动设备31_100可以将“电池电量”事件提交给取样守护进程31_102,以存储在事件数据存储库31_104中。
[1065] 在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备31_100的热水平的预定属性(例如,“系统.热水平”)。例如,移动设备31_100的热水平可以是移动设备的当前工作温度(例如,摄氏度)。移动设备31_100的热水平可以是表示温度值范围的水平(例如,高、中、低、正常、异常等)。例如,移动设备31_100可以被配置为具有用于监视移动设备31_100的热状态的实用程序或功能。当检测到温度变化或热水平变化时,移动设备31_100的热实用程序可以生成包括“热水平”属性的事件,并将该属性值设定为工作温度或当前热水平。移动设备31_100可以将“热水平”事件提交给取样守护进程31_102,以存储在事件数据存储库31_104中。
[1066] 在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备31_100在n秒(例如,2毫秒、3秒等)时间段内的能量使用量的预定属性(例如,“系统.能量”)。例如,当用户调用移动设备31_100的功能(例如,应用程序调用、显示器照明、数据传输等)时,移动设备31_100可以监视在执行该功能的这一时间段内的能量使用量,以估计每个活动或功能所使用的能量数量。然后,移动设备31_100可以生成包括“能量”属性的事件,并将该属性值设定为所计算的平均能量使用量。移动设备31_100可以将“能量”事件提交给取样守护进程31_102,以存储在事件数据存储库31_104中。
[1067] 在一些具体实施中,移动设备31_100可以被配置为具有指示移动设备31_100在n秒(例如,2毫秒、3秒等)时间段内的网络数据的预定属性(例如,“系统.网络字节”)。例如,当用户调用需要通过移动设备31_100的网络连接来传输数据的功能或发起该项操作时,移动设备31_100可以监视某一时间段内的网络数据使用量,以估计每个活动或功能所使用或传输的网络数据量。然后,移动设备31_100可以生成包括“网络字节”属性的事件,并将该属性值设定为所计算的平均网络数据使用量。移动设备31_100可以将“网络字节”事件提交给取样守护进程31_102,以存储在事件数据存储库31_104中。
[1068] 其他预定义的属性可以包括:“系统.充电状态”属性,其具有指示移动设备31_100是否正对其电池充电的真/假(例如,一/零)属性值;“系统.电池容量”属性,其具有指示当前电池充电情况(例如,以mAh计,与电池电量成比例)的属性值,以及“系统.设备存在”属性,其具有跟踪对等设备外观的设备标识符(例如,字符串)属性值。例如,当调度对等数据共享时,可以使用“设备存在”属性来预测对等设备的外观。
[1069] 自定义属性
[1070] 在一些具体实施中,可以由取样守护进程31_102的客户端动态地定义特定于客户端的属性。例如,客户端(例如,第三方应用程序)可以动态地定义其自身的事件属性,而不是使用移动设备31_100上所预定义(例如,在取样守护进程31_102或操作系统中)及配置的属性。例如,电子邮件应用程序可以动态地(例如,在运行时)创建“邮箱”属性。电子邮件应用程序(“邮件应用”)可以使用取样守护进程31_102的API来定义属性名称(例如,“邮件应用.邮箱”)和属性值类型(例如,字符串、整数、浮点数)。一旦客户端已创建(注册)新的自定义属性,该客户端就可以使用该属性来生成要存储在事件数据存储库31_104中的事件。例如,邮件应用可以使用“邮箱”属性来报告电子邮件应用程序中的哪个邮箱正在受到用户访问。如果用户正在访问“工作”邮箱,则邮件应用可以使用“邮件应用.邮箱”属性创建事件,并将该属性的值设定为“工作”,以记录用户对“工作”邮箱的访问。取样守护进程31_102和客户端然后可以使用所存储的邮箱事件信息来预测例如用户将来何时可能访问“工作”邮箱。
[1071] 在一些具体实施中,当从移动设备31_100移除(例如,删除、卸载)客户端应用程序时,由该客户端应用程序所创建的属性可从移动设备31_100被删除。此外,当客户端应用程序被移除时,与该客户端应用程序相关联的事件数据可被删除。例如,如果从移动设备31_100删除了邮件应用,则可以从移动设备31_100删除属性“邮件应用.邮箱”以及与该邮件应用相关联的所有事件数据。
[1072] 示例性事件生成客户端
[1073] 在一些具体实施中,取样守护进程31_102可以从应用程序管理器进程31_106接收应用程序事件(例如,“系统.包名”事件)。例如,应用程序管理器31_106可以是开始、停止和监视移动设备31_100上的应用程序(例如,应用程序31_108)的进程。在一些具体实施中,应用程序管理器31_106可以向取样守护进程31_102报告移动设备31_100上所运行的应用程序的开始和停止时间(例如,“包名”开始和停止事件)。例如,当用户调用或启动应用程序时,应用程序管理器31_106可以通过提交所调用应用程序的“包名”开始事件(其指定了应用程序的名称或标识符),来通知取样守护进程31_102关于应用程序的调用。在一些具体实施中,应用程序管理器31_106可以向取样守护进程31_102指示:响应于推送通知、用户调用或者预测或预报的用户应用程序调用,应用程序启动被发起。当应用程序终止时,应用程序管理器31_106可通过提交该应用程序的“包名”停止事件(其指定了应用程序的名称或标识符),来通知取样守护进程31_102该应用程序不再运行。
[1074] 在一些具体实施中,取样守护进程31_102可以使用应用程序开始和结束事件(例如,“包名”属性事件)来生成每个应用程序的使用时间历史。例如,每个应用程序的使用时间历史可以包括,对于应用程序的每次执行而言的,从应用程序的上次执行以来已经过去的时间量和执行持续时间。取样守护进程31_102可以维护用户调用的应用程序启动和/或系统启动的(例如,自动启动的)应用程序的单独历史。因此,取样守护进程31_102可以维护在移动设备31_100上执行的所有应用的使用统计信息。
[1075] 在一些具体实施中,取样守护进程31_102可以从电力监视过程31_108接收电力事件。例如,电力监视器31_109可以监视移动设备31_100的电池容量、放电、使用和充电特性。电力监视器31_109可以确定移动设备31_100何时插入外部电源,以及移动设备31_100何时依赖电池电源。当移动设备31_100插入外部电源时,电力监视器31_109可以通知取样守护进程31_102。例如,当电力监视器检测到移动设备31_100插入外部电源时,电力监视器31_
109可以向取样守护进程31_102发送“缆线插入”属性值为一(例如,真)的“缆线插入”事件。
该事件可以包括连接外部电源时的电池充电情况。电力监视器31_109可以向取样守护进程
31_102发送“能量”属性事件以报告电池使用率。
[1076] 在一些具体实施中,当移动设备31_100与外部电源断开连接时,电力监视器31_109可以通知取样守护进程31_102。例如,当电力监视器检测到移动设备31_100与外部电源断开连接时,电力监视器31_109可以向取样守护进程31_102发送“缆线插入”属性值为零(例如,假)的“缆线插入”事件。该消息可以包括当外部电源断开时的电池充电情况。因此,取样守护进程31_102可以维护描述移动设备31_100的电池的充电分配情况(例如,随时间的充电)的统计信息。充电分配统计信息可以包括自上次充电以来的时间量(例如,自插入外部电源以来的时间),和由于充电而导致的电池充电情况的变化(例如,充电的开始水平、充电的结束水平)。
[1077] 在一些具体实施中,电力监视器31_109可以通知取样守护进程31_102全天的电池充电情况的变化。例如,当应用程序开始和停止时,电力监视器31_109可以得到通知,并且该电力监视器可响应于该通知,确定该期间内释放的电池电量和电池中剩余的电荷量,并将该信息发送给取样守护进程31_102。例如,电力监视器31_109可以向取样守护进程31_102发送“系统.能量”事件,以指示在应用程序处于活动状态的时间段内所消耗的能量的量。
[1078] 在一些具体实施中,取样守护进程31_102可以从热守护进程31_110接收设备温度统计信息。例如,热守护进程31_110可以使用一个或多个温度传感器来监视移动设备31_100的工作温度状况。热守护进程31_110可被配置为定期向取样守护进程31_102报告温度变化。例如,热守护进程31_110可以每五秒钟确定一次移动设备31_100的工作温度,并将移动设备31_100的温度或热水平报告给取样守护进程31_102。例如,热守护进程31_110可以向取样守护进程31_102发送“系统.热水平”事件,以报告移动设备31_100的当前工作温度或热水平。取样守护进程31_102可以将所报告的温度存储在事件数据存储库31_104中。
[1079] 在一些具体实施中,取样守护进程31_102可以从设备设定过程31_112接收设备设定统计信息。例如,设备设定过程31_112可以是移动设备31_100的操作系统的功能或过程。设备设定过程31_112可以例如接收用户输入以调节各种设备设置,例如打开/关闭飞行模式、打开/关闭Wi-Fi、打开/关闭漫游等。设备设定过程31_112可以将设备设定的变化报告到取样守护进程31_102。每个设备设置可以具有相应的预定义事件属性。例如,当用户打开或关闭移动设备31_100上的飞行模式时,设备设定过程31_112可以向取样守护进程31_102发送“系统.飞行模式”事件。取样守护进程31_102可以基于接收到的事件和属性值来生成并存储设备设置的统计信息。例如,每当启用(或禁用)某一设置时,取样守护进程31_102可以存储指示如下内容的数据:自先前启用设置以来已经过去的时间量,以及启用该设置的时间量(例如持续时间)。
[1080] 类似地,在一些具体实施中,当其他事件发生时,取样守护进程31_102可以接收来自其他移动设备31_100部件(例如,设备传感器31_114)的通知。例如,取样守护进程31_102可在以下时候接收到通知:当移动设备的屏幕被打开或关闭时(例如,“系统背光”事件)、当移动设备31_100被保持在用户面部旁边时(例如,“系统接近度”事件)、当检测到小区塔切换时、当基带处理器处于搜索模式时(例如,“系统.基带搜索”事件)、当移动设备31_100检测到用户正在行走、跑步和/或驾驶时(例如,“系统.运动状态”事件)。在每种情况下,取样守护进程31_102可以在事件开始和结束时接收到通知。在每种情况下,取样守护进程31_102可以生成并存储指示自上次检测到该事件以来已经过去的时间量以及事件持续时间的统计信息。取样守护进程31_102可以接收其他事件通知并生成其他统计信息,如下文关于特定用例和场景所进一步描述的。
[1081] 应用程序事件
[1082] 在一些具体实施中,取样守护进程31_102可以从移动设备31_100上的应用程序接收事件信息。例如,移动设备31_100上的应用程序可以向取样守护进程31_102生成包括预定义或动态定义的属性的事件,以跟踪各种特定于应用程序的事件。例如,取样守护进程31_102可以从日历应用程序31_116接收日历事件(例如,包括“日历.约会”、“日历.会议”或“日历.提醒”属性等)。日历事件可以包括“日历.约会”,“日历.会议”或“日历.提醒”属性,其具有指定与各种日历事件或功能相关联的位置、时间或其他数据的值。例如,取样守护进程31_102可以存储例如属性名称、属性持续时间和/或属性被安排发生的时间。在一些具体实施中,取样守护进程31_102可以从时钟应用程序31_118接收时钟事件(例如,包括“时钟.闹钟”属性)。例如,取样守护进程31_102可以存储属性名称(例如,“时钟.闹钟”)和指示闹钟被安排发生的时间的值。取样守护进程31_102可以从其他应用程序(例如,媒体应用程序、卡券簿应用程序等)接收事件信息,如下文进一步描述。
[1083] 应用程序统计数据
[1084] 在一些具体实施中,取样守护进程31_102可以跨应用程序启动事件收集应用程序统计信息。例如,取样守护进程31_102可以跨应用程序的许多次调用来收集每个应用程序的统计信息(例如,事件、“包名”属性值)。例如,每个应用程序可以利用一散列其可执行文件系统路径和可执行内容散列来进行标识,以使同一应用程序的不同版本可以作为不同应用程序来受到处理。例如,可以在“包名”事件中将应用程序散列值作为“包名”属性的值提交到取样守护进程31_102。
[1085] 在一些具体实施中,取样守护进程31_102可以维护跟踪每个应用程序的后台任务完成断言事件的计数器。例如,每当应用程序作为后台任务运行(例如,在前台不可见并且/或者目前未被用户使用)时,应用程序或应用程序管理器31_106可以在应用程序终止或暂停时通知取样守护进程31_102,并且取样守护进程31_102可以使计数器递增。取样守护进程31_102可以维护跟踪应用程序在后台运行的跨应用程序启动累积秒数的计数器。例如,取样守护进程31_102可以分析“包名”开始和停止事件,以确定应用程序何时开始和停止,并使用开始和停止事件的时间戳来确定应用程序运行了多长时间。在一些具体实施中,取样守护进程31_102可以维护如下独立计数器:其计数数据连接的数量;跟踪网络数据通信量(例如,以字节为单位);跟踪文件系统操作的持续时间和大小;并且/或者跟踪与每个应用程序相关联的线程数。取样守护进程31_102可以维护例如跨应用程序启动的应用程序保持活动状态的累积时间量的计数。这些仅仅是可以由取样守护进程31_102基于由取样守护进程31_102所接收并存储在事件数据存储库31_104中的事件和属性数据而生成的应用程序统计信息的几个示例。如下所述,可以生成或收集其他统计数据。
[1086] 启发式
[1087] 在一些具体实施中,移动设备31_100可以被配置为具有启发式过程,其可以基于由取样守护进程31_102检测到的事件来调节设备部件的设置。例如,启发式过程31_120可以包括这样的一个或多个过程:这些过程被配置(例如,编程)为响应于一个或多个触发事件并且/或者基于由取样守护进程31_102所收集或生成的统计信息,而调节各种系统设置(例如,CPU功率、基带处理器功率、显示器照明等)。
[1088] 在一些具体实施中,启发式过程31_120可以向取样守护进程31_102注册,以便在满足一组预定义的标准(例如,发生某些触发事件)时被调用或激活。触发事件可能包括媒体播放器应用程序的调用(例如“包名”事件)或检测到用户已经开始行走、跑步、驾驶等(例如,“运动状态”事件)。触发事件可以被概括为在事件数据31_104中或由取样守护进程31_102检测到某些性质、数据、统计信息、事件、属性、属性值等时,调用启发式过程31_120。例如,当取样守护进程31_102接收到应用程序开始通知(例如,指定特定应用程序的“包名”开始事件)时或者温度高于特定阈值(例如“热水平”事件)时,可以调用启发式过程31_120。当取样守护进程31_102接收到与指定属性或属性值相关联的事件时,启发式过程31_120可被调用。启发式过程31_120可以注册,以便在发生单个事件或观察到统计信息时被调用。启发式过程31_120可以注册,以便在观察或检测到事件、数据、属性、属性值和/或统计数据的组合时被调用。启发式过程31_120可以响应于特定用户输入(例如,“飞行模式”事件、“睡眠唤醒”事件等)而被触发或调用。当取样过程31_102检测到启发式过程31_120所注册的事件时,取样过程31_102可以调用该启发式过程31_120。
[1089] 在一些具体实施中,当启发式过程31_120被调用时,该启发式过程31_120可以与取样守护进程31_102通信,以从事件数据存储库31_104检索事件数据。启发式过程31_120可以处理启发式过程31_120本身收集的事件数据和/或其他数据,以确定如何调节系统设置来提高移动设备31_100的性能、改善用户在使用移动设备31_100时的体验并且/或者避免移动设备31_100将来出现问题。
[1090] 在一些具体实施中,启发式过程31_120可以作出可导致移动设备31_100的各种设备部件31_122的设置发生改变的设置建议。例如,设备部件可以包括CPU、GPU、基带处理器,显示器、GPS、蓝牙、Wi-Fi、振动电机及其他部件。
[1091] 在一些具体实施中,启发式过程31_120可向控制复用器31_124作出设置建议。例如,控制复用器31_124可以是在由启发式过程31_120提供的部件设置和影响或改变移动设备31_100部件设置的移动设备31_100的其他过程和/或功能之间进行仲裁的过程。例如,热守护进程31_110可以是这样的启发式过程:其被配置为基于检测到移动设备31_100处于热事件中间来调节CPU功率、显示亮度、基带处理器功率和其他部件设置(例如,高于阈值温度)。然而,启发式过程31_120也可被配置为对CPU功率、显示亮度、基带处理器功率和其他部件设置进行调节。因此,在一些具体实施中,启发式过程31_120和热守护进程31_110可向控制复用器31_124作出设置调节建议,并且控制复用器31_124可以确定要进行哪些设置调节。例如,控制复用器31_124可以对过程进行优先级排序,并且基于推荐过程的优先级来执行调节。因此,如果热守护进程31_110是优先级比启发式过程31_120更高的过程,则控制复用器31_124可以根据热守护进程31_110而不是启发式过程31_120的建议来调节CPU、显示器、基带处理器等的设置。
[1092] 在一些具体实施中,移动设备31_100可以被配置为具有多个启发式过程31_120。启发式过程31_120可以通过无线方式来得到配置或重新配置。例如,可以通过网络(例如,蜂窝数据连接、Wi-Fi连接等)来设定或调节每个启发式过程31_120的参数(例如,触发条件、阈值、标准和输出)。在一些具体实施中,可将新的启发式过程31_120添加到移动设备
31_100。例如,可由系统开发人员确定触发事件、统计数据和设备设置之间随时间推移的新相关性。随着这些新的相关性被识别出,人们可以开发新的启发式过程31_120,从而在将新确定的关系纳入考虑的情况下调节系统设置。在一些具体实施中,可以通过网络将新的启发式过程31_120添加到移动设备31_100。例如,新的启发式过程31_120可以通过无线方式(例如,蜂窝数据连接、Wi-Fi连接等)被下载或安装在移动设备31_100上。
[1093] 示例性启发式过程
[1094] 在一些具体实施中,启发式过程31_120可以被配置为调节移动设备31_100的系统设置,以防止移动设备31_100在用户口袋中变得过热。例如,该口袋中发热启发式过程可以被配置为向取样守护进程31_102注册,以便在移动设备的显示关闭(例如,“系统.背光”事件具有零/假的属性值)时、以及在移动设备31_100未播放任何娱乐媒体(例如,音乐、电影、视频等)时被调用。当口袋中发热启发式过程被调用时,该过程可以提出例如降低CPU功率和GPU功率以降低移动设备31_100工作温度的建议。
[1095] 在一些具体实施中,启发式过程31_120可被配置为当移动设备的显示器未被使用(例如,“系统.背光”事件具有零/假的属性值)时调节位置精度。例如,如果移动设备的显示器未被使用(例如,显示器关闭,如上文“背光”属性事件所指示的所述那样),则移动设备31_100无法向用户显示地图信息或方向。因此,用户可能无法使用移动设备31_100的位置服务,并且位置服务(例如,GPS位置、Wi-Fi位置、蜂窝位置等)可受到调节以使用更少的功率。位置精度启发式过程可以向取样守护进程31_102注册,以便在移动设备的显示器关闭时被调用。当该启发式过程被调用时,其可以调节用于确定移动设备31_100位置的GPS处理器,Wi-Fi发射器、蜂窝发射器、基带处理器或终止过程的功率电平,以便节省移动设备31_
100的能源。
[1096] 在一些具体实施中,启发式过程31_120可以被配置为响应于用户的行为来调节移动设备的环境光线传感器的设置。例如,当取样守护进程31_102接收到指示以下情况的数据(例如,“ALS”属性事件)时,该用户自适应环境光线传感器(ALS)启发式过程可被取样守护进程31_102调用:环境光线传感器已检测到移动设备31_100周围的环境光线发生了改变、环境光线传感器系统已调节了显示器的亮度并且/或者用户已提供了输入来调节显示器的亮度。
[1097] 当用户自适应ALS启发式过程被调用时,该过程可以向取样守护进程31_102请求关于ALS显示器调节和用户发起的显示器调节的附加信息,以确定是否存在用户输入模式,其指示ALS调节显示器亮度以及用户以相反方向调节显示器亮度(例如,“系统.ALS”事件,后跟“系统.背光”事件)。例如,用户可乘坐公共汽车或火车上班。在行驶期间,公共汽车的车灯可能会打开和关闭。环境光线传感器可以检测环境光线的变化,并在车灯亮起时增加显示器亮度。由于车灯仅临时亮起,所以当车灯再次熄灭时,用户可降低显示器亮度。可以跟踪该用户输入模式(例如,通过“背光”属性事件)并通过启发式过程将其与一天中的时间、日历或闹钟事件条目或旅行模式相关联,以确定在什么情况或场境中用户会响应于ALS显示器调节而调节显示器亮度。一旦该用户自适应ALS启发式过程确定了输入的模式和场景,该启发式过程就可以将ALS的设置调节为或多或少是积极的。例如,可以调节ALS以在一天当中确定的时间、日历或闹钟条目或旅行模式期间或多或少频繁地检查环境光线的水平,并相应地调节显示器亮度。
[1098] 上述启发式过程是启发式过程及其在本部分所述系统中的实现方式的几个示例。随着时间的推移,所开发的其他启发式过程可以被实现并添加到系统中。例如,可将另外的启发式过程配置或编程为,响应于检测到与温度测量值、用户输入、时钟事件(例如,闹钟),日历事件和/或在移动设备上发生及检测到的其他事件有关的事件或事件模式,来调节CPU、GPU、基带处理器或移动设备的其他部件。
[1099] 示例性启发式注册和调用过程
[1100] 图31_2示出了用于调用启发式过程的示例性过程31_200。在步骤31_202处,可将取样守护进程31_102初始化。例如,可以在启动移动设备31_100期间将取样守护进程31_102初始化。
[1101] 在步骤31_204处,取样守护进程31_102可以在取样守护进程31_102的初始化期间调用配置在移动设备31_100上的启发式过程。例如,取样守护进程31_102可以使得每个启发式过程31_120在移动设备31_100上执行,并运行其初始化子例程。
[1102] 在步骤31_206处,取样守护进程31_102可以接收来自每个启发过程31_120的事件注册消息。例如,在启发式过程31_120的初始化子例程期间,启发式过程31_120可以向取样守护进程31_102发送指示哪些属性事件应触发启发式过程31_120的调用的信息。取样守护进程31_102可以将注册信息存储在数据库中,例如事件数据存储库31_104。注册信息可以包括启发式过程的标识(例如,可执行名称、文件系统路径等)和事件标准(属性标识、属性值、阈值、范围等),使得在检测到指定事件时,取样守护进程31_102可以调用启发式过程31_120。
[1103] 在步骤31_208处,取样守护进程31_102可以接收属性事件数据。例如,如上所述,取样守护进程31_102可以接收来自各种系统部件(包括应用程序管理器31_106,传感器31_114,日历31_116和时钟31_118)的属性事件数据。
[1104] 在步骤31_210处,取样守护进程31_102可以将所接收的属性事件数据与启发式注册数据进行比较。例如,当属性事件数据被报告给取样守护进程31_102时,取样守护进程31_102可以将该事件数据(例如,属性值)或者从该事件数据生成的统计信息与从启发式过程31_120所接收的注册信息进行比较。
[1105] 在步骤31_212处,取样守护进程31_102可以基于在步骤31_210处执行的比较来调用启发式过程。例如,如果事件数据(例如,属性数据)和/或统计信息满足启发式过程31_120的启发式注册数据中所指定的标准,则取样守护进程31_102可以调用启发式过程31_
120。例如,如果事件数据和/或统计数据与由启发式过程在注册期间针对某一事件所指定的某个阈值相交,则启发式过程可以由取样守护进程31_102调用。另选地,仅仅出现某一特定属性事件可以引起启发式过程31_120的调用。
[1106] 图31_3示出了使用启发式过程31_120来调节移动设备31_100设置的过程31_300。在步骤31_302处,启发式过程31_120被初始化。例如,启发式过程31_120可以由取样守护进程31_102调用,使得启发式过程31_120可以运行其初始化子例程。例如,可以对该调用进行参数化,以指示启发式过程31_120应在该调用期间运行其初始化子例程。
[1107] 在步骤31_304处,启发式过程31_120可以针对系统事件向取样守护进程31_102注册。例如,在初始化期间,启发式过程31_120可以向取样守护进程31_102发送消息,该消息包括用于调用启发式过程31_120的事件、阈值、属性、属性值或其他标准的标识。当事件发生和/或满足标准时,取样守护进程31_102可以调用启发式过程31_120。
[1108] 在步骤31_306处,启发式过程31_120可以关闭或终止。例如,在用于启发式过程31_120的注册标准被满足之后系统才需要启发式过程31_120。因此,为了节省设备资源(例如,电池电力、处理电力等),启发式过程31_120被终止、关闭或暂停,直到需要才被调用(例如,由取样守护进程31_102触发)。
[1109] 在步骤31_308处,启发式过程31_120可以被重启。例如,当取样守护进程31_102确定由启发式过程31_120在注册消息中所指定的标准已经得到满足时,取样守护进程31_102可以调用启发式过程31_120。
[1110] 在步骤31_310处,启发式过程31_120可以从取样守护进程31_102获得事件数据。例如,一旦启发式过程31_120重启,就可以查询取样守护进程31_102以获取另外的属性事件数据。启发式过程31_120可以被配置为根据需要与其他系统资源、过程、传感器等进行交互以收集数据。
[1111] 在步骤31_312处,启发式过程31_120可以处理事件数据以确定部件设置。例如,启发式过程31_120可以使用来自取样守护进程31_102的事件数据和/或统计信息、和/或从系统的其他部件收集的数据来确定调节移动设备31_100的各种部件设置的方式。例如,如果启发式过程31_120确定移动设备31_100过热,则启发式过程31_120可以确定移动设备31_100的哪些功率设置将降低移动设备31_100的工作温度。
[1112] 在步骤31_314处,启发式过程31_120可以将确定的部件设置发送到控制复用器31_124。例如,控制复用器31_124可以仲裁从启发式过程31_120和其他系统部件(例如,热守护进程31_110)接收的设备设置建议。控制复用器31_124然后可以根据所接收的设置建议来调节移动设备31_100的各种部件(例如,CPU、GPU、基带处理器、显示器等)。
[1113] 预报事件
[1114] 在一些具体实施中,存储在事件数据存储库31_104中的属性事件数据(例如,历史数据)可以被取样守护进程31_102用于预测将来事件的发生。例如,可以分析“包名”属性事件以预测用户何时调用应用程序(例如,任何应用程序或特定应用程序)。可以分析指定有特定电子邮件文件夹(例如,“邮箱”属性值设定为“工作”文件夹)的“邮件应用.邮箱”事件,以预测用户何时将使用“邮件应用”应用程序的特定电子邮件文件夹。
[1115] 事件历史窗口规格
[1116] 在一些具体实施中,可以基于事件历史窗口规格来生成事件预测。例如,可以由客户端生成窗口规格,以指定客户希望以之为基础来进行事件预测的感兴趣的时间段或感兴趣的周期性时间段。窗口规格可以包括四个部件:开始时间、结束时间、复现宽度和复现频率。开始时间可以指示历史中窗口应开始时的日期和/或时间。结束时间可以指示历史中窗口应结束时的日期和/或时间。复现宽度可以指示客户端感兴趣的一段时间(例如,自开始时间起的四个小时)。复现频率可以指示自开始时间起应重复该段时间的频率(例如,每8小时、每两天、每周、每两周等)。
[1117] 在一些具体实施中,在生成事件预报时,仅分析在指定时间段内(例如,感兴趣的时间段)发生的事件。例如,如果当前日期是2014年5月13日,则窗口规格可以指定开始日期为2014年5月11日中午12:00、结束日期为5月12日中午12点、复现宽度为1小时、复现频率为4小时。该窗口规格将使得取样守护进程31_102分析自2014年5月11日中午12:00起至2014年5月12日中午12:00终的每4小时出现的每个1小时时段(例如,感兴趣的时间段)的事件数据(例如,时段1:2014年5月11日中午12:00-下午1:00;时段2:2014年5月11日下午4:00-下午5:00;时段3:2014年5月11日晚上8:00-晚上9:00等)。在一些具体实施中,当没有指定复现宽度时,将分析从开始时间到结束时间的整个时间段以预测事件。
[1118] 在一些具体实施中,取样守护进程31_102可以自动生成事件历史窗口规格。例如,取样守护进程31_102可以识别存储在事件数据存储库31_104中的事件历史数据中的模式。如果客户端请求对“包名”事件进行预报但未提供窗口规格,则取样守护进程31_102可以例如识别“包名”属性/事件的模式,该模式指示出应用程序通常在上午8:00-上午9:00、上午
11:30-下午1:30以及晚上7:00-晚上11:00由用户调用。取样守护进程31_102可以自动生成包括这些时间段并排除一天中的其他时间段的窗口规格,以使得所请求的预报将集中在与所请求属性相关的时间段上。类似地,取样守护进程31_102可以针对特定(例如,指定的)属性值自动生成事件历史窗口规格。例如,如果客户端请求针对具有属性值“邮件应用”的“包名”事件进行预报,则取样守护进程31_102可以分析事件历史数据,以识别与“邮件应用”值相关的发生模式。如果“邮件应用”“包名”属性值于每天上午10:00、中午12:00和下午5:00被记录在事件历史数据中,则取样守护进程31_102可以生成指定在一天中这些时间前后的感兴趣时间段的窗口规格。
[1119] 时间预报
[1120] 在一些具体实施中,可以针对某一属性或属性值生成时间预报。时间预报可以指示例如在一天中的什么时间可能发生与该属性或属性值相关联的事件。例如,取样守护进程31_102的客户端可以针对“包名”属性(例如,应用程序启动)而请求进行最近一周(例如,最近7天)的时间预报。为了生成该预报,可将一天24小时划分为96个15分钟的时隙。对于最近七天中每一天的特定时隙(例如,下午1:00-下午1:15),取样守护进程31_102可以确定是否发生了“包名”事件,并为该时隙生成得分。如果在所述7天之中的2天中的该特定时隙内发生过“包名”事件,则在该特定时隙(例如,下午1:00-下午1:15)期间发生“包名”事件的概率(例如,得分)是0.29(例如,2除以7)。如果在所述7天之中的4天中的一个不同时隙内(例如,下午12:15-下午12:30)发生过“包名”事件,则在该时隙期间发生“包名”事件的概率(例如,得分)是0.57(例如,4除以7)。
[1121] 类似地,客户端可以针对特定属性值请求进行时间预报。例如,客户端可以请求针对“包名”属性值为“邮件应用”的“包名”事件进行时间预报,而不是针对“包名”属性(例如“包名”事件)进行时间预报。因此,客户端可以接收到在一天之中用户将可能调用“邮件应用”应用程序的时间(例如,15分钟的时隙)的指示。
[1122] 在一些具体实施中,可以基于事件历史窗口规格来生成时间预报。例如,如果客户端提供了指定感兴趣的4小时时间段的窗口规格,则时间预报将仅生成在感兴趣的该4小时时间段内的15分钟时隙的概率得分。例如,如果感兴趣的时间段对应于最近3天中每天的中午12:00-下午4:00,则在感兴趣的4小时时间段期间将产生16个时隙,并且将针对这16个15分钟的时隙生成得分。不会针对所指定的感兴趣的4小时时间段之外的时隙生成得分。
[1123] 对等预报
[1124] 在一些具体实施中,取样守护进程31_102可以针对属性生成对等预报。例如,对等预报可以指示某一属性的值在感兴趣时间段期间相对于同一属性的所有值(例如,发生率)会出现的相对概率。例如,取样守护进程31_102的客户端可以请求对“包名”属性进行由与该请求一同提交的窗口规格所指定的感兴趣时间段(例如,上午11:00–下午1:00)的对等预报。如果在感兴趣时间段期间出现了具有属性值“邮件应用”、“联系人”、“日历”、“web浏览器”、“邮件应用”、“web浏览器”、“邮件应用”的“包名”事件,则出现“邮件应用”的相对概率(即,得分)为0.43(例如3/7),出现“web浏览器”的相对概率为0.29(例如2/7),出现“联系人”或“日历”的相对概率是0.14(例如1/7)。
[1125] 在一些具体实施中,取样守护进程31_102的客户端可以请求针对某一属性进行对等预报。例如,如果客户端在未指定属性值的情况下请求对该属性进行对等预报,则取样守护进程31_102将生成对等预报,并返回感兴趣时间段内该属性的所有值的各种概率得分。使用上面的示例性对等预报,取样守护进程31_102将向请求客户端返回属性值和得分的列表,例如:“邮件应用”:0.43;“web浏览器”:0.29;“联系人”:0.14;“日历”:0.14。
[1126] 在一些具体实施中,取样守护进程31_102的客户端可以请求针对某一属性值进行对等预报。例如,客户端可以针对具有值“邮件应用”的“包名”属性请求对等预报。如上所述,取样守护进程31_102可以根据客户端所提供的窗口规格针对“包名”属性生成对等预报。例如,取样守护进程31_102可以计算得到出现“邮件应用”的相对概率(即,得分)为0.43(例如3/7),出现“web浏览器”的相对概率为0.29(例如2/7),出现“接触”或“日历”的相对概率为0.14(例如1/7)。取样守护进程31_102可以向客户端返回所请求的“邮件应用”值的得分(例如,0.43)。如果在窗口规格所指定的感兴趣时间段内所请求的值未受到表示,则将向客户端返回零值。
[1127] 全景预报
[1128] 在一些具体实施中,可以生成全景预报以预测属性事件的发生。例如,上述临时性和对等预报使用针对单个属性或属性值的事件发生相对频率,来预测该属性未来的出现。该“频率”预报类型(例如,出现频率)仅使用与预报请求中所指定的属性或属性值相关联的数据。相反,“全景”预报可以使用针对预报请求中所指定的属性或属性值而接收到的事件数据中的其他数据(例如,位置数据、信标数据、网络质量等)。在一些具体实施中,全景预报可以使用与其他属性或属性值相关联的事件的数据。例如,当客户端请求对指定属性或属性值进行时间预报对等预报,并且指定了预报类型(即,预报风味)为全景时,取样守护进程
31_102将分析用于该指定属性或属性值的事件数据以及用于其他属性和属性值和事件数据,以识别指定事件与取样守护进程31_102所接收的其他事件之间的相关性。例如,具有值“邮件应用”的属性“包名”的频率预报可能为上午9:00的15分钟时隙分配0.4分。然而,全景预报可能会确定“邮件应用”属性值与用户工作地点之间存在很强的相关性。例如,全景预报可能会确定如果用户处在与工作相关联的位置,则在上午9:00的15分钟时隙内90%的时间里该邮件应用会受到调用。因此,取样守护进程31_102可以针对上午9:00的15分钟时隙为“邮件应用”预报得分分配更高的得分(例如0.9)。
[1129] 类似地,取样守护进程31_102可能在“邮件应用”“包名”属性值以及与“运动状态”属性值“静止”相关联的事件的发生之间发现较强相关性。例如,取样守护进程31_102可以确定邮件应用的使用和移动设备31_100处于静止之间的相关性为95%。取样守护进程31_102可以确定邮件应用的使用和移动设备31_100处于运动中之间的相关性为5%。因此,取样守护进程31_102可以基于移动设备是移动的还是静止的,来调节针对特定时隙的“邮件应用”属性值的预报得分(例如,0.95或0.05)。
[1130] 记分板—频率与全景
[1131] 在一些具体实施中,取样守护进程31_102可以跟踪哪个预报类型是更好的事件预测器。例如,当取样守护进程31_102接收到属性事件时,取样守护进程31_102可以针对与所接收事件相关联的属性或属性值生成频率预报和全景预报,并且确定哪个预报类型将是所接收的属性事件的更好预测器。换句话说,即使在接收到属性事件之前即刻生成预测,取样守护进程31_102也可以确定频率预报类型或全景预报类型是否为所接收的属性事件的更好预测器。
[1132] 在一些具体实施中,取样守护进程31_102可以为每种预测类型(例如,默认、全景)维护记分板。例如,每当取样守护进程31_102确定频率预报类型将是对于所接收事件的更好预测器时,取样守护进程31_102可使用于频率预报类型的得分(例如,计数器)递增。每当取样守护进程31_102确定全景预报类型将是对于所接收事件的更好预测器时,取样守护进程31_102可使用于全景预报类型的得分(例如,计数器)递增。
[1133] 在一些具体实施中,取样守护进程31_102可以基于针对每个预报类型(例如,频率,全景)所生成的得分,来确定默认预测类型。例如,如果记分板过程为全景预报类型生成较高得分,则全景将被分配为默认预报类型。如果记分板过程为频率预报类型生成较高得分,则频率将被分配为默认预测类型。当客户端请求对等或时间预报时,客户端可以指定预报类型(例如,全景、频率、默认)。如果客户端没有指定预报类型,则将使用默认预报类型来生成对等和/或时间预报。
[1134] 属性统计信息
[1135] 在一些具体实施中,客户端可以请求取样守护进程31_102针对属性或属性值生成统计信息。例如,类似于预测生成,客户端可以指定历史窗口,通过该历史窗口应生成属性或属性值的统计信息。当针对指定属性或属性值生成统计信息时,取样守护进程31_102将分析在指定历史窗口内发生的属性事件。客户端请求可以指定取样守护进程31_102应生成以下哪些统计信息。
[1136] 在一些具体实施中,取样守护进程31_102可以针对属性或属性值生成“计数”统计信息。例如,“计数”统计信息可以对与在指定历史窗口中发生的指定属性或属性值相关联的事件数量进行计数。
[1137] 在一些具体实施中,取样守护进程31_102可以基于属性值生成统计信息。例如,客户端可以请求某一属性在指定历史窗口中的第一个值和/或最后一个值,并且取样守护进程31_102可以返回所述值。客户端可以请求与指定历史窗口内的指定属性相关联的所有值的最小值、最大值、平均值、模式和标准偏差,并且取样守护进程31_102可以返回所述值。取样守护进程31_102可以生成或确定哪些值与所请求的百分位数相关联(例如,第10、第25、第50、第75、第90等)
[1138] 在一些具体实施中,取样守护进程31_102可以生成持续时间统计数据。例如,取样守护进程31_102可以通过将属性的开始事件与属性的停止事件进行比较,来确定与属性值相关联的持续时间。发生开始事件和发生停止事件之间的时间差将是事件的持续时间。客户端可以请求与指定历史窗口内的指定属性或属性值相关联的所有持续时间的最小值、最大值、平均值、模式和标准偏差,并且取样守护进程31_102可以返回所述值。取样守护进程31_102可以生成或确定哪些持续时间值与所请求的百分位数相关联(例如,第10、第25、第
50、第75、第90等)
[1139] 在一些具体实施中,取样守护进程31_102可以生成事件间隔统计数据。例如,取样守护进程31_102可以通过将属性事件的第一次出现与属性事件的后续出现进行比较,来确定与某一属性值相关联的事件的到达或报告相关联的时间间隔。首次事件发生和后续事件发生之间的时间差将是两次事件发生之间的时间间隔。客户端可以请求与指定历史窗口内的指定属性或属性值相关联的所有时间间隔值的最小值、最大值、平均值、模式和标准偏差,并且取样守护进程31_102可以返回所述值。取样守护进程31_102可以生成或确定哪些间隔值与所请求的百分位数相关联(例如,第10、第25、第50、第75、第90等)
[1140] 使应用程序保持最新—获取更新
[1141] 图31_4示出了用于执行后台获取应用程序更新的示例性系统31_400。在一些具体实施中,移动设备31_100可被配置为预测地将应用程序作为移动设备31_100的后台进程而启动,使得该应用程序可以在预期用户调用该应用程序的情况下,下载内容并更新其界面。例如,可以使用由取样守护进程31_102维护的用户应用程序启动历史数据(例如,“系统.包名”开始事件)来预报(预测)用户将在何时调用移动设备31_100的应用程序。这些预测的应用程序可以在用户调用之前由应用程序管理器31_106启动,使得用户不需要等待用户调用的应用程序下载当前内容并更新应用程序的图形界面。
[1142] 确定何时启动应用程序—时间预报
[1143] 在一些具体实施中,应用程序管理器31_106可以请求来自取样守护进程31_102的应用程序调用预报。例如,取样守护进程31_102可以提供这样的界面:其允许应用程序管理器31_106请求移动设备31_100上的应用程序启动的时间预报(例如,“包名”开始事件)。取样守护进程31_102可以接收指示用户何时调用移动设备31_100上的应用程序的事件(例如“包名”开始事件),如上所述。当应用程序管理器31_106请求对“包名”属性进行时间预报时,取样守护进程31_102可以分析存储在事件数据存储库31_104中的“包名”事件,以确定在一天当中的什么时候(例如,在哪个15分钟时隙中)用户通常会调用应用程序。例如,取样守护进程31_102可以计算一天当中的特定时刻或时间段将包括用户使用上述时间预报机制来进行应用程序调用的概率。
[1144] 在一些具体实施中,应用程序管理器31_106可以在应用程序管理器31_106的初始化期间,请求来自取样守护进程31_102的对“包名”属性的时间预报。例如,可以在移动设备31_100的启动期间调用或启动应用程序管理器31_106。当应用程序管理器31_106正在初始化时,应用程序管理器31_106可以针对接下来的24小时请求应用程序调用(例如“包名”开始事件)的时间预报。一旦最初24小时时期过去,应用程序管理器31_106就可以请求另外24小时的时间预报。这个24小时的预报周期可以持续到例如移动设备31_100关闭为止。
[1145] 在一些具体实施中,取样守护进程31_102可以针对24小时时期而生成应用程序调用(例如,“包名”开始事件)时间预报。例如,取样守护进程31_102可以将这24小时的时期划分为96个15分钟的时隙。取样守护进程31_102可以基于由取样守护进程31_102收集并存储在事件数据存储库31_104中的应用程序启动历史数据(例如,“包名”起始事件数据),来确定哪些应用程序已经被调用,以及在此前几天的操作中该应用程序在何时被调用超过了某一次数(例如,1到7)。
[1146] 在一些具体实施中,当取样守护进程31_102针对“包名”属性生成时间预报时,可以根据将在15分钟时隙中调用(例如,任何)应用程序的概率对每个15分钟的时隙进行排名,如上文在时间预报部分所述那样。
[1147] 一旦计算了96个时隙中每个时隙的应用程序调用概率,取样守护进程31_102就可以选择具有最大非零概率的某一数目(例如,多达64个)的时隙,并且向应用程序管理器31_106返回标识了这些时隙的信息。例如,取样守护进程31_102可以向应用程序管理器31_106发送对应于15分钟时隙的开始的时间列表(例如,中午12:00、下午1:45等),其中所述时隙与可能的用户调用的应用程序启动相对应(例如,得分大于零的时隙)。
[1148] 在一些具体实施中,应用程序管理器31_106可以基于由取样守护进程31_102提供的时隙来设定定时器。例如,应用程序管理器31_106可以创建或设定对应于由取样守护进程31_102所识别的时隙的一个或多个定时器(例如,闹钟)。当每个定时器关闭(例如,在中午12:00)时,应用程序管理器31_106可以醒来(例如,如果睡眠、暂停等),并确定应针对当前15分钟时隙启动哪些应用程序。因此,定时器可以针对在相应时隙内可能由用户调用的应用程序触发获取后台更新。
[1149] 在一些具体实施中,其他事件可以触发应用程序的获取后台更新。例如,应用程序管理器31_106可以向取样守护进程31_102注册对于各种事件的兴趣。例如,应用程序管理器31_106可以注册与打开蜂窝无线电、基带处理器或建立网络连接(例如,蜂窝或Wi-Fi)有关的事件(例如,属性)的兴趣,使得当这些事件发生时应用程序管理器31_106可得到通知,并且可以触发后台应用程序启动,使得应用程序更新可以利用到活动的网络连接。解锁移动设备31_100、打开显示器和/或其他交互作用可以触发后台应用程序启动及获取更新,如下文进一步描述的那样。在一些具体实施中,如果在此前某一分钟数(例如,七分钟)内执行了任何后台更新,则应用程序管理器31_106将不会触发后台应用程序启动也不会获取更新。
[1150] 确定启动何种应用程序—对等预报
[1151] 在一些具体实施中,应用程序管理器31_106可以请求取样守护进程31_102提供针对当前时间要启动的应用程序列表。例如,当用于15分钟时隙的定时器停下(例如,时间到)或检测到触发事件时,应用程序管理器可以从取样守护进程31_102针对“包名”属性请求对等预报,以使得取样守护进程31_102可以确定要针对当前时隙启动哪些应用程序。取样守护进程31_102然后可以生成包括应用程序标识符列表和对应得分的对等预报,其中该得分指示每个应用程序将在大约当前时间被用户调用的概率。
[1152] 图31_5示出了用于确定移动设备31_100上的应用程序的用户调用概率的对等预报。例如,图31_500示出了对于近期历史窗口规格(例如,前2小时)的对等预报。图31_530示出了对于每日历史窗口规格的对等预报(例如,在过去7天的每一天中的4小时时段)。图31_560示出了对于每周历史窗口规格的对等预报(例如,4小时时段,每7天一次)。在一些具体实施中,取样守护进程31_102可以使用针对不同重叠窗口规格的对等预报来执行时间序列建模,以确定移动设备31_100上的应用程序的用户调用概率。如果应用程序没有出现在对等预报中,则可以为该应用程序分配零概率值。
[1153] 在一些具体实施中,可以通过针对不同时间窗口生成对等预报来执行时间序列建模。例如,近期、每日和每周的对等预测可以根据近期、每日和每周的事件历史记录窗口规格来生成。然后可以将近期、每日和每周的对等预测结合起来,以确定当前时间要启动的应用程序,如下文进一步描述的那样。
[1154] 在一些具体实施中,可以基于近期应用程序调用来生成用户调用概率。例如,可以通过针对“包名”属性执行对等预报,来生成用户调用概率,其中该对等预报具有指定此前两小时作为感兴趣时间段的窗口规格(例如,最近两个小时内的用户发起的应用程序启动)。
[1155] 如图31_500所示,应用程序启动历史数据(例如,“包名”事件数据)可以指示在此前两小时内启动的应用程序的数量(例如,四个)。例如,圆点和圆圈可以表示应用程序,空心圆圈可以表示单个特定应用(例如,电子邮件、社交网络应用程序等),虚线空心圆圈表示其他应用程序的调用。可以通过将特定应用程序在此前两小时内的调用次数(例如2)除以此前两小时内的应用程序调用总次数(例如,4),来计算与使用最近历史(例如,前2小时)的特定应用程序相关联的对等预测概率得分。在所示的情况下,与使用近期应用程序启动历史数据的特定应用程序相关联的概率是2/4或50%。
[1156] 用户调用概率可以基于应用程序启动的每日历史来生成(例如,在过去七天的每一天中,在当前时间+-2小时处会启动哪些应用程序)。例如,可以通过针对“包名”属性执行对等预报,来生成用户调用概率,其中该对等预报具有指定一天中的当前时间+-2小时(例如,4小时复现宽度)作为感兴趣时间段的窗口规格(例如,最近两个小时内的用户发起的应用程序启动),并且复现频率为24小时(例如,每24小时重复一次复现)。
[1157] 图31_530示出了应用程序启动(例如,“包名”开始事件)的每日历史,其可以用于确定应用程序的用户调用概率。例如,图31_530的每个框表示先前日子中的每一天(例如,第7天)中的时间窗口(例如,当前时间+-2小时)(例如,如对等预报的窗口规格中所指定的),可对该时间窗口进行分析,以确定特定应用程序(例如,空心圆圈)的用户调用概率(例如,对等预报得分)。与使用每日历史数据的特定应用程序相关联的概率可以通过将该特定应用程序在所有窗口中的调用次数(例如,6次)除以所有窗口中的应用程序调用的总次数(例如,22次)来计算。在所示的情况下,与使用每日启动历史数据的特定应用程序相关联的概率是6/22或27%。
[1158] 用户调用概率可以基于应用程序启动的每周历史来生成(例如,在七天前的当前时间+-2小时处会启动哪些应用程序)。例如,可以通过针对“包名”属性执行对等预报,来生成用户调用概率,其中该对等预报具有指定一天中的当前时间+-2小时(例如,4小时复现宽度)作为感兴趣时间段的窗口规格(例如,最近两个小时内的用户发起的应用程序启动),并且复现频率为7天(例如,每7天重复一次复现)。
[1159] 图31_560示出了应用程序启动(例如,“包名”开始事件)的每周历史,其可以用于确定应用程序的用户调用概率。例如,如果当前日期和时间是星期三下午1点,则应用程序的用户调用概率(例如,对等预报得分)可以基于上一个星期三的下午1点时或下午1点前后(例如,+-2小时)的时间窗口期间的应用程序启动情况。在所示的情况下,与使用每周应用程序启动历史数据的特定应用程序相关联的概率(例如,空心圆圈)是1/4或25%。
[1160] 在一些具体实施中,可以将近期、每日和每周用户调用概率组合起来,为每个应用程序生成得分。例如,可以通过计算近期(r),每日(d)和每周(w)概率的加权平均值来将近期、每日和每周概率组合起来。每个概率可以具有相关联的权重,并且每个权重可以对应于由经验确定的每个概率的预定重要性。所有权重的总和可等于一。例如,基于近期启动的概率权重可以是0.6,每日概率的权重可以是0.3,并且每周概率的权重可以是0.1。这样一来,组合概率得分可以是0.6(r)、0.3(d)和0.1(w)之和(例如,得分=0.6r+0.3d+0.1w)。
[1161] 返回参考图31_4,一旦基于近期、每日和每周的概率为每个应用程序确定了概率得分,取样守护进程31_102就可以向应用程序管理器31_106推荐具有最高非零概率得分的可配置数量(例如,三个)的应用程序,用于启动以执行后台获取下载/更新。
[1162] 在一些具体实施中,取样守护进程31_102可以从上述“启动哪些”分析中排除如下应用程序:不支持后台更新(例如,获取)应用程序更新的应用程序、用户已经关闭后台更新的应用程序、已决定退出后台更新的应用程序,和/或用户当前正在使用的或者处于移动设备31_100显示器前台的任何应用程序(由于前台应用程序很可能已经是最新的)。
[1163] 在一些具体实施中,一旦应用程序管理器31_106从取样守护进程31_102接收到推荐应用程序,应用程序管理器31_106就可以询问取样守护进程31_102是否可以启动每个推荐应用程序。取样守护进程31_102可以使用其本地准入控制机制(如下所述)来确定应用程序管理器是否可以启动特定应用程序。例如,应用程序管理器31_106可以向取样守护进程31_102发送具有识别推荐应用程序之一的属性值的“包名”属性,并请求取样守护进程31_
102对该属性值执行准入控制。
[1164] 本地准入控制
[1165] 在一些具体实施中,取样守护进程31_102可以对移动设备31_100上的属性事件执行准入控制。例如,可以对属性或属性值执行准入控制,以确定客户端应用程序是否可以执行与该属性相关联的活动、动作、功能、事件等。例如,取样守护进程31_102的客户端可以请求对具有值“邮件应用”的属性“包名”进行准入。响应于接收到准入请求,取样守护进程可以确定客户端是否可以执行与“邮件应用”属性值相关联的活动(例如,执行“邮件应用”应用程序)。
[1166] 在一些具体实施中,可以基于来自表决器的预算和反馈来执行准入控制。例如,当取样守护进程31_102接收到准入控制请求时,该请求可以包括与允许该属性事件相关联的成本(例如,启动应用程序、“包名”开始事件)。取样守护进程31_102可以检查系统级数据预算、系统级能量预算和/或特定属性预算,以确定与属性相关联的预算是否具有足以覆盖属性事件的剩余积分。如果不存在与属性相关联的预算(例如,属性不是预算属性),则可以允许属性事件继续进行(例如,取样守护进程31_102将响应于准入控制请求返回“确定”值)。如果存在与属性相关联的预算,并且相关预算中没有足够的剩余积分来支付事件的成本,则不允许属性事件继续进行(例如,取样守护进程31_102将响应于准入控制请求返回“否”值)。
[1167] 如果存在与该属性相关联的预算,并且在预算中存在足够的剩余积分来支付事件的成本,则将要求表决器对是否允许属性继续进行而作出表决。如果所有表决器均表决“是”,则将允许属性事件继续进行(例如,取样守护进程31_102将响应于准入控制请求返回“确定”值)。如果任何表决器表决“否”,则将不允许属性事件继续进行(例如,取样守护进程31_102将响应于准入控制请求返回“否”值)。关于预算和表决器的细节在下文段落中有所描述。
[1168] 在一些具体实施中,如果在准入控制请求之前的一段时间(例如,7天、一个月等),尚未在事件中向取样守护进程31_102报告属性或属性值,则取样守护进程31_102可以响应于准入控制请求而返回“从不”值。例如,取样守护进程31_102可以生成时间预报或对等预报,以确定何时允许或准许与属性或属性值相关联的事件。例如,不需要抢先取得预期不会发生的事件(例如,不需要针对不被用户调用的应用程序而预读取数据)。
[1169] 准入控制—预算
[1170] 在一些具体实施中,取样守护进程31_102可以基于与属性或属性值相关联的预算来执行准入控制。例如,取样守护进程31_102可以基于与属性或属性值相关联的预算,来确定是否允许(例如,准许)与属性或属性值相关联的活动(例如,事件)。在一些具体实施中,取样守护进程31_102可以基于为移动设备31_100配置的系统级能量预算和/或系统级数据预算,来确定是否可以准许某一属性或属性值。取样守护进程31_102可以在计数数据存储库31_402中存储预算,包括用于跟踪当前时间段(例如,当前小时)的剩余数据和能量预算的计数器。当客户端请求针对属性或属性值执行准入控制时,客户端可以指定表示允许或准许发生与该属性或属性值相关联的事件的成本的数字。如果在与该属性相关联的预算中有足够的积分,则该属性事件将由下述表决器进行表决。如果在与该属性相关联的预算中没有足够的积分,则不允许属性事件继续进行。
[1171] 系统级能源预算
[1172] 在一些具体实施中,取样守护进程31_102可以基于能量预算来确定是否可以准许某一属性或属性值。例如,能量预算可以是移动设备电池容量(以毫安小时计)的百分比(例如,5%)。
[1173] 在一些具体实施中,能量预算可分配于24小时内的每小时间。例如,取样守护进程31_102可以利用收集并存储在事件数据存储库31_104中的电池利用率统计数据(例如,“系统.能量”事件)来确定反映24小时内每个小时的典型历史电池使用率的分配情况。例如,如上所述,可以基于历史上或统计上所确定的能量使用分配情况或应用程序使用预报,为每个小时指定某一百分比的能量预算。每个小时至少具有一个大于零的最小能量预算量(例如,0.1%、1%等)。例如,10%的能源预算可以在未使用数据的数小时内分配,而剩余的
90%的能源预算可以根据历史能源或应用程序使用情况在活跃使用的数小时内分配。伴随着每小时的流逝,将用新的/当前小时的能源预算来补充当前能源预算。从上一小时剩余的任何能源预算都将被添加到当前小时的预算中。
[1174] 在一些具体实施中,计数数据存储库31_402可以包括用于确定剩余能量预算多少可用的计数器。例如,计数数据存储库31_402可以包括采用当前小时的能量预算进行初始化的一个或多个计数器。当能量预算由属性事件使用时,能量预算可以递减相应的量。例如,当使用“包名”开始或停止事件来启动或终止应用程序时,应用程序管理器31_106可以通知取样守护进程31_102。取样守护进程31_102继而可以在应用程序启动时以及应用程序终止时通知电力监视器31_109。根据开始和停止时间,电力监视器31_109可以确定应用程序使用了多少能量。电力监视器31_109可以将应用程序所使用的电量(例如,通过提交“系统.能量”属性事件)发送给取样守护进程31_102,并且取样守护进程31_102可以将适当的计数器减少所使用的电量。
[1175] 在一些具体实施中,在当前小时没有能量预算剩余时,取样守护进程31_102可以拒绝该属性的准入请求。例如,当计数数据存储库31_402中的能量预算计数器递减到零时,无能量预算剩余,并且与绑定到能量预算的属性相关联的活动、事件等均无法得到准入。如果剩余用于当前小时的能量预算足以覆盖属性事件的成本,则取样守护进程31_102可以响应于准入控制请求而返回“是”值,并且允许属性事件继续进行。
[1176] 在一些具体实施中,当移动设备31_100插入到外部电源时,取样守护进程31_102将不会基于能量预算来作出准入控制决定。例如,当移动设备31_100插入到外部电源时,剩余能量预算为零将不会阻止属性事件的进行。
[1177] 系统级数据预算
[1178] 在一些具体实施中,取样守护进程31_102可以基于数据预算来确定是否可以准许某一属性。例如,取样守护进程31_102可以基于由取样守护进程31_102所收集并存储在事件数据存储库31_104中的统计数据(例如,“系统.网络字节”属性事件)来确定移动设备31_100所消耗的网络数据的平均量。网络数据预算可计算为由用户/移动设备31_100所消耗的平均每日网络数据百分比。另选地,网络数据预算可以是预定义的或可配置的值。
[1179] 在一些具体实施中,网络数据预算可分配于24小时内的每小时间。例如,可以为每个小时分配某一最低预算(例如,0.2MB)。可以根据历史网络数据使用情况,将剩余量的网络数据预算分配在24小时内。例如,取样守护进程31_102可以基于历史统计数据(例如,“系统.网络字节”属性事件)来确定每天每小时消耗多少网络数据,并根据每小时消耗的数据量来分配百分比。伴随着每小时的流逝,将用新的/当前小时的数据预算来补充当前数据预算。从上一小时剩余的任何数据预算都可被添加到当前小时的数据预算中。
[1180] 在一些具体实施中,计数数据存储库31_402可以保持用于网络数据预算的数据计数器。随着网络数据的消耗,数据计数器可以根据所消耗的网络数据量而递减。例如,可以基于由应用程序管理器31_106提供给取样守护进程31_102的应用程序开始和停止事件(例如,“包名”开始或停止事件)来确定所消耗的网络数据量。另选地,可以通过管理网络接口的过程(例如,网络守护进程31_406、后台传输守护进程31_1302)来提供所消耗的网络数据量。例如,网络接口管理过程可以将“系统.网络字节”事件报告给可以与应用程序开始和停止事件(例如“包名”事件)相关联的取样守护进程31_102,以确定应用程序消耗了多少数据。
[1181] 在一些具体实施中,取样守护进程31_102可以一直跟踪哪个网络接口类型(例如,蜂窝或Wi-Fi)被用于消耗网络数据,并且基于该网络接口类型来确定所消耗的网络数据量。可以根据分配给每个接口类型的权重或系数,来调节所消耗的网络数据量。例如,可为在蜂窝数据接口上消耗的网络数据分配系数一(1)。可为在Wi-Fi接口上消耗的网络数据分配系数十分之一(0.1)。所消耗的总网络数据可以通过将所消耗的蜂窝数据加上所消耗的Wi-Fi数据再除以十(例如,总数据=1*蜂窝数据+0.1*Wi-Fi)来计算。因此,通过Wi-Fi所消耗的数据给数据预算带来的影响将会比通过蜂窝数据连接所消耗的数据小得多。
[1182] 在一些具体实施中,在当前小时没有数据预算剩余时,取样守护进程31_102可以对准入控制请求作出“否”回复。例如,当计数数据存储库31_402中的数据预算计数器递减到零时,无数据预算剩余,并且与绑定到数据预算的属性相关联的活动均将受到允许。如果在当前小时中的剩余数据预算足以覆盖属性事件的数据成本,则取样守护进程31_102可以对准入控制请求作出“是”回复。
[1183] 属性预算
[1184] 在一些具体实施中,属性可以与预算相关联。例如,预定义属性或自定义(动态定义)属性可以通过取样守护进程31_102的API而与预算相关联。取样守护进程31_102的客户端(例如,应用程序、功能、第三方应用程序等)可以向取样守护进程31_102发出将属性与客户端定义的预算相关联起来的请求。预算可以是例如一些积分。
[1185] 一旦分配了预算,与预算属性相关联的所报告事件就可以指示与该事件相关联的成本,并且可以根据指定的成本来缩减预算。例如,可以在移动设备31_100上配置预定义的系统属性“系统.蓝牙LE扫描”,以指示移动设备31_100何时对来自其他蓝牙低能量设备的信号进行扫描。蓝牙LE扫描可以例如作为后台任务而运行。蓝牙LE扫描需要打开蓝牙无线电,这继而又会消耗来自移动设备31_100电池的能量。为了防止蓝牙LE扫描消耗过多能量,可以为“蓝牙LE扫描”属性分配某一预算(例如,24积分)。每次生成“蓝牙LE扫描”事件并将其报告给取样守护进程31_102时,该事件可被报告为具有某一成本(例如1)报告。可以从预算中扣除该成本,以便每次在事件中报告“蓝牙LE扫描”属性时,24的预算就递减1。
[1186] 在一些具体实施中,可以在一段时间内分配该属性预算。例如,“蓝牙LE扫描”属性预算可以均匀分配在24小时内,以使得“蓝牙LE扫描”属性每小时只能支出1个积分。在一些具体实施中,可以在某一时间段结束时补充属性预算。例如,如果“蓝牙LE扫描”属性预算的周期为24小时,则可以每24小时补充一次“蓝牙LE扫描”属性预算。
[1187] 在一些具体实施中,与属性相关联的预算可以是另一预算的子集(例如,子预算)。例如,可以将属性的预算指定为另一预算(诸如上述系统级数据或系统级能量预算)的一部分。例如,“邮件应用.邮箱”属性可以与这样的预算相关联:该预算是为系统分配的数据预算的5%。“蓝牙LE扫描”属性可以与这样的预算相关联:该预算是为系统分配的能量预算的
3%。子预算(例如“邮箱”预算)可以与超级预算(例如,系统数据预算)绑定,使得减少子预算也会减少超预算。在一些具体实施中,如果超预算减少到零,则子预算也减少到零。例如,如果系统数据预算为零,则“邮箱”属性预算也将为零,即使在没有为“邮箱”属性报告会使“邮箱”属性预算减少的事件情况下也是如此。
[1188] 在一些具体实施中,取样守护进程31_102客户端可以请求取样守护进程31_102返回属性的剩余预算量。例如,客户端可以向取样守护进程31_102作出请求,以获取“蓝牙LE扫描”属性的剩余预算。如果已使用了24个预算的积分中的三个积分,则取样守护进程31_102可以将值21返回给发出请求的客户端。
[1189] 在一些具体实施中,当相关联属性的预算中没有积分剩余时,客户端可以报告花费了指定数量的预算积分的事件。在预算中没有剩余积分的情况下,当取样守护进程31_102收到需要1个积分的事件(例如“蓝牙LE扫描”事件)时,取样守护进程31_102可以将预算递减(例如,-1),并向客户端返回报告该事件的错误。该错误可以指示例如该属性没有预算剩余。
[1190] 属性预算塑造
[1191] 在一些具体实施中,可以基于历史使用信息来分配属性预算。例如,当针对预算属性报告事件时,可以随时间而跟踪使用属性预算的请求(例如,与成本相关联的事件)。如果例如为“蓝牙LE扫描”属性分配了24的预算,则该预算最初可被平均分配于24小时内,如上所述。在随时间而针对与预算相关联的属性报告事件时,取样守护进程31_102可以分析所报告的事件,以确定在24小时期间该事件最有可能发生的时间。例如,取样守护进程31_102可以确定“蓝牙LE扫描”事件经常发生在上午8点、晚上12点和下午6点左右,但很少发生在凌晨2点左右。取样守护进程31_102可以使用此事件频率信息来形成“蓝牙LE扫描”属性预算在24小时内的分配情况。例如,取样守护进程可以为对应于上午8点、晚上12点和下午6点的每个时隙分配两个预算积分,并为与凌晨2点相关的时隙分配零个预算积分。
[1192] 准入控制—表决器
[1193] 在一些具体实施中,取样守护进程31_102可以基于来自移动设备31_100上运行的其他软件(例如,插件、实用程序、应用程序、启发式过程)的反馈来执行准入控制。例如,可将其他软件配置为与取样守护进程31_102一起作为准入控制的表决器。例如,可以向取样守护进程31_102注册若干表决器(例如,应用程序、实用程序、守护进程、启发式过程等)以对准入控制决定进行表决。例如,取样守护进程31_102可以被配置为与如下表决器进行交互:监视移动设备31_100的热状况的表决器、监视移动设备31_100的CPU使用率的表决器,和/或监视移动设备31_100的电池功率电平的表决器。当取样守护进程31_102接收到准入控制请求时,可以要求每个表决器(例如,热、CPU和电池)对是否应允许与指定属性相关联的活动进行表决。当所有表决器均表决“是”时,该属性将被允许(例如,与该属性相关联的活动将被允许发生)。当单个表决器表决“否”时,该属性将不被允许(例如,与该属性相关联的活动将不被允许)。在一些具体实施中,表决器可被配置作为插件软件,其可以动态地(例如,在运行时)添加到取样守护进程31_102以向准入控制系统提供附加功能。在一些具体实施中,当确定是否准许或允许与某一属性或属性值相关联的事件时,表决器可以使用上述时间预报机制和对等预报机制。
[1194] 网络守护进程
[1195] 在一些具体实施中,网络守护进程31_406可以被配置作为准入控制表决器。网络守护进程31_406可被配置为使用取样守护进程31_102的表决API,其允许网络守护进程31_406从取样守护进程31_102接收表决请求,并向取样守护进程31_102提供表决响应(例如,是,否)。例如,网络守护进程31_406可以从取样守护进程31_102接收包括属性和/或属性值的表决请求。当移动设备31_100例如连接到语音呼叫并且未连接到Wi-Fi网络连接时,网络守护进程31_406可以指示取样守护进程31_102不应准许或允许与属性或属性值相关联的事件。例如,为了防止后台更新进程(例如,获取进程)干扰或降低语音呼叫的质量,当用户连接到语音呼叫且未连接到Wi-Fi连接时,网络守护进程31_406将不允许与启动后台更新进程相关联的事件(例如,“包名”开始事件)。因此,当移动设备31_100连接到呼叫且未连接到Wi-Fi时,网络守护进程31_406可以响应于表决请求而返回“否”值。
[1196] 在一些具体实施中,当移动设备31_100具有不良质量的蜂窝网络连接时,网络守护进程31_406可以指示取样守护进程31_102不应允许或准许属性事件。当传输速率和/或吞吐量低于预定阈值时,可以确定蜂窝连接质量差。例如,如果移动设备31_100具有质量较差的蜂窝网络连接且未连接到Wi-Fi,则网络守护进程31_406可以通过在取样守护进程31_102作出表决请求时返回“否”值,来防止属性事件的准入或执行,其中该属性事件将通过使用较差质量的网络连接(例如,启动将尝试通过不良蜂窝连接来下载或上载数据的应用程序)而浪费电池能量和蜂窝数据。
[1197] 在一些具体实施中,当网络守护进程31_406不具有指示不良网络状况或将影响网络数据使用率或系统性能的某些其他状况的信息时,网络守护进程31_406可以对所请求的属性的准入表决“是”。
[1198] 热守护进程
[1199] 在一些具体实施中,热守护进程31_110应用程序可被配置作为准入控制表决器。热守护进程31_110可被配置为使用取样守护进程31_102的表决API,其允许热守护进程31_
110从取样守护进程31_102接收表决请求,并向取样守护进程31_102提供表决响应(例如,是,否)。例如,热守护进程可以从取样守护进程31_102接收包括属性和/或属性值的表决请求。当热守护进程31_110已检测到热事件时,热守护进程31_110可以指示取样守护进程31_
102不应准许或允许与属性或属性值相关联的事件。例如,热守护进程31_110可以通过生成包括“热水平”属性和对应的温度值的事件,来监视移动设备31_100的温度并将温度值报告给取样守护进程31_102。
[1200] 在一些具体实施中,当热守护进程31_110确定移动设备31_100的温度高于阈值温度值时,热守护进程31_110可以进一步通过在取样守护进程31_102向热守护进程31_110发送对属性(例如“包名”)事件进行表决的请求时返回“否”值,来防止热守护进程31_102允许可能增大移动设备31_100的工作温度的属性事件。
[1201] 在一些具体实施中,在当前存在异常热状况时,取样守护进程31_102将仅要求来自热守护进程31_110的表决。例如,取样守护进程31_102可以保持指示移动设备31_100是否在正常热状况下工作的热状况值(例如,真,假)。例如,如果移动设备31_100的当前热状况正常,那么热状况值可以为真。如果移动设备31_100的当前热状况异常(例如,过热、高于阈值温度),则热状况值可以为假。初始,可以将热状况值设定为真(例如,正常工作温度)。在检测到工作温度升高到阈值温度以上时,热守护进程31_110可以向取样守护进程31_102发送指示异常工作温度的热状况值的更新值(例如,假)。一旦移动设备31_100冷却到低于阈值温度的温度,热守护进程31_110就可以更新热状况值(例如,真)以指示工作温度正常。
[1202] 当取样守护进程31_102接收到针对某一属性的准入控制请求时,取样守护进程31_102可以检查热状况值,以确定是否要求热守护进程31_110对该属性事件的准入(允许)进行表决。如果热状况值表示工作温度正常(例如,值为真),则取样守护进程31_102将把热状况值解释为来自热守护进程31_110的“是”表决。
[1203] 如果热状况值指示工作温度异常(例如,值为假),则取样守护进程31_102将把该属性和/或属性值发送给热守护进程31_110,以允许热守护进程31_110对特定属性或属性值进行表决。
[1204] 在一些具体实施中,热守护进程31_110可以基于移动设备31_100的当前热状况和属性的对等预报,来确定如何对属性和/或属性值进行表决(例如,是,否)。例如,热守护进程31_110可以请求来自取样守护进程31_102的针对该属性进行的对等预报。热守护进程31_110可以通过生成包括感兴趣时间段中的当前时间(例如,+-1小时、2小时等)的窗口规格,来请求针对当前时间进行对等预报。热守护进程31_110将从取样守护进程31_102接收到对等预报,其指示在感兴趣时间段中出现的属性的每个值的可能性得分。例如,如果热守护进程31_110请求针对“包名”属性进行对等预报,则热守护进程31_110可以接收“包名”值(例如,应用程序标识符)列表和相关联的预报(例如,概率、可能性)得分。例如,如果在感兴趣时间段期间出现了具有属性值“邮件应用”、“联系人”、“日历”、“web浏览器”、“邮件应用”、“web浏览器”、“邮件应用”的“包名”事件,则出现“邮件应用”的相对概率(即,得分)为
0.43(例如3/7),出现“web浏览器”的相对概率为0.29(例如2/7),出现“联系人”或“日历”的相对概率是0.14(例如1/7)。在一些具体实施中,热守护进程31_110可以根据得分来对属性值列表进行排序(例如,前部为最高得分,后部为最低得分)。例如,上述“包名”属性值的排序列表自上而下为:“邮件应用”、“web浏览器”,“联系人”和“日历”。
[1205] 在一些具体实施中,热守护进程31_110可以基于属性值在排序列表中的位置,来确定何时对属性值表决“是”。例如,如果由热守护进程31_110所考虑的属性值不在从取样守护进程31_102接收到的对等预报列表中,则属性值将从热守护进程31_110接收到“否”表决。如果属性值在对等预报列表中并且低于列表中的阈值水平(例如,索引)(例如,基于得分而言处于属性的最低25%),则热守护进程31_110将对该属性表决“否”。如果属性值在对等预报列表中并且高于列表中的阈值水平(例如,基于得分而言处于属性的最高75%),则热守护进程31_110将对该属性表决“是”。一旦表决确定,热守护进程31_110将向取样守护进程31_102返回“是”(例如,真)或“否”(例如,假)表决。
[1206] 在一些具体实施中,热守护进程31_110可以被配置为具有最大阈值水平,以避免在所有属性值上都表决“否”(例如,使得某些属性事件将发生)。最大阈值水平可以是排序对等预报列表中的属性值的50%(例如,前50%得到“是”表决,后50%得到“否”表决)。因此,热守护进程31_110可以调节阈值水平,该阈值水平把将接收到“是”表决的属性值与将接收到“否”表决的属性值从具有最低得分的0%到50%属性值处分开。
[1207] 在一些具体实施中,用于确定“是”或“否”表决的阈值水平可以与移动设备31_100的热水平(例如,温度)成比例。例如,热守护进程31_110可被配置为具有最大工作热水平(Lh)和正常工作水平(Ln)。热守护进程31_110可以确定当前的工作热水平(Lc),并确定移动设备31_100当前工作正处于的热范围(例如,Lh-Ln)的百分位数(例如,Lc-Ln/Lh-Ln=%)。热守护进程31_110可以使用所计算的百分位数来确定0-50%属性值的哪一部分应该收到“否”表决。例如,如果当前操作热水平被计算为热范围的65%,则由对等预报得分所得的后32.5%的属性值将从热守护进程31_110获得“否”表决。因此,最不重要的属性值将获得“否”表决,而最重要的属性值将获得“是”表决。返回参考上文的“包名”示例,如果“包名”属性值的排序列表自上而下为:“邮件应用”、“web浏览器”、“联系人”和“日历”,则“日历”会接收到“否”表决,而“邮件应用”、“web浏览器”和“联系人”会接收到“是”表决(例如,“邮件应用”、“web浏览器”和“联系人”是最常用的应用程序)。例如,如果应用程序管理器31_106已经针对“包名”属性作出了准入控制请求来确定要启动的应用程序,则“邮件应用”、“web浏览器”和“联系人”应用程序将会被启动,而“日历”应用程序将不会被启动。
[1208] 又如,可以要求热守护进程31_110对“邮件应用.邮箱”属性进行表决。可以针对“邮件应用.邮箱”属性值生成对等预报,其产生邮件文件夹的排序列表,该列表指示处最频繁访问的文件夹至最不频繁访问的文件夹(例如,“收件箱”、“个人”、“工作”、“家庭”、“垃圾邮件”和“垃圾箱”)。如果后32.5%的属性值要接收到“否”表决,那么“垃圾邮件”和“垃圾箱”将会收到“否”表决。例如,如果“邮箱”应用程序针对“邮件应用.邮箱”属性作出了准入控制请求来确定哪些文件夹要获取电子邮件,那么“邮件应用”应用程序将为“收件箱”、“个人”、“工作”和“家庭”文件夹获取电子邮件,而不为“垃圾邮件”和“垃圾箱”文件夹获取电子邮件。在一些具体实施中,当由取样守护进程31_102所保持的热状况值被重置以指示正常工作温度(例如,真)时,已从热守护进程31_110接收到“否”表决的属性或属性值可以得到通知。例如,取样守护进程31_102可以存储识别已收到“否”表决的客户端、属性和属性值的数据。在从热守护进程31_110接收到更新的热状况值(例如,真)时,取样守护进程31_102可以向接收到“否”表决的客户端发送通知,以提示该客户端尝试针对先前拒绝的属性或属性值作出另一准入控制请求。在一些具体实施中,客户端可以在未从取样守护进程31_102获得提示的情况下重新发送准入控制请求。例如,客户端可以具有内部定时器,其使得客户端在经过一段时间之后重试准入控制请求。
[1209] 活动监视器
[1210] 在一些具体实施中,活动监视应用程序408可被配置作为准入控制表决器。活动监视器31_408可被配置为使用取样守护进程31_102的表决API,其允许活动监视器31_408从取样守护进程31_102接收表决请求,并向取样守护进程31_102提供表决响应(例如,是,否)。例如,活动监视器31_408可以从取样守护进程31_102接收包括属性和/或属性值的表决请求。当移动设备31_100使用了超过阈值量(例如,90%)的存储器资源或CPU资源时,活动监视器31_408可以指示取样守护进程31_102不应准许或允许与属性或属性值相关联的事件。例如,如果移动设备31_100已经在运行许多正在使用移动设备31_100的大部分存储器资源或CPU资源的应用程序或进程,则在后台启动额外的应用程序将可能会通过用尽剩余的内存资源而降低移动设备31_100的性能。因此,当活动监视器31_408确定存储器或CPU使用率超过阈值(例如,75%)时,活动监视器31_408可以通过在取样守护进程31_102发送对“包名”属性事件进行表决的请求时返回“否”值,来防止应用程序管理器31_106启动额外的应用程序。如果活动监视器31_408确定移动设备31_100的存储器和/或CPU资源低于阈值使用量,则活动监视器31_408可以响应于来自取样守护进程31_102的表决请求而返回“是”值。
[1211] 启动后台获取应用程序
[1212] 在一些具体实施中,当应用程序管理器31_106向取样守护进程31_102作出准入控制请求并且接收到“是”回复时,应用程序管理器31_106可以在移动设备31_100的操作环境后台中调用或启动所识别的应用程序(例如,如由“包名”属性值所识别的应用程序31_108)。例如,应用程序31_108可以在后台启动,使得应用程序31_108的启动对于用户来说并不显眼。应用程序31_108然后可以通过网络(例如,互联网)与内容服务器31_404进行通信,从而下载更新的内容以供向用户显示。因此,当用户随后选择应用程序31_108(例如,将应用程序提至前台)时,设备将向用户呈现当前且最新的内容,而不必等待应用程序31_108从服务器31_404下载内容并刷新应用程序的用户界面。
[1213] 在一些具体实施中,应用程序管理器31_106可被配置为,当移动设备31_100正在充电并连接到Wi-Fi时,启动支持后台获取的应用程序。例如,取样守护进程31_102可以确定移动设备31_100何时连接到外部电源(例如,基于“缆线插入”属性事件)并通过Wi-Fi连接到网络(例如,互联网)(例如,基于所接收的事件),并向应用程序管理器31_106发送信号,以使应用程序管理器31_106启动在先前的某一时间量(例如,七天)内所使用的支持获取的应用程序。
[1214] 示例性后台获取过程
[1215] 图31_6是用于预测地启动应用程序以执行后台更新的示例性过程31_600的流程图。例如,过程31_600可以由应用程序管理器31_106和取样守护进程31_102执行,以确定何时启动被配置为从网络资源(诸如图31_4的内容服务器31_404)获取数据更新的后台应用程序。可以参考上文的图31_4和图31_5找到与过程31_600的步骤相关的附加描述。
[1216] 在步骤31_602处,应用程序管理器31_106可以从取样守护进程31_102接收应用程序调用预报。例如,应用程序管理器31_106可以在移动设备31_100的启动期间启动。在其初始化期间,应用程序管理器31_106可以请求对于在接下来的24小时时间段中可能由移动设备31_100的用户所调用的应用程序进行预报。例如,应用程序管理器31_106可以请求针对属性“包名”进行时间预报。此预报可以指示何时启动应用程序。例如,可将24小时的时间段分为多个15分钟的时段,并且每个15分钟时段可以与用户在该15分钟时段内调用应用程序的概率相关联。返回到应用程序管理器31_106的预报可以识别用户可能调用应用程序的最多64个15分钟时段。
[1217] 在步骤31_604处,应用程序管理器31_106可以基于应用程序启动预报来设定定时器。例如,应用程序管理器31_106可以针对由取样守护进程31_102返回至应用程序管理器31_106的应用程序启动预报中所识别的每个15分钟时段来设定定时器或闹钟。
[1218] 在步骤31_606处,应用程序管理器31_106可以请求取样守护进程31_102识别要启动的应用程序。例如,当定时器到期或闹钟停下时,应用程序管理器(如果睡眠或暂停)可唤醒,并且针对当前15分钟的时间段从取样守护进程31_102请求要启动的应用程序列表。取样守护进程31_102可以返回应该在移动设备31_100后台中启动的应用程序的列表。例如,应用程序管理器31_106可以请求针对属性“包名”进行对等预报。对等预报可以指示在当前15分钟时隙中最有可能报告“包名”属性的哪些值(例如,用户最有可能调用哪些应用程序)。
[1219] 在步骤31_607处,应用程序管理器31_106可以向取样守护进程31_102发送询问是否可以启动应用程序的请求。例如,对于响应于“包名”对等预报请求而由取样守护进程31_102识别的每个应用程序,应用程序管理器31_106可以询问取样守护进程31_102是否启动该应用程序。例如,应用程序管理器31_106可以请求取样守护进程31_102针对“包名”属性的特定值来执行准入控制,其中该特定值对应于应用程序管理器31_106尝试启动的应用程序。如果可以启动该应用程序,则守护进程31_102可返回“是”,如果不可以启动该应用程序,则返回“否”,如果从不可以启动该应用程序,则返回“从不”。
[1220] 在步骤31_610处,应用程序管理器31_106可以启动应用程序。例如,如果取样守护进程31_102向准入控制请求返回“确定”(例如,确定、是、真等)应答,则应用程序管理器31_106将把该应用程序作为移动设备31_100的后台进程而启动。如果取样守护进程31_102向准入控制请求返回“否”或“从不”应答,则应用程序管理器31_106将不会启动该应用程序。
[1221] 在步骤31_612处,应用程序管理器31_106可以向取样守护进程31_102发送应用程序启动通知。例如,应用程序管理器31_106可以向取样守护进程31_102发送“包名”开始事件,以记录所启动的应用程序的执行。
[1222] 在步骤31_614处,应用程序管理器31_106可以检测到所启动的应用程序已经终止。例如,应用程序管理器31_106可以确定所启动的应用何时不再在移动设备31_100上运行。
[1223] 在步骤31_616处,应用程序管理器31_106可以向取样守护进程31_102发送应用程序终止通知。例如,应用程序管理器31_106可以向取样守护进程31_102发送“包名”结束事件,以记录应用程序的终止。
[1224] 图31_7是用于确定何时在移动设备31_100上启动应用程序的示例性过程31_700的流程图。例如,过程31_700可用于确定何时启动应用程序、应该启动何种应用程序,以及是否可以基于应用程序使用统计信息(例如“包名”属性事件数据)、数据和能源预算,以及移动设备操作状况和环境状况来启动应用程序,如上文参考图31_4详细描述的那样。
[1225] 在步骤31_702处,取样守护进程31_102可以从应用程序管理器31_106接收应用程序启动预报请求。例如,应用程序管理器31_106可以请求从取样守护进程31_102针对“包名”属性对下一个24小时进行时间预报。一旦24小时的时间段过去,应用程序管理器31_106就可以请求针对“包名”属性对随后的24小时时间段进行时间预报。例如,应用程序管理器31_106可以请求针对“包名”属性每24小时进行一次时间预报。
[1226] 在步骤31_704处,取样守护进程31_102可以确定应用程序启动预报。例如,应用程序启动预报(例如,针对“包名”属性的时间预报)可用于预测在24小时期间何时可能会发生由用户发起的应用程序启动。24小时的时间段可以分为多个15分钟的时段。对于每个15分钟时段(例如,在24小时内有96个15分钟的时段),取样守护进程31_102可以使用历史用户调用统计数据(例如,“包名”开始事件)来确定由用户发起的应用程序启动将出现在该15分钟时段中的概率,如上文参考图31_4所述。
[1227] 在步骤31_706处,取样守护进程31_102可以将应用程序启动预报传送给应用程序管理器31_106。例如,取样守护进程31_102可以选择最多64个具有由用户发起的应用程序启动的最高非零概率的15分钟时段。可以通过该15分钟时段的开始时间(例如,下午12:45)来识别所选择的15分钟时段中的每一个。取样守护进程31_102可以将应用程序管理器31_106的15分钟时段标识符列表作为应用程序启动预报(例如,针对“包名”属性的时间预报)而发送。
[1228] 在步骤31_708处,取样守护进程31_102可以接收对于当前时间启动何种应用程序的请求。例如,应用程序管理器31_106可以向取样守护进程31_102发送一个请求,用于使取样守护进程31_102确定在当前时间或当前时间前后应该启动哪些应用程序。例如,该请求可以是针对“包名”属性的对当前15分钟时隙进行对等预报的请求。
[1229] 在步骤31_710处,取样守护进程31_102可以基于历史事件数据对当前时间的应用程序进行打分。取样守护进程31_102可以基于由取样守护进程31_102收集的由用户发起的应用程序历史启动数据(例如“包名”属性开始事件数据)来确定用户在不久的将来可能启动的应用程序。取样守护进程31_102可以利用最近的应用程序启动数据、日常应用程序启动数据和/或每周应用程序启动数据,基于用户将在当前时间或当前时间前后调用应用程序的历史概率来对应用程序进行打分,如上文参考图31_4和图31_5所述。
[1230] 在步骤31_712处,取样守护进程31_102可以将应用程序和应用程序得分传送给应用程序管理器31_106。例如,取样守护进程31_102可以选择具有最高得分(例如,由用户调用的概率最高)的某一数量(例如,三个)的应用程序(例如,“包名”属性值)来传送至应用程序管理器31_106。取样守护进程31_102可以排除在前一段时间内(例如,先前5分钟)内已经启动的应用程序。取样守护进程31_102可以向应用程序管理器31_106发送识别最高得分应用程序及其相应得分的信息,如上文参考图31_4所述。
[1231] 在步骤31_714处,取样守护进程31_102可以接收来自应用程序管理器31_106的请求,以确定是否可以启动某一应用程序。例如,取样守护进程31_102可以接收识别应用程序(例如,“包名”值)的准入控制请求。
[1232] 在步骤31_716处,取样守护进程31_102可以确定当前的移动设备状况和预算允许应用程序启动。例如,响应于准入控制请求,取样守护进程31_102可以检查系统级数据和能量预算、属性预算和表决器反馈,以确定应将该应用程序作为移动设备31_100上的后台任务而启动,如上文参考图31_4所详细描述的那样。
[1233] 在步骤31_718处,取样守护进程31_102可以向应用程序管理器31_106传输回复,指示可以启动所识别的应用程序。例如,如果条件适用于后台应用程序启动,则取样守护进程31_102可以响应于准入控制请求向应用程序管理器31_106返回“是”值(例如,确定、是、真等),以使得应用程序管理器31_106可以启动所识别的应用程序。
[1234] 短期趋势
[1235] 在一些具体实施中,取样守护进程31_102可被配置为检测属性何时趋于出现。例如,客户端应用程序可以向取样守护进程31_102注册对于特定属性的兴趣。当取样守护进程31_102检测到特定属性趋于出现时,取样守护进程31_102可以通知客户特定属性正趋于出现。
[1236] 例如,应用程序管理器31_106可以注册对于“包名”属性(或“包名”属性的特定值)的兴趣。当取样守护进程31_102确定“包名”属性(或其值)趋于出现时,取样守护进程31_102可以向应用程序管理器31_106通知该趋势,使得应用程序管理器31_106可以在移动设备31_100的后台中预测性地启动该趋于出现的应用程序。例如,如果应用程序正被移动设备31_100的用户重复地调用,则该应用程序正趋于出现。在某些情况下,趋于出现的应用程序是可能未包括在上述“包名”属性对等预报中的新应用程序,或者是在趋于出现之前很少使用的应用程序。因此,该趋于出现的应用程序可能未使用上述应用程序启动预报方法来保持最新。
[1237] 属性趋势检测的目的是检测被重复报告给取样守护进程31_102的属性(例如,属性事件),并确定属性被启动的近似节奏(例如周期性),在所报告节奏较小时即出错。正被重复报告给取样守护进程31_102的属性被称为“趋于出现”。取样守护进程31_102客户端随后可以使用所确定的节奏在预期到与趋于出现的属性相关联的下一事件的情况下执行功能或操作。
[1238] 例如,应用程序管理器31_106可以使用所确定的节奏来设定将触发应用程序管理器31_106在后台启动趋于出现的应用程序的定时器,以便当用户调用该应用程序时,该应用程序将被更新,如上所述。例如,如果应用程序的节奏为5分钟,则应用程序管理器31_106可以设定将每4分钟到时的定时器,并使应用程序管理器31_106启动应用程序,使得应用程序可以接收更新的内容,并且在被用户再次调用之前更新应用程序的界面。
[1239] 在一些具体实施中,本节中所述的趋势检测机制可用于检测包括应用程序启动在内的其他系统事件趋势,诸如重复的软件或网络通知、应用程序崩溃等。例如,客户端可以注册对任何属性或属性值的兴趣,并且当感兴趣的属性趋于出现时可接收到通知。
[1240] 在一些具体实施中,取样守护进程31_102可以保持可用于跟踪多个属性行为的趋势表。该趋势表可以包括属性值识别字段(ATTID),状态字段(STATE),最近启动时间戳(LLT),指示两次启动之间的时间量的启动间节奏(ILC)和置信度字段(C)。
[1241] 图31_8是示出趋势表中某一条目(例如,应用程序)的状态转换的流程图31_800。最初在步骤31_802处,趋势表可以包括空条目(例如,记录),其中ATTID、LLT、ILC和C字段为空(例如,N/A)且STATE被设定为“无效”(I)。当在时间t处报告属性事件时,该趋势表受到扫描,以获得可用条目(例如,状态I中的条目)。在可能的无效条目中,可以使用若干种方法来选择要使用的条目。例如,可以选择一个随机无效条目。另选地,可以选择无效条目,使得趋势表中的所有空条目保持连续的顺序。如果不存在无效条目,则可以选择瞬时(T)状态中最老的条目(或随机条目),来跟踪新启动的应用程序。如果不存在I或T状态条目,则可以选择最老的新(N)状态条目,来跟踪新报告的属性事件。
[1242] 在步骤31_804中处,一旦选择了趋势表条目,用于跟踪新报告属性事件的所选条目的STATE字段就可被设定为新(N),ATTID可被设定为新报告属性的属性值,LLT字段可被设定为当前时间t(例如,挂钟时间),并且ILC和C字段被设定为预定义的最小值ILC_MIN(例如,1分钟)和C_MIN(例如,零)。
[1243] 在步骤31_806处,在时间t’处的对同一属性事件的下一次报告上,如果表中用于该属性的条目仍然存在且未被逐出(例如,被选择以跟踪另一个属性),则会发现该条目。该条目的STATE被设定为瞬时(T),ILC被设定为LLT与当前系统时间之间的差异(例如,t’-t或t’-LLT),并且C字段递增(例如,以预定义值C_DELTA递增)。另选地,可以将ILC字段设定为其旧值和新值的其他函数,诸如运行平均值。
[1244] 在步骤31_808处,在时间t’处的对同一属性事件的下一次报告上,如果表中用于该属性的条目仍然存在且未被逐出(例如,被选择以跟踪另一个属性),则会发现该条目。该条目的STATE可保持设定为瞬时(T),ILC被设定为LLT与当前时钟(例如,挂钟)时间之间的差异(例如,t’-t或t’-LLT),并且C字段再次递增(例如,以预定义值C_DELTA递增)。
[1245] 在步骤31_810处,如果在该属性事件的若干次报告之后,趋势表条目的C值达到(例如,等于)阈值(例如,C_HIGHTHRESHOLD),则在步骤31_811处,该属性条目的状态可以改变为STATE=A。如果在步骤31_810处,趋势表条目的C值未达到阈值(例如,C_HIGHTHRESHOLD),则可以根据步骤31_808更新该条目的值。
[1246] 在状态“A”中,无论何时报告了属性事件,如果最近一次报告与当前报告时间之间的时间在一定时间量以内(例如,ILC_EPSILON=5分钟),则该属性条目的置信度(C)字段递增,直到达到预定义的最大值(例如,C_MAX)。当趋势表中的属性条目处于活动(A)状态时,条目的ILC值可用作对启动率(例如,节奏)的估计,并且条目的ATTID可用于识别趋于出现的属性值。
[1247] 在一些具体实施中,取样守护进程31_102可以向客户端发送属性值(ATTID)和节奏值(ILC),使得客户端可以在预期到与属性值相关联的下一事件的情况下执行某些动作或功能。例如,属性值和节奏值可以被发送到应用程序管理器31_106,使得应用程序管理器31_106可以在预期到应用程序用户调用该应用程序的情况下,在后台启动所识别的应用程序(例如,ATTID,“包名”属性值),使得该应用程序可以在用户启动该应用程序之前接收更新的内容,如上所述。例如,应用程序管理器31_106可以基于节奏值来启动定时器,该节奏值将在预期到用户调用应用程序的情况下,唤醒应用程序管理器31_106来启动应用程序。
[1248] 在一些具体实施中,取样守护进程31_102可以基于所检测的属性趋势向客户端通知属性事件的预期下一次发生。例如,取样守护进程31_102可以向应用程序管理器31_106发送指示应用程序管理器31_106应启动趋于出现的应用程序的信号或通知。应用程序管理器31_106可以通过向取样守护进程31_102发送应用程序标识符(例如,“包名”属性值)来注册对应用程序的兴趣。取样守护进程31_102可以监视应用程序的用户调用情况(例如,基于所报告的“包名”开始事件),以确定应用程序是否趋于出现,如上所述。如果应用程序趋于出现,则如上所述,取样守护进程31_102可以确定调用的节奏,并且基于该节奏在确定的时间向应用程序管理器31_106发送通知或信号。例如,如果节奏是四分钟,则取样守护进程31_102可以每3分钟(例如,在下次发生事件之前的某个时间段)向应用程序管理器31_106发送一次信号,以使应用程序管理器31_106启动应用程序。如果节奏更改为6分钟,则取样守护进程31_102可以检测到节奏变更,并在应用程序管理器31_106收到信号时进行调节。
例如,取样守护进程31_102可以向应用程序管理器31_106发送信号,以每5分钟而不是每3分钟启动应用程序,从而进行调节以适应于减慢的节奏(例如,两次调用之间的时间段增加)。
[1249] 在出于任何原因(例如,添加新条目、更新现有条目等)而对属性趋势表进行每次检查时,STATE=T或STATE=A中的所有条目(自其上次启动后的时间比其ILC大ILC_EPSILON)的C值将递减。在该点的C值低于最低阈值(例如,C_LOWTHRESHOLD)的任何条目都被降级。例如,条目可以从状态A降级到状态T,或从状态T降级到状态I。
[1250] 在一些具体实施中,上述趋势检测机制可用于检测除应用程序调用或启动之外的趋势事件。例如,可以使用上述趋势检测方法和趋势表来检测和跟踪移动设备31_100上的任何再现性事件(例如,任何属性事件)。趋势事件可以包括屏幕触摸、网络连接、应用程序故障、发生网络入侵和/或可以向取样守护进程31_102报告或发出信号的任何其他事件。
[1251] 推送通知
[1252] 图31_9是示出了用于向移动设备31_100提供推送通知的系统的框图31_900。在一些具体实施中,移动设备31_100可被配置为接收推送通知。例如,推送通知可以是由推送提供方31_902发起并通过推送通知服务器31_906发送到在移动设备31_100上运行的推送服务守护进程31_904的消息。
[1253] 在一些具体实施中,推送提供方31_902可以通过由应用程序31_908向移动设备31_100的用户呈现的用户授权请求,接收向移动设备31_100发送推送通知的授权。例如,推送提供方31_902可以是由创建(例如,编程、开发)应用程序31_908的相同供应商所拥有、操作和/或维护的服务器。当应用程序31_908在移动设备31_100上呈现出请求授权推送提供方31_902向移动设备31_100发送推送通知的用户界面,并且用户指示推送通知被授权时,推送提供方31_902可以接收来自用户的授权以向移动设备31_100发送推送通知(例如,推送服务守护进程31_904)。例如,用户可以选择用户界面上由应用程序31_908呈现的按钮,来指示推送通知被授权给推送提供方31_902和/或应用程序31_908。推送提供方31_902然后可以接收识别移动设备31_100并且可以用于将推送通知路由到移动设备31_100的设备令牌。例如,推送通知服务器31_906可以使用推送通知接收设备令牌,并使用该设备令牌来确定哪个移动设备31_100应该接收推送通知。
[1254] 在一些具体实施中,移动设备31_100可以向推送通知服务器31_906发送识别经授权的推送应用程序的信息。例如,移动设备31_100可以向推送通知服务器31_906发送包含推送通知筛选器31_914的消息31_926和用于移动设备31_100的设备令牌。推送通知服务器31_906可以针对由推送通知服务器31_906所服务的每个移动设备来将设备令牌的映射(例如,移动设备31_100的标识符)存储到推送筛选器31_914。推送筛选器31_914可以包括例如识别这样的应用程序的信息:所述应用程序已经接收到在移动设备31_100上接收推送通知的授权。
[1255] 在一些具体实施中,推送筛选器31_914可以由推送通知服务器31_906用来筛选掉(例如,阻止发送)发送给尚未由移动设备31_100的用户所授权的应用程序的推送通知。由推送提供方31_902向推送通知服务器31_906发送的每个推送通知可以包括识别与推送提供方31_902和移动设备31_100相关联的应用程序31_908(例如,设备令牌)的信息(例如,标识符)。
[1256] 当通知服务器31_906接收到推送通知时,通知服务器31_906可以使用移动设备识别信息(例如,设备令牌)来确定向所接收的推送通知应用哪个推送筛选器31_914。通知服务器31_906可以将推送通知中的应用程序识别信息与所识别的移动设备的推送筛选器31_914进行比较,以确定在推送筛选器31_914中是否识别出与推送提供方31_902相关联的、并在推送通知中所识别的应用程序。如果在推送筛选器31_914中识别到与推送通知相关联的应用程序,则通知服务器31_906可以将从推送提供方31_902接收到的推送通知发送到移动设备31_100。如果在推送筛选器31_914中未识别到推送通知中所识别的应用程序,则通知服务器将不会把从推送提供方31_902接收到的推送通知发送到移动设备31_100,并且可以删除推送通知。
[1257] 非唤醒推送通知
[1258] 在一些具体实施中,通知服务器31_906可以被配置为处理高优先级推送通知和低优先级推送通知。例如,推送提供方31_902可以向推送通知服务器31_906发送高优先级推送通知31_910和/或低优先级推送通知31_912。推送提供方31_902可以例如通过在发送到推送通知服务器31_906和移动设备31_100的推送通知中包含的数据中指定推送通知的优先级,来将推送通知识别为高优先级或低优先级。
[1259] 在一些具体实施中,推送通知服务器31_906可以将低优先级推送通知31_912与高优先级推送通知31_910进行不同处理。例如,推送通知服务器31_906可以被配置为,将包含在高优先级推送31_910中的应用程序识别信息与推送筛选器31_914中的经授权应用程序识别信息进行比较,以确定是否可以将高优先级推送通知31_910发送到移动设备31_100。如果高优先级推送通知31_910中的应用程序识别信息与推送筛选器31_914中的经授权应用程序标识符匹配,则推送通知服务器31_906可以向移动设备31_100发送高优先级推送通知。如果高优先级推送通知31_910中的应用程序识别信息与推送筛选器31_914中的经授权应用程序标识符不匹配,则推送通知服务器31_906将不会向移动设备31_100发送高优先级推送通知。
[1260] 在一些具体实施中,推送通知服务器31_906可以被配置为延迟低优先级推送通知的递送。例如,当移动设备31_100接收到来自推送通知服务器31_906的推送通知时,推送通知的接收使得移动设备31_100被唤醒(例如,如果处于睡眠或低电力状态)。当移动设备31_100唤醒时,移动设备31_100将打开可耗尽电池、使用蜂窝数据、致使移动设备31_100升温或以其他方式影响移动设备31_100的各种子系统和处理器。通过防止或延迟向移动设备
31_100递送低优先级推送通知,移动设备31_100可以节省网络(例如,蜂窝数据)和系统(例如,电池)资源。
[1261] 在一些具体实施中,推送通知筛选器31_914可以包括唤醒列表31_916和勿唤醒列表31_918。唤醒列表31_916可以识别应该针对哪个应用程序向移动设备31_100递送低优先级推送通知。在一些具体实施中,当应用程序被授权在移动设备31_100处接收推送通知时,默认地将应用程序识别信息添加到唤醒列表31_914。勿唤醒列表31_918可以识别应该延迟低优先级推送通知的经授权应用程序。下文在描述推送通知发起的后台更新时,详细描述了用于填充勿唤醒列表31_918和/或操纵唤醒列表31_916和勿唤醒列表31_918的具体机制。在一些具体实施中,只要在推送筛选器31_914(例如,唤醒列表31_914和/或勿唤醒列表31_918)中识别到在高优先级推送通知中所识别的应用程序,高优先级推送通知就将不会在推送通知服务器31_906处延迟,并且将被推送到移动设备31_100。
[1262] 在一些具体实施中,当推送通知服务器31_906接收到低优先级推送通知31_912时,推送通知服务器31_906可以将低优先级推送通知31_912中的应用程序标识符与唤醒列表31_916和/或勿唤醒列表31_918进行比较。例如,如果低优先级推送通知31_912中的应用程序识别信息与唤醒列表31_916中的经授权应用程序标识符匹配,则低优先级推送通知31_912将在通知消息31_920中被递送到移动设备31_100。
[1263] 在一些具体实施中,与勿唤醒列表31_918中所识别的应用程序相关联的低优先级推送通知的传递可受到延迟。例如,如果在勿唤醒列表31_918中也识别到在低优先级推送通知31_912中所识别的应用程序,则可将低优先级推送通知31_912存储在推送通知数据存储库31_922中,而不是立即递送到移动设备31_100。在一些具体实施中,如果由推送通知(高优先级或低优先级)所识别的移动设备31_100当前没有连接到推送通知服务器31_906,则该未连接移动设备31_100的推送通知可被存储在推送通知数据存储库31_922中,用于供稍后递送到移动设备31_100。
[1264] 在一些具体实施中,存储在推送数据存储库31_922中的推送通知将保持留在推送数据存储库31_922中,直到与所存储的推送通知相关联的应用程序标识符从勿唤醒列表31_918移动到唤醒列表31_916,或者直到推送通知服务器31_906和移动设备31_100之间建立起网络连接。
[1265] 例如,当另一(高优先级或低优先级)推送通知被递送到移动设备31_100时,或者当移动设备31_100向推送通知服务器31_906发送其他传输31_924(例如,状态消息、心跳消息、保持活动消息等)时,可以在推送通知服务器31_906和移动设备31_100之间建立网络连接。例如,移动设备31_100可以向推送通知服务器31_905发送指示移动设备31_100将在一段时间(例如,5分钟)内处于活动状态的消息31_924,并且推送通知服务器31_906可以在指定的活动期间内将所有接收到的推送通知发送到移动设备31_100。在一些具体实施中,当在移动设备31_100和推送通知服务器31_906之间建立起网络连接时,存储在推送通知存储器31_922中的所有推送通知将被递送到移动设备31_100。例如,存储在推送通知数据存储库31_922中的推送通知可以通过由移动设备31_100和推送通知服务器31_906之间的其他传输所创建的连接来传送。
[1266] 在一些具体实施中,移动设备31_100可以与推送通知服务器31_906建立两个不同的通信信道。例如,可以同时或在不同时间建立两个通信信道。移动设备31_100可以与推送通知服务器31_906具有例如蜂窝数据连接和/或Wi-Fi连接。在一些具体实施中,移动设备31_100可以针对每个通信信道生成并向推送通知服务器31_906发送不同推送筛选器31_
914。例如,蜂窝数据连接可以与第一组推送筛选器31_914相关联,用于确定何时在蜂窝数据连接上发送高优先级和低优先级推送通知。Wi-Fi数据连接可以与相同或不同于蜂窝数据推送筛选器的第二组推送筛选器31_914相关联,用于确定何时在Wi-Fi数据连接上发送高优先级和低优先级推送通知。当推送通知服务器31_906接收到推送通知时,推送通知服务器可将推送通知中所识别的应用程序与推送通知服务器31_906将用于向移动设备31_
100发送推送通知的通信信道(例如,Wi-Fi、蜂窝)的推送通知筛选器进行比较。
[1267] 推送所发起的后台更新
[1268] 在一些具体实施中,移动设备31_100对推送通知的接收可以触发移动设备31_100上的应用程序的后台更新。例如,当移动设备31_100(例如,推送服务守护进程31_904)从推送通知服务器31_906接收到推送通知消息31_920时,推送服务守护进程31_904可以将推送通知消息31_920中的应用程序标识符与存储在移动设备31_100上的筛选器31_928进行比较,以确定推送通知消息31_920是否被正确递送,或是否应该已被推送通知服务器31_906筛选掉(例如,未被递送)。例如,推送筛选器31_928、唤醒列表31_930和勿唤醒列表31_932可分别对应于推送筛选器31_914、唤醒列表31_916和勿唤醒列表31_918。在一些具体实施中,如果推送服务守护进程31_904确定推送通知消息31_920不应该已经被递送到移动设备31_100,则推送通知消息31_902将被删除。
[1269] 低优先级推送通知
[1270] 在一些具体实施中,由移动设备31_100所接收的推送通知消息31_920可以包括低优先级推送通知。例如,低优先级推送通知可以指示内容更新可用于与推送通知相关联的应用程序。因此,当低优先级推送通知导致应用程序31_908启动时,应用程序31_908可以从一个或多个网络资源(例如,推送提供方31_902)下载更新的内容。
[1271] 在一些具体实施中,当推送服务守护进程31_904接收到与移动设备31_100上的应用程序(例如,应用程序31_908)相关联的低优先级推送通知时,推送服务守护进程31_904可以询问取样守护进程31_102是否可以启动与所接收到的低优先级推送通知相关联的应用程序。例如,推送服务守护进程31_904可以通过向取样守护进程31_102发送与所接收的低优先级推送通知相关联的应用程序的标识符(例如,“包名”属性值),来请求取样守护进程31_102执行准入控制。取样守护进程31_102可以通过检查数据预算、能量预算、属性预算和表决器反馈来执行准入控制,如上文参考图31_4所述。取样守护进程31_102可以基于准入控制处理的结果向推送服务守护进程31_904返回这样的值:该值指示是否可以启动由低优先级推送通知所识别的应用程序。
[1272] 在一些具体实施中,如果从准入控制请求返回的值指示“是”—启动应用程序可行,则推送服务守护进程31_904将向应用程序管理器31_106发送低优先级推送通知,并且应用程序管理器31_106可以调用该应用程序(例如,应用程序31_908)。应用程序31_908然后可以通过网络(例如,互联网)与推送提供方31_902通信,以从推送提供方31_902接收更新的内容。
[1273] 在一些具体实施中,如果从准入控制请求返回的值指示“否”—启动应用程序不可行,则推送服务守护进程31_904将把低优先级推送通知存储在推送通知数据存储库31_934中。例如,当存储低优先级推送通知时,推送服务守护进程31_904将仅存储针对在推送通知中所识别的应用程序而接收到的最新推送通知。在一些具体实施中,当取样守护进程31_102指示推送服务守护进程31_904现在不应该启动应用程序(例如,准入控制答复为“否”)时,推送服务守护进程31_904可以将用于该应用程序的应用程序标识符从唤醒列表31_930移动至勿唤醒列表31_932。例如,如果取样守护进程31_102确定移动设备的预算和/或状况不允许启动应用程序,则允许推送通知服务器31_906唤醒移动设备31_100以获得与应用出现相关联的额外低优先级推送通知,仅仅会进一步消耗移动设备31_100的数据和能量预算,或使环境状况变差(例如,导致设备升温)。因此,通过将应用程序标识符移动到勿唤醒列表31_932中并向包括更新筛选器31_928(例如,唤醒列表31_930和勿唤醒列表31_932)的推送通知服务器31_906发送消息31_926,通知服务器31_906可以更新其自身的推送筛选器
31_914、唤醒列表31_916和勿唤醒列表31_918来反映对推送筛选器31_928的更改,并且防止用于应用程序的额外低优先级推送通知被递送到移动设备31_100。
[1274] 在一些具体实施中,如果从准入控制请求返回的值指示启动应用程序“从不”可行,则推送服务守护进程31_904将删除低优先级推送通知,并从推送筛选器中删除与推送通知相关联的应用程序标识符31_928。更新的推送筛选器可以被发送至推送通知服务器31_906,并且推送通知服务器31_906上的推送筛选器31_914可以得到更新,以防止推送通知服务器31_906发送与应用程序标识符相关联的任何更多推送通知。
[1275] 在一些具体实施中,取样守护进程31_102可以向推送服务守护进程31_904发送“停止”信号,以临时阻止将来的低优先级推送通知从推送通知服务器31_906被发送到移动设备31_100。例如,在下述情况下,取样守护进程31_102可以向推送服务守护进程31_904发送停止信号:取样守护进程31_102确定数据预算在当前小时耗尽、能量预算在当前小时耗尽、该系统正在经历热事件(例如,移动设备31_100过热)、移动设备31_100具有较差的蜂窝连接,以及移动设备31_100未连接到Wi-Fi并且/或者移动设备31_100连接到语音呼叫且未连接到Wi-Fi。当推送服务守护进程31_904接收到停止信号时,推送服务守护进程31_904可以将唤醒列表31_930中的应用程序标识符移动到勿唤醒列表31_932,并将更新的推送筛选器31_928发送到推送通知服务器31_906以更新推送筛选器31_914。因此,推送通知服务器31_906将暂时阻止将来的低优先级推送通知唤醒移动设备31_100并影响移动设备31_100的预算、限制和操作状况。
[1276] 在一些具体实施中,取样守护进程31_102可以向推送服务守护进程31_904发送重试信号。例如,取样守护进程31_102可以监视预算、网络连接、限制和设备状况的状态,并且在下述情况下将向推送服务守护进程31_904发送重试消息:当能量预算未耗尽时、当推送数据预算未耗尽时、当移动设备31_100未经历热事件时、当移动设备31_100具有良好质量的蜂窝连接或者连接到Wi-Fi时、当移动设备31_100未连接到语音呼叫,以及当启动速率限制已被重置时。一旦推送服务守护进程31_904接收到重试信号,推送服务守护进程31_904就将针对推送通知数据存储库31_934中的每个推送通知发送对取样守护进程31_102的准入控制请求,以确定是否可以启动与所存储的推送通知相关联的每个应用程序(例如,“包名”属性值)。
[1277] 如果取样守护进程31_102从准入控制请求返回“是”,则推送服务守护进程31_904可以向应用程序管理器31_106发送推送通知,并且应用程序管理器31_106可以将与推送通知相关联的应用程序作为移动设备31_100上的后台进程而启动,如上所述。一旦应用程序启动,该应用程序就可以下载内容或数据更新,并根据所下载的数据更新应用程序用户界面。应用程序管理器31_106不会询问取样守护进程31_102是否可以启动与低优先级推送通知相关联的应用程序。
[1278] 高优先级推送通知
[1279] 在一些具体实施中,由移动设备31_100所接收的推送通知消息31_920可以包括高优先级推送通知。例如,高优先级推送通知可以指示内容更新可用于与推送通知相关联的应用程序。因此,当高优先级推送通知导致应用程序的调用时,该应用程序可以从一个或多个网络资源下载更新的内容。在一些具体实施中,当推送服务守护进程31_904接收到高优先级推送通知时,推送服务守护进程31_904将向应用程序管理器31_106发送高优先级推送通知,而不对取样守护进程31_102作出准入控制请求。
[1280] 在一些具体实施中,当应用程序管理器31_106接收到与应用相关联的推送通知时,应用程序管理器31_106将对取样守护进程31_102作出准入控制请求。响应于准入控制请求,取样守护进程31_102可以如上所述地以“是”、“否”或“从不”应答进行回复。当应用程序管理器31_106接收到对准入控制请求的“是”回复时,应用程序管理器31_106可以将与所接收的高优先级推送通知相关联的应用程序作为移动设备31_100上的后台进程而启动。
[1281] 在一些具体实施中,当应用程序管理器31_106接收到对准入控制请求的“否”回复时,应用程序管理器31_106可以将高优先级推送通知存储在高优先级推送通知存储库31_936中。当应用程序管理器31_106接收到“从不”应答时,应用程序管理器31_106可以删除高优先级推送通知,并删除存储在推送通知数据存储库31_936中用于与推送通知相关联的应用程序的任何推送通知。
[1282] 在一些具体实施中,取样守护进程31_102可以向应用程序管理器31_106发送“可以重试”信号。例如,当应用程序管理器31_106从取样守护进程31_102接收到“可以重试”消息时,应用程序管理器31_106可以针对与高优先级推送通知数据存储库31_936中的每个高优先级推送通知相关联的应用程序作出准入控制请求,并且当响应于准入控制请求接收到“是”回复时,将各个应用程序作为后台进程而启动。
[1283] 延迟显示推送通知
[1284] 在一些具体实施中,高优先级推送通知可以使图形用户界面显示在移动设备31_100上。例如,高优先级推送通知的接收可以使横幅、气球类似物或其他图形对象显示在移动设备31_100的图形用户界面上。图形对象可以包括例如指示所接收的推送通知的主题或内容的信息。
[1285] 在一些具体实施中,当应用程序管理器31_106接收到高优先级推送通知时,应用程序管理器31_106可以使该通知显示在移动设备31_100的图形用户界面上。然而,当高优先级推送通知指示存在要下载到与高优先级推送通知相关联的应用程序的数据更新时,可以在显示推送通知之前在移动设备31_100的后台启动该应用程序。例如,应用程序管理器31_106可以被配置为在启动与高优先级推送通知相关联的应用程序和显示向用户声明推送通知的图形对象(例如横幅)之间具有某一延迟时间量(例如,30秒)。该延迟可以例如允许应用程序有足够的时间下载内容更新,并在用户调用之前更新应用程序的用户界面。因此,当用户向图形对象提供输入或以其他方式调用与高优先级推送通知相关联的应用程序时,该应用程序的用户界面将是最新的,并且用户不会被迫等待该应用程序的更新。在一些具体实施中,如果应用程序管理器31_106不能够启动与高优先级推送通知相关联的应用,则移动设备31_100将显示图形对象(例如横幅)来通知用户高优先级推送通知被接收到。
[1286] 示例性推送通知过程
[1287] 图31_10是用于在推送通知服务器31_906处执行非唤醒推送的示例性过程1000的流程图。在步骤31_1002处,推送通知服务器31_906可以接收推送通知。例如,推送通知服务器31_906可以从推送通知提供方31_902(例如,由应用程序供应商操作的服务器)接收推送通知。
[1288] 在步骤31_1004处,推送通知服务器31_906可以确定推送通知是低优先级推送通知。例如,推送通知提供方可以在推送通知中包括指定推送通知的优先级的数据。推送通知服务器31_906可以分析推送通知的内容,以确定推送通知的优先级。
[1289] 在步骤31_1006处,推送通知服务器31_906可以将推送通知与推送通知筛选器进行比较。例如,推送通知可以识别低优先级推送通知所导向的、安装或配置在移动设备31_100上的应用程序。推送通知可以包括例如应用程序标识符(例如,“包名”属性值)。推送通知服务器31_906可以将推送通知中的应用程序标识符与推送通知筛选器的勿唤醒列表31_
918中的应用程序标识符进行比较。
[1290] 在步骤31_1008处,推送通知服务器31_906可以确定应该存储低优先级推送通知。例如,如果来自低优先级推送通知的应用程序标识符在推送通知筛选器的勿唤醒列表31_
918中,则推送通知服务器31_906可以确定低优先级推送应该存储在推送通知数据存储库
31_922中。
[1291] 在步骤31_1010处,基于步骤31_1008处的确定,低优先级推送通知将被存储在推送通知服务器31_906的数据库或数据存储库31_922中,并且不会立即发送到移动设备31_100。
[1292] 在步骤31_1012处,推送通知服务器31_906可以确定已经建立了与移动设备31_100的网络连接。例如,推送通知服务器31_906可以创建与移动设备31_100的网络连接,以递送另一个高优先级或低优先级推送。移动设备31_100可以建立与推送通知服务器31_906的网络连接,以发送通知筛选器变更、周期性状态更新、为推送通知服务器31_906保持活动消息或其他消息。
[1293] 在步骤31_1014处,响应于确定已经建立与移动设备31_100的网络连接,推送通知服务器31_906可以发送所存储的推送通知。例如,推送通知服务器31_906可以将存储在推送通知服务器31_906处的低优先级推送通知发送到移动设备31_100。
[1294] 图31_11是用于响应于低优先级推送通知来执行应用程序后台更新的示例性过程1100的流程图。在步骤31_1102处,移动设备31_100可以从推送通知服务器31_906接收低优先级推送通知。
[1295] 在步骤31_1104处,移动设备31_100可以确定启动与低优先级推送通知相关联的应用程序是否可行。例如,应用程序可以作为移动设备31_100上的后台进程来启动。移动设备31_100可以使用上述准入控制过程来确定启动应用程序是否可行。例如,移动设备31_100(例如,取样守护进程31_102)可以基于针对移动设备31_100所确定的数据、能量和/或属性预算,来确定启动应用程序是否可行。移动设备31_100可以基于来自各种表决器的响应来确定基于移动设备的状况和/或移动设备的网络连接的状况而启动应用程序是否可行。上文参考图31_4更详细地描述了用于确定启动应用程序(例如,准入控制)是否可行的细节。
[1296] 在步骤31_1106处,当设备状况、预算、限制和其他数据指示启动应用程序不可行时,移动设备31_100可以存储低优先级推送通知。例如,移动设备31_100可以将低优先级推送通知存储在移动设备31_100上的数据库或其他数据存储中。
[1297] 在步骤31_1108处,响应于确定启动后台应用程序不可行,移动设备31_100可以更新其推送通知筛选器。例如,移动设备31_100可以将与低优先级推送通知相关联的应用程序移动到移动设备31_100上的推送通知筛选器的勿唤醒列表。
[1298] 在步骤31_1110处,移动设备31_100可以向推送通知服务器31_906发送更新的通知筛选器。推送通知服务器31_906可以基于从移动设备31_100接收到的筛选器来更新其自身的推送通知筛选器,以确定什么时候向移动设备31_100发送低优先级推送通知以及什么时候不向移动设备发送低优先级推送通知。
[1299] 在步骤31_1112处,移动设备31_100可以确定重试启动与低优先级推送通知相关联的应用程序可行。例如,移动设备31_100可以确定如上所述的预算、限制和设备状况允许在移动设备31_100上启动额外后台应用程序。
[1300] 在步骤31_1114处,移动设备31_100可以确定启动与所存储的低优先级推送通知相关联的特定应用程序是否可行。例如,移动设备31_100的取样守护进程31_102可以执行准入控制,以确定配置在移动设备100上的预算已针对当前时间被重置或补充,并且移动设备31_100和网络连接的环境状况好到足以启动特定后台应用程序。
[1301] 在步骤31_1116处,当移动设备31_100确定该启动应用程序可行时,移动设备31_100可启动该特定应用程序。例如,该特定应用程序可作为后台进程而启动,以便在用户调用该应用程序之前下载新内容并更新应用程序的用户界面。此进程将允许用户调用应用程序,而不必等待下载内容更新及刷新应用程序的用户界面。
[1302] 图31_12是用于响应于高优先级推送通知来执行应用程序后台更新的示例性过程1200的流程图。在步骤31_1202处,移动设备31_100可以接收高优先级推送通知。
[1303] 在步骤31_1204处,移动设备31_100可以确定启动与高优先级推送通知相关联的应用程序是否可行。例如,移动设备31_100的取样守护进程31_102可以执行准入控制,以基于移动设备31_100的预算和环境状况(例如,设备状况、网络状况等)来确定启动应用程序是否可行。
[1304] 在步骤31_1206处,当启动与高优先级推送通知相关联的应用程序不可行时(例如,准入控制返回“否”),则移动设备31_100可以存储高优先级推送通知。例如,移动设备31_100可以将高优先级推送通知存储在数据库、队列或其他适当的数据结构中。
[1305] 在步骤31_1208处,移动设备31_100可以确定重试启动与所存储的高优先级推送通知相关联的应用程序可行。例如,当数据、能量和/或属性预算已经被补充、设备状况已经改善、网络状况已经改善或者移动设备31_100的其他状况已经改变时,移动设备31_100可以确定重试启动应用程序是可行的,如上文在准入控制描述中所讨论那样。
[1306] 在步骤31_1210处,移动设备31_100可以确定启动与所存储的高优先级推送通知相关联的应用程序是否可行。例如,移动设备31_100可以基于上文所述的标准来确定启动应用程序是否可行。
[1307] 在步骤31_1212处,移动设备31_100可以在移动设备31_100的后台启动该应用程序。例如,应用程序可以作为移动设备31_100上的后台进程而启动,使得应用程序可以从网络(例如,互联网)上的网络资源(例如,内容服务器)下载更新的内容。
[1308] 在步骤31_1214处,移动设备31_100可以等待一段时间而后再向用户呈现推送通知。例如,移动设备可被配置为,允许应用程序下载内容持续一段时间,而后再向用户通知所接收的高优先级推送通知。
[1309] 在步骤31_1216处,移动设备31_100可以在移动设备31_100的用户界面上呈现推送通知。例如,移动设备31_100可以呈现包括描述高优先级推送通知的信息的图形对象(例如横幅)。例如,用户可以选择该图形对象来调用应用程序。由于在通知呈现给用户之前应用程序有下载内容的时间,所以当用户调用应用程序时,应用程序将能够向用户显示更新内容,而不会强迫用户等待从网络下载更新内容。
[1310] 后台上载/下载
[1311] 图31_13是用于在移动设备31_100上执行后台下载和/或数据上载的示例性系统31_1300的框图。后台下载和/或上载可以是在没有用户明确输入的情况下由应用程序发起的网络数据传输。例如,当用户正在玩电子游戏应用程序时,可以执行后台下载以检索电子游戏的下一关。相比之下,前台下载或上载可以是响应于来自用户的对于应该发生下载或上载的明确指示而执行的网络数据传输。例如,可以由用户选择网页链接来下载图片、电影或文档,从而发起前台下载。类似地,基于是否从用户接收到将数据上载到网络资源(例如服务器)的明确用户请求,可以将后台上载与前台上载区分开。
[1312] 在一些具体实施中,立即为用户执行前台下载/上载(例如,由用户明确请求的下载/上载)。例如,由用户所请求的下载/上载是立即执行的,并且不受预算限制或其他事项的约束。前台下载/上载可以通过蜂窝数据连接而进行。相比之下,后台下载和/或上载可以伺机地执行,并且在预算限制内且考虑环境状况(诸如移动设备31_100的温度)而执行。例如,当属性被上述准入控制机制批准时,可以针对该属性或属性值执行后台下载或上载。在一些具体实施中,后台下载和/或上载可受限于Wi-Fi网络连接。
[1313] 在一些具体实施中,系统31_1300可以包括后台传输守护进程31_1302。在一些具体实施中,后台传输守护进程31_1302可被配置为代表在移动设备31_100上运行的应用程序或进程而执行数据或内容的后台下载和上载。例如,后台传输守护进程31_1302可以代表应用程序31_1304在应用程序31_1304和服务器31_1306之间执行后台下载和/或上载。因此,后台下载/上载可以脱离来自应用程序31_1304的过程而执行(例如,不在请求下载/上载的过程中执行/也不通过该过程执行)。
[1314] 在一些具体实施中,应用程序31_1304可以通过向后台传输守护进程31_1304发送下载或上载数据的请求,来发起后台下载/上载。例如,下载数据(例如,内容)的请求可以识别可下载数据的网络位置。上载数据的请求可以识别可上载数据的网络位置,以及数据当前存储在移动设备31_100上的位置。该请求还可识别应用程序31_1304。一旦已提出请求,就可以关闭或暂停应用程序31_1304,使得当由后台传输守护进程31_1304执行后台下载/上载时,该应用程序不会继续在移动设备31_100上消耗计算和/或网络资源。
[1315] 在一些具体实施中,在接收到执行后台上载或下载数据的请求时,后台传输守护进程31_1302可以向取样守护进程31_102发送请求,以确定后台传输守护进程31_1302是否可以通过网络执行数据传输。例如,后台传输守护进程31_1302可以请求取样守护进程31_102对数据传输执行准入控制。在准入控制请求中,后台传输守护进程31_1302可以提供用于后台传输守护进程31_1302的标识符(例如,“包名”属性值),或者提供用于请求后台传输的应用程序的标识符,以使得准入控制可在后台传输守护进程或该应用程序上执行。准入控制请求可以包括作为将要从系统级数据预算中扣除的请求成本而传输的数据量。
[1316] 响应于从后台传输守护进程31_1302接收到准入控制请求,取样守护进程31_102可以确定当前小时的系统级数据和/或能量预算是否已用尽。在一些具体实施中,如果取样守护进程31_102确定移动设备31_100连接到外部电源,则取样守护进程31_102将不会基于能量预算来阻止后台下载/上载。取样守护进程31_102可以确定移动设备31_100是否连接到Wi-Fi。取样守护进程31_102还可以确定移动设备31_100是否处于热事件中(例如,工作温度高于预定阈值)。在一些具体实施中,如果取样守护进程31_102确定数据预算已用尽且移动设备31_100未连接到Wi-Fi、能量预算已用尽且移动设备31_100未连接到外部电源,或者移动设备31_100处于热事件中,则取样守护进程31_102将通过后台传输守护进程31_1302向准入控制请求返回“否”回复。
[1317] 在一些具体实施中,当后台传输守护进程31_1302从取样守护进程31_102接收到对准入控制请求的“否”回复时,过程31_1302可以将来自应用程序31_1304的后台下载/上载请求存储在请求储存库31_1308中。
[1318] 在一些具体实施中,取样守护进程31_102可以向后台传输守护进程31_1302发送重试信号。例如,当数据和能量预算得到补充以及系统不再经历热事件时,取样守护进程31_102可以向后台传输守护进程31_1302发送重试信号。当移动设备31_100连接到Wi-Fi、连接到外部电源且当系统没有经历热事件时,取样守护进程31_102可以向后台传输守护进程31_1302发送重试信号。例如,当连接到Wi-Fi时,可能不需要控制数据使用率。类似地,当连接到外部电源时,可能不需要节省电池电力。因此,当执行准入控制时,数据和能量预算可以被取样守护进程31_102忽略。
[1319] 在一些具体实施中,当后台传输守护进程31_1302接收到重试信号时,后台传输守护进程31_1302可以向取样守护进程31_102发送准入控制请求。
[1320] 如果取样守护进程31_102响应于准入控制请求而返回“确定”回复,则后台传输守护进程31_1302可为应用程序31_1304执行后台下载或上载。一旦后台下载完成,后台传输守护进程31_1302就可以唤醒或调用应用程序31_1304,并向应用程序31_1304提供下载的数据。
[1321] 在一些具体实施中,后台传输守护进程31_1302可以在后台下载/上载开始和结束时通知取样守护进程31_102,以使得取样守护进程31_102可以调节预算并维护在移动设备31_100上执行的后台下载/上载的统计信息。例如,后台传输守护进程31_1302可以向取样守护进程31_102发送“后台传输”属性开始或停止事件。在一些具体实施中,后台传输守护进程31_1302可以传输通过蜂窝数据、通过Wi-Fi和/或通过二者一起所传输的字节数(例如,“系统.网络字节”属性事件),使得取样守护进程31_102可以调节预算并维护在移动设备31_100上执行的后台下载/上载的统计信息。
[1322] 在一些具体实施中,取样守护进程31_102可以响应于准入控制请求而向后台传输守护进程31_1302返回超时值。例如,超时值可以指示后台传输守护进程必须执行后台下载或上载的时间段(例如5分钟)。在经过超时时间段后,后台传输守护进程31_1302将暂停后台下载或上载。
[1323] 在一些具体实施中,超时值可以基于当前小时的剩余能量预算。例如,取样守护进程31_102可以基于由取样守护进程31_102所收集的历史事件数据,来确定在通过Wi-Fi执行下载或上载时,每秒钟消耗多少能量。取样守护进程31_102可以通过将剩余能量预算除以在执行后台下载或上载时的能量消耗速率(例如,能量预算/能量消耗/时间=超时时间段),来确定超时时间段。
[1324] 在一些具体实施中,后台下载和/或上载是可恢复的。例如,如果移动设备31_100移出Wi-Fi范围,则可以暂停(例如,停顿)后台下载/上载。当移动设备31_100重新进入Wi-Fi范围时,可以恢复暂停的下载/上载。类似地,如果后台下载/上载能量预算耗尽(例如,经过超时时间段),则可以暂停后台下载/上载。在(例如,在下一小时内)分配了额外预算时,可以恢复暂停的下载/上载。
[1325] 在一些具体实施中,可以基于网络连接的质量而暂停后台下载/上载。例如,即使移动设备31_100可以在移动设备31_100和服务蜂窝塔之间具有良好的蜂窝数据连接,并且可在蜂窝塔和移动设备31_100正在向/从其传输数据的服务器之间具有良好的数据连接,移动设备31_100也可能与服务器不具有良好连接。例如,移动设备31_100与服务器之间的传输速率可能较慢,或者蜂窝接口的吞吐量可能较低。如果后台下载/上载的传输速率低于阈值传输速率值,并且/或者后台下载/上载的吞吐量低于阈值吞吐量值,则可以基于检测到的质量不佳的网络连接而暂停或停顿后台下载/上载(例如,数据传输),直到存在可用的更好的网络连接。例如,如果Wi-Fi连接可用,则可以通过Wi-Fi连接恢复暂停的后台下载/上载。
[1326] 在一些具体实施中,后台传输守护进程31_1302可以被配置为对同一时间可执行的后台下载和/或上载数量具有限制。例如,后台传输守护进程31_1302可以将并发的后台下载和/或上载的数量限制为三个。
[1327] 示例性后台下载/上载过程
[1328] 图31_14是用于执行后台下载和上载的示例性过程31_1400的流程图。例如,后台下载和/或上载可以代表移动设备31_100上的应用程序由后台传输守护进程31_1302执行。
[1329] 在步骤31_1402处,可以接收后台传输请求。例如,后台传输守护进程31_1302可以从移动设备31_100上所运行的应用程序接收后台下载/上载请求。一旦应用程序发出该请求,该应用程序就可被例如终止或暂停。该请求可以识别该应用程序,并识别数据源和/或数据的目标位置。例如,在下载数据时,源位置可以是服务器的网络地址,并且目标位置可以是移动设备31_100的文件系统中的目录。在上载数据时,源位置可以是文件系统位置,目标可以是网络位置。
[1330] 在步骤31_1404处,移动设备31_100可以确定预算和设备状况不允许数据传输。例如,后台传输守护进程31_1302可以通过对取样守护进程31_1302作出准入控制请求,来询问取样守护进程31_102是否可以执行所请求的后台传输,其中该准入控制请求识别后台传输守护进程31_1302、正在执行后台传输的应用程序,和/或要传送的数据量。取样守护进程31_102可以确定能量和数据预算是否耗尽,以及移动设备31_100是否处于热事件当中。如果预算已耗尽,或者如果移动设备31_100处于热事件当中,则取样守护进程31_102可以向后台传输守护进程31_1302发送消息,指示不可以执行后台数据传输(例如,准入控制返回“否”)。
[1331] 在步骤31_1406处,移动设备31_100可以存储后台传输请求。例如,当取样守护进程31_102响应于准入控制请求而返回“否”值时,后台传输守护进程31_1302可以将该传输请求存储在传输请求储存库中。
[1332] 在步骤31_1408处,移动设备31_100可确定可以重试后台传输。例如,取样守护进程31_102可以确定数据和能量预算已得到补充,并且移动设备31_100不处于热事件当中。取样守护进程31_102可以向后台传输守护进程31_1302发送重试消息。后台传输守护进程
31_1302然后可以通过针对所存储的每个传输请求作出另一准入控制请求,来尝试执行存储在传输请求储存库中的所请求的传输。
[1333] 在步骤31_1410处,移动设备31_100可以确定移动设备31_100的预算和状况允许后台数据传输。例如,后台传输守护进程31_1302可以询问取样守护进程31_102是否可以执行所请求的后台传输。取样守护进程31_102可以执行准入控制,以确定能量和数据预算得到补充,并且移动设备31_100不处于热事件当中。如果预算未耗尽,并且如果移动设备31_100不处于热事件当中,则取样守护进程31_102可以向后台传输守护进程31_1302发送消息,指示可以执行后台数据传输。
[1334] 在步骤31_1412处,移动设备31_100可以执行后台传输。例如,后台传输守护进程31_1302可以针对请求应用程序执行所请求的后台下载或后台上载。后台传输守护进程31_
1302可以在后台传输开始和结束(例如,使用“后台传输”属性开始和停止事件)时通知取样守护进程31_102。后台传输守护进程31_1302可以发送这样的消息:该消息向取样守护进程通知在后台下载或上载期间所传输的字节数(例如,使用“网络字节”属性事件)。一旦后台传输完成,后台传输守护进程31_1302就可以调用(例如,启动或唤醒)作出后台传输请求的应用程序,并将完成状态信息(例如,成功、错误、已下载数据等)发送到请求应用程序。
[1335] 启用/禁用后台更新
[1336] 图31_15示出了用于启用和/或禁用移动设备上的应用程序后台更新的示例性图形用户界面(GUI)31_1500。例如,GUI 31_1500可以是呈现在移动设备31_100的显示器上的界面,其用于接收用户输入以调节移动设备31_100上的应用程序的后台更新设置。
[1337] 在一些具体实施中,如上所述,GUI 31_1500可以基于用户调用预报来启用或禁用对应用程序执行的后台更新。例如,取样守护进程31_102和/或应用程序管理器31_106可以确定是否针对某一应用程序启用或禁用后台更新,并阻止该应用程序被应用程序管理器31_106启动,或阻止该应用程序被包括在由取样守护进程31_102生成的应用程序调用预报中。例如,如果针对某一应用程序禁用了后台更新,则取样守护进程31_102将不会把该应用程序包括在由应用程序管理器31_106所请求的用户调用的应用程序预报中。因此,当禁用后台更新时,应用程序管理器31_106将不启动该应用程序。相反,如果针对某一应用程序启用了后台更新,则该应用程序可被包括在由取样守护进程31_102基于用户调用概率所生成的应用程序调用预报中,如上所述。
[1338] 在一些具体实施中,如上所述,当接收到推送通知时,GUI 31_1500可以启用或禁用对应用程序执行的后台更新。例如,取样守护进程31_102、应用程序管理器31_106和/或推送服务守护进程31_904可以确定是否针对某一应用程序启用或禁用后台更新,并且响应于接收推送通知而防止该应用程序被应用程序管理器31_106启动。例如,如果针对某一应用程序禁用了后台更新,并且接收到用于该应用程序的推送通知,则应用程序管理器31_106将不会响应于推送通知而启动该应用程序下载更新。
[1339] 在一些具体实施中,GUI 31_1500可以显示已被配置为执行后台更新的应用程序31_1502-1514。例如,应用程序31_1502-1514可被配置或编程为当由应用程序管理器31_
106启动时作为移动设备31_100上的后台进程而运行。当应用程序31_1502-1514作为后台进程运行时,它们可以与各种网络资源通信,以下载当前或更新的内容。应用程序31_1502-
1514然后可以更新其各自的用户界面,以便在被移动设备31_100的用户调用时呈现更新的内容。在一些具体实施中,未被配置或编程为执行后台更新的应用程序将不会显示在GUI 
31_1500上。
[1340] 在一些具体实施中,用户可以向GUI 31_1500提供输入,以启用和/或禁用应用程序的后台更新。例如,用户可利用切换键31_1516向移动设备31_100提供输入(例如,触摸输入),以打开或关闭应用程序31_1502的后台更新。用户可利用切换键31_1518向移动设备31_100提供输入(例如,触摸输入),以打开或关闭应用程序31_1508的后台更新。
[1341] 在一些具体实施中,可以通过GUI 31_1500为后台更新应用程序指定附加选项。例如,用户可以选择与应用程序31_1514相关联的图形对象31_1510,来调用用于指定附加后台更新选项的图形用户界面(未示出)。后台更新选项可以包括,例如用于打开和/或关闭应用程序31_1514后台更新的开始时间和结束时间。
[1342] 在对等设备之间共享数据
[1343] 图31_16示出了用于在对等设备之间共享数据的示例性系统。在一些具体实施中,移动设备31_100可以与移动设备31_1600共享事件数据、系统数据和/或事件预报。例如,移动设备31_100和移动设备31_1600可以是由同一用户所拥有的设备。因此,在移动设备31_100和移动设备31_1600之中的每个设备上共享关于用户活动的信息可以是有利的。
[1344] 在一些具体实施中,移动设备31_1600可以被配置为类似于上述移动设备31_100。例如,移动设备31_1600可以被配置为具有提供上述段落中所述功能(例如,属性、属性事件、预报、准入控制等)的取样守护进程31_1602。
[1345] 在一些具体实施中,移动设备31_100和移动设备31_1600可以分别被配置为具有身份服务守护进程31_1620和身份服务守护进程31_1610。例如,身份服务守护进程31_1620和31_1610可以被配置为在移动设备31_100和移动设备31_1600之间传送信息。身份服务守护进程可用于通过各种对等和网络连接在同一用户所拥有的设备之间共享数据。例如,身份服务守护进程31_1620和身份服务守护进程31_1610可以通过蓝牙、蓝牙低功耗、Wi-Fi、LAN、WAN和/或互联网连接交换信息。
[1346] 在一些具体实施中,取样守护进程31_1602(和取样守护进程31_102)可以被配置为,与在同一用户拥有的其他设备上运行的其他取样守护进程共享事件预报和系统状态信息。例如,如果移动设备31_100和移动设备31_1600由同一用户所拥有,则取样守护进程31_102和取样守护进程31_1602可以交换事件预报信息和/或系统状态信息(例如,电池状态)。
例如,取样守护进程31_1602可以使用身份服务守护进程31_1610发送事件预报信息和/或系统状态信息。
[1347] 身份服务守护进程31_1610可以与身份服务守护进程31_1620建立连接,并通过身份服务守护进程31_1620将事件预报信息和/或移动设备31_1600系统状态信息传送给取样守护进程31_102。
[1348] 在一些具体实施中,应用程序31_1608(例如,取样守护进程31_1602的客户端)可以请求取样守护进程31_1602向取样守护进程31_102发送用于指定属性或属性值的事件预报。例如,应用程序31_1608可以是与移动设备31_100的应用程序31_108同步的应用程序。例如,应用程序31_108和31_1608可以是被配置为在移动设备31_100和移动设备31_1600之间同步数据(例如,媒体文件、消息、状态信息等)的媒体应用程序(例如,音乐库、视频库、电子邮件应用程序、消息应用程序等)。
[1349] 在一些具体实施中,为了允许对等设备(例如,移动设备31_100)确定何时在设备之间同步数据,应用程序31_1608可以请求取样守护进程31_1602基于由移动设备31_1600生成的属性事件数据针对“包名”属性或特定“包名”属性值(例如,应用程序31_1608的应用程序标识符)生成时间和/或对等预报,并将该预报传输给取样守护进程31_102。例如,对等设备可以是同一用户拥有的远程设备(例如,不是当前本地设备)。移动设备31_100可以是例如移动设备31_1600的对等设备。
[1350] 在一些具体实施中,请求客户端(例如,应用程序31_1608)可以指定用于递送的时间表和用于预报数据的持续时间。例如,应用程序31_1608可以请求针对“包名”属性值“邮件应用”进行对等和/或时间预报。应用程序31_1608可以请求例如每周生成并交换该预报,并且请求每次预报涵盖一周的持续时间或时间段。
[1351] 在一些具体实施中,可以静态地安排对等设备之间的数据交换。取样守护进程31_1602可以发送移动设备31_100所必需的属性数据,以便使移动设备31_1600的远程状态在严格的时间表(例如,每24小时进行一次应用程序预报和电池统计)下一致。在一些具体实施中,客户端可以按需请求来自对等设备的属性预报或统计信息。这些交换为非再现性的。
当接收到所请求的数据时,请求客户端可得到通知。
[1352] 在一些具体实施中,取样守护进程31_1602可以将用于移动设备31_1600的系统状态数据传输到取样守护进程31_102。例如,取样守护进程31_1602可以接收电池充电水平事件(例如,“电池电平”属性事件)、电池充电事件(例如,“缆线插入”事件)、能量使用率事件(例如,“能量”属性事件)和/或其他可用于产生电池使用率和充电统计数据的事件,并将电池相关事件数据传输到取样守护进程31_102。例如,电池状态信息可以每24小时交换一次。电池状态信息可以伺机地交换。例如,当在移动设备31_100和移动设备31_1600之间建立起通信信道(例如,对等、联网等)时,移动设备可以伺机地使用已经打开的通信信道来交换电池状态或其他系统状态信息(例如,对当前前台应用程序的识别)。
[1353] 又如,取样守护进程31_1602可以接收热水平事件(例如,“热水平”属性事件)、网络事件(例如,“网络质量”属性事件、“网络字节”属性事件),并将热和/或网络事件传输到取样守护进程31_102。取样守护进程31_1602可以从应用程序管理器31_106接收指示当前处于移动设备31_1600前台的应用程序(例如,应用程序标识符)的事件(例如,“系统.前台应用”属性事件),并将前台应用程序信息发送到取样守护进程102。在一些具体实施中,一旦该事件发生(例如,一旦在对等设备之间建立连接),就可以与对等设备交换热事件和前台应用程序变更信息。在一些具体实施中,可以周期性地(例如,每天一次、每天两次、每小时一次等)交换网络状态信息。
[1354] 在从取样守护进程31_1602接收到预报和/或系统事件数据时,取样守护进程31_102可以将预报和/或事件数据存储在对等数据存储库31_1622中。类似地,取样守护进程
31_1602从取样守护进程31_102接收到的任何预报和/或事件数据可以存储在对等数据存储库31_1612中。在一些具体实施中,从另一设备接收到的预报和/或事件数据可以与设备描述相关联。例如,设备描述可以包括设备名称、设备标识符和识别设备型号的型号标识符。设备描述可用于在对等数据存储库31_1622中查找设备的预报数据和/或事件数据。一旦移动设备31_100和移动设备31_1600已经交换了预报和/或事件数据,这两个移动设备就可以使用所交换的信息来确定何时使用下面的远程准入控制机制来彼此通信。通过允许设备仅在需要信息且当设备的电池状态可以支持共享信息时共享信息,可以改善通信的电源管理。
[1355] 远程准入控制
[1356] 在一些具体实施中,移动设备31_100(或移动设备31_1600)可以基于从另一设备接收的数据来执行准入控制。例如,取样守护进程31_102可以基于从取样守护进程31_1602接收并存储在对等数据存储库31_1622中的预报和系统事件数据来执行准入控制。例如,为了将数据与应用程序31_1608同步,应用程序31_108可以向身份服务守护进程31_1620发送同步消息。例如,同步消息可以包括移动设备31_100的标识符、移动设备31_1600的标识符、优先级标识符(例如,高,低)和消息有效载荷(例如,要同步的数据)。
[1357] 低优先级消息
[1358] 在一些具体实施中,可以在经过准入控制之后传输低优先级消息。例如,低优先级消息可以是与随意处理相关联的消息(例如,后台应用程序、系统实用程序、预期活动、非用户发起的活动)。例如,身份服务守护进程31_1620可以向取样守护进程31_102发送对于作为应用程序31_1608包名标识符(例如,“包名”=“1608”)的“包名”属性值的准入控制请求。除了“包名”属性名称和值(例如,“1608”)之外,身份服务守护进程31_1620可以在准入控制请求中提供设备名称(例如,“设备31_1600”),以指示应用程序31_108正在请求对于与另一设备通信的准入控制。
[1359] 在一些具体实施中,响应于接收到准入控制请求,取样守护进程31_102可以执行本地准入控制和远程准入控制。例如,取样守护进程31_102可以如上所述地执行本地准入控制,以确定移动设备31_100是否处于允许发生与指定属性值(例如,“包名”=“1608”)相关联的事件的状况。取样守护进程31_102可以例如检查本地能量、数据和属性预算,并且询问表决器反馈以确定移动设备31_100是否处于允许与指定属性值(例如,“包名”=“1608”)相关联的事件的状况。
[1360] 除了执行本地准入控制之外,取样守护进程31_102可以基于从移动设备31_1600接收并存储在对等数据存储库31_1622中的“包名”属性预测、事件数据和系统数据来执行远程准入控制。例如,取样守护进程31_102可以使用设备标识符(例如,“设备31_1600”、设备名称、唯一标识符、UUID等)来定位对等数据存储库31_1622中与移动设备31_1600相关联的数据。取样守护进程31_102可以分析从取样守护进程31_1602所接收的属性(例如“包名”)预报数据,以确定应用程序31_1608是否可能由用户在当前的15分钟时隙中在移动设备31_1600上调用。如果应用程序31_1608在当前的15分钟时隙中不太可能被用户调用,则取样守护进程31_102可以响应于准入控制请求而返回“否”值。例如,通过仅在应用31_1608可能在移动设备31_1600上被使用时允许应用程序31_108与应用程序31_1608同步,取样守护进程31_102可以延迟同步过程并节省系统资源(例如,电池、CPU周期、网络数据),直至用户可能在移动设备31_1600上使用应用程序31_1608。
[1361] 在一些具体实施中,如果应用程序31_1608可能在当前的15分钟时隙中由移动设备31_1600的用户调用,则取样守护进程31_102可以检查与移动设备31_1600相关联并存储在对等数据存储库31_1622中的系统数据。例如,取样守护进程31_102可以检查与移动设备31_1600相关联的系统数据,以确定移动设备31_1600是否剩余有足够的电池电量以执行应用程序31_108和应用程序31_1608之间的同步。例如,取样守护进程31_102可以检查当前是否存在足够的电池电量来完成应用程序31_108和应用程序31_1608之间的同步。取样守护进程31_102可以检查是否存在足够的电池电量来执行同步,并继续运行直到下一次预测的电池充电(例如“缆线插入”属性事件)。例如,取样守护进程31_102可以针对“缆线插入”属性生成时间预报,该时间预报识别了何时可能发生下一次“缆线插入”属性事件。取样守护进程31_102可以分析能量使用率统计数据(事件),以预测直至下一个“缆线插入”事件的能量使用率,并且确定是否有足够的剩余能量来为应用程序31_108和应用程序31_1608之间的同步传输提供服务。如果取样守护进程31_102确定移动设备31_1600没有足够的能量(例如,电池电量)来服务于同步,则取样守护进程31_102可以响应于远程准入控制请求而返回“否”值。
[1362] 在一些具体实施中,取样守护进程31_102可以检查与移动设备31_1600相关联的系统数据,以确定移动设备31_1600是否处于正常热状态(例如,不过热),并且可以处理同步请求。例如,如果从移动设备31_1600所接收的“热水平”属性事件数据指示移动设备31_1600当前正在高于阈值的温度下工作,则取样守护进程31_102可以通过响应于远程准入控制请求而返回“否”值来防止同步通信。
[1363] 在一些具体实施中,当预报数据指示用户很可能在移动设备31_1600上调用应用程序31_1608,并且能量、热和其他系统状态信息指示移动设备31_1600处于处理来自移动设备31_100的通信的条件时,取样守护进程31_102可以响应于准入控制请求向身份服务守护进程31_1620返回“是”值。响应于因响应允入控制请求而接收到“是”值,身份服务守护进程31_1620可以将应用程序31_108的同步消息传输到移动设备31_1600上的身份服务守护进程31_1610。应用程序31_108和应用程序31_1608然后可以通过凭借身份服务守护进程31_1620和身份服务守护进程31_1610交换消息来同步数据。
[1364] 在一些具体实施中,可以在经过远程准入控制之后传输高优先级消息。例如,高优先级消息可以是与用户发起的任务相关联的消息,诸如与前台应用程序相关联的消息或响应于用户提供输入而生成的消息。在一些具体实施中,可以类似于低优先级消息那样对用于高优先级消息的准入控制进行处理。然而,当对高优先级消息执行远程准入控制时,可以在不考虑属性预报数据(例如,“包名”预报数据)的情况下准许(允许)高优先级消息,这是因为高优先级消息通常由某些用户动作触发,而不是由一些随意的后台任务发起。
[1365] 在一些具体实施中,当对高优先级消息执行准入控制时,可以检查远程设备(例如,移动设备31_1600)的电池状态,以确保远程设备(例如,对等设备)具有足够的可用电池电量来处理高优先级信息。如果远程设备上有足够的电池电量,则远程准入控制将批准高优先级消息。例如,当剩余足以处理高优先级消息的电池电量时,取样守护进程31_102可以响应于远程准入控制请求而向身份服务守护进程31_1620传输“是”值。如果远程设备上没有足够的电池电量,则远程准入控制将拒绝高优先级消息。例如,当未剩余足以处理高优先级消息的电池电量时,取样守护进程31_102可以响应于远程准入控制请求而向身份服务守护进程31_1620传输“否”值。因此,当对等设备剩余足够的电池电量来处理所讨论的消息时,身份服务守护进程31_1620将发起与对等设备(例如,移动设备31_1600)的通信。
[1366] 在一些具体实施中,当取样守护进程31_102被通知高优先级消息时,取样守护进程31_102可将当前电池状态信息(例如,当前充电水平)发送到身份服务守护进程31_1620。身份服务守护进程31_1620可以将电池状态信息添加到高优先级消息。因此,可以通过在移动设备31_100和移动设备31_1600之间所传输的其他消息上捎带电池状态信息(或其他信息,例如,热水平、前台应用程序等),而在设备之间有效地共享系统状态信息。
[1367] 在一些具体实施中,取样守护进程31_102可以向身份服务守护进程31_1620发送重试消息。例如,当移动设备31_100或移动设备31_1600上的状况改变(例如,电池状况改善)时,取样守护进程31_102可以向身份服务守护进程31_1620发送重试消息。在一些具体实施中,当远程焦点应用程序改变时,可以生成重试消息。例如,如果远程对等设备上的用户正在使用“邮件应用”应用程序,则“邮件应用”应用程序将成为焦点应用程序。当用户开始使用“web浏览器”应用程序时,焦点应用程序将变更为“web浏览器”应用程序。当在移动设备31_100和移动设备31_1600之间交换对等数据时,可将焦点应用程序的变更作为事件而报告给取样守护进程31_1602,并被传输到取样守护进程31_102。在接收到指示对等设备31_1602处的焦点应用程序发生变更的事件信息时,取样守护进程31_102可以向身份服务守护进程31_1620发送重试消息。身份服务守护进程31_1620然后可以针对由取样守护进程
31_102所拒绝的每个消息来重试准入控制。例如,身份服务守护进程31_1620可以存储被拒绝的消息(例如,传输任务),并且在从取样守护进程31_102接收到重试消息时,凭借准入控制发送被拒绝的消息。在一些具体实施中,被拒绝的消息可以在经过一段时间后得到传输。
例如,在经过可配置的时间段之后,可以将尚未通过准入控制的消息发送到对等设备。
[1368] 在一些具体实施中,当取样守护进程31_102指示移动设备31_100或移动设备31_1600上的状况已经改变时,身份服务守护进程31_1620可以中断数据流传输。例如,如果取样守护进程31_102确定移动设备31_100或移动设备31_1600上的电池状况已经改变,使得所述移动设备中的一个可能耗尽电池电力,则取样守护进程31_102可以告知身份服务守护进程31_1620停止针对与数据流相关联的属性事件而传输和重试准入控制。
[1369] 在对等设备之间共享数据的过程
[1370] 图31_17示出了用于在对等设备之间共享数据的示例性过程31_1700。关于过程31_1700的额外细节可参见上文的图31_16。在步骤31_1702处,移动设备可以从对等设备接收事件数据。例如,事件数据可以作为“摘要”(例如,预报、统计数据等)或原始(例如,未处理的)事件数据而被分享。例如,当第二设备和移动设备由同一用户所拥有时,第二设备(例如,移动设备31_1600)是移动设备31_100的对等设备。移动设备31_100可以接收与移动设备31_1600的系统状态(例如,电池状态、网络状态、前台应用程序标识符等)有关的事件数据。该移动设备可以基于在移动设备31_1600上发生的事件而从移动设备31_1600接收属性事件预报、统计信息或原始事件数据。例如,对等设备31_1600上的应用程序31_1608可以命令指示对等设备31_1600上的取样守护进程31_1602生成并向移动设备31_100发送针对特定属性或属性值的预报。
[1371] 在步骤31_1704处,移动设备31_100上的身份服务守护进程31_1620可以接收消息以发送到对等设备31_1600。例如,在移动设备上运行的应用程序31_108可能需要与对等设备31_1600上的对应应用程序31_1608共享、交换或同步数据。应用程序31_108可以向身份服务守护进程31_1620发送包含要共享的数据的消息。
[1372] 在步骤31_1706处,移动设备100上的取样守护进程31_102可以基于从对等设备31_1600所接收的数据而确定是否传输消息。例如,取样守护进程31_102可以执行本地准入控制检查和远程准入控制检查,以确定是否应该在当前时间将消息发送到对等设备31_
1600。如果从对等设备31_1600所接收的属性事件预报指示对等设备31_1600的用户很可能在当前时间调用应用程序31_1608,并且如果事件数据指示对等设备31_1600中发起与对等设备31_1600的通信的状况(例如,电池状态、热水平等)不会耗尽电池或使热状态变差,则取样守护进程31_102可以批准消息的传输。
[1373] 在步骤31_1708处,一旦取样守护进程31_102执行准入控制并且批准发起与对等设备31_1600的通信,则身份服务守护进程31_1620可以将该消息传输到对等设备31_1600。例如,身份服务守护进程31_1620可以将消息传输到对等设备31_1600的身份服务守护进程
31_1610。身份服务守护进程31_1610然后可以将消息传输到应用程序31_1608,使得应用程序31_108和应用程序31_1608可以同步数据。
[1374] 存储器(例如,图1A中设备100的存储器)还可以存储其他软件指令以促进第1节中所述的过程和功能,诸如参考图31-1-图31_17所述的动态调节过程和功能。
[1375] 用于动态调节移动设备的示例性方法、系统和计算机可读介质
[1376] 存储器(例如,图1A中设备100的存储器)还可以存储其他软件指令以促进第1节中所述的过程和功能,诸如参考图31-1-图31_17所述的动态调节过程和功能。
[1377] 在一个方面,移动设备可以被配置为监视与移动设备和/或对等设备相关联的环境、系统和用户事件。一个或多个事件的发生可以触发对系统设置的调节。移动设备可以被配置为,基于对预测的用户调用所做的预报,来使频繁调用的应用程序保持最新。在一些具体实施中,移动设备可以接收与这样的应用程序相关联的推送通知:其指示存在用于使该应用程序下载的可用新内容。移动设备可以在后台启动与推送通知相关联的应用程序,并下载该新内容。在一些具体实施中,在运行应用程序或与对等设备通信之前,移动设备可被配置为,检查移动设备和/或对等设备的能量和数据预算以及环境条件来确保高质量的用户体验。
[1378] 在一些具体实施中,提供了一种方法。该方法包括:在移动设备处接收来自对等设备的属性事件数据,其中该属性事件数据描述了在对等设备上发生的事件;将对等事件数据存储在移动设备处;从移动设备上的应用程序接收与对等设备通信的请求,其中该请求包括具有对应于对等设备上的对应应用程序标识符的值的属性;由移动设备确定基于对等事件数据来发起与对等设备的通信。
[1379] 在一些具体实施中,对等设备和移动设备由单个用户所拥有。在一些具体实施中,由移动设备确定基于对等事件数据发起与对等设备的通信包括,基于对等事件数据针对所述属性生成一个或多个预报。在一些具体实施中,由移动设备确定基于对等事件数据发起与对等设备的通信包括,基于对等事件数据来确定对等设备的电池状态。在一些具体实施中,由移动设备确定基于对等事件数据发起与对等设备的通信包括,基于对等事件数据来确定对等设备的热状态。在一些具体实施中,由移动设备确定基于对等事件数据发起与对等设备的通信包括,确定用户可能在大约当前时间调用对等设备上的相应应用程序。
[1380] 在一些具体实施中,提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质包括一个或多个指令序列,这些指令序列当由一个或多个处理器执行时,使得:在移动设备处接收来自对等设备的属性事件数据,其中该属性事件数据描述了在对等设备上发生的事件;将对等事件数据存储在移动设备处;从移动设备上的应用程序接收与对等设备通信的请求,其中该请求包括具有对应于对等设备上的对应应用程序标识符的值的属性;由移动设备确定基于对等事件数据来发起与对等设备的通信。
[1381] 在一些具体实施中,对等设备和移动设备由单个用户所拥有。在一些具体实施中,使得由移动设备确定基于对等事件数据发起与对等设备的通信的指令包括,使得该设备基于对等事件数据针对所述属性生成一个或多个预报的指令。在一些具体实施中,使得由移动设备确定基于对等事件数据发起与对等设备的通信的指令包括,使得该设备基于对等事件数据来确定对等设备的电池状态的指令。在一些具体实施中,使得由移动设备确定基于对等事件数据发起与对等设备的通信的指令包括,使得该设备基于对等事件数据来确定对等设备的热状态的指令。在一些具体实施中,使得由移动设备确定基于对等事件数据发起与对等设备的通信的指令包括,使得该设备确定用户可能在大约当前时间调用对等设备上的相应应用程序的指令。
[1382] 在一些具体实施中,提供一种系统,该系统包括一个或多个处理器;以及包括一个或多个指令序列的非暂态计算机可读介质,这些指令序列当由所述一个或多个处理器执行时,使得:在移动设备处接收来自对等设备的属性事件数据,其中该属性事件数据描述了在对等设备上发生的事件;将对等事件数据存储在移动设备处;从移动设备上的应用程序接收与对等设备通信的请求,其中该请求包括具有对应于对等设备上的对应应用程序标识符的值的属性;由移动设备确定基于对等事件数据来发起与对等设备的通信。
[1383] 在一些具体实施中,对等设备和移动设备由单个用户所拥有。在一些具体实施中,使得由移动设备确定基于对等事件数据发起与对等设备的通信的指令包括,使得该设备基于对等事件数据针对所述属性生成一个或多个预报的指令。在一些具体实施中,使得由移动设备确定基于对等事件数据发起与对等设备的通信的指令包括,使得该设备基于对等事件数据来确定对等设备的电池状态的指令。在一些具体实施中,使得由移动设备确定基于对等事件数据发起与对等设备的通信的指令包括,使得该设备基于对等事件数据来确定对等设备的热状态的指令。在一些具体实施中,使得由移动设备确定基于对等事件数据发起与对等设备的通信的指令包括,使得该设备确定用户可能在大约当前时间调用对等设备上的相应应用程序的指令。
[1384] 在另一方面,移动设备可被配置为监视环境、系统和用户事件。一个或多个事件的发生可以触发对系统设置的调节。在一些具体实施中,移动设备可以被配置为,基于对预测的用户调用所做的预报,来使频繁调用的应用程序保持最新。在一些具体实施中,移动设备可以接收与这样的应用程序相关联的推送通知:其指示存在用于使该应用程序下载的可用新内容。移动设备可以在后台启动与推送通知相关联的应用程序,并下载该新内容。在一些具体实施中,在运行应用程序或访问网络接口之前,移动设备可被配置为,检查移动设备的能量和数据预算以及环境条件来保持高质量的用户体验。
[1385] 在一些具体实施中,提供了一种方法,该方法包括:在移动设备上运行的第一进程处接收事件数据;从移动设备上运行的第二进程处接收事件注册数据,该事件注册数据识别了用于触发第二进程的调用的一个或多个事件,其中在接收到事件注册数据之后,第二进程暂停或终止;通过第一进程确定所述一个或多个事件已基于事件数据而发生;并在移动设备上调用第二进程。
[1386] 在一些具体实施中,调用第二进程使得该第二进程调节移动设备的一个或多个部件。在一些具体实施中,所述一个或多个部件包括移动设备的中央处理单元、图形处理单元、基带处理器或显示器。在一些具体实施中,所述一个或多个事件包括移动设备的工作温度的改变、系统设置的改变、用户输入、打开或关闭显示器、设定时钟闹钟或设定日历事件。在一些具体实施中,该方法还包括:在第一进程处接收来自第二进程的对于由第二进程存储事件数据的请求;从第一处理向第二处理发送所请求的事件数据,其中所述第二处理被配置为,基于该事件数据来调节移动设备的一个或多个部件。在一些具体实施中,所述一个或多个事件包括事件模式,并且其中第一进程被配置为当检测到事件模式时,识别所接收的事件数据中的模式并且调用第二进程。
[1387] 在一些具体实施中,提供了一种非暂态计算机可读介质,该非暂态计算机可读介质包括一个或多个指令序列,这些指令序列当由一个或多个处理器执行时,使得:在移动设备上运行的第一进程处接收事件数据;从移动设备上运行的第二进程处接收事件注册数据,该事件注册数据识别了用于触发第二进程的调用的一个或多个事件,其中在接收到事件注册数据之后,第二进程暂停或终止;通过第一进程确定所述一个或多个事件已基于事件数据而发生;并在移动设备上调用第二进程。
[1388] 在一些具体实施中,调用第二进程使得该第二进程调节移动设备的一个或多个部件。在一些具体实施中,所述一个或多个部件包括移动设备的中央处理单元、图形处理单元、基带处理器或显示器。在一些具体实施中,所述一个或多个事件包括移动设备的工作温度的改变、系统设置的改变、用户输入、打开或关闭显示器、设定时钟闹钟或设定日历事件。在一些具体实施中,所述指令使得:在第一进程处接收来自第二进程的对于由第二进程存储事件数据的请求;从第一处理向第二处理发送所请求的事件数据,其中所述第二处理被配置为,基于该事件数据来调节移动设备的一个或多个部件。在一些具体实施中,所述一个或多个事件包括事件模式,并且其中第一进程被配置为当检测到事件模式时,识别所接收的事件数据中的模式并且调用第二进程。
[1389] 在一些具体实施中,提供了一种系统,该系统包括一个或多个处理器;以及包括一个或多个指令序列的非暂态计算机可读介质,这些指令序列当由一个或多个处理器执行时,使得:在移动设备上运行的第一进程处接收事件数据;从移动设备上运行的第二进程处接收事件注册数据,该事件注册数据识别了用于触发第二进程的调用的一个或多个事件,其中在接收到事件注册数据之后,第二进程暂停或终止;通过第一进程确定所述一个或多个事件已基于事件数据而发生;并在移动设备上调用第二进程。
[1390] 在一些具体实施中,调用第二进程使得该第二进程调节移动设备的一个或多个部件。在一些具体实施中,所述一个或多个部件包括移动设备的中央处理单元、图形处理单元、基带处理器或显示器。在一些具体实施中,所述一个或多个事件包括移动设备的工作温度的改变、系统设置的改变、用户输入、打开或关闭显示器、设定时钟闹钟或设定日历事件。在一些具体实施中,所述指令使得:在第一进程处接收来自第二进程的对于由第二进程存储事件数据的请求;从第一处理向第二处理发送所请求的事件数据,其中所述第二处理被配置为,基于该事件数据来调节移动设备的一个或多个部件。在一些具体实施中,所述一个或多个事件包括事件模式,并且其中第一进程被配置为当检测到事件模式时,识别所接收的事件数据中的模式并且调用第二进程。
[1391] 在另一方面,移动设备可以被配置为监视与移动设备和/或对等设备相关联的环境、系统和用户事件。一个或多个事件的发生可以触发对系统设置的调节。移动设备可以被配置为,基于对预测的用户调用所做的预报,来使频繁调用的应用程序保持最新。在一些具体实施中,移动设备可以接收与指示了新内容的应用程序相关联的推送通知。
[1392] 在一些具体实施中,提供了一种方法,该方法包括:通过移动设备上执行的第一进程接收由一个或多个客户端进程生成的事件,每个事件包括与多个属性中的一个相关联的数据,其中每个属性与某一预算相关联,并且每个事件都具有相应的成本;基于与由移动设备所接收的特定属性相关联的事件成本来减少特定属性的预算;将事件数据存储在移动设备上的事件数据存储库中;通过第一进程接收来自客户端进程的发起与特定属性相关联的事件的请求;将事件的成本与特定属性的剩余预算进行比较;以及通过第一进程基于所述比较来允许与该特定属性相关联的事件。
[1393] 在一些具体实施中,所述多个属性中的至少一个由客户端在运行时动态地定义。在一些具体实施中,确定允许事件包括,针对特定属性生成预报,该特定属性指示了何时可能发生与该属性相关联的事件。在一些具体实施中,确定允许事件包括,确定剩余足以支付事件成本的预算。在一些具体实施中,特定属性的预算由客户端动态地定义。在一些具体实施中,预算对应于系统级的数据预算的一部分。在一些具体实施中,预算对应于系统级的能量预算的一部分。
[1394] 在一些具体实施中,提供了一种非暂态计算机可读介质,该非暂态计算机可读介质包括一个或多个指令序列,这些指令序列当由一个或多个处理器执行时,使得:通过移动设备上执行的第一进程接收由一个或多个客户端进程生成的事件,每个事件包括与多个属性之一相关联的数据,其中每个属性与某一预算相关联,并且每个事件都具有相应的成本;基于与由移动设备所接收的特定属性相关联的事件成本来减少特定属性的预算;将事件数据存储在移动设备上的事件数据存储库中;通过第一进程接收来自客户端进程的发起与特定属性相关联的事件的请求;将事件的成本与特定属性的剩余预算进行比较;以及通过第一进程基于所述比较来允许与该特定属性相关联的事件。
[1395] 在一些具体实施中,所述多个属性中的至少一个由客户端在运行时动态地定义。在一些具体实施中,使得设备确定允许事件的指令包括,使得设备针对特定属性生成预报的指令,该特定属性指示了何时可能发生与该属性相关联的事件。在一些具体实施中,使得设备确定允许事件的指令包括,使得设备确定剩余足够的预算以支付事件成本的指令。在一些具体实施中,特定属性的预算由客户端动态地定义。在一些具体实施中,预算对应于系统级的数据预算的一部分。在一些具体实施中,预算对应于系统级的能量预算的一部分。
[1396] 在一些具体实施中,提供了一种系统,该系统包括一个或多个处理器;以及包括一个或多个指令序列的计算机可读介质,这些指令序列当由一个或多个处理器执行时,使得:通过移动设备上执行的第一进程接收由一个或多个客户端进程生成的事件,每个事件包括与多个属性之一相关联的数据,其中每个属性与某一预算相关联,并且每个事件都具有相应的成本;基于与由移动设备所接收的特定属性相关联的事件成本来减少特定属性的预算;将事件数据存储在移动设备上的事件数据存储库中;通过第一进程接收来自客户端进程的发起与特定属性相关联的事件的请求;将事件的成本与特定属性的剩余预算进行比较;以及通过第一进程基于所述比较来允许与该特定属性相关联的事件。
[1397] 在一些具体实施中,所述多个属性中的至少一个由客户端在运行时动态地定义。在一些具体实施中,使得设备确定允许事件的指令包括,使得设备针对特定属性生成预报的指令,该特定属性指示了何时可能发生与该属性相关联的事件。在一些具体实施中,使得设备确定允许事件的指令包括,使得设备确定剩余足够的预算以支付事件成本的指令。在一些具体实施中,特定属性的预算由客户端动态地定义。在一些具体实施中,预算对应于系统级的数据预算的一部分。在一些具体实施中,预算对应于系统级的能量预算的一部分。
[1398] 在另一方面,移动设备可以被配置为监视与移动设备和/或对等设备相关联的环境、系统和用户事件。一个或多个事件的发生可以触发对系统设置的调节。移动设备可以被配置为,基于对预测的用户调用所做的预报,来使频繁调用的应用程序保持最新。在一些具体实施中,移动设备可以接收与这样的应用程序相关联的推送通知:其指示存在用于使该应用程序下载的可用新内容。移动设备可以在后台启动与推送通知相关联的应用程序,并下载该新内容。在一些具体实施中,在运行应用程序或与对等设备通信之前,移动设备可被配置为,检查移动设备和/或对等设备的能量和数据预算以及环境条件来确保高质量的用户体验。
[1399] 在一些具体实施中,提供了一种方法,该方法包括:通过来自计算设备上所执行的一个或多个插件进程的第一进程来接收将插件进程注册为一个或多个表决进程的请求;通过第一进程接收由一个或多个客户端进程生成的事件,每个事件包括与多个属性中的一个相关联的数据;将事件数据存储在移动设备上的事件数据存储库中;通过第一进程接收来自客户端进程的发起与特定属性相关联的事件的请求;向每个所注册的表决进程发送识别该特定属性的信息;响应于向每个所注册的表决进程发送识别该特定属性的信息,从所注册的表决进程中的至少一个接收表决;以及通过第一进程基于表决来确定允许与特定属性相关联的事件。
[1400] 在一些具体实施中,所述一个或多个表决进程在运行时被动态地插入到第一进程中。在一些具体实施中,通过第一进程基于来自一个或多个表决进程的反馈来确定与特定属性相关联的事件包括:向每个表决进程发送识别特定属性的信息;并且当每个表决进程确定应该允许发生与特定属性相关联的事件时,从每个表决进程接收“是”表决。在一些具体实施中,该方法包括:当第一进程从所述一个或多个表决进程中的至少一个接收到“否”表决时,通过所述第一进程来确定阻止与第二属性相关联的第二事件。在一些具体实施中,该方法包括:从表决进程中的至少一个接收进行与特定属性相关联的预报的请求;生成所请求的预报;并将所请求的预报返回到所述至少一个表决进程。在一些具体实施中,该方法包括:通过第一进程基于来自一个或多个表决进程的反馈来确定允许与特定属性值相关联的第三事件。在一些具体实施中,通过第一进程基于来自一个或多个表决进程的反馈来确定与特定属性值相关联的第三事件包括:向每个表决进程发送识别特定属性值的信息;并且当每个表决进程确定应该允许发生与特定属性值相关联的事件时,从每个表决进程接收“是”表决。
[1401] 在一些具体实施中,提供了一种非暂态计算机可读介质,该非暂态计算机可读介质包括一个或多个指令序列,这些指令序列当由一个或多个处理器执行时,使得:通过来自计算设备上所执行的一个或多个插件进程的第一进程来接收将插件进程注册为一个或多个表决进程的请求;通过第一进程接收由一个或多个客户端进程生成的事件,每个事件包括与多个属性中的一个相关联的数据;将事件数据存储在移动设备上的事件数据存储库中;通过第一进程接收来自客户端进程的发起与特定属性相关联的事件的请求;向每个所注册的表决进程发送识别该特定属性的信息;响应于向每个所注册的表决进程发送识别该特定属性的信息,从所注册的表决进程中的至少一个接收表决;以及通过第一进程基于表决来确定允许与特定属性相关联的事件。
[1402] 在一些具体实施中,所述一个或多个表决进程在运行时被动态地插入到第一进程中。在一些具体实施中,使得设备通过第一进程基于来自一个或多个表决进程的反馈来确定与特定属性相关联的事件的指令包括使得设备执行以下操作的指令:向每个表决进程发送识别特定属性的信息;并且当每个表决进程确定应该允许发生与特定属性相关联的事件时,从每个表决进程接收“是”表决。在一些具体实施中,该指令使得设备:当第一进程从所述一个或多个表决进程中的至少一个接收到“否”表决时,通过所述第一进程来确定阻止与第二属性相关联的第二事件。在一些具体实施中,该指令使得设备:从表决进程中的至少一个接收进行与特定属性相关联的预报的请求;生成所请求的预报;并将所请求的预报返回到所述至少一个表决进程。在一些具体实施中,该指令使得设备:通过第一进程基于来自一个或多个表决进程的反馈来确定允许与特定属性值相关联的第三事件。在一些具体实施中,使得设备通过第一进程基于来自一个或多个表决进程的反馈来确定与特定属性值相关联的第三事件的指令包括使得设备执行以下操作的指令:向每个表决进程发送识别特定属性值的信息;并且当每个表决进程确定应该允许发生与特定属性值相关联的事件时,从每个表决进程接收“是”表决。
[1403] 在一些具体实施中,提供了一种系统,该系统包括一个或多个处理器;以及包括一个或多个指令序列的计算机可读介质,这些指令序列当由一个或多个处理器执行时,使得:通过来自计算设备上所执行的一个或多个插件进程的第一进程来接收将插件进程注册为一个或多个表决进程的请求;通过第一进程接收由一个或多个客户端进程生成的事件,每个事件包括与多个属性中的一个相关联的数据;将事件数据存储在移动设备上的事件数据存储库中;通过第一进程接收来自客户端进程的发起与特定属性相关联的事件的请求;向每个所注册的表决进程发送识别该特定属性的信息;响应于向每个所注册的表决进程发送识别该特定属性的信息,从所注册的表决进程中的至少一个接收表决;以及通过第一进程基于表决来确定允许与特定属性相关联的事件。
[1404] 在一些具体实施中,所述一个或多个表决进程在运行时被动态地插入到第一进程中。在一些具体实施中,使得设备通过第一进程基于来自一个或多个表决进程的反馈来确定与特定属性相关联的事件的指令包括使得设备执行以下操作的指令:向每个表决进程发送识别特定属性的信息;并且当每个表决进程确定应该允许发生与特定属性相关联的事件时,从每个表决进程接收“是”表决。在一些具体实施中,该指令使得设备:当第一进程从所述一个或多个表决进程中的至少一个接收到“否”表决时,通过所述第一进程来确定阻止与第二属性相关联的第二事件。在一些具体实施中,该指令使得设备:从表决进程中的至少一个接收进行与特定属性相关联的预报的请求;生成所请求的预报;并将所请求的预报返回到所述至少一个表决进程。在一些具体实施中,该指令使得设备:通过第一进程基于来自一个或多个表决进程的反馈来确定允许与特定属性值相关联的第三事件。在一些具体实施中,使得设备通过第一进程基于来自一个或多个表决进程的反馈来确定与特定属性值相关联的第三事件的指令包括使得设备执行以下操作的指令:向每个表决进程发送识别特定属性值的信息;并且当每个表决进程确定应该允许发生与特定属性值相关联的事件时,从每个表决进程接收“是”表决。
[1405] 在另一方面,移动设备可以被配置为监视与移动设备和/或对等设备相关联的环境、系统和用户事件。一个或多个事件的发生可以触发对系统设置的调节。移动设备可以被配置为,基于对预测的用户调用所做的预报,来使频繁调用的应用程序保持最新。在一些具体实施中,移动设备可以接收与这样的应用程序相关联的推送通知:其指示存在用于使该应用程序下载的可用新内容。移动设备可以在后台启动与推送通知相关联的应用程序,并下载该新内容。在一些具体实施中,在运行应用程序或与对等设备通信之前,移动设备可被配置为,检查移动设备和/或对等设备的能量和数据预算以及环境条件来确保高质量的用户体验。
[1406] 在一些具体实施中,提供了一种方法,该方法包括:通过移动设备上执行的第一进程接收由一个或多个客户端进程生成的事件,每个事件包括与多个属性中的一个相关联的数据;将事件数据存储在移动设备上的事件数据存储库中;针对所存储的事件数据中的每个属性生成一个或多个事件预报;通过第一进程接收来自客户端进程的发起与特定属性相关联的事件的请求;通过第一进程基于针对特定属性生成的预报来确定允许与该特定属性相关联的事件。
[1407] 在一些具体实施中,所述一个或多个预报预测了与某一属性相关联的事件将在一段时间内发生的可能性。在一些具体实施中,所述一个或多个预报包括对等预报。在一些具体实施中,所述一个或多个预报包括时间预报。在一些具体实施中,所述一个或多个预报包括基于事件数据存储库中特定属性的发生频率的频率预报。在一些具体实施中,所述一个或多个预报包括基于与特定属性不同的属性相关联的事件的全景预报。在一些具体实施中,该方法包括:基于多个预报类型中的每一个对发生所接收事件的预测情况,来确定默认预报类型。在一些具体实施中,多个预报类型包括频率预报类型和全景预报类型。
[1408] 在一些具体实施中,提供了一种非暂态计算机可读介质,该非暂态计算机可读介质包括一个或多个指令序列,这些指令序列当由一个或多个处理器执行时,使得:通过移动设备上执行的第一进程接收由一个或多个客户端进程生成的事件,每个事件包括与多个属性中的一个相关联的数据;将事件数据存储在移动设备上的事件数据存储库中;针对所存储的事件数据中的每个属性生成一个或多个事件预报;通过第一进程接收来自客户端进程的发起与特定属性相关联的事件的请求;通过第一进程基于针对特定属性生成的预报来确定允许与该特定属性相关联的事件。
[1409] 在一些具体实施中,所述一个或多个预报预测了与某一属性相关联的事件将在一段时间内发生的可能性。在一些具体实施中,所述一个或多个预报包括对等预报。在一些具体实施中,所述一个或多个预报包括时间预报。在一些具体实施中,所述一个或多个预报包括基于事件数据存储库中特定属性的发生频率的频率预报。在一些具体实施中,所述一个或多个预报包括基于与特定属性不同的属性相关联的事件的全景预报。在一些具体实施中,指令使得:基于多个预报类型中的每一个对发生所接收事件的预测情况,来确定默认预报类型。在一些具体实施中,多个预报类型包括频率预报类型和全景预报类型。
[1410] 在一些具体实施中,提供一种系统,该系统包括一个或多个处理器;以及包括一个或多个指令序列的非暂态计算机可读介质,这些指令序列当由所述一个或多个处理器执行时,使得:通过移动设备上执行的第一进程接收由一个或多个客户端进程生成的事件,每个事件包括与多个属性中的一个相关联的数据;将事件数据存储在移动设备上的事件数据存储库中;针对所存储的事件数据中的每个属性生成一个或多个事件预报;通过第一进程接收来自客户端进程的发起与特定属性相关联的事件的请求;通过第一进程基于针对特定属性生成的预报来确定允许与该特定属性相关联的事件。
[1411] 在一些具体实施中,所述一个或多个预报预测了与某一属性相关联的事件将在一段时间内发生的可能性。在一些具体实施中,所述一个或多个预报包括对等预报。在一些具体实施中,所述一个或多个预报包括时间预报。在一些具体实施中,所述一个或多个预报包括基于事件数据存储库中特定属性的发生频率的频率预报。在一些具体实施中,所述一个或多个预报包括基于与特定属性不同的属性相关联的事件的全景预报。在一些具体实施中,指令使得:基于多个预报类型中的每一个对发生所接收事件的预测情况,来确定默认预报类型。在一些具体实施中,多个预报类型包括频率预报类型和全景预报类型。
[1412] 在又一方面,移动设备可以被配置为监视与移动设备和/或对等设备相关联的环境、系统和用户事件。一个或多个事件的发生可以触发对系统设置的调节。移动设备可以被配置为,基于对预测的用户调用所做的预报,来使频繁调用的应用程序保持最新。在一些具体实施中,移动设备可以接收与这样的应用程序相关联的推送通知:其指示存在用于使该应用程序下载的可用新内容。移动设备可以在后台启动与推送通知相关联的应用程序,并下载该新内容。在一些具体实施中,在运行应用程序或与对等设备通信之前,移动设备可被配置为,检查移动设备和/或对等设备的能量和数据预算以及环境条件来确保高质量的用户体验。
[1413] 在一些具体实施中,提供了一种方法,该方法包括:在移动设备上执行的热管理守护进程处接收对允许发生与某一属性的某一指定值相关联的事件进行表决的请求;从取样守护进程请求针对该属性进行对等预报;针对与该属性相关联的并被预测要在当前时间附近出现的多个值中的每一个接收得分;基于指定属性值的得分进行表决以允许该事件。
[1414] 在一些具体实施中,该方法包括:确定所述多个值中的最高得分属性值的数量;当指定属性值包括在该数量的最高得分属性值中时,进行表决以允许该事件。在一些具体实施中,该方法包括:当指定属性值未包括在所述多个值中时,进行表决以阻止该事件。在一些具体实施中,该方法包括:确定所述多个值中的最低得分属性值的数量;当指定属性值包括在该数量的最低得分属性值中时,进行表决以阻止该事件。在一些具体实施中,该方法包括:基于移动设备的当前工作温度来确定最低得分属性值的数量。在一些具体实施中,该方法包括:基于当前工作温度在工作温度范围内的位置来确定最低得分属性值的数量。
[1415] 在一些具体实施中,提供了一种非暂态计算机可读介质,该非暂态计算机可读介质包括一个或多个指令序列,这些指令序列当由一个或多个处理器执行时,使得:在移动设备上执行的热管理守护进程处接收对允许发生与某一属性的某一指定值相关联的事件进行表决的请求;从取样守护进程请求针对该属性进行对等预报;针对与该属性相关联的并被预测要在当前时间附近出现的多个值中的每一个接收得分;基于指定属性值的得分进行表决以允许该事件。
[1416] 在一些具体实施中,指令使得:确定所述多个值中的最高得分属性值的数量;当指定属性值包括在该数量的最高得分属性值中时,进行表决以允许该事件。在一些具体实施中,指令使得:当指定属性值未包括在所述多个值中时,进行表决以阻止该事件。在一些具体实施中,指令使得:确定所述多个值中的最低得分属性值的数量;当指定属性值包括在该数量的最低得分属性值中时,进行表决以阻止该事件。在一些具体实施中,指令使得:基于移动设备的当前工作温度来确定最低得分属性值的数量。在一些具体实施中,指令使得:基于当前工作温度在工作温度范围内的位置来确定最低得分属性值的数量。
[1417] 在一些具体实施中,提供一种系统,该系统包括一个或多个处理器;以及包括一个或多个指令序列的计算机可读介质,这些指令序列当由所述一个或多个处理器执行时,使得:在移动设备上执行的热管理守护进程处接收对允许发生与某一属性的某一指定值相关联的事件进行表决的请求;从取样守护进程请求针对该属性进行对等预报;针对与该属性相关联的并被预测要在当前时间附近出现的多个值中的每一个接收得分;基于指定属性值的得分进行表决以允许该事件。
[1418] 在一些具体实施中,指令使得:确定所述多个值中的最高得分属性值的数量;当指定属性值包括在该数量的最高得分属性值中时,进行表决以允许该事件。在一些具体实施中,指令使得:当指定属性值未包括在所述多个值中时,进行表决以阻止该事件。在一些具体实施中,指令使得:确定所述多个值中的最低得分属性值的数量;当指定属性值包括在该数量的最低得分属性值中时,进行表决以阻止该事件。在一些具体实施中,指令使得:基于移动设备的当前工作温度来确定最低得分属性值的数量。在一些具体实施中,指令使得:基于当前工作温度在工作温度范围内的位置来确定最低得分属性值的数量。
[1419] 第2部分:搜索技术
[1420] 本部分“搜索技术”中的内容根据一些实施方案描述了执行联合搜索、多域查询完成项以及在引用搜索索引中对用户反馈的使用,并提供了补充本文提供的公开内容的信息。例如,本部分的一些部分描述了通过多个单独的搜索域(例如,搜索地图、人和地点)从查询生成多个经排名的查询结果,其补充了本文提供的公开内容,例如与方法800有关的公开内容,以及与填充图9B-图9C的预测部分930有关的公开内容,如下所述。又如,本部分的一些部分描述了搜索与确定搜索完成项,这补充了本文提供的公开内容,例如那些与在不接收任何用户输入的情况下自动显示相关内容(例如方法800)有关的公开内容,以及与使用先前的搜索历史并基于用户的先前搜索历史来生成预测内容(例如,如下文参考图3A-图3B所讨论的)有关的公开内容。再如,本部分的一些部分描述了监视用户与搜索结果的交互以便改进搜索结果的呈现,这补充了本文的公开内容,例如,那些与使用先前的搜索历史来生成所预测内容(例如,如下文参考图3A-图3B所讨论的)有关的公开内容。
[1421] 搜索技术简介
[1422] 本文描述了执行多域查询搜索的方法和设备装置。在示例性实施方案中,该设备从用户的客户端接收查询前缀。该设备还确定了跨多个独立搜索域的多个搜索完成项。另外,该设备基于针对由对应搜索域确定的多个搜索完成项中的每一个所计算的得分,来对多个搜索完成项进行排名,其中所述多个搜索完成项中的至少一个用于在不具有来自用户的指示的情况下,响应于接收到查询前缀生成多个搜索结果。
[1423] 在另一个实施方案中,该设备使用来自用户搜索会话的反馈来生成结果高速缓存。在该实施方案中,该设备从客户端接收反馈包,其中该反馈包用响应于用户输入的查询前缀而呈现给用户的搜索会话中的多个查询结果来表征用户交互。该设备还通过使用搜索反馈索引运行所述多个查询以得到多个结果,来针对所述多个查询生成多个结果。另外,该设备从所述多个结果创建结果高速缓存,其中结果高速缓存将所述多个结果映射到所述多个查询,并且该结果高速缓存用于向客户端提供查询结果。
[1424] 在另一实施方案中,该设备从多个独立搜索域上的查询来生成多个经排名的查询结果。在该实施方案中,该设备接收查询并且使用该查询来确定跨多个独立搜索域的多个结果。该设备还表征该查询。此外,设备基于针对由相应搜索域和查询表征所确定的所述多个结果中的每个结果所计算的得分,来对所述多个结果进行排名,其中该查询表征指示了查询类型。
[1425] 还描述了其他方法和装置。
[1426] 搜索技术的详细描述
[1427] 本文描述了执行多域查询搜索的方法和设备装置。在以下说明中示出了许多具体细节,以提供对本发明的实施例的彻底解释。然而,对于本领域的技术人员显而易见的是,本发明的实施例可在不具有这些具体细节的情况下被实施。在其他情况下,尚未详细示出熟知的部件、结构和技术,以免模糊对此说明的理解。
[1428] 在本说明书中提到的“一个实施例”(“one embodiment”或“an embodiment”)是指结合实施例所述的特定特征、结构或特性可被包括在本发明的至少一个实施例中。在本说明书中的不同位置出现的短语“在一个实施例中”不一定都是指同一个实施例。
[1429] 在以下描述和权利要求中,可以使用术语“耦接”和“连接”及其派生词。应当理解,这些术语并非意在彼此同义。“耦接”被用于表示可能或可能不彼此直接物理或电接触的两个或更多个元件彼此合作或交互。“连接”被用于表示彼此耦接的两个或更多元件之间通信的建立。
[1430] 下图中示出的过程通过处理逻辑部件来执行,该处理逻辑部件包括硬件(例如,电路、专用逻辑部件等)、软件(诸如在通用计算机系统或专用机上运行的软件)、或两者的组合。虽然下文按照某些顺序操作来描述该过程,但应当理解,所述的某些操作可以不同的顺序来执行。
[1431] 此外,某些操作也可并行执行而并非按顺序执行。
[1432] 术语“服务器”、“客户端”和“设备”旨在一般性地指代数据处理系统,而不是具体地指代服务器、客户端和/或设备的特定形状要素。
[1433] 本文描述了执行多域查询搜索的方法和设备装置。在一个实施方案中,设备从客户端接收到由用户输入的递增的查询前缀,并且使用该递增的查询前缀来针对每个查询前缀生成一组查询完成项。例如,在一个实施方案中,如果用户输入字符串“apple”,则设备接收到“a”、“ap”、“app”、“appl”和“apple”的递增式查询前缀。对于每个查询前缀,设备生成一组查询完成项。例如,在一个实施方案中,“a”的完成项可以是“apple.com”、“America”或“Annapolis”。类似地,设备可以针对其他递增式查询前缀生成一组不同的查询完成项。在一个实施方案中,设备从多个搜索域确定该组查询完成项。例如在一个实施方案中,设备跨多个搜索域(诸如,地图搜索域、媒体搜索域、维基搜索域、站点搜索域和其他搜索域)而搜索查询完成项。在一个实施方案中,每个搜索域包括用于确定输入查询前缀的可能完成项的一个或多个查询完成项树。在一个实施方案中,每个搜索域返回一组得分,设备使用该组得分对这些查询完成项进行排名。例如,在一个实施方案中,每个搜索域返回一组原始、局部和全局得分,该得分可由该设备用来对不同域的不同完成项进行排名。
[1434] 如上所述,传统系统将向用户返回可能的查询完成项,并且用户将针对查询搜索选择可能的查询完成项之一。相比之下,在一个实施方案中,设备不向用户返回该组查询完成项。相反,设备会对该组查询完成项进行排名,并使用该查询完成项的子组来确定该查询完成项子组的相关结果,而不向用户显示该组查询完成项,或者不获取关于使用该组查询完成项中的哪一个来确定相关结果的指示。在一个实施方案中,设备在多个搜索域(例如,地图、媒体、维基、站点、其他搜索域或另一搜索域)上执行相关结果的搜索。该设备从多个搜索域接收一组结果,并基于从每个搜索域和跨域信息所生成的得分来对这些结果进行排名。在一个实施方案中,设备还基于用于确定这些结果的查询完成项的类型,对相关结果进行排名。例如,在一个实施方案中,如果查询完成项被表征为是对于地点的搜索,则来自地图搜索域的结果以及关于该地点的维基条目可获得更高排名。又如,如果查询完成项被指示为关于艺术家,则媒体搜索域结果可获得更高排名。该设备会将针对查询完成项而发现的相关结果返回给客户端。
[1435] 在一个实施方案中,查看结果的用户可能会参与或弃用结果。在一个实施方案中,如果在用户的搜索会话期间,用户与呈现给用户的显现结果之一发生交互,则会出现参与事件。例如,在一个实施方案中,用户可以点击针对显现结果之一所呈现的链接。又如,用户可以点击该链接,并花费比预定时间更长的时间来与该链接所引用的对象(例如,网站)进行交互(例如,与所引用的对象进行交互超过60秒)。在该示例中,用户可以接收针对当前美国总统的查询搜索的结果,并且点击引用了描述总统最新演讲的网页的链接。如果用户与网站交互超过预定时间(例如,60-90秒),则设备将确定用户参与了由该链接表示的结果。在另一个实施方案中,用户可以忽略或弃用为用户显现的结果。例如,在一个实施方案中,如果用户点击针对显现结果之一而呈现的链接,但是在预定时间(例如,小于60-90秒)内未浏览该网站,则该设备确定这是对结果的弃用事件。
[1436] 在一个实施方案中,该反馈可以被合并到搜索索引中,其中反馈会影响相关结果的排名和筛选。在该实施方案中,呈现并显现相关结果的客户端另外会收集对于用户的搜索会话的参与和弃用事件。客户端将事件收集到反馈包中,并将该包发送到服务器进行处理。在一个实施方案中,服务器
[1437] 接收反馈包并将反馈包转换成反馈索引条目。在一个实施方案中,反馈索引条目具有<查询,结果,显现计数,参与计数,弃用计数>的格式,其中查询是输入查询和上下文信息查询,诸如设备类型、应用程序、区域设置和地理位置;结果是显现结果;显现计数是针对该查询显现结果的次数;参与计数是该查询的结果受到参与的次数;弃用计数是结果被弃用的次数。该条目被合并到反馈搜索索引中。在一个实施方案中,反馈搜索索引是将用户反馈结合到评分结果中的搜索索引。例如,在一个实施方案中,用于查询结果对的每个参与事件会促进相应查询的结果。在该示例中,如果用户参与特定查询的结果,则未来的用户也可能针对同一查询的该结果进行参与。因此,在一个实施方案中,对于具有相同查询的未来用户而言,该查询的结果将被返回并且排名更高。相反,如果用户弃用特定查询的结果,则未来的用户也可能针对同一查询而放弃该相同的结果。因此,在一个实施方案中,对于具有相同查询的未来用户而言,该查询的结果可被返回并且排名更低。
[1438] 在一个实施方案中,服务器还使用反馈搜索索引来生成将查询映射到结果的结果高速缓存。在一个实施方案中,结果高速缓存是将查询映射到结果的高速缓存,其可以用于针对用户查询快速返回结果。在一个实施方案中,结果高速缓存存储在紧邻用户设备的边缘服务器中,边缘服务器可以在执行查询搜索之前服务于一个或多个结果。在一个实施方案中,服务器通过运行来自结果的一组查询来生成结果高速缓存,该结果被设定为生成更新的结果组,其将所收集的反馈结合到更新结果组的结果中。此更新的一组结果被发送到边缘服务器。
[1439] 图32_1是基于输入查询前缀来返回搜索结果的系统32_100的一个实施方案的框图。在图32_1中,系统32_100包括耦接到设备32_102、智能电话32_114和平板电脑32_116的搜索网络32_108。在一个实施方案中,搜索网络是一个或多个服务器的网络,其接收用于不同设备的查询前缀,并将查询结果返回给那些设备。例如在一个实施方案中,搜索网络从设备32_102、智能电话32_114和/或平板电脑32_116接收到查询前缀32_110A-D,并将查询结果32_112A-D返回到相应设备(例如,设备32_102、智能电话32_114和/或平板电脑32_116)。在一个实施方案中,设备32_102可以是个人计算机、膝上型电脑、服务器、移动设备(例如,智能电话、膝上型电脑、个人数字助理、音乐播放设备、游戏设备等),和/或能够请求和/显示查询。在一个实施例中,设备可为物理或虚拟设备。在一个实施方案中,智能电话32_114可以是能够执行设备32_102的许多功能的蜂窝电话。在一个实施方案中,平板电脑32_116可以是在显示器上接受输入的移动设备。
[1440] 在一个实施方案中,每个设备包括用于由用户输入查询前缀的浏览器。例如在一个实施方案中,设备32_102包括web浏览器32_104和文件浏览器32_106。这些浏览器中的每一个都包括由用户输入查询前缀的搜索输入字段。在一个实施方案中,web浏览器32_104是允许用户搜索和检索用于各种类型网页文档的网页的程序。在一个实施方案中,web浏览器32_104包括搜索输入字段32_128。搜索输入字段32_128由用户用于输入查询前缀字符串。
在一个实施方案中,查询前缀字符串是将用于被发送到搜索网络32_108的查询前缀的一串文本或其他符号。查询前缀字符串可以是由用户输入的不完整或完整的搜索字符串。在一个实施方案中,当用户在搜索输入字段32_120A中键入查询输入字符串时,web浏览器32_
104捕获该查询前缀字符串,并将该查询前缀32_110A中的查询前缀字符串发送到搜索网络。对于在搜索输入字段32_120A中输入的每个符号或文本字符串,web浏览器32_104会创建查询前缀32_110A并将其发送到搜索网络32_108。响应于接收到查询前缀32_110A,搜索网络在多个搜索域上创建一个或多个查询完成项,并且选择这些查询完成项中的一个或多个来创建返回到web浏览器32_104的一组相关结果32_112。例如,在一个实施方案中,当用户输入文本“appl”时,web浏览器32_104使用查询前缀字符串“a”、“ap”、“app”和“appl”来创建查询前缀32_110A。对于这些查询前缀32_110A中的每一个,搜索网络32_108从多个搜索域创建一组查询完成项,使用这些查询完成项来确定相关结果,并且针对不同的查询前缀32_110A返回一组不同的结果。随着用户输入后续字符而捕获查询前缀的过程也可以在文件浏览器32_106中完成。在一个实施方案中,文件浏览器32_106包括用户可用于输入查询前缀字符串的搜索输入字段32_120B。在本实施方案中,随着用户输入查询前缀字符串,文件浏览器32_106创建不同的查询前缀32_110B并将其发送到搜索网络32_108。搜索网络
32_108接收该不同的查询前缀32_110B,并确定一个或多个查询完成项,再返回相关结果,如上所述。此外,查询前缀可用于使用本地存储在设备32_106上的数据的元数据数据库来执行查询。
[1441] 在一个实施方案中,也可以在智能电话32_114和平板电脑32_116上执行随字符串的输入而捕获查询输入字符串的相同过程、确定一个或多个查询完成项的相同过程,以及使用这些查询完成项来确定相关结果的相同过程。在该实施方案中,智能电话32_114包括浏览器32_116。浏览器32_116包括搜索输入字段32_120C。与上述内容类似,搜索输入字段32_120C由用户用于输入查询前缀字符串。该查询前缀字符串由浏览器32_116递增地捕获,其继而创建发送到搜索网络32_108的一组不同的查询前缀32_110C。响应于接收到这些不同查询前缀32_110C中的每一个,搜索网络32_108确定一个或多个查询完成项,并且使用这些查询完成项来确定返回到浏览器32_116的相关结果32_112C。此外,平板电脑32_116包括浏览器32_118。浏览器32_118包括搜索输入字段32_120D。与上述内容类似,搜索输入字段
32_120D由用户用于输入查询前缀字符串。该查询前缀字符串由浏览器32_118递增地捕获,其继而创建发送到搜索网络32_108的一组不同的查询前缀32_110D。响应于接收到这些不同查询前缀32_110D中的每一个,搜索网络32_108确定一个或多个查询完成项,并且使用这些查询完成项来确定返回到浏览器32_118的相关结果32_112D。在一个实施方案中,搜索网络32_108包括处理查询完成项并返回相关结果的搜索模块32_118。处理查询完成项并返回相关结果将在下文的图32_2-图32_7中进一步描述。
[1442] 如上所述,设备上的浏览器向搜索网络32_108发送查询前缀32_110A-D。在一个实施方案中,查询前缀32_110A-D包括查询前缀字符串、位置(例如,纬度/经度组合)、设备类型标识符(例如,计算机,智能电话,平板电脑等)和应用程序类型标识符(例如,web浏览器(以及什么类型的Web浏览器)、文件浏览器)和区域设置。在本实施方案中,通过提供位置、设备类型标识符、应用程序类型标识符和区域设置,将由用户输入到查询前缀字符串中的上下文提供给搜索网络32_108。在一个实施方案中,搜索网络32_108使用该上下文和查询前缀字符串来确定查询完成项和相关结果。例如,在一个实施方案中,搜索网络32_108可以使用位置信息来确定与提供查询前缀的设备的位置相关的查询完成项和结果。例如,设备位置可用于查找当前设备位置附近的地方的搜索结果。又如,在另一个实施方案中,搜索网络32_108可以使用设备类型标识符来确定针对该设备类型的完成项和结果。在该示例中,如果设备类型标识符指示查询前缀来自智能手机,则搜索网络32_108可以对用于智能电话的应用程序商店而不是用于个人计算机的应用程序商店的结果给予更大权重。在另一示例和另外的实施方案中,应用程序类型标识符和区域设置也可以用于给完成项和结果加权。
[1443] 在一个实施方案中,搜索网络32_108使用多域查询完成项来完成查询前缀。在本实施方案中,搜索网络32_108将每个所接收的查询前缀发送给搜索网络32_108使用的每个搜索域。例如,在一个实施方案中,搜索网络32_108将所接收的查询前缀发送到地图搜索域、媒体搜索域、维基搜索域、站点搜索域和其他搜索域。这些搜索域中的每一个将基于该搜索域中包含的数据确定该查询前缀的一个或多个查询完成项。此外,每个搜索域将返回一个或多个查询完成项的一组得分。例如,在一个实施方案中,搜索域将针对每个查询完成项返回原始、局部和/或全局得分。在图3-图6中进一步描述了执行多域查询完成项。
[1444] 搜索网络32_108使用查询完成项中的一个或多个来确定多个搜索域上的一组相关查询结果,而不是将搜索网络32_108所确定的查询完成项返回给提供查询前缀的设备。在一个实施方案中,使用查询完成来确定一组相关查询结果是在没有来自用户的指示的情况下执行的,该指示为使用这些查询完成项中的哪一个来确定相关结果。在本实施方案中,当用户将字符串输入到搜索输入字段时,搜索网络32_108处理该字符串并将相关结果返回给用户。在一个实施方案中,搜索网络32_108使用所确定的查询完成项中的一个或多个来查找那些查询完成项的查询结果并将其排名。在一个实施方案中,搜索网络32_108在可用于搜索网络32_108的多个搜索域上进行搜索。在该实施方案中,搜索网络32_108从每个搜索域接收针对于查询完成项的一组结果。对于这些结果中的每一个,搜索网络32_108另外接收到表征该结果的一组得分。在一个实施方案中,该得分可以包括由提供结果的搜索域所确定的得分、另一度量和/或表征用于提供结果的查询完成项的信号,如下文在图32_7中所述。在一个实施方案中,该信号基于使用知识库对查询完成项进行词汇特性描述。在一个实施方案中,该词汇特性描述确定了对于多域查询搜索正在使用何种类型的查询完成项。
执行多域查询搜索以确定一组相关结果进一步描述于下文的图32_7和图32_13-图32_15中。
[1445] 图32_2是基于输入查询前缀确定查询完成项和相关结果的过程的一个实施方案的流程图32_200。在图32_2中,过程32_200始于接收查询前缀。在一个实施方案中,查询前缀包括如上文在图32_1中所述的查询前缀字符串、位置、设备类型标识符、应用程序类型标识符和区域设置。在该实施方案中,位置、设备类型标识符、应用程序类型标识符和/或区域设置为用户输入查询前缀字符串的查询前缀给出了上下文。在框32_204处,过程32_200确定跨多个搜索域的查询完成项,同时排名并选择查询完成项。在一个实施方案中,过程32_200使用查询前缀从每个不同的此类域确定一组查询完成项。例如,在一个实施方案中,如果查询前缀字符串是“ap”,则过程32_200将使用该查询前缀字符串来确定来自不同搜索域(例如,地图、媒体、维基、站点和/或其他搜索域)的该组查询完成项。在该示例中,地图搜索域可能会将查询完成项返回给城市Apache Junction,媒体搜索域将查询完成项返回给音乐作品阿帕拉契亚之春(Appalachian Spring),维基搜索域可能会将查询完成项返回给Apple公司,站点搜索域可能会将查询完成项返回给网站Apple.com。在一个实施方案中,如果查询前缀字符串具有最小字符数(例如,四个字符),则过程32_200会创建该组查询完成项。
[1446] 此外,过程32_200对接收自不同此类域的可能的查询完成项进行排名并选择。在一个实施方案中,过程32_200基于由对应搜索域所确定的得分和基于查询前缀的上下文的权重来将可能的查询完成项排名。在该实施方案中,过程32_200基于这些排名而选择该组查询完成项。在一个实施方案中,使用该组查询完成项来确定一组相关结果,然后将这组相关结果返回给用户,而不是将该组查询完成项返回给输入查询前缀字符串(用于大完成项)的用户。确定一组查询完成项进一步描述于下文的图32_3-图32_6中。
[1447] 过程32_200在框32_206处确定了该组相关结果。在一个实施方案中,过程32_200基于在框32_204处确定的查询完成项来确定相关结果。在该实施方案中,处理32_200在可用于过程32_200的多个搜索域上进行搜索。在该实施方案中,处理32_200从每个搜索域接收针对于查询完成项(一个或多个)的一组结果。对于这些结果中的每一个,过程32_200另外接收到表征该结果的一组得分。在一个实施方案中,该得分可以包括由提供结果的搜索域所确定的得分、另一度量和/或表征用于提供结果的查询完成项的信号,如下文在图32_7中所述。在一个实施方案中,该信号基于使用知识库对查询完成项进行词汇特性描述。在一个实施方案中,该词汇特性描述确定了对于多域查询搜索正在使用何种类型的查询完成项。确定该组相关结果进一步描述于下文的图32_7和图32_13-图32_15中。在框32_208处,过程32_200将该组相关结果返回给用户。在另一个实施方案中,反馈索引可以用作信号域,从而对结果进行加权。在下面的图32_14中进一步描述了该实施方案。
[1448] 如上所述,过程32_200确定了跨多个搜索域的查询完成项和相关结果。在一个实施方案中,查询完成项和相关结果是使用聚合器进行聚合的。图32_3是包括聚合器32_302和多个搜索域32_304A-F的系统32_300的一个实施方案的框图。在一个实施方案中,聚合器32_302基于输入查询前缀来接收对查询完成项的请求。响应于接收到输入查询前缀,聚合器32_302将输入查询前缀发送到每个搜索域32_304A-F。每个搜索域32_304A-F使用该输入查询前缀来确定该域中可能的查询完成项。例如在一个实施方案中,地图搜索域32_304A接收输入查询前缀,并在该域中搜索可能的查询完成项。在一个实施方案中,聚合器32_302从每个搜索域接收查询完成项,并且基于由相应搜索域所确定的每个完成项的得分和基于查询前缀上下文的权重,来对所接收的查询完成项进行排名。
[1449] 在一个实施方案中,地图搜索域32_304A是包括地理地图有关信息的搜索域。在该实施方案中,地图信息可以包括关于地图、地址、地点、商家、景点的信息,或与地图有关的其他类型的信息。在另一个实施方案中,地图信息还可以包括与景点相关的信息、诸如开放时间、评价和评分、联系信息、路线和/或与该地点有关的照片。在一个实施方案中,媒体搜索域32_304B是与媒体相关的搜索域。在一个实施方案中,媒体搜索域32_304B包括与音乐、书籍、视频、课程、口语、播客、电台和/或其他类型的媒体有关的信息。在另外的实施方案中,媒体搜索域32_304B可以包括与可在设备(诸如上述图32_1中的设备32_102、智能电话32_114和平板电脑32_116)上运行的应用程序相关的信息。在一个实施方案中,媒体搜索域是包括可购买的不同类型媒体(例如,音乐、书籍、视频、课程、口语、播客、电台、应用程序和/或其他类型的媒体)的媒体商店。在一个实施方案中,维基搜索域32_304C是在线百科全书搜索域。例如,在一个实施方案中,维基搜索域32_304C可以是维基百科(WIKIPEDIA)。在一个实施方案中,站点搜索域32_304D是网站的搜索域。例如在一个实施方案中,站点搜索域32_304D包括诸如“apple.com”、“whitehouse.gov”、“yahoo.com”等的商业,政府,公共和/或私人网站。在一个实施方案中,其他搜索域32_304E是可以由聚合器32_302访问的一组其他搜索域(例如,新闻搜索域)。在一个实施方案中,反馈完成项域32_304F是基于在各种设备上运行的浏览器所收集的查询反馈的搜索索引。在一个实施方案中,反馈完成项域
32_304F包括基于所收集的查询反馈而将查询映射到结果的反馈索引。反馈索引进一步描述于下文的图32_8-图32_12中。
[1450] 如上所述,每个搜索域32_304A-F包括允许每个搜索域基于输入查询前缀来给出一组查询完成项的信息。在一个实施方案中,每个搜索域包括查询完成项树,其用于确定查询完成项并且确定每个查询完成项的得分。图32_4是查询完成项搜索域32_402的一个实施方案的图示。在图32_4中,查询完成项搜索域32_402包括具有节点32_404A-J的查询完成项树32_400。在一个实施方案中,节点32_404A-J中的每一个表示相应语言中的一个字符。在本实施方案中,通过跟随树上的节点32_404A-J行进,可以表示不同的查询完成项。例如,在一个实施方案中,始于节点32_404A处并跟随行进到节点32_404C,可以表示以字母“ap”开始的完成项。每个节点还具有频率,该频率是此完成项已与输入查询前缀匹配的次数。在一个实施方案中,节点32_404C具有频率N。在该实施方案中,频率被表示为返回到上面的聚合器32_302的原始得分。在一个实施方案中,可以基于日志(例如,地图或媒体搜索域)、所访问的页面(例如,维基搜索域)或另一信息源来计算该频率。在节点32_404C下,有多个可能的其他查询完成项。例如,在一个实施方案中,节点32_404D-F表示以字母“apa”、“apt”和“app”开始的查询完成项。该节点下的可能的查询完成项的总数,给出了由该节点表示的该查询完成项的密切度的指示。如果在节点之下有大量可能的其他节点,则该节点所表示的查询完成项可能不是良好的完成项。另一方面,若在节点下方具有相对较少节点,则该节点可能是很好的完成项。在一个实施方案中,该节点的局部得分由该节点的频率除以由该节点下方的子树所代表的完成项数目来表示。在一个实施方案中,局部得分的公式由公式(1)表示:
[1451] 局部得分(节点)=频率(节点)/节点下方的完成项数目。
[1452] 在一个实施方案中,每个查询完成项树包括总完成项数目。该值用于计算完成项(或节点)的全局得分。在一个实施方案中,全局得分的公式由公式(2)表示:全局得分(节点)=频率(节点)/查询完成项项树中的完成项数目
[1453] 在一个实施方案中,每个查询完成项的原始、局部和全局得分由搜索域返回到聚合器。
[1454] 图32_5是地图搜索域32_500的一个实施方案的图示。在图32_5中,地图搜索域32_500包括用于该域的不同缩放级别的查询完成项树32_504A-D。在一个实施方案中,地图搜索域32_500包括用于市级32_504A、县级32_504B、州级32_504C和国家级32_504D的查询完成项树,它们由地图聚合器32_502聚合起来。在该实施方案中,地图聚合器32_502接收到对于输入查询前缀的查询完成项的确定,其继而确定了在地图搜索域32_500的不同缩放级别
32_504A-D下的该输入查询前缀的查询完成项。地图聚合器32_502从不同的缩放级别32_
504A-D中的每一个级别检索可能的查询完成项,聚合这些查询完成项,并将这些查询完成项返回到聚合器(例如聚合器32_302)。因此,地图搜索域32_500确定跨不同缩放级别的查询完成项。在一个实施方案中,地图搜索域32_500包括关于地址、地点、商家、景点的信息,和/或与地图相关的任何其他信息。在一个实施方案中,地图搜索域32_500可以包括目录信息,诸如白页或黄页目录。在一个实施方案中,媒体搜索域根据店面来进行组织,其基于设备标识符和区域设置的组合。在本实施方案中,每个店面都有一个查询完成项树。图32_6是用于确定来自多个搜索域的查询完成项的过程的一个实施方案的流程图32_600。在一个实施方案中,聚合器32_302执行过程32_600,以确定来自多个搜索域的查询完成项。在图32_6中,过程32_600始于框32_602处的接收查询前缀。在一个实施方案中,查询前缀包括处于上下文中的查询前缀字符串,如上文在图32_2中所述。在框32_602处,过程32_600将查询前缀发送到不同的搜索域,以确定可能的完成项。在一个实施方案中,过程32_600将查询前缀发送到地图、媒体、维基、站点和/或其他搜索域,其中每个搜索域基于可用于每个搜索域的查询完成项树,来确定用于输入查询前缀的可能的查询完成项,如上文在图32_4中所述。过程
32_600在框32_606处接收来自每个搜索域的可能的查询完成项。除了接收可能的查询完成项之外,过程32_600还针对每个可能的完成项接收一组得分,例如原始、局部和/或全局得分,如上文在图32_4中所述。在框32_608处,过程32_600基于返回的得分和输入查询前缀的上下文,而对可能的查询完成项进行排名和筛选。在一个实施方案中,过程32_600基于从不同搜索域接收的原始、局部和全局得分以及包含在查询前缀中的上下文,来对可能的查询完成项进行排名。过程32_600还可以基于一组规则来筛选可能的查询完成项。例如,在一个实施方案中,筛选器规则可以是,过程32_600筛选出原始得分为一或小于某个预定值的可能的完成项。过程32_600在框32_610处将经过排名和筛选的完成项发送到搜索查询模块,其中搜索查询模块使用该组经过排名和筛选的完成项来确定将返回给用户的一组相关结果。
[1455] 如上所述,由过程32_600确定的查询完成项被用于确定相关结果,而不将这些完成项返回给用户。图32_7是从确定的查询完成项来在多个搜索域中确定相关结果的过程32_700的一个实施方案的流程图。在一个实施方案中,联合器32_824执行过程32_700。在图
32_7中,过程32_700在块32_702从完成器接收查询完成项。在一个实施方案中,所接收的查询完成项是由过程32_600响应于接收到查询前缀而确定的完成项。在框32_704处,过程32_
700将查询完成项发送到不同的搜索域,以确定可能的相关结果。在一个实施方案中,每个搜索域使用所接收的查询完成项来确定该搜索域的相关结果。在框32_706,过程32_700接收来自不同搜索域的查询结果。在一个实施方案中,过程32_700接收与由相关搜索域所计算每个结果相关联的得分。
[1456] 过程32_700在框32_708处对搜索结果进行排名和筛选。在一个实施方案中,过程32_700根据由每个搜索域针对搜索结果和其他因素所返回的得分,来对搜索结果进行排名。在该实施方案中,来自不同域的得分可以基于域依赖性得分、查询独立性得分和查询依赖性得分来进行评分。在一个实施方案中,每个不同的搜索域可以提供用于对返回结果进行排名的特定数据。例如,在一个实施方案中,如果结果具有与结果相关联的统一资源定位符(URL)(例如,如果结果是商家位置,如果该商家具有URL参考网站或其他社交媒体存在信息)并且/或者算入了点击次数,则地图搜索域可以提供各种查询独立性信息来对结果进行排名:在线评价的数量、平均评价得分、与用户的距离(例如,基于查询前缀位置信息)。作为另一个示例和另一个实施方案,媒体搜索域可以提供用于评分的其他类型的信息:媒体评级计数、媒体年代、流行度、衰减的人气,和/或购买数据结果。在另一示例和实施方案中,维基搜索域可以提供关于可用于排名的页面浏览、编辑历史和语言数量的信息。其他搜索领域可以提供评分量度,如引用次数和年龄。
[1457] 在一个实施方案中,过程32_700从每个搜索域接收一组得分,并使用这些得分来确定每个结果的初始得分。过程32_700将信号域应用于每个结果。在一个实施方案中,信号域是查询完成项特性描述。在该实施方案中,过程32_700对每个查询完成项进行特性描述,并且使用该查询完成项特性描述来对结果进行排名。例如,在一个实施方案中,过程32_700利用知识库执行词汇表征,以确定查询完成项的类型。在该示例中,查询完成项类型指示该查询完成项是否确定了人物、地点、事物和/或另一类别。例如在一个实施方案中,过程32_700可以确定系统正在使用查询完成项来确定地点。在该示例中,由于查询完成项被用于确定地点,所以来自地图搜索域的查询结果将在搜索结果的排名中得到更高加权(和排名)。
在下文的图32_13-图32_15中进一步描述了查询完成项表征。
[1458] 在另一个实施方案中,过程32_700对每个结果得分应用增强效果。在该实施方案中,过程32_700对每个结果应用查询应有的新鲜度。在一个实施方案中,查询应有的新鲜度意指,如果针对该结果的计数数量最近存在尖峰或峰值,则该结果是“新鲜”结果,其可以得到提升。其计数随时间而在基线附近波动的结果不是“新鲜”的结果,并且不会得到提升。在一个实施方案中,该计数基于对社交媒体馈送(例如,Twitter等)的分析。
[1459] 例如,在一个实施方案中,如果查询完成项是“初恋”,且返回了四个结果:(1)来自媒体搜索领域的歌曲“初恋”;(2)来自地图搜索域的名为“初恋之人”的商家;(3)讲初恋广告的一篇新闻文章;和(4)维基条目“初恋”。在该实施方案中,基于搜索域依赖性量度,每个结果具有如下初始得分:来自媒体搜索领域的{年代,评级,和原始得分};来自地图搜索域的{与用户的距离、具有URL、评论数、平均评论}从;来自新闻域的{年代,新闻得分,引用计数},和维基搜索域的{网页排名,原始得分}。每个搜索域都向过程32_700提供其本身的得分。在该示例中,每个结果的得分最初可以排名为,维基结果>媒体结果>新闻结果>地图结果。过程32_700还将信号域应用于每个结果。在该示例中,查询“初恋”被表征为一首歌,也可能是一个地点。应用此表征可以提升媒体存储结果,并在较小程度上提升映射结果。在应用了表征提升后,结果评分可排名为:维基结果>媒体结果(但得分更接近)>地图结果>新闻结果。此外,过程32_700将查询应有的提升应用于结果。例如,因为“初恋”商业广告初次播放已有两天,所以该商业广告的计数有所增加。因此,“初恋”结果会获得查询应有的新鲜度提升。在该示例中,新闻结果“初恋”将得到很大的提升,所以结果将排名为:新闻结果>维基结果>媒体结果>地图结果。
[1460] 在一个实施方案中,过程32_700另外会筛选搜索结果。在该实施方案中,过程32_700基于某些规则而移除结果。例如在一个实施方案中,过程32_700可以移除低于某个整体得分的结果。另选地,过程32_700可以基于另一个标准(例如,文本与查询匹配不佳、点击率低、流行度低、具有直白内容和/或亵渎性的结果,和/或其组合)来筛选结果。在框32_710处,过程32_700将经排名、筛选的结果返回给用户。
[1461] 图32_8是将用户反馈并入到搜索索引中的系统32_800的框图。在图32_8中,系统32_800包括设备32_802,该设备向边缘服务器32_804发送查询前缀32_828,边缘服务器又将查询结果32_830返回给该设备。另外,边缘服务器32_804耦接到核心服务器32_816。在一个实施方案中,设备32_802随着用户输入查询前缀而将查询前缀32_828发送到边缘服务器。例如,在一个实施方案中,如果用户键入查询前缀“apple”,则会随着用户输入每个字符针对“a”、“ap”、“app”、“appl”和“apple”生成查询前缀,并将其发送到边缘服务器32_804。
此外,对于发送到边缘服务器32_804的每个查询前缀32_828,边缘服务器32_804向客户端返回相关结果32_830。例如,在一个实施方案中,随着用户输入每个字符,边缘服务器将返回用于查询前缀32_828“a”、“ap”、“app”、“appl”和“apple”的相关结果。在一个实施方案中,边缘服务器还可以执行查询完成项。在一个实施方案中,设备32_802还收集关于用户的搜索会话的反馈,将该反馈收集到反馈包32_832中,并将反馈包发送到边缘服务器。收集并发送反馈进一步描述于下文的图32_10中。在一个实施方案中,设备32_802包括收集并发送反馈的收集反馈模块32_838。
[1462] 在一个实施方案中,边缘服务器32_804包括反馈模块32_806,其进一步包括反馈搜索模块32_808和反馈收集模块32_810。在一个实施方案中,反馈搜索模块32_808基于存储在边缘服务器32_804的边缘高速缓存32_812上的反馈索引32_814,来针对每个查询前缀32_828执行搜索。在该实施方案中,随着用户输入查询前缀32_828,系统使用反馈搜索模块
32_808和反馈搜索索引32_814将新一组相关结果32_830返回给设备32_802。在一个实施方案中,反馈搜索索引是将用户反馈并入搜索索引的索引。在该实施方案中,反馈搜索索引是用于快速将结果32_830提供给设备的结果高速缓存。在一个实施方案中,反馈搜索索引是引用搜索索引,其在下文中参考图32_11有进一步描述。在一个实施方案中,反馈集合32_
810收集从设备32_802发送的反馈包,并将该反馈包转发到核心服务器32_816。
[1463] 在一个实施方案中,核心服务器32_816包括反馈馈送流水线32_818、反馈决策流水线32_822、反馈索引32_820和联合器32_824。在一个实施方案中,反馈馈送流水线32_818从边缘服务器32_804接收原始反馈包32_834,并将这些原始反馈包32_834中的每一个转换为用于反馈索引32_820的条目。在一个实施方案中,反馈馈送流水线32_816将原始反馈包中的每一个转换成一组索引条目,该索引条目具有<查询,结果,显现计数,参与计数,弃用计数>的格式,其中查询是输入查询和上下文信息查询,诸如设备类型、应用程序、区域设置和地理位置;结果是显现结果;显现计数是针对该查询显现结果的次数;参与计数是该查询的结果受到参与的次数;弃用计数是结果被弃用的次数。在本实施方案中,这些索引条目被添加到反馈索引32_820中。使用原始反馈包来更新反馈索引进一步描述于下文的图32_11中。在一个实施方案中,反馈索引32_820是并入用户反馈的搜索索引。反馈馈送流水线32_818还包括用原始反馈包更新反馈索引的过程反馈模块32_840。
[1464] 在一个实施方案中,反馈决策流水线32_822使用反馈索引32_820来更新结果集。在一个实施方案中,结果集是一组查询和结果之间的映射。在该实施方案中,反馈决策流水线32_822针对反馈索引32_820运行一组查询,以确定更新的结果集。在该实施方案中,更新的结果集被发送到联合器32_824。反馈决策流水线32_822另外将更新的结果集32_826发送到边缘服务器32_804。更新的结果集32_826包括用于所述一组查询的结果,该结果是使用更新的反馈索引32_820所确定的。在一个实施方案中,反馈决策流水线32_822包括更新结果集的更新结果模块32_842。更新结果集进一步描述于下文的图32_12中。在一个实施方案中,反馈决策流水线32_822另外将更新的结果集发送到存储更新结果集32_826的反馈存档
32_836。在一个实施方案中,联合器32_824使用已完成的查询来执行多域搜索,如在下文的图32_13-图32_15中所述。
[1465] 如上所述,搜索网络相对于用户的搜索会话而捕获用户反馈,并使用该反馈来建立搜索反馈索引。图32_9是根据将用户反馈并入引用搜索索引的过程32_900的一个实施方案的流程图。在图32_9中,过程32_900始于收集用户搜索会话的用户反馈。在一个实施方案中,过程32_900响应于发送到搜索网络的查询前缀,而开始在接收到查询结果的设备处收集反馈。在该实施方案中,过程32_900通过检测初始显现事件或另一事件(例如,开始输入查询前缀)并确定用户在搜索会话中的交互来收集反馈。在一个实施方案中,用户交互可以是,保持聚焦于结果所参考的网站上、点击该网站上的链接或其他参考,或者另一种类型的交互。在一个实施方案中,搜索会话是由用户开始输入查询前缀而发起的一组事件,其在粗略的时间段(例如,15分钟)内跟踪用户的动作。在一个实施方案中,如果用户参与了这些显现结果(“参与事件”)中的任何一个,以及如果用户弃用所显现的结果(“弃用事件”),则处理32_900记录发出的查询前缀、为用户显现的相关结果。在一个实施方案中,过程32_900记录用户是否参与替换搜索选项。
[1466] 在一个实施方案中,如果用户与呈现给用户的显现结果之一发生交互,则会出现参与事件。例如,在一个实施方案中,用户可以点击针对显现结果之一所呈现的链接。又如,用户可以点击该链接,并花费比预定时间更长的时间来与该链接所引用的对象(例如,网站)进行交互(例如,与所引用的对象进行交互超过60秒)。在该示例中,用户可以接收针对当前美国总统的查询搜索的结果,并且点击引用了描述总统最新演讲的网页的链接。如果用户与网站交互超过预定时间(例如,60-90秒),则过程32_900将确定用户参与了由该链接表示的结果。因此,这将是此结果的参与事件。在一个实施方案中,悬停在链接上方可以被记录为参与。在另一个实施方案中,用户也可以观察所显示的结果一段时间。在本实施方案中,根据结果的类型以及该时间段之后的动作,原本记录为弃用的动作可以被记录为参与,反之亦然。例如,在一个实施方案中,如果用户查询“中国人口”并得到显示结果,并且用户在删除查询之前停顿了10秒钟,则该事件可以被记录为参与而不是弃用事件。
[1467] 在另一个实施方案中,用户可以忽略或弃用为用户显现的结果。例如,在一个实施方案中,如果用户点击针对显现结果之一而呈现的链接,但是在预定时间(例如,小于60-90秒)内未浏览该网站,则过程32_900确定这是对结果的弃用事件。在一个实施方案中,存在其他类型的弃用事件:继续键入更多的字符(扩展查询前缀);点选到另一窗口或应用程序;删除查询;退格一个或多个字符或以其他方式编辑查询;参与除了作为结果而呈现的内容以外的任何事情都可以被记录为弃用该结果。在一个实施方案中,用户的动作随用户花费的时间间隔一起被记录,这可以将对弃用的解读改变为对参与的解读,或反之亦然。
[1468] 在一个实施方案中,用户的搜索会话可以在预定时间之后结束,无论是在用户会话时长期间、在不活动时间还是在某个其他度量下均如此。响应于搜索会话结束,过程32_900将针对该搜索会话而收集的事件组装成发送到搜索网络的反馈包。收集反馈进一步描述于下文的图32_10中。
[1469] 在框32_904处,过程32_900处理包括在反馈包中的所接收的反馈。在一个实施方案中,过程32_900将所接收的反馈包转换成用于反馈搜索索引的条目。在一个实施方案中,反馈搜索索引是将用户反馈结合到评分结果中的搜索索引。例如,在一个实施方案中,用于(查询,结果)对的每个参与事件会促进相应查询的结果。在该示例中,如果用户参与特定查询的结果,则未来的用户也可能针对同一查询的该结果进行参与。因此,在一个实施方案中,对于具有相同查询的未来用户而言,该查询的结果将被返回并且排名更高。相反,如果用户弃用特定查询的结果,则未来的用户也可能针对同一查询而放弃该相同的结果。因此,在一个实施方案中,对于具有相同查询的未来用户而言,该查询的结果可被返回并且排名更低。
[1470] 在一个实施方案中,过程32_900将所接收的反馈包转换成反馈搜索索引条目,该条目具有<查询,结果,显现计数,参与计数,弃用计数>的格式,其中查询是输入查询和上下文信息查询,诸如设备类型、应用程序、区域设置和地理位置;结果是显现结果;显现计数是针对该查询显现结果的次数;参与计数是该查询的结果受到参与的次数;弃用计数是结果被弃用的次数。在一个实施方案中,过程32_900在反馈搜索索引中更新该反馈索引条目。在另一实施方案中,每个反馈包还包括唯一的源标识符,其可以包括用户标识符、设备标识符或会话标识符,且具有或不具有模糊身份以保护隐私的方法,其中更新反馈索引条目附加到引用索引表中的索引,唯一源标识符是反馈引用的来源。然后可以查询反馈索引,以提供针对个人用户或用户组而个人化或定制的结果和权重。处理所接收的反馈进一步描述于下文的图32_11中。
[1471] 过程32_900在框32_906处更新结果高速缓存。在一个实施方案中,结果高速缓存是将查询映射到结果的高速缓存,其可以用于针对用户查询快速返回结果。在一个实施方案中,结果高速缓存存储在紧邻用户设备的边缘服务器(例如,在地理上比其他边缘服务器更靠近客户端的边缘服务器)中,该边缘服务器可以在执行查询搜索之前服务于一个或多个结果。在一个实施方案中,过程32_900通过使用更新的反馈搜索索引运行一组查询来更新结果,从而确定用于这些查询的一组结果。更新的结果被发送到存储在边缘服务器上的每个结果高速缓存。更新结果高速缓存进一步描述于下文的图32_12中。
[1472] 图32_10是在用户搜索会话期间收集用户反馈的过程的一个实施方案的流程图32_1000。在一个实施方案中,过程32_100由收集反馈模块(诸如上文图32_8所述的收集反馈模块32_838)执行,以在用户搜索会话期间收集用户反馈。在图32_10中,过程32_1000始于检测触发反馈集合的事件。在一个实施方案中,初始事件可以是另一类型事件的查询前缀字符串的输入的开始。在一个实施方案中,如果用户在一段时间(例如,15分钟)内参与了先前的搜索会话,则该查询前缀字符串的输入的开始标记了新用户搜索会话的开始并开始记录用户反馈。如上所述,搜索会话是由用户开始输入查询前缀而发起的一组事件,其在粗略的时间段(例如,15分钟)内跟踪用户的动作。
[1473] 在框32_1004处,过程32_1000记录了与用户搜索会话相关联的事件。在一个实施方案中,过程32_1000记录了显现、参与和弃用事件。在一个实施方案中,显现事件是响应于用户输入查询前缀或完整查询而为用户显现的相关结果。在一个实施方案中,过程32_1000通过记录针对每个查询前缀或完整查询所呈现的结果来记录显现事件。此外,过程32_1000在框32_1004处记录参与事件。在一个实施方案中,参与事件是,如果用户与呈现给用户的显现结果之一发生交互则会出现的事件。例如,在一个实施方案中,用户可以点击针对显现结果之一所呈现的链接。又如,用户可以点击该链接,并花费比预定时间更长的时间来与该链接所引用的对象(例如,网站)进行交互(例如,与所引用的对象进行交互超过60秒)。在该示例中,用户可以接收针对当前美国总统的查询搜索的结果,并且点击引用了描述总统最新演讲的网页的链接。如果用户与网站交互超过预定时间(例如,60-90秒),则过程32_1000将确定用户参与了由该链接表示的结果。因此,这将是此结果的参与事件。
[1474] 在另一实施方案中,过程32_1000可以记录弃用事件,其中弃用事件是用户可以忽略或弃用为用户显现的结果的事件。例如,在一个实施方案中,如果用户点击针对显现结果之一而呈现的链接,但是在预定时间(例如,小于60-90秒)内未浏览该网站,则过程32_900确定这是对结果的弃用事件。在一个实施方案中,用户通过关闭呈现网站的标签或窗口、点选另一应用程序,或指示用户未与所呈现的网站进行交互的某些其他动作来导航离开。
[1475] 在框32_1006处,过程32_1000从用户搜索会话的所记录事件创建反馈包。在一个实施方案中,用户搜索会话基于下述预定时间而结束:自初始搜索会话事件(例如,15分钟)起的预定时间,或者可以是用户相对于用户搜索会话不活动的预定时间。例如,在一个实施方案中,如果用户在预定时间量(例如,10分钟)内没有活动或者没有与结果或由结果之一所引用的其他类型的对象进行交互,则用户搜索会话将结束。在一个实施方案中,响应于用户搜索会话的结束,过程32_1000将收集所记录的事件,并从该用户搜索会话创建反馈包。在一个实施方案中,反馈包包括为用户呈现的一组结果、与这些结果相关联的查询、用户参与查询结果的参与事件,以及用户弃用为用户所显现的结果的弃用事件,其中每个弃用事件与查询相关联。过程32_1000在框32_1008处将该反馈包发送到搜索网络。在一个实施方案中,客户端将反馈包发送到边缘服务器,该边缘服务器将反馈包转发到核心服务器进行处理。
[1476] 图32_11是将用户反馈并入反馈索引的过程32_1100的一个实施方案的流程图。在一个实施方案中,过程反馈模块(诸如上文图32_8中所述的过程反馈模块32_840)执行过程反馈。在图32_11中,过程32_1100始于在框32_1102处接收反馈包。在一个实施方案中,反馈包是如上文在图32_10中所述的用户搜索会话的反馈包。在框32_1104处,过程32_1100将反馈包转换成一个或多个反馈索引条目。在一个实施方案中,反馈索引条目是针对特定查询结果对所记录的事件数量。例如在一个实施方案中,反馈索引条目包括<查询,结果,显现计数,参与计数,弃用计数>,其中查询是输入查询和上下文信息查询,诸如设备类型、应用程序、区域设置和地理位置;结果是显现结果;显现计数是针对该查询显现结果的次数;参与计数是该查询的结果受到参与的次数;弃用计数是结果被弃用的次数。
[1477] 在框32_1106处,过程32_1100将反馈索引条目插入到反馈索引中。在一个实施方案中,反馈索引是将用户反馈结合到搜索索引中的搜索索引。在一个实施方案中,反馈索引是引用指数,其中参与事件是对结果的肯定引用,而弃用事件是针对该结果的否定引用。在一个实施方案中,引用搜索索引在2009年12月1日提交的标题为“Ranking and Selecting Entities Based on Calculated Reputation or Influence Scores”的美国专利申请No.12/628,791中有所描述,并且被并入本部分。在一个实施方案中,如果反馈索引中存在具有相同查询结果对的条目,则处理32_1100会用事件计数的数量来更新该条目。
[1478] 如上所述,并入有反馈索引的用户反馈可以用于更新结果高速缓存。图32_12是使用用户反馈更新结果高速缓存的过程32_1200的一个实施方案的流程图。在一个实施方案中,更新结果模块(诸如上文图32_8中所述的更新结果模块32_842)执行过程32_1200来更新结果高速缓存。在图32_12中,过程32_1200始于接收包括多个查询的结果集RS。在一个实施方案中,该结果集是一组查询和结果之间的映射。该结果集可以用于结果高速缓存,以快速返回查询前缀的相关结果,如上文的图32_8中所述。在一个实施方案中,该结果集由不包括用户反馈的搜索索引生成。在另一个实施方案中,该结果集由并入了先前用户反馈的先前反馈索引生成。
[1479] 在框32_1204处,过程32_1200相对于当前反馈索引运行来自结果集RS的每个查询。过程32_1200使用来自框32_1204处的运行查询的结果,来在框32_1206处创建更新结果集RS'。在一个实施方案中,结果集RS'是反馈加权结果集,其中主要具有参与事件的查询的结果在反馈索引中得到更高加权,而主要具有弃用事件的查询的结果在反馈索引中得到更低加权。例如在一个实施方案中,如果结果集RS中的查询Q具有排名为R1、R2和R3的结果,并且在更新的反馈索引中具有Q的这些结果,其中R1具有20个参与事件和50个弃用事件,R2具有32_100个参与事件和2个弃用事件,R3具有50个参与事件和10个弃用事件,则针对更新的反馈索引运行查询Q可以返回经排名的结果R2,R3和R1。因此,在一个实施方案中,使用反馈索引将改变更新的结果集RS'中的结果排名。在另一个实施方案中,相关结果筛选器可以具有这样的规则:对于要呈现的结果,结果可需要至少x个参与事件或不超过y个弃用事件。因此,在本实施方案中,使用反馈索引可以改变呈现哪些结果与不呈现哪些结果的情况。过程32_1200在框32_1208处将更新的结果集RS'发送到每个边缘服务器。在一个实施方案中,过程32_1200将更新的结果集RS'从核心服务器32_816发送到边缘服务器32_804,如上文的图
32_8中所述。
[1480] 图32_13是使用表征查询完成项来执行多域搜索的联合器32_824的一个实施方案的框图。在一个实施方案中,联合器包括完成项模块32_1304、混合器/排名器32_1306、多个搜索域32_1308A-F和词汇服务32_1314。在一个实施方案中,完成项模块32_1304确定用于每个查询前缀的查询完成项,如图32_6中所述。所确定的查询完成项将被转发到混合器/排名器32_1306,其使用查询完成项来执行针对使用搜索域32_1308A-F的相关结果的多域搜索,如上文在图32_7中所述。在一个实施方案中,搜索域32_1308A-F是如上图32_3中所述的搜索域。例如在一个实施方案中,地图搜索域32_1308A是包括地理地图有关信息的搜索域,如上文图32_3所述。地图搜索域32_1308A从地图数据源32_1310A查询信息。媒体搜索域32_1308B是与媒体相关的搜索域,如上文在图32_3中所述。媒体搜索域32_1308B从媒体数据源
32_1310B查询信息。维基搜索域32_1308C是在线百科全书搜索域,如上文在图32_3中所述。
维基搜索域32_1308C从维基数据源32_1310C查询信息。站点搜索域32_1308D是网站的搜索域,如上文在图32_3中所述。站点搜索域32_1308D从站点数据源32_1310D查询信息。其他搜索域是可以由混合器/排名器32_1306所访问的一组其他搜索域,如上文在图32_3中所述。
其他搜索域32_1308E从其他数据源32_1310E查询信息。在一个实施方案中,反馈搜索域32_
1308F是基于在各种设备上运行的浏览器所收集的查询反馈的搜索索引,如上文在图32_3中所述。反馈搜索域32_1308从反馈数据源32_1310F(例如,反馈搜索索引)查询信息。
[1481] 此外,混合器/排名器32_1306接收来自多个搜索域32_1308A-F的结果并对这些结果进行排名。在一个实施方案中,混合器/排名器32_1306使用词汇服务32_1302来表征每个查询完成项,其中该词汇服务确定了正在执行何种类型的搜索。例如在一个实施方案中,词汇服务32_1302可以确定该搜索是否针对某人、地点、事物等。在一个实施方案中,词汇服务32_1302使用将单词或短语映射到某一类别的知识库32_1312。在该实施方案中,对查询完成进行表征这一做法被用于对由搜索域32_1308A-F所返回的结果进行加权。例如,在一个实施方案中,如果查询完成项被表征为是对于地点的搜索,则来自地图搜索域的结果以及关于该地点的维基条目可获得更高排名。又如,如果查询完成项被指示为关于艺术家,则媒体搜索域结果可获得更高排名。对结果进行加权进一步描述于下文的图32_14中。
[1482] 图32_14是对查询完成项使用词汇服务来确定相关结果的过程32_1400的一个实施方案的流程图。在一个实施方案中,混合器/排名器32_1306执行处理32_1400,以使用用于查询完成项的词汇服务来确定相关结果,如上文在图32_13中所述。在图32_14中,过程32_1400始于在框32_1402处接收查询完成项。在一个实施方案中,所接收的查询完成项是由过程32_600响应于接收到查询前缀而确定的完成项。在一个实施方案中,过程32_1400在一个并行流中执行框32_1404和框32_1408,并在另一个并行流中执行框32_1406和框32_
1410。在框32_1404处,过程32_1400将查询完成项发送到不同的搜索域,以确定可能的相关结果。在一个实施方案中,每个搜索域使用所接收的查询完成项来确定该搜索域的相关结果。在一个实施方案中,多个搜索域并行处理每个查询完成项。过程32_1400将查询完成项发送到词汇服务,以表征每个完成项。在一个实施方案中,词汇服务通过确定查询完成项是否为关于人、地点、事物或另一类型信息的查询,来表征每个查询完成项。在下面的图32_15中进一步描述了对查询完成项的表征。过程32_1400在框32_1408处从多个搜索域接收搜索结果。在一个实施方案中,每个搜索结果包括表征来自相应搜索域的结果的一组得分。
[1483] 在框32_1410处,处理32_1400接收到表征查询完成项的词汇搜索结果。在一个实施方案中,查询完成项的表征指示了每个查询完成项正在搜索的信息类型。例如,在一个实施方案中,查询完成项是关于人、地点、事物或其他类型信息的查询。在一个实施方案中,两个并行流在框32_1412处会聚。过程32_1400使用查询完成项表征来对方框32_1412处用于该查询完成项的相关结果进行排名和筛选。在一个实施方案中,如果查询完成项被指示为对人的搜索,则来自维基域的关于搜索所得人的结果可能获得更高排名。例如,在一个实施方案中,如果查询完成项被表征为搜索电影,则来自该电影评论或本地放映时间的结果可能获得更高排名。又如,如果查询完成项被指示为一个地点,则来自地图搜索域的结果以及关于该地点的维基条目可获得更高排名。再如,如果查询完成项被指示为关于艺术家,则媒体搜索域结果可获得更高排名。使用查询完成项进行排名也在上文的图32_7中有所描述。在另一个实施方案中,反馈索引可以是用于对相关结果进行排名和/或筛选的信号域。在该实施方案中,过程32_1400使用参与事件的数量将结果排名得更高,并且使用弃用事件的数量将结果排名得更低。在一个实施方案中,过程32_1400另外对结果进行排名和筛选,如上文在图32_7的框32_708处所述。过程32_1400在框32_1414处返回经排名、筛选的结果。
[1484] 如上所述,过程32_1400使用词汇服务来表征查询完成项。图32_15是用于表征查询完成项的过程32_1500的一个实施方案的流程图。在图32_15中,过程32_1500在框32_1502接收查询完成项。在框32_1504处,过程32_1500将每个查询完成项符号化。在一个实施方案中,对完成项进行符号化是将查询完成项分离成单独的符号(例如,单词、短语、复数/单数变型形式)。对于符号化的查询完成项,过程32_1500在知识库中确定该符号化完成项的匹配项。在一个实施方案中,知识库是映射到某一类别的单词或短语的数据库。例如,在一个实施方案中,知识库可以包括如下条目,诸如{菲尔塔→地点},{Michael Jackson(迈克尔·杰克逊)→艺术家},{Barack Obama(巴拉克·奥巴)→总统},{黑寡妇→蜘蛛}等。在一个实施方案中,知识库是使用本体来构建的。在一个实施方案中,过程32_1500使用术语频率匹配算法在知识库中确定查询完成项的匹配项。例如,在一个实施方案中,如果查询完成项是“谁是Michael Jackson?”,则过程32_1500可以就术语“Michael”、“Jackson”或“Michael·Jackson”进行匹配。在该示例中,过程32_1500将尝试找到知识数据库中最长的匹配项。如果知识库具有用于“Michael”、“Jackson”和“Michael·Jackson”的匹配项,那么用于“Michael·Jackson”的匹配项将得到使用。如果存在用于一个或多个查询完成项的匹配项,则过程32_1500会在框32_1508处返回匹配项(一个或多个)。例如,在一个实施方案中,针对查询完成项“谁是Michael Jackson?”,过程32_150可以返回“人”、“艺术家”或另一种类型的表征。如果不存在匹配项,则过程32_1500的返回内容不带任何表征。
[1485] 图32_16是完成项模块32_1600的一个实施方案的框图,该完成项模块用于确定来自多个搜索域的查询完成项。在一个实施方案中,完成项模块32_1600包括接收查询前缀模块32_1602、发送前缀模块32_1604、接收完成项模块32_1606、排名和筛选器完成项模块32_1608,以及发送完成项模块32_1610。在一个实施方案中,接收查询前缀模块32_1602接收查询前缀,如上文在图32_6中的框32_602处所述。发送前缀模块32_1604将查询前缀发送到不同的搜索域,如上文在图32_6中的框32_604处所述。接收完成项模块32_1606接收查询完成项,如上文在图32_6中的框32_606处所述。排名和筛选器完成项模块32_1608对所接收的查询完成项进行排名和筛选,如上文在图32_6中的框32_608处所述。发送完成项模块32_1610将查询完成项发送到相关的结果模块,如上文在图32_6中的框32_610处所述。
[1486] 图32_17是从确定的查询完成项来在多个搜索域中确定相关结果的结果模块32_1700的一个实施方案的框图。在一个实施方案中,结果模块32_1700包括接收查询完成项模块32_1702、发送完成项模块32_1704、接收查询结果模块32_1706、排名和筛选器模块32_
1708,以及返回结果模块32_1710。在一个实施方案中,接收查询完成项模块32_1702接收查询完成项,如上文在图32_7中的框32_702处所述。发送完成项模块32_1704将完成项发送到多个搜索域,如上文在图32_7中的框32_704处所述。接收查询结果模块32_1706接收来自多个搜索域的查询结果,如上文在图32_7中的框32_706处所述。排名和筛选器模块32_1708对查询结果进行排名和筛选,如上文在图32_7中的框32_708处所述。返回结果模块32_1710返回查询结果,如上文在图32_7中的框32_710处所述。
[1487] 图32_18是收集反馈模块32_838的一个实施方案的框图,该模块用于在用户搜索会话期间收集用户反馈。在一个实施方案中,收集反馈模块32_838包括检测显现事件模块32_1802、记录事件模块32_1804、创建反馈包模块32_1806,以及发送反馈模块32_1808。在一个实施方案中,检测初始事件模块32_1802检测初始事件,以开始用户搜索会话,如上文在图32_10中的框32_1002处所述。记录事件模块32_1804记录用户搜索会话期间的事件,如上文在图32_10中的框32_1004处所述。创建反馈包模块32_1806创建反馈包,如上文在图
32_10中的框32_1006处所述。发送反馈模块32_1808发送反馈包,如上文在图32_10中的框
32_1008处所述。
[1488] 图32_19是过程反馈模块32_840的一个实施方案的框图,该模块用于将用户反馈并入反馈索引。在一个实施方案中,过程反馈模块32_840包括接收反馈包模块32_1902、转换反馈包模块32_1904,和插入反馈条目模块32_1906。在一个实施方案中,接收反馈包模块32_1902接收反馈模块,如图32_11中的框32_1102处所述。转换反馈包模块32_1904转换反馈包,如图32_11中的框32_1104处所述。插入反馈条目模块32_1906插入反馈索引条目,如图32_11中的框32_1106处所述。
[1489] 图32_20是更新查询结果模块32_842的一个实施方案的框图,该模块用于使用用户反馈来更新结果高速缓存。在一个实施方案中,更新结果高速缓存32_842包括接收结果集模块32_2002、运行查询模块32_2004、更新结果集模块32_2006,以及发送更新结果模块32_2008。在一个实施方案中,接收结果集模块32_2002接收结果集,如图32_12中的框32_
1202处所述。运行查询模块32_2004使用反馈索引来运行查询,如图32_12中的框32_1204处所述。更新结果集模块32_2006更新结果集,如图32_12中的框32_1206处所述。发送更新结果模块32_2008发送更新的结果集,如图32_12中的框32_1202处所述。
[1490] 图32_21是相关结果模块32_2100的一个实施方案的框图,该相关结果模块使用用于查询完成项的词汇服务来确定相关结果。在一个实施方案中,相关结果模块32_2100包括接收完成项模块32_2102、发送完成项模块32_2104、词汇完成项模块32_2106、接收结果模块32_2108、接收词汇结果模块32_2110、排名结果模块32_2112,以及返回结果模块32_2114。在一个实施方案中,接收完成项模块32_2102接收查询完成项,如图32_14中的框32_
1402处所述。发送完成项模块32_2104将查询完成项发送到接收该查询完成项的多个搜索域,如图32_14中的框32_1404处所述。词汇完成项模块32_2106将查询完成项发送到词汇服务,如图32_14中的框32_1406处所述。接收结果模块32_2108从多个搜索域接收查询结果,如图32_14中的框32_1408处所述。接收词汇结果模块32_2110接收词汇服务表征,如图32_
14中的框32_1410处所述。排名结果模块32_2112将搜索域结果排名,如图32_14中的框32_
1412处所述。返回结果模块32_2114返回排名结果,如图32_14中的框32_1414处所述。
[1491] 图32_22是用以表征查询完成项的表征查询模块32_2200的一个实施方案的框图。在一个实施方案中,表征查询结果模块32_2200包括接收完成项模块32_2202、符号化完成项模块32_2204、查找匹配模块32_2206,以及返回表征模块32_2208。在一个实施方案中,接收完成项模块32_2202接收完成项,如上文在图32_15中的框32_1502处所述。符号化完成项模块32_2204对完成项进行符号化,如上文在图32_15中的框32_1504处所述。查找匹配模块
32_2206在知识库中查找用于符号化完成项的匹配项,如上文在图32_15中的框32_1506处所述。返回表征模块32_2208返回表征,如上文在图32_15中的框32_1508处所述。
[1492] 在一些实施方案中,设备100(上文参考图1A所述)用于实现本节中描述的技术。
[1493] 用于搜索技术的示例性设备、方法和计算机可读介质
[1494] 在一个方面,本文描述了执行多域查询搜索的方法和设备装置。在示例性实施方案中,设备从用户的客户端接收查询前缀。该设备还确定了跨多个独立搜索域的多个搜索完成项。另外,该设备基于针对由对应搜索域确定的多个搜索完成项中的每一个所计算的得分,来对多个搜索完成项进行排名,其中所述多个搜索完成项中的至少一个用于在不具有来自用户的指示的情况下,响应于接收到查询前缀生成多个搜索结果。
[1495] 在一些实施方案中,提供了一种具有可执行指令的非暂态机器可读介质,这些可执行指令使得一个或多个处理单元执行一种使用多个独立搜索域上的查询前缀来生成多个排名完成项的方法,该方法包括:从用户的客户端接收查询前缀;确定跨多个独立搜索域的多个搜索完成项;以及基于针对由对应搜索域确定的多个搜索完成项中的每一个所计算的得分,来对多个搜索完成项进行排名,其中所述多个搜索完成项中的至少一个用于在不具有来自用户的指示的情况下,响应于接收到查询前缀生成多个搜索结果。
[1496] 在一些实施方案中,该方法包括:对所述多个搜索完成项进行筛选。在一些实施方案中,所述多个独立搜索域中的每一个选自地图搜索域、媒体商店搜索域、在线百科全书搜索域和站点搜索域。在一些实施方案中,所述多个搜索完成项中的一个的得分是该搜索完成项的原始得分,其为已经接收到该搜索完成项的次数的频率。在一些实施方案中,所述多个搜索完成项中的一个的得分是该搜索完成项的本地得分,其基于该搜索完成项原始得分以及使用该搜索完成项作为前缀的其他许多可能的搜索完成项。在一些实施方案中,所述多个搜索完成项中的一个的得分是该搜索完成项的全局得分,其基于该搜索完成项原始得分以及该搜索域中的其他许多可能的搜索完成项。在一些实施方案中,查询前缀包括输入字符串和上下文,并且输入字符串由用户输入。在一些实施方案中,上下文包括位置、设备类型、应用程序标识符和区域设置。
[1497] 在一些实施方案中,提供了一种使用多个独立搜索域上的查询前缀来生成多个排名完成项的方法,该方法包括:从用户的客户端接收查询前缀;确定跨多个独立搜索域的多个搜索完成项;以及基于针对由对应搜索域确定的多个搜索完成项中的每一个所计算的得分,来对多个搜索完成项进行排名,其中所述多个搜索完成项中的至少一个用于在不具有来自用户的指示的情况下,响应于接收到查询前缀生成多个搜索结果。在一些实施方案中,该方法包括:对所述多个搜索完成项进行筛选。在一些实施方案中,所述多个独立搜索域中的每一个选自地图搜索域、媒体商店搜索域、在线百科全书搜索域和站点搜索域。在一些实施方案中,所述多个搜索完成项中的一个的得分是该搜索完成项的原始得分,其为已经接收到该搜索完成项的次数的频率。在一些实施方案中,所述多个搜索完成项中的一个的得分是该搜索完成项的本地得分,其基于该搜索完成项原始得分以及使用该搜索完成项作为前缀的其他许多可能的搜索完成项。在一些实施方案中,所述多个搜索完成项中的一个的得分是该搜索完成项的全局得分,其基于该搜索完成项原始得分以及该搜索域中的其他许多可能的搜索完成项。在一些实施方案中,查询前缀包括输入字符串和上下文,并且输入字符串由用户输入。在一些实施方案中,上下文包括位置、设备类型、应用程序标识符和区域设置。
[1498] 在一些实施方案中,提供了一种使用多个独立搜索域上的查询前缀来生成多个排名完成项的设备,该设备包括:处理器;通过总线耦接到处理器的存储器;以及通过处理器从存储器执行的进程,该进程使得处理器从用户的客户端接收查询前缀,确定跨多个独立搜索域的多个搜索完成项,以及基于针对由对应搜索域确定的多个搜索完成项中的每一个所计算的得分,来对多个搜索完成项进行排名,其中所述多个搜索完成项中的至少一个用于在不具有来自用户的指示的情况下,响应于接收到查询前缀生成多个搜索结果。在一些实施方案中,该进程还使得处理器对所述多个搜索完成项进行筛选。在一些实施方案中,所述多个独立搜索域中的每一个选自地图搜索域、媒体商店搜索域、在线百科全书搜索域和站点搜索域。在一些实施方案中,所述多个搜索完成项中的一个的得分是该搜索完成项的原始得分,其为已经接收到该搜索完成项的次数的频率。
[1499] 在另一方面,提供一种使用来自用户搜索会话的反馈来生成结果高速缓存的方法和装置。在该实施方案中,设备从客户端接收反馈包,其中该反馈包用响应于用户输入的查询前缀而呈现给用户的搜索会话中的多个查询结果来表征用户交互。该设备还通过使用搜索反馈索引运行所述多个查询以得到多个结果,来针对所述多个查询生成多个结果。另外,该设备从所述多个结果创建结果高速缓存,其中结果高速缓存将所述多个结果映射到所述多个查询,并且该结果高速缓存用于向客户端提供查询结果。
[1500] 在一些实施方案中,提供了一种具有可执行指令的非暂态机器可读介质,这些可执行指令使得一个或多个处理单元执行一种使用来自搜索会话的反馈来生成结果高速缓存的方法,该方法包括:从客户端接收反馈包,其中该反馈包用响应于用户输入的查询前缀而呈现给用户的搜索会话中的多个查询结果来表征用户交互;使用反馈包在搜索反馈索引中添加条目;通过使用搜索反馈索引运行所述多个查询以得到多个结果,来针对所述多个查询生成多个结果;以及从所述多个结果创建结果高速缓存,其中结果高速缓存将所述多个结果映射到所述多个查询,并且该结果高速缓存用于向客户端提供查询结果。在一些实施方案中,反馈包包括查询前缀、所述多个查询结果以及在用户交互期间记录的多个事件。在一些实施方案中,所述多个事件包括显现事件,其为向用户显示来自查询前缀的结果的事件。在一些实施方案中,所述多个事件包括针对查询结果中的一个的参与事件,其为指示用户已经参与该查询结果的事件。在一些实施方案中,针对该查询结果的参与事件是针对查询结果链接的点击。在一些实施方案中,所述多个事件包括针对查询结果中的一个的弃用事件,其为指示用户放弃该查询结果的事件。在一些实施方案中,结果高速缓存是由客户端用于针对查询请求返回查询结果的高速缓存。在一些实施方案中,反馈索引条目包括查询前缀、用于查询前缀的结果,以及用于该结果的一组事件。
[1501] 在一些实施方案中,提供了一种使用来自搜索会话的反馈来生成结果高速缓存的方法,该方法包括:从客户端接收反馈包,其中该反馈包用响应于用户输入的查询前缀而呈现给用户的搜索会话中的多个查询结果来表征用户交互;使用反馈包在搜索反馈索引中添加条目;通过使用搜索反馈索引运行所述多个查询以得到多个结果,来针对所述多个查询生成多个结果;以及从所述多个结果创建结果高速缓存,其中结果高速缓存将所述多个结果映射到所述多个查询,并且该结果高速缓存用于向客户端提供查询结果。在一些实施方案中,反馈包包括查询前缀、所述多个查询结果以及在用户交互期间记录的多个事件。在一些实施方案中,所述多个事件包括渲染(render)事件,其为向用户显示来自查询前缀的结果的事件。在一些实施方案中,所述多个事件包括针对查询结果中的一个的参与事件,其为指示用户已经参与该查询结果的事件。在一些实施方案中,针对该查询结果的参与事件是针对查询结果链接的点击。在一些实施方案中,所述多个事件包括针对查询结果中的一个的弃用事件,其为指示用户放弃该查询结果的事件。在一些实施方案中,结果高速缓存是由客户端用于针对查询请求返回查询结果的高速缓存。在一些实施方案中,反馈索引条目包括查询前缀、用于查询前缀的结果,以及用于该结果的一组事件。
[1502] 在一些实施方案中,提供了一种使用来自搜索会话的反馈来生成结果高速缓存的设备,该设备包括:该设备包括:处理器;通过总线耦接到处理器的存储器;以及通过处理器从存储器执行的进程,该进程使得处理器使用反馈包在搜索反馈索引中添加条目,通过使用搜索反馈索引运行所述多个查询以得到多个结果,来针对所述多个查询生成多个结果,以及从所述多个结果创建结果高速缓存,其中结果高速缓存将所述多个结果映射到所述多个查询,并且该结果高速缓存用于向客户端提供查询结果。在一些实施方案中,反馈包包括查询前缀、所述多个查询结果以及在用户交互期间记录的多个事件。在一些实施方案中,所述多个事件包括渲染(render)事件,其为向用户显示来自查询前缀的结果的事件。在一些实施方案中,所述多个事件包括针对查询结果中的一个的参与事件,其为指示用户已经参与该查询结果的事件。
[1503] 在另一方面,提供了一种从多个独立搜索域上的查询来生成多个经排名的查询结果的方法和装置。在该实施方案中,设备接收查询并且使用该查询来确定跨多个独立搜索域的多个结果。该设备还表征该查询。此外,设备基于针对由相应搜索域和查询表征所确定的所述多个结果中的每个结果所计算的得分,来对所述多个结果进行排名,其中该查询表征指示了查询类型。
[1504] 在一些实施方案中,提供了一种具有可执行指令的非暂态机器可读介质,这些可执行指令使得一个或多个处理单元执行一种从多个独立搜索域上的查询来生成多个经排名的查询结果的方法,该方法包括:接收查询;使用该查询来确定跨多个独立搜索域的多个结果;表征该查询;基于针对由相应搜索域和查询表征所确定的所述多个结果中的每个结果所计算的得分,来对所述多个查询结果进行排名,其中该查询表征指示了查询类型。在一些实施方案中,查询类型选自人、地点和事物。在一些实施方案中,该方法包括:对所述多个搜索结果进行筛选。在一些实施方案中,所述多个独立搜索域中的每一个选自地图搜索域、媒体商店搜索域、在线百科全书搜索域和站点搜索域。在一些实施方案中,表征查询包括:对查询进行符号化;并在知识库中找到该符号化查询的匹配项。在一些实施方案中,找到匹配项包括:在查询中的符号间找到最长匹配项。在一些实施方案中,对查询进行符号化包括:将查询分离成符号。根据一些实施方案,针对由字词和短语组成的组来选择该符号。在一些实施方案中,查询是在没有来自用户关于要使用哪个查询完成项的指示的情况下,从查询前缀完成的查询完成项。
[1505] 在一些实施方案中,提供了一种从多个独立搜索域上的查询来生成多个经排名的查询结果的方法,该方法包括:接收查询;使用该查询来确定跨多个独立搜索域的多个结果;表征该查询;基于针对由相应搜索域和查询表征所确定的所述多个结果中的每个结果所计算的得分,来对所述多个查询结果进行排名,其中该查询表征指示了查询类型。在一些实施方案中,查询类型选自人、地点和事物。在一些实施方案中,该方法包括:对所述多个搜索结果进行筛选。在一些实施方案中,所述多个独立搜索域中的每一个选自地图搜索域、媒体商店搜索域、在线百科全书搜索域和站点搜索域。在一些实施方案中,表征查询包括:对查询进行符号化;并在知识库中找到该符号化查询的匹配项。在一些实施方案中,找到匹配项包括:在查询中的符号间找到最长匹配项。在一些实施方案中,对查询进行符号化包括:将查询分离成符号。在一些实施方案中,查询是在没有来自用户关于要使用哪个查询完成项的指示的情况下,从查询前缀完成的查询完成项。
[1506] 在一些实施方案中,提供了一种从多个独立搜索域上的查询来生成多个经排名的查询结果的设备,该设备包括:处理器;通过总线耦接到处理器的存储器;以及通过处理器从存储器执行的进程,该进程使得处理器接收查询,使用该查询来确定跨多个独立搜索域的多个结果,表征该查询,基于针对由相应搜索域和查询表征所确定的所述多个结果中的每个结果所计算的得分,来对所述多个查询结果进行排名,其中该查询表征指示了查询类型。在一些实施方案中,查询类型选自人、地点和事物。在一些实施方案中,该进程还使得处理器对所述多个搜索结果进行筛选。
[1507] 第3部分:多域搜索技术
[1508] 本部分中的内容“多域搜索技术”根据一些实施方案来描述了在计算设备上进行多域搜索的操作,并且提供补充本文提供的公开内容的信息。例如,本部分的一些部分描述了利用计算机设备上的本地学习来改善从一个或多个域所获得的搜索结果,这补充了本文提供的公开内容,例如与图4A-4B、图5相关的那些公开内容,以及与识别并使用用户行为模式相关的公开内容。在一些实施方案中,本部分中的具体内容用于帮助改进在搜索界面中呈现的搜索结果(例如,如上文参考方法600,800,1000和1200所讨论的)。
[1509] 多域搜索技术简介
[1510] 描述了下述内容的实施方案:利用在用户的计算设备上本地学习的查询和结果特征,来改善从私人信息的本地数据库返回给用户的搜索结果,以及从一个或多个搜索域返回的结果。在一个实施方案中,一个或多个搜索域可以向计算设备通知与搜索查询相关的一个或多个特征,计算设备可以将本地学习应用于这一个或多个特征上。
[1511] 在一个实施方案中,计算设备可以使用从计算设备获得的信息,来学习与搜索查询相关的一个或多个特征。从计算设备获得的信息和由计算设备获得的信息可以在计算设备上本地使用,以训练机器学习算法来学习与搜索查询相关的特征,或与从搜索查询返回的结果相关的特征。该功能可被发送到远程搜索引擎,以便针对查询返回更为相关的个性化结果,而不侵犯设备用户的隐私。在一个实施方案中,该特征用于扩展查询。在一个实施方案中,该特征用于使查询发生偏向。该功能也可用于筛选从搜索查询返回的结果。从查询返回的结果可以是本地结果、远程搜索引擎结果,或两者兼而有之。
[1512] 在一个示例中,计算设备的用户可以订阅将关于体育比分的每日信息推送到计算设备的新闻或RSS供稿。该新闻或RSS供稿所知的关于订阅用户的唯一信息是该用户对体育比分感兴趣。用户可以使用计算设备上的本地查询界面从RSS供稿查询由计算设备接收的针对“足球比分”的信息。对于
[1513] 美国用户来说,足球是指美式橄榄球,例如,由达拉斯仔队所踢的橄榄球。对于欧洲或南美的用户来说,足球常常是指美国人所称的英式足球。因此,就查询词“足球”而言的“英式足球”与“美式足球”的区别,可以是与计算设备要训练的搜索查询相关的特征。如果计算设备的用户与足球比分的本地结果进行交互,则新闻或RSS供稿的本地预测器可以知道,当该设备的用户查询足球比分时,该用户意指英式足球比分。
[1514] 在一个实施方案中,远程搜索引擎可以学习特征“美式足球与英式足球”。但是,尽管远程搜索引擎可以学习到美式橄榄球和英式足球之间存在明显区别,但是远程搜索引擎并不知道特定用户对足球比分的查询是对美式橄榄球结果感兴趣还是对英式足球结果感兴趣。一旦远程搜索引擎学习到这一区别,在远程搜索服务下一次接收到关于足球比分的查询时,远程搜索引擎就可以返回美式橄榄球比分和英式足球比分,并且还向查询计算设备发送一个特征,来就该特征进行训练,使得计算设备可以学习到计算设备的特定用户是对美式橄榄球比分感兴趣还是对英式足球比分感兴趣。
[1515] 在一个实施方案中,在本地客户端利用计算设备私有信息学习到该特征之后,在计算设备的用户下一次查询用于足球比分的远程搜索服务时,计算设备可以与查询一起向远程搜索服务发送对特征的偏向。例如,该偏向可以指示这个特定用户是否对美式橄榄球感兴趣还是对英式足球感兴趣。
[1516] 在一个实施方案中,计算设备可以使用如下统计分析方法之一来学习该特征:线性回归、贝叶斯分类或朴素贝叶斯分类。
[1517] 一些实施方案包括环境中的一个或多个应用编程接口(AP1),其中调用程序代码与通过一个或多个接口而受调用的其他程序代码进行交互。各种功能调用、消息或其他类型的调用还可包括各种参数,这些调用可以经由调用程序和被调用代码之间的APl而传输。此外,API可以给调用程序代码提供使用在API中定义的、并在被调用程序代码中实现的数据类型或类别的能力。
[1518] 至少某些实施方案包括这样的环境:其中调用软件组件通过APL与被调用软件组件进行交互。用于在该环境中通过API进行操作的方法包括,经由APL传送一个或多个函数调用、消息、其他类型的调用或参数
[1519] 通过附图并且通过详细描述,其他特征和好处将显而易见。
[1520] 多域搜索技术的详细描述
[1521] 在以下对实施方案的详细描述中将引用附图,附图中类似的附图标记表示相似的元素,并且其中以示例方式示出了可实践的具体实施方案。这些实施方案被足够详细地描述以允许本领域的技术人员实践本发明,并且应当理解,可使用其他实施例,并可在不脱离本公开内容的范围的情况下进行逻辑修改、机械修改、电气修改、功能修改和其他修改。因此,下面的详细描述不应该被理解为限制性的意义,并且本发明的范围仅由所附权利要求书所限定。
[1522] 描述了下述内容的实施方案:使用计算设备上的本地可用信息来学习查询和结果特征,其改善用于计算设备用户的本地和远程搜索结果,而不向远程搜索引擎公开关于用户的私人信息。
[1523] 图33_1示出了如本领域中所公知的计算设备33_100上的本地搜索子系统33_130和远程搜索子系统33_135的框图。本地搜索子系统33_130可以包括彼此通信的本地搜索界面33_110和可搜索信息的本地数据库33_111。
[1524] 本地数据库33_111索引计算设备33_100上的本地信息,用于使用本地搜索界面33_110进行搜索。本地信息对于计算设备33_100是私有的,并且不与远程搜索子系统33_
135共享。本地信息可以包括关于计算设备33_100上的应用程序33_112和数据33_113的数据、元数据和其他信息。
[1525] 本地数据库33_111,应用程序33_112和数据33_113不能被远程搜索子系统33_135访问。输入到本地搜索界面33_110的查询,从本地查询所返回的本地结果,以及用户与从本地查询所返回的本地结果发生的交互,都不与远程搜索子系统33_135共享,也不能被其访问。
[1526] 本地搜索界面33_110可以经由通信接口33_1与本地数据库33_111进行通信。本地数据库可以经由通信接口33_3与应用程序33_112和数据33_113进行通信。
[1527] 远程搜索子系统33_135可以包括远程搜索界面33_120和远程查询服务33_121。远程查询服务33_121可经由网络服务33_122和网络33_140向远程搜索引擎33_150发送查询并自其返回结果。远程结果对于本地搜索子系统33_130不可用。
[1528] 远程搜索界面33_120可以经由接口2与远程查询服务33_121进行通信。远程查询服务33_121可以经由接口4与网络服务33_122进行通信。
[1529] 图33_2以框图的形式示出了本地搜索子系统33_130,该系统具有本地学习系统33_116,其可用于改善从本地搜索和远程搜索引擎33_150的搜索所返回的搜索结果,而不暴露私人信息。在一个实施方案中,可以重置本地学习系统33_116,使得学习被刷新。
[1530] 本地搜索子系统33_130可以包括关于计算设备33_100上的应用程序33_112和数据33_113的数据和元数据的本地搜索界面33_110和本地数据库33_111。本地数据库33_111可以包括关于数据源的本地信息,诸如客户端上存储的联系人数据库、存储在计算设备上文档标题或文档中的单词,与计算设备上的应用程序相关联的应用标题及数据和元数据,诸如电子邮件、即时消息、电子表格、演示文稿、数据库、音乐文件、图片、电影和计算设备本地的其他数据。在一个实施方案中,本地数据库33_111可以包括关于存储在用户的存储中的数据源的信息。应用程序33_112可以包括计算器程序、词典、即时消息程序、电子邮件应用程序、日历、电话、相机,文字处理器、电子表格应用程序、演示文稿应用程序、联系人管理应用程序、地图应用程序、音乐、视频或媒体播放器、本地和远程搜索应用程序,以及其他软件应用程序。
[1531] 可以使用本地搜索界面33_110生成查询,并且可以经由通信接口33_1从本地数据库33_111返回查询结果,并将该结果显示在本地搜索界面33_110中。本地搜索子系统33_130另外可以具有本地查询服务33_114、本地搜索和反馈历史33_115以及本地学习系统33_
116。本地查询服务33_114可以从本地搜索界面33_110接收查询。在一个实施方案中,本地搜索界面33_110还可以经由通信接口33_7将查询传递给远程查询服务器33_121,使得本地搜索界面33_110从本地数据库33_111和远程搜索引擎33_150接收到搜索结果。本地查询服务33_114可以去除冗余的空格,去除诸如“the”和“a”之类的高频低相关性查询词,并将查询打包成本地数据库33_111可用的形式。远程查询服务33_121可以针对远程搜索引擎33_
150执行类似功能。在一个实施方案中,本地搜索界面33_110可以经由通信接口33_7将查询传递到远程查询服务33_121,以获得来自远程搜索引擎33_150的查询结果。在一个实施方案中,远程查询服务33_121可经由通信接口33_8接收由本地学习系统33_116所学习的查询特征。该特征可以用于扩展查询和/或将查询特征偏向远程搜索引擎33_150。在一个实施方案中,远程查询服务33_121可以经由通信接口33_8将从远程搜索引擎33_150返回的查询特征传递到本地学习系统33_116,以对该特征进行训练。
[1532] 本地搜索和反馈历史33_115可以存储使用本地查询界面33_110发出的所有搜索查询的历史记录,包括经由通信接口33_7发送到远程查询服务33_121的查询。本地搜索和反馈历史33_115还可以存储与从查询所返回的本地和远程结果相关联的用户反馈。反馈可以包括对于如下内容的指示:用户是否例如通过点击结果而参与该结果;用户观看结果所花的时间;该结果是用户与之交互的第一个结果还是其他序数值;该结果是否是用户与之交互的唯一结果;以及是否用户未与结果进行交互,即弃用该结果。可将用户反馈编码,并与生成结果(针对该结果获得反馈)的查询一并存储。在一个实施方案中,本地搜索和反馈历史33_115可以存储对查询所返回的一个或多个结果的引用。存储在本地搜索和反馈历史33_115中的信息被认为是私人用户信息,并且不能被远程搜索子系统33_135使用或访问。
在一个实施方案中,可以刷新本地搜索和反馈历史33_115。在一个实施方案中,可以淘汰本地搜索和反馈历史33_115。可对淘汰时间进行分析,以使得比起未显示出稳定趋势的搜索和反馈历史而言,稳定的长期趋势被保持更长时间。
[1533] 本地学习系统33_116可以分析本地搜索和反馈历史33_115,以识别本地学习系统33_116可以训练的特征。一旦特征受到识别,本地学习系统33_116就可以生成本地预测器来训练该特征。在一个实施方案中,预测器是对一个或多个数据进行操作的软件组件的实例。在一个实施方案中,本地预测器可以使用统计分类方法进行训练,诸如回归、贝叶斯或朴素贝叶斯。在一个实施方案中,预测器可以特定于特定类别的结果。下文相对于图33_4的操作33_420更详细地对类别进行了讨论:在本地设备上就那些混合、排名和呈现结果。
[1534] 计算设备33_100还可以包括远程搜索子系统33_135,其包括远程搜索界面33_120和远程查询服务33_121。远程搜索界面33_120可以包括Web浏览器,诸如或 查询服务33_121可以先对查询执行中间处理,再
经由网络33_140将查询传递到网络服务33_122,继而传递到远程搜索引擎33_150。网络服务33_122通行证可以从远程搜索引擎33_150接收结果,用以在远程查询界面33_120上或在本地搜索界面33_110上显示。远程查询服务33_121可以经由通信接口33_4通信地耦接到网络服务33_122。
[1535] 网络33_140可以包括互联网、802.11有线或无线网络、蜂窝网络、局域网或这些网络的任何组合。
[1536] 接口33_1-33_8可以使用进程间通信、共享存储器、套接字或应用编程接口(API)来实现。下文参考图33_7更详细地描述了API。
[1537] 图33_3以框图形式示出了方法33_300,该方法利用本地搜索查询、本地搜索结果以及基于本地搜索结果的本地反馈和搜索历史33_115来在本地学习查询和结果特征。
[1538] 在操作33_305中,用户可以使用本地查询界面33_110来发出查询。
[1539] 在操作33_310中,本地查询可以存储在本地搜索历史和反馈历史33_115中。
[1540] 在操作33_315中,可以将本地结果从本地数据库33_111返回到本地搜索界面33_110,以供向用户显示。本地数据库33_111索引由一个或多个应用程序33_112生成或处理的数据和元数据33_112,诸如文档、图像、音乐、音频、视频、计算器结果、联系人、查询、文件名、文件元数据,以及由应用程序33_112生成或与数据33_113相关联的其他数据。在一个实施方案中,本地数据库可能不会将任何本地结果返回至用于一个或多个应用程序33_112的查询。例如,如果在操作33_305中将“ham”的查询输入到本地搜索界面33_110中,则本地数据库33_111可以从词典应用程序33_112、从包含字词“ham”的文档33_113、从具有字词“ham”的联系人(诸如“Cunningham”)返回结果,但不返回计算器应用程序33_112的结果,这是因为计算器应用程序没有与“ham”相关的数据或元数据33_113。然而,如果在操作33_305中在本地搜索界面33_110中输入对“Pi”的查询,则本地数据库33_111可以返回与计算器应用程序33_112相关的结果,诸如“3.141592654”、希腊符号“π”或利用到Pi值的公式,例如圆的圆长或面积公式,或者球体或圆柱体的体积公式。类似地,如果在操作33_305中在本地搜索界面33_110中输入了针对“Lake Tahoepictures(太浩湖图片)”的查询,则本地数据库
33_111可以返回太浩湖图片的结果,该图片可由相机应用程序33_112生成、从电子邮件应用程序33_112和/或包含由文字处理应用程序33_112所生成的太浩湖图片的文档33_113下载。在一个实施方案中,可以根据获取或生成本地结果的应用程序33_112将本地结果分类以供显示。例如,从电子邮件应用程序33_112下载的太浩湖图片可以被分类在一起以供显示,由相机应用程序33_112生成的太浩湖图片可以被分类在一起以供显示,并且被并入到由文字处理应用程序33_112所生成的一个或多个文档中的太浩湖图片可以被分类在一起以供显示。
[1541] 在操作33_320中,用户可以与所显示的本地结果中的一个或多个进行交互。与结果交互的情况或不与结果交互的情况,可以作为对本地结果的反馈而存储在本地搜索和反馈历史33_115中。
[1542] 在操作33_325中,本地学习系统33_116可以分析本地搜索和本地反馈历史33_115,以确定与查询相关的一个或多个特征。
[1543] 在操作33_330中,如果本地学习系统33_116已经识别了新特征,则在操作33_335中,可以为该特征生成新的本地预测器,并且本地学习系统33_116可以对所识别的特征进行训练。
[1544] 在操作33_340中,在下一次发布查询(特征与该查询相关)时,可以使用该特征来执行以下项中的一个或多个:扩展查询、使查询的术语具有偏向,或筛选从查询返回的结果。
[1545] 图33_4以框图形式示出了方法33_400,该方法利用从本地搜索查询和远程搜索查询返回的搜索结果以及本地搜索查询和远程搜索查询结果的本地反馈在本地学习查询特征。
[1546] 在操作33_405中,用户使用本地搜索界面33_110来发出查询。如上所述,本地搜索界面33_110可以分别经由本地查询服务33_114或远程查询服务33_121,而将查询传递给本地数据库33_111和远程搜索引擎33_150中的一个或两者。
[1547] 在操作33_410中,查询可以存储在本地搜索历史和反馈历史33_115中。
[1548] 如操作33_315和33_415所示,分别来自本地数据库33_111的本地结果和远程搜索引擎33_150的远程结果可以同时或异步地返回。在一个实施方案中,可以设置定时器33_417来确定何时显示直到定时器到时已经被接收到的结果。在一个实施方案中,在定时器到时之后可以接收附加的结果。时间值可以本地配置在计算设备33_100上和/或远程搜索引擎33_150上,使得本地和远程搜索结果在不同时间得到显示。
[1549] 在操作33_420中,可以对本地搜索结果和远程结果进行混合和排名,然后在本地搜索界面33_110上呈现给用户。在一个实施方案中,如果本地学习系统33_116确定计算器结果高度相关,则它被排到顶部。如果用户从计算器应用程序中发出查询,并且该查询“看起来”像运算或单位转换,则计算器结果可高度相关。在一个实施方案中,与查询相匹配的本地结果33_315的排名可以高于远程搜索引擎结果33_415。在一个实施方案中,可以利用先前学习的特征对结果进行排名和/或筛选。在一个实施方案中,本地结果33_315可按多种类别呈现,诸如电子邮件、联系人、iTunes、电影、推文、文本消息、文档、图像、电子表格等,并在每个类别内排序。例如,本地结果可以在多种类别中呈现,并且按照首先在每个类别中显示最近创建、修改、访问或查看的本地结果33_315的方式排序。在另一个实施方案中,可以按上下文对类别进行排序。例如,如果用户从他的音乐播放器应用程序33_112内发出本地查询,则与音乐播放器应用程序33_112相关的本地数据库33_111所返回的结果可被分类与显示在其他本地结果之前。在另一个实施方案中,类别可以按照用户与某一类别的结果发生交互的频率进行排序。例如,如果用户很少与电子邮件结果进行交互,则电子邮件结果可以分类并显示得比其他本地结果低。在一个实施方案中,本地类别的显示次序是固定的。由于本地结果类别很少改变,这可以方便用户进行识别。在另一个实施方案中,可以根据相关性排名次序来显示类别,并且可以通过相关性排名次序来显示每个类别内的结果。
[1550] 在一个实施方案中,从远程搜索引擎返回的结果33_415可以包括基于以下项中的至少一个的得分:查询词是否与结果标题相等、查询词是否涵盖在结果标题内、查询词是否涵盖在结果正文内,或者基于一个或多个查询词的术语频率与文档频率比对关系的得分。此外,远程搜索引擎搜索结果33_415可以具有指示已发出该查询的其他用户是否已参与该结果的查询依赖性参与得分,这指示用户发现结果与该查询相关。结果还可以具有指示其他用户是否参与了该结果的查询独立性参与得分,这意味着其他用户发现不管使用何种查询来检索结果,结果都是相关的。结果也可能具有“顶级”得分,指示着有许多用户发现结果是相关的,该结果应该排在结果集的顶部。在一个实施方案中,本地学习系统33_116可以针对每个结果生成计算设备33_110用户很可能还会发现结果相关的概率。
[1551] 在操作33_425中,本地搜索界面可以接收来自用户的反馈,该反馈指示用户是已经参与了该结果(如果是,用户参与该结果的时间有多长),还是用户已经弃用了该结果。不管结果是本地数据库结果还是远程搜索引擎结果,都可以将用户反馈收集并存储在本地搜索和反馈历史33_115中。该查询也可以存储在本地搜索和反馈历史记录33_115中。在一个实施方案中,查询和反馈历史可以与计算设备33_100的特定用户相关联。在一个实施方案中,查询、反馈历史33_115以及与特定用户的关联,可被本地学习33_116用于为特定用户生成社交图。
[1552] 例如,假设特定用户Bob在操作33_405中向本地设备和远程搜索引擎发出对于“Bill”和“Steven”的一个或多个查询。可以从例如联系人应用程序33_112接收本地结果33_315,并且可以针对例如名为Bill和Steven的人的 资料返回远程结果33_415
以及其他远程结果33_415。在操作420中将结果混合、排名并呈现给用户Bob之后,可以在操作33_425中存储Bob与本地结果33_315、远程结果33_415或两者所发生的交互的搜索查询和反馈历史33_115。根据该存储的搜索历史和反馈33_115,社交图可以由本地学习系统33_
116从Bob与本地结果33_315、远程结果33_415或两者的交互而生成。
[1553] 在一个实施方案中,对远程结果的本地学习也可以用于筛选掉已向用户反复呈现但用户没有与其进行交互的结果。例如,在操作33_405中,用户可以向本地设备和远程搜索引擎33_150发出对于当前政治话题的查询。响应于查询而返回的远程结果33_415可包括来自“ (赫芬顿邮报)”和“ (福克斯新闻)”的结果。在操作33_425中,学习系统33_116可以从本地存储的反馈中获知用户很少或永远不会与 结果
发生交互的任何/所有结果。学习系统33_116可以确定要对其进行训练的新功能,即“新闻来源”,并当在操作33_420中在本地设备上混合、排名和显示结果时,学习从未来的远程结果中排除 结果。
[1554] 在操作33_430中,只有远程搜索引擎结果的反馈历史可以返回到远程搜索引擎33_150。可以将反馈历史匿名,使得在发送到远程搜索引擎33_150的信息中不会识别出特定的用户和/或机器。在一个实施方案中,与匿名反馈相关联的查询不被发送到远程搜索引擎,从而保护用户隐私。
[1555] 在操作33_435中,本地学习系统33_116可以分析本地搜索和反馈历史33_115,以确定是否可以从结果以及对结果的反馈识别出特征。本地学习系统33_116可以利用对于本地和远程查询的所有结果的反馈,来确定特征是否可以得到识别。
[1556] 如果在操作33_435中识别出特征,则在操作33_440中,本地学习系统33_116可以针对该特征生成本地预测器,并就该特征进行训练。
[1557] 在操作33_445中,本地学习系统33_116可以基于由本地学习系统33_116识别的特征,可选地向远程搜索引擎发送特征矢量。再次使用新闻源的示例,在操作33_405中,用户可以向本地设备和远程搜索引擎33_150查询当前的政治话题。响应于查询而返回的远程结果33_415可包括来自 和 的结果。远程搜索引擎33_150可以根据远程搜索引擎33_150的许多用户所做的交互,将 的结果作为等级最高的
结果而返回。然而,该特定用户的本地反馈记录可能指示该特定用户不与 结果
发生交互,这与远程搜索引擎33_150所得出的 结果排名等级最高的情况相反。
本地学习系统33_116可以识别作为操作33_435中的特征,即使远程搜索引擎将
结果排名为最高等级,该用户也不与 结果发生交互,并且本地学习系统可以在
操作33_440中对该特征执行本地学习,并且在操作33_445中可选地将该特征发送回远程搜索引擎33_150。
[1558] 图33_5以框图形式示出了方法33_500,该方法响应于计算设备33_100发送给远程搜索引擎33_150的查询,而本地学习由远程搜索引擎33_150传递到计算设备33_100的查询特征。上文已经描述了方法33_500的许多操作。
[1559] 在操作33_405中,用户可以使用本地搜索界面33_110来发出查询。如上所述,本地搜索界面33_110可以将查询传递给本地数据库33_111和远程搜索引擎33_150中的一个或两者。
[1560] 在操作33_310中,本地查询可以存储在本地搜索历史和反馈历史33_115中。
[1561] 在操作33_315中,计算设备33_100可以响应于该查询而接收从本地数据库33_111返回的本地结果。可以独立于远程搜索引擎33_150返回的搜索结果异步地接收本地结果。
[1562] 在操作33_515中,计算设备33_100可以响应于该查询而接收从远程搜索引擎33_150返回的结果。在操作33_515中,远程搜索引擎还可以返回与查询和结果相关的特征,以供本地学习系统33_116训练。
[1563] 在一个实施方案中,可以设置定时器33_417来确定何时显示直到定时器到时已经被接收到的结果。在一个实施方案中,在定时器到时之后可以接收附加的结果。定时器的时间值可以本地配置在计算设备33_100上和/或远程搜索引擎33_150上,使得本地和远程搜索结果在不同时间得到显示。
[1564] 在操作33_420中,可以参见上文在图33_4的操作33_420中所述那样,将本地结果和远程结果进行混合和排名。
[1565] 在操作33_425中,本地搜索界面可以接收来自用户的反馈,该反馈指示用户是已经参与了该结果(如果是,用户参与该结果的时间有多长),还是用户已经弃用了该结果。不管结果是本地数据库结果还是远程搜索引擎结果,都可以将用户反馈收集并存储在本地搜索和反馈历史33_115中。该查询也可以存储在本地搜索和反馈历史记录33_115中。在一个实施方案中,查询和反馈历史可以与计算设备33_100的特定用户相关联。
[1566] 在操作33_430中,只有远程搜索引擎结果的反馈历史可以返回到远程搜索引擎33_150。可以将反馈历史匿名,使得在发送到远程搜索引擎33_150的信息中不会识别出特定的用户和/或机器。在一个实施方案中,与匿名反馈相关联的查询不被发送到远程搜索引擎,从而保护用户隐私。
[1567] 在操作33_520中,本地学习系统33_116可以针对在操作33_515中从远程搜索引擎33_150所接收的特征生成本地预测器,并对针对该特征进行训练。本地学习系统33_116可以利用本地反馈和搜索历史33_115来确定特定用户如何与从远程搜索引擎33_150所接收的特征的本地和远程搜索结果进行交互。本地学习系统33_116可以跟踪这样的情况:特征是否由本地学习系统33_116所确定,或者特征是否接收自远程搜索引擎33_150以供本地学习系统33_116学习。在向远程搜索引擎33_150(诸如下文中图33_6的操作33_630)发送特征信息的实施方案中,可以先将特征信息匿名化,再将特征信息发送到远程搜索引擎33_150用以保护特定用户的隐私。
[1568] 图33_6以框图形式示出了接收或确定新特征、在本地训练特征以及利用特征的方法33_600。
[1569] 在操作33_605中,远程搜索引擎33_150可以向计算设备33_100返回该计算设备将在本地训练的新特征。远程搜索引擎33_150可以将该特征与由计算设备33_100从查询所返回的结果一起返回到计算设备33_100。在一个实施方案中,不管查询是从本地搜索界面33_110生成的还是从远程搜索界面33_120生成的,该特征都可被返回到计算设备。在一个实施方案中,远程查询服务器33_121可以拦截该特征,并且经由通信接口33_8将该特征传递到本地学习系统33_116。
[1570] 在操作33_610中,方法33_600可另选地始于由本地学习系统33_116通过分析本地搜索历史和反馈历史33_115来确定特征。可以通过各种方式分析本地搜索历史记录和反馈历史33_115来学习某一功能。下面给出几个示例:
[1571] 用户可以发出对于“足球比分”的查询。远程搜索引擎33_150可以返回美式橄榄球比分和英式足球比分的结果。远程搜索引擎33_150可已经确定发送查询的计算设备33_100位于在美国的IP地址。因此,远程搜索引擎优先考虑了美式橄榄球(诸如达拉斯牛仔队)比分,作为最相关的结果。在许多欧洲和南美国家,足球意味着英式足球。假设发出查询的用户对英式足球结果感兴趣,并与其进行交互。本地学习系统33_116可以分析本地搜索历史和反馈历史33_115,以确定用户没有与排名较高的美式橄榄球比分相互交互。本地学习系统33_116然后可以分析结果,并确定如下特征:足球具有至少两个含义,且该计算设备33_100的用户对英式足球的偏好大于美式橄榄球。
[1572] 再次使用足球比分示例,在收到足球比分的结果后,用户可能会想知道为什么他会获得美式橄榄球比分。在从本地数据库33_111返回的本地结果中,可能会出现一个用于字词“足球”的词典条目。用户点击“足球”词典条目。作为响应,本地学习系统33_116可以确定这样的新特征:足球具有另选的定义,并且该用户对英式足球的偏好大于美式橄榄球。
[1573] 又如,假设用户输入查询“Montana(蒙大拿州)”,并从他的地址簿中接收到本地结果“Mary Montana(玛丽蒙塔纳)”、从他的词典中接收到本地结果、接收到Joe Montana(美式橄榄球传奇)这一远程结果,以及美国蒙大拿州(Montana)这一远程结果。每当该用户查询Montana时,几乎都会从他的本地通讯录中点击Mary Montana。本地学习系统33_116可以确定用于Montana的特征,以及该用户偏好于联系人记录“Mary Montana”这一情况。
[1574] 再如,用户发出对于“MG”的查询。用户在其本地计算机上有许多英国MG汽车的照片,并且这些照片在本地数据库33_111中有索引。远程搜索引擎33_150可以返回元素“镁”(符号Mg)这一结果。用户也可以在他的计算机上拥有乐队“Booker T.and the MGs”的许多歌曲,并相应地接收本地结果。本地学习系统33_116可以确定这些结果中的差异并且可以确定“MG”的特征。
[1575] 一旦在操作33_605中接收到特征,或者在操作33_610中确定了特征,则在操作33_620中,本地学习系统33_116可以针对该特征生成本地预测器。
[1576] 在操作33_625中,本地学习系统33_116可以使用本地预测器来利用本地搜索历史和反馈历史33_115对特征“MG”进行训练。本地学习系统33_116还可以使用计算设备33_100的上下文来针对某一特征进行训练。
[1577] 使用上述MG的示例,如果用户从计算器程序内发出对MG查询,则本地学习系统33_116可以利用上下文来获知用户最有可能对镁的分子量或镁的其他属性感兴趣,并相应地针对MG进行训练。如果用户在查看MG车辆图片的同时从图片查看应用程序内发出查询,则本地学习系统33_116可以利用上下文来获知用户最有可能对英国MG车辆感兴趣。
[1578] 在操作33_630中,可按几种不同的方式来利用由本地学习系统33_116所学习的特征,或从远程搜索引擎33_150所接收的特征。当对MG发布新的查询时,可以例如利用所学习到的MG偏好(例如,镁)来扩展该查询。在一个实施方案中,当发布对MG的新查询时,查询可以例如偏向于镁的结果。本地学习系统33_116可以计算与每个查询特征相关联的偏向概率(所学习到的偏好),并将该偏向作为特征矢量提供给远程搜索引擎33_150。在一个实施方案中,在用户下一次使用与特征相关联的查询词来查询远程搜索引擎时,特征矢量可被发送到远程搜索引擎。在一个实施方案中,该特征可以用于筛选从本地数据库33_111或远程搜索引擎33_150中的一个或两者所返回的结果,从将返回到查询MG的结果限制为例如镁结果。
[1579] 在图33_7(“软件堆栈”)中,示例性实施方案、应用程序可以使用若干服务APi来调用服务A或B,并使用若干OS APi来调用操作系统(OS),A和B可以使用若干OS APi来调用OS。
[1580] 请注意,服务2具有两个AP,其中一个(服务2API 1)从应用程序1接收调用并向其返回值,另一个(服务2API 2)从应用程序2接收调用并向其返回值,服务1(其可以是,例如软件库)对OS API 1进行调用并自其接收返回值,服务2(其可以是,例如软件库)对API 1和OS API 2进行调用并自其接收返回值,应用程序2调用API 2并自其接收返回值。
[1581] 用于多域搜索技术的示例性系统、方法和计算机可读介质
[1582] 在一些实施方案中,提供了一种计算机实现的方法,该方法包括:在计算设备上学习与搜索查询相关的特征,其中该特征是至少部分地使用计算设备上所生成而不发送到远程搜索引擎的信息来学习的;向远程搜索引擎发送搜索查询和该特征的指示;以及由计算设备响应于搜索查询和该特征的指示而接收搜索结果。在一些实施方案中,该特征的指示包括以下项中至少一个:朝向特征的偏置或特征向量。在一些实施方案中,从计算设备获得的信息包括以下项中的至少一个:在计算设备上执行的计算设备上信息的搜索查询,或由计算设备的用户进行交互的反馈,该反馈具有从在计算设备上执行的存储在计算设备上的信息的搜索查询返回的结果。在一些实施方案中,学习包括对从计算设备获得的信息进行统计分析,其中统计分析包括以下项中的一种:线性回归、贝叶斯(Bayes)分类或朴素贝叶斯(Naive Bayes)分类。在一些实施方案中,该方法还包括从远程搜索引擎接收与用于让计算设备学习的搜索查询相关的特征。在一些实施方案中,该方法还包括在计算设备上学习从远程搜索引擎接收的特征,其中从远程搜索引擎接收的特征是至少部分地使用计算设备上所生成的、而未传输到远程搜索引擎的信息来学习的。在一些实施方案中,学习该特征包括,根据从计算设备获得的信息来消除与搜索查询相关的查询词。
[1583] 在一些实施方案中,提供了一种非暂态机器可读介质,其在由处理系统执行时会执行一种方法,该方法包括:在计算设备上学习与搜索查询相关的特征,其中该特征是至少部分地使用计算设备上所生成而不发送到远程搜索引擎的信息来学习的;向远程搜索引擎发送搜索查询和该特征的指示;以及由计算设备响应于搜索查询和该特征的指示而接收搜索结果。在一些实施方案中,该特征的指示包括以下项中至少一个:朝向特征的偏置或特征向量。在一些实施方案中,在计算设备上获得的信息包括以下项中的至少一个:在计算设备上执行的计算设备上信息的搜索查询,或由计算设备的用户进行交互的反馈,该反馈具有从在计算设备上执行的存储在计算设备上的信息的搜索查询返回的结果。在一些实施方案中,学习包括对从计算设备获得的信息进行统计分析,其中统计分析包括以下项中的一种:线性回归、贝叶斯分类或朴素贝叶斯分类。在一些实施方案中,该方法还包括从远程搜索引擎接收与用于让计算设备学习的搜索查询相关的特征。在一些实施方案中,该方法还包括在计算设备上学习从远程搜索引擎接收的特征,其中从远程搜索引擎接收的特征是至少部分地使用计算设备上所生成的、而未传输到远程搜索引擎的信息来学习的。在一些实施方案中,学习该特征包括,根据从计算设备获得的信息来消除与搜索查询相关的查询词。
[1584] 在一些实施方案中,提供了一种系统,该系统包括:用可执行指令编程的处理系统,该可执行指令在由该处理系统执行时会执行一种方法。该方法包括:在该系统上学习与搜索查询相关的特征,其中该特征是至少部分地使用该系统上所生成而不发送到远程搜索引擎的信息来学习的;向远程搜索引擎发送搜索查询和该特征的指示;以及由该系统响应于搜索查询和该特征的指示而接收搜索结果。在一些实施方案中,该特征的指示包括以下项中至少一个:朝向特征的偏置或特征向量。在一些实施方案中,在系统上获得的信息包括以下项中的至少一个:在系统上执行的系统上信息的搜索查询,或由系统的用户进行交互的反馈,该反馈具有从在系统上执行的存储在系统上的信息的搜索查询返回的结果。在一些实施方案中,学习包括对从系统获得的信息进行统计分析,其中统计分析包括以下项中的一种:线性回归、贝叶斯分类或朴素贝叶斯分类。在一些实施方案中,该方法还包括从远程搜索引擎接收与用于让该系统学习的搜索查询相关的特征。在一些实施方案中,该方法还包括在该系统上学习从远程搜索引擎接收的特征,其中从远程搜索引擎接收的特征是至少部分地使用该系统上所生成的、而未传输到远程搜索引擎的信息来学习的。在一些实施方案中,学习该特征包括,根据从该系统获得的信息来消除与搜索查询相关的查询词。
[1585] 第4部分:结构化建议
[1586] 本节“结构化建议”中的内容根据一些实施方案描述了基于对与用户相关联的内容(例如,文本消息)的分析,对建议进行结构化并使用上下文感知计算来为用户建议联系人和日历事件,并且提供了补充本文提供的公开内容的信息。例如,本节的一部分内容描述了识别和建议新联系人的方式,这补充了本文提供的公开内容,例如那些与下文讨论的方法600和方法800有关的公开内容,特别是有关于在图9B-图9C的预测部分930中填充建议人的公开内容。此外,用于分析内容的技术也可以应用于上文参考方法1800和2000所讨论的那些技术,并且用于建议联系人和日历事件的技术可用于基于语音通信内容的分析来执行这些建议。
[1587] 结构化建议简介
[1588] 在一些实施方案中,一种建议联系人的方法包括:在电子设备处:接收消息;在所接收的消息中识别实体和与该实体相关联的联系人信息;确定与所识别的实体相关联的联系人不存在于数据库中的多个联系人当中;以及响应于该确定,生成与该实体相关联的联系人,所生成的联系人包括联系人信息和关于所生成的联系人是建议联系人的指示。
[1589] 在一些实施方案中,一种建议联系人的方法包括:在电子设备处:接收消息;在所接收的消息中识别实体和与该实体相关联的联系人信息项目;确定与所识别的实体相关联的联系人存在于数据库中的多个联系人当中并且确定该联系人不包括所识别的联系人信息项目;以及响应于该确定,更新该联系人以包括该联系人信息项目和关于该联系人信息项目是建议联系人信息项目的指示。
[1590] 在一些实施方案中,一种建议联系人的方法包括:在具有显示器的电子设备处:接收消息;在所接收的消息中识别实体和与该实体相关联的联系人信息;生成关于所识别的联系人信息是建议联系人信息的指示;以及显示对应于与该实体相关联的联系人的第一用户界面,该第一用户界面包括第一用户界面对象,该第一用户界面对象基于所生成的指示来指示所识别的联系人信息是建议联系人信息。
[1591] 在一些实施方案中,一种建议联系人的方法包括:在具有显示器的电子设备处:接收消息;在所接收的消息中识别实体和与该实体相关联的联系人信息;以及显示对应于所接收的消息的第一用户界面,该第一用户界面包括:第一部分,其包括电子设备所接收到的消息的内容;以及第二部分,其包括:对应于所识别的实体的第一用户界面对象;对应于所识别的联系人信息的第二用户界面对象;以及与所识别的联系人信息相关联的第三用户界面对象,如果用户选择该第三用户界面对象,电子设备会将所识别的联系人信息添加到数据库中。
[1592] 在一些实施方案中,一种建议日历事件的方法包括:在电子设备处:接收消息;在所接收的消息中识别事件信息;以及生成与所识别的事件信息相关联的日历事件,所生成的日历事件包括事件信息和关于所生成的日历事件是建议日历事件的指示。
[1593] 在一些实施方案中,一种建议日历事件的方法包括:在具有显示器的电子设备处:接收消息;在所接收的消息中识别事件信息;以及显示对应于所接收的消息的第一用户界面,该第一用户界面包括:第一部分,其包括电子设备所接收到的消息的内容;以及第二部分,其包括:对应于所识别的事件信息的第一用户界面对象;以及与所识别的事件信息相关联的第二用户界面对象,如果用户选择该第二用户界面对象,电子设备会将所识别的事件信息添加到包括多个日历事件的数据库中。
[1594] 在一些实施方案中,一种建议多个联系人和/或日历事件的方法包括:在具有显示器的电子设备处:接收消息;在所接收的消息中识别联系人信息或事件信息的多个实例;以及显示对应于所接收的消息的第一用户界面,该第一用户界面包括:第一部分,其包括电子设备所接收到的消息的内容;以及第二部分,如果用户选择该第二部分,电子设备会显示第二用户界面,该第二用户界面包括所识别的联系人信息或事件信息的多个实例的列表。
[1595] 结构化建议的详细说明
[1596] 在以下对本公开和实施方案的描述中将引用附图,在附图中以例示的方式示出了可被实践的特定实施方案。应当理解,在不脱离本公开的范围的情况下,可实践其他实施方案和示例并且可作出变化。
[1597] 如上文所述,管理电子设备上的联系人和日历事件可能对于用户来讲是非常繁琐的,因为添加或更新联系人和日历事件需要手动执行多个步骤,总共将花费不少的时间。因此,许多用户只是疏于随时更新自己的通讯录和日历,但在以后需要手动搜索自己的设备来查找特定联系人信息或事件信息时,用户还是需要花费时间。这会让用户感到沮丧,影响效率。
[1598] 本公开提供一种基于消息自动为用户建议联系人和日历事件的电子设备来解决这个问题。这种设备可分析用户的消息来得到联系人和事件信息,然后基于这些信息为用户自动生成或更新建议联系人和日历事件。建议联系人和日历事件可以是可搜索的,就好像是由用户手动输入的一样,并且用户可选择添加或忽略建议联系人和日历事件。这样,用户几乎不费力气便可维护好自己的联系人和日历事件,不仅可节省用户的时间,提高效率,还能生成更有效的人机界面。
[1599] 1.结构化建议
[1600] 在本公开的实施方案中,电子设备可从用户的消息为用户组织建议联系人和日历事件。建议联系人和日历事件可以是可搜索的,就好像是由用户手动输入的一样,并且用户可选择添加或忽略(例如,拒绝)建议联系人和日历事件。这样,用户几乎不费力气便可维护好自己的联系人和日历事件,不仅可节省用户的时间,提高效率,还能生成更有效的人机界面。
[1601] 2.1建议联系人信息
[1602] 图34_5A示出了根据一些实施方案的用于建议联系人的示例性数据架构34_502A。如图34_5A所示,电子设备34_500可把来自消息34_510的联系人信息34_520A与对应联系人
34_530A关联起来(例如,存储)。消息34_510可包括能够由设备34_500的用户发送或接收的任何类型的消息,诸如电子邮件、即时消息、经由设备34_500上的应用程序接发的消息等,并且可包括消息34_510的任何附件。
[1603] 联系人信息34_520A可包括通常与通讯录数据库中的联系人条目相关联的信息,诸如某实体的名称、电话号码、地址、业务或社交网络处理等。联系人条目通常按照实体进行整理或编制索引,实体可包括个人、团体、组织、公司等。联系人信息34_520A可按任何合适格式进行存储,只要应用程序诸如联系人模块137在处理联系人信息34_520A时能够辨识即可。联系人信息34_520还可根据标准协议诸如CardDAV协议来编制格式,从而允许更新或经由网络与其他客户端同步。
[1604] 在一些实施方案中,所识别的联系人信息34_520A可按三种互相排斥的状态—建议状态34_540、已添加状态34_550和已拒绝状态34_560中的任一种与联系人34_530A相关联。建议状态34_540可反映用户尚未确认或批准将联系人信息34_520A添加到联系人的状态。已添加状态34_550可反映用户已经确认或批准将联系人信息34_520A添加到联系人的状态。已拒绝状态34_560可反映用户已经拒绝将联系人信息34_520A添加到联系人的状态。当所有相关联联系人信息属于同一状态时,联系人34_530A还可与这三种状态中的任一者相关联。
[1605] 在一些实施方案中,已添加状态34_550可被设备34_500视为默认状态,这意味着不需要添加额外数据与此类联系人相关联来指示其处于已添加状态34_550。例如,用户在设备34_500上添加的联系人可被默认视为已添加状态34_550。
[1606] 在已添加状态34_550被视为默认状态的实施方案中,设备34_500可把数据与联系人信息34_520A相关联,来指示联系人信息34_520A属于建议状态34_540或已拒绝状态34_560。此数据可采用任何合适的形式,诸如可采用元数据,处理联系人信息34_520A的应用程序将使用相应的形式来辨识联系人信息34_520A是处于建议状态34_540,还是处于已拒绝状态34_560。
[1607] 设备34_500还可把数据与联系人34_530A相关联来指示联系人34_530A和所有相关联联系人信息是属于建议状态34_540,还是属于已拒绝状态34_560。
[1608] 通过将联系人信息34_520A存储在建议状态34_540中,设备34_500(例如,经由设备34_500上运行的应用程序)可以在联系人搜索中包括建议联系人信息。为了避免用户混淆,设备34_500还可通过提供视觉指示(例如,经由添加标记或高亮显示)并且/或者阻止用户直接操作联系人信息34_520A(例如,通过先要求用户提供额外输入,然后再允许用户操作联系人信息34_520A),向用户指示联系人信息34_520A处于建议状态34_520B。输入可指任何合适的输入方式,诸如触摸、鼠标、语音等。
[1609] 以已拒绝状态34_560存储联系人信息34_520A,设备34_500便可记住用户已经拒绝的先前所建议的联系人信息,以免再次向用户建议该信息。处于已拒绝状态34_560的联系人信息34_520A,可被处理处于已添加状态34_550和建议状态34_540的联系人信息的应用程序忽略。
[1610] 设备34_500可将联系人信息34_520A本地存储在设备34_500上,并且制止将联系人信息34_520A同步到远程数据库,直到将联系人信息34_520A从建议状态34_540变为已添加状态34_550为止。在其他实施方案中,联系人信息34_520A可在处于建议状态34_540时被更新到远程数据库。
[1611] 设备34_500可从消息34_510中的结构化内容或非结构化内容中识别联系人信息34_520A。结构化内容是指具有根据预定义格式布置的正式组织或结构的内容,诸如由在线旅行社提供的自动化电子邮件,这些邮件以相同的预定义方式(例如,使用相同HTML结构)列出航班、宾馆和/或租车预订信息。在一些实施方案中,为了从结构化内容中识别联系人信息34_520A,设备34_500可使用被配置为辨识由此类消息提供的呈特定格式的联系人信息的模板。在一些实施方案中,设备34_500可经由网络添加并且/或者更新这些模板。
[1612] 非结构化内容是指没有正式组织或结构的内容,诸如自然语言内容(例如,某人在消息中说他/她有一个新号码)和电子邮件签名。为了从非结构化内容中识别联系人信息34_520A,设备34_500可使用被配置为识别预定义的联系人信息标引诸如“我启用了新号码,新号码是<号码>”之类的特定短语的数据检测器。设备34_500还可经由网络添加并且/或者更新这些数据检测器。设备34_500可通过把设备34_500上(例如,通讯录数据库中)的联系人信息,与设备34_500上与该联系人信息相关联的(例如,消息中的)语言相互关联,来改进数据检测器所依靠的预定义标引。可接着使用相关语言来细化预定义标引以供后续使用。设备34_500分析的消息内容可包括设备34_500能够辨识的任何信息,包括消息元数据。
[1613] 2.2建议事件信息
[1614] 图34_5B示出了根据一些实施方案的用于建议日历事件的示例性数据架构34_502B。如图34_5B所示,电子设备34_500可把来自消息34_510的事件信息34_520B与对应日历事件34_530B关联起来(例如,存储)。消息34_510可包括能够由设备34_500的用户发送或接收的任何类型的消息,诸如电子邮件、即时消息、经由设备上的应用程序接发的消息等,并且可包括消息的任何附件。
[1615] 事件信息34_520B可包括通常与日历数据库中的日历条目相关联的信息,诸如时间、日期、地点等。事件信息34_520B可按任何合适格式进行存储,只要应用程序诸如日历模块148能够辨识该格式,从而处理事件信息34_520B即可。事件信息34_520B还可根据标准协议诸如CalDAV协议来编制格式,从而允许更新或经由网络与其他客户端同步。
[1616] 在一些实施方案中,所识别的事件信息34_520B可按三种互相排斥的状态—建议状态34_540、已添加状态34_550和已拒绝状态34_560中的任一种与日历事件34_530B相关联。建议状态34_540可反映用户尚未确认或批准将事件信息34_520B添加到日历事件的状态。已添加状态34_550可反映用户已经确认或批准将事件信息34_520B添加到日历事件的状态。已拒绝状态34_560可反映用户已经拒绝将事件信息34_520B添加到日历事件的状态。当所有相关联日历事件信息属于同一状态时,日历事件34_530B还可与这三种状态中的任一者相关联。
[1617] 在一些实施方案中,已添加状态34_550可被设备34_500视为默认状态,这意味着不需要添加额外数据与此类日历事件相关联来指示其处于已添加状态34_550。例如,用户在设备34_500上添加的日历事件可被默认视为已添加状态34_550。
[1618] 在已添加状态34_550被视为默认状态的实施方案中,设备34_500可把数据与事件信息34_520B相关联,来指示事件信息34_520B属于建议状态34_540或已拒绝状态34_560。此数据可采用任何合适的形式,诸如可采用元数据,处理事件信息34_520B的应用程序将使用相应的形式来辨识事件信息34_520B是处于建议状态34_540,还是处于已拒绝状态34_
560。
[1619] 设备34_500还可把数据与日历事件34_530B相关联来指示日历事件34_530B和所有相关联事件信息是属于建议状态34_540,还是属于已拒绝状态34_560。
[1620] 通过将事件信息34_520B存储在建议状态34_540中,设备34_500(例如,经由设备34_500上运行的应用程序)可以在日历事件搜索中包括建议事件信息。为了避免用户混淆,设备34_500还可通过提供视觉指示(例如,经由添加标记或高亮显示)并且/或者阻止用户直接操作事件信息34_520B(例如,通过先要求用户提供额外输入,然后再允许用户操作事件信息34_520B),向用户指示事件信息34_540处于建议状态34_520B。输入可指任何合适的输入方式,诸如触摸、鼠标、语音等。
[1621] 以已拒绝状态34_560存储事件信息34_520B,设备34_500便可记住用户已经拒绝的先前所建议的事件信息,以免再次向用户建议该信息。处于已拒绝状态34_560的事件信息34_520B,可被处理处于已添加状态34_550和建议状态34_540的事件信息的应用程序忽略。
[1622] 设备34_500可将事件信息34_520B本地存储在设备34_500上,并且制止将事件信息34_520B同步到远程数据库,直到将事件信息34_520B从建议状态34_540变为已添加状态34_550为止。在其他实施方案中,事件信息34_520B可在处于建议状态34_540时被更新到远程数据库。
[1623] 设备34_500可从消息34_510中的结构化内容或非结构化内容中识别事件信息34_520B。结构化内容是指具有根据预定义格式布置的正式组织或结构的内容,诸如由在线旅行社提供的自动化电子邮件,这些邮件以相同的预定义方式(例如,使用相同HTML结构)列出航班、宾馆和/或租车预订信息。在一些实施方案中,为了从结构化内容中识别事件信息
34_520B,设备34_500可使用被配置为辨识由此类消息提供的呈特定格式的事件信息的模板。在一些实施方案中,设备34_500可经由网络添加并且/或者更新这些模板。
[1624] 非结构化内容是指没有正式组织或结构的内容,诸如自然语言内容(例如,某人在消息中说他/她将在特定时间在某个地方见你)和电子邮件签名。为了从非结构化内容识别事件信息34_520B,设备34_500可使用被配置为识别预定义事件信息标引诸如“在<时间>在<地址>见我”之类的特定短语的数据检测器。设备34_500还可经由网络添加并且/或者更新这些数据检测器。设备34_500可通过把设备34_500上(例如,日历数据库中)的事件信息,与设备34_500上与该事件信息相关联的(例如,消息中的)语言相互关联,来改进数据检测器所依靠的预定义标引。可接着使用相关语言来细化预定义标引以供后续使用。设备34_500分析的消息内容可包括设备34_500能够辨识的任何信息,包括消息元数据。
[1625] 应当认识到,示例性数据架构34_520A和34_520B可以是相同的,也可以是不同的。例如,可以为建议联系人和建议日历事件使用同一个数据架构。或者,为建议联系人使用一种数据架构,而为建议日历事件使用另一种不同的数据架构。
[1626] 还应认识到,可针对仅建议联系人、仅建议日历事件,或建议联系人和建议日历事件两者处理消息34_510。当针对建议联系人和建议日历事件两者进行处理时,可串行或并行地针对建议联系人和建议日历事件处理消息34_510。例如,可首先针对建议联系人处理消息34_510,接着针对建议日历事件处理消息。或者,可并行地针对建议联系人和建议日历事件处理消息34_510和消息34_510的复本。
[1627] 3.用户界面和相关联的过程
[1628] 图34_6A至图34_13描绘了可在设备34_500上实现的用户界面(“UI”)和相关联过程的实施方案。在一些实施方案中,设备34_500对应于设备100(图1A)。
[1629] 图34_6A和34_6G示出了根据一些实施方案的用于提供建议联系人和日历事件的示例性用户界面。
[1630] 具体地讲,图34_6A示出了例如在如上所述处理消息之后,对应于具有建议联系人信息(即,处于建议状态34_540的联系人信息)的联系人的用户界面的显示,例如通过联系人模块137进行显示。在该实施例中,联系人与名为John Appleseed的个人相关联并且包括公司名(“某公司”)、办公室电话号码(“405-555-1234”)和手机号码(“405-123-6633”)。公司名和办公室电话号码是确认联系人信息项目,属于已添加状态34_550。手机号码是建议联系人信息项目,属于建议状态34_540。
[1631] 设备34_500可在用户界面中提供用户界面对象34_600(例如,短语“建议”),用来向用户指示该手机号码是建议联系人信息项目,并没有经过用户确认。可使用任何合适的用户界面对象来实现这一目的,包括标签、图标或其他能够指示手机号码是建议联系人信息项目的视觉指示。当同一联系人包括处于建议状态34_540的联系人信息项目和处于已添加状态34_550的联系人信息项目时,如在图34_6A中的情况下,设备34_500可把处于建议状态34_540的项目显示在处于已添加状态34_550的所有项目的下方,或比处于已添加状态的所有项目的优先级低的位置。
[1632] 设备34_500还可阻止用户通过直接调用应用程序(例如,电话模块138),来从这个初始用户界面用建议号码处呼叫John Appleseed。例如,设备34_500可为与建议号码相关联的文本和/或区提供与确认联系人信息项目的视觉外观不同的视觉外观,诸如灰色显示外观(未示出),以指示用户选择建议号码时将不会直接呼叫该号码。在用户选择建议号码后,设备34_500可用第二用户界面替换当前用户界面,用户可通过第二用户界面检查并且呼叫建议号码。
[1633] 如图34_6B所示,第二用户界面(标记为“检查建议”)包括呈横幅形式的建议部分34_606,该建议部分包括与建议号码相关联的用户界面对象34_602(标记为“添加到联系人”)。用户选择用户界面对象34_602时可致使设备34_500将建议号码以已添加状态34_550添加到联系人(例如,将建议号码的状态从建议状态34_540改成已添加状态34_550)。用户在这个后续用户界面中选择手机号码或类似指示诸如紧挨着手机号码显示的电话图标后,设备34_500会调用应用程序(例如,电话模块138)以建议号码呼叫John Appleseed。在一些实施方案中,如果用户不选择用户界面对象34_602,而是选择手机号码或类似指示,则设备
34_500会保持手机号码处于建议状态34_540(例如,用户呼叫建议号码的操作,不会被视为是对联系人的建议号码的隐式批准)。在其他实施方案中,设备34_500会在用户选择手机号码后将手机号码的状态改成已添加状态34_550,即使用户尚未选择用户界面对象34_602(例如,用户呼叫建议号码的操作会被视为是对联系人的建议号码的隐式批准)也会如此。
[1634] 图34_6B中的第二用户界面还包括与建议号码相关联的用户界面对象34_604(标记为“忽略”)。用户选择用户界面对象34_604时可致使设备34_500停止显示用户界面对象34_602,这会移除将号码添加到联系人的选项。在选择用户界面对象34_604后,设备34_500会将建议号码的状态从建议状态34_540改成已拒绝状态34_560。处于已拒绝状态34_560时,设备34_500可被配置为不再显示与该联系人相关联的此建议号码,也不再建议与该联系人相关联的此建议号码。
[1635] 另外,图34_6B中的第二用户界面包括消息部分34_608(标记为“相关电子邮件”),该消息部分中包括设备34_500从其中识别建议号码的消息的一部分。因此,在提供用于检查建议联系人信息的界面的时,图34_6B的用户界面可向用户提供与建议联系人信息相关联的消息上下文。如图34_6B所示,设备34_500可显示电子邮件中与包含手机号码的部分相关的有限部分。用户选择显示的那部分消息时,设备34_500可使消息应用程序(例如,电子邮件客户端模块140)为用户打开整封电子邮件。在一些实施方案中,可在对应于图34_6D所示的用户界面的用户界面中,将整封电子邮件与建议联系人信息一起显示出来。
[1636] 图34_6C示出了响应于用户选择图34_6A中的“编辑”用户界面对象而显示的用户界面。在这个编辑用户界面中,用户还可直接呼叫由用户界面对象34_610表示的建议号码,该建议号码被突出显示(即,呈粗体)以指示该号码处于建议状态34_540。可使用任何合适的视觉指示来指示用户界面对象34_610处于建议状态34_540。
[1637] 图34_6D示出了用户在设备34_500上打开消息(例如,由电子邮件客户端模块140显示的电子邮件)后可检视的屏幕,其中设备34_500已经在消息中识别到建议联系人信息。图34_6D的用户界面包括建议部分34_612和消息部分34_614。消息部分34_614包括设备34_
500收到的消息的内容。建议部分34_612包括对应于所识别的实体(“John Appleseed”)的用户界面对象;对应于所识别的联系人信息(“405-123-6633”)的用户界面对象;以及与所识别的联系人信息相关联的用户界面对象34_618(标记为“添加到联系人”),如果用户选择该用户界面对象,设备会将建议号码以已添加状态34_550添加到联系人。建议部分34_612包括与所识别的联系人信息相关联的用户界面对象34_620(标记为“忽略”),如果用户选择该用户界面对象,设备34_500会将所识别的联系人信息的状态从建议状态34_540改成已拒绝状态34_560。处于已拒绝状态34_560时,设备34_500可被配置为不再显示与该联系人相关联的此建议联系人信息,也不再建议与该联系人相关联的此建议联系人信息。选择位于“忽略”和“添加到联系人”图块上方的建议部分34_616的识别联系人信息34_612时,设备上会出现对应于与所识别实体相关联的联系人的用户界面。例如,在这个实施方案中,设备
34_500可在对应于图34_6A所示的用户界面的用户界面中呈现“John Appleseed”的联系人信息。
[1638] 图34_6E示出了用户在设备34_500上打开消息(例如,由电子邮件客户端模块140显示的电子邮件)后可检视的屏幕,其中设备34_500已经在消息中识别到建议事件信息。图34_6E的用户界面包括建议部分34_620和消息部分34_622。消息部分34_622包括设备34_
500收到的消息的内容。建议部分34_620包括对应于所识别的事件信息(“晚餐”、“某寿司店”、“3月7日,周五”或“晚上9:50”)的用户界面对象,以及与所识别的事件信息相关联的用户界面对象34_626(标记为“添加到日历”),如果用户选择该用户界面对象,设备34_500会将建议事件信息以已添加状态34_550添加到日历事件。建议部分34_620包括用户界面对象
34_628(标记为“忽略”),如果用户选择该用户界面对象,设备34_500会将所识别的事件信息的状态从建议状态34_540改成已拒绝状态34_560。处于已拒绝状态34_560时,设备34_
500可被配置为不再显示与该日历事件相关联的此条建议事件信息,也不再建议与该日历事件相关联的此条建议事件信息。选择位于“忽略”和“添加到日历”图块上方的建议部分
34_620的所识别的事件信息34_624时,设备上会出现对应于与所识别的事件信息相关联的日历事件的用户界面(未示出)(例如,由例如联系人模块137显示),用户可通过这个用户界面选择用户界面对象,将建议事件信息以已添加状态34_550添加到日历事件。
[1639] 图34_6F示出了用户在设备34_500上打开消息(例如,由电子邮件客户端模块140显示的电子邮件)后可检视的屏幕,其中设备34_500已经在消息中识别到多个建议联系人和/或日历事件。图34_6F的用户界面包括建议部分34_630和消息部分34_632。消息部分34_632包括设备34_500收到的消息的内容。建议部分34_630还包括用户可选区,如果用户选择用户可选区,设备34_500会显示后续用户界面,其中包含所识别的联系人信息或事件信息的多个实例的列表,如图34_6G所示。将图34_6F的建议部分34_630限制在单个横幅内而非将图34_6G的所有建议并入到图34_6F的用户界面中,这样做可以防止图34_6F的建议部分对用户产生干扰,导致用户无法轻松检视并阅读消息部分中的消息。
[1640] 图34_6G示出了与图34_6F的用户界面相关联的后续用户界面,其中包含在消息中识别的建议联系人信息和事件信息的列表。如图34_6G所示,这些建议信息按类型来组织(例如,建议日历事件分在一个组,建议联系人分在另一个组),并且每条建议信息都包括上述“忽略”和“添加到联系人”及“添加到日历”功能。图34_6G的用户界面还包括用户界面对象34_634(“全部添加”),如果用户选择该用户界面对象,设备34_500会将所识别的联系人信息或事件信息的多个实例(例如,图34_6G所示的两个建议日历事件)的分组中的每一个,以已添加状态34_550添加到对应联系人或日历事件。
[1641] 图34_7A和图34_7B示出了根据一些实施方案的用于生成建议联系人的示例性过程的流程图。该过程可在电子设备(例如,设备34_500)上执行。
[1642] 电子设备可接收(34_702)消息(例如,图34_6D,消息部分34_614中的电子邮件),然后在所接收的消息中识别(34_704)实体(例如,图34_6D,“John Appleseed”)和与该实体相关联的联系人信息(例如,图34_6D,“405-123-6633”)。设备可确定(34_722)与所识别的实体相关联的联系人(例如,图34_5A,联系人34_530A)不存在于数据库(例如,设备34_500上的存储装置,诸如通讯录数据库)中的多个联系人当中,并且响应于此确定(34_724),设备可生成与该实体相关联的联系人,所生成的联系人包括联系人信息和关于所生成的联系人是建议联系人(例如,处于建议状态34_540)的指示(例如,元数据)。需注意,当设备生成联系人“John Appleseed”作为建议联系人时,该联系人中的每个联系人信息项目都可被指示为建议联系人信息项目,并且以建议状态34_540存储,或者整个联系人作为整体可被指示为建议联系人,并且以建议状态34_540存储。还需注意,可使用所公开的过程来分析驻留在设备上的任何消息,诸如传入消息和传出消息。
[1643] 在一些实施方案中,所识别的实体为(34_706)姓名,并且所识别的联系人信息为电话号码、地址、业务或社交网络处理。
[1644] 在一些实施方案中,设备可在消息中辨识签名块来在消息中识别非结构化内容。例如,为了在消息中识别实体和相关联联系人信息,设备可识别(34_708)消息的签名块,并且分析所识别的签名块,得到实体和联系人信息。消息中可包括(34_710)电子邮件,并且签名块可为电子邮件签名。电子邮件可包括(34_712)电子邮件线程中的一封或多封先前的电子邮件,并且识别电子邮件签名可包括分析电子邮件线程中的一封或多封先前的电子邮件。展开电子邮件的引用层,有助于设备避免错误地关联电子邮件线程中不同电子邮件中的联系人信息位置。
[1645] 在一些实施方案中,设备可通过使用数据检测器搜索限定的短语,来在消息中识别非结构化内容。例如,为了在消息中识别实体和相关联联系人信息,设备可基于预定义短语集合在消息中识别(34_714)一个或多个短语,并且分析一个或多个所识别的短语,得到实体和联系人信息。设备可经由网络更新(34_716)预定义短语集合,使得设备可以持续使用准确的短语。如果用户请求拒绝建议联系人,则设备还可以对预定义短语中的一者或多者进行降级(34_718)。换句话讲,如果用户持续拒绝通过使用特定短语识别得到的建议信息,这种行为可被设备视为是对那些短语不准确的指示。设备还可通过把数据库中的联系人信息和电子设备上与该联系人信息相关联的语言(诸如消息、日历事件等)相互关联,来生成(34_720)一个或多个预定义短语。这样,设备便可确定包含联系人信息的消息中的什么确切语言,例如导致了用户用该联系人信息创建或更新联系人。
[1646] 在一些实施方案中,可使用图34_5A的数据架构让建议联系人变得易于搜索。例如,设备可接收(34_726)对联系人的请求(例如,用户请求经由设备上的应用程序搜索联系人)并且响应于对联系人的请求,搜索建议联系人。
[1647] 在一些实施方案中,设备可以(34_728)响应于联系人的生成,制止经由网络将建议联系人存储到远程数据库中。例如,如果建议联系人处于建议状态34_540,则设备可制止将该联系人推送到用于经由网络在多个客户端上更新联系人的更新或同步服务(例如,设备上的应用程序)。
[1648] 在一些实施方案中,设备可(34_730)接收关于将建议联系人添加到数据库中的请求(例如,图34_6D,“添加到联系人”34_618),并且响应于该请求,将所生成的联系人存储在数据库中,而不存储关于所生成的联系人是建议联系人的指示(例如,将联系人的状态从建议状态34_540改成已添加状态34_550)。响应于关于将建议联系人添加到数据库中的请求,设备可通过例如将联系人推送到更新服务或同步服务,来经由网络将所生成的联系人存储(34_732)到远程数据库中,而不存储关于所生成的联系人是建议联系人的指示。
[1649] 在一些实施方案中,设备可(34_734)接收关于拒绝建议联系人的请求(例如,图34_6D,“忽略”34_620),并且响应于该请求,拒绝该建议联系人,从而防止将来因为在未来消息中识别到该实体和该联系人信息而生成该建议联系人。可通过以已拒绝状态34_560存储被拒绝的联系人来实现这一点,让设备可以知道哪些已被拒绝。
[1650] 图34_8A和图34_8B示出了根据一些实施方案的使用建议的联系人信息项目更新现有联系人的示例性过程的流程图。该过程可在电子设备(例如,设备34_500)上执行。
[1651] 电子设备可接收(34_802)消息(例如,图34_6D,消息部分34_614中的电子邮件),然后在所接收的消息中识别(34_804)实体(例如,图34_6D,“John Appleseed”)和与该实体相关联的联系人信息项目(例如,图34_6D,“405-123-6633”)。设备可确定(34_822)与所识别的实体相关联的联系人(例如,图34_5A,联系人34_530A)存在于数据库中的多个联系人当中,并且该联系人不包括所识别的联系人信息项目。响应于此确定(34_824),设备可更新联系人,以包括该联系人信息项目和关于该联系人信息项目是建议联系人信息项目(例如,处于建议状态34_540)的指示(例如,元数据)。还需注意,可使用所公开的过程来分析驻留在设备上的任何消息,诸如传入消息和传出消息。
[1652] 在一些实施方案中,所识别的实体是(34_806)姓名,并且所识别的联系人信息项目是电话号码、地址、业务或社交网络处理。
[1653] 在一些实施方案中,设备可在消息中辨识签名来在消息中识别非结构化内容。例如,为了在消息中识别实体和相关联联系人信息项目,设备可识别(34_808)消息的签名块,并且分析所识别的签名块,得到实体和联系人信息项目。消息中可包括(34_810)电子邮件,并且签名块可为电子邮件签名。电子邮件可包括(34_812)电子邮件线程中的一封或多封先前的电子邮件,并且识别电子邮件签名可包括分析电子邮件线程中的一封或多封先前的电子邮件。展开电子邮件的引用层,有助于设备避免错误地关联电子邮件线程中不同电子邮件中的联系人信息位置。
[1654] 在一些实施方案中,设备可通过使用数据检测器搜索限定的短语,来在消息中识别非结构化内容。例如,为了在消息中识别实体和相关联联系人信息项目,设备可基于预定义短语集合在消息中识别(34_814)一个或多个短语,并且分析一个或多个所识别的短语,得到实体和联系人信息项目。设备可经由网络更新(34_816)预定义短语集合,使得设备可以持续使用准确的短语。如果用户请求拒绝建议联系人信息项目,设备还可对一个或多个预定义短语进行降级(34_818)处理。换句话讲,如果用户持续拒绝通过使用特定短语识别得到的建议信息,这种行为可被设备视为是对那些短语不准确的指示。设备还可通过把数据库中的联系人信息和电子设备上与该联系人信息相关联的语言(诸如消息、日历事件等)相互关联,来生成(34_820)一个或多个预定义短语。这样,设备便可确定包含联系人信息的消息中的什么确切语言,例如导致了用户用该联系人信息创建或更新联系人。
[1655] 在一些实施方案中,可使用图34_5A的数据架构让建议联系人变得易于搜索。例如,设备可接收(34_826)对联系人的请求(例如,用户请求经由设备上的应用程序搜索联系人)并且响应于对联系人的请求,搜索建议联系人信息项目。
[1656] 在一些实施方案中,设备可(34_828)响应于联系人的更新,制止经由网络将建议联系人信息项目存储到远程数据库中。如果建议联系人信息项目处于建议状态34_540,则设备可制止将联系人信息项目推送到用于经由网络在多个客户端上更新联系人的更新服务或同步服务(例如,设备上的应用程序)。
[1657] 在一些实施方案中,设备可(34_830)接收关于将建议联系人信息项目添加到数据库的请求(例如,图34_6B,“添加到联系人”34_602),并且响应于该请求,将所更新的联系人存储在数据库中,而不存储关于该联系人信息项目是建议联系人信息项目的指示(例如,将联系人信息的状态从建议状态34_540改成已添加状态34_550)。响应于对将建议联系人信息项目添加到数据库的请求,设备可通过例如将联系人信息推送到更新/同步服务,来经由网络将所更新的联系人存储(34_832)到远程数据库中,而不存储关于该联系人信息项目是建议联系人信息项目的指示。
[1658] 在一些实施方案中,设备可(34_834)接收关于拒绝建议联系人信息项目的请求(例如,图34_6B,“忽略”34_604),并且响应于该请求,拒绝该建议联系人信息项目,从而防止将来因为在未来消息中识别到该实体和该联系人信息项目而用该建议联系人信息项目更新该联系人。可通过以已拒绝状态34_560存储被拒绝的联系人信息来实现这一点,让设备可以知道哪些已被拒绝。
[1659] 图34_9A和图34_9B示出了根据一些实施方案的用于显示具有建议联系人信息的联系人的示例性过程的流程图。该过程可在具有显示器的电子设备(例如,设备34_500)上执行。
[1660] 电子设备可接收(34_902)消息(例如,图34_6D,消息部分34_614中的电子邮件),然后在所接收的消息中识别(34_904)实体(例如,图34_6D,“John Appleseed”)和与该实体相关联的联系人信息(例如,图34_6D,“405-123-6633”)。设备可生成(34_906)关于所识别的联系人信息是建议联系人信息的指示(例如,元数据),并且显示(34_908)对应于与该实体相关联的联系人的第一用户界面(例如,图34_6A)。第一用户界面可基于所生成的指示包括第一用户界面对象(例如,“建议”),从而指示所识别的联系人信息是建议联系人信息。
[1661] 在一些实施方案中,设备可阻止(34_910)对应于选择建议联系人信息的输入调用应用程序来联系实体(例如,图34_6A,选择建议号码时设备不呼叫该号码)。
[1662] 在一些实施方案中,设备可(34_912)在第一用户界面中检测对应于选择建议联系人信息的输入,并且响应于该检测,显示第二用户界面(例如,图34_6B),该第二用户界面包括与所识别的联系人信息相关联的第二用户界面对象(例如,图34_6B,“添加到联系人”34_602),如果用户选择该第二用户界面对象,电子设备会将所识别的联系人信息添加到数据库。第二用户界面可(34_914)包括与所识别的联系人信息相关联的第三用户界面对象(例如,图34_6B,“忽略”34_604),如果用户选择该第三用户界面对象,电子设备会停止显示第二用户界面对象。显示第二用户界面时会停止(34_916)显示第一用户界面。设备可响应于把所识别的联系人信息添加到数据库,而停止(34_918)显示第一用户界面对象。
[1663] 在一些实施方案中,第二用户界面可显示(34_920)消息的至少一部分(例如,图34_6B,“相关电子邮件”)。设备可(34_922)检测对应于选择所显示的消息的输入,并且响应于该检测,调用应用程序(例如,电子邮件客户端模块140)来打开消息(例如,图34_6D)。消息可(34_924)为电子邮件,并且应用程序可为电子邮件应用程序。
[1664] 在一些实施方案中,设备可在第二用户界面中检测(34_926)对应于选择建议联系人信息的输入,并且响应于该检测,调用应用程序(例如,电话模块138)来使用所识别的联系人信息联系实体。响应于对对应于在第二用户界面中选择建议联系人信息的输入的检测,设备可(34_928)将所识别的联系人信息添加到数据库(例如,将联系人信息的状态从建议状态34_540改成已添加状态34_550)。设备可响应于把所识别的联系人信息添加到数据库,而停止(34_918)显示第一用户界面对象。
[1665] 图34_10示出了根据一些实施方案的建议联系人信息与消息一起显示的示例性过程的流程图。该过程可在具有显示器的电子设备(例如,设备34_500)上执行。
[1666] 电子设备可接收(34_1002)消息(例如,图34_6D,消息部分34_614中的电子邮件),然后在所接收的消息中识别(34_1004)实体(例如,图34_6D,“John Appleseed”)和与该实体相关联的联系人信息(例如,图34_6D,“405-123-6633”)。消息可(34_1006)为电子邮件。所识别的实体可(34_1008)为姓名,并且所识别的联系人信息可为电话号码、地址、业务或社交网络处理。
[1667] 设备可显示(34_1010)对应于所接收的消息的第一用户界面(例如,图34_6D)。第一用户界面可包括:第一部分(例如,图34_6D,消息部分34_614),其包括电子设备收到的消息的内容;以及第二部分(例如,图34_6D,建议部分34_612),其包括对应于所识别的实体的第一用户界面对象(例如,图34_6D,“John Appleseed”)、对应于所识别的联系人信息的第二用户界面对象(例如,图34_6D,“405-123-6633”),以及与所识别的联系人信息相关联的第三用户界面对象(例如,图34_6D,“添加到联系人”34_618),如果用户选择该第三用户界面对象,电子设备会将所识别的联系人信息添加到数据库(例如,将联系人信息存储为联系人)。第二部分可(34_1012)包括与所识别的联系人信息相关联的第四用户界面对象(例如,图34_6D,“忽略”34_620),如果用户选择该第四用户界面对象,电子设备会停止显示第三用户界面对象。
[1668] 图34_11A和图34_11B示出了根据一些实施方案的用于生成建议日历事件的示例性过程的流程图。该过程可在电子设备(例如,设备34_500)上执行。
[1669] 电子设备可接收(34_1102)消息(例如,图34_6E,消息部分34_622中的电子邮件),并且在所接收的消息中识别(34_1104)事件信息(例如,图34_6E,“晚餐”、“某寿司店”、“3月7日,周五”或“晚上9:50”)。设备可生成(34_1122)与所识别的事件信息相关联的日历事件(例如,图34_5B,日历事件34_530B),其中所生成的日历事件包括事件信息和关于所生成的日历事件是建议日历事件(例如,处于建议状态34_540)的指示(例如,元数据)。
[1670] 在一些实施方案中,所识别的事件信息是(34_1106)日期和时间。在一些实施方案中,设备可通过使用被配置为辨识由此类消息提供的呈特定格式的事件信息的模板,来在消息中识别结构化内容。例如,为了在消息中识别事件信息,设备可(34_1108)识别消息中内容的格式,从预定义模板集合中识别被配置为辨识消息中呈内容格式的事件信息的模板,并且使用所识别的模板分析内容,得到事件信息。消息可包括(34_1110)电子邮件,并且内容可包括预订(例如,图34_6E)。设备可经由网络更新(34_1112)预定义模板集合,使得设备可以持续使用准确的模板。
[1671] 在一些实施方案中,设备可通过使用数据检测器搜索事件信息标引,来在消息中识别非结构化内容。例如,为了在消息中识别事件信息,设备可基于日期和时间的预定义标引集合来在消息中识别(34_1114)一个或多个日期和时间标引,并且分析一个或多个所识别的日期和时间的标引,得到事件信息。
[1672] 设备可经由网络更新(34_1116)日期和时间的预定义标引集合,使得设备可以持续使用准确的标引。如果用户请求拒绝建议日历事件,设备可对一个或多个日期和时间的预定义标引进行降级(34_1118)。换句话讲,如果用户持续拒绝通过使用日期和时间的特定标引识别得到的建议信息,这种行为可被设备视为是对那些标引不准确的指示。设备可通过把包括多个日历事件的数据库中的事件信息,与电子设备上与事件信息相关联的语言相互关联,来生成(34_1120)一个或多个日期和时间的预定义标引。这样,设备可更好地确定包含事件信息的消息中的什么语言,例如导致用户用该事件信息创建或更新日历事件。
[1673] 在一些实施方案中,可使用图34_5A至图34_5B的数据架构让建议日历事件变得易于搜索。例如,设备可接收(34_1124)对日历事件的请求(例如,用户请求经由设备上的应用程序搜索日历事件)并且响应于对日历事件的请求,搜索建议日历事件。
[1674] 在一些实施方案中,设备可响应于日历事件的生成,制止(34_1126)经由网络将建议日历事件存储到远程数据库中。例如,如果建议日历事件处于建议状态34_540,则设备可制止将日历事件推送到用于经由网络在多个客户端上更新日历事件的更新或同步服务(例如,设备上的应用程序)。
[1675] 在一些实施方案中,设备可(34_1128)接收将建议日历事件添加到包括多个日历事件的数据库的请求(例如,图34_6E,“添加到日历”34_626),并且作为响应,将所生成的日历事件存储在数据库中,而不存储关于所生成的日历事件是建议日历事件的指示(例如,将日历事件的状态从建议状态34_540改成已添加状态34_550)。响应于对将建议日历事件添加到数据库的请求,设备可通过例如将日历事件推送到更新或同步服务来经由网络将所生成的日历事件存储(34_1130)到远程数据库中,而不存储关于所生成的日历事件是建议日历事件的指示。
[1676] 在一些实施方案中,设备可(34_1132)接收关于拒绝建议日历事件的请求(例如,图34_6E,“忽略”34_628),并且响应于拒绝请求,阻止将来因为在未来消息中识别到该事件信息而生成该建议日历事件。可通过以已拒绝状态34_560存储被拒绝的事件来实现这一点,让设备可以知道哪些已被拒绝。
[1677] 图34_12示出了根据一些实施方案的建议事件信息与消息一起显示的示例性过程的流程图。该过程可在具有显示器的电子设备(例如,设备34_500)上执行。
[1678] 电子设备可接收(34_1202)消息(例如,图34_6E,消息部分34_622中的电子邮件),并且在所接收的消息中识别(34_1204)事件信息(例如,图34_6E,“晚餐”、“某寿司店”、“3月7日,周五”或“晚上9:50”)。消息可为(34_1206)电子邮件。所识别的事件信息可(34_1208)为日期和时间。
[1679] 设备可显示(34_1210)对应于所接收的消息的第一用户界面(例如,图34_6E)。第一用户界面可包括:第一部分(例如,图34_6E,消息部分34_622),其包括电子设备收到的消息的内容;以及第二部分(例如,图34_6E,建议部分34_620),其包括对应于所识别的事件信息的第一用户界面对象(例如,图6E,“晚餐”、“某寿司店”、“3月7日,周五”或“晚上9:50”)和与所识别的事件信息相关联的第二用户界面对象(例如,图34_6E,“添加到日历”34_626),如果用户选择该第二用户界面对象,电子设备会将所识别的事件信息添加到包括多个日历事件的数据库(例如,将该事件信息存储为日历事件)。第二部分可(34_1212)包括与所识别的事件信息相关联的第三用户界面对象(例如,图34_6E,“忽略”34_628),如果用户选择该第三用户界面对象,电子设备会停止显示第二用户界面对象。
[1680] 图34_13示出了根据一些实施方案的多个建议联系人信息或事件信息与消息一起显示的示例性过程的流程图。
[1681] 该过程可在具有显示器的电子设备(例如,设备34_500)上执行。
[1682] 电子设备可接收(34_1302)消息(例如,图34_6F,消息部分34_632中的电子邮件),并且在所接收的消息中识别(34_1304)联系人信息或事件信息的多个实例(例如,图34_6F,随附行程单中的“2个事件,1个联系人”)。
[1683] 设备可显示(34_1306)对应于所接收的消息的第一用户界面(例如,图34_6F)。第一用户界面可包括:第一部分(例如,图34_6F,消息部分34_632),其包括电子设备所接收到的消息的内容;以及第二部分(例如,图34_6F,建议部分34_630);如果用户选择该第二部分,电子设备会显示第二用户界面(图34_6G),其中包括所识别的联系人信息或事件信息的多个实例的列表。
[1684] 在一些实施方案中,设备可(34_1308)检测对应于选择第一用户界面的第二部分的输入,并且响应于该检测,显示第二用户界面,该第二用户界面包括所识别的联系人信息或事件信息的多个实例的列表,以及针对所识别的联系人信息或事件信息的多个实例中的每一者的第一用户界面对象(例如,图34_6G,“添加到日历”或“添加到联系人”),如果用户选择该第一用户界面对象,电子设备会将所识别的信息添加到数据库(例如,将事件信息存储为日历事件,或将联系人信息存储为联系人)。第二用户界面可(34_1310)针对所识别的联系人信息或事件信息的多个实例中的每一者包括第二用户界面对象(例如,图34_6G,“忽略”),如果用户选择该第二用户界面对象,电子设备会停止显示第一用户界面对象。第二用户界面可(34_1312)包括第三用户界面对象(例如,图34_6G,“添加全部”34_634),如果选择该第三用户界面对象,电子设备会将所识别的联系人信息或事件信息的多个实例的分组(例如,多个日历事件或联系人)中的每一者添加到数据库。显示第二用户界面时会停止(34_1314)显示第一用户界面。
[1685] 应当理解,已描述的图34_7A至图34_13中的操作的具体次序是示例性的,而并非意图指示所述次序是这些操作可被执行的唯一次序。本领域的普通技术人员会想到多种方式来对本部分所述的操作进行重新排序。为了简明起见,此处不再重复这些细节。此外,需注意,可将过程34_700至34_1300(图34_7至图34_13)的各方面彼此结合。
[1686] 上述信息处理过程中的操作可通过运行信息处理装置(诸如通用处理器或专用芯片)中的一个或多个功能模块来实现。这些模块、这些模块的组合、和/或其与一般硬件的组合(例如,如上面相对于图1A、图1B和图3所述的)都包括在本发明的保护范围内。
[1687] 图34_14示出了电子设备34_1400的示例性功能框,在一些实施例中,电子设备执行上文所述的功能。如图34_14所示,电子设备34_1400包括被配置为显示图形对象的显示单元34_1402;被配置为接收用户手势的触敏表面单元34_1404;被配置为检测外部电子设备并与之通信的一个或多个RF单元34_1406;以及耦接到显示单元34_1402、触敏表面单元34_1404和RF单元34_1406的处理单元34_1408。
[1688] 在一些实施方案中,处理单元34_1408被配置为支持运行一个或多个应用程序34_1412的操作系统34_1410。在一些实施方案中,处理单元34_1408被配置为从代表在无线通信射程内的外部设备的RF单元34_1406接收数据;在触敏表面单元34_1404上显示图形用户界面示能表示;并且响应于在所显示的示能表示上检测到接触,启动设备34_1400上的对应于正在外部设备上执行的应用程序的应用程序。
[1689] 设备34_1400的功能块任选地由执行各种所述示例的原理的硬件、软件,或硬件和软件的组合来实现。本领域的技术人员应当理解,图34_14中所述的功能块任选地被组合或被分离为子块,以实现各种所述示例的原理。因此,本部分的描述任选地支持本部分所述的功能块的任何可能的组合或分离或进一步限定。
[1690] 图34_15示出了另一个电子设备34_1500的示例性功能框,在一些实施例中,该电子设备执行上文所述的功能。如图34_14所示,电子设备34_1500包括被配置为显示图形对象的显示单元34_1402;被配置为接收用户手势的触敏表面单元34_1504;被配置为检测外部电子设备并与之通信的一个或多个RF单元34_1506;以及耦接到显示单元34_1502、触敏表面单元34_1504和RF单元34_1506的处理单元34_1508。
[1691] 在一些实施方案中,处理单元34_1508被配置为支持单元34_1510至1520中的一者或多者执行上述各种功能。例如,接收单元34_1510被配置为执行上述接收功能中的一者或多者(例如,接收消息)。识别单元34_1512被配置为执行上述识别功能中的一者或多者(例如,在所接收的消息中识别实体和与实体相关联的联系人信息;在所接收的消息中识别事件信息;或在所接收的消息中识别联系人信息或事件信息的多个实例)。确定单元34_1514被配置为执行上述确定功能中的一者或多者(例如,确定与所识别的实体相关联的联系人不存在于数据库中的多个联系人当中;确定与所识别的实体相关联的联系人存在于数据库中的多个联系人当中,以及该联系人不包括所识别的联系人信息项目)。生成单元34_1516被配置为执行上述生成步骤中的一者或多者(例如,响应于确定,生成与实体相关联的联系人;生成关于所识别的联系人信息是建议联系人信息的指示;生成与所识别的事件信息相关联的日历事件)。更新单元34_1518被配置为执行上述更新步骤中的一者或多者(例如,响应于确定,更新联系人,加入联系人信息项目和关于联系人信息项目是建议联系人信息项目的指示)。显示单元34_1520被配置为执行上述显示步骤中的一个或多个(例如,在显示单元34_1502上显示与实体相关联的联系人或所接收的消息对应的第一用户界面)。
[1692] 设备34_1500的功能块任选地由执行各种所述示例的原理的硬件、软件,或硬件和软件的组合来实现。本领域的技术人员应当理解,图34_15中所述的功能块任选地被组合或被分离为子块,以实现各种所述示例的原理。因此,本部分的描述任选地支持本部分所述的功能块的任何可能的组合或分离或进一步限定。
[1693] 用于结构化建议的示例性方法、设备系统和计算机可读介质
[1694] 在一个方面,本公开提供了一种基于用户的消息来为用户建议联系人和日历事件的电子设备。这种设备可分析用户的消息来得到联系人和事件信息,然后基于这些信息为用户自动生成或更新建议联系人和日历事件。建议联系人和日历事件可以是可搜索的,就好像是由用户手动输入的一样,并且用户可选择添加或忽略建议联系人和日历事件。
[1695] 在一些具体实施中,提供了一种在电子设备(例如,图1A中的设备100,其根据图1E所示的任意配置来实现)中执行的方法。该方法包括:接收消息;在所接收的消息中识别实体和与该实体相关联的联系人信息;确定与所识别的实体相关联的联系人不存在于数据库中的多个联系人当中;以及响应于该确定,生成与该实体相关联的联系人,所生成的联系人包括联系人信息和关于所生成的联系人是建议联系人的指示。
[1696] 在一些具体实施中,所识别的实体包括姓名,并且所识别的联系人信息包括电话号码、地址、业务或社交网络处理。在一些具体实施中,所述识别包括识别消息的签名块,以及分析所识别的签名块,得到实体和联系人信息在一些具体实施中,消息包括电子邮件,签名块包括电子邮件签名。在一些具体实施中,电子邮件包括电子邮件线程中的一封或多封先前的电子邮件,并且电子邮件签名的识别包括分析电子邮件线程中的一封或多封先前的电子邮件。在一些具体实施中,所述识别包括基于预定义短语集合在消息中识别一个或多个短语;并且分析一个或多个所识别的短语,得到实体和联系人信息。在一些具体实施中,该方法包括:经由网络更新预定义短语集合。在一些具体实施中,该方法包括:如果用户请求拒绝建议联系人,对预定义短语中的一者或多者进行降级。在一些具体实施中,该方法包括:把数据库中的联系人信息和电子设备上与联系人信息相关联的语言相互关联,来生成预定义短语中的一者或多者。在一些具体实施中,该方法包括:接收对某个联系人的请求;并且响应于对该联系人的请求,搜索建议联系人。在一些具体实施中,该方法包括:响应于联系人的生成,制止经由网络将建议联系人存储到远程数据库中。在一些具体实施中,该方法包括:接收将建议联系人添加到数据库的请求;并且响应于将建议联系人添加到数据库的请求,将所生成的联系人存储到数据库中,而不存储关于所生成的联系人是建议联系人的指示。在一些具体实施中,该方法包括:响应于将建议联系人添加到数据库的请求,经由网络将所生成的联系人存储到远程数据库中,而不存储关于所生成的联系人是建议联系人的指示。在一些具体实施中,该方法包括:接收拒绝建议联系人的请求;并且响应于拒绝建议联系人的请求,阻止将来因为在未来消息中识别到该实体和该联系人信息而生成该建议联系人。
[1697] 在一些具体实施中,提供了一种系统,该系统包括:用于接收消息的装置;用于在所接收的消息中识别实体和与该实体相关联的联系人信息的装置;用于确定与所识别的实体相关联的联系人不存在于数据库中的多个联系人当中的装置;以及用于响应于该确定,生成与该实体相关联的联系人的装置,其中所生成的联系人包括联系人信息和关于所生成的联系人是建议联系人的指示。
[1698] 在另一方面,提供了一种在电子设备(例如,图1A中的设备100,其根据图1E所示的任意配置来实现)中执行的方法。该方法包括:接收消息;在所接收的消息中识别实体和与该实体相关联的联系人信息项目;确定与所识别的实体相关联的联系人存在于数据库中的多个联系人当中并且确定该联系人不包括所识别的联系人信息项目;以及响应于该确定,更新该联系人以包括该联系人信息项目和关于该联系人信息项目是建议联系人信息项目的指示。
[1699] 在一些具体实施中,所识别的实体包括姓名,并且所识别的联系人信息项目包括电话号码、地址、业务或社交网络处理。在一些具体实施中,所述识别包括识别消息的签名块,以及分析所识别的签名块,得到实体和联系人信息项目。在一些具体实施中,消息包括电子邮件,签名块包括电子邮件签名。在一些具体实施中,电子邮件包括电子邮件线程中的一封或多封先前的电子邮件,并且电子邮件签名的识别包括分析电子邮件线程中的一封或多封先前的电子邮件。在一些具体实施中,所述识别包括基于预定义短语集合在消息中识别一个或多个短语;并且分析一个或多个所识别的短语,得到实体和联系人信息项目。在一些具体实施中,该方法包括:经由网络更新预定义短语集合。在一些具体实施中,该方法包括:如果用户请求拒绝建议联系人信息项目,对预定义短语中的一者或多者进行降级。在一些具体实施中,该方法包括:把数据库中的联系人信息和电子设备上与联系人信息相关联的语言相互关联,来生成预定义短语中的一者或多者。在一些具体实施中,该方法包括:接收对某个联系人的请求;并且响应于对该联系人的请求,搜索建议联系人信息项目。在一些具体实施中,该方法包括:响应于联系人的更新,制止经由网络将建议联系人信息项目存储到远程数据库中。在一些具体实施中,该方法包括:接收将建议联系人信息项目添加到数据库的请求;并且响应于将建议联系人信息项目添加到数据库的请求,将所更新的联系人存储在数据库中,而不存储关于该联系人信息项目是建议联系人信息项目的指示。在一些具体实施中,该方法包括:响应于将建议联系人信息项目添加到数据库的请求,经由网络将所更新的联系人存储到远程数据库中,而不存储关于该联系人信息项目是建议联系人信息项目的指示。在一些具体实施中,该方法包括:接收拒绝建议联系人信息项目的请求;并且响应于拒绝建议联系人信息项目的请求,阻止将来因为在未来消息中识别到该实体和该联系人信息项目而用该建议联系人信息项目更新该联系人。
[1700] 在一些具体实施中,提供了一种系统,该系统包括:用于接收消息的装置;用于在所接收的消息中识别实体和与该实体相关联的联系人信息项目的装置;用于确定与所识别的实体相关联的联系人存在于数据库中的多个联系人当中并且确定该联系人不包括所识别的联系人信息项目的装置;以及用于响应于该确定而更新该联系人以包括该联系人信息项目和关于该联系人信息项目是建议联系人信息项目的指示的装置。
[1701] 在再一方面,提供了一种在电子设备(例如,图1A中的设备100,其根据图1E所示的任意配置来实现)中执行的方法。该方法包括:接收消息;在所接收的消息中识别实体和与该实体相关联的联系人信息;生成关于所识别的联系人信息是建议联系人信息的指示;以及显示对应于与该实体相关联的联系人的第一用户界面,该第一用户界面包括第一用户界面对象,该第一用户界面对象基于所生成的指示来指示所识别的联系人信息是建议联系人信息。在一些具体实施中,该方法包括:阻止对应于选择建议联系人信息的输入调用应用程序来联系该实体。在一些具体实施中,该方法包括:在第一用户界面中检测对应于选择建议联系人信息的输入;并且响应于在第一用户界面中检测到对应于选择建议联系人信息的输入,显示第二用户界面,该第二用户界面包括与所识别的联系人信息相关联的第二用户界面对象,如果用户选择该第二用户界面对象,电子设备会将所识别的联系人信息添加到数据库。在一些具体实施中,第二用户界面包括与所识别的联系人信息相关联的第三用户界面对象,如果选择该第三用户界面对象,电子设备会停止显示第二用户界面对象。在一些具体实施中,显示第二用户界面时会停止显示第一用户界面。在一些具体实施中,第二用户界面显示消息的至少一部分。在一些具体实施中,该方法包括:检测对应于选择所显示的消息的输入;并且响应于检测到对应于选择所显示的消息的输入,调用应用程序来打开该消息。在一些具体实施中,消息包括电子邮件,应用程序包括电子邮件应用程序。在一些具体实施中,该方法包括:在第二用户界面中检测对应于选择建议联系人信息的输入;并且响应于在第二用户界面中检测到对应于选择建议联系人信息的输入,调用应用程序来使用所识别的联系人信息联系该实体。在一些具体实施中,该方法包括:响应于在第二用户界面中检测到对应于选择建议联系人信息的输入,将所识别的联系人信息添加到数据库。在一些具体实施中,该方法包括:响应于将所识别的联系人信息添加到数据库,停止显示第一用户界面对象。
[1702] 在一些具体实施中,提供了一种系统,该系统包括:用于接收消息的装置;用于在所接收的消息中识别实体和与该实体相关联的联系人信息的装置;用于生成关于所识别的联系人信息是建议联系人信息的指示的装置;以及用于显示对应于与该实体相关联的联系人的第一用户界面的装置,该第一用户界面包括第一用户界面对象,该第一用户界面对象基于所生成的指示来指示所识别的联系人信息是建议联系人信息。
[1703] 在又一方面,提供了一种在电子设备(例如,图1A中的设备100,其根据图1E所示的任意配置来实现)中执行的方法。该方法包括:接收消息;在所接收的消息中识别实体和与该实体相关联的联系人信息;以及显示对应于所接收的消息的第一用户界面,该第一用户界面包括:第一部分,其包括电子设备所接收到的消息的内容;以及第二部分,其包括:对应于所识别的实体的第一用户界面对象;对应于所识别的联系人信息的第二用户界面对象;以及与所识别的联系人信息相关联的第三用户界面对象,如果用户选择该第三用户界面对象,电子设备会将所识别的联系人信息添加到数据库中。在一些具体实施中,第二部分包括与所识别的联系人信息相关联的第四用户界面对象,如果选择该第四用户界面对象,电子设备会停止显示第三用户界面对象。在一些具体实施中,消息包括电子邮件。在一些具体实施中,所识别的实体包括姓名,并且所识别的联系人信息包括电话号码、地址、业务或社交网络处理。
[1704] 在一些具体实施中,提供了一种系统,该信息包括:用于接收消息的装置;用于在所接收的消息中识别实体和与该实体相关联的联系人信息的装置;以及用于显示对应于所接收的消息的第一用户界面的装置,该第一用户界面包括:第一部分,其包括电子设备所接收到的消息的内容;以及第二部分,其包括:对应于所识别的实体的第一用户界面对象;对应于所识别的联系人信息的第二用户界面对象;以及与所识别的联系人信息相关联的第三用户界面对象,如果用户选择该第三用户界面对象,电子设备会将所识别的联系人信息添加到数据库中。
[1705] 在又一方面,提供了一种在电子设备(例如,图1A中的设备100,其根据图1E所示的任意配置来实现)中执行的方法。该方法包括:接收消息;在所接收的消息中识别事件信息;生成与所识别的事件信息相关联的日历事件,所生成的日历事件包括事件信息和关于所生成的日历事件是建议日历事件的指示。在一些具体实施中,所识别的事件信息包括日期和时间。在一些具体实施中,所述识别包括:识别消息中的内容的格式;从预定义模板集合中识别被配置为辨识消息中呈内容的格式的事件信息的模板;并且使用所识别的模板分析内容,得到事件信息。在一些具体实施中,消息包括电子邮件,内容包括预订。在一些具体实施中,该方法包括:经由网络更新预定义模板集合。在一些具体实施中,所述识别包括基于日期和时间的预定义标引集合来在消息中识别一个或多个日期和时间的标引;并且分析一个或多个所识别的日期和时间的标引,得到事件信息。在一些具体实施中,该方法包括:经由网络更新日期和时间的预定义标引集合。在一些具体实施中,该方法包括:如果用户请求拒绝建议日历事件,则对一个或多个日期和时间的预定义标引进行降级。在一些具体实施中,该方法包括:把包括多个日历事件的数据库中的事件信息和电子设备上与事件信息相关联的语言相互关联,来生成一个或多个日期和时间的预定义标引。在一些具体实施中,该方法包括:接收对日历事件的请求;并且响应于对日历事件的请求,搜索建议日历事件。在一些具体实施中,该方法包括:响应于日历事件的生成,制止经由网络将建议日历事件存储到远程数据库中。在一些具体实施中,该方法包括:接收将建议日历事件添加到包括多个日历事件的数据库的请求;并且响应于将建议日历事件添加到数据库的请求,将所生成的日历事件存储到数据库中,而不存储关于所生成的日历事件是建议日历事件的指示。在一些具体实施中,该方法包括:响应于将建议日历事件添加到数据库的请求,经由网络将所生成的日历事件存储到远程数据库中,而不存储关于所生成的日历事件是建议日历事件的指示。在一些具体实施中,该方法包括:接收拒绝建议日历事件的请求;并且响应于拒绝建议日历事件的请求,阻止将来因为在未来消息中识别到该事件信息而生成该建议日历事件。
[1706] 在一些具体实施中,提供了一种系统,该系统包括:用于接收消息的装置;用于在所接收的消息中识别事件信息的装置;用于生成与所识别的事件信息相关联的日历事件的装置,其中所生成的日历事件包括事件信息和关于所生成的日历事件是建议日历事件的指示。
[1707] 在另外一方面,提供了一种在电子设备(例如,图1A中的设备100,其根据图1E所示的任意配置来实现)中执行的方法。该方法包括:接收消息;在所接收的消息中识别事件信息;以及显示对应于所接收的消息的第一用户界面,该第一用户界面包括:第一部分,其包括电子设备所接收到的消息的内容;以及第二部分,其包括:对应于所识别的事件信息的第一用户界面对象;以及与所识别的事件信息相关联的第二用户界面对象,如果用户选择该第二用户界面对象,电子设备会将所识别的事件信息添加到包括多个日历事件的数据库。在一些具体实施中,第二部分包括与所识别的事件信息相关联的第三用户界面对象,如果选择该第三用户界面对象,电子设备会停止显示第二用户界面对象。在一些具体实施中,消息包括电子邮件。在一些具体实施中,所识别的事件信息包括日期和时间。在一些具体实施中,提供了一种系统,该系统包括:用于接收消息的装置;用于在所接收的消息中识别事件信息的装置;以及用于显示对应于所接收的消息的第一用户界面的装置,该第一用户界面包括:第一部分,其包括电子设备所接收到的消息的内容;以及第二部分,其包括:对应于所识别的事件信息的第一用户界面对象;以及与所识别的事件信息相关联的第二用户界面对象,如果用户选择该第二用户界面对象,电子设备会将所识别的事件信息添加到包括多个日历事件的数据库。
[1708] 在另外又一方面,提供了一种在电子设备(例如,图1A中的设备100,其根据图1E所示的任意配置来实现)中执行的方法。该方法包括:接收消息;在所接收的消息中识别联系人信息或事件信息的多个实例;以及显示对应于所接收的消息的第一用户界面,该第一用户界面包括:第一部分,其包括电子设备所接收到的消息的内容;以及第二部分,如果选择该第二部分,电子设备会显示第二用户界面,该第二用户界面包括所识别的联系人信息或事件信息的多个实例的列表。在一些具体实施中,该方法包括:检测对应于选择第一用户界面的第二部分的输入;并且响应于检测到对应于选择第一用户界面的第二部分的输入,显示第二用户界面,该第二用户界面包括:所识别的联系人信息或事件信息的多个实例的列表;以及针对所识别的联系人信息或事件信息的多个实例中的每一者的第一用户界面对象,如果用户选择该第一用户界面对象,电子设备会将所识别的信息添加到数据库。在一些具体实施中,第二用户界面针对所识别的联系人信息或事件信息的多个实例中的每一者包括第二用户界面对象,如果选择该第二用户界面对象,电子设备会停止显示第一用户界面对象。在一些具体实施中,第二用户界面包括第三用户界面对象,如果选择该第三用户界面对象,电子设备会将所识别的联系人信息或事件信息的多个实例的分组中的每一者添加到数据库。在一些具体实施中,显示第二用户界面时会停止显示第一用户界面。
[1709] 在一些具体实施中,提供了一种系统,该信息包括:用于接收消息的装置;用于在所接收的消息中识别联系人信息或事件信息的多个实例的装置;以及用于显示对应于所接收的消息的第一用户界面的装置,该第一用户界面包括:第一部分,其包括电子设备所接收到的消息的内容;以及第二部分,如果选择该第二部分,电子设备会显示第二用户界面,该第二用户界面包括所识别的联系人信息或事件信息的多个实例的列表。
[1710] 在一些具体实施中,提供了一种电子设备,该电子设备包括:一个或多个处理器、存储器以及一个或多个程序,其中所述一个或多个程序存储在存储器中并且被配置为由所述一个或多个处理器执行,并且所述一个或多个程序包括用于执行本部分中上述任何方法的指令。在一些具体实施中,提供了计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,所述一个或多个程序包括指令,这些指令在由电子设备执行时,使得该设备执行本部分所述方法中的任何一种。在一些具体实施中,提供了一种系统,其包括用于执行本节中所述的任何方法的装置。
[1711] 第5部分:在数据稀疏性上下文中学习复杂用户模式的生成模型的决策树分段[1712] 本部分中的内容“在数据稀疏性上下文中学习复杂用户模式的生成模型的决策树分段”描述了根据一些实施方案的用于在数据稀疏性上下文中学习复杂用户模式的生成模块的决策树分段,并且提供了补充本部分中所提供的公开内容的信息。例如,本部分的一些部分描述了响应于设备上的事件来建议应用程序的方式,这补充了本部分中提供的公开内容,例如与填充对应于图9B-9C的预测部分930中的应用程序和深层链接的示能表示相关的那些公开内容。在一些实施方案中,本部分中描述的预测模型用于帮助识别适用于预测和向用户显示的应用程序(即,这些预测模型与方法600,800,1000和1200结合使用)。
[1713] 在数据稀疏性上下文中学习复杂用户模式的生成模型的决策树分段的发明内容[1714] 实施方案可以提供用于基于事件向计算设备的用户建议一个或多个应用程序的系统、方法和装置。计算设备的示例是电话、平板电脑、膝上型电脑或台式计算机。示例性事件包括连接到附件设备和改变电源状态(例如,从关机或睡眠状态唤醒)。
[1715] 预测模型可以对应于特定事件。可以使用计算设备的一个或多个属性来确定建议的应用程序。例如,可以从关于事件发生之后的用户交互以及当设备具有一个或多个属性时收集的历史数据的子集生成特定子模型(例如,在连接到某人的车这一事件之后选择了哪个应用程序的这一用户交互,其具有一天中的特定时间这一性质)。可以对应于计算设备属性的不同上下文来确定子模型树。并且,可以使用各种标准来确定何时生成子模型,例如,在历史数据子集中提供正确预测的子模型中的置信水平,以及历史数据分布中相对于父模型的信息增益(熵减少)。
[1716] 其他实施方案涉及与本部分所述的方法相关联的系统、便携式消费设备以及计算机可读介质。
[1717] 通过参考以下具体实施方式和附图,可更好地理解本部分的实施方案的实质和优点。
[1718] 在数据稀疏性上下文中学习复杂用户模式的生成模型的决策树分段的详细描述[1719] 实施方案可以提供用于向设备的用户建议应用程序的定制和个性化体验,从而使该设备的使用变得更容易。用户可以在特定事件之后发生与用户设备的一组充分的交互(例如,哪些应用程序与事件关联地被启动,或正在与事件关联地运行)。计算设备的示例是电话、平板电脑、膝上型电脑或台式计算机。示例性事件包括连接到附件设备和改变电源状态(例如,从关机或睡眠状态唤醒)。
[1720] 历史数据中的每个数据点可以对应于特定上下文(例如,对应于设备的一个或多个属性),随着时间推移,会获得用于特定上下文的越来越多的数据。用于特定事件的历史数据可用于向用户建议应用程序。由于不同的用户将具有不同的历史数据,因而实施方案可以提供个性化的体验。
[1721] 为了提供准确的个性化体验,各种实施方案可以从一个宽泛的模型开始,该模型被简单地训练而不提供应用程序建议,或为各种上下文建议相同的一组应用程序。利用足够的历史数据,该宽泛模型可以被分段为子模型,例如,作为子模型的决策树,每个子模型对应于历史数据的一个不同子集。然后,当事件确实发生时,可以选择特定的子模型来提供对应于设备当前上下文的建议的应用程序。可以使用各种标准来确定何时生成子模型,例如,在历史数据子集中提供正确预测的子模型中的置信水平,以及历史数据分布中相对于父模型的信息增益(熵减少)。
[1722] 在一些实施方案中,“置信水平”对应于模型可以基于历史数据进行正确预测(即,所预测的应用程序中的至少一个在事件之后受到选择)的概率。置信水平的一个示例是进行了正确预测的事件的百分比。另一个示例使用从正确预测数量和不正确预测数量生成的概率分布(例如,β分布)的累积分布函数(CDF)。可以通过对概率分布进行积分来计算CDF。在各种具体实施中,置信水平可以是CDF超出输入值(例如,在0和1之间,其中1对应于正确预测)的增长量,或者提供超出输入值的指定CDF的输入值。某一应用程序受到选择的概率可能需要是阈值概率,阈值概率是置信水平高于置信阈值的模型的推论。置信水平可以与熵度量成反比,因此从母模型到子模型的置信水平增加可以对应于熵的降低。
[1723] 因此,一些实施方案可以决定何时以及如何在用户推荐的上下文中将用户的历史数据分段。例如,在收集一段时间的用户活动之后,实施方案可以累积可能的分段候选项的列表(例如,位置、星期几等)。实施方案还可以训练整个数据集上的模型,并计算数据集和模型的联合分布的置信度度量。可以训练一组模型,为每个分段的数据集(即子集)训练一个,然后测量每个数据模型分布的置信度。如果所有数据模型分布的置信度是可接受的,那么实施方案可以执行分段(分割),然后递归地检查经分段的空间,以用于附加分段。
[1724] 以这种方式,一些实施方案可以使用推论来探索分段和泛化之间的折衷,为具有更加清晰而复杂的模式的用户创建更复杂的模型,并且为具有更嘈杂而简单的模式的用户创建简单的一般模型。并且,一些实施方案可以基于在潜在候选模型中确定散度分布来生成概率模型树。
[1725] I.基于事件建议应用程序
[1726] 实施方案可以基于事件来建议应用程序,该事件可能限于某些预定事件(也称为触发事件)。例如,当耳机插入到耳机接口中,则可以建议音乐应用程序。在一些实施方案中,上下文信息可以与事件结合使用以识别要向用户建议的应用程序。例如,当将一组耳机插入到耳机插口中时,可以使用与位置相关的上下文信息。如果设备位于例如健身房,则当耳机插入耳机插口时可建议应用程序A。另选地,如果设备位于家中,则当耳机插入耳机插口时可建议应用程序B。因此,可以在适当时候建议可能在某些上下文下受到使用的应用程序,从而增强用户体验。
[1727] 在一些实施方案中,“上下文信息”统称为可用于定义设备的上下文的任何数据。给定上下文的上下文信息可以包括一个或多个上下文数据,每个上下文数据对应于设备的一种不同属性。潜在的属性可以属于不同的类别,诸如时间类别或位置类别。上下文数据被用作模型(或子模型)的特征,而用于训练模型的数据可以包括相同类别的不同属性。特定上下文可以对应于设备属性的特定组合,或者仅对应于一个属性。
[1728] 图35_1是根据本发明实施方案的用于基于所检测的事件来建议应用程序的方法35_100的流程图。方法35_100可以由移动设备(例如,电话、平板电脑)或非移动设备执行,并且利用设备的一个或多个用户界面。
[1729] 在一些实施方案中,“用户界面”对应于用户与设备发生交互的任何界面。应用程序的用户界面允许用户与该应用程序进行交互。当应用程序运行时,用户界面可以是应用程序的界面。又如,用户界面可以是系统界面,其提供了一组简化的应用程序以供用户选择,从而使得用户更容易地使用该应用程序。
[1730] 在框35_110处,检测到事件。在一些实施方案中,可以确定事件是否为用于建议应用程序的触发事件。在一些具体实施中,仅针对某些预定事件(例如,触发事件)来确定建议的应用程序。在其他具体实施中,可以针对动态事件列表来确定建议的应用程序,该动态事件列表可以基于与设备上的应用程序所发生的历史用户交互来更新。
[1731] 在一些实施方案中,可以将触发事件识别为充分可能地与设备的独特操作相关联。触发事件的事件列表可以存储在设备上。此类事件可以是默认列表,并作为操作系统的一部分被维护,并且可以由或可以不由用户进行配置。
[1732] 触发事件可以是由用户和/或外部设备引起的事件。例如,触发事件可以是当附件设备连接到移动设备时。示例包括将耳机插入耳机插口、进行蓝牙连接、打开设备、将设备从睡眠唤醒、到达特定位置(例如,被识别为经常访问的位置)等。在该示例中,这些事件中的每一个可以被分类为不同的触发事件,或者触发事件可以共同地是连接到移动设备的任何附件设备。作为其他示例,触发事件可以是用户与设备的特定交互。例如,用户可将移动设备按与运行一致的方式移动,这种情况下设备的运行状态是触发事件。可以基于设备的传感器来确定这样的运行状态(或其他状态)。
[1733] 在框35_120处,识别到与该事件相关联的应用程序。例如,当耳机插入到耳机接口中,则可以识别到音乐应用程序。在一些实施方案中,可以识别不止一个应用程序。预测模型可以识别所述相关联的应用程序,其中可以为特定事件选择预测模型。预测模型可以使用上下文信息来识别应用程序,这是因为例如不同的应用程序可能更可能在不同的上下文中受到使用。一些实施方案可以仅在有足够概率被用户选择时(例如,由用户与设备的历史交互确定)才能识别应用程序。
[1734] 预测模型可以由子模型组成,每个子模型用于不同的上下文数据组合。不同的组合可以具有不同上下文数据量。这些子模型可以在层级树中生成,其中更具体组合的子模型在层级树中所处位置更低。在一些实施方案中,只有当子模型可按比树中更高的模型更准确地预测应用程序时,才会生成该子模型。以这种方式,可以对用户将选择哪个应用程序进行更准确的预测。在一些实施方案中,预测模型和子模型可以识别在存在上下文数据的特定组合时在事件之后由用户选择的前N个应用程序(例如,固定百分比数)。
[1735] 上下文信息可以针对特定上下文指定设备的一个或多个属性。上下文可以是当接收到触发事件时设备的周围环境(上下文的类型)。例如,上下文信息可以是一天中检测到该事件的时间。在另一示例中,上下文信息可以是当检测到该事件时设备的特定位置。在又一示例中,上下文信息可以是检测到触发事件时的特定日期。这样的上下文信息可以提供关于设备的上下文的更有意义的信息,使得预测引擎可以准确地建议用户在该上下文中可能使用的应用程序。因此,与不使用上下文信息相比,使用上下文信息的预测引擎可以更准确地向用户建议应用程序。
[1736] 在框35_130处,与应用程序关联地执行一个动作。在一个实施方案中,该动作可以是为用户显示用以选择以运行应用程序的用户界面。用户界面可按各种方式提供,例如通过在设备的屏幕上显示、投影到表面上、或者提供音频接口的方式提供。
[1737] 在其他实施方案中,可以运行某一应用程序,并且可以向用户提供特定于该应用程序的用户界面。可以响应于例如在锁定屏幕上识别应用程序,而提供任一个用户界面。在其他具体实施中,可以在(例如,通过密码或生物识别)认证用户之后提供用以与应用程序交互的用户界面,但是这样的用户界面将比只有home屏幕的情况更具体,诸如要运行的建议应用程序的较小列表。
[1738] 在一些实施方案中,“锁定屏幕”是当用户未被验证因而在大多数使用情况下设备被锁定时所示的屏幕。一些功能可以是外露的,例如相机。在一些实施方案中,如果对应于所建议的应用程序的用户界面外露在锁定屏幕上,则可以获得与所建议的应用程序相关联的一些功能。例如,可以运行该应用程序。如果应用程序从锁定屏幕运行,则功能可能受到限制,并且当用户受到验证时有限的功能可得以扩展。
[1739] 在一些实施方案中,“home屏幕”是当设备首次接通电源时出现的设备屏幕。对于移动设备,home屏幕通常显示与可在设备上运行的各种应用程序相对应的图标阵列。可以访问其他屏幕来浏览home屏幕上未出现的其他应用程序。
[1740] II.分段
[1741] 每当发生特定事件(例如,插入耳机或使设备上电时),设备可以跟踪与事件相关联地使用哪个应用程序。响应于特定事件的每次出现,设备可以保存对应于所选应用程序、使用该应用程序执行的动作以及该事件的数据点。在各种实施方案中,可以单独地保存数据点或与针对特定应用程序被选择的次数确定的计数聚合地保存数据点,其中该计数可以包括用于特定动作的计数。因此,针对同一选择的应用程序的不同动作确定不同的计数。先前用户与设备发生交互的历史数据可以用作确定预测模型的输入,并且用作确定是否要创建子模型以及创建多少个子模型的输入。
[1742] 一旦检测到特定的事件,就可以选择对应于该特定事件的预测模型。将使用对应于特定事件的历史数据作为训练过程的输入来确定该预测模型。然而,历史数据可能在许多不同的上下文(即,上下文信息的不同组合)中发生,其中在不同的上下文中选择不同的应用程序。因此,总的来说,历史数据可能不会提供将在特定事件发生时受到明确选择的应用程序。
[1743] 可以对诸如神经网络或回归的模型进行训练,以识别用于特定上下文的特定应用程序,但是当使用了所有相应的历史数据时,这可能较为困难。使用所有历史数据可能导致预测模型过度拟合,并且导致准确度降低。本发明的实施方案可以将历史数据分段成历史数据的不同输入集,每一个输入集对应于不同的上下文。可以针对不同的历史数据输入集训练不同的子模型。
[1744] 分段可以提高机器学习系统的性能。在分段的一个步骤中,输入空间可以分为两个子空间,这些子空间中的每一个都可以用独立的子模型独立求解。此类分段过程可以增加系统可用的空闲参数的数量,并且可以提高训练准确度,但其代价为减少每个模型中的数据量,这可以在系统被显示新数据时降低系统的精度,例如,如果子模型的数据量很小。只有当从所得子空间创建的数据和模型参数的联合分布较为确信时,实施方案才能对输入空间进行分段。
[1745] A.基于不同上下文数据的不同模型
[1746] 当特定事件发生时,设备可以处于各种上下文中,例如在不同的位置,在不同的时间,在设备的不同运动状态(诸如跑步、步行、在开车,或静止不动),或处于不同的电力使用状态(诸如自睡眠模式被打开或转变)。可以联合所检测的事件检索上下文信息,例如在检测到该事件之后检索上下文信息。可以使用上下文信息来帮助预测可能关于所检测的事件使用哪个应用程序。可以使用诸如加速度计、陀螺仪或GPS传感器的运动传感器来确定不同的运动状态。
[1747] 实施方案可按各种方式使用上下文信息。在一个示例中,可以使用一条上下文数据(例如,对应于设备的一个属性)作为特定子模型的特征,来预测哪个接收人最有可能被选择。例如,设备的特定位置可以被提供为子模型的输入。这些特征是子模型组成的一部分。
[1748] 又如,上下文信息的一些或全部上下文数据可以在分段过程中使用。可以使用某段上下文数据来对输入的历史数据进行分段,使得仅使用与该段上下文数据的对应属性相对应的历史数据来确定特定子模型。例如,设备的特定位置不会被用作子模型的输入,而是用于选择要使用的子模型,以及相应地使用哪个输入数据来生成特定子模型。
[1749] 因此,在一些实施方案中,特定上下文数据可用于识别要使用哪个子模型,并且其他上下文数据可以用作子模型的输入,用于预测用户可能与哪个应用程序进行交互。特定属性(例如,特定位置)不对应于特定子模型,该特定属性可被用作未来(输入)所使用的子模型。如果该特定属性对应于某一特定子模型,则该属性的使用情形可以变得更加丰富,因为整个模型都专用于该特定属性。
[1750] 将子模型专用于特定属性(或属性的组合)的一个缺点是,可能没有大量与该特定属性相对应的历史数据。例如,用户可能只在特定位置几次执行特定事件(例如,插入耳机)。这种有限的数据量也被称为数据稀疏。当使用属性的组合(例如,特定时间的特定位置)时,数据可能变得更加稀疏。为了克服这个缺点,实施方案可选择性地确定何时生成新的子模型作为分段过程的一部分。
[1751] B.获取更多数据时的分段
[1752] 当用户首次开始使用设备时,将不会存在用于预测用户在特定事件后可能会对应用程序进行的动作的任何历史数据。在初始模式下,可以获得历史数据,而不提供任何预测。随着获得更多的历史数据,可以确定是否将预测模型分段为子模型。利用更多的历史数据,子模型可以被分段成更多的子模型。当有限的历史数据可用于用户与设备的交互时,不能采取任何动作,或者例如可以使用更一般的模型。
[1753] 图35_2示出了根据本发明实施方案的分段过程35_200。分段过程35_200可以由用户设备(例如,移动设备,诸如电话)执行,用户设备可以维护数据隐私。在其他实施方案中,可以由与用户设备通信的服务器执行分段过程35_200。分段过程35_200可以在一段时间内(例如,几天、几个月或几年)中部分地执行,或者可以一起执行整个分段过程35_200,并且可以周期性地重新进行。分段过程35_200可以作为预测引擎的例程执行。
[1754] 图35_2示出了对应于收集更多数据的时间线35_230。随着更多数据被收集,预测模型可以被分段成数个子模型。在收集数据的不同点,可能会发生分段(例如,分段35_201)。随着更多数据被获取,可能会发生另一次分段。尽管图35_2示出了沿着时间线35_230的不同点处发生的某些分段的新子模型,但每个分段可以涉及完全重做分段,这可能或可能不导致如先前分段中那样创建的相同子模型。
[1755] 在该示例中,事件模型35_205可以对应于特定事件(例如,连接到特定设备,诸如汽车)。事件模型35_205可以对应于针对该特定事件的预测引擎的顶级。在一开始,对于该特定事件,只能有一个模型,因为可用的历史数据最少。此时,事件模型35_205可能只是出于训练目的跟踪历史数据。事件模型35_205可以进行预测并将这些预测与实际结果进行比较(例如,用户是否在检测到事件之后的指定时间内与所预测的应用程序进行交互)。如果没有应用程序具有大于阈值的概率,则在特定事件发生时不会执行任何应用程序。
[1756] 在一些实施方案中,事件模型35_205仅使用针对特定设备收集的数据。在其他实施方案中,事件模型35_205可播种有从其他用户聚集的历史数据。这样的历史数据可以允许事件模型35_205能够提供一些建议,这可以随后允许获得额外的数据点。例如,可以跟踪用户是否经由用户界面与建议的应用程序进行交互,这可以提供比用户是否确实选择应用程序提供更多的数据点。
[1757] 随着收集更多数据,可以周期性地确定是否应该进行分段。此类确定可以基于是否可以通过分段获得更高的准确度。该准确度可作为可以进行预测的概率水平来测量,这在下文更详细地描述。例如,如果可将应用程序预测为具有比事件模型35_205更高水平的子模型概率,则可以执行分段。还可以使用一个或多个其他标准,来确定是否应该创建子模型作为分段过程的一部分。例如,一个标准可以是,在应用子模型之前,子模型必须具有统计意义上显着的输入历史数据量。由于在少量数据上训练的模型可能不准确,因此对数据量的要求可以为子模型提供更大的稳定性,并且最终提供更准确的数据。
[1758] 在分段35_201处,确定将事件模型35_205分段成健身房子模型35_210和另一个子模型35_240。这种分段可能在用户对特定上下文具有明确行为时发生。在该实施例中,当上下文是设备位于健身房(可能是特定健身房或任何健身房,这可以通过交叉引用商家位置确定)时,存在明确的行为。此类交叉引用可以使用存储在服务器上的外部数据库。当健身房子模型35_210可按比事件模型35_205更大的概率预测由用户选择的正确应用程序时,可以测出确定的行为。
[1759] 作为分段35_201的一部分,输入的历史数据用于生成健身房子模型35_210,并且用于生成对应于除了健身房之外的所有其他上下文的子模型35_240。其他子模型35_240可用于预测当上下文不是健身房时用户可能会与之进行交互的应用程序。
[1760] 在收集更多数据之后的分段35_202处,确定可以从事件模型35_205进一步分段,以生成超市模型35_220。可以在超市获得足够数量的数据点之后进行该确定,使得超级市场模型35_220可利用足够的置信度来进行预测。相对于从其他子模型35_240获得的置信度而言,可以测得足够的置信度。一旦超市子模型35_220可利用比另一子模型35_240更大的置信度来预测应用程序,就可以执行分段。在分段35_202之后,子模型35_240将对应于除健身房和超市之外的任何其他上下文。
[1761] 在已收集更多数据之后的分段35_203处,确定可以进行健身房子模型35_210的分段。在这种情况下,确定在被分段为特定时间,特别是下午时间(例如,12点-4点)的健身房的历史数据中,可按更高的置信度来预测应用程序。因此,当用户在下午位于健身房时,可使用下午健身房子模型35_211来预测用户可能与哪些应用程序进行交互。如果用户在其他时间位于健身房,则可以使用健身房子模型35_210,其等同于在树中的某一位置处具有一些其他子模型,即,以与所描述的其他子模型35_240存在相同方式。
[1762] 在已收集更多数据之后的分段35_204处,确定可对健身房子模型35_210进行进一步分段,以生成上午健身房子模型35_212。在这种情况下,针对上午时间已收集到足够的历史数据,在该时间中,可按比使用更一般的健身房子模型35_210(其仅使用不与下午健身房子模型35_211相对应的数据)更高的准确度来预测应用程序。
[1763] 1.默认模型
[1764] 当设备被用户第一次获得(例如带来)时,可以使用默认模型。默认模型可以应用于一组事件(例如,指定为触发事件的所有事件)。如上所述,可以作为种子的默认模型是来自其他用户的聚合数据。在一些实施方案中,默认模型可以简单地选取最流行的应用程序,而不管上下文,例如,由于没有足够的数据可用于任何一个上下文。再次收集数据后,可以丢弃默认模型。
[1765] 在一些实施方案中,默认模型可以具有硬编码的逻辑,其指定要建议的预定应用程序和要执行的动作。这样,可以探测用户如何响应(例如,否定响应是用户不选择建议的应用程序),这样可以提供简单地跟踪来自用户的肯定响应的额外数据。类似于这种默认模型,可以运行预测模型来将其预测与实际结果进行比较。然后可以根据实际结果来改进预测模型。当预测模型具有足够的置信度时,可以从默认模型切换到预测模型。类似地,可以跟踪子模型的性能。当子模型具有足够的置信度时,子模型可以用于给定的上下文。
[1766] 2.初始训练
[1767] 预测模型(例如,事件模型35_205)可以使用到目前为止收集的历史数据来进行初始训练,其中该模型不向用户提供建议。这种训练可以称为初始训练。可以周期性地(例如,每天)更新预测模型来作为后台进程的一部分,这可以在设备充电并且不使用时发生。训练可以涉及优化模型的系数,以便优化正确预测的数量,并与历史数据中的实际结果进行比较。在另一示例中,训练可以包括识别实际选择的前N个(例如,预定数量或预定百分比)应用程序。训练后,可以测量模型的准确度,以确定是否应使用该模型来向用户提供建议的应用程序(和潜在的相应动作)。
[1768] 一旦模型获得足够的准确度(例如,顶部选择的应用程序是以足够高的准确度被选择的),则可以实现该模型。对于顶级模型(例如,事件模型35_205),这种情况可能不会发生,但是当针对特定上下文测试子模型时可能发生这种情况。因此,可以类似地对子模型执行这样的初始训练。
[1769] 随着历史信息通过移动设备的使用而累积,可以考虑到新的历史信息来周期性地对预测模型进行训练(即更新)。经过训练后,预测模型可以根据用户和移动设备之间的最新交互模式更准确地建议应用程序和动作。当记录了大量历史信息时,训练预测模型可能是最有效的。因此,训练可以在足够长的时间间隔发生,以允许移动设备检测与用户的大量交互。然而,在训练项目之间等待太久的时间段可能会妨碍预测引擎的适应力。因此,训练项目之间的合适时间段可以在15至20小时之间,诸如18小时。
[1770] 训练预测模型可能需要时间,并且可能会干扰移动设备的使用。因此,可以在用户最不可能使用该设备时发生训练。预测用户将不使用设备的一种方法是在设备未被使用时等待某个时间段,例如在没有按钮被按下时以及设备没有移动时。这可以指示用户处于在一段短时间内不会与手机交互的状态,例如当用户睡着时。任何合适的持续时间都可以作为要等待的时间段,诸如一到三个小时。在特定实施方案中,等待的时间段是两个小时。
[1771] 在这两小时结束时,可以更新预测模型。然而,如果用户在两小时结束之前与移动设备交互(例如,按下按钮或移动设备),则可以重新启动两个小时的时间段倒计时。如果在达到两个小时不活动之前该时间段不断重新启动,则移动设备可以在某个绝对时间段之后强制训练预测模型。在一个实施方案中,可以将该绝对时间段被确定为移动设备的用户友好性由于预测模型过时而开始下降的阈值时间段。该绝对时间段可以在10至15小时之间,或在特定实施方案中为12小时。因此,训练之间的最长时间可以在28小时(18+10小时)至33小时(18+15小时)之间。在一个特定实施方案中,该最长时间为30小时(18+12小时)。
[1772] III.基于上下文信息选择模型
[1773] 预测模型和任何子模型可以被组织为决策树,例如,如图35_2所示。决策树的子模型也可以称为节点。决策树的每个节点可以对应于不同的上下文,例如上下文数据的不同组合。可以使用上下文信息的上下文数据遍历决策树,以确定要使用哪个子模型。
[1774] A.遍历决策树
[1775] 图35_3示出了根据本发明实施方案可生成的决策树35_300。事件模型35_305对应于决策树35_300的顶级模型。事件模型35_305可以对应于特定事件,例如,如本节所述。可以响应于相应事件的检测来选择事件模型35_305。一旦选择了事件模型35_305,就可以确定要使用哪个子模型。每个子模型可以使用不同的历史数据,例如互相排斥的数据集合。对于不同的检测事件,将存在具有不同子模型的不同决策树。
[1776] 决策树35_300的第一层级对应于位置类别。节点35_310对应于位置1,其可以被定义为位置1的边界区域(例如,在指定的半径内)。节点35_320对应于位置2。节点35_330对应于位置3。节点35_340对应于任何其他位置。
[1777] 当上下文信息对应于特定位置而不是更一般的节点35_340可以对应的位置时,如果子模型可以更高置信度预测应用程序,则可以生成节点35_310、35_320和35_330中的每一个。节点35_310和35_320具有更多的子节点,而节点35_330没有子节点。
[1778] 实施方案可以通过搜索节点35_310、35_320和35_330中的任一个是否与特定发生的上下文信息相匹配来遍历决策树35_300。如果用户设备的针对事件的特定发生的上下文信息指示包括位置3的上下文,则为节点35_330找到匹配。由于节点35_330没有任何其他子节点,所以可以使用用于节点35_330的子模型。
[1779] 节点35_310具有两个子节点:节点35_311和节点35_312。节点35_311对应于特定时间(时间1),并且节点35_312对应于与时间1不匹配的所有其他时间。如果针对事件的当前发生的上下文信息包括位置1(并且因此包括与节点35_310的匹配),则可以执行搜索以确定该上下文信息是否包括时间1(即,与节点35_311的匹配)。如果该上下文信息包括时间1(即,与位置1组合),则可以使用用于节点35_311的子模型来进行预测。如果该上下文信息不包括时间1,则可以使用用于节点35_312的子模型来进行预测。
[1780] 节点35_320具有两个子节点:节点35_321和节点35_322。节点35_321对应于用户设备是否连接到特定设备(设备1),并且节点35_322对应于用户设备何时未连接到设备1。如果针对事件的当前发生的上下文信息包括位置2(并且因此包括与节点35_310的匹配),则可以执行搜索以确定该上下文信息是否包括与设备的连接(即,与节点35_321的匹配)。
如果该上下文信息包括与设备1的连接(即,与位置2组合),则可以使用用于节点35_321的子模型来进行预测。如果该上下文信息不包括与设备1的连接,则可以使用用于节点35_322的子模型来进行预测。
[1781] 因此,一旦检测到树的底部,则可以使用最终节点的子模型来进行预测。树35_300的所有分支可以是确定性的,总是为相同的上下文信息选择最终节点。使决策树35_300的相同层级的所有节点对应于相同类别可以避免选择适用节点时发生冲突。例如,如果事件模型35_305的子节点对应于时间1,则可能存在冲突,因为它可能与节点35_311冲突。在这样的实施方案中,处于相同级别但在不同父节点下的节点可以对应于不同类别,如节点35_311与35_312的集合以及节点35_321与35_322的集合的情况。
[1782] 一旦基于检测到的事件和上下文信息选择了子模型,则可以使用所选择的子模型来预测更多的应用程序和任何相应的动作。在一些实施方案中,针对预测应用程序所采取的动作可以取决于预测该应用程序的置信度水平。
[1783] B.方法
[1784] 图35_4是根据本发明实施方案的基于事件向计算设备的用户建议应用程序的方法35_400的流程图。方法35_400可以由计算设备(例如,由正在跟踪与用户设备的用户交互的用户设备)来执行。方法35_400可以使用一组历史交互,包括具有计算设备的一个或多个属性的不同集合的交互来建议应用程序。
[1785] 在框35_410处,设备在输入设备处检测事件。输入设备的示例是耳机接口、网络连接设备、触摸屏、按钮等。事件可以是移动设备与外部实体诸如外部设备或用户交互的任何动作。事件可以是对于设备重复的类型。因此,可以针对事件的不同发生获得历史统计数据。可以使用这种历史数据来训练模型和子模型。
[1786] 在框35_420处,选择对应于事件的预测模型。所选择的预测模型可以取决于事件。例如,当事件涉及与外部设备建立蓝牙连接时,可以选择设计用于蓝牙连接的预测模型。又如,当事件涉及将一组耳机插入耳机接口时,可以选择设计用于耳机连接的预测模型。
[1787] 在框35_430处,接收计算设备的一个或多个属性。这一个或多个属性可以由在设备上执行的应用程序建议引擎接收。如本节所述,属性可以对应于时间、位置、运动状态、当前或先前的电源状态(例如,开、关或睡眠)、充电状态、当前音乐选择、日历事件等。这样的一个或多个属性可以对应于定义设备的特定上下文的上下文数据。这一个或多个属性可以在检测到事件的时间附近(例如在一段时间内)被测量。该时间段可以包括在检测到事件之前和之后的时间、恰好在检测到事件之前的时间段,或恰好在检测到事件之后的时间。
[1788] 在框35_440处,使用一个或多个属性来选择预测模型的特定子模型。例如,可以遍历决策树以确定该特定子模型。特定子模型可以对应于一个或多个属性,例如,因为这一个或多个属性可以唯一地标识该特定子模型。当决策树被定义为在同一父节点下不具有不同类别的属性时,可能会发生这种情况。
[1789] 可以使用用户与设备的历史交互的特定子集来生成特定子模型。该特定子集可以由分段过程产生,分段过程通过创建子模型来提高准确度。可以通过在事件发生后跟踪用户与设备的交互来获得历史交互的特定子集。当获得特定子集时,计算设备具有这一个或多个属性。因此,设备的当前上下文对应于设备的在其中获得了历史交互的特定子集的上下文。
[1790] 在框35_450处,特定子模型识别要向用户建议的一个或多个应用程序。这一个或多个应用程序可以具有由用户与该事件关联地访问的一个或多个应用程序中的至少一个的至少一个阈值概率。预测历史数据中的一个或多个应用程序中的一个可以被识别为一次正确预测。阈值概率可以采用各种方式来测量,并且可以使用从历史数据确定的概率分布,如下面更详细描述的。例如,可以需要概率分布的平均(均值)概率、中值概率或峰值高于阈值概率(例如,高于0.5,相当于50%)。因此,置信水平可以是概率分布的平均值、中值或峰值。另一个示例是概率分布上高于特定值的区域大于阈值概率。
[1791] 在框35_460处,为用户提供用于与一个或多个应用程序进行交互的用户界面。例如,设备可以经由用户可以与之交互以指示用户是否希望访问所识别的应用程序的界面,来向用户显示所识别的应用程序。例如,该用户界面可以包括触敏显示器,该显示器向用户显示所识别的应用程序中的一个或多个,并且允许用户通过与该触敏显示器交互来访问由设备识别的一个或多个应用程序。该用户界面可以允许在具有比计算设备home屏幕上提供的应用程序更少的应用程序的显示屏上交互。
[1792] 例如,可以在锁定屏幕上提供一个或多个建议的应用程序。用户可以选择从锁定屏幕打开应用程序,从而使用户更容易与应用程序进行交互。可以在其他屏幕上提供用户界面,该用户界面可以在激活按钮以开始使用设备之后出现。例如,特定于应用程序的用户界面可以在(例如,经由密码或生物特征)认证用户之后出现。
[1793] C.示例性模型
[1794] 在一些实施方案中,模型可以为给定的数据集(或子集)选择前N个应用程序。由于这N个应用程序在过去被最多地选取,所以可以预测,未来的行为将反映过去的行为。N可以是预定数量(例如,1,2或3)或百分比的应用程序,它可以是与事件关联地实际使用的应用程序百分比(即,不是设备上的所有应用程序)。这样的模型可以选择前N个应用程序来提供给用户。可以进行进一步的分析,例如,以确定这N个应用程序中的每个应用程序的概率(置信)水平,从而确定是否将它们提供给用户,以及如何将它们提供给用户(例如,动作),这可以取决于置信水平。
[1795] 在N等于3的示例中,当事件在上下文信息对应于特定子模型的情况下发生时,模型将返回启动最多的前三个应用程序。
[1796] 在其他实施方案中,与仅使用上下文信息来选择子模型相反,子模型可以使用复合信号,其中一些上下文信息用于确定预测的应用程序。例如,神经网络或逻辑回归模型可以使用位置(或其他特征)并构建这些特征的线性加权组合的类型来预测应用程序。当子模型的数据量明显很大时,此类更复杂的模型可能更适合。一些实施方案可在再次获得用于特定节点(即,上下文数据的特定组合)的数据之后切换在该节点处使用的子模型的类型。
[1797] IV.模型和决策树的生成
[1798] 在一些实施方案中,可以基于重新生成时的历史数据来周期性地(例如,每天)重新生成决策树。因此,决策树在不同的日子可以有不同的形式。子节点(另一个子模型)的生成可以根据用于预测应用程序的置信度增大(也称为信息增益)来控制。子节点的生成还可以根据用于该子节点的数据是否具有统计显著性来控制。在一些实施方案中,给定级别的所有子节点(例如,健身房子模型35_210和其他子模型35_240)可能需要具有统计显著性并且相对于父模型提供信息增益。
[1799] 在确定决策树的节点时,可以采用各种方式执行分段,以产生不同的决策树。例如,可以使用特定位置和特定时间两者。在一些实施方案中,在决策中可以产生更高的为预测应用程序提供最高信息增益(置信度)增加的属性。这样的分段过程可以确保预测用户将与之交互的正确应用程序的最高概率。
[1800] A.模型的准确度分布
[1801] 模型的准确度可以对照历史数据进行测试。对于给定的事件,历史数据可以识别哪些应用程序与事件关联地使用(例如,恰好在事件之前或恰好在事件之后,诸如一分钟内)。对于每个事件,可以使用上下文数据来确定特定模型。此外,上下文数据可以用作模型的输入特征。
[1802] 在模型(或子模型)选择顶部应用程序的示例中,可以将实际选择(启动)顶部应用程序时的多个历史数据点确定为正确的计数,并且可以将顶部应用程序未被选择时的多个历史数据点确定为不正确的计数。在对于选择前N个应用程序的模型而言N大于一的实施方案中,正确的计数可对应于启动了这前N个应用程序中的一个时的任何历史数据点。
[1803] 正确的计数和不正确的计数可用于确定一个分布,该分布指定模型的准确度如何。可以将二项分布用作准确度分布。具有参数m和p的二项分布是m个独立是/否实验的序列中成功次数的离散概率分布。这里是/否实验是关于预测的N个应用程序中的一个是否正确。例如,如果该模型预测音乐应用程序将被启动,并且音乐应用程序已被启动,则数据点将添加到“是”(“真”)实验数量。如果音乐应用程序未被启动(例如,启动了另一个应用程序或未启动任何应用程序),则数据点将添加到“否”(“伪”)实验数量。
[1804] 根据贝叶斯定理,p(A│B)=(p(B|A)(P(A))/(P(B))。B是获得指定的已确定的正确计数T和不正确计数F的事件。A是预测的应用程序正确的事件。P(A)是随机选择正确应用程序的先验(期望)概率,它可以被假设为1,因为没有任何特定应用程序会比任何其他应用程序更被期望,至少没有历史数据。P(A)是模型正确的概率(它对应于正确计数除以总历史事件)。P(B|A)是对于给定概率r(即事件A,它可以被取为0.5来表示正确或不正确的相同概率),获得正确计数T和不正确计数F的似然函数。P(A|B)是要确定的后验概率,即给定历史数据B时,选择预测应用程序中的一个的概率。
[1805] 如果先验分布均匀,则P(A)不存在,剩下P(A|B)/P(B),它等于Beta[正确数,不正确数],即参数为α=正确数和β=不正确数的beta分布。因为对于α=0或β=0,β函数不明确,所以实施方案可以假定对于正确数和不正确数,初始值为1。Beta[1+正确数,1+不正确数]是二项分布。
[1806] 对于贝叶斯统计,给定证据X(例如,历史数据的正确计数和不正确计数),后验概率p(θ│X)是参数θ的概率(例如,实际选择的应用程序是预测应用程序中的一个)。它与似然函数p(x|θ)形成对照,该似然函数是给定参数(例如,为事件选择该预测应用程序),证据X(例如,历史数据的正确计数和不正确计数)的概率。这两者的关系如下:让我们有一个先验信念,即概率分布函数为P(θ)(例如,所选应用程序正确的期望概率)并且观测值X具有似然度p(x|θ),则后验概率被定义为p(θ│X)=(p(X|θ)(P(θ))/(P(X))。后验概率可以被认为与似然度和先验概率之积成正比。
[1807] 可以使用其他准确度分布。例如,可以使用Dirichlet分布,该分布是beta分布的多元推广。Dirichlet分布是分类分布和多项分布的共轭先验,类似于beta分布是二项分布的共轭先验。Dirichlet使其概率密度函数返回这样的信念,即K个对立事件的概率是x_i,如果给定每个事件已被观测α_i-1次。Dirichlet分布可用于将应用程序启动的整个直方图(即,针对特定事件的预测应用程序启动次数)生成为多项分布。
[1808] 相反,实施方案可以将它们分成两类(正确和不正确),因此使用二项分布并且不必提供整个直方图。其他实施方案可以使用Dirichlet分布(多项分布的共轭先验)来尝试解决更难的描述整个直方图的问题,但是由于需要解释更多的数据,这需要使更多的数据可信。
[1809] B.示例性二项分布
[1810] 图35_5A至图35_5D示出了根据本发明实施方案的用于各种正确数和不正确数的示例性二项分布的曲线图。这些曲线图是从Beta[1+正确数,1+不正确数]产生的。在曲线图中的横轴上,1对应于正确的预测,0对应于不正确的预测。纵轴提供模型将正确的频率的概率。这些分布也称为概率密度函数(PDF)。可以将分布归一化以用于比较。
[1811] 图35_5A示出了对于两个正确预测和两个不正确预测的二项分布。这样的模型将具有相等的正确数和不正确数,因此最高概率出现在0.5处。0.5处的最大值表示,最可能的是该模型只有一半的时间预测准确。鉴于数据点数量较少,该分布相当宽。因此,关于模型准确度的置信度很低。可感知的概率是该模型在50%的时间较不准确,或者在50%的时间较准确。但是,由于数据点数量少,因此确定准确度的置信度很低。
[1812] 图35_5B示出了对于2个正确预测和1个不正确预测的二项分布。这样的模式在66%的时间是正确的。因此,该分布的峰值出现在约0.66处。但是,鉴于数据点数量较少,因此置信度非常低。可感知的概率是该模型只在10%或20%的时间才可能准确。
[1813] 图35_5C示出了对于四个正确预测和两个不正确预测的二项分布。这样的模型也是在66%的时间是正确的。但是,仍鉴于数据点数量较少,仍然存在可感知的概率,即该模型只有30%的准确率,如果数据再次可用的话。
[1814] 图35_5D示出了对于40个正确预测和20个不正确预测的二项分布。这样的模式同样在66%的时间是正确的。但是,鉴于数据点数量较多,该模型的准确率只有30%的可能性非常低。因此,该分布表明在能够确定模型的准确度为66%方面的置信度更高。此外,该分布下更多的区域在0.5的右侧,因此可以比图35_5B的情况下更可信地确定该模型在至少50%的时间是准确的。
[1815] C.统计显著性
[1816] 如果模型可以足够的置信度准确地区分它何时正确和何时错误的情况,则可以将该模型视为具有统计显著性。可以使用基于不正确预测和正确预测数量确定的后验概率分布来以足够的置信度确定该模型是否足够准确。
[1817] 统计显著性所需的置信水平可以采用各种方式提供,并可以具有各种标准。可以要求分布的平均准确率(正确数/总数)、分布的峰值或分布的中位数具有一定的值。例如,可以要求该模型在至少50%的时间是正确的,例如根据分布的平均值所测量的(即,大于0.5)。正确数/总数也称为最大似然估计。
[1818] 另一个标准(置信水平)可以用于准确度的置信度。置信度可以通过分布的在下限上方的积分(例如,分布的在0.25或其他值上方的面积)来衡量。分布曲线下的面积也称为累积分布函数。在一个实施方案中,该标准可以是PDF的95%的面积大于0.25。区间[x,1.0]覆盖PDF下方95%的面积的点被称为“置信下限”。因此,如果你正确了两次并且错误了一次,则表示你在66%的时间是正确的,但这并不具有统计显著性,因为分布非常宽,如图5B中那样。
[1819] 一些实施方案只有在模型足够准确并且有足够的置信度来了解准确度时,才会开始使用该模型(例如,顶级模型或子模型)。例如,初始模型可能会在使用之前被训练一段时间。只有当准确度和置信度高于相应的阈值,实施方案才可能开始使用该模型来向用户提供建议。在一些实施方案中,对PDF一定量区域的要求可以提供用于确定是否使用模型的单个标准,因为如果该区域被足够地向右移动,则准确度可被认为足够高。
[1820] 在一些实施方案中,初始模型可以使用来自其他人的数据来提供更多的统计值,至少在起初可以这样。然后,一旦获得足够的统计值,那么只能使用特定人员的数据。此外,特定于用户的数据可以具有更高的权重,以便逐步淘汰来自其他人的数据。
[1821] D.信息增益(熵)
[1822] 可以在模型的第一概率分布和子模型的第二概率分布之间进行比较,以确定是否将模型分段。在一些实施方案中,该比较可以确定是否存在信息增益(例如,Kullback-Leibler散度),或者等效地,熵的降低。高熵将使许多应用程序具有相似的被选择的概率,最大熵使所有应用程序具有相同的概率。在最大熵的情况下,选择正确应用程序的可能性最小,因为所有应用程序具有相等的概率,并且所有应用程序都不比另一个应用程序更可能被选择。
[1823] 这样的差异量度可以用于确定是否可以使用子模型针对该子模型适用的给定上下文来进行更准确的预测(包括置信度)。如果差异量度值大于差异阈值,则可以执行分段。差异量度可以带一个正号来确保信息实现增益。Kullback-Leibler散度可以用作差异量度。其他示例性量度包括基尼不纯度和方差缩减。
[1824] 例如,如果有一个模型适用于所有情况,则该模型将只为所有上下文选取顶部应用程序(例如,音乐应用程序)。音乐应用程序将是对所有上下文(例如,健身房、驾驶上班等)的预测。由于子模型是为更具体的上下文生成的,所以预测可以变得更具体,例如,当用户去健身房时,单个应用程序占主导地位,或者特定播放列表占主导地位。因此,一个应用程序被选择的次数可能有一个峰值,然后其他一切都为零。因此,决策树的目标是使信息增益最大化(使熵最小化)。
[1825] 当更具体的上下文可以提供更多的信息增益时,可以识别其他子模型。例如,早晨的健身房可以是一个更具体的上下文,这时特定的播放列表占主导地位。又如,早晨连接到汽车可以提供对新闻应用程序的更准确预测,因为历史数据组织更多(熵降低)来主要地选择新闻应用程序(或一组新闻应用程序)。
[1826] 图35_6A和35_6B示出了根据本发明实施方案的从分段产生的父模型和子模型。图35_6A示出了提供80个正确预测和60个不正确预测的父模型的二项分布。可以从用于父模型的历史数据的一部分创建子模型。图35_6B示出了提供14个正确预测和2个不正确预测的子模型的二项分布。即使该子模型具有较少的数据点,预测也更准确,因为向一移动的证据表示更高的准确度。因此,熵已经降低,并且存在信息增益。
[1827] E.何时分段
[1828] 如上所述,各种实施方案可以使用一个或多个标准来确定是否将模型分段以生成子模型。一个标准可以是,用于做出正确预测的置信水平(选择一组一个或多个预测应用程序中的一个)大于置信度阈值。例如,正确预测的平均概率大于准确度阈值(置信阈值的示例)。又如,可以要求分布的在特定值上方的CDF高于置信水平。
[1829] 另一个标准可以是使用提供信息增益(熵降低)的子模型而不是模型。例如,可以将用于Kullback-Leibler散度的值与差异阈值进行比较。分段的一个或多个标准可以保证子模型将胜过基本模型。对于某个父模型的所有子模型,例如健身房子模型35_210和其他子模型35_240,可以需要一个或多个标准。
[1830] 在某些情况下,两个子模型的置信下限可相对于父模型降低,但是仍然具有信息增益和高于阈值的置信下限。置信下限也可以增大。只要所有子模型都具有足够高的置信界限,并且信息增益是足够大,实施方案可以选择将更一般的模型分段(进行划分)。
[1831] 在一些实施方案中,可以通过确保置信水平作为分段的结果而增加,来满足任何准确度和信息增益标准。例如,可以选择设备的第一属性来测试第一上下文的第一子模型,该子模型可以相对于父模型包括其他属性。可以识别当计算设备具有第一属性时发生的历史交互的第一子集。第一子集是从用于父模型的一组历史交互中选出的,并且小于这组历史交互。
[1832] 基于历史交互的第一子集,第一子模型可以预测用户将与具有第一置信水平的事件关联地访问的第一组一个或多个应用程序中的至少一个应用程序。可以至少基于第一置信水平大于初始置信水平至少一个阈值量(它可以为0或更大)来创建第一子模型。该阈值量可以对应于差异阈值。在一些具体实施中,第一子模型可以不一定在该标准满足时创建,因为可以使用进一步的标准。如果置信水平不大于初始置信水平,则可以选择另一个属性进行测试。置信水平的这种比较可以对应于对信息增益的测试。可以重复相同的过程以确定用于预测第一组一个或多个应用程序的第一子模型的第二子模型(对于第二属性)的第二置信水平。历史交互的第二子集可以用于第二子模型。可以采用类似的方式测试第三属性或更多属性。
[1833] F.决策树的重新生成
[1834] 实施方案可以周期性地(例如每天)生成模型的决策树。这种生成可以使用当时可用的历史数据。因此,决策树可以从一代变为另一代。在一些实施方案中,构建决策树而不知道先前的决策树。在其他实施方案中,可以从这样的先前知识构建新的决策树,例如,知道哪些子模型是可能的,或者从先前的决策树开始。
[1835] 在一些实施方案中,尝试所有上下文(或上下文的预定列表)以确定哪些子模型提供最大信息增益。例如,如果位置提供用于分段成子模型的最大信息增益,则可以创建用于至少一个特定位置的子模型。在每个分段级别,可以采用这种贪心的方式测试上下文以确定哪些上下文提供了信息增益的最高增长。
[1836] 在其他实施方案中,选择上下文的一个子集(例如,随机选择,包括伪随机)来测试分段是否合适。当有许多上下文可以被测试时,这种选择是有利的。可以使用基于Monte Carlo的方法来选择上下文,这种方法可以使用上下文将可能导致分段的概率。可以生成一个随机数(随机过程的一个示例),然后将其用于确定(对于特定属性)要测试哪个上下文。
[1837] 概率可以用作权重,使得具有较高权重的上下文在该“随机”选择过程中更有可能被选择。可以基于过去生成了哪些子模型来确定概率。例如,如果健身房(并且可能地一天的特定时间)在之前非常成功,那么生成过程会以90%、95%或99%的可能性选取该上下文,具体取决于在过去它被选取的频率,并且也可能取决于在过去信息增益有多高。将为每个级别或为整个树生成过程尝试一定次数的划分。
[1838] V.基于概率水平确定动作
[1839] 预测模型不仅可以测试所选择的应用程序,而且可以测试特定动作,以及可能的媒体内容(例如,特定播放列表)。在一些实施方案中,一旦选择某个应用程序的概率足够准确,就可以提供比仅提供启动选项更为积极的动作。例如,当该应用程序启动时,内容可以自动播放。或者,该应用程序可以自动启动。
[1840] 当以足够的概率(例如,置信水平高于高阈值)预测选择某个应用程序时,该预测可以开始测试动作。因此,测试不仅仅是用于预测应用程序,而是测试是否可以以足够的准确度预测特定动作。可以从历史数据中获得不同的可能动作(包括媒体项)。可以选择与一个应用程序一起执行多个动作。这多个动作中的每一个可以对应于第一子模型的多个不同子模型中的一个。可以测试这多个不同子模型中每一个的置信水平,以确定是否为这多个动作中的至少一个生成第二子模型。
[1841] 因此,当存在更大的置信度时,实施方案可以更积极地执行要执行的动作。如果特定动作被执行具有高概率,则预测模型可以提供特定的用户界面。因此,在一些实施方案中,使用的可能性越高,可采取更积极的动作,诸如自动打开具有相应用户界面的应用程序(例如,视觉或语音命令),而不仅仅是提供一种更容易打开应用程序的机制。
[1842] 例如,基本模型可以具有一定程度的统计显著性(准确度和置信度),动作可能是在锁定屏幕上建议应用程序。又如,更高水平的统计显著性可以导致屏幕亮起(从而引起对应用程序的关注,可以仅选择一个应用程序,或者可以提供该应用程序的用户界面(UI)(即,不是系统的用于选择该应用程序的UI)。一些实施方案可以考虑在确定是否分段时采取的动作,并且在动作失效时不分段,这通常将对应于具有信息增益。
[1843] 该动作可以取决于模型是仅预测一个应用程序还是预测一组应用程序。例如,如果有机会提出三个建议而不是一个建议,那么这也将改变概率分布,因为选择这三个中的任何一个将提供正确的预测。对一个应用程序的推荐不可信的模型可能对三个应用程序的推荐有足够的置信度。实施方案可以执行将另一个应用程序添加到由模型预测的一组应用程序(例如,尚未在该组中的第二常用的应用程序),从而使模型具有更高置信度。如果模型基于不止一个应用程序的预测,则所提供的用户界面将提供与不止一个应用程序的交互,这可能影响UI的形式。例如,所有应用程序都可以在锁定屏幕上提供,并且一个应用程序不会自动启动。
[1844] 还可以有多个操作,以及适于不同操作的一个建议。例如,健身房中可以有两个播放列表作为子模型的一部分(例如,当两个动作具有相似的被选择的可能性时,识别出一个应用程序,但在模型中识别出两个动作)。两个动作一起可以具有统计显著性,而它们单独则不具有统计显著性。
[1845] 例如,当首先针对某个事件(例如,插入耳机)训练该模型时,该模型的置信度可能不足以执行任何动作。在初始置信水平下,可以在锁定屏幕上显示图标或其他对象。在下一个更高的置信水平下,屏幕可以亮起。在进一步的置信水平下,可以显示特定于应用程序的特定功能的用户界面(例如,用于播放音乐的控件或用于访问新应用程序的头条新闻的滚动窗口)。下一个更高的水平可以对应于应用程序的某些功能自动启动。该动作甚至可以替代应用程序的当前操作(例如,播放一首歌曲)来播放另一首歌曲或播放列表。这些不同的水平可以代表用于定义置信水平的各种值。
[1846] 其他示例动作可以包括更改正在播放的歌曲,提供通知(可以在屏幕上的醒目位置)。所述动作可以在解锁设备之后发生,例如,在解锁之后可以显示特定于该应用程序的UI。可以使用深链接来定义操作,以开始应用程序的特定功能。
[1847] 一些实施方案可以在显示屏上向用户显示通知。该通知可以通过例如推送通知发送。该通知可以是视觉通知,视觉通知包括向用户通知建议的应用程序的图片和/或文本。该通知可以向用户建议一个应用程序供用户在闲暇时选择和运行。被选择后,该应用程序可以运行。在一些实施方案中,为了进行更积极的预测,通知还可以包括建议的应用程序内的建议动作。也就是说,该通知可以通知用户建议的应用程序以及在该建议的应用程序内的建议动作。因此,可以向用户提供运行建议的应用程序或执行建议的应用程序内的建议动作的选项。例如,通知可以通知用户建议的应用程序是音乐应用程序,并且建议的动作是在该音乐应用程序中播放某首歌曲。用户可以通过点击示出建议的歌曲的图标来表明他或她想播放这首歌曲。或者,用户可以通过在屏幕上轻扫该通知来指示他或她更希望运行该应用程序播放另一首歌曲。
[1848] 除了在一个通知中向用户界面输出建议的应用程序和建议的动作之外,预测引擎可以在一个通知中向用户界面输出两个建议的动作。例如,预测引擎可以输出一个建议的动作来播放第一歌曲,以及第二个建议的动作来播放第二歌曲。用户可以通过点击通知中的相应图标来选择播放哪首歌曲。在实施方案中,可以基于不同的标准确定建议的动作。例如,一个建议的动作可以是用于播放最近播放的歌曲而不论上下文信息如何,而另一个建议的动作可以是用于播放在相同或相似的上下文信息下最后播放的歌曲。例如,对于用户进入他或她的车并且触发事件导致预测引擎建议与播放某首歌曲有关的两个动作的情况,歌曲A可以是在家里最后播放的歌曲,而歌曲B可以是用户上次在车里播放的歌曲。当用户选择要播放的歌曲时,该歌曲可以从开始继续,或从最后一次停止的地方(例如,在歌曲的中间)继续。
[1849] 为了使预测引擎能够建议动作,预测引擎35_302可以访问存储关于设备的活动状态的信息的存储器设备。设备的活动状态可以表示在选择建议的应用程序之后执行的动作。例如,用于音乐应用程序的活动状态可以是播放某首歌曲。活动状态可以记录歌曲最后停止的时间。在实施方案中,历史数据库可以记录与设备的活动状态有关的历史数据。因此,预测引擎可以建议要由建议的应用程序运行的动作。
[1850] VI.架构
[1851] 图35_7示出了用于向用户提供与一个或多个应用程序交互的用户界面的示例性架构35_700。架构35_700示出了用于检测事件以及提供对应用程序的建议的元素。架构35_700还可以提供其他建议,例如用于建议联系人。架构35_700可以存在于用户设备内(例如,图1A中的设备100)。
[1852] 顶部是UI元素。如图所示,有锁定屏幕35_710、搜索屏幕35_720和语音界面35_725。可以通过这些方式向用户提供用户界面。也可以使用其他UI元素。
[1853] 底部是数据源。事件管理器35_742可以检测事件并将关于事件的信息提供给应用程序建议引擎35_740。在一些实施方案中,事件管理器可以确定事件是否触发应用程序建议。可以指定用于触发应用程序建议的预定事件的列表。位置单元35_744可以提供用户设备的位置。例如,位置单元35_744可以包括GPS传感器和运动传感器。位置单元35_744还可以包括可以存储用户的最后位置的其他应用程序,该最后位置可被发送到应用程序建议引擎35_740。其他上下文数据可以从其他上下文单元35_746提供。
[1854] 应用程序建议引擎35_740可以识别一个或多个应用程序,以及相应的动作。在与应用程序建议引擎35_740相同的级别,联系人建议引擎35_750可以提供用于呈现给用户的建议联系人。
[1855] 可以将建议的应用程序提供给显示中心35_730,该显示中心可以确定向用户提供什么。例如,显示中心35_730可以确定是提供建议的应用程序还是提供联系人。在其他示例中,可以提供应用程序和联系人两者。显示中心可以确定提供给用户的最佳方式。对用户的不同建议可以使用不同的UI元素。这样,显示中心35_730可以控制对用户的建议,使得不同的引擎不会中断其他引擎提供的建议。在各种实施方案中,引擎可以向显示中心35_730推送建议(推荐)或从显示中心35_730接收对建议的请求。显示中心35_730可以将建议存储一定时间,然后如果没有向用户提供建议,或者用户没有与用户界面进行交互,则确定删除该建议。
[1856] 显示中心35_730还可以识别用户设备发生的其他动作,以便设备何时发送建议。例如,如果用户正在使用应用程序,则可以不提供建议。显示中心35_730可以基于各种因素,例如设备的运动状态,锁定屏幕是否亮起,或者是否提供了授权的访问,用户是否正在使用设备等,来确定何时发送建议。
[1857] 在一些实施方案中,包括在设备100(图1A)上的软件部件包括应用程序建议模块。应用程序建议模块可以包括各种子模块或系统,例如上面在图35_7中所描述的。应用程序建议模块可以执行方法37_400的全部或部分。
[1858] 用于在数据稀疏性上下文中学习复杂用户模式的生成模型的决策树分段的示例性方法、设备系统和计算机可读介质
[1859] 本节提供了用于基于事件向用户建议一个或多个应用程序的系统、方法和装置。预测模型可以对应于特定事件。可以使用计算设备的一个或多个属性来确定建议的应用程序。例如,可以从关于事件发生之后的用户交互以及当设备具有一个或多个属性时收集的历史数据的子集生成特定子模型。可以对应于计算设备属性的不同上下文来确定子模型树。并且,可以使用各种标准来确定何时生成子模型,例如,在历史数据子集中提供正确预测的子模型中的置信水平,以及历史数据分布中相对于父模型的信息增益(熵减少)。
[1860] 在一些实施方案中,提供了一种用于基于事件向计算设备的用户建议一个或多个应用程序的方法,该方法包括:在计算设备处:检测计算设备的输入设备处的事件,该事件是对于计算设备反复出现的类型;选择对应于该事件的预测模型;接收计算设备的一个或多个属性;使用这一个或多个属性来选择预测模型的特定子模型,该特定子模型对应于这一个或多个属性,其中该特定子模型使用用户与计算设备的历史交互的特定子集来生成,历史交互的该特定子集在检测到该事件之后以及当计算设备具有一个或多个属性时发生;由该特定子模型识别要向用户建议的一个或多个应用程序,这一个或多个应用程序具有这一个或多个应用程序中的至少一个被用户与该事件关联地访问的至少一个阈值概率;以及向用户提供用于与这一个或多个应用程序交互的用户界面。
[1861] 在一些实施方案中,在具有比计算设备home屏幕上提供的应用程序更少的应用程序的显示屏上提供用户交互。在一些实施方案中,特定子模型预测具有大于置信度阈值的置信水平的一个或多个应用程序。在一些实施方案中,该方法包括:基于置信水平确定如何将用户界面提供给用户。在一些实施方案中,该方法包括:通过以下步骤确定置信水平:确定第一概率分布;以及对于大于下限的点,计算第一概率分布的累积分布以获得置信水平。在一些实施方案中,该方法包括:通过以下步骤确定置信水平:确定第一概率分布;以及计算第一概率分布的平均值、中值或峰值以获得置信水平。在一些实施方案中,特定子模型使用相对于用于预测模型的正确预测的第二概率分布的信息增益提供用于正确预测历史交互的特定子集的第一概率分布。在一些实施方案中,信息增益大于差异阈值,并且其中使用Kullback-Leibler散度来确定信息增益。在一些实施方案中,该方法包括:接收在检测到事件之后用户与计算设备的一组历史交互,其中这组历史交互包括并且大于历史交互的所述特定子集,这组历史交互集包括具有计算设备的不同组的一个或多个属性的交互;使用预测模型的初始模型来计算用于基于这组历史交互预测用户将在所述事件之后访问的一个或多个应用程序的初始置信水平;以及通过以下操作生成用于预测模型的子模型树:选择计算设备的第一属性;识别当计算设备具有第一属性时发生的历史交互的第一子集,该第一子集是从这组历史交互中选择的并且小于这组历史交互;使用第一子模型来计算第一置信水平,该第一置信水平用于基于历史交互的第一子集来预测用户将与事件关联地访问的第一组一个或多个应用程序中的至少一个应用程序;基于第一置信水平大于初始置信水平至少阈值量,创建第一子模型;以及当第一置信水平不大于初始置信水平时,选择用于测试的另一属性。在一些实施方案中,该方法包括:当第一置信水平不大于初始置信水平时:将另一应用程序添加到第一组一个或多个应用程序并再次测试第一子模型。在一些实施方案中,该方法包括:进一步通过以下操作来生成用于预测模型的子模型树:选择计算设备的第二属性;识别当计算设备具有第一属性和第二属性时发生的历史交互的第二子集,该第二子集是从历史交互的第一子集中选择的并且小于历史交互的第一子集;使用第二子模型来计算第二置信水平,该第二置信水平用于基于历史交互的第二子集来预测用户将与事件关联地访问的第二组一个或多个应用程序中的一个应用程序;基于第二置信水平大于第一置信水平至少阈值量,创建第二子模型;以及当第二置信水平不大于第一置信水平时,选择用于测试的第三属性。在一些实施方案中,周期性地生成用于预测模型的子模型树。在一些实施方案中,使用随机过程来选择第一属性。在一些实施方案中,第一组一个或多个应用程序是一个应用程序,并且该方法包括:选择要通过这一个应用程序执行的多个动作,这多个动作中的每一个对应于第一子模型的多个不同子模型中的一个;测试这多个不同子模型中每一个的置信水平,以确定是否生成用于这多个动作中的至少一个的第二子模型。
[1862] 在一些实施方案中,提供了包括非暂态计算机可读介质的计算机产品,非暂态计算机可读介质基于事件存储用于向计算设备的用户建议一个或多个应用程序的多个指令,这多个指令当在计算机系统的一个或多个处理器上执行时,执行:在计算设备处:检测计算设备的输入设备处的事件,该事件是对于计算设备反复出现的类型;选择对应于该事件的预测模型;接收计算设备的一个或多个属性;使用这一个或多个属性来选择预测模型的特定子模型,该特定子模型对应于这一个或多个属性,其中该特定子模型使用用户与计算设备的历史交互的特定子集来生成,历史交互的该特定子集在检测到该事件之后以及当计算设备具有一个或多个属性时发生;由该特定子模型识别要向用户建议的一个或多个应用程序,这一个或多个应用程序具有这一个或多个应用程序中的至少一个被用户与该事件关联地访问的至少一个阈值概率;以及对这一个或多个应用程序执行动作。在一些实施方案中,特定子模型预测具有大于置信度阈值的置信水平的一个或多个应用程序,并且其中特定子模型使用相对于用于预测模型的正确预测的第二概率分布的信息增益提供用于正确预测历史交互的特定子集的第一概率分布。在一些实施方案中,该动作是向用户提供用于与这一个或多个应用程序交互的用户界面。
[1863] 在一些实施方案中,提供了一种用于基于事件向计算设备的用户建议一个或多个应用程序的计算设备,该计算设备包括:输入设备;一个或多个处理器,其被配置为:检测计算设备的输入设备处的事件,该事件是对于计算设备反复出现的类型;选择对应于该事件的预测模型;接收计算设备的一个或多个属性;使用这一个或多个属性来选择预测模型的特定子模型,该特定子模型对应于这一个或多个属性,其中该特定子模型使用用户与计算设备的历史交互的特定子集来生成,历史交互的该特定子集在检测到该事件之后以及当计算设备具有一个或多个属性时发生;由该特定子模型识别要向用户建议的一个或多个应用程序,这一个或多个应用程序具有这一个或多个应用程序中的至少一个被用户与该事件关联地访问的至少一个阈值概率;以及向用户提供用于与这一个或多个应用程序交互的用户界面。在一些实施方案中,特定子模型预测具有大于置信度阈值的置信水平的一个或多个应用程序,并且其中特定子模型使用相对于用于预测模型的正确预测的第二概率分布的信息增益提供用于正确预测历史交互的特定子集的第一概率分布。在一些实施方案中,这一个或多个处理器被进一步配置为:接收在检测到事件之后用户与计算设备的一组历史交互,其中这组历史交互包括并且大于历史交互的所述特定子集,这组历史交互集包括具有计算设备的不同组的一个或多个属性的交互;使用预测模型的初始模型来计算用于基于这组历史交互预测用户将在所述事件之后访问的一个或多个应用程序的初始置信水平;以及通过以下操作生成用于预测模型的子模型树:选择计算设备的第一属性;识别当计算设备具有第一属性时发生的历史交互的第一子集,该第一子集是从这组历史交互中选择的并且小于这组历史交互;使用第一子模型来计算第一置信水平,该第一置信水平用于基于历史交互的第一子集来预测用户将与事件关联地访问的第一组一个或多个应用程序中的至少一个应用程序;基于第一置信水平大于初始置信水平至少阈值量,创建第一子模型;以及当第一置信水平不大于初始置信水平时,选择用于测试的另一属性。
[1864] 第6部分:基于检测到的触发事件的应用程序建议
[1865] 本节“基于检测到的触发事件的应用程序建议”中的材料描述了根据一些实施方案的基于检测到的触发事件的应用程序建议,并且提供补充本文提供的公开内容的信息。例如,本节的一些部分描述了基于触发事件(将耳机插入设备,并根据用户的当前位置建议不同的应用程序)来推荐使用的应用程序,这补充了本文提供的公开内容,例如与填充图9B至图9C的预测部分930内的预测内容有关的以及与创建和检测触发条件有关的那些(图4A至图4B)。在一些实施方案中,本部分中描述的预测模型用于帮助识别适用于预测和向用户显示的应用程序(即,这些预测模型与方法600,800,1000和1200结合使用)。
[1866] 基于检测到的触发事件的应用程序建议的简明摘要
[1867] 实施方案提供了用于基于触发事件来推荐应用程序的改进型设备和方法。例如,某些事件可以由设备检测并被识别为触发事件。不同的触发事件可以具有不同的预测模型,这可以实现更准确的建议。选择的预测模型可以使用上下文信息(例如,在检测到事件之前或之后收集)来识别用于呈现给用户以更容易访问(例如允许在锁定屏幕上访问)的应用程序。
[1868] 在一些实施方案中,监视一个或多个输入设备是否发生触发事件。当检测到触发事件时,可以从一个或多个源(例如,已经获得上下文信息的设备的另一应用程序)收集上下文信息。上下文信息可以与触发事件发生时或附近的设备的上下文有关,诸如位置或当日时间。一旦接收到上下文信息,则可以从历史事件数据库收集历史信息。该数据库可以维护用户和设备之间的历史交互的记录。根据触发事件,可以利用上下文信息和历史信息来识别用于用户的一组一个或多个应用程序。然后可以通过以不同于所识别的应用程序被如何、在何时或何地正常访问(例如,在home屏幕上)的方式提供用户界面,为用户提供在需要时运行该应用程序的选项,从而向用户建议所识别的应用程序。
[1869] 其他实施方案涉及与本节中所述的方法相关联的系统、便携式消费设备以及计算机可读介质。
[1870] 通过参考以下具体实施方式和附图,可更好地理解本发明的实施方案的实质和优点。
[1871] 基于检测到的触发事件的应用程序建议的详细描述
[1872] 当前的移动设备可以将许多应用程序存储在其固态驱动器上。在一些情况下,移动设备可以将数百个应用程序存储在其固态驱动器上。当用户想在其移动设备上运行某个应用程序时,他或她必须解锁设备,搜索设备中的所有应用程序以识别所需的应用程序,然后启动该应用程序的执行。查找所需应用程序的过程可能非常耗时和冗余,特别是对于比其他应用程序更经常使用的应用程序来说。
[1873] 用户可以将设备预先编程为在特定条件满足时(例如发生触发事件)自动执行预定应用程序的指定动作。例如,该设备可被编程为在触发事件发生时建议预定的应用程序。但是,这样的操作是静态的,并且需要用户进行配置。
[1874] 不同于自动建议预定应用程序,本发明的实施方案可以利用预测模型来在发生触发事件时建议给定上下文中可能由用户运行的应用程序。可针对相同的触发事件,识别用于不同上下文的不同应用程序。例如,可以在第一上下文中建议一个应用程序,而可以在第二上下文中建议另一个应用程序。
[1875] 识别用户可能使用的应用程序有几个好处。可以采用适当的方式或在适当的屏幕中向用户提供用户界面,这可以节省时间并简化设备操作。用户不必搜索许多应用程序来识别要使用的应用程序。可以采用各种方式提供该应用程序的用户界面,这可以取决于用户将使用该应用程序的概率有多高。此外,如果特定动作被执行具有高概率,则预测模型可以提供特定的用户界面。因此,在一些实施方案中,使用的可能性越高,可采取更积极的动作,诸如自动打开具有相应用户界面的应用程序(例如,视觉或语音命令),而不仅仅是提供一种更容易打开应用程序的机制。
[1876] VII.应用程序预测
[1877] 实施方案可以基于触发事件来建议应用程序。例如,当耳机插入到耳机接口中,则可以建议音乐应用程序。在一些实施方案中,上下文信息可以与触发事件结合使用以识别要向用户建议的应用程序。例如,当将一组耳机插入到耳机插口中时,可以使用与位置相关的上下文信息。如果设备位于例如健身房,则当耳机插入耳机插口时可建议应用程序A。另选地,如果设备位于家中,则当耳机插入耳机插口时可建议应用程序B。因此,可以在适当时候建议可能在某些上下文下受到使用的应用程序,从而增强用户体验。
[1878] 图36_1是根据本发明实施方案的用于基于触发事件来建议应用程序的方法36_100的流程图。方法100可以由移动设备(例如,电话、平板电脑)或非移动设备执行,并且利用设备的一个或多个用户界面。
[1879] 在框36_102处,检测到触发事件。并非所有在设备上发生的事件都是触发事件。可以将触发事件识别为充分可能地与设备的独特操作相关联。触发事件的事件列表可以存储在设备上。此类事件可以是默认列表,并作为操作系统的一部分被维护,并且可以由或可以不由用户进行配置。
[1880] 触发事件可以是由用户和/或外部设备引起的事件。例如,触发事件可以是当附件设备连接到移动设备时。示例包括将耳机插入耳机接口、进行蓝牙连接等。在该示例中,它们中的每一个可以被分类为不同的触发事件,或者触发事件可以共同地是连接到移动设备的任何附件设备。作为其他示例,触发事件可以是用户与设备的特定交互。例如,用户可将移动设备按与运行一致的方式移动,这种情况下设备的运行状态是触发事件。可以基于设备的传感器来确定这样的运行状态(或其他状态)。
[1881] 在框36_104处,识别到与触发事件相关联的应用程序。例如,当耳机插入到耳机接口中,则可以识别到音乐应用程序。在一些实施方案中,可以识别不止一个应用程序。预测模型可以识别所述相关联的应用程序,其中可以为特定触发事件选择预测模型。预测模型可以使用上下文信息来识别应用程序,这是因为例如不同的应用程序可能更可能在不同的上下文中受到使用。一些实施方案可以仅在有足够概率被用户选择时(例如,由用户与设备的历史交互确定)才能识别应用程序。可以使用各种类型的预测模型。预测模型的示例包括神经网络、决策树、多标签逻辑回归及其组合。
[1882] 在框36_106处,与应用程序关联地执行一个动作。在一个实施方案中,该动作可以是为用户提供用以选择以运行应用程序的用户界面。用户界面可按各种方式提供,例如通过在设备的屏幕上显示、投影到表面上、或者提供音频接口的方式提供。
[1883] 在其他实施方案中,可以运行某一应用程序,并且可以向用户提供特定于该应用程序的用户界面。可以响应于例如在锁定屏幕上识别应用程序,而提供任一个用户界面。在其他具体实施中,可以在用户被认证(例如,通过密码或生物特征)之后提供与应用程序交互的用户界面。在显示该用户界面时,这样的用户界面将比单独的home屏幕更具特异性,即比home屏幕上的应用程序少的要运行的建议应用程序的列表。在检测到触发事件之后,该用户界面可以立即显示在设备的显示器上。在其他实施方案中,该用户界面可以在用户提供某种输入(例如,一个或多个点击手势)之后显示,该输入仍可能是比没有建议任何应用程序时少的用户输入(例如,点击次数)。
[1884] VIII.启动预测的事件
[1885] 触发事件可以是触发识别要提供给用户的一个或多个应用程序的一组预定事件。可以使用由设备部件生成的信号来检测事件。本节将进一步详细讨论触发事件如何被检测的更多细节。
[1886] 图36_2示出了根据本发明实施方案的用于确定触发事件的检测系统36_200的简化框图。检测系统36_200可以驻留在正在为其确定触发事件的设备内。如图所示,检测系统36_200可以检测多个不同的事件。检测到的事件中的一个或多个可以由检测系统36_200确定为触发事件。其他处理模块然后可以使用触发事件来执行处理。
[1887] A.检测事件
[1888] 在实施方案中,检测系统36_200包括用于检测事件的硬件和软件部件。例如,检测系统36_200可以包括多个输入设备,诸如输入设备36_202。输入设备36_202可以是能够响应于事件而生成信号的任何合适的设备。例如,输入设备36_202可以包括可以分别检测设备连接事件、用户交互事件和位置事件的设备连接输入设备36_204、用户交互输入设备36_206和位置输入设备36_208。当在输入设备处检测到事件时,输入设备可以发送信号,该信号指示用于进一步分析的特定事件。
[1889] 在一些实施方案中,部件的集合可以参与单个事件。例如,可以基于运动传感器和GPS定位设备检测到人正在跑步。
[1890] 1.设备连接事件
[1891] 设备连接事件可以是当其他设备连接到该设备时发生的事件。例如,设备连接输入设备36_204可以检测设备通信地耦合到该设备的事件。形成与外部设备的有线或无线连接的任何合适的设备部件可以用作设备连接输入设备36_204。设备连接输入设备36_204的实施例包括耳机接口36_210和数据连接36_212,诸如无线连接电路(例如,蓝牙、Wi-Fi等)或有线连接电路(例如,以太网等)。
[1892] 耳机接口36_210允许一组耳机耦接到设备。当耳机耦接时,例如通过插入到耳机接口36_210时形成电连接,可以生成信号。在更复杂的实施方案中,耳机接口36_210可以包括提供标识设备的耳机接口类型的标识信号的电路。因此可以采用各种方式检测事件,并且采用各种方式生成和/或传送信号。
[1893] 数据连接36_212可以例如通过无线连接与外部设备通信地耦接。例如,蓝牙连接可以耦接到车辆的计算机或无线耳机的计算机。因此,当外部设备经由数据连接36_212耦接到移动设备时,可以确定外部设备被连接,并且可以生成相应的设备连接事件信号。
[1894] 2.用户交互事件
[1895] 用户交互输入设备36_206可以用于检测用户交互事件。用户交互事件可以在用户与设备进行交互时发生。在一些实施方案中,用户可以经由用户交互输入设备36_206中的一个直接激活显示的用户界面。在其他实施方案中,该用户界面可以不显示,但是用户仍可以访问它,例如经由用户摇动设备或提供某种其他类型的手势。此外,交互可以不包括用户界面,例如,当状态引擎使用来自设备的传感器的值时。
[1896] 可以将用户界面的任何合适的设备部件用作用户交互输入设备36_206。合适的用户交互输入设备的实施例是按钮36_214(例如,Home按钮或电源按钮)、触摸屏36_216和加速度计36_218。例如,移动设备的按钮36_214,诸如Home按钮、电源按钮、音量按钮等可以是用户交互输入设备36_204。此外,开关诸如静音模式开关可以是用户交互输入设备36_204。当用户与设备进行交互时,可以确定用户已经提供了用户输入,并且可以生成相应的用户交互事件。这样的事件可以取决于设备的当前状态,例如,当设备在早晨(或其他长时间不活动)中首先被接通或激活时。当确定某个时间是否是触发事件时,也可以使用这样的信息。
[1897] 触摸屏36_216可以允许用户经由显示屏提供用户输入。例如,用户可以在显示器上轻扫他或她的手指以生成用户输入信号。当用户执行该动作时,可以检测到相应的用户交互事件。
[1898] 加速度计36_218或其他运动传感器可以是(例如,使用陀螺仪或罗盘)检测移动设备的移动(例如摇动和倾斜)的无源部件。可以由事件管理器36_230检测移动设备的这种移动,事件管理器可以确定该移动是特定类型。事件管理器36_230可以生成对应于在设备的给定状态下的特定类型用户交互事件的事件信号36_232。设备的状态可以由状态引擎确定,状态引擎的进一步细节可以在名称为“Activity Detection”的美国专利公布2012/0310587和名称为“Determining Exit From A Vehicle”的美国专利公布2015/0050923中找到,这两个专利的全部内容以引用方式并入本文。
[1899] 一个示例是当用户正在跑步时,加速度计可以感测摇动并生成要提供给事件管理器36_230的信号。事件管理器36_230可以分析加速度计信号以确定事件的类型。确定了事件的类型之后,事件管理器36_230可以生成对应于该事件类型的事件信号36_232。移动设备可以移动以便指示用户正在跑步。因此,该特定用户交互可以被识别为跑步事件。然后,事件管理器36_230可以生成并发送指示已经检测到跑步事件的事件信号36_232。
[1900] 3.位置事件
[1901] 位置输入设备36_208可以用于生成位置事件。可以使用任何合适的定位系统来生成位置事件。例如,可以使用全球定位系统(GPS)来生成位置事件。位置事件可以是对应于特定地理位置的事件。例如,如果移动设备到达特定位置,则GPS部件可以生成对应于位置事件的输入信号。通常,移动设备可以每天移动到几十个甚至几百个位置,其中许多位置可能不够重要,不能被认为是位置事件。因此,并不是每个检测到的位置都将是位置事件。在实施方案中,位置事件可以是比其他事件更频繁出现的位置。例如,如果某个事件在一段时间内频繁出现至少阈值次数,例如在六个月到一年的跨度中出现五次,则该事件可以是位置事件。因此,重要的位置可以与不重要的位置区分开来并且被确定为位置事件。
[1902] B.确定触发事件
[1903] 如图36_2进一步所示,输入设备36_202可以输出检测事件36_222,例如作为任何相应事件的结果。检测事件可以包括关于哪个输入设备正在发送用于检测事件36_222的信号的信息、用于特定事件的子类型(例如,哪种耳机类型或数据连接类型)。可以使用这样的信息来确定检测事件36_222是否是触发事件,并且这样的信息可以被传递到之后的模块,用于确定要使用哪个预测模型或要为建议的应用程序执行哪个动作。
[1904] 检测事件36_222可由事件管理器36_230接收。事件管理器36_230可以从输入设备36_202接收信号,并且确定检测到什么类型的事件。根据事件的类型,事件管理器36_230可以将信号(例如,事件信号36_232)输出到不同的引擎。不同的引擎可以具有对事件管理器
36_230的订阅,以接收对于其功能重要的特定事件信号36_232。例如,可以订阅触发事件引擎36_224以接收响应于来自输入设备36_202的检测事件36_222而生成的事件信号36_232。
事件信号36_232可以对应于从检测事件36_222确定的事件的类型。
[1905] 触发事件引擎36_224可以被配置为确定检测事件36_222是否是触发事件。为了进行该确定,触发事件引擎36_224可以引用指定的触发事件数据库36_226,该数据库可以耦接到触发事件引擎36_224。指定的触发事件数据库36_226可以包括被指定为触发事件的预定事件的列表。
[1906] 触发事件引擎36_224可以将接收到的检测事件36_222与预定事件的列表进行比较,并且如果检测事件36_222与指定的触发事件数据库36_226中列出的预定事件相匹配,则输出触发事件36_228。例如,预定事件的列表可以包括以下中的一个或多个:(1)将耳机插入耳机接口,(2)经由蓝牙连接连接外部设备,(3)经过一段时间后按下按钮(例如,早上醒来时),(4)感测设备的某些类型的运动,以及(5)到达某一位置。对于(5),指定的触发事件数据库226可以包括特定位置的规格。
[1907] 如本节所述,本发明的技术的一个方面在于采集和使用得自各种来源的数据来向用户建议应用程序。本公开预期,在一些实例中,这些采集到的数据可包括唯一地识别或可用于联系或定位特定人员的个人信息数据。此类个人信息数据可包括基于位置的数据、家庭地址或任何其他识别信息。
[1908] 本公开认识到在本发明技术中使用此类个人信息数据可用于使用户受益。例如,个人信息数据可用于建议用户较感兴趣的应用程序。因此,使用此类个人信息数据使得能够对所递送的内容进行有计划的控制。此外,本公开还预期个人信息数据有益于用户的其他用途。
[1909] 本公开还预期负责此类个人信息数据的收集、分析、公开、传输、存储或其他用途的实体将遵守已确立的隐私政策和/或隐私实践。具体地,此类实体应当实行并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和安全性的行业或政府要求的隐私政策和实践。例如,来自用户的个人信息应被收集用于实体的合法且合理的用途,并且不在这些合法使用之外共享或出售。另外,此类收集应仅在用户知情同意之后进行。另外,此类实体应采取任何所需的步骤,以保障和保护对此类个人信息数据的访问,并且确保能够访问个人信息数据的其他人遵守他们的隐私政策和程序。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。
[1910] 不管前述情况如何,本公开还设想用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。如,用户可选择不为目标内容递送服务提供位置信息。再如,用户可选择不提供精确的位置信息,但准许传输位置区域信息。
[1911] IX.建议的应用程序的确定
[1912] 检测到触发事件之后,可以基于触发事件来识别应用程序。在一些实施方案中,应用程序的识别不是预先编程的动作。相反,应用程序的识别可以是可以根据附加信息而改变的动态动作。例如,可以基于上下文信息和/或历史信息,以及基于其他信息来确定建议的应用程序的识别。
[1913] A.用于基于触发事件确定应用程序的系统
[1914] 图36_3示出了根据本发明实施方案的预测系统36_300的简化框图,该预测系统用于基于触发事件和上下文信息来识别应用程序和相应的动作命令。预测系统36_300驻留在识别应用程序的设备内。预测系统36_300可以包括硬件和软件部件。
[1915] 预测系统36_300包括用于识别建议的应用程序的预测引擎36_302。预测引擎36_302可以接收触发事件,诸如图36_2中讨论的触发事件36_228。预测引擎36_302可以使用从触发事件36_228收集的信息来识别建议的应用程序36_304。如图所示,除了触发事件36_
228之外,预测引擎36_302还可以接收上下文数据36_306。预测引擎36_302可以使用从触发事件36_228和上下文信息36_306两者收集的信息来识别建议的应用程序36_304。预测引擎
36_302还可以确定要执行的动作,例如,如何和何时可以为与建议的应用程序交互的用户提供用户界面。
[1916] 在某些实施方案中,建议的应用程序36_304可以是存在与移动设备的固态驱动器上的任何应用程序。因此,预测引擎36_302可以具有在检测到触发事件时建议任何应用程序的能力。或者,在实施方案中,,预测引擎36_302可以具有在检测到触发事件时建议少于所有应用程序的能力。例如,用户可以选择某些应用程序对于预测引擎36_302是不可访问的。因此,预测引擎36_302可以不能在检测到触发事件时建议这些应用程序。
[1917] 1.上下文信息
[1918] 可以从上下文数据36_306收集上下文信息。在实施方案中,可以在任何时间接收上下文信息。例如,可以在检测到触发事件36_228之前和/或之后接收上下文信息。另外,可以在检测触发事件36_228期间接收上下文信息。上下文信息可以针对特定上下文指定设备的一个或多个属性。上下文可以是当检测到触发事件36_228时设备的周围环境(上下文的类型)。例如,上下文信息可以是检测到触发事件36_228的时间。在另一示例中,上下文信息可以是当检测到触发事件36_228时设备的特定位置。在又一示例中,上下文信息可以是检测到触发事件36_228时的特定日期。此外,上下文信息可以是从日历收集的数据。例如,当前时间和事件时间之间的时间量(例如,天或小时)。这样的上下文信息可以提供关于设备的上下文的更有意义的信息,使得预测引擎36_302可以准确地建议用户在该上下文中可能使用的应用程序。因此,与不使用上下文信息相比,使用上下文信息的预测引擎36_302可以更准确地向用户建议应用程序。
[1919] 上下文数据36_306可由上下文源36_308生成。上下文源36_308可以是移动设备的提供与移动设备的当前情况有关的数据的部件。例如,上下文源36_308可以是用作内部数字时钟36_310、GPS设备36_312和日历36_314的硬件设备和/或软件代码,它们分别用于提供与当日时间、设备位置和一年中的日期相关的信息。可以使用其他上下文源。
[1920] 可以采用高功效的方式来收集用于预测引擎36_302的上下文数据36_306。例如,连续轮询GPS 36_312以确定设备的位置可能过度耗电,这可能缩短电池寿命。为了避免缩短电池寿命,预测引擎36_302可以通过从GPS 36_312以外的源请求设备的位置来确定设备的位置。位置信息的另一个源可能是最近已经针对设备位置轮询了GPS 36_312的应用程序。例如,如果应用程序A是最近针对设备位置轮询GPS 36_312的应用程序,则预测引擎36_302可以从应用程序A请求和接收位置数据,而不是单独轮询GPS 36_312。
[1921] 2.历史信息
[1922] 在某些实施方案中,除了上下文源36_308之外,历史事件数据库36_316也可由预测引擎36_302使用。历史事件数据库36_316可以包括在检测到触发事件之后用户与移动设备之间的先前交互的历史信息。
[1923] 历史事件数据库36_316可以记录在某个触发事件之后打开应用程序的次数。例如,数据库36_316可以记录:在耳机插入耳机接口之后,用户十次中有八次打开了应用程序A。因此,预测引擎36_302可以接收该信息作为历史数据36_318,以确定当一组耳机插入到耳机接口中时是否应该为用户识别应用程序A。
[1924] 历史事件数据库36_316还可以记录当检测到触发事件时在不同上下文下打开应用程序的次数。例如,数据库36_316可以记录:当用户在家时,在耳机插入耳机接口之后,用户十次中有九次打开了应用程序A,并且当用户在健身房时,用户十次中有一次打开了应用程序A。因此,预测引擎36_302可以接收该信息作为历史数据36_318,并且确定当耳机在家中而不是在健身房被插入到设备中时应识别应用程序A。应当理解,虽然本节中讨论的实施例将位置称为“家庭”或“健身房”,但是表示“家庭”或“健身房”的上下文数据36_306可以是数字坐标的形式。本领域的技术人员理解,可以采用类似的方式利用与当日时间和一年中的日期相关的信息来代替位置,以识别其他应用程序。
[1925] 历史事件数据库36_316还可以记录用户决定不运行所识别的应用程序的频率以及在什么情况下做出这样的决定。例如,数据库36_316可以记录:当用户在家中将耳机插入到设备中时,用户十次中有两次没有选择向用户建议的应用程序B。因此,预测引擎36_302可以接收该信息作为历史数据36_318,以调整当用户在家中将耳机插入到设备中时建议应用程序B的概率。
[1926] 在一些实施方案中,上下文信息36_306和/或历史信息(在本节中进一步讨论)可以在检测到触发事件时不可用或受限制。在这种情况下,可以在检测到触发事件时建议默认应用程序。默认应用程序可以是通常与触发事件类型相关联的一类应用程序。例如,如果将一组耳机插入到耳机接口中,则可以建议音乐应用程序。或者,当与汽车进行蓝牙连接时,可以建议地图应用程序。获得更多历史信息后,可以提供建议的应用程序而不是默认应用程序。
[1927] B.多个预测模型
[1928] 由于不同的触发事件可导致不同的建议的应用程序,实施方案可以针对不同的触发事件使用不同的预测模型。这样,可以改进预测模型以针对特定触发事件提供更准确的建议。
[1929] 图36_4更详细地示出了根据本发明的实施方案的预测引擎36_302。预测引擎36_302可以是存储在存储器设备上的程序代码。在实施方案处,预测引擎36_302包括一个或多个预测模型。例如,预测引擎36_302可以包括预测模型1到N。每个预测模型可以是专设计用于针对特定触发事件36_228识别应用程序的代码和/或数据的一部分。例如,预测模型1可以被专门设计用于针对一组耳机被插入到耳机接口中的触发事件来识别应用程序。预测模型2可以被设计为针对连接蓝牙设备时的触发事件识别应用程序。
[1930] 预测模型3可以被设计为针对用户在一段较长时间之后与设备的用户界面交互(例如,当用户在早晨醒来之后首先与移动设备进行交互时)的触发事件识别应用程序。其他预测模型可以被设计为针对与特定检测运动模式(例如,当用户正在带着移动设备跑步时)、到达特定位置以及选择特定应用程序(例如,选择与汽车的计算机通信的应用程序)相关联的触发事件识别应用程序。任何数量的预测模型可以包括在预测引擎36_302中,具体取决于触发事件36_228的数量。
[1931] 如图所示,每个预测模型1到N可以耦接到上下文源和历史事件数据库以接收上下文数据36_306和历史数据36_318。因此,根据本节中讨论的实施方案,每个预测模型可以使用上下文数据36_306和历史数据36_318来识别建议的应用程序36_304。
[1932] 再次参考图36_3,预测引擎36_302可以将建议的应用程序36_304发送到专家中心模块36_320。在实施方案中,事件管理器36_320可以是管理在设备上(例如在锁定屏幕上,当打开搜索屏幕时,或其他屏幕)显示什么内容的代码的一部分。例如,专家中心36_320可以协调向用户显示哪些信息,例如建议的应用程序、建议的联系人和/或其他信息。专家中心36_320还可以确定何时向用户提供此类信息。
[1933] X.用户界面
[1934] 如果事件管理器36_320确定这是一个将建议的应用程序输出给用户的时机,则事件管理器36_320可以将应用程序36_322输出到用户界面36_324。在实施方案中,输出应用程序36_322可以对应于建议的应用程序36_304。用户界面36_324可以将输出应用程序36_322传送给用户,并且请求来自用户的关于输出应用程序36_322的响应。
[1935] 在实施方案中,用户界面36_324可以是用户可以与之交互的设备部件的组合。例如,用户界面36_324可以是具有向用户输出信息和/或允许用户向设备输入信号的能力的设备部件的组合。
[1936] A.显示器
[1937] 用户界面36_324可以显示在设备的显示器上。显示器可以对触摸敏感,使得可以通过与显示器的物理交互来生成输入信号。在这样的实施方案中,显示器可以包括叠加在图像显示层上的触敏层,以检测用户对显示器的触摸。因此,显示器可以是能够向用户输出信息并从用户输入信息的用户界面36_324的一部分。例如,显示器可以显示用于建议的应用程序的图标,并且当用户轻击显示面板的相应位置时输入信号以运行该应用程序。
[1938] 现代设备具有防止对设备未经授权的使用的安全措施。这样的设备可以要求用户先解锁设备才能使用户可以访问存储在设备上的所有应用程序。该设备可以限制所有应用程序的可访问性,具体取决于设备安全性的状态。例如,设备可以要求用户先解锁设备才能使设备允许访问其所有应用程序。解锁的设备可以具有显示home屏幕的显示器。home屏幕可以显示和/或提供对设备的所有应用的访问。然而,锁定的设备可以具有显示锁定屏幕的显示器。显示器的某些区域可以被用于解锁设备的提示占据。因此,由于设备安全性的提高状态和有限的显示空间,锁定屏幕可以允许与比home屏幕少的应用程序进行交互。例如,锁定屏幕可以仅允许访问少于设备的所有应用程序,诸如一到三个应用程序。在一些实施方案中,在本节中关于图36_3讨论的建议的应用36_304可以显示在锁定屏幕上。
[1939] B.其他输入和输出设备部件
[1940] 虽然显示器可以是能够向用户输出信息并从用户输入信息的用户界面36_324的一部分,但是用户界面36_324的其他部分并不限于此。例如,在本节的实施方案中还设想了可以从用户输入信息的其他设备部件。例如,按钮和开关可以是用户界面36_324的一部分。按钮可以是当用户对其施加压力时生成输入的设备部件。开关可以是当用户将杠杆转向另一位置时生成输入的设备部件。因此,根据本节中讨论的实施方案,用户可以激活按钮和/或开关以运行建议的应用程序36_304。
[1941] 在本节的实施方案中还设想了可以从用户输出信息的设备部件。例如,扬声器或触觉设备可以是向用户输出信息的用户界面的一部分。扬声器可以输出音频通知以指示已经建议了所识别的应用程序。触觉设备可以输出触觉通知以指示已经建议了所识别的应用程序。应当理解,这样的设备仅仅是实施方案,并且其他实施方案不限于这样的设备。
[1942] C.互动水平
[1943] 用户界面36_324可以要求不同水平的交互,以便用户运行输出应用程序36_322。各个水平可以对应于用户将运行建议的应用程序36_304的概率程度。例如,如果预测引擎
36_302确定建议的应用程序36_304具有大于阈值概率的被用户运行的概率,则用户界面
36_324可以输出一个提示,该提示允许用户通过跳过中间步骤来更快地运行该应用程序。
[1944] 例如,如果预测引擎36_302确定用户运行建议的音乐应用程序的概率大于高阈值概率,则可以自动运行所建议的音乐应用程序,并且用户界面36_324可以因此显示用于音乐应用程序的控件,例如播放、暂停和快进/快退。因此,用户可以不必执行点击来运行应用程序的中间步骤。
[1945] 或者,如果预测引擎36_302确定用户运行音乐应用程序的概率小于高阈值概率但仍高于较低阈值概率,则音乐应用程序可以被显示为图标。该较低阈值概率可以高于基线阈值概率。基线阈值概率可以建立相应应用程序将被建议的最小概率。因此,用户可能必须执行点击图标来运行建议的音乐应用程序的额外步骤。但是,点击次数可以仍然小于当没有向用户建议应用程序时所需的点击次数。在实施方案中,阈值概率可以根据应用程序类型而变化。在各种实施方案中,高阈值概率可以在75%至100%之间的范围内,较低阈值概率可以在50%至75%之间的范围内,并且基线阈值可以在25%至50%之间的范围内。在特定实施方案中,高阈值概率为75%,较低阈值概率为50%,并且基线概率为25%。
[1946] 在实施方案中,更高的概率可以导致更积极的应用程序建议。例如,如果应用程序具有大约90%的高概率,则预测引擎36_302可以在设备的锁定屏幕上提供图标,以允许用户通过点击该图标一次来访问该应用程序。如果应用程序具有大约95%的更高概率,则预测引擎36_302甚至可以自动地为用户运行建议的应用程序,而不用户点击任何内容。在此类情况下,预测引擎36_302可以不仅输出建议的应用程序,还输出特定于该应用程序的命令,诸如在音乐应用程序中播放所选择的音乐的命令或者在地图应用程序中启动对特定路线的引导的命令。
[1947] 根据本发明的实施方案,预测引擎36_302可以确定需要什么水平的交互,然后将该信息输出到事件管理器36_320。然后,事件管理器36_320可以将该信息发送到用户界面36_324以输出给用户。
[1948] 在实施方案中,用户界面36_324可以在显示屏幕上向用户显示通知。该通知可以通过例如推送通知发送。该通知可以是视觉通知,视觉通知包括向用户通知建议的应用程序的图片和/或文本。该通知可以向用户建议一个应用程序供用户在闲暇时选择和运行。被选择后,该应用程序可以运行。在一些实施方案中,为了进行更积极的预测,通知还可以包括建议的应用程序内的建议动作。也就是说,该通知可以通知用户建议的应用程序以及在该建议的应用程序内的建议动作。因此,可以向用户提供运行建议的应用程序或执行建议的应用程序内的建议动作的选项。例如,通知可以通知用户建议的应用程序是音乐应用程序,并且建议的动作是在该音乐应用程序中播放某首歌曲。用户可以通过点击示出建议的歌曲的图标来表明他或她想播放这首歌曲。或者,用户可以通过在屏幕上轻扫该通知来指示他或她更希望运行该应用程序播放另一首歌曲。
[1949] 除了在一个通知中向用户界面36_324输出建议的应用程序和建议的动作之外,预测引擎36_302可以在一个通知中向用户界面36_324输出两个建议的动作。例如,预测引擎36_302可以输出一个建议的动作来播放第一歌曲,以及第二个建议的动作来播放第二歌曲。用户可以通过点击通知中的相应图标来选择播放哪首歌曲。在实施方案中,可以基于不同的标准确定建议的动作。例如,一个建议的动作可以是用于播放最近播放的歌曲而不论上下文信息如何,而另一个建议的动作可以是用于播放在相同或相似的上下文信息下最后播放的歌曲。例如,对于用户进入他或她的车并且触发事件导致预测引擎36_302建议与播放某首歌曲有关的两个动作的情况,歌曲A可以是在家里最后播放的歌曲,而歌曲B可以是用户上次在车里播放的歌曲。当用户选择要播放的歌曲时,该歌曲可以从开始继续,或从最后一次停止的地方(例如,在歌曲的中间)继续。
[1950] 为了使预测引擎36_302能够建议动作,预测引擎36_302可以访问存储关于设备的活动状态的信息的存储器设备。设备的活动状态可以表示在选择建议的应用程序之后执行的动作。例如,用于音乐应用程序的活动状态可以是播放某首歌曲。活动状态可以记录歌曲最后停止的时间。在实施方案中,图36_3的历史数据库36_316可以记录与设备的活动状态有关的历史数据。因此,预测引擎36_302可以建议要由建议的应用程序运行的动作。
[1951] XI.确定建议的应用程序的方法
[1952] 图36_5是根据本发明实施方案的基于触发事件来识别应用程序的方法36_500的流程图。方法36_500可以完全或部分地由设备执行。作为各种示例,该设备可以是手机、平板电脑、膝上型电脑或本节中已经讨论的其他移动设备。
[1953] 在框36_502处,设备(例如,移动设备)检测事件。例如,可以将一组耳机插入设备的耳机接口中。又如,无线耳机可以经由蓝牙连接耦接到设备。图36_2中的输入设备36_202可用于检测事件。事件可以是移动设备与外部实体诸如外部设备或用户交互的任何动作。
[1954] 在框36_504处,设备确定检测事件是否是触发事件。为了确定检测事件是否是触发事件,可以将检测事件与预定事件列表进行比较,例如,图36_2中的指定的触发事件数据库36_226中的事件列表。如果检测事件与预定事件列表中的一个匹配,则检测事件可被确定为触发事件。
[1955] 在框36_506处,设备选择预测模型,例如图36_4中的预测模型1到N中的一个。所选择的预测模型可以取决于触发事件。例如,当触发事件涉及与外部设备建立蓝牙连接时,可以选择设计用于蓝牙连接的预测模型。又如,当触发事件涉及将一组耳机插入耳机接口时,可以选择设计用于耳机连接的预测模型。
[1956] 在框36_508处,设备接收上下文信息。可以从各种源接收上下文信息,例如图36_3中的上下文源36_308。在实施方案中,上下文信息可以与设备的周围情况相关。例如,上下文信息可以与当日时间、一年中的一天或该设备的位置相关。此外,设备也可以接收历史信息。历史信息可以与存储在数据库中的设备与用户之间的交互历史(例如历史事件数据库36_316)相关。
[1957] 在框36_510处,设备可以识别被用户访问的概率为至少阈值概率的一个或多个应用程序。如本节中已经提到的,可以存在多个阈值。在一些实施方案中,阈值概率可以是基线阈值概率、较低阈值概率或高阈值概率。例如,一个或多个应用程序可以各自具有大于阈值概率的概率。在另一示例中,一个或多个应用程序可以具有大于阈值概率的组合概率。一个或多个应用程序可以是具有最高概率的应用程序,并且可以各种标准(例如,全部具有大于阈值的概率,如需要的高于阈值但限于最大数目的许多应用程序,等等)被选择。在一些实施方案中,可以忽略具有小于基线阈值概率的概率的应用程序。
[1958] 被用户访问的概率可以由预测模型确定。预测模型可以通过利用上下文信息以及历史信息来确定该概率。在实施方案中,所识别的应用程序是本节中关于图36_3和图36_4讨论的应用程序。
[1959] 在一些实施方案中,如果应用程序具有相等的概率,则可以忽略它们,即不识别它们。在这些情况下,设备可能需要生成额外的历史信息来正确识别这一个或多个应用程序。收集的历史信息越多,设备在识别正确的应用程序时就越准确,例如,在给定上下文中期望由用户访问的应用程序。在其他实施方案中,可以提供两个应用程序,例如,如果它们的组合概率足够高,比如两个应用程序具有最高的两个概率时发生的情况。
[1960] 在框36_512处,设备可以向用户提供用户界面。例如,设备可以经由用户可以与之交互以指示用户是否希望访问所识别的应用程序的界面,来向用户显示所识别的应用程序。例如,该用户界面可以包括触敏显示器,该显示器向用户显示所识别的应用程序中的一个或多个,并且允许用户通过与该触敏显示器交互来访问由设备识别的一个或多个应用程序。
[1961] 在某些实施方案中,可以在锁定屏幕或home屏幕中提供该用户界面。home屏幕可以是在解锁状态下按home按钮之后显示的屏幕。锁定屏幕可以是在长时间不活动后按home按钮以唤醒设备之后显示的屏幕。在实施方案中,由于锁定屏幕的一部分被保留用于解锁设备,因此锁定屏幕具有比home屏幕更少的可用显示空间来用于显示应用程序。在一些实施方案中,该用户界面可以与已经运行的应用程序相关联。例如,该用户界面可以是具有与正在运行的音乐应用程序相关联的音频控件的音乐播放器界面,如图36_6所示。
[1962] 图36_6示出了用于设备36_602的与已经运行的应用程序相关联的示例性用户界面36_600。用户界面36_600可以是用于音乐应用程序的用户界面,尽管在本节中还设想了用于不同应用程序的其他用户界面。用户界面36_600可以由触摸屏显示器36_604提供。触摸屏显示器36_604可以显示音频控件36_608、音量控件36_610、歌曲标题36_612和/或专辑封面36_614。音频控件36_608可以提供用于快进、快退、播放和暂停歌曲的用户界面。音量控件36_610允许用户调节输出的声音的音量。歌曲标题36_612和专辑封面36_614可以显示关于当前播放的歌曲的信息。在实施方案中,当用户界面36_600由触摸屏显示器36_604显示时,可以设备36_602的光源可以亮起。背光源的亮起允许用户看到正在运行的应用程序,并注意设备36_602已经运行了建议的应用程序。通过自动运行音乐应用程序并向用户提供用户界面36_600,设备36_602可以通过允许用户访问他或她所需的应用程序而不必单击一个或多个图标来增强用户体验。
[1963] 用户界面36_600的一些部分在某些情况下可能被隐藏。例如,如果设备36_602的专家中心,诸如图36_3中的专家中心36_320,决定另一应用程序优先于建议的应用程序,则专辑封面36_614可能被隐藏,而可以转为显示该另一应用程序。其他应用程序可以在显示器36_604上显示为可访问的用于运行该另一应用程序的图标。在其他实施方案中,该另一应用程序可以被显示为通知,当用户点击该通知时,允许访问该其另一应用程序的图标。在此类情况下,将显示该通知来代替专辑封面36_614。在实施方案中,如果用户界面显示在锁定屏幕上,则该通知也可以显示在锁定屏幕上。因此,可以使用户知道并给予机会来运行被认为具有较高优先级的应用程序。
[1964] XII.运行应用程序的时间限制
[1965] 在实施方案中,如果所识别的应用程序在一定时间段内未被访问,则设备可以移除用户界面,如同起初没有提供该用户界面一样。如果用户在一定时间段内未访问应用程序,则假定用户对访问该应用程序不感兴趣。因此,移除用户界面,使得用户不能访问所识别的应用程序,并且用户不会分散注意力。
[1966] 图36_7A和36_7B是示出根据实施方案的用于移除用户界面的方法的流程图。具体地讲,图36_7A是示出在经过一段时间之后移除用户界面的方法36_700的流程图。图36_7B是示出用于在阈值时间段内已经移除触发事件之后移除用户界面的方法36_703的流程图。方法36_700和36_703可以完全或部分地由设备执行。
[1967] 参见图36_7A,方法36_700始于在框36_701处向用户提供用户界面。框36_701可以如在本节中关于图36_5讨论的框36_512处所述那样执行。
[1968] 在框36_702处,设备确定从用户界面首次提供给用户以来是否经过了阈值时间段。可以在锁定屏幕或home屏幕中将用户界面提供给用户。在实施方案中,阈值时间段表示在用户未与设备进行交互的情况下将用户界面提供给用户之后立即开始的预定时间段。
[1969] 阈值时间段可能会根据触发事件的类型而有所不同。例如,如果触发事件是涉及直接用户交互的事件类型(例如,预期引起事件的用户执行的认知动作),则阈值时间段可能相对较短,诸如15到30秒。这种触发事件的一个示例包括将一组耳机插入耳机接口中。另一个示例包括在一段较长时间之后按下按钮来唤醒设备。阈值时间段可以相对较短,因为可以假设用户直接与电话交互并且可以立即知道输出的所识别的应用程序。由于用户立即知道到识别的应用程序,所以经过了一段识别的应用程序未被访问的较短时间将指示用户不打算访问识别的应用程序。
[1970] 或者,如果触发事件是不涉及直接用户交互的事件类型,则阈值时间段可能比用于涉及直接用户交互的触发事件的阈值时间段更长。在一个实施方案中,用于不涉及直接用户交互的触发事件的阈值时间段可能相对较长,诸如15至30分钟。一个这样的示例包括到达某个位置。当设备到达特定位置时,假定用户正在行驶,并且没有关注于设备。用户可以不会马上知道输出的所识别的应用程序。因此,在用户检查设备并且知道所识别的应用程序之前,可能会经历更长的时间。
[1971] 在框36_704处,如果经过了阈值时间段,则可以移除用户界面,使得用户可能根本不会认识到应用程序被建议。然而,如果没有经过阈值时间段,则在框36_706处,设备确定用户是否希望访问该应用程序。用户可以通过任何形式的经由用户界面的用户输入来指示他或她想要访问应用程序,诸如通过与触摸屏交互、按压按钮、拨动开关或使用生物特征识别设备。
[1972] 如果确定用户尚未指示他或她想要访问该应用程序,则在框36_701处,设备可以继续向用户提供用户界面。然而,如果设备接收到用户想要访问该应用程序的指示,则在框36_708处,设备可以运行该应用程序。因此,设备可以通过提供到所需应用程序的快捷方式来节省用户时间,从而增强用户体验。
[1973] 在一些实施方案中,可以在阈值时间段的持续时间之前移除用户界面。如图36_7B所示,在框36_710处,设备确定触发事件是否已经被移除,例如,已经检测到与触发事件相反的动作。例如,如果触发事件是将一组耳机插入耳机接口中,则该触发事件的移除是从耳机接口中拔出这组耳机。在另一个示例中,如果触发事件是建立蓝牙连接,则触发事件的移除是断开蓝牙连接。触发事件的移除可以由设备解释为表明用户不打算访问建议的设备。因此,如果触发事件被移除,则可以在框36_704处移除用户界面,例如,可以清除应用程序,并且可能隐藏用于该应用程序的任何用户界面。
[1974] XIII.训练例程
[1975] 随着历史信息通过移动设备的使用而累积,可以考虑到新的历史信息来周期性地对预测模型(例如,图36_4中讨论的预测模型1至N)进行训练(即更新)。经过训练后,预测模型1至N可以根据用户和移动设备之间的最新交互模式更准确地建议应用程序和动作。当记录了大量历史信息时,训练预测模型1至N可能是最有效的。因此,训练可以在足够长的时间间隔发生,以允许移动设备检测与用户的大量交互。然而,在训练项目之间等待太久的时间段可能会妨碍预测引擎的适应力。因此,训练项目之间的合适时间段可以在15至20小时之间,诸如18小时。
[1976] 训练预测模型1至N可能需要时间,并且可能会干扰移动设备的使用。因此,可以在用户最不可能使用该设备时发生训练。预测用户将不使用设备的一种方法是在设备未被使用时等待某个时间段,例如在没有按钮被按下时以及设备没有移动时。这可以指示用户处于在一段短时间内不会与手机交互的状态,例如当用户睡着时。任何合适的持续时间都可以作为要等待的时间段,诸如一到三个小时。在特定实施方案中,等待的时间段是两个小时。
[1977] 在这两小时结束时,可以更新预测模型1至N。然而,如果用户在两小时结束之前与移动设备交互(例如,按下按钮或移动设备),则可以重新启动两个小时的时间段倒计时。如果在达到两个小时不活动之前该时间段不断重新启动,则移动设备可以在某个绝对时间段之后强制训练预测模型1至N。在一个实施方案中,可以将该绝对时间段被确定为移动设备的用户友好性由于预测模型过时而开始下降的阈值时间段。该绝对时间段可以在10至15小时之间,或在特定实施方案中为12小时。因此,训练之间的最长时间可以在28小时(18+10小时)至33小时(18+15小时)之间。在一个特定实施方案中,该最长时间为30小时(18+12小时)。
[1978] 在一些实施方案中,设备100(图1A)的软件部件包括触发事件模块和预测模块。触发事件模块可以包括各种子模块或系统,例如如本节中相对于图36_2所述。此外,预测模块可以包括各种子模块或系统,例如如本节中相对于图36_3所述。
[1979] 用于基于检测到的触发事件的应用程序建议的示例性方法、设备和计算机可读介质
[1980] 在一些实施方案中,事件可由输入设备检测。可以通过将事件与一组触发事件进行比较来确定该事件是触发事件。然后选择对应于该事件的第一预测模型。然后接收关于指定计算设备在第一上下文中的一个或多个属性的设备的上下文信息,并且识别一组一个或多个应用程序。当事件在第一上下文中发生时,这组一个或多个应用程序被用户访问的概率可以为至少阈值概率。此后,为用户提供用于与这组一个或多个应用程序交互的用户界面。
[1981] 在一些实施方案中,提供了一种用于向用户提供用户界面以与在计算设备上执行的建议应用程序进行交互的计算机实现的方法,该方法包括:在计算设备处:检测计算设备的输入设备处的事件;确定该事件对应于指定用于识别一个或多个建议应用程序的一组触发事件中的一个;选择对应于该事件的第一预测模型;接收关于计算设备的上下文信息,该上下文信息指定计算设备针对第一上下文的一个或多个属性;由第一预测模型识别当该事件与第一上下文关联地发生时被用户访问的概率为至少阈值概率的一组一个或多个应用程序,第一预测模型使用在检测到该事件之后用户与计算设备的历史交互;向用户提供用于与这组一个或多个应用程序进行交互的用户界面。在一些实施方案中,检测计算设备的输入设备处的事件包括:检测计算设备与附件设备的连接。在一些实施方案中,附件设备包括耳机或车辆的计算机。在一些实施方案中,上下文信息指定计算设备的位置。在一些实施方案中,用户界面允许在具有比计算设备home屏幕上提供的应用程序更少的应用程序的屏幕上进行交互。在一些实施方案中,检测计算设备的输入设备处的事件包括:使用一个或多个运动传感器检测计算设备的运动;以及基于该移动来确定计算设备的运动状态,其中这组触发事件中的指定用于识别一个或多个建议应用程序的一个包括计算设备的该运动状态。在一些实施方案中,当检测到另一触发事件时,选择第二预测模型,该另一触发事件与所述事件不同,其中第二预测模型不同于第一预测模型。在一些实施方案中,这组一个或多个应用程序的包括多个应用程序,并且其中作为整体的这组一个或多个应用程序具有大于阈值概率的概率。在一些实施方案中,用户界面被提供在计算设备的锁定屏幕上,该用户界面允许从锁定屏幕选择这组应用程序中的一个。在一些实施方案中,该方法包括:运行这组一个或多个应用程序,该用户界面特定于正在运行的一个或多个应用程序。在一些实施方案中,一个或多个属性包括以下各项中的至少一个:计算设备的位置、由计算设备确定的当日时间以及由计算设备确定的当年日期。在一些实施方案中,该方法包括:确定阈值时间段是否已经过去;当确定阈值时间段已经过去时,移除用户界面;当确定阈值时间段尚未过去时,确定用户是否尝试访问这组一个或多个应用程序;以及当确定用户尝试访问这组一个或多个应用程序时,运行这组一个或多个应用程序。在一些实施方案中,用于涉及直接用户交互的触发事件的阈值时间段比用于不涉及直接用户交互的触发事件的阈值时间段。
[1982] 在一些实施方案中,一种包括非暂态计算机可读介质的计算机产品存储多个指令,这些指令在被执行时,控制包括一个或多个处理器的设备,这些指令包括:检测设备的输入设备处的事件;确定该事件对应于指定用于识别一个或多个建议应用程序的一组触发事件中的一个;选择对应于该事件的第一预测模型;接收关于设备的上下文信息,该上下文信息指定设备针对第一上下文的一个或多个属性;由第一预测模型识别当该事件在第一上下文中发生时被用户访问的概率为至少阈值概率的一组一个或多个应用程序,第一预测模型使用在检测到该事件时用户与设备的历史交互;向用户提供用于与这组一个或多个应用程序进行交互的用户界面。在一些实施方案中,检测该设备的输入设备处的事件包括:检测计算设备与附件设备的连接。
[1983] 在一些实施方案中,提供了一种设备,该设备包括:用于存储触发事件的触发事件存储区;用于存储历史数据的历史存储区;一个或多个输入设备;一个或多个上下文源;以及一个或多个处理器,这些处理器被配置为:检测一个或多个输入设备处的事件;确定这些事件对应于指定用于识别一个或多个建议应用程序的一组触发事件中的一个;选择对应于该事件的第一预测模型;从一个或多个上下文源接收关于设备的上下文信息,该上下文信息指定计算设备针对第一上下文的一个或多个属性;由第一预测模型识别当该事件在第一上下文中发生时被用户访问的概率为至少阈值概率的一组一个或多个应用程序,第一预测模型使用在检测到该事件时用户与计算设备的历史交互;向用户提供用于与这组一个或多个应用程序进行交互的用户界面。在一些实施方案中,所述一个或多个输入设备包括耳机接口、蓝牙设备、按钮、触摸屏、加速度计和GPS中的至少一个。在一些实施方案中,触发事件是预定事件。在一些实施方案中,用户界面允许与比计算设备home屏幕上提供的应用程序更少的应用程序进行交互。在一些实施方案中,这组一个或多个应用程序的包括多个应用程序,并且其中这多个应用程序中的每个具有大于阈值概率的概率。
[1984] 第7部分:用于基于设备上下文建议接收人的以人为中心的预测/技术
[1985] 本节“以人为中心的预测”中的材料描述了根据一些实施方案的基于设备上下文来建议接收人的以人为中心的预测和技术,并且提供了补充本文提供的公开内容的信息。例如,本节的一部分内容描述了识别和预测联系人以及推荐这些联系人供用户使用的方式,这补充了本文提供的公开内容,例如那些与下文讨论的方法600和方法800有关的公开内容,特别是有关于在图9B至图9C的预测部分930中填充建议人的公开内容。在一些实施方案中,在本节中描述的用于帮助预测和建议联系人的预测模型和历史交互数据库用于帮助识别适当的联系人以用于预测、建议和/或包括在用户界面中,诸如搜索界面或锁定屏幕中以供用户立即使用(即,这些预测模型与方法600,800,1000和1200结合使用来建议/预测联系人)。
[1986] 以人为中心的预测的简明摘要
[1987] 实施方案基于设备的当前上下文来建议最可能与计算设备的用户相关的通信和交互的接收人。计算设备的示例是电话、平板电脑、膝上型电脑或台式计算机。一个示例性系统收集以前交互的知识,并根据此知识建议预测的接收人。该知识可以与指示用户与其他用户进行交互的时间、地点和方式的信息一起存储在历史交互数据库中。该系统可以推荐接收人(例如,人)以及在给定特定上下文的情况下与他们交互的机制。可以根据指示时间、位置和账户标识符(例如,电子邮件账户)的状态变量来描述上下文。上下文还可以基于关键字(例如,来自电子邮件主题或日历事件标题的关键字)以及其他因素,诸如例如用户以前与之交互过的接收人集合。可以施加额外的限制来帮助将对特定用户、账户、应用程序(例如通信应用程序)或交互机制的建议缩小。
[1988] 实施方案可以提供用于基于事件和上下文来建议要与计算设备联系的一个或多个接收人的系统、方法和装置。示例性事件包括接收用以发起搜索的输入,接收用以访问电子邮件应用程序的输入,电子邮件的撰写,接收用以访问文本消息收发应用程序的输入,文本消息的撰写,接收用以访问日历应用程序的输入,创建日历条目,编辑日历条目,开始打电话,启动视频通话,以及启动视频会议。示例性上下文包括位置和时间。实施方案可以基于用户正在用来发起或撰写通信的设备的上下文(例如,在家中、上下班、在公司等)来预测该通信的接收人。例如,基于关于该通信的信息(例如,该通信是电子邮件、即时消息、文本消息、视频会议还是日历邀请),预测用于该通信的接收人。还基于先前的通信预测用于通信的接收人。例如,用户在以前已经经由电子邮件、消息或呼叫与之交互的用户或联系人可被建议为用于通信的接收人。
[1989] 实施方案可以提供用于通过使用上下文信息预测用户可能想要在某一时间和地点与之进行交互的人,从而建议要联系的接收人的方法。一些实施方案确定当设备(例如,移动设备)的用户在应用程序程序中撰写或发起通信时表示当前状态的当前上下文。在实施方案中,当前上下文可以包括上下文信息,诸如时间、位置、下一个日历条目、通信的标题或主题(例如,电子邮件主题或日历条目标题)、类似通信的上个接收人,以及账户信息(例如,个人电子邮件账户或工作电子邮件账户)。一些实施方案使用当前上下文来预测用户将作为通信的接收人添加的最可能的接收人。
[1990] 其他实施方案涉及与本文所述的方法相关联的系统、便携式消费设备以及计算机可读介质。
[1991] 通过参考以下具体实施方式和附图,可更好地理解本发明的实施方案的实质和优点。
[1992] 以人为中心的预测的详细描述
[1993] 实施方案可以提供用于向计算设备的用户建议接收人的定制和个性化体验,从而利用该设备来更容易地与其他用户进行交互和通信。实施方案可提供用于使用以人为中心的预测来建议要联系的接收人的方法。以人为中心的预测使用上下文信息来预测用户可能想要在某一时间和地点与之进行交互的人。计算设备的用户可以与一组其他用户(例如,联系人)进行交互和通信。计算设备的示例是电话、平板电脑、膝上型电脑或台式计算机。与其他用户的交互和通信可以在特定事件之后发生。示例性事件包括发起搜索、访问通信应用程序,以及撰写或发起通信。示例性通信应用程序包括电子邮件应用程序、日历应用程序、视频通话应用程序、即时消息应用程序、文本消息应用程序、视频会议应用程序、网络会议应用程序和语音呼叫应用程序。示例性通信包括语音和数据通信,诸如例如电子邮件消息、日历邀请、文本消息、即时消息、视频通话、语音呼叫和视频会议。当在设备上使用通信应用程序时,可以基于将设备的当前上下文与历史信息进行比较来建议通信的接收人。
[1994] 在实施方案中,来自过往历史交互的数据被存储在数据库的表中并用于建议通信的接收人。该数据库可以包括过往交互的上下文信息,诸如例如时间戳、用于交互的应用程序、账户信息(例如,用于电子邮件账户的账户标识符)和位置。可以将过往交互与设备的上下文进行比较,以建议设备上发起的通信的接收人。例如,可以将设备的当前上下文与历史交互数据进行比较,以将当前上下文与先前接收人的类似过去交互进行匹配。
[1995] 历史数据中的每个数据点(例如,记录)可以对应于特定上下文(例如,对应于设备的一个或多个属性),随着时间推移,会获得用于特定上下文的越来越多的数据。用于特定事件的历史数据可用于向用户建议接收人。由于不同的用户将具有不同的历史数据,因而实施方案可以提供个性化的体验。
[1996] 在一些实施方案中,用于先前的类似通信的接收人用于建议用于正被撰写或发起的通信的接收人。例如,如果用户选择用于当前通信的第一接收人,则可以使用添加到与所选择的第一接收人的过去通信的其他接收人来预测用于当前通信的额外接收人。在一个实施方案中,可以基于指示交互的周期性的上下文数据(例如,在一天的类似事件或一周的同一天重复发送的通信)来建议接收人。还可以基于指示用户的当前位置类似于当过往通信被发送到某些联系人时用户所在的位置的位置信息来建议接收人。
[1997] 在实施方案中,可以使用用户提供的信息来预测接收人。用户提供的信息可以包括电子邮件主题、电子邮件的内容、日历条目标题、事件时间和/或用户选择的接收人。可以将此类用户提供的信息与历史上下文信息进行比较以预测接收人。例如,具有与用户提供的信息相似的特征的过去通信的接收人可以作为当前通信的建议接收人被呈现给用户。一些实施方案可以使用用户已经输入通信的信息(例如,如果用户已经包括主题或附件)来确定这样的信息与潜在接收人的识别相关。例如,实施方案可以解析电子邮件消息或日历条目的主题以识别一个或多个关键字,这些关键字可能与这些信息可用时建议潜在接收人相关。
[1998] 为了提供准确的个性化体验,各种实施方案可以从一个宽泛的模型开始,该模型被简单地训练而不提供接收人建议,或为各种上下文建议相同的一组接收人。利用足够的历史数据,该宽泛模型可以被分段为子模型,例如,作为一组人或交互,每个子模型对应于历史交互数据的一个不同子集。然后,当事件确实发生时,可以选择特定的子模型来提供对应于设备当前上下文的一个或多个建议的接收人。可以使用各种标准来确定何时生成子模型,例如,在历史数据子集中提供正确预测的子模型中的置信水平,以及历史数据分布中相对于父模型的信息增益(熵减少)。
[1999] 因此,一些实施方案可以决定何时以及如何在接收人推荐的上下文中将历史数据分段。例如,在收集一段时间的用户交互活动之后,实施方案可以累积可能的分段候选项的列表(例如,位置、星期几、当日时间等)。实施方案还可以训练整个数据集上的模型,并计算数据集和模型的联合分布的置信度度量。可以训练一组模型,为每个分段的数据集(即子集)训练一个,然后测量每个数据模型分布的置信度。如果所有数据模型分布的置信度是可接受的,那么实施方案可以执行分段(分割),然后递归地检查经分段的空间,以用于附加分段。
[2000] 以这种方式,一些实施方案可以使用推论来探索分段和泛化之间的折衷,为具有更加清晰而复杂的模式的用户创建更复杂的模型,并且为具有更嘈杂而简单的模式的用户创建简单的一般模型。并且,一些实施方案可以基于在潜在候选模型中确定散度分布来生成概率模型树。
[2001] I.基于事件建议接收人
[2002] 实施方案可以基于事件来建议一个或多个接收人,该事件可能限于某些预定事件(也称为触发事件)。示例性触发事件可以包括发起搜索、撰写电子邮件、创建日历条目等。例如,当用户开始使用某个电子邮件账户撰写电子邮件时,可以建议用户先前使用该电子邮件账户向其发送过电子邮件的联系人。在一些实施方案中,上下文信息可以与事件结合使用以识别要向用户建议的接收人。例如,当正在创建或修改日历条目(例如,日历事件、会议或约会)时,可以使用与位置相关的上下文信息。如果设备在办公地点,例如,在该位置有办公室的接收人A可被建议为日历事件的受邀者。或者,如果设备在家中,则与家庭位置相关联的接收人B(即家庭成员或室友)可以被建议为日历条目的受邀者。因此,可以在适当时候建议被预测为在某些上下文下相关的接收人,从而增强用户体验。又如,当打开某个日历条目以进行创建或修改时,可以使用与时间有关的上下文信息。如果该日历条目的预定开始时间对应于用户的典型工作时间,则可以将作为同事的接收人A建议为该日历事件的受邀者。或者,如果该日历条目具有对应于晚上或周末的开始时间,则可以将作为朋友或家庭成员的接收人B建议为该日历事件的受邀者。
[2003] 图37_1是根据本发明实施方案的用于基于检测事件来建议接收人的方法37_100的流程图。方法37_100可以由移动设备(例如,电话、平板电脑)或非移动设备执行,并且使用设备的一个或多个用户界面。
[2004] 在框37_102处,检测用户设备处的用户输入。在一些实施方案中,可以确定该输入是否对应于用于建议接收人的触发事件。在一些具体实施中,仅针对某些预定事件(例如,触发事件)来确定一个或多个建议的接收人。在其他具体实施中,可以针对动态事件列表来确定一个或多个建议的接收人,该动态事件列表可以基于使用用户设备进行的历史用户交互来更新。
[2005] 在一些实施方案中,可以将触发事件识别为充分可能地与设备的通信应用程序的操作相关联。触发事件的事件列表可以存储在设备上。此类事件可以是默认列表,并作为操作系统的一部分被维护,并且可以由或可以不由用户进行配置。
[2006] 触发事件可以是由用户和/或外部设备引起的事件。例如,触发事件可以是当在移动设备处接收到输入时。示例包括接收用以发起搜索的输入,接收用以访问通信应用程序的输入等。在该示例中,这些事件中的每一个可以被分类为一种不同的触发事件。作为其他示例,触发事件可以是用户与设备的特定交互。例如,用户可以在设备上发起搜索,访问设备上的通信应用程序,或开始在设备上撰写通信消息。此外,例如,用户可以将移动设备移动到工作地点,这种情况下设备的位置状态是触发事件。可以基于设备的传感器来确定这样的位置状态(或其他状态)。
[2007] 在框37_104处,确定表示设备的当前状态的上下文信息。在一个示例中,上下文信息可以指示在设备上执行的应用程序。例如,上下文信息可以指示用于发起通信的通信应用程序的状态。上下文信息还可以指示用于发起搜索的搜索应用程序的状态。例如,框37_104可以包括确定对应于设备上正在使用的通信应用程序的时间、账户信息(例如,电子邮件账户标识符)和/或位置。框37_104还可以包括确定设备的子状态,子状态是正在执行的应用程序的应用程序状态。例如,应用程序状态可以指示用于撰写电子邮件消息的电子邮件应用程序的状态,用于创建日历事件的日历应用程序的状态,用于发起即时消息的即时消息收发客户端的状态,用于撰写文本消息的应用程序的状态,或用于发起电话呼叫、视频通话或视频会议的应用程序的状态。
[2008] 上下文信息可以针对特定上下文指定设备的一个或多个属性。上下文可以是当接收到触发事件时设备的周围环境(上下文的类型)。例如,上下文信息可以是一天中检测到该事件的时间。在另一示例中,上下文信息可以是当检测到该事件时设备的特定位置。在又一示例中,上下文信息可以是检测到触发事件时的特定日期。这样的上下文信息可以提供关于设备的上下文的更有意义的信息,使得建议引擎可以准确地建议用户在该上下文中可能选择的接收人。因此,与不使用上下文信息相比,使用上下文信息的预测引擎可以更准确地向用户建议接收人。
[2009] 在框37_106处,检索表示用户和其他用户之间的过往交互的历史数据。检索是基于上下文信息。例如,框37_106可以包括检索对应于过往电子邮件、消息、电话呼叫、日历条目、视频通话和视频会议的数据。可以从对应于使用用户设备进行的先前通信的表中检索历史数据,其中每个表对应于用户设备的不同设备子状态,并且包括用于不同接收人的先前通信的多个联系人度量。例如,框37_106可以包括使用一个或多个状态变量来识别对应于这一个或多个状态变量的第一组表,然后从该第一组表中获得用于一个或多个潜在接收人的联系人度量。
[2010] 在框37_108处,将上下文信息与历史数据进行比较。框37_108可以包括查询在框37_106处识别的第一组表,以确定这组表中的历史数据与上下文信息之间的相关性。
[2011] 在框37_110处,预测用于通信的一个或多个接收人。如图37_1所示,基于在框37_108处执行的比较来预测接收人。例如,当在用户设备处于工作位置时,在工作时间期间使用工作电子邮件账户来撰写电子邮件时,可以将先前使用的具有工作电子邮件地址的联系人识别为预测的接收人。在一些实施方案中,可以识别不止一个接收人。
[2012] 框37_110可以使用预测引擎或预测模型来识别预测的接收人。例如,可以为特定的触发事件选择预测模型。预测模型可以使用上下文信息来识别接收人,例如,与不同接收人的交互或通信可能在不同的上下文中更有可能发生。一些实施方案可以仅在用户选择建议的接收人有足够概率时(例如,由使用该设备时用户与接收人的历史交互确定)才建议接收人。历史交互的示例可以包括用户使用电子邮件应用程序、文本消息收发(例如,基于SMS的消息收发)、即时消息收发应用程序和视频会议应用程序与接收人交换的至少部分通信。
[2013] 在一些实施方案中,可以使用基于过往通信和交互的社交元素来预测接收人。例如,在框37_106处获得的历史数据可用于对先前发送的电子邮件的接收人进行加权。社交元素反映用户设备的用户与用户的通信的过去接收人的组(例如,联系人和联系人组)之间的历史交互数据。共同出现(即发送给同一组接收人的通信)可用于预测电子邮件接收人。例如,社交元素可以对用户已经向其发送电子邮件的每个接收人进行加权,其中较高的权重被分配给已被重复地包括在一组接收人(例如,抄送列表或定义的联系人组)中的接收人。接收人可以通过其各自的电子邮件地址在历史数据中被唯一地标识。与收到的电子邮件相比,用于已发送的电子邮件的社交元素权重可能更高。社交元素也可以基于用户已经用来发送电子邮件的电子邮件账户(例如,个人账户或工作账户)来被加权。当上下文信息指示正在撰写电子邮件时,可以使用社交元素来识别过去电子邮件的接收人的共同出现。
这些共同出现可以反过来用于预测正在撰写的电子邮件的接收人,特别是当用户选择已经包括在过去电子邮件消息中的一组接收人中的一个接收人时。
[2014] 在框37_112处,向用户提供一个或多个预测接收人的指示。框37_112可以包括在用户设备的用户界面中或在用户设备上执行的通信应用程序中呈现一个或多个预测接收人的列表。在一些实施方案中,可以在框37_112处与正在执行的应用程序相关联地执行动作。在一个实施方案中,该动作可以是显示用户界面以供用户选择一个或多个预测的接收人。用户界面可按各种方式提供,例如通过在设备的屏幕上显示、投影到表面上、或者提供音频接口的方式提供。
[2015] 在其他实施方案中,可以运行某一应用程序,并且可以向用户提供特定于该应用程序的用户界面。可以响应于识别接收人,例如通信的潜在接收人,提供任一个用户界面。在其他具体实施中,可以在(例如,通过密码或生物识别)认证用户之后提供用以与应用程序交互的用户界面,但是这样的用户界面将比只有home屏幕的情况更具体,诸如具有建议接收人列表的界面。
[2016] II.启动接收人预测的事件
[2017] 触发事件可以是触发识别要提供给用户的一个或多个接收人的一组预定事件。可以使用由设备部件生成的信号来检测事件。下面将参考图37_2更详细地讨论如何检测触发事件的细节。
[2018] 图37_2示出了根据本发明实施方案的用于确定触发事件的检测系统37_200的简化框图。检测系统37_200可以驻留在正在为其确定触发事件的设备内。如图所示,检测系统37_200可以检测多个不同的事件。检测到的事件中的一个或多个可以由检测系统37_200确定为触发事件。其他处理模块然后可以使用触发事件来执行处理。
[2019] A.检测事件
[2020] 在实施方案中,检测系统37_200包括用于检测触发事件的硬件和软件部件。例如,检测系统37_200可以包括多个输入设备,诸如输入设备37_202。输入设备37_202可以是能够响应于事件而生成信号的任何合适的设备。例如,输入设备37_202可以包括可以分别检测设备连接事件、用户交互事件和位置事件的用户交互输入设备37_204和位置输入设备37_206。当在输入设备处检测到事件时,输入设备可以发送信号,该信号指示用于进一步分析的特定事件。
[2021] 在一些实施方案中,部件的集合可以参与单个事件。例如,可以基于运动传感器、GPS定位设备和时间戳检测到人正在上班或下班。
[2022] 1.用户交互事件
[2023] 用户交互输入设备37_204可以用于检测用户交互事件。用户交互事件可以在用户与设备进行交互时发生。在一些实施方案中,用户可以经由用户交互输入设备37_204中的一个向应用程序的显示的用户界面提供输入。在其他实施方案中,该用户界面可以不显示,但是用户仍可以访问它,例如经由用户摇动设备或提供某种其他类型的手势。此外,交互可以不包括用户界面,例如,当状态引擎使用来自设备的传感器的值时。
[2024] 可以将用户界面的任何合适的设备部件用作用户交互输入设备37_204。合适的用户交互输入设备的实施例是按钮37_208(例如,home按钮或电源按钮)、触摸屏37_210、相机37_212、加速度计37_214、麦克风37_216和鼠标37_218。例如,移动设备的按钮37_208,诸如home按钮、电源按钮、音量按钮等可以是用户交互输入设备37_204。此外,开关诸如静音模式开关可以是用户交互输入设备37_204。而且,例如,移动设备的麦克风37_216,诸如被配置为检测语音命令的集成麦克风,可以是用户交互输入设备37_204。又如,鼠标37_218或指向设备诸如触笔可以是用于向通信应用程序提供用户输入的用户交互输入设备37_204。
[2025] 当用户与设备进行交互时,可以确定用户已经向应用程序提供了用户输入,并且可以生成相应的触发事件。这样的事件可以取决于设备的当前状态,例如设备位于何处或事件何时发生。也就是说,可以部分地基于来自用户交互输入设备37_204的输入结合设备的位置状态(例如,在工作位置)和时间上下文(例如,平日上午)来生成触发事件。当确定某个时间是否是触发事件时,也可以使用这样的信息。
[2026] 触摸屏37_210可以允许用户经由显示屏提供用户输入。例如,用户可以在显示器上轻扫他或她的手指以生成用户输入信号。当用户执行该动作时,可以检测到相应的触发事件37_228。
[2027] 加速度计37_218或其他运动传感器可以是(例如,使用陀螺仪或罗盘)检测移动设备的移动(例如摇动和倾斜)的无源部件。可以由事件管理器37_230检测移动设备的这种移动,事件管理器可以确定该移动是特定类型。事件管理器37_230可以生成对应于在设备的给定状态下的特定类型用户交互事件的事件信号37_232。设备的状态可以由状态引擎确定,状态引擎的进一步细节可以在名称为“Activity Detection”的美国专利公布2012/0310587和名称为“Determining Exit From A Vehicle”的美国专利公布2015/0050923中找到,这两个专利的全部内容以引用方式并入本文。
[2028] 一个示例是当用户正在跑步时,加速度计可以感测摇动并生成要提供给事件管理器37_230的信号。事件管理器37_230可以分析加速度计信号以确定事件的类型。确定了事件的类型之后,事件管理器37_230可以生成对应于该事件类型的事件信号37_232。移动设备可以移动以便指示用户正在跑步。因此,该特定用户交互可以被识别为跑步事件。然后,事件管理器37_230可以生成并发送指示已经检测到跑步事件的事件信号37_232。
[2029] 2.位置事件
[2030] 位置输入设备37_206可以用于生成位置事件。位置事件可以与用户交互事件结合使用,以触发接收人建议。可以使用任何合适的定位系统来生成位置事件。例如,可以使用全球定位系统(GPS)来生成位置事件。位置事件可以是对应于特定地理位置的事件。例如,如果移动设备到达特定位置,则GPS部件可以生成对应于位置事件的输入信号。
[2031] B.确定触发事件
[2032] 如图37_2进一步所示,输入设备37_202可以输出检测事件37_222,例如作为任何相应事件的结果。检测事件可以包括关于哪个输入设备正在发送用于检测事件37_222的信号的信息、用于特定事件的子类型(例如,哪种耳机类型或数据连接类型)。可以使用这样的信息来确定检测事件37_222是否是触发事件,并且这样的信息可以被传递到之后的模块,用于确定要使用哪个预测模型或要为建议的接收人执行哪个动作(例如,撰写电子邮件,创建日历邀请,发起语音呼叫或视频通话)。
[2033] 检测事件37_222可由事件管理器37_230接收。事件管理器37_230可以从输入设备37_202接收信号,并且确定检测到什么类型的事件。根据事件的类型,事件管理器37_230可以将信号(例如,事件信号37_232)输出到不同的引擎。不同的引擎可以具有对事件管理器
37_230的订阅,以接收对于其功能重要的特定事件信号37_232。例如,可以订阅触发事件引擎37_224以接收响应于来自输入设备37_202的检测事件37_222而生成的事件信号37_232。
事件信号37_232可以对应于从检测事件37_222确定的事件的类型。
[2034] 触发事件引擎37_224可以被配置为确定检测事件37_222是否是触发事件。为了进行该确定,触发事件引擎37_224可以引用指定的触发事件数据库37_226,该数据库可以耦接到触发事件引擎37_224。指定的触发事件数据库37_226可以包括被指定为触发事件的预定事件的列表。
[2035] 触发事件引擎37_224可以将接收到的检测事件37_222与预定事件的列表进行比较,并且如果检测事件37_222与指定的触发事件数据库37_226中列出的预定事件相匹配,则输出触发事件37_228。例如,预定事件的列表可以包括以下中的一个或多个:(1)访问通信应用程序,(2)发起搜索,(3)撰写通信,(4)感测设备的特定类型的移动,以及(5)到达特定位置。对于(5),指定的触发事件数据库37_226可以包括特定位置的规格。对于预定事件(1)至(5)中的每一个,事件发生的时间或时间范围可以被包括在指定的触发事件数据库37_226中。例如,指定的触发事件数据库37_226可以存储对应于感测到在早上8点至10点之间到达工作位置的指定触发事件。
[2036] III.建议的接收人的确定
[2037] 检测到触发事件之后,可以基于触发事件来识别一个或多个潜在的接收人。在一些实施方案中,接收人的识别不是预先编程的动作。相反,接收人的识别可以是可以根据附加信息而改变的动态动作。例如,可以基于上下文信息和/或以人为中心的历史交互信息,以及基于其他信息来确定建议的接收人的识别。
[2038] 每当发生特定的触发事件(例如,访问设备上的电子邮件客户端、日历应用程序、即时消息应用程序或视频会议应用程序)时,设备可以跟踪哪个(些)接收人被选择为与该事件关联的通信的接收人。响应于特定事件的每次出现,设备可以保存对应于所选接收人、使用该应用程序执行的与接收人的交互以及该事件的数据点。在各种实施方案中,可以单独地保存数据点或与针对特定接收人被选择的次数确定的计数聚合地保存数据点,其中该计数可以包括用于特定动作的计数。例如,指示发送到接收人的电子邮件数量的计数可以与指示哪个电子邮件账户被用于发送这些电子邮件、发送电子邮件的时间以及发送电子邮件时设备的位置的信息一起保存。在该实施例中,数据点也可以指示接收人是电子邮件的第一个收件人的次数,收件人作为电子邮件组或通讯组列表的一部分被包括的次数,收件人被复制(例如,抄送/CC或密件抄送/BCC)的次数。因此,针对同一选择的接收人的不同动作确定不同的计数。
[2039] 指示用户与接收人的先前交互和通信的历史数据可以用作预测模型的输入,该预测模型预测给定的接收人是否应被建议为将来通信的接收人。例如,用于预测/建议接收人的历史数据可以包括与其他用户的过往交互(即历史交互)的记录。这种历史交互的示例包括语音呼叫、电子邮件、日历条目/事件、即时消息、文本消息(例如,基于SMS的消息)、视频会议和视频通话。例如,历史交互可以包括指示对应于过往语音呼叫的时间、持续时间和接收人(由电话号码标识)的通话历史。此外,例如,历史交互可以包括指示对应于过往电子邮件消息的时间、周期性(例如,每天、每周)和接收人(由电子邮件地址标识)的电子邮件历史。
[2040] 一旦检测到特定的事件,就可以选择对应于该特定事件的预测模型。将使用对应于特定事件的历史交互数据作为训练过程的输入来确定该预测模型。然而,历史数据可能在许多不同的上下文(即,上下文信息的不同组合)中发生,其中在不同的上下文中选择不同的接收人。因此,总的来说,历史交互数据可能不会建议在特定事件发生时将由用户明确地选择的接收人。
[2041] 预测模型可以对应于特定事件。可以使用计算设备的一个或多个属性来确定建议的要联系的接收人。例如,可以从对应于事件发生之后用户与其他用户的交互的历史数据子集生成特定的子模型。可以在设备具有一个或多个属性(例如,在访问电子邮件应用程序的事件之后用户与选择的接收人的交互,具有特定位置和/或当日时间的属性)时收集该历史交互数据子集。预测模型可以由子模型组成,每个子模型用于不同的上下文数据组合。不同的组合可以具有不同上下文数据量。这些子模型可以在层级树中生成,其中更具体组合的子模型在层级树中所处位置更低。在一些实施方案中,只有当子模型可以以比树中更高的模型更准确地预测接收人时,才会生成该子模型。以这种方式,可以对用户将选择哪个应用程序进行更准确的预测。在一些实施方案中,预测模型和子模型可以识别在存在上下文数据的特定组合时在事件之后由用户选择的前N个接收人(例如,固定百分比数)。
[2042] 可以对诸如神经网络或回归的模型进行训练,以识别用于特定上下文的特定应用程序,但是当使用了所有相应的历史数据时,这可能较为困难。使用所有历史交互数据可能导致预测模型过度拟合,并且导致准确度降低。本发明的实施方案可以将历史数据分段成历史数据的不同输入集,每一个输入集对应于不同的上下文。可以针对不同的历史数据输入集训练不同的子模型。
[2043] A.基于不同上下文数据的不同模型
[2044] 当特定事件发生时,设备可以处于各种上下文中,例如在不同的位置(诸如在工作中、在家中或在学校),在不同的时间,在一周的不同的日子(诸如工作日或周末),在设备的不同运动状态(诸如跑步、步行、在开车,或静止不动),或处于通信应用程序的不同使用状态(诸如用于撰写电子邮件或创建日历条目)。可以联合所检测的事件检索上下文信息,例如在检测到该事件之后检索上下文信息。可以使用上下文信息来帮助预测哪个预测接收人可能被选择作为与检测事件相关联的通信的接收人。可以使用GPS传感器来确定不同的位置,并且可以基于先前的通信何时发送来确定时间。可以使用诸如加速度计、陀螺仪或GPS传感器的运动传感器来确定不同的运动状态。
[2045] 实施方案可按各种方式使用上下文信息。在一个示例中,可以使用一条上下文数据(例如,对应于设备的一个属性)来预测哪个接收人最有可能被选择。例如,设备的特定位置可以被提供为预测模型的输入。
[2046] 又如,上下文信息的一些或全部上下文数据可以在分段过程中使用。可以使用某段上下文数据来对输入的历史数据进行分段,使得仅使用与该段上下文数据的对应属性相对应的历史数据来确定特定子模型。例如,设备的特定位置不会被用作子模型的输入,而是用于选择要使用的子模型,以及相应地使用哪个输入数据来生成特定子模型。
[2047] 因此,在一些实施方案中,特定上下文数据可用于识别要使用哪个子模型,并且其他上下文数据可以用作子模型的输入,用于预测用户可能与哪个接收人进行交互。特定属性(例如,特定位置)不对应于特定子模型,该特定属性可被用作未来(输入)所使用的子模型。如果该特定属性对应于某一特定子模型,则该属性的使用情形可以变得更加丰富,因为整个模型都专用于该特定属性。
[2048] 将子模型专用于特定属性(或属性的组合)的一个缺点是,可能没有大量与该特定属性相对应的历史数据。例如,用户可能只在特定位置几次执行特定事件(例如,撰写电子邮件)。这种有限的数据量也被称为数据稀疏。当使用属性的组合(例如,特定时间的特定位置)时,数据可能变得更加稀疏。为了克服这个缺点,实施方案可选择性地确定何时生成新的子模型作为分段过程的一部分。
[2049] 1.默认模型
[2050] 当设备被用户第一次获得(例如带来)时,可以使用默认模型。默认模型可以应用于一组事件(例如,指定为触发事件的所有事件)。默认模型可以播种有来自与用户关联的其他设备的聚合数据。在一些实施方案中,默认模型可以简单地选取最流行的接收人,而不管上下文,例如,由于没有足够的数据可用于任何一个上下文。再次收集数据后,可以丢弃默认模型。
[2051] 在一些实施方案中,默认模型可以具有硬编码的逻辑,其指定要建议的预定接收人和要执行的动作。这样,可以探测用户如何响应(例如,否定响应是用户不选择建议的接收人),这样可以提供简单地跟踪所使用的肯定响应的额外数据。类似于这种默认模型,可以运行预测模型来将其预测与实际结果进行比较。然后可以根据实际结果来改进预测模型。当预测模型具有足够的置信度时,可以从默认模型切换到预测模型。类似地,可以跟踪子模型的性能。当子模型具有足够的置信度时,子模型可以用于给定的上下文。在一些实施方案中,存在关于不同事件的不同子模型。例如,电子邮件子模型可用于电子邮件上下文以预测电子邮件的接收人,单独的日历子模型可用于预测日历事件的受邀者。这些不同的子模型可以使用来自历史交互数据库中相应表格的数据来识别以前的电子邮件和日历邀请的接收人。在该实施例中,电子邮件表可以具有过往电子邮件消息的记录,这些记录指示用户以前添加到消息中的接收人。类似地,历史交互数据库中的日历表可以具有过往日历事件的记录,这些记录指示被邀请到日历事件的用户。
[2052] 2.初始训练
[2053] 预测模型(例如,事件模型)可以使用到目前为止收集的历史数据来进行初始训练,其中该模型不向用户提供接收人建议。这种训练可以称为初始训练。可以周期性地(例如,每天)更新预测模型来作为后台进程的一部分,这可以在设备充电并且不使用时发生。训练可以涉及优化模型的系数,以便优化正确预测的数量,并与历史交互数据中的实际结果进行比较。在另一示例中,训练可以包括识别实际选择的前N个(例如,预定数量或预定百分比)应用程序。训练后,可以测量模型的准确度,以确定是否应使用该模型来向用户提供建议的接收人(和潜在的相应交互类型)。
[2054] 一旦模型获得足够的准确度(例如,顶部选择的应用程序是以足够高的准确度被选择的),则可以实现该模型。对于顶级模型(例如,第一事件模型),这种情况可能不会发生,但是当针对特定上下文测试子模型时可能发生这种情况。因此,可以类似地对子模型执行这样的初始训练。
[2055] B.获取更多数据时的分段
[2056] 当用户首次开始使用设备时,将不存在用于预测在特定事件之后(例如,在访问电子邮件应用程序、日历应用程序、视频会议应用程序,或日历应用程序之后)用户可能选择与之交互的接收人的历史交互数据。在初始模式下,可以获得历史交互数据,而不建议预测的接收人。随着获得更多的历史数据,可以确定是否将预测模型分段为子模型。利用更多的历史交互数据,子模型可以被分段成更多的子模型。当有限的历史数据可用于用户与接收人的交互时,不建议接收人,或者可以使用更一般的模型。
[2057] 分段过程可以由用户设备(例如,移动设备,诸如智能电话)执行,用户设备可以维护数据隐私。在其他实施方案中,可以由与用户设备通信的服务器执行分段过程。分段过程可以在一段时间内(例如,几天或几个月)中部分地执行,或者可以一起执行整个分段过程,并且可以周期性地重新进行。分段过程可以作为接收人预测引擎的例程执行。
[2058] 随着更多数据被收集,预测模型可以被分段成数个子模型。在收集数据的不同点,可能会发生分段。随着更多数据被获取,可能会发生另一次分段。每个分段可以涉及完全重做分段,这可能或可能不导致如先前分段中那样创建的相同子模型。
[2059] 在该实施例中,第一事件模型可以对应于特定事件(例如,向特定联系人(诸如同事)发送电子邮件)。该事件模型可以对应于针对该特定事件的预测引擎的顶级。最初,对于该特定事件,只能有一个模型,因为可用的历史交互数据最少。此时,事件模型可能只是出于训练目的跟踪历史数据。事件模型可以进行接收人预测并将这些预测与实际结果进行比较(例如,用户是否选择建议的接收人以在检测到事件之后的指定时间内与之进行交互)。如果没有接收人具有大于阈值的概率,则在特定事件发生时不会建议任何接收人。
[2060] 在一些实施方案中,事件模型仅使用针对特定设备收集的数据。在其他实施方案中,事件模型可以播种有从与用户关联的其他设备聚合的历史交互数据。这样的历史交互数据可以允许事件模型提供一些接收人建议,这可以随后允许获得额外的数据点。例如,可以跟踪用户是否经由特定应用程序(例如,电子邮件、音频呼叫、视频会议、即时消息或文本消息)与建议的接收人进行交互,这可以提供比用户是否确实选择接收人提供更多的数据点。
[2061] 随着收集更多数据,可以周期性地确定是否应该进行分段。此类确定可以基于是否可以通过分段获得更高的准确度。该准确度可作为可以进行预测的概率水平来测量,这在下文更详细地描述。例如,如果可将接收人预测为具有比事件模型更高水平的子模型概率,则可以执行分段。还可以使用一个或多个其他标准,来确定是否应该创建子模型作为分段过程的一部分。例如,一个标准可以是,在应用子模型之前,子模型必须具有统计意义上显着的输入历史数据量。由于在少量数据上训练的模型可能不准确,因此对数据量的要求可以为子模型提供更大的稳定性,并且最终提供更准确的数据。
[2062] C.用于基于触发事件建议接收人的系统
[2063] 图3示出了根据本发明实施方案的预测系统37_300的简化框图,该预测系统用于基于触发事件和上下文信息来识别接收人和相应的动作命令。预测系统37_300驻留在识别应用程序的设备内。预测系统37_300可以包括硬件和软件部件。
[2064] 预测系统37_300包括用于识别建议的接收人的预测引擎37_302。预测引擎37_302可以接收触发事件。预测引擎37_302可以使用从触发事件37_328收集的信息来识别建议的接收人37_304。如图所示,除了触发事件37_328之外,预测引擎37_302还可以接收上下文数据37_306。预测引擎37_302可以使用从触发事件37_328和上下文数据37_306两者收集的信息来识别建议的接收人37_304。在实施方案中,基于接收的上下文数据37_306,预测引擎37_302使用不同的模型来识别用于不同类型的通信的建议接收人。例如,当上下文数据37_
306指示正在访问电子邮件应用程序或正在撰写电子邮件时,预测引擎37_302可以使用电子邮件子模型。电子邮件子模型可以结合来自历史事件数据库37_316的历史电子邮件数据使用这样的上下文数据37_306来预测电子邮件接收人。电子邮件子模型可用于预测电子邮件的接收人,单独的日历子模型可用于预测日历事件的受邀者。预测引擎37_302还可以确定要执行的动作,例如,如何和何时可以为与建议的接收人交互的用户提供用户界面。
[2065] 1.上下文信息
[2066] 可以从上下文数据37_306收集上下文信息。在实施方案中,可以在任何时间接收上下文信息。例如,可以在检测到触发事件37_328之前和/或之后接收上下文信息。另外,可以在检测触发事件37_328期间接收上下文信息。上下文信息可以针对特定上下文指定设备的一个或多个属性。上下文可以是当检测到触发事件37_328时设备的周围环境(上下文的类型)。例如,上下文信息可以是检测到触发事件37_328的时间。在另一示例中,上下文信息可以是当检测到触发事件37_328时设备的特定位置。在又一示例中,上下文信息可以是检测到触发事件37_328时的特定日期。这样的上下文信息可以提供关于设备的上下文的更有意义的信息,使得预测引擎37_302可以准确地建议用户在该上下文中可能选择作为接收人的接收人。因此,与不使用上下文信息相比,使用上下文信息的预测引擎37_302可以更准确地向用户建议接收人。
[2067] 上下文数据37_306可由上下文源37_308生成。上下文源37_308可以是移动设备的提供与移动设备的当前情况有关的数据的部件。例如,上下文源37_308可以是用作内部数字时钟37_310、GPS设备37_312和日历37_314的硬件设备和/或软件代码,它们分别用于提供与当日时间、设备位置和一年中的日期相关的信息。可以使用其他上下文源。
[2068] 可以采用高功效的方式来收集用于预测引擎37_302的上下文数据37_306。例如,连续轮询GPS 37_312以确定设备的位置可能过度耗电,这可能缩短电池寿命。为了避免缩短电池寿命,预测引擎37_302可以通过从GPS 37_312以外的源请求设备的位置来确定设备的位置。位置信息的另一个源可能是最近已经针对设备位置轮询了GPS 37_312的应用程序。例如,如果应用程序A是最近针对设备位置轮询GPS 37_312的应用程序,则预测引擎37_302可以从应用程序A请求和接收位置数据,而不是单独轮询GPS 37_312。
[2069] 2.历史信息
[2070] 在某些实施方案中,除了上下文源37_308之外,历史事件数据库37_316也可由预测引擎37_302使用。历史事件数据库37_316可以包括在检测到触发事件之后用户与移动设备之间的先前交互的历史信息。
[2071] 历史事件数据库37_316可以记录在某个触发事件之后用户与接收人交互的次数。例如,数据库37_316可以记录:当包括接收人A时,用户十次中有八次在电子邮件或日历邀请中包括接收人B。因此,预测引擎37_302可以接收该信息作为历史数据37_318,以确定当为电子邮件或日历通信选择接收人A时,是否应为用户识别接收人B。
[2072] 历史事件数据库37_316还可以记录当检测到触发事件时在不同上下文下与接收人交互的次数。例如,数据库37_316可以记录:当用户在家时,在用户访问个人电子邮件账户之后,用户十次中有九次与接收人A交互,并且当用户在工作位置时,用户十次中有一次与接收人A交互并且使用工作电子邮件账户。因此,预测引擎37_302可以接收该信息作为历史数据37_318,并且确定当用户在家访问个人电子邮件账户时应建议接收人A,但当在工作时访问工作电子邮件账户时不建议接收人A。应当理解,虽然本节中讨论的示例将位置称为“家庭”或“工作,但是表示“家庭”或“工作”的上下文数据37_306可以是数字坐标诸如地理坐标的形式。本领域的技术人员理解,可以采用类似的方式使用与当日时间、星期几和一年中的日期相关的信息来代替位置,以识别接收人。
[2073] 历史事件数据库37_316还可以记录用户决定不选择将所识别的接收人作为用于通信的接收人的频率以及在什么情况下做出这样的决定。例如,数据库37_316可以记录:当用户在家中将耳机插入到设备中时,用户十次中有两次没有选择接收人B作为电话呼叫的接收人。因此,预测引擎37_302可以接收该信息作为历史数据37_318,以调整当用户在家中将耳机插入到设备中时建议接收人B的概率。
[2074] 如上所述,本发明的技术的一个方面在于采集和使用得自各种来源的数据来改进对用户可能感兴趣与之交互的用户的预测。本公开设想,在一些实例中,该所采集的数据可包括唯一地识别或可用于联系特定人员的个人信息数据。此类个人信息数据可包括基于位置的数据、电话号码、电子邮件地址、工作地址、家庭地址、过往交互记录或任何其他识别信息。
[2075] 本公开认识到在本发明技术中使用此类个人信息数据可用于使用户受益。例如,个人信息数据可以用于预测用户可能想要在某一时间和地点进行通信的用户。因此,使用包括在上下文信息中的这样的个人信息数据能够以人为中心地预测用户可能想要在特定时间和地点与之进行交互的人。
[2076] 本公开还预期负责此类个人信息数据的收集、分析、公开、传输、存储或其他用途的实体将遵守已确立的隐私政策和/或隐私实践。具体地,此类实体应当实行并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和安全性的行业或政府要求的隐私政策和实践。例如,来自用户的个人信息应被收集用于实体的合法且合理的用途,并且不在这些合法使用之外共享或出售。另外,此类收集应仅在用户知情同意之后进行。此外,此类实体应采取任何所需的步骤,以保障和保护对此类个人信息数据的访问,并且确保有权访问个人信息数据的其他人遵守他们的隐私政策和程序。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。
[2077] 不管前述情况如何,本公开还设想用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,就以人为中心的预测服务而言,本发明的技术可被配置为在注册服务期间允许用户选择“加入”或“退出”参与对个人信息数据的收集。又如,用户可选择不向接收人建议服务提供位置信息。再如,用户可选择不提供精确的位置信息,但准许传输位置区域信息。
[2078] D.用户界面
[2079] 图37_4和图37_5示出了用于呈现建议的接收人的列表的示例性用户界面。具体地讲,图37_4示出了用于设备37_402的与已经运行的电子邮件应用程序相关联的示例性用户界面37_400。用户界面37_400可以是用于客户端电子邮件应用程序的用户界面,尽管在本节中还设想了用于不同应用程序的其他用户界面。例如,用户界面37_400可以是可用于与接收人交互的任何应用程序的用户界面,诸如即时消息收发应用程序、视频会议应用程序和日历应用程序。用户界面37_400可以由触摸屏显示器37_404提供。触摸屏显示37_404可以显示包括主题行37_408的电子邮件界面37_406。主题行37_408可以允许用户输入电子邮件消息的主题。建议的接收人列表37_410允许用户选择一个或多个建议的接收人。如图所示,实施方案可以在没有在主题行37_408中输入任何主题或标题的情况下,基于设备37_402的上下文在搜索结果窗口37_410中呈现建议的接收人。这种零关键字搜索可以由设备
37_402基于设备37_402的当前上下文来执行。例如,基于设备37_402的当前位置、当前时间,作为在设备37_402上使用的电子邮件账户标识符,以及其他上下文信息,可以在不依赖于在主题行37_408中提供电子邮件消息的完整或部分主题的情况下,确定建议的电子邮件接收人并将其显示在搜索结果窗口37_410中。在一些实施方案中,当用户在主题行37_408上输入主题(或其部分)时,可以基于主题行中的关键字来更新建议的接收人列表37_410。
[2080] 用户界面37_400的一些部分在某些情况下可能被隐藏。例如,如果设备37_402中的建议中心,诸如图37_3中的建议中心37_320,确定另一接收人(例如,图37_4所示的接收人B)优先于第一建议接收人(例如,图37_4所示的接收人A),则可以隐藏第一接收人,并且可以转为显示另一接收人。然后可以在显示器37_404上的建议接收人列表37_410中首先显示该另一接收人。因此,可以使用户知道并给予机会来与被认为具有较高优先级的接收人交互。在图37_4的示例性实施方案中,用户在界面37_400中没有提供关于接收人的任何输入。如图所示,实施方案可以在没有在界面37_400中输入任何接收人(或部分接收人姓名)的情况下,基于设备37_402的上下文在建议接收人列表37_410中呈现建议的接收人。也就是说,可以识别并在建议接收人列表37_410中显示建议的接收人,而不使用任何自动完成技术来基于部分输入的联系人姓名或电子邮件地址来预测联系人。这种零关键字搜索可以由设备37_402基于设备37_402的当前上下文来执行。例如,基于设备37_402的当前位置、当前时间和其他上下文信息,诸如在设备37_402上使用的电子邮件账户(例如,工作或个人电子邮件账户),可以确定并在搜索结果窗口37_410中显示建议的电子邮件接收人。
[2081] 图37_5示出了用于设备37_502的与已经运行的搜索应用程序相关联的用户界面37_500。用户界面37_500可以由触摸屏显示器37_504提供。触摸屏显示器37_504可以显示包括搜索窗口37_508的搜索界面37_506。搜索窗口37_508可以允许用户输入一个或多个搜索词。搜索结果窗口37_510可以呈现建议的接收人。在图37_5的实施例中,用户在搜索窗口
37_508中没有提供任何关键字。如图所示,实施方案可以在没有在搜索窗口37_508中输入任何搜索词或关键字的情况下,基于设备37_502的上下文在搜索结果窗口37_510中呈现建议的接收人。这种零关键字搜索可以由设备37_502基于设备37_502的当前上下文来执行。
例如,基于设备的当前位置、当前时间和其他上下文信息,诸如在设备37_502上使用的用户账户标识符,可以确定建议的接收人并显示在搜索结果窗口37_510中。然后,用户可以与搜索结果窗口37_510交互以选择一个或多个建议的接收人。在实施方案中,当用户在搜索窗口37_508中输入搜索词(或其一部分)时,可以基于搜索词来更新搜索结果窗口37_510中的建议的接收人。
[2082] 在一些实施方案中,搜索结果窗口37_510可以不止图37_5所示的示例性联系人列表。例如,搜索结果窗口37_510可以包括指示用户如何与建议的接收人交互的信息。搜索结果窗口37_510也可以指示为什么应发生交互。例如,搜索结果窗口37_510可以建议用户使用用户的个人账户,根据接收人的个人账户来发起对接收人A的视频通话,因为用户经常在一天的这个时间段内这样做。该建议甚至还可以建议使用特定的通信应用程序来联系接收人A。
[2083] E.方法
[2084] 图37_6是根据本发明实施方案的基于事件向计算设备的用户建议一个或多个接收人的方法37_600的流程图。方法37_600可以由计算设备(例如,由正在跟踪与用户设备的用户交互的用户设备)来执行。方法37_600可以使用一组历史交互,包括具有计算设备的一个或多个属性的不同集合的交互来建议接收人。
[2085] 在框37_602处,设备在输入设备处检测事件。如图所示,框37_602可以包括检测与用户相关联的用户设备处的用户输入。输入设备的示例是触摸屏、用于提供语音命令的麦克风、相机、按钮、鼠标、触笔、键盘等。事件可以是移动设备与外部实体诸如外部设备或用户交互的任何动作。事件可以是对于设备重复的类型。因此,可以针对事件的不同发生获得历史统计数据。可以使用这种历史数据来训练模型和子模型。
[2086] 框37_602可以包括接收用户设备的一个或多个属性。这一个或多个属性可以由在设备上执行的接收人建议引擎接收。如本节所述,属性可对应于时间、位置、运动状态、日历事件等。这样的一个或多个属性可以对应于定义设备的特定上下文的上下文数据。这一个或多个属性可以在检测到事件的时间附近(例如在一段时间内)被测量。该时间段可以包括在检测到事件之前和之后的时间、恰好在检测到事件之前的时间段,或恰好在检测到事件之后的时间。
[2087] 在框37_604处,确定用户输入对应于用于经由建议引擎提供建议的接收人的触发器。例如,如果接收到用于在电子邮件应用程序中撰写电子邮件的用户输入,则框37_604可以确定应提供用于该电子邮件的建议的接收人。此外,例如,如果接收到用于在搜索应用程序中发起搜索的用户输入,则框37_604可以包括确定预测的联系人将被包括在搜索结果中。
[2088] 在框37_606处,填充对应于使用该用户设备进行的先前通信的一个或多个表。在图37_6的实施例中,这一个或多个表中的每一个对应于用户设备的不同子状态,并且包括与不同接收人的先前通信的多个联系人度量。例如,先前通信可以包括与其他用户的先前的交互,诸如例如先前的电子邮件、语音呼叫、文本消息、即时消息、视频通话和日历邀请。
[2089] 在框37_608处,使用一个或多个状态变量来识别对应于一个或多个状态变量的第一组一个或多个表。例如,如果位置状态变量指示用户设备在用户的家中,则框37_608可以包括识别对应于与用户的家相关联的先前通信的表。也就是说,与使用用户设备进行的先前通信相对应的表可以被过滤到只包括与用户在家时发起或执行的先前通信相对应的表。在该实施例中,当位置状态变量指示用户设备在用户的家中时,可以识别在用户在家时撰写、读取或编辑过往电子邮件的一组表。此外,例如,如果账户状态变量指示用户正在使用工作电子邮件账户,则框37_608可以包括识别与使用该工作电子邮件账户进行的过往通信相对应的一组表。实施方案可以使用多个状态变量(例如,位置状态和账户状态)以[2090] 在框37_610处,查询第一组表以获得用于一个或多个潜在接收人的联系人度量。
联系人度量可以包括例如对于使用用户设备进行的先前日历事件的日历邀请的接收人的联系人度量、创造先前电子邮件消息(即撰写或发送)的时间、与先前电子邮件消息相关联的电子邮件账户标识、在电子邮件消息上复制的其他接收人、发送到每个接收人的电子邮件的数量。在一个实施例中,可以完成对第一组表的查询以计算发送给一个或多个潜在接收人中的每一个的先前通信的总数。例如,查询第一组表可以包括查询电子邮件表以确定发送给每个潜在接收人或从其接收的电子邮件的累积数量。查询第一组表可以包括查询日历事件表以确定发送给每个潜在接收人或从其接收的日历邀请的累积数量。
[2091] 框37_610可以基于与潜在接收人的个体交互以及与接收人组的组交互来查询表。例如,框37_610可以预测下一个电子邮件接收人,其中来自电子邮件表的上下文数据指示用户和接收人之间的先前电子邮件交互(例如,发送或接收的电子邮件消息)。框37_610可以包括对应于当前上下文的排名历史交互。例如,交互的权重可以包括指示多个接收人的共同出现的社交元素。在该实施例中,用户与一组接收人的历史交互的排名可以基于用户是否以前在其他过往交互中与该组进行交互而提高。也就是说,可以基于一组接收人已经被包括在常见的过往交互中(例如,接收人在用户发送的电子邮件上被反复地复制)来将这组接收人的成员的排名提升。这样,如果用户先前为过往电子邮件选择了两个接收人,并且这两个接收人都被复制到发送给第三接收人的电子邮件上,则第三接收人将基于以前已被包括在这两个接收人中而得到排名提升。但是,如果用户有另一个交互,其中只包括这三个接收人中的一个,那么这种交互将不会得到相同的排名提升。
[2092] 在框37_612处,针对这一个或多个潜在接收人中的每一个计算使用所获得的联系人度量的先前通信和交互的总联系人度量。在一个实施例中,先前通信的总联系人度量是发送到这一个或多个潜在接收人中的每一个的先前通信的累积总数。在该实施例中,可以通过查询一个或多个表来计算发送到每个潜在接收人的电子邮件、消息、呼叫和日历邀请的总数。
[2093] 在框37_614处,预测引擎用于基于这一个或多个潜在接收人的总联系人度量并使用一个或多个标准来识别要向用户建议的一个或多个预测接收人。在一些实施方案中,标准可以包括要建议的预测接收人的最小数量(例如,前N个接收人)、要建议的预测接收人的百分比(例如,前25%)和/或用于建议预测接收人的阈值置信水平。框37_614可以包括使用硬中断作为标准。例如,接收人可以只被认为具有与用户的最小过往交互次数。在一些实施方案中,使用社交标准来建议接收人。例如,当预测的接收人与用户先前与之交互的另一建议的接收人共同出现时,可能会建议这些预测的接收人。在一些实施方案中,可以建议具有与其他预测接收人相似特征的接收人。例如,具有相同电子邮件地址域以及与预测接收人相同的位置关联的接收人可被建议为用于通信的额外接收人。
[2094] 框37_614可以包括使用特定的子模型来识别要向用户建议的一个或多个接收人。这一个或多个接收人可以具有由用户与该触发事件关联地与之交互的一个或多个接收人中的至少一个的至少一个阈值概率。预测历史数据中的一个或多个接收人中的一个可以被识别为一次正确预测。阈值概率可以采用各种方式来测量,并且可以使用从历史数据确定的概率分布,如下面更详细描述的。例如,可以需要概率分布的平均(均值)概率、中值概率或峰值高于阈值概率(例如,高于0.5,相当于37_60%)。因此,置信水平可以是概率分布的平均值、中值或峰值。另一个示例是概率分布上高于特定值的区域大于阈值概率。
[2095] 在框37_616处,向用户提供这一个或多个预测的接收人。框37_614可以包括向用户提供用于与这一个或多个接收人通信的用户界面。例如,设备可以经由用户可以与之交互以指示用户是否希望访问所识别的接收人的列表界面,来向用户显示所识别的接收人。例如,该用户界面可以包括触敏显示器,该显示器向用户显示所识别的接收人中的一个或多个,并且允许用户通过与该触敏显示器交互来与由设备识别的一个或多个接收人通信。
该用户界面可以允许在具有比含有用户全部接收人的列表中提供的接收人更少的接收人的显示屏上交互。
[2096] 例如,可以在搜索屏幕上的接收人列表中提供一个或多个建议的接收人。用户可以选择接收人,然后从搜索屏幕中选择如何与所选择的接收人进行通信,从而使用户更容易与所选择的接收人进行交互。例如,特定于通信应用程序(例如,电子邮件应用程序)的用户界面可以在(例如,经由密码或生物特征)认证用户之后出现。
[2097] 在电子邮件上下文中,框37_614可以将建议的接收人提供为电子邮件消息的潜在接收人。在这种情况下,图37_4的示例性电子邮件应用程序界面可用于向用户提供建议的电子邮件接收人。在搜索上下文中,框37_614可以包括将建议的接收人提供为搜索界面中的搜索结果。例如,图37_5的搜索界面可用于将建议的接收人呈现在搜索结果列表中。
[2098] F.示例性模型
[2099] 在一些实施方案中,模型可以为给定的数据集(或子集)选择前N个接收人。由于这N个接收人在过去被最经常地选取,所以可以预测,未来的行为将反映过去的行为。N可以是预定数量的接收人(例如,1、2或3个)或百分比,其可以是与事件相关联的实际过往接收人的接收人数量。这样的模型可以选择前N个接收人来提供给用户。可以进行进一步的分析,例如,以确定这N个接收人中的每个接收人的概率(置信)水平,从而确定是否将它们提供给用户,以及如何将它们提供给用户(例如,动作),这可以取决于置信水平。
[2100] 在N等于3的示例中,当事件在上下文信息对应于特定子模型的情况下发生时,模型将返回被最常选择的前三个接收人。
[2101] 在其他实施方案中,与仅使用上下文信息来选择子模型相反,子模型可以使用复合信号,其中一些上下文信息用于确定预测的接收人。例如,神经网络或逻辑回归模型可以使用位置(或其他特征)并构建这些特征的线性加权组合的类型来预测接收人。当子模型的数据量明显很大时,此类更复杂的模型可能更适合。一些实施方案可在再次获得用于特定节点(即,上下文数据的特定组合)的数据之后切换在该节点处使用的子模型的类型。
[2102] 模型的准确度可以对照历史交互数据进行测试。对于给定的事件,历史交互数据可以识别用户与事件关联地与哪些接收人交互(例如,恰好在事件之前或恰好在事件之后,诸如一分钟内)。对于每个事件,可以使用上下文数据来确定特定模型。此外,上下文数据可以用作模型的输入特征。
[2103] 在模型(或子模型)选择顶部接收人的示例中,可以将实际选择(即,发送通信内容)顶部接收人时的历史数据点数量确定为正确的计数,并且可以将顶部接收人未被选择时的历史数据点数量确定为不正确的计数。在对于选择前N个接收人的模型而言N大于一的实施方案中,正确的计数可对应于选择了这前N个接收人中的一个作为通信的接收人时的任何历史数据点。
[2104] 基于历史交互的第一子集,第一子模型可以预测用户将与具有第一置信水平的事件关联地与之交互的第一组一个或多个接收人中的至少一个接收人。可以至少基于第一置信水平大于初始置信水平至少一个阈值量(它可以为0或更大)来创建第一子模型。该阈值量可以对应于差异阈值。在一些具体实施中,第一子模型可以不一定在该标准满足时创建,因为可以使用进一步的标准。如果置信水平不大于初始置信水平,则可以选择另一个属性进行测试。置信水平的这种比较可以对应于对信息增益的测试。可以重复相同的过程以确定用于预测第一组一个或多个收件人的第一子模型的第二子模型(对于第二属性)的第二置信水平。历史交互的第二子集可以用于第二子模型。可以采用类似的方式测试第三属性或更多属性。
[2105] G.决策树的重新生成
[2106] 实施方案可以周期性地(例如每天)生成模型的决策树。这种生成可以使用当时可用的历史交互数据。因此,决策树可以从一代变为另一代。在一些实施方案中,构建决策树而不知道先前的决策树。在其他实施方案中,可以从这样的先前知识构建新的决策树,例如,知道哪些子模型是可能的,或者从先前的决策树开始。
[2107] 在一些实施方案中,尝试所有上下文(或上下文的预定列表)以确定哪些子模型提供最大信息增益。例如,如果位置提供用于分段成子模型的最大信息增益,则可以创建用于至少一个特定位置的子模型。在每个分段级别,可以采用这种贪心的方式测试上下文以确定哪些上下文提供了信息增益的最高增长。
[2108] IV.基于概率水平确定动作
[2109] 预测模型不仅可以测试所选择的接收人,而且还可以测试特定操作(例如,基于先前添加的接收人将接收人复制到电子邮件上)。在一些实施方案中,一旦选择某个接收人的概率足够准确,就可以提供比仅提供建议的接收人更为积极的动作。例如,当提供接收人时,电子邮件应用程序可以自动启动,并且该接收人作为新电子邮件消息中的接收人被包括。
[2110] 当以足够的概率(例如,置信水平高于高阈值)预测选择某个接收人时,该预测可以开始测试动作。因此,测试不仅仅是用于预测接收人,而是测试是否可以以足够的准确度预测特定动作。可以从历史交互数据中获得不同的可能动作(包括启动电子邮件、文本消息收发、日历或视频会议应用程序)。
[2111] 因此,当存在更大的置信度时,实施方案可以更积极地执行要执行的动作。如果特定的通信手段(例如,电子邮件、文本消息、语音呼叫、视频通话和视频会议)具有被用于与接收人通信的高概率,那么预测模型可以提供用于通信应用程序的特定用户界面。例如,如果用户将发送电子邮件给建议的接收人具有高概率,则预测模型可以提供电子邮件应用程序的界面。因此,在一些实施方案中,使用概率越高,就可以采取更积极的动作,诸如自动提供用于使用对应的通信应用程序(例如,电子邮件、日历、即时消息、文本消息、语音呼叫或视频会议)与接收人进行交互的界面,而不是仅提供建议的接收人。
[2112] 例如,基本模型可以具有一定程度的统计显著性(准确度和置信度),动作可能是在搜索屏幕上建议接收人。又如,更高水平的统计显著性可以导致屏幕亮起(从而引起对接收人的关注,可以仅选择一个接收人,或者可以提供特定应用程序的用户界面(UI)(即,电子邮件应用程序的UI)。
[2113] 该动作可以取决于模型是仅预测一个接收人还是预测一组接收人。例如,如果有机会提出三个接收人建议而不是一个接收人建议,那么这也将改变概率分布,因为选择这三个接收人中的任何一个将提供正确的预测。对一个接收人的推荐不可信的模型可能对三个接收人的推荐有足够的置信度。实施方案可以执行将另一个接收人添加到由模型预测的一组接收人(例如,尚未在该组中的第二可能的联系人),从而使模型具有更高置信度。如果模型基于不止一个联系人的预测,则所提供的用户界面将提供与不止一个联系人的交互,这可能影响UI的形式。例如,所有联系人都可以在列表提供,并且一个联系人不会自动被选择。在一个实施方案中,预测可以包括顶部联系人,并且如果选择该联系人,则可以在消息上复制其他联系人(即,由于在历史交互数据中共同出现)。在图37_4的实施例中,这些其他接收人可以列在电子邮件应用程序界面37_406的CC/BCC部分。
[2114] 还可以有多个操作,以及适于不同操作的一个建议。例如,健身房中可以有两个播放列表作为子模型的一部分(例如,当两个动作具有相似的被选择的可能性时,识别出一个应用程序,但在模型中识别出两个动作)。两个动作一起可以具有统计显著性,而它们单独则不具有统计显著性。
[2115] 例如,当首先针对某个事件(例如,撰写电子邮件)训练该模型时,该模型的置信度可能不足以执行任何动作。在初始置信水平下,可以显示接收人姓名、图标或其他接收人标识符。在下一个更高的置信水平下,可以显示接收人的联系方式(例如,电子邮件地址或电话号码)。在进一步的置信水平下,可以显示特定于特定通信应用程序的用户界面(例如,用于将预测的接收人添加为新电子邮件、即时消息、电话呼叫或视频通话的接收人的控件)。这些不同的水平可以代表用于定义置信水平的各种值。
[2116] 其他示例动作可以包括更改正在播放的歌曲,提供通知(可以在屏幕上的醒目位置)。所述动作可以在解锁设备之后发生,例如,在解锁之后可以显示特定于该应用程序的UI。可以使用深链接来定义操作,以开始应用程序的特定功能。
[2117] V.数据流和模块
[2118] 图37_7是用于建议要联系的接收人的示例性数据流程图37_700。数据流程图37_700向各种通信应用程序和交互机制37_701提供接收人建议37_702。在图37_7的实施例中,应用程序和机制37_701包括日历37_704、邮件37_706、消息37_708、电话37_710和视频通话
37_712。如图37_7所示,示例性邮件37_706应用程序是电子邮件应用程序,并且示例性消息
37_708应用程序是即时消息应用程序。如图所示,电话应用程序37_710可用于发起语音呼叫以及撰写文本消息。视频通话应用程序的一个示例是 应用程序。
[2119] 数据流程图37_700示出接收人建议37_702可以基于来自各种数据源37_714的数据。数据源37_714可以包括用于过往通信的信息。数据源可以包括事件37_716、搜索37_718、找到的联系人37_720、最近活动37_722、收集守护进程37_724、通信历史37_726和联系人37_728。可以使用来自通信应用程序和交互机制37_701的数据填充数据源37_714。例如,日历37_704可以向事件37_716提供日历事件数据。类似地,电话37_710和视频通话37_712可以分别向通信历史37_726提供语音呼叫和视频通话的通话历史。在图37_7的实施例中,找到的联系人37_720可以包括在电子邮件消息和其他类型的消息(例如即时消息和文本消息)中找到的联系人。
[2120] 图37_8为示例性交互模块37_810的框图。如图所示,交互模块37_810可以被实现为包括记录引擎37_814和建议引擎37_816的守护进程。交互模块37_810维护交互数据库37_818中的交互的存储,并使用建议引擎37_816来执行接收人建议算法。交互模块37_810包括用于与交互数据库37_818通信的交互存储服务37_817。交互模块37_810可以查询交互数据库37_818来检索过往交互的信息。交互模块37_810还可以将交互数据发送到交互数据库37_818,以便填充交互数据库37_818中的表。例如,可以填充对应于使用应用程序37_800进行的先前通信的交互数据库37_818中的数据库表。在图37_8的实施例中,交互数据库37_
818中的每个表对应于应用程序37_800在其上执行的用户设备的不同子状态,并且包括先前记录的使用该设备执行的与其他用户的交互的联系人度量。例如,记录的交互可以包括与其他用户的先前的交互,诸如例如先前的电子邮件、语音呼叫、文本消息、即时消息、视频通话和日历邀请。
[2121] 交互模块37_810还包括用于与应用程序37_800通信的XPC服务37_813。应用程序37_800可以是图37_7所示的通信应用程序或交互机制中的一者。应用程序37_800包括框架
37_820,该框架又包括用于记录使用应用程序37_800执行的交互和通信的交互记录器37_
824。框架37_820还包括交互顾问建议器37_826,其可以用于向应用程序37_800提供建议的接收人。框架37_820可以使用交互记录器37_824来提供用于记录交互的界面。交互记录器
37_824和交互建议器37_826的界面经由XPC服务37_822将数据传送到交互模块37_810。
[2122] VI.架构
[2123] 图37_9示出了用于向用户提供与一个或多个接收人交互的用户界面的示例性架构37_900。架构37_900示出了用于检测事件以及提供接收人建议的元素。架构37_900还可以提供其他建议,例如用于通信应用程序。接收人建议可以与建议的应用程序一起提供。例如,架构37_900可以提供建议的接收人,并且还建议经由特定通信应用程序联系建议的接收人。架构37_900可以存在于用户设备内。
[2124] 顶部是UI元素。如图所示,有锁定屏幕37_910、搜索屏幕37_920和语音界面37_925。可以通过这些方式向用户提供用户界面。也可以使用其他UI元素。
[2125] 在底部,是用于应用程序建议引擎37_940和接收人建议引擎37_950的数据源。事件管理器37_942可以检测事件并将关于事件的信息提供给应用程序建议引擎37_940。在一些实施方案中,事件管理器37_942可以确定事件是否触发应用程序建议。可以指定用于触发应用程序建议的预定事件的列表。位置单元37_944可以提供用户设备的位置。例如,位置单元37_944可以包括GPS传感器和运动传感器。位置单元37_944还可以包括可以存储用户的最后位置的其他应用程序,该最后位置可被发送到应用程序建议引擎37_940。其他上下文数据可以从其他上下文单元37_946提供。
[2126] 应用程序建议引擎37_940可以识别一个或多个应用程序,以及相应的动作。在与应用程序建议引擎37_940相同的级别,接收人建议引擎37_950可以提供用于呈现给用户的建议接收人。事件管理器37_952可以检测与接收人有关的事件并将关于事件的信息提供给接收人建议引擎37_950。在一些实施方案中,事件管理器37_952可以确定事件是否触发接收人建议。可以指定用于触发接收人建议的预定事件的列表。交互历史37_954可以提供用于与其他用户的先前交互和通信的数据。例如,交互历史37_954可以是用于从在设备的用户与其他用户之间交换的先前电子邮件记录的信息的数据源。位置单元37_956可以提供用户设备的位置。例如,位置单元37_956可以包括GPS和运动传感器。位置单元37_956还可以包括可以存储用户设备的最后位置的其他应用程序,该最后位置可被发送到接收人建议引擎37_950。其他上下文数据可以从其他上下文单元37_958提供。
[2127] 可以将建议的接收人提供给建议中心37_930,该建议中心可以确定向用户提供什么。例如,建议中心37_930可以确定是提供建议的应用程序还是接收人。在其他示例中,可以提供应用程序和接收人两者。建议中心可以确定提供给用户的最佳方式。对用户的不同建议可以使用不同的UI元素。这样,建议中心37_930可以控制对用户的建议,使得不同的引擎不会中断其他引擎提供的建议。在各种实施方案中,引擎可以向建议中心37_930推送建议(推荐)或从建议中心37_930接收对建议的请求。建议中心37_930可以将建议存储一定时间,然后如果没有向用户提供建议,或者用户没有与用户界面进行交互,则确定删除该建议。
[2128] 建议中心37_930还可以识别用户设备发生的其他动作,以便通知设备何时发送建议。例如,如果用户正在使用应用程序,则可以会提供建议的接收人,但可以不提供应用程序建议。建议中心37_930可以基于各种因素,例如设备的运动状态,锁定屏幕是否亮起,或者是否提供了授权的访问,用户是否正在工作地点、家里使用设备等,来确定何时发送建议。
[2129] 在一些实施方案中,设备37_100(图1A)的软件部件包括接收人建议/预测模块(或指令集)。在一些实施方案中,接收人建议模块可以包括各种子模块或系统,例如,如上文参考图37_7至37_9所述。接收人建议模块可以执行方法37_100或37_600的全部或部分。
[2130] 用于以人为中心的预测的示例性方法、设备和计算机可读介质
[2131] 一些实施方案提供了用于建议接收人的系统和方法。在检测到设备上的用户输入对应于用于提供建议的接收人的触发器之后,确定表示设备当前状态的设备的上下文信息,其中当前状态由状态变量定义。填充与使用该设备进行的先前通信相对应的表,每个表对应于设备的不同子状态,并且包括与不同接收人的先前通信的联系人度量。状态变量可用于识别与状态变量相对应的一组表。潜在接收人的联系人度量是从这组表中获取的。为每个潜在的接收人计算先前通信的总联系人度量。基于潜在接收人的总体联系人度量并且使用标准来识别要建议的预测接收人,并将预测的接收人提供给用户。
[2132] 在一些实施方案中,提供了一种提供要与用户的用户设备联系的建议接收人的计算机实现的方法,该方法包括:在所述用户设备处:检测用户设备处的用户输入;确定该用户输入对应于经由建议引擎提供建议的接收人的触发器;确定用户设备的上下文信息,该上下文信息表示用户设备的当前设备状态,其中当前设备状态由一个或多个状态变量定义;填充与使用用户设备进行的先前通信相对应的一个或多个表,这一个或多个表中的每一个对应于用户设备的不同设备子状态并且包括与不同接收人的先前通信的多个接收人度量;使用这一个或多个状态变量来识别对应于这一个或多个状态变量的第一组一个或多个表;从第一组表中获得用于一个或多个潜在接收人的联系人度量;对于这一个或多个潜在接收人中的每一个:使用所获得的联系人度量计算先前通信的总联系人度量;使用建议引擎基于这一个或多个潜在接收人的总联系人度量并使用一个或多个标准来识别一个或多个要向用户建议的预测接收人;以及向用户提供这一个或多个预测接收人。在一些实施方案中,上下文信息包括在用户设备上执行的通信应用程序中的开放通信的一个或多个接收人、包括当前应用程序状态的当前设备状态、包括这一个或多个接收人的当前应用程序状态。在一些实施方案中,上下文信息包括对应于在用户设备上执行的通信应用程序的账户标识符、包括当前应用程序状态的当前设备状态、包括账户标识符的当前应用程序状态。在一些实施方案中,该方法包括:确定用户设备的当前位置,其中上下文信息包括当前位置、包括当前位置状态的当前设备状态、包括当前位置的当前位置状态。在一些实施方案中,上下文信息包括当前时间和当前日期,并且其中这一个或多个标准包括要建议的预测接收人的最小数量。在一些实施方案中,这一个或多个标准包括阈值置信水平,该方法还包括:在用户设备处:基于一个或多个预测接收人中每一个的相应置信水平,确定如何将这一个或多个预测接收人提供给用户。在一些实施方案中,上下文信息包括在用户设备上执行的通信应用程序中的开放通信的主题、包括当前应用程序状态的当前设备状态、包括该主题的当前应用程序状态。在一些实施方案中,开放通信的该主题是电子邮件消息主题、日历事件主题和视频会议主题中的一个或多个。在一些实施方案中,上下文信息包括在用户设备上执行的日历应用程序中的开放日历事件的预定时间、包括当前应用程序状态的当前设备状态、包括预定时间的当前应用程序状态。在一些实施方案中,上下文信息包括在用户设备上执行的日历应用程序中的开放日历事件的位置、包括当前应用程序状态的当前设备状态、包括位置的当前应用程序状态。在一些实施方案中,所述一个或多个表中的一个是与用户设备的日历子状态相对应的日历表,该日历表包括使用该用户设备进行的先前日历事件的日历邀请的接收人的联系人度量。在一些实施方案中,所述一个或多个表中的一个是与用户设备的电子邮件子状态相对应的电子邮件表,该电子邮件表包括使用该用户设备创建的先前电子邮件消息的接收人的联系人度量,该联系人度量包括先前电子邮件消息被创建的时间、与先前电子邮件消息相关联的电子邮件账户标识符、在先前电子邮件消息上复制的其他接收人,以及发送给每个接收人的电子邮件消息数量。在一些实施方案中,计算先前通信的总联系人度量包括查询所述一个或多个表以计算发送到这一个或多个潜在接收人中每一个的先前通信的总数。
[2133] 在一些实施方案中,一种包括非暂态计算机可读介质的计算机产品存储用于提供要与用户的用户设备联系的建议接收人,这些指令在被用户设备的一个或多个处理器执行时,执行以下操作:检测用户设备处的用户输入;确定该用户输入对应于经由建议引擎提供建议的接收人的触发器;确定用户设备的上下文信息,该上下文信息表示用户设备的当前设备状态,其中当前设备状态由一个或多个状态变量定义;填充与使用用户设备进行的先前通信相对应的一个或多个表,这一个或多个表中的每一个对应于用户设备的不同设备子状态并且包括与不同接收人的先前通信的多个联系人度量;使用这一个或多个状态变量来识别对应于这一个或多个状态变量的第一组一个或多个表;从第一组表中获得用于一个或多个潜在接收人的联系人度量;对于这一个或多个潜在接收人中的每一个:使用所获得的联系人度量计算先前通信的总联系人度量;使用建议引擎基于这一个或多个潜在接收人的总联系人度量并使用一个或多个标准来识别一个或多个要向用户建议的预测接收人;以及向用户提供这一个或多个预测接收人。在一些实施方案中,上下文信息包括在用户设备上执行的通信应用程序中的开放通信的一个或多个接收人、包括当前应用程序状态的当前设备状态、包括这一个或多个接收人的当前应用程序状态。在一些实施方案中,上下文信息包括对应于在用户设备上执行的通信应用程序的当前时间和账户标识符、包括当前应用程序状态的当前设备状态、包括当前时间和账户标识符的当前应用程序状态。
[2134] 在一些实施方案中,提供了一种用于提供要与用户设备联系的建议接收人的用户设备,该用户设备包括:输入设备;一个或多个处理器,其被配置为:在输入设备处检测用户输入;确定该用户输入对应于经由建议引擎提供建议的接收人的触发器;确定用户设备的上下文信息,该上下文信息表示用户设备的当前设备状态,其中当前设备状态由一个或多个状态变量定义;填充与使用用户设备进行的先前通信相对应的一个或多个表,这一个或多个表中的每一个对应于用户设备的不同设备子状态并且包括与不同接收人的先前通信的多个联系人度量;使用这一个或多个状态变量来识别对应于这一个或多个状态变量的第一组一个或多个表;从第一组表中获得用于一个或多个潜在接收人的联系人度量;对于这一个或多个潜在接收人中的每一个:使用所获得的联系人度量计算先前通信的总联系人度量;使用建议引擎基于这一个或多个潜在接收人的总联系人度量并使用一个或多个标准来识别一个或多个要向用户建议的预测接收人;以及向用户提供这一个或多个预测接收人。在一些实施方案中,上下文信息包括在用户设备上执行的通信应用程序中的开放通信的一个或多个接收人、包括当前应用程序状态的当前设备状态、包括这一个或多个接收人的当前应用程序状态。在一些实施方案中,所述一个或多个表中的一个是与用户设备的电子邮件子状态相对应的电子邮件表,该电子邮件表包括使用该用户设备创建的先前电子邮件消息的接收人的联系人度量,该联系人度量包括先前电子邮件消息被创建的时间、与先前电子邮件消息相关联的电子邮件账户标识符、在先前电子邮件消息上复制的其他接收人,以及发送给每个接收人的电子邮件消息数量。在一些实施方案中,这一个或多个标准包括阈值置信水平,所述一个或多个处理器被进一步配置为在用户设备处:基于一个或多个预测接收人中每一个的相应置信水平,确定如何将这一个或多个预测接收人提供给用户。
[2135] 第8部分:用于主动助理的应用程序模型
[2136] 本节“用于主动助理的应用程序模型”中的材料描述了根据一些实施方案的用于主动助理的应用程序模型和与主动地向计算设备的用户提供建议相关的细节,并提供补充本文提供的公开内容的信息。例如,本节的一些部分描述了预测用户可能有兴趣访问的应用程序,这补充了本文提供的公开内容,例如与填充图9B至图9C的预测部分930内的预测内容有关的以及与创建和检测触发条件有关的那些(图4A至图4B)。在一些实施方案中,与应用程序预测引擎相关的细节以及与预测应用程序以包括在搜索界面中相关的细节也适用于本文描述的其它方法(例如,方法600,800,1000和1200)。
[2137] 用于主动助理的应用程序模型的摘要
[2138] 本节中描述的实施方案提出了用于识别用户何时激活他或她的移动计算设备上的搜索应用程序的技术。具体地讲,该技术涉及在从用户接收到搜索参数输入之前呈现用户可能有兴趣访问的一个或多个应用程序的预测,这可以降低用户必须手动向搜索应用程序提供搜索参数的可能性或必要性。根据一些实施方案,搜索应用程序可以被配置为每当搜索应用程序激活时(例如,显示在移动计算设备的用户界面内)与预测引擎(本节中称为“应用程序预测引擎”)进行介接。更具体地讲,当搜索应用程序与应用程序预测引擎介接时,搜索应用程序可以发出对用户可能有兴趣访问的一个或多个应用程序的预测请求。反过来,应用程序预测引擎可以分析与安装在移动计算设备上的应用程序相关联的信息以产生预测。搜索应用程序然后可以在搜索应用程序的用户界面内显示预测的一个或多个应用程序以供用户选择。
[2139] 一个实施方案提出了一种用于向移动计算设备的用户提供预测的方法。具体地讲,该方法由在移动计算设备上执行的应用程序预测引擎实现,并且包括以下步骤:(1)从在移动计算设备上执行的搜索应用程序接收请求,该请求是关于提供对安装在移动计算设备上并且用户可能有兴趣激活的一个或多个应用程序的预测,(2)识别安装在移动计算设备上的应用程序的列表,(3)针对包括在该应用程序列表中的每个应用程序:(i)通过对与应用程序相对应的一个或多个数据信号执行一个或多个函数来生成应用程序的得分,以及(ii)将该得分与应用程序相关联,(4)根据生成的得分筛选应用程序列表以产生筛选的应用程序列表,(5)用筛选的应用程序列表填充预测,以及(6)向搜索应用程序提供预测。
[2140] 另一个实施方案提出了一种用于向移动计算设备的用户呈现预测的方法。具体地讲,该方法由在移动计算设备上执行的搜索应用程序实现,并且包括以下步骤:(1)检测搜索应用程序的激活,(2)向应用程序预测引擎发出请求,该请求是关于预测安装在移动计算设备上并且用户可能有兴趣激活的一个或多个应用程序,(3)从应用程序预测引擎接收预测,其中该预测包括一个或多个应用程序的列表,并且每个应用程序与相应的得分相关联,以及(4)根据得分,在搜索应用程序的用户界面内显示用于这一个或多个应用程序中的至少一个应用程序的用户界面条目。
[2141] 另一个实施方案提出了被配置为向移动计算设备的用户呈现预测的移动计算设备。具体地讲,该移动计算设备包括处理器,该处理器被配置为执行搜索应用程序,该搜索应用程序被配置为执行包括以下操作的步骤:(1)检测搜索应用程序的激活,以及(2)在搜索应用程序的用户界面内接收到来自用户的输入之前:(i)向在移动计算设备上执行的应用程序预测引擎发出请求,该请求是关于安装在移动计算设备上并且用户可能有兴趣激活的一个或多个应用程序的列表,(ii)从应用程序预测引擎接收该列表,以及(iii)在搜索应用程序的用户界面内显示用于该列表中包括的一个或多个应用程序中的至少一个应用程序的用户界面条目。如上所述,该处理器还被配置为执行应用程序预测引擎,其中应用程序预测引擎被配置为执行包括以下操作的步骤(1)从搜索应用程序接收对用户可能有兴趣激活的一个或多个应用程序的列表的请求,(2)生成该列表,以及(3)向搜索应用程序提供该列表。
[2142] 其他实施方案包括一种非暂态计算机可读介质,其被配置为存储指令,这些指令在由处理器执行时,使处理器实现本节中提出的前述技术中的任何一种。
[2143] 提供发明内容仅是为了概述一些示例性实施方案,以便提供对本节中所述的主题的一些方面的基本理解。因此,应当认识到,上文描述的特征只是示例,不应认为其以任何方式缩窄本节中所述主题的范围或实质。本节中所述的主题的其他特征、方面和优点将根据以下具体实施方式、附图和权利要求书而变得显而易见。
[2144] 根据结合以举例的方式示出所述实施方案的原理的附图而进行的以下详细描述,本节中所述的实施方案的其他方面和优点将变得显而易见。
[2145] 用于主动助理的应用程序模型的详细描述
[2146] 在本部分中提供了根据本发明所述的实施方案的装置和方法的代表性应用。提供这些示例仅是为了添加上下文并有助于理解所述实施方案。对于本领域的技术人员因此将显而易见的是,本发明所述的实施方案可在不具有这些具体细节中的一些或全部具体细节的情况下被实施。在其他情况下,未详细描述熟知的工艺步骤,以便避免不必要地模糊本发明所述的实施方案。其他应用也是可能的,使得以下示例不应被视为是限制性的。
[2147] 本节中描述的实施方案提出了用于识别用户何时激活他或她的移动计算设备上的搜索应用程序,以及在从用户接收到搜索参数的输入之前呈现用户可能有兴趣访问的一个或多个应用程序的预测的技术。根据一些实施方案,搜索应用程序可以被配置为每当搜索应用程序激活(例如,显示在移动计算设备的用户界面内)时与应用程序预测引擎介接,并且查询应用程序预测引擎以预测用户可能有兴趣访问的一个或多个应用程序。反过来,应用程序预测引擎可以分析与安装在移动计算设备上的应用程序相关联的信息以产生预测。该信息可以包括例如应用程序安装时间戳、应用程序激活时间戳、应用程序激活总计、应用程序使用量度、应用程序图标在主用户界面内的位置(例如,在home屏幕上、在文件夹内等)、最近由用户提供的搜索参数、收集的指示先前预测是否准确的反馈等,这使得应用程序预测引擎能够为搜索应用程序提供有意义和相关的预测。反过来,搜索应用程序可以在搜索应用程序的用户界面内显示预测的一个或多个应用程序以供用户选择。值得注意的是,这种技术可以大幅减少在每当用户尝试访问特定应用程序时他或她输入搜索参数的繁琐过程,这可以提供用户对他或她的移动计算设备的整体满意度的大幅改进。
[2148] 虽然本节中阐述的实施方案主要涉及被配置为预测用户可能希望访问的应用程序的应用程序预测引擎,但是应当指出,可以在移动计算设备内实现用于提供不同种类的预测(例如,用户可能想要联系的人)的其他预测引擎。更具体地讲,并且根据一些实施方案,每个预测引擎可以被配置为将其自身分配为移动计算设备内的特定预测类别的“专家”。例如,应用程序预测引擎可以将自身指定为“应用程序”预测类别上的专家,以指示应用程序预测引擎专门预测移动计算设备的用户可能有兴趣访问的应用程序。根据一些实施方案,应用程序预测引擎可以采用学习模型,学习模型能够使应用程序预测引擎分析数据(例如,上述信息)并且根据该数据提供预测。虽然本公开主要讨论了被配置为实现学习模型的应用程序预测引擎,但是应当注意,用于分析行为数据并提供预测的任何技术都可以由本节中描述的应用程序预测引擎采用。此外,应注意的是,应用程序预测引擎可以的功能在不同类型的用户设备(例如,智能电话、平板电脑、手表、笔记本电脑等)之间变化,以便为这些不同类型的用户设备提供专门的预测。例如,可以将第一类型的应用程序预测引擎分配给智能电话,可以将第二类型的应用程序预测引擎分配给平板电脑,以此类推。
[2149] 如上所述,在移动计算设备上实现的每个预测引擎可以将其自身指定为移动计算设备内的一个或多个预测类别上的专家。因此,在某些情况下,两个或多个应用程序预测引擎可以将自己指定为“应用程序”预测类别上的专家。在这种情况下,当本节中描述的搜索应用程序发出预测请求时,两个或更多个应用程序预测引擎中的每个应用程序预测引擎将进行其自己的分析(例如,根据该应用程序预测引擎采用的学习模型)并根据请求生成预测。在这种情况下,响应于预测请求生成至少两个或更多个预测,这可以建立搜索应用程序可能无法解释的冗余度和竞争预测。
[2150] 因此,实施方案还提出了被配置为用作应用程序预测引擎和搜索应用程序之间的介体的“预测中心”。为了提供这种功能,预测中心可以被配置为用作在预测引擎(例如,应用程序预测引擎)初始化并且尝试将自己分配为一个或多个预测类别(例如,“应用程序”预测类别)的专家时用于预测引擎的注册器。类似地,并且根据一些实施方案,预测中心还可以被配置为管理移动计算设备内不同类型的预测类别,使得消费者应用程序(例如,本节中描述的搜索应用程序)可以查询预测中心来识别可以提供的预测类别。这样,当消费者应用程序发出特定预测类别的预测请求,并且两个或更多个预测引擎以其相应的预测进行响应时,预测中心可以被配置为在响应消费者应用程序发出的请求之前接收并处理预测。处理预测可以涉及例如移除存在于预测中的重复信息,根据与预测引擎相关联的历史性能(即准确度)量度来对预测应用权重,根据预测引擎在生成其预测时通告的得分对预测进行排序等。这样,预测中心可以将多个预测提取成优化的预测,并向消费者应用程序提供优化的预测。因此,该设计有利地简化了消费者应用程序的操作要求(因为它们不需要能够处理多个预测),将繁重处理整合到预测中心,并且使得消费者应用程序能够获得表示已经将其自己分配为感兴趣的预测类别上的专家的各种预测引擎的输入。
[2151] 因此,上述不同的技术使搜索应用程序能够与预测中心交互,以接收可能用于增强整体用户体验的预测。在一些情况下,搜索应用程序向预测中心/应用程序预测引擎提供反馈以指示预测是否准确可能是有价值的。这样的反馈可以是有益的,例如当学习算法由应用程序预测引擎实现时,因为该反馈可以用于“训练”学习算法并提高其预测的总体准确度。例如,当应用程序预测引擎生成关于最有可能被用户激活的特定应用程序的预测时(例如,当在从用户接收到搜索输入之前在搜索应用程序中显示时),搜索应用程序可以提供表示该预测有效的反馈(例如,该特定应用程序被用户选择并激活)。反过来,应用程序预测引擎可以增加在预测引擎产生相似的后续预测时所通告的得分。
[2152] 另外,应当注意,预测中心的架构可以被配置使得本节中描述的不同实体(诸如应用程序预测引擎)能够作为移动计算设备内的模块化部件。在一种架构方法中,每个应用程序预测引擎可以被配置为一个集束,预测中心理解其格式(例如,树状结构),并且其使得预测中心能够用作实现应用程序预测引擎功能的平台。根据该方法,预测中心可以被配置为例如解析不同的文件系统路径(例如,当初始化时)来识别驻留在移动计算设备内的不同集束。这样,可以方便地将集束添加到移动计算设备的文件系统中、在其中更新以及从中移除,从而促进可以随着时间推移有效演进而不需要大量更新移动计算设备(例如,操作系统升级)的模块化配置。例如,应用程序预测引擎可以被配置使得能够更新由应用程序预测引擎实现的全部或一部分逻辑(例如通过无线(OTA)更新)。注意,前述架构是示例性的,并且可以使用能够使本节中描述的各种实体彼此通信并提供其不同功能的任何架构。
[2153] 此外,预测中心/应用程序预测引擎还可以被配置为实现一个或多个高速缓存,其可以用于减少在生成预测时发生的处理量。根据一些实施方案,生成后,预测可以伴随有“有效性参数”,其指示何时应该从存储该预测的高速缓存中移除该预测。有效性参数(本节也称为“到期信息”)可以定义例如基于时间的到期、基于事件的到期等。这样,当应用程序预测引擎频繁地从搜索应用程序接收到预测请求时,应用程序预测引擎可以生成并缓存预测,以便大幅减少原本会在处理重复预测请求时发生的未来处理量。注意,预测中心/应用程序预测引擎可以被配置为使用各种方法来缓存预测。例如,当可用高速缓冲存储器有限时,预测中心/应用程序预测引擎可以被配置为生成阈值次数的预测(例如,在时间窗口内),并且当满足阈值时,转换到缓存预测并引用高速缓存以用于预测的后续请求(只要到期信息指示预测有效)。
[2154] 因此,本节中描述的实施方案提出了用于识别用户何时激活他或她的移动计算设备上的搜索应用程序,以及在从用户接收到搜索参数的输入之前呈现用户可能有兴趣访问的一个或多个应用程序的预测的技术。这些技术的更详细的讨论在下面示出并结合图38_1至38_4进行描述,其示出了可用于实现这些技术的系统、方法核用户界面的详细的图示。
[2155] 图38_1示出了根据一些实施方案被配置为实现本节所述的各种技术的移动计算设备38_100的不同部件的框图。更具体地讲,图38_1示出了移动计算设备38_100的高级概览,如图所示,它被配置为实现预测中心38_102、应用程序预测引擎38_104和搜索应用程序38_116。根据一些实施方案,预测中心38_102、应用程序预测引擎38_104和搜索应用程序
38_116可以在被配置为在移动计算设备38_100上执行的操作系统(OS)(在图38_1中未示出)中实现。如图38_1所示,预测中心38_102可以被配置为用作应用程序预测引擎38_104和搜索应用程序38_116之间的介体。尽管图38_1中未示出,预测中心38_102可以被配置为实现聚合器,该聚合器被配置为整合多个预测,例如当两个或更多个应用程序预测引擎38_
104被实现并且响应于由搜索应用程序38_116发出的请求而生成两个或更多个预测时。然而,应注意的是,应用程序预测引擎38_104和搜索应用程序38_116两者可以被配置为彼此直接通信,以减少甚至消除在移动计算设备38_100内实现预测中心38_102的需要。应进一步注意的是,应用程序预测引擎38_104和搜索应用程序38_116不需要在逻辑上彼此分离,并且由这些实体实现的不同功能可以被组合以建立提供相同结果的不同架构方法。
[2156] 如图38_1所示,可以在应用程序预测引擎38_104和搜索应用程序38_116之间传送预测38_112,例如,预测中心38_102可以接收由应用程序预测引擎38_104生成的预测38_112,并将预测38_112转发到搜索应用程序38_116。反馈38_114也可以在应用程序预测引擎
38_104和搜索应用程序38_116之间传送,例如,预测中心38_102可以从搜索应用程序38_
116接收反馈38_114,并向应用程序预测引擎38_104提供反馈38_114,使得应用程序预测引擎38_104可以随着时间的推移增加预测38_112的准确度。
[2157] 另外,预测中心38_102可以被配置为实现高速缓存,其使预测中心38_102/应用程序预测引擎38_104能够缓存预测38_112,以尝试增加移动计算设备38_100处的处理和能量消耗效率。例如,高速缓存可以包括多个条目,其中每个条目包括预测38_112以及指示预测38_112被认为有效多久的到期信息。到期信息可以包括例如基于时间的到期,基于事件的到期等。这样,当应用程序预测引擎38_104频繁地接收到对预测38_112的请求时,应用程序预测引擎38_104可以生成并缓存预测38_112,以便大幅减少原本会在移动计算设备38_100处发生的处理量,从而提高性能。
[2158] 如本节所述,应用程序预测引擎38_104可以使用各种架构方法来实现,例如,应用程序预测引擎38_104可以是预测中心38_102外部的独立可执行程序,并经由应用程序编程接口(API)命令与预测中心38_102通信,这些命令由预测中心38_102支持并由应用程序预测引擎38_104使用,应用程序预测引擎38_104可以是存储在移动计算设备38_100的文件系统内以及由预测中心38_102解释和实现的集束,等等。如图38_1所示,应用程序预测引擎38_104可以包括配置参数38_106,其指示应用程序预测引擎38_104以什么方式生成用于搜索应用程序38_116的预测。具体地讲,配置参数38_106可以定义数据信号38_110(它对应于移动计算设备38_100内的应用程序预测引擎38_104可用的已安装应用程序信息38_108)以什么方式被应用程序预测引擎38_104接收和被应用程序预测引擎38_104处理。根据一些实施方案,数据信号38_110可以表示应用程序安装时间戳(例如,每个应用程序何时安装)、应用程序激活时间戳(例如,每个应用程序最后被激活的时间)、应用程序激活总计(例如,应用程序已被激活的总次数)、应用程序使用量度(例如,应用程序被激活的频率)等。数据信号38_110还可以包括移动计算设备38_100的主用户界面(例如,在home屏幕上、在文件夹内等)内的应用程序图标的位置,由用户最近提供的应用程序搜索参数,收集的指示由应用程序预测引擎38_104提供的先前预测是否准确的反馈等。
[2159] 尽管图38_1中未示出,应用程序预测引擎38_104可以被配置为实现学习模型,学习模型使应用程序预测引擎38_104能够提供随着时间的推移而演变并与移动计算设备38_100的用户保持相关的预测38_112。根据一些实施方案,学习模型可以表示被配置为分析信息(例如,数据信号38_110)并且生成预测38_112的算法,其可以在用户操作移动计算设备
38_100时增强用户的整体体验。根据一些实施方案,由应用程序预测引擎38_104处理的信息可以从移动计算设备38_100内的各种源收集,例如,在移动计算设备38_100上实现的文件系统、由搜索应用程序38_116提供的反馈信息、由移动计算设备38_100的传感器(例如,全球定位系统(GPS)传感器、麦克风传感器、温度传感器、加速度计传感器等)收集的信息、由外部源(例如,在移动计算设备38_100上执行的其他应用程序、OS内核等)提供的信息等。
[2160] 另外,如图38_1所示,移动计算设备38_100可以被配置为与一个或多个服务器38_120(例如,经由互联网连接)介接,以便无线(OTA)接收更新38_122,该更新可以用于部分或全部更新应用程序预测引擎38_104、预测中心38_102和搜索应用程序38_116中的一个或多个。因此,图38_1提供了可用于实现本节中所述技术的各种部件的高级概览。
[2161] 图38_2示出了根据一些实施方案的由应用程序预测引擎38_104实现的方法38_200。虽然方法38_200被描述为应用程序预测引擎38_104和搜索应用程序38_116彼此直接通信,但是应注意,根据由本节中描述的预测中心38_102提供的各种功能,预测中心38_102可以作为应用程序预测引擎38_104和搜索应用程序38_116之间的介体。如图所示,方法38_
200从步骤38_202开始,其中应用程序预测引擎38_104从搜索应用程序38_116接收请求,该请求是提供对安装在移动计算设备38_100上的一个或多个应用程序的预测38_112的请求,移动计算设备38_100的用户可能对访问这一个或多个应用程序感兴趣。可以响应于搜索应用程序在移动计算设备38_100上激活,例如当移动计算设备38_100的用户输入使得该搜索应用程序激活的手势时,由搜索应用程序38_116发出该请求。
[2162] 在步骤38_204中,应用程序预测引擎38_104识别安装在移动计算设备38_100上的应用程序的列表。该信息可以例如通过已安装应用程序信息38_108和数据信号38_110获得。在步骤38_206中,应用程序预测引擎38_104将当前应用程序设置为应用程序列表中的第一应用程序。在步骤38_208中,应用程序预测引擎38_104通过对与当前应用程序相对应的一个或多个数据信号38_110执行一个或多个函数来生成当前应用程序的得分。根据一些实施方案,对数据信号38_110执行一个函数可以包括计算数据信号38_110的得分,并根据与数据信号38_110相关联的固定权重来调整该得分。例如,当数据信号38_110对应于应用程序的安装日期时,得分可以基于自应用程序安装以来已经过去的时间量,例如较新的安装日期对应于更高的分数。在某些情况下,可以根据衰减值(例如,半衰期)来调整得分,这可以特别适用于表示与应用程序相关联的时间信息(例如,应用程序安装时间戳、应用程序激活时间戳等)的数据信号38_110等)。反过来,与数据信号38_110相关联的固定权重可以应用于得分,以产生得分的更新形式。这样,并且在完成与当前应用程序相对应的一个或多个数据信号38_110上的一个或多个函数时,预测引擎可以产生针对当前的应用程序的得分的最终形式(例如,各个得分的总和)。
[2163] 在步骤38_210中,应用程序预测引擎38_104确定在应用程序列表中是否包括额外的应用程序。在步骤38_210中,如果应用程序预测引擎38_104确定应用程序列表中包括额外的应用程序,则方法38_200前进至步骤38_212。否则,方法38_200前进至步骤38_214,下面将更详细地描述。在步骤38_212中,应用程序预测引擎38_104将当前应用程序设置为应用程序列表中的下一个应用程序。在步骤38_214中,应用程序预测引擎38_104根据(1)所生成的得分,以及(2)在步骤38_202中接收到的请求来筛选应用程序列表。例如,该请求可以指示在移动计算设备38_100的用户界面中仅显示三个应用程序建议(例如,根据屏幕尺寸或分辨率设置),这可以使应用程序预测引擎38_104从应用程序列表中消除得分不在列表前三名的任何应用程序。在步骤38_216中,应用程序预测引擎38_104利用筛选的应用程序列表填充预测38_112,并将预测38_112提供给搜索应用程序38_116。
[2164] 图3示出了根据一些实施方案的由搜索应用程序38_116实现的方法38_300。如图所示,方法38_300从步骤38_302开始,在该步骤中,搜索应用程序38_116被激活。在步骤38_304中,搜索应用程序38_116发出对用户可能有兴趣访问的一个或多个应用程序的预测38_
112的请求。在步骤38_306中,搜索应用程序38_116响应于该请求接收预测38_112,其中预测38_112包括所述一个或多个应用程序的列表,并且每个应用程序与相应的得分相关联。
在步骤38_308中,搜索应用程序38_116根据得分在搜索应用程序38_116的用户界面内显示用于这一个或多个应用程序中的至少一个应用程序的用户界面条目(例如,如图38_4所示以及下文所述)。在步骤38_310中,搜索应用程序38_116通过该用户界面接收用户输入。
[2165] 在步骤38_312中,搜索应用程序38_116确定用户输入是否对应于用户界面条目。在步骤38_312中,如果搜索应用程序38_116确定用户输入对应于用户界面条目,则方法38_
300前进至步骤38_314。否则,方法38_300前进至步骤38_318,下面将更详细地描述。在步骤
38_314中,搜索应用程序38_116激活对应于该用户界面条目的应用程序。在步骤38_316中,搜索应用程序38_116提供指示该应用程序被激活的反馈。最后,在步骤38_318中,搜索应用程序38_116将自身去激活。
[2166] 图38_4示出了根据一些实施方案的在本节中描述的搜索应用程序38_116的示例性用户界面38_402的概念图38_400。如图38_4所示,用户界面38_402可以包括使移动计算设备38_100的用户能够输入搜索参数的搜索字段38_404(例如,使用包括在用户界面38_402中的虚拟键盘38_408)。此外,用户界面38_402可以包括用于用户可能有兴趣激活的应用程序的多个用户界面条目38_406的列表,其可以利用由本节中描述的应用程序预测引擎
38_104生成的预测38_112来获得。反过来,当用户提供反馈时(反馈可以包括例如取消搜索、忽略建议的应用程序和输入搜索参数,或者选择用户界面条目38_406中的一个),可以将反馈转发到应用程序预测引擎38_104用于处理。
[2167] 上述的图1A示出了根据一些实施方案的可用于实现本节中所述的各个部件的计算设备100的详细视图。具体地讲,该详细视图示出了图37_1所示移动计算设备37_100中可包括的各个部件。
[2168] 用于主动助理的应用程序模型的示例性方法和设备
[2169] 本节中描述的实施方案提出了用于识别用户何时激活他或她的移动计算设备上的搜索应用程序,以及在从用户接收到搜索参数的输入之前呈现用户可能有兴趣访问的一个或多个应用程序的预测的技术。根据一些实施方案,搜索应用程序可以被配置为每当搜索应用程序激活时与应用程序预测引擎介接,并且查询应用程序预测引擎以预测用户可能有兴趣访问的一个或多个应用程序。反过来,应用程序预测引擎可以分析与安装在移动计算设备上的应用程序相关联的信息以产生预测。使用该预测,搜索应用程序可以在搜索应用程序的用户界面内显示预测的一个或多个应用程序以供用户选择。
[2170] 在一些实施方案中,提供了一种用于主动地向移动计算设备的用户提供预测的方法,该方法包括:在于移动计算设备上执行的应用程序预测引擎处:对于包括在移动计算设备上已安装的应用程序的列表中的每个应用程序:对与该应用程序相对应的至少一个数据信号执行至少一个函数以建立该应用程序的得分,其中该得分指示该应用程序将被用户激活的可能性,并且将该得分与该应用程序相关联;以及向在移动计算设备上执行的搜索应用程序提供预测,其中该预测包括应用程序列表及其相关联的得分。在一些实施方案中,该方法包括,在向搜索应用程序提供预测之前:从搜索应用程序接收对该预测的请求,其中搜索应用程序响应于该搜索应用程序的激活并且从用户接收搜索输入之前发出该请求。在一些实施方案中,该请求指示应在预测中包括的应用程序列表中包括的特定数量的应用程序。在一些实施方案中,该方法包括:对于包括在应用程序列表中的每个应用程序:根据与至少一个数据信号相关联的权重来调整得分。在一些实施方案中,当至少一个数据信号对应于移动计算设备内的应用程序访问的时间方面时,对所述至少一个数据信号执行至少一个函数还包括:在根据与所述至少一个数据信号相关联的权重来调整得分之前:根据应用于所述至少一个数据信号的衰减因子调整所述至少一个数据信号的得分。在一些实施方案中,所述至少一个数据信号选自以下中的一个或多个:应用程序安装时间戳、应用程序激活时间戳、应用程序激活总计、应用程序使用量度、应用程序图标在移动计算设备的主用户界面中的位置、最近由用户提供的搜索参数,以及收集的指示先前预测是否准确的反馈。在一些实施方案中,应用程序图标在移动计算设备的主用户界面内的位置可以指示:包括该应用程序图标的主用户界面的页码,以及该应用程序是否包括在主用户界面内的文件夹中。在一些实施方案中,该方法包括:在向搜索应用程序提供预测之后:从搜索应用程序接收反馈,其中该反馈指示在向搜索应用程序提供预测之后用户的行为;并更新所收集的反馈以反映从搜索应用程序接收到的反馈。
[2171] 在一些实施方案中,提供了一种用于主动地向移动计算设备的用户呈现预测的方法,该方法包括:在于移动计算设备上执行的搜索应用程序处:检测搜索应用程序的激活;向应用程序预测引擎发出请求,该请求是关于预测安装在移动计算设备上并且用户可能有兴趣激活的一个或多个应用程序;从应用程序预测引擎接收预测,其中该预测包括一个或多个应用程序的列表,并且每个应用程序与相应的得分相关联;以及根据得分,在搜索应用程序的用户界面内显示用于这一个或多个应用程序中的至少一个应用程序的用户界面条目。在一些实施方案中,在经由搜索应用程序的用户界面中包括的搜索字段接收到搜索输入之前,将该请求发布给应用程序预测引擎。在一些实施方案中,该方法包括:通过搜索应用程序的用户界面接收用户输入;以反馈的形式提供与该用户输入相关联的信息。在一些实施方案中,反馈指示用户是选择了用于所述至少一个应用程序的用户界面条目还是输入了搜索参数。在一些实施方案中,该请求指示应包括在预测中的特定数量的应用程序,并且该特定数量的应用程序使基于能够在搜索应用程序的用户界面内向用户显示的应用程序的用户界面条目的数量。
[2172] 在一些实施方案中,提供了一种被配置为主动地向移动计算设备的用户呈现预测的移动计算设备,该移动计算设备包括被配置为执行以下项的处理器:搜索应用程序,其被配置为执行包括以下操作的步骤:检测搜索应用程序的激活,并且在从搜索应用程序的用户界面中接收到来自用户的输入之前:向在移动计算设备上执行的应用程序预测引擎发出对移动计算设备上安装的并且用户可能有兴趣激活的一个或多个应用程序的列表的请求,从应用程序预测引擎接收该列表,并且在搜索应用程序的用户界面内显示用于包括在该列表中的一个或多个应用程序中的至少一个应用程序的用户界面条目;以及应用程序预测引擎,其中应用程序预测引擎被配置为执行包括以下操作的步骤:从搜索应用程序接收对用户可能有兴趣激活的一个或多个应用程序的列表的请求,生成该列表,以及将该列表提供给搜索应用程序。在一些实施方案中,生成该列表包括:对于安装在移动计算设备上的每个应用程序:通过对与该应用程序相对应的一个或多个数据信号执行一个或多个函数来生成该应用程序的得分,并且将该得分与该应用程序相关联;以及根据生成的得分来筛选应用程序;以及将应用程序按照筛选后那样合并到该列表中。在一些实施方案中,对所述一个或多个数据信号中的一个数据信号执行所述一个或多个函数中的一个函数包括:基于与该数据信号相关联的信息来建立该数据信号的得分;以及根据与该数据信号相关联的权重来调整得分。在一些实施方案中,该数据信号对应于移动计算设备内的应用程序访问的时间方面,对该数据信号执行至少该函数还包括:在根据与该数据信号相关联的权重来调整得分之前:根据应用于该数据信号的衰减因子调整该数据信号的得分。在一些实施方案中,所述一个或多个数据信号包括应用程序安装时间戳、应用程序激活时间戳、应用程序激活总计、应用程序使用量度、应用程序图标在移动计算设备的主用户界面中的位置、最近由用户提供的搜索参数,以及收集的指示先前预测是否准确的反馈。在一些实施方案中,应用程序图标在移动计算设备的主用户界面内的位置可以指示:包括该应用程序图标的主用户界面的页码,以及该应用程序是否包括在主用户界面内的文件夹中。在一些实施方案中,应用程序预测引擎被进一步配置为:在向搜索应用程序提供该列表之后,执行包括以下操作的步骤:从搜索应用程序接收反馈,其中该反馈指示在向搜索应用程序提供该列表之后用户的行为;并更新所收集的反馈以反映从搜索应用程序接收到的反馈。
[2173] 第9部分:专家中心(为电子设备的部件提供预测内容项)
[2174] 本节“专家中心”中的材料描述了专家中心,并且描述了根据一些实施方案将预测内容项提供给电子设备的部件(例如,提供给图1A中设备100的任何部件),并且提供了补充本文提供的公开内容的信息。例如,本节的一些部分描述了预测引擎和预测类别的创建,这补充了本文提供的公开内容,例如与触发条件的创建/存储相关的那些(图4A至图4B),以及与在搜索界面中检索和呈现预测内容项相关的那些(例如,方法600,800,1000和1200),或与作为消息收发应用程序中的建议项相关的那些(例如方法2200、2900、2280、2400、2600和2700)。在一些实施方案中,本文所公开的方法利用或使用了下文第9节中描述的预测引擎,以在适当的时间向用户提供各种相关的内容项(例如,预测的应用程序、预测的人/联系人、预测的位置、与用于向各种类型的应用程序快速添加内容的事件/联系人/位置相关的信息,以及上文参考任何方法讨论的其他相关内容项)。
[2175] 专家中心摘要
[2176] 本节中描述的实施方案阐述了用于实现各种“预测引擎”的技术,这些预测引擎可以被配置为在移动计算设备内提供不同种类的预测。根据一些实施方案,每个预测引擎可以将其自身分配为移动计算设备内的一个或多个“预测类别”上的“专家”。当消费者应用程序发出特定预测类别的预测请求,并且两个或更多个预测引擎以预测进行响应时,“预测中心”可以被配置为在响应该请求之前接收并处理预测。处理预测可以包括移除存在于预测之间的重复信息,根据由预测引擎通告的置信水平对预测进行排序等。这样,预测中心可以将多个预测提取成优化的预测,并向消费者应用程序提供优化的预测。
[2177] 一个实施方案提出了一种用于向在移动计算设备上执行的应用程序同步地提供预测的方法。具体地讲,该方法是在移动计算设备上执行的预测中心实现的,并且包括以下步骤:(1)从应用程序接收同步地提供某个预测类别的预测的请求,(2)识别与该预测类别相关联的一个或多个预测引擎,(3)根据该请求接收由这一个或多个预测引擎产生的一个或多个预测,(4)聚合这一个或多个预测以产生由该应用程序请求的预测,和(5)向该应用程序提供该预测。
[2178] 另一个实施方案提出了一种用于向在移动计算设备上执行的应用程序异步地提供预测的方法。具体地讲,该方法是在移动计算设备上执行的预测中心实现的,并且包括以下步骤:(1)从应用程序接收异步地提供某个预测类别的预测的请求,(2)识别与该预测类别相关联的一个或多个预测引擎,以及(3)通知这一个或多个预测引擎中的每个预测引擎根据该请求异步地提供一个或多个预测。
[2179] 另一个实施方案提出了被配置根据用户行为生成预测的移动计算设备。具体地讲,该移动设备被配置为实现:(1)预测中心,其被配置用作一个或多个预测引擎与一个或多个应用程序之间的介体,其中该预测中心管理多个预测类别,(2)一个或多个预测引擎,其中这一个或多个预测引擎中的每个预测引擎用作由预测中心管理的多个预测类别中的至少一个预测类别上的专家,以及(3)一个或多个应用程序,其中这一个或多个应用程序中的每个应用程序被配置为执行包括以下操作的步骤:(i)向预测中心发出对这多个预测类别中的特定预测类别的预测的请求,以及(ii)根据该请求从预测中心接收预测,其中该预测是由作为该特定预测类别上的专家的预测引擎产生的至少两个预测的聚合。
[2180] 其他实施方案包括一种非暂态计算机可读介质,其被配置为存储指令,这些指令在由处理器执行时,使处理器实现本节中提出的前述技术中的任何一种。
[2181] 提供发明内容仅是为了概述一些示例性实施方案,以便提供对本节中所述的主题的一些方面的基本理解。因此,应当认识到,上文描述的特征只是示例,不应认为其以任何方式缩窄本节中所述主题的范围或实质。本节中所述的主题的其他特征、方面和优点将根据以下具体实施方式、附图和权利要求书而变得显而易见。
[2182] 根据结合以举例的方式示出所述实施方案的原理的附图而进行的以下详细描述,本节中所述的实施方案的其他方面和优点将变得显而易见。
[2183] 专家中心详细描述
[2184] 在此部分中提供了根据本发明所述的实施例的装置和方法的代表性应用。提供这些示例仅是为了添加上下文并有助于理解所述实施方案。对于本领域的技术人员因此将显而易见的是,本发明所述的实施方案可在不具有这些具体细节中的一些或全部具体细节的情况下被实施。在其他情况下,未详细描述熟知的工艺步骤,以便避免不必要地模糊本发明所述的实施方案。其他应用也是可能的,使得以下示例不应被视为是限制性的。
[2185] 本节中描述的实施方案提出了用于收集和组织行为数据以使得移动计算设备能够为其最终用户提供有意义的预测的技术。根据一些实施方案,该移动计算设备可以被配置为实现各种“预测引擎”,每个“预测引擎”可被配置为在移动计算设备内提供不同种类的预测。更具体地讲,并且根据一些实施方案,每个预测引擎可以将其自身分配为可用于增强移动计算设备的整体操作的一个或多个“预测类别”上的“专家”。预测类别的示例可以包括应用程序(例如,激活/去激活)、人(例如,电话呼叫、聊天等)、地理数据(例如,移动计算设备移动/区域设置)、通知(例如,推送通知到达)、物理输入(例如,将耳机/电力连接到移动计算设备)等。注意,前述预测类别仅仅是示例性的,并且本节中阐述的实施方案可以采用移动计算设备能够维护的任何预测类别。根据一些实施方案,预测引擎可以采用学习模型,学习模型能够使预测引擎分析数据(例如,与用户对移动计算设备的操作关联的行为数据)并且根据该数据提供预测。虽然本公开主要讨论了被配置为实现学习模型的预测引擎,但是应当注意,用于分析行为数据并提供预测的任何技术都可以由本节中描述的预测引擎采用。
[2186] 如先前在本节中所述的,并且根据一些实施方案,预测引擎可以将其自身分配为移动计算设备内的一个或多个预测类别上的专家。因此,在一些情况下,两个或更多个预测引擎可以将自己分配为移动计算设备内的相同预测类别的专家。因此,当请求实体(在本节中称为“消费者应用程序”)发出对两个或更多个预测引擎已经将自己分配为其专家的预测类别的预测请求时,这两个或更多个预测引擎中的每个预测引擎将进行其自己的分析(例如,根据该预测引擎采用的学习模型),并根据请求生成一个预测(或更多预测)。在这种情况下,响应于预测请求生成至少两个或更多个预测,这可以建立搜索消费者应用程序可能无法解释的冗余度和竞争预测。
[2187] 因此,实施方案还提出了被配置为用作预测引擎和消费者应用程序之间的介体的“预测中心”。根据一些实施方案,预测中心可以被配置为用作在预测引擎初始化并且尝试将自己分配为一个或多个预测类别的专家时用于预测引擎的注册器。类似地,并且根据一些实施方案,预测中心还可以被配置为管理移动计算设备内不同类型的预测类别,使得消费者应用程序可以查询预测中心来识别可以提供的预测类别。这样,当消费者应用程序发出特定预测类别的预测请求,并且两个或更多个预测引擎以其相应的预测进行响应时,预测中心可以被配置为在响应消费者应用程序发出的请求之前接收并处理预测。处理预测可以涉及例如移除存在于预测中的重复信息,根据与预测引擎相关联的历史性能(即准确度)度量来对预测应用权重,根据预测引擎在生成其预测时通告的置信水平对预测进行排序等。这样,预测中心可以将多个预测提取成优化的预测,并向消费者应用程序提供优化的预测。因此,该设计有利地简化了消费者应用程序的操作要求(因为它们不需要能够处理多个预测),将繁重处理整合到预测中心,并且使得消费者应用程序能够获得表示已经将其自己分配为感兴趣的预测类别上的专家的各种预测引擎的输入。
[2188] 根据一些实施方案,预测中心可以使消费者应用程序能够以“同步”的方式接收预测。更具体地讲,消费者应用程序可以被配置为向预测中心发出请求,该请求是使得预测中心与一个或多个预测引擎交互并且向消费者应用程序提供一定程度上即时(即,同步的)响应/预测。例如,当消费者应用程序(诸如聊天应用程序)启动并尝试预先识别移动计算设备的用户最有可能与之收发消息的联系人(例如,根据当前时间)时,可以使用该同步配置。根据其他实施方案,预测中心可以使消费者应用程序能够以“异步”的方式接收预测。更具体地讲,消费者应用程序可以被配置为向预测中心发出请求,该请求是使得预测中心通知/配置一个或多个预测引擎根据需要(即异步/受触发地)提供预测。例如,当消费者应用程序(诸如被配置为激活(即启动)和去激活(即,关闭)移动计算设备上的应用程序的OS内核)尝试响应于在移动计算设备处发生的物理输入而反应性地加载应用程序时,可以使用此异步配置。例如,预测引擎可以确定特定的音乐应用程序在耳机插入用户的移动计算设备的大多数时候由他或她手动启动。反过来,当耳机连接到移动计算设备时,预测引擎可以经由预测来向OS内核指示该特定音乐应用程序。反过来,OS内核可以(根据预测)预先加载适当的音乐应用程序,这可以帮助改善用户体验并增强移动计算设备的性能。
[2189] 因此,上述不同的技术使消费者应用程序能够与预测中心交互,以接收可能用于增强整体用户体验的预测。在一些情况下,消费者应用程序向预测中心提供反馈以指示有预测引擎产生的预测是否准确可能是有价值的。这样的反馈可以是有益的,例如当学习算法由预测引擎实现时,因为该反馈可以用于“训练”学习算法并提高其预测的总体准确度。例如,当预测引擎生成用户将采取特定动作的预测,并且消费者应用程序提供指示该预测有效的反馈(即,用户采取了该特定动作)时,预测引擎可以增加由预测引擎产生相似的后续预测时所通告的置信水平。随着置信水平上升,预测引擎产生的预测可以优先于其他预测引擎(如果有的话)产生的竞争预测。或者,当预测引擎预测该特定动作将被用户采取,并且消费者应用程序提供指示该预测无效的反馈(即,用户未采取该特定动作)时,预测引擎可以降低由预测引擎产生相似的后续预测时所通告的置信水平。随着置信水平下降,预测引擎产生的预测可能被由其他预测引擎(如果有的话)产生的竞争预测超过。
[2190] 另外,并且根据一些实施方案,预测中心/预测引擎可以被配置为实现记录器,该记录器维护生成的预测的记录及其相应的反馈。这些记录可以在各个方面是有益的,例如,预测引擎的开发者可以从大量移动计算设备接收记录,这些记录指示预测引擎正在持续生成不准确的预测。反过来,预测引擎的开发者可以重新访问预测引擎的配置,以提高其准确度。不同移动计算设备之间的预测中心也可以配置为彼此交换信息,以便识别观察到的并且可用于增强整体用户体验的高级趋势。例如,预测中心可以彼此识别,当大多数移动计算设备进入特定地理区域(例如,电影院的周边)时,移动计算设备的用户手动将其移动计算设备置于静音模式。反过来,该识别可用于向用户提供建议,以便在进入特定地理区域时将其移动计算设备置于静音模式。该识别还可以用于建议设置好自动规则,这样在移动计算设备进入特定地理区域时,移动计算设备会自动进入静音模式,从而使用户无需访问他或她的移动计算设备以及手动地将移动计算设备置于静音模式。
[2191] 除了上述技术之外,预测中心还可以被配置为实现一个或多个“筛选器”,筛选器可以用于进一步增强在移动计算设备内产生预测的方式。根据一些实施方案,筛选器可用于提供额外的处理层,其有助于减少或消除预测的发生,虽然这些预测是正确和可靠的(在预测引擎的范围内),但它们其实在现实场景中不实际并且不起作用。例如,考虑移动计算设备上的锁定屏幕应用程序代表消费者应用程序的场景,其中锁定屏幕应用程序显示相机应用程序的静态图标,以及(例如,基于当前时间)最有可能被用户访问的应用程序的动态图标。在该实施例中,锁定屏幕应用程序可以在尝试识别应与锁定屏幕应用程序内显示的动态图标相关联的应用程序时,向预测中心发出与“应用程序”预测类别相关联的预测的请求。进一步考虑,在该实施例中,单个预测引擎与“应用程序”预测类别相关联,其中单个预测引擎确定相机应用程序最有可能被用户访问(因为这通常在锁定屏幕应用程序显示时发生)。值得注意的是,在该实施例中,这种预测在某种程度上无意义,因为在锁定屏幕应用程序内为同一相机应用程序显示两个不同的图标将是浪费的。因此,可以使用筛选器来帮助防止这些情况的发生,例如,可以将筛选器配置为当锁定屏幕应用程序在移动计算设备上处于活动状态时从与“应用程序”预测类别相关联的预测中移除相机应用程序。
[2192] 此外,预测中心/预测引擎还可以被配置为实现一个或多个高速缓存,其可以用于减少在生成预测时发生的处理量。根据一些实施方案,生成后,预测可以伴随有“有效性参数”,其指示何时应该从存储该预测的高速缓存中移除该预测。有效性参数(本节也称为到期信息)可以定义例如基于时间的到期、基于事件的到期等。这样,当预测引擎频繁地接收对特定预测类别的预测的请求时,预测引擎可以生成并缓存预测,以便大幅减少原本会在处理重复预测请求时发生的未来处理量。注意,预测中心/预测引擎可以被配置为使用各种方法来缓存预测。例如,当可用高速缓冲存储器有限时,预测中心/预测引擎可以被配置为生成阈值次数的预测(例如,在时间窗口内),并且当满足阈值时,转换到缓存预测并引用高速缓存以用于预测的后续请求(只要到期信息指示预测有效)。
[2193] 另外,应当注意,预测中心的架构可以被配置使得本节中描述的不同实体(包括预测引擎、预测类别、筛选器、记录器等)能够作为移动计算设备内的模块化部件。在一种架构方法中,每个实体可以被配置为实现一组应用编程接口(API)函数调用,其使得实体能够与预测中心进行通信并提供本节中描述的不同功能。例如,根据该架构方法,实体可以被配置为自含式可执行文件,该自含式可执行文件可以在预测中心外部操作并且能够提供本节中描述的各种功能。在另一种架构方法中,每个实体可以被配置为一个集束,预测中心理解其格式并且使得预测中心能够用作实现该实体功能的平台。根据该方法,预测中心可以被配置为例如解析不同的文件系统路径(例如,当初始化时)来识别驻留在移动计算设备内的不同集束。这样,可以方便地将集束添加到移动计算设备的文件系统中、在其中更新以及从中移除,从而促进可以随着时间推移有效演进而不需要大量更新移动计算设备(例如,操作系统升级)的模块化配置。注意,前述架构是示例性的,并且可以使用能够使本节中描述的各种实体彼此通信并提供其不同功能的任何架构。
[2194] 因此,实施方案提出了用于收集和组织行为数据以使得移动计算设备能够为其最终用户提供有意义的预测的技术。这些技术的更详细的讨论在下面示出并结合图39_1、39_2、39_3A至39_3C、39_4A至39_4B、39_5A至39_5C以及图1A所示的移动设备100进行描述,其示出了可用于实现这些技术的系统和方法的详细的图示。
[2195] 图39_1示出了根据一些实施方案被配置为实现本节所述的各种技术的移动计算设备39_100的不同部件的框图。更具体地讲,图39_1示出了移动计算设备39_100的高级概览,如图所示,它被配置为实现预测中心39_102和各种消费者应用程序39_112。根据一些实施方案,预测中心39_102各种消费者应用程序39_112可以在被配置为在移动计算设备39_100上执行的操作系统(OS)(在图39_1中未示出)中实现。也如图39_1所示,预测中心39_102可以被配置为管理各种记录器39_105、各种预测类别39_106、各种预测引擎39_108和各种筛选器39_110。预测中心39_102还可以实现被配置为充当预测引擎39_108和消费者应用程序39_112之间的介体的管理器39_104,例如,管理器39_104可以接收由预测引擎39_108生成的预测(在图39_1中示出为预测39_114)并将预测39_114转发给消费者应用程序39_112。
预测中心39_102还可以被配置为从消费者应用程序39_112接收反馈信息39_116,并将反馈信息39_116提供给预测引擎39_108,使得它们可以随着时间推移产生更准确的预测39_
114。因此,图39_1提供了可用于实现本节中所述技术的各种部件的高级概览。
[2196] 图39_2示出了根据一些实施方案,图39_1中移动计算设备39_100的特定部件的更详细视图39_200的框图。如图39_2所示,每个预测引擎39_108可以被配置为包括一个或多个学习模型39_202、对应状态39_204,以及预测引擎39_108已经将自身分配为其上专家的预测类别39_106的列表。根据一些实施方案,学习模型39_202可以表示被配置为分析信息(例如,状态39_204)并且生成预测的算法,其可以在用户操作移动计算设备39_100时增强用户的整体体验。根据一些实施方案,可以从移动计算设备39_100内的各种源收集状态39_204,例如,由消费者应用程序提供的反馈信息39_116、由移动计算设备39_100的传感器(例如,全球定位系统(GPS)传感器、麦克风传感器、温度传感器、加速度计传感器等)收集的信息、由外部源(例如,在移动计算设备39_100上执行的应用程序、OS内核等)提供的信息等。
[2197] 也如图39_2所示,管理器39_104可以被配置为管理各种记录器39_105、各种预测类别39_106、各种预测引擎39_108和各种筛选器39_110。如上所述,这些实体可以使用各种架构方法来实现,例如,实体可以是预测中心39_102外部并经由API命令与管理器39_104通信的独立可执行文件,实体可以是存储在移动计算设备39_100的文件系统中并且可由管理器39_104解释/实现的集束,等等。也如图39_2所示,管理器39_104可以实现被配置为合并多个预测39_114(例如,当由不同的预测引擎39_108产生时)的聚合器39_220。此外,如图39_2所示,管理器39_104可以被配置为维护与预测中心39_102交互的消费者应用程序39_
112的记录。如本节更详细地描述的,这些记录可以用于将预测引擎39_108与注册为异步地从预测引擎39_108接收预测的消费者应用程序39_112相关联。
[2198] 另外,如图39_2所示,预测中心39_102可以被配置为实现高速缓存39_206,该高速缓存使预测中心39_102/预测引擎39_108能够缓存预测39_114,以尝试增加移动计算设备39_100处的处理和能量消耗效率。如图39_2所示,高速缓存39_206可以包括条目39_208,其中每个条目39_208包括预测39_114以及指示预测39_114在多长时间被认为有效的到期信息39_210。到期信息39_210可以包括例如基于时间的到期,基于事件的到期等。这样,当预测引擎39_108频繁地接收到对特定预测类别39_106的预测39_114的请求时,预测引擎39_
108可以生成并缓存预测39_114,以便大幅减少原本会在移动计算设备39_100处发生的处理量,从而提高性能。
[2199] 图3A示出了根据一些实施方案的用于预测引擎39_108的高级初始化和操作的方法39_300。如图3A所示,方法39_300从步骤39_302开始,其中预测引擎39_108加载一个或多个学习模型39_202。在可选步骤39_304处,预测引擎39_108加载与这一个或多个学习模型39_202相关联的先前建立的状态39_204。根据一些实施方案,可从可供预测引擎39_108使用的任何存储资源(例如,本地非易失性存储器、云存储等)检索先前建立的状态39_204。在步骤39_306处,预测引擎39_108向预测中心39_102发出作为至少一个预测类别39_106上的专家(并提供预测39_114)的请求。在步骤39_308处,预测引擎39_108接收为至少一个预测类别39_106同步地提供预测39_114或异步地提供预测39_114的请求。在步骤39_310处,预测引擎39_108根据一个或多个学习模型39_202异步地和/或同步地提供预测,其中每个预测39_114包括置信水平信息。在步骤39_312处,预测引擎39_108接收指示与所提供的预测
39_114相关联的准确度水平的反馈信息。这样的反馈信息39_116可以用于“训练”学习模型
39_202并且提高其预测39_114的总体准确度。例如,当预测引擎39_108生成移动计算设备
39_100的用户将采取特定动作的预测39_114,并且消费者应用程序39_112提供指示预测
39_114有效的反馈(即,用户采取了该特定动作)时,预测引擎39_108可以增加由预测引擎
39_108产生相似的后续预测39_114时所通告的置信水平。在步骤39_314处,预测引擎39_
108根据反馈信息更新一个或多个学习模型39_202。
[2200] 图3B示出了根据一些实施方案的用于在预测引擎39_108处同步地提供预测39_114的方法39_330。如图3B所示,方法39_330从步骤39_332开始,其中预测引擎39_108接收同步提供特定预测类别39_106的预测39_114的请求。根据一些实施方案,该请求可以由预测中心39_102代表正在请求特定预测类别39_106的预测39_114的消费者应用程序39_112生成。或者,该请求可以由消费者应用程序39_112生成并且直接提供给预测引擎39_108。这样,可以相对于用作预测引擎39_108和消费者应用程序39_112之间的介体的预测中心39_
102减少或甚至消除预测中心39_102的全面参与。在步骤39_334处,预测引擎39_108识别与特定预测类别39_106相关联的至少一个学习模型39_202。在步骤39_336处,预测引擎39_
108根据至少一个学习模型39_202生成特定预测类别39_106的预测39_114。在步骤39_338处,预测引擎39_108将预测39_114与置信水平信息相关联。在步骤39_340处,预测引擎39_
108提供预测39_114。更具体地将,并且根据配置(例如,如上文结合步骤39_332所述),预测引擎39_108可以将预测39_114提供给预测中心39_102或直接提供给消费者应用程序39_
112。反过来,当其他预测引擎39_108提供类似的预测39_114时,预测39_114与其他预测39_
114(如果有的话)一起被聚合(例如,当预测39_114被提供给预测中心39_102时,由聚合器
39_220聚合)。
[2201] 图3C示出了根据一些实施方案的用于在预测引擎39_108处异步地提供预测39_114的方法39_350。如图3C所示,方法39_350从步骤39_352开始,其中预测引擎39_108接收异步提供特定预测类别39_106的预测39_114的请求。在步骤39_354处,预测引擎39_108识别与特定预测类别39_106相关联的至少一个学习模型39_202。在步骤39_356处,预测引擎
39_108识别与特定预测类别39_106和/或至少一个学习模型39_202相关联的至少一个触发器。在步骤39_358处,预测引擎39_108确定触发器是否激活/发生。在步骤39_358处,如果预测引擎39_108确定触发器被激活,则方法39_350前进至步骤39_360。否则,方法39_350在步骤39_358重复,直到触发器被激活/发生。在步骤39_360处,预测引擎39_108根据至少一个学习模型39_202生成特定预测类别39_106的预测39_114。在步骤39_362处,预测引擎39_
108将预测39_114与置信水平信息相关联。在步骤39_364处,预测引擎39_108提供预测39_
114(例如,提供给预测中心39_102以进行聚合)。
[2202] 图39_4A示出了根据一些实施方案,消费者应用程序39_112请求同步接收预测39_114的方法39_400。如图39_4A所示,方法39_400从步骤39_402开始,其中消费者应用程序
39_112发出对特定预测类别39_106的预测39_114的请求。根据一些实施方案,消费者应用程序39_112可以被配置为向预测中心39_102发出请求,其中预测中心39_102与注册为特定预测类别39_106上的专家的预测引擎39_108介接。或者,消费者应用程序39_112可以被配置为直接向预测引擎39_108发出请求,例如,当预测引擎39_108是移动计算设备39_100内的特定预测类别39_106上的唯一专家时。在步骤39_404处,消费者应用程序39_112结合在步骤39_402发出的请求,同步地接收特定预测类别39_106的预测39_114。在步骤39_406处,消费者应用程序39_112观察移动计算设备39_100处的行为(例如用户行为),以确定预测
39_114是否准确。在步骤39_408处,消费者应用程序39_112提供反馈信息39_116,该反馈信息指示与预测39_114相关联的准确度水平。
[2203] 图39_4B示出了根据一些实施方案,消费者应用39_112注册以异步接收预测39_114的方法39_450。如图39_4B所示,方法39_450从步骤39_452开始,其中消费者应用39_112发出异步接收特定预测类别39_106的预测39_114的请求。在步骤39_454处,消费者应用程序39_112异步地接收特定预测类别39_106的预测39_114。在步骤39_456处,消费者应用程序39_112观察移动计算设备39_100处的行为(例如用户行为),以确定预测39_114是否准确。在步骤39_458处,消费者应用程序39_112提供反馈信息39_116,该反馈信息指示与预测
39_114相关联的准确度水平。
[2204] 图39_5A示出了根据一些实施方案的方法39_500,该方法用于管理预测中心39_102处的预测引擎39_108的注册。如图所示,方法39_500从步骤39_500开始,其中预测中心
39_102的管理器39_104从预测引擎39_108接收用作预测引擎39_108并提供至少一个预测类别39_106的预测39_114的请求。在步骤39_504处,管理器39_104将预测引擎39_108添加到分配为提供至少一个预测类别39_106的预测39_114的预测引擎39_108的列表中。在可选步骤39_506处,管理器39_104根据与预测引擎39_108相关联的历史性能指标向预测引擎
39_108分配权重。在可选步骤39_508处,管理器39_104初始化与预测引擎39_108和/或至少一个预测类别39_106相关联的筛选器39_110(如果有的话)。在步骤39_510处,管理器39_
104更新预测中心39_102的配置,以使消费者应用程序39_112能够发出同步和/或异步接收与至少一个预测类别39_106相关联的预测39_114的请求。
[2205] 图39_5B示出了根据一些实施方案的用于向预测中心39_102处的消费者应用程序39_112同步地提供预测39_114的方法39_550。如图39_5B所示,方法39_550从步骤39_552开始,其中管理器39_104从消费者应用程序39_112接收同步地提供特定预测类别39_106的预测39_114的请求。一个示例性场景可以涉及在移动计算设备39_100处激活消息收发应用程序,并且发出对预测39_114的请求,该预测是关于操作该消息收发应用程序的用户最有可能与之通信的三个联系人。在步骤39_554处,管理器39_104识别分配给特定预测类别39_
106的预测引擎39_108的列表。继续前述示例性场景,进一步考虑两个不同预测引擎39_108已经将其自身注册为“人”预测类别39_106上的专家。在步骤39_556处,管理器39_104查询包括在用于预测39_114的预测引擎39_108的列表中的每个预测引擎39_108。
[2206] 在步骤39_558处,管理器39_104从包括在预测引擎39_108的列表中的每个预测引擎39_108接收与置信水平信息相关联的对应预测39_114。继续前述示例性场景,进一步考虑两个预测引擎39_108提供预测39_114,每个预测包括用户最有可能联系的三个联系人的单独列表。例如,第一个列表可以包括读为“Greg:0.7”、“Amy:0.5”和“妈妈:0.3”的条目(其中名称(例如,“Greg”)表示将被联系的预测个体,名称后面的数字(例如,0.7)表示该预测个体将被联系的相应置信水平),第二个列表可以包括读为“妈妈:0.7”、“Greg:0.4”和“Julie:0.2”的条目。在步骤39_560处,管理器39_104根据分配给相应预测引擎39_108的权重(如果有的话)来更新与预测39_114相关联的置信水平信息。例如,如果产生第一个列表的预测引擎39_108根据由管理器39_104(例如,经由反馈信息39_116)观察到的持续不佳的性能而具有0.75的分配权重,则第一个列表中每个条目的置信水平信息将减少0.75。在步骤39_562处,管理器39_104根据其相关联的置信水平信息(例如,使用聚合器39_220)聚合预测39_114。继续前述实施例,并且假设在步骤39_560中未应用权重,则步骤39_562将涉及管理器39_104建立以下更新列表:“Greg:1.1”(即0.7+0.4=1.1)、“Mom:1.0”(即0.3+0.7=1.0)、“Amy:0.5”和“Julie:0.2”,其中用于“Julie:0.2”的条目被移除,因为消息收发应用程序只需要接收关于三个联系人的预测。在步骤39_564处,管理器39_104根据聚合预测39_
114向消费者应用程序39_112提供预测39_114,该预测将包括“Greg:1.1”、“Mom:1.0”和“Amy:0.5”。
[2207] 图39_5C示出了根据一些实施方案的用于向预测中心39_102处的消费者应用程序39_112异步地提供预测39_114的方法39_570。如图所示,方法39_570从步骤39_572开始,其中管理器39_104从消费者应用程序39_112接收异步地接收特定预测类别39_106的预测39_
114的请求。在步骤39_574处,管理器39_104识别分配给特定预测类别39_106的预测引擎
39_108的列表。在步骤39_576处,管理器39_104通知包括在预测引擎39_108的该列表中的每个预测引擎39_108异步地提供与特定预测类别39_106相关联的预测39_114。在步骤39_
578处,管理器39_104从包括在预测引擎39_108的列表中的每个预测引擎39_108接收与置信水平信息相关联的对应预测39_114。在步骤39_580处,管理器39_104根据分配给相应的预测引擎39_108的权重(如果有的话)来更新与预测39_114相关联的置信水平信息。在步骤
39_582处,管理器39_104根据其相关联的置信水平信息来聚合预测39_114。在步骤39_584处,管理器39_104根据聚合预测39_114向消费者应用程序39_112提供预测39_114。
[2208] 用于专家中心的示例性方法和设备
[2209] 描述的实施方案阐述了用于实现各种“预测引擎”的技术,这些预测引擎可以被配置为在移动计算设备内提供不同种类的预测。根据一些实施方案,每个预测引擎可以将其自身分配为移动计算设备内的一个或多个“预测类别”上的“专家”。当消费者应用程序发出特定类别的预测请求,并且两个或更多个预测引擎以其各自的预测进行响应时,“预测中心”可以被配置为在响应该请求之前接收并处理预测。处理预测可以包括移除存在于预测之间的重复信息,根据由预测引擎通告的置信水平对预测进行排序等。这样,预测中心可以将多个预测提取成优化的预测,并向消费者应用程序提供优化的预测。
[2210] 在一些实施方案中,提供了一种用于向移动计算设备上执行的应用程序同步地提供预测的方法,该方法包括:在移动计算设备上执行的预测中心处:从该应用程序接收同步地提供某个预测类别的预测的请求;识别与该预测类别相关联的一个或多个预测引擎;根据该请求接收由这一个或多个预测引擎产生的一个或多个预测;聚合这一个或多个预测以产生由该应用程序请求的预测;以及向该应用程序提供该预测。在一些实施方案中,聚合这一个或多个预测包括执行选自以下的一个或多个操作:从这一个或多个预测中移除重复的预测;根据由预测中心实现的一个或多个筛选器来筛选这一个或多个预测;对于这一个或多个预测中的每个预测:根据分配给产生预测的预测引擎的权重来调整与预测相关联的置信水平,其中与预测相关联的置信水平是由预测引擎在产生预测时生成;以及根据与预测相关联的置信水平对这一个或多个预测中的每个预测进行排序。在一些实施方案中,该方法包括:在接收预测请求之前:对于这一个或多个预测引擎中的每个预测引擎:从预测引擎接收对预测引擎作为该预测类别上的专家的请求;以及将预测引擎与该预测类别相关联。在一些实施方案中,该方法包括:在产生应用程序所请求的预测之后:建立与该预测相关联的有效性参数;将有效性参数与该预测相关联;将预测和有效性参数存储到高速缓存中。在一些实施方案中,有效性参数定义了基于时间的到期或基于触发的到期中的一个或多个。
在一些实施方案中,该方法包括:在将预测和有效性参数存储到高速缓存中之后:从第二应用程序接收同步地提供该预测类别的预测的第二请求;将预测定位在高速缓存内;并且当与该预测相关联的有效性参数指示该预测有效时:将该预测提供给第二应用程序。在一些实施方案中,该预测类别被包括在由预测中心管理的多个预测类别中,并且这多个预测类别中的每个预测类别与以下项相关联:移动计算设备上执行的应用程序的激活和去激活、移动计算设备已知的联系人、可向移动计算设备提供的全球定位系统(GPS)信息、由移动计算设备处理的通知,或对移动计算设备进行的物理输入。在一些实施方案中,该方法包括:
在向应用程序提供预测之后:从该应用程序接收指示该预测的准确度的反馈信息;以及将该反馈信息提供给这一个或多个预测引擎,其中该反馈信息可由这一个或多个预测引擎利用以增加由这一个或多个预测引擎产生的后续预测的准确度。
[2211] 在一些实施方案中,提供了一种用于向移动计算设备上执行的应用程序异步地提供预测的方法,该方法包括:在移动计算设备上执行的预测中心处:从该应用程序接收异步地提供某个预测类别的预测的请求;识别与该预测类别相关联的一个或多个预测引擎;通知这一个或多个预测引擎中的每个预测引擎根据该请求异步地提供一个或多个预测。在一些实施方案中,该方法包括:在通知这一个或多个预测引擎中的每个预测引擎之后:接收一个或多个预测;聚合这一个或多个预测以产生应用程序所要求的预测;以及向应用程序提供该预测。在一些实施方案中,该方法包括:在产生应用程序所请求的预测之后:建立与该预测相关联的有效性参数;将有效性参数与该预测相关联;将预测和有效性参数存储到高速缓存中。在一些实施方案中,有效性参数有这一个或多个预测引擎提供,并且定义了基于时间的到期或基于触发的到期中的一个或多个。在一些实施方案中,聚合这一个或多个预测包括执行选自以下的一个或多个操作:从这一个或多个预测中移除重复的预测;根据由预测中心实现的一个或多个筛选器来筛选这一个或多个预测;对于这一个或多个预测中的每个预测:根据分配给产生预测的预测引擎的权重来调整与预测相关联的置信水平,其中与预测相关联的置信水平是由预测引擎在产生预测时生成;以及根据与预测相关联的置信水平对这一个或多个预测中的每个预测进行排序。在一些实施方案中,响应于在移动计算设备处发生的基于触发的事件,这一个或多个预测引擎异步地向预测中心提供一个或多个预测。在一些实施方案中,该方法包括:在接收预测请求之前:对于这一个或多个预测引擎中的每个预测引擎:从预测引擎接收对预测引擎作为该预测类别上的专家的请求;以及将预测引擎与该预测类别相关联。在一些实施方案中,该预测类别被包括在由预测中心管理的多个预测类别中,并且这多个预测类别中的每个预测类别与以下项相关联:移动计算设备上执行的应用程序的激活和去激活、移动计算设备已知的联系人、可向移动计算设备提供的全球定位系统(GPS)信息、由移动计算设备处理的通知,或对移动计算设备进行的物理输入。
[2212] 在一些实施方案中,提供了一种被配置为根据用户应为生成预测的移动计算设备,该移动计算设备包括:处理器,其被配置为执行:预测中心,其被配置用作一个或多个预测引擎与一个或多个应用程序之间的介体,其中该预测中心管理多个预测类别;一个或多个预测引擎,其中这一个或多个预测引擎中的每个预测引擎用作由预测中心管理的多个预测类别中的至少一个预测类别上的专家;以及一个或多个应用程序,其中这一个或多个应用程序中的每个应用程序被配置为执行包括以下操作的步骤:向预测中心发出对这多个预测类别中的特定预测类别的预测的请求,以及根据该请求从预测中心接收预测,其中该预测是由作为该特定预测类别上的专家的预测引擎产生的至少两个预测的聚合。在一些实施方案中,聚合所述至少两个预测包括执行选自以下的一个或多个操作:从所述至少两个预测中移除重复的预测;根据由预测中心实现的一个或多个筛选器来筛选所述至少两个预测;对于所述至少两个预测中的每个预测:根据分配给产生预测的预测引擎的权重来调整与预测相关联的置信水平,其中与预测相关联的置信水平是由预测引擎在产生预测时生成;以及根据与预测相关联的置信水平对所述至少两个预测中的每个预测进行排序。在一些实施方案中,预测中心被配置为执行包括以下操作的步骤:在向应用程序提供预测之后:从该应用程序接收指示该预测的准确度的反馈信息;以及将该反馈信息提供给产生所述至少两个预测的预测引擎,其中该反馈信息可由这些预测引擎利用以增加由这些预测引擎产生的后续预测的准确度。在一些实施方案中,这多个预测类别中的每个预测类别与以下项相关联:移动计算设备上执行的应用程序的激活和去激活、移动计算设备已知的联系人、可向移动计算设备提供的全球定位系统(GPS)信息、由移动计算设备处理的通知,或对移动计算设备进行的物理输入。
[2213] 第10部分:上下文监视、上下文通知、上下文预测和高效上下文监视
[2214] 本节“上下文监视、上下文通知、上下文预测和高效上下文监视”中的材料描述了根据一些实施方案的设备上下文监视、上下文通知、上下文预测和高效上下文监视,并且提供了补充本文提供的公开内容的信息。例如,本节的一次人部分描述监视计算设备的操作上下文,这补充了本文提供的公开内容,例如与使用数据的收集/存储(图3A至图3B)、触发条件的创建/存储(图4A至图4B),以及基于使用数据和触发条件为用户提供相关内容(例如,方法600和800)有关的那些。在一些实施方案中,本节中讨论的上下文监视/预测细节用于提供用来提供数据的上下文信息,以改善搜索结果的呈现以及本文所讨论的任何方法的其他建议内容(例如,为了补充方法600,800,1000,1200,2200,2280,2900或本文讨论的可以从使用额外上下文信息中受益的任何其他方法)。
[2215] 上下文监视/预测的简明摘要
[2216] 公开了用于监视计算设备的当前上下文的系统、方法和非暂态计算机可读存储介质。在一些具体实施中,上下文守护进程可以收集关于计算设备的上下文信息。上下文信息可以包括当前设备硬件状态信息。上下文信息可以包括当前的软件状态信息。上下文可以从硬件状态信息、软件状态信息或任何其他类型的状态信息的组合中导出或暗示。例如,导出的上下文可以是从硬件或软件状态信息导出的或由其暗示的用户状态(例如,用户活动、睡眠、跑步等)。
[2217] 在一些具体实施中,上下文信息可以由上下文监视器报告给上下文守护进程。上下文监视器可以专门构件用于收集上下文守护进程监视的上下文信息。上下文监视器可以是为其他目的构建、使用或生成硬件或软件状态信息,并将状态信息报告给上下文守护进程的应用程序、实用程序、工具等。收集上下文信息之后,上下文守护进程可以将计算设备的当前上下文存储在中心位置,使得上下文客户端(例如,软件、应用程序、实用程序、操作系统等)可以从单一来源获得当前上下文信息。在一些具体实施中,上下文守护进程可以生成和/或收集历史上下文信息。历史上下文信息可以包括旧的或过时的上下文信息。可以从上下文信息导出历史上下文信息。因此,上下文守护进程可以提供上下文信息的中央存储库,上下文客户端(例如,进程)可以使用该中央存储库确定计算设备的当前上下文。
[2218] 公开了用于向上下文客户端通知计算设备的当前上下文的改变的系统、方法和非暂态计算机可读存储介质。在一些具体实施中,上下文客户端可以注册在当上下文守护进程检测到指定的上下文时回调。例如,上下文客户端可以指定上下文客户端感兴趣的上下文。当上下文守护进程检测到计算设备的当前上下文对应于已注册的上下文时,上下文守护进程可以通知上下文客户端当前上下文与上下文客户端感兴趣的上下文匹配。因此,上下文客户端不需要独立地获得上下文更新所需的编程以及检测与上下文客户端相关或感兴趣的上下文变化。
[2219] 公开了用于高效监视计算设备的操作上下文的系统、方法和非暂态计算机可读存储介质。在一些具体实施中,可以终止上下文守护进程和/或上下文客户端以节省系统资源。例如,如果上下文守护进程和/或上下文客户端空闲,则可以关闭它们以节省电池电力或释放其他系统资源(例如,存储器)。当需要上下文守护进程和/或上下文客户端运行的事件发生(例如,当前上下文改变)时,可以重新启动上下文守护进程和/或上下文客户端来处理该事件。因此,可以节省系统资源,同时仍然提供相关的上下文信息收集和回调通知功能。
[2220] 公开了用于预测计算设备的未来上下文的系统、方法和非暂态计算机可读存储介质。在一些具体实施中,上下文守护进程可以使用历史上下文信息来预测未来的事件和/或上下文变化。例如,上下文守护进程可以分析历史上下文信息以预测用户睡眠模式、用户锻炼模式和/或其他用户活动。在一些具体实施中,上下文客户端可以为预测的未来上下文注册回调。例如,上下文客户端可以请求在预测事件和/或上下文改变之前十分钟收到通知。上下文守护进程可以使用该预测来先于预测事件通知上下文客户端。
[2221] 上下文监视/预测的详细描述
[2222] 确定当前上下文
[2223] 图40_1是用于监视、预测和通知上下文客户端计算设备的操作上下文中的变化的示例性系统40_100的框图。计算设备可例如是台式计算机、膝上型计算机、智能电话、平板电脑或任何其他类型的计算设备。例如,系统40_100可以被配置为在计算设备上运行。在一些具体实施中,系统40_100可以包括上下文守护进程40_102。例如,上下文守护进程40_102可以是在计算设备上执行的后台进程。例如,上下文守护进程40_102可以是包括在计算设备的操作系统中的进程。
[2224] 在一些具体实施中,上下文守护进程40_102可以被配置为收集关于计算设备的当前操作上下文的信息。例如,上下文信息可以包括描述计算设备的内部和/或外部上下文的信息。在一些具体实施中,内部上下文信息可以包括硬件状态信息。例如,硬件状态信息可以识别正在使用的硬件以及该硬件被如何使用。如果该硬件是用于与另一设备通信的无线收发器,则硬件状态信息可以识别其他设备、连接创建何时、传输了多少数据等。在一些具体实施中,内部上下文信息可以包括软件状态信息。例如,用于日历应用程序的状态信息可以包括日历事件、会议、将参加会议的联系人的姓名、会议的开始和结束时间等。
[2225] 在一些具体实施中,外部上下文信息可以包括用户活动。例如,可以从硬件状态信息和/或软件状态信息导出外部上下文信息。例如,上下文守护进程40_102可以从硬件和/或软件状态信息导出用户行为(例如,睡眠模式、工作模式、饮食模式、旅行模式等),如下面进一步描述的。
[2226] 在一些具体实施中,上下文守护进程40_102可以包括用于收集各种类型的上下文信息的监视器组40_104。监视器组40_104中的每个监视器组40_106可以被配置为收集关于对应的上下文项的上下文信息。例如,监视器组40_106可以是上下文守护进程40_102外部的进程。监视器组40_106可以是可以在上下文守护进程40_102内执行的动态加载的软件包
[2227] 在一些具体实施中,监视器组40_106可以包括上下文监视器40_108。例如,上下文监视器40_108可以被配置为收集关于计算设备的当前上下文的信息。在一些具体实施中,监视器组40_106可以包括历史监视器40_110。例如,历史监视器40_110可被配置为收集或确定计算设备的历史上下文,如下面进一步描述的。
[2228] 在一些具体实施中,监视器组40_104中的每个监视器组40_106可被配置为收集特定类型的上下文信息。例如,上下文守护进程40_102可以加载许多不同的监视器组40_106。每个监视器组40_106可以被配置为从计算设备内的不同源40_130收集不同的上下文信息。
例如,一个监视器组40_106可以收集关于蓝牙上下文项的上下文信息,而另一个监视器组
40_106可以收集关于锁定状态上下文项的上下文信息。
[2229] 在一些具体实施中,监视器组40_106可以被配置为从位置API 40_132收集设备位置上下文信息。例如,上下文监视器40_108可以从位置API 40_132接收由全球导航卫星系统(GNSS)接收器接收到的当前GNSS位置数据。监视器组40_106可以从位置API 40_132接收当前蜂窝和/或WiFi导出的位置数据。
[2230] 在一些具体实施中,监视器组40_106可以被配置为从锁定状态API 40_134收集锁定状态上下文信息。例如,上下文监视器40_108可以收集描述计算设备的当前锁定状态(例如,锁定、解锁等)的锁定状态上下文信息。例如,计算设备的用户必须解锁计算设备才能使用计算设备或与之交互。当设备锁定时,设备将不会接受用户输入。当设备解锁时,设备将接受用户输入。对于具有触摸屏显示器的手持设备,当设备解锁时,显示器可能会亮起并且可以接受来自用户的触摸输入。当触摸屏设备锁定时,显示器可能较暗,并且触摸屏显示器将不接受触摸输入。因此,计算设备的锁定状态可以提供用户已经与计算设备交互的证据。
[2231] 在一些具体实施中,监视器组40_106可以被配置为从应用管理器API 40_136收集应用程序上下文信息。例如,上下文监视器40_108可以从应用程序管理器API 40_136接收描述哪些应用程序当前在计算设备上运行、应用程序已经运行多长时间、应用程序何时被调用,以及/或者哪些应用程序当前是焦点应用程序(例如,在前台中、在显示器上可见)的信息。
[2232] 在一些具体实施中,监视器组40_106可以被配置为从蓝牙API 40_138收集蓝牙上下文信息。例如,上下文监视器40_108可以从蓝牙API 40_138接收描述活动蓝牙连接的信息,包括连接到计算设备的蓝牙设备的标识和类型、何时建立了连接,以及计算设备已连接到蓝牙设备多久(例如,持续时间)。
[2233] 在一些实施方式中,监视器组40_106可被配置为从耳机API 40_138收集耳机接口信息。例如,上下文监视器40_108可以从耳机API 40_138接收描述有线耳机或头戴式耳机(或其他设备)当前是否连接到计算设备的耳机接口的信息。在一些具体实施中,监视器组40_106可以从耳机API 40_138接收关于连接到耳机接口的设备的类型的信息。
[2234] 在一些具体实施中,监视器组40_106可以被配置为从其他设备状态API 40_142收集其他上下文信息。例如,上下文监视器40_108可以从其他状态API 40_138接收描述WiFi连接、电话连接、应用程序使用、日历事件、照片、媒体使用信息、电池充电状态和/或可以用于描述或推断计算设备的当前内部和/或外部上下文的信息。
[2235] 在一些具体实施中,可以根据需要将监视器组40_106动态加载到上下文守护进程40_102中。例如,当上下文守护进程40_102需要位置上下文信息(例如,客户端已请求位置信息)时,上下文守护进程40_102可以将位置特定的监视器组40_106加载到监视器组40_
104中。加载后,监视器组40_106中的上下文监视器40_108将开始收集当前位置特定的上下文。通过根据需要加载监视器组40_106,上下文守护进程40_102可以节省计算设备的系统资源,诸如存储器和电池电量。在一些具体实施中,监视器组40_106可以是外部进程,诸如报告客户端40_124。上下文守护进程40_102可以根据需要调用外部进程监视器组40_106来收集上下文信息。例如,上下文守护进程40_102可以响应于接收到回调请求而加载或调用监视器组40_106,如下所述。
[2236] 在一些具体实施中,上下文守护进程40_102可以从报告客户端40_124接收上下文信息。例如,报告客户端40_124(上下文客户端)可以是在计算设备上运行的生成或收集上下文信息并将上下文信息报告给上下文守护进程40_102的任何软件。例如,在计算设备上运行的地图应用程序可以使用位置API 40_132来获得位置信息,以确定如何将用户从起始位置路由到目的地位置。除了确定该路线之外,地图应用程序可以将从位置API 40_132获得的位置信息报告给上下文守护进程40_102。因此,虽然报告客户端40_124不是为了收集和报告上下文信息诸如监视器组40_106而构建的,但是报告客户端40_124可以被配置为在报告客户端40_124在执行其主要功能的过程中获得上下文信息时报告上下文信息。
[2237] 在一些具体实施中,上下文守护进程40_102可以包括当前上下文40_112。例如,当前上下文40_112可以是从监视器组40_104(例如,监视器组40_106)和/或报告客户端40_124接收的上下文信息的内存储存库。当监视器组40_104和/或报告客户端40_124将上下文信息报告给上下文守护进程40_102时,上下文守护进程40_102可以利用新接收的上下文信息来更新当前上下文40_112。因此,当前上下文40_112可以包括描述计算设备的当前上下文的上下文信息(例如,上下文项)。
[2238] 图2A和图2B示出了示例性当前上下文40_200和40_250。图2A示出了可以组成当前上下文40_200的上下文项的实施例。例如,当前上下文40_200(例如,当前上下文40_112)可以包括计算设备在时间T的上下文信息。例如,当前上下文40_200可以包括表示当前锁定状态(假)的上下文项。当前上下文40_200可以包括表示耳机接口的插入状态的上下文项(假)。当前上下文40_200可以包括表示电池的充电状态的上下文项(假)。当前上下文40_200可以包括表示蓝牙收发器的连接状态的上下文项(假)。当前上下文40_200可以包括识别当前是计算设备焦点的应用程序(社交应用程序)的上下文项。例如,可以从监视器组40_
106和/或从报告客户端40_124接收当前上下文40_200中所示的上下文信息。
[2239] 图40_2B示出了被添加到当前上下文40_250的新上下文项的实施例。当前上下文40_250(当前上下文40_112)可以包括计算设备在稍后的时间T'的上下文信息。例如,当前上下文40_250包括识别计算设备的当前位置的新上下文项。当新位置监视器组40_106被加载到上下文守护进程40_102中并且开始向上下文守护进程40_102报告位置上下文信息时,可以添加新位置上下文项。例如,可以响应于来自上下文客户端的对位置信息的请求来加载新位置监视器组40_106。
[2240] 回调请求
[2241] 参考图40_1,在一些具体实施中,上下文守护进程40_102可以暴露API,该API允许计算设备上运行的上下文客户端软件访问(例如,查询、查看等)当前上下文40_112中的信息。在一些具体实施中,上下文守护进程40_102可以从请求客户端40_126(上下文客户端)接收到在上下文守护进程40_102检测到特定上下文时回调请求客户端40_126的请求。例如,请求客户端40_126可以向上下文守护进程40_102发送回调请求。回调守护进程40_102可以将回调请求信息存储在回调注册表40_114中。回调注册表40_114可以是回调信息的内存储存库。例如,回调请求可以指定用于通知请求客户端40_126的谓词(例如,上下文条件)。回调请求可以包括请求客户端40_126的客户端标识符。
[2242] 在一些具体实施中,当接收回调请求时,回调注册表40_114可以生成用于该回调请求的唯一标识符,并将回调请求标识符、客户端标识符和回调谓词存储在回调谓词数据库40_116中。上下文守护进程40_102可以响应于接收到回调请求将回调请求标识符返回给请求客户端40_126。在当前上下文40_112中的上下文信息满足谓词时,上下文守护进程40_102将通知请求客户端40_126。例如,回调通知可以包括回调请求标识符,使得请求客户端
40_126可以确定与该通知相对应的回调请求。例如,请求客户端40_126可以将许多回调请求注册到上下文守护进程40_102。当回调守护进程40_102向请求客户端40_126发送回调通知时,请求客户端40_126可以使用回调请求标识符来确定回调通知与哪个回调请求有关。
[2243] 在一些具体实施中,上下文守护进程40_102可以响应于从请求客户端40_126接收到回调请求来加载监视器组40_106。例如,上下文守护进程40_102可以支持监视器组40_106的延迟初始化。换句话说,上下文守护进程40_102可以在需要服务回调请求时加载并初始化监视器组40_106。例如,如果没有客户端对位置信息感兴趣,则上下文守护进程40_102可能不加载位置监视器组40_106,使得不会浪费系统资源(例如,电池、存储器等)来监视不需要的上下文项。然而,当接收到对位置上下文项的回调请求时,内容守护进程40_102可以加载、初始化或调用与该位置上下文项相关联的监视器组40_106并且开始接收关于计算设备的位置的上下文信息。
[2244] 在一些具体实施中,监视器组40_106可以是上下文守护进程40_102的软件插件。例如,监视器组40_106可以是可以被动态加载到上下文守护进程40_102中并被执行以监视上下文信息的软件代码(例如,库、目标代码、java jar文件等)。在一些具体实施中,监视器组40_106可以是上下文守护进程40_102外部的单独进程。例如,监视器组40_106可以是上下文守护进程40_102可以调用以监视和报告上下文信息的独立可执行文件。
[2245] 图40_3示出了示例性回调谓词数据库40_300。例如,谓词数据库40_300可以对应于图1的谓词数据库40_116。在一些具体实施中,谓词数据库40_300中的每个条目40_302至40_316可以包括回调请求标识符。例如,当上下文守护进程40_102从请求客户端40_126接收到回调请求时,上下文守护进程40_102可以为为该回调请求生成唯一的请求标识符。如上所述,上下文守护进程40_102可以响应于回调请求将回调请求标识符返回给请求客户端
40_126。上下文守护进程40_102可以将生成的回调请求标识符与回调数据库中的客户端标识符和回调谓词相关联。当上下文守护进程40_102向请求客户端40_126发送回调通知时,上下文守护进程40_102可以在该通知中包括回调标识符,使得请求客户端40_126可以确定上下文守护进程40_102为什么发送回调通知。例如,请求客户端40_126可以向上下文守护进程40_102发送多个回调请求。请求客户端40_126可以基于回调请求标识符确定上下文守护进程40_102正在根据哪个回调请求发送通知。
[2246] 在一些具体实施中,谓词数据库40_300中的每个条目40_302至40_316可以包括客户端标识符和回调谓词。客户端标识符可以对应于被要求当计算设备的当前上下文满足由请求客户端40_126指定的相应谓词时收到通知(例如,被回调)的客户端。在一些具体实施中,客户端标识符可以由配置成在计算设备上启动(例如,执行、调用等)进程的启动守护进程生成,如下面进一步描述的。例如,条目40_302对应于具有客户端标识符“Client_ID1”的请求客户端40_126,其被要求当计算设备的当前上下文指示设备被锁定并且焦点应用程序是音乐应用程序时收到通知。换句话说,对应于客户端标识符“Client_ID1”的上下文客户端(例如,请求客户端40_126)指定了用于通知(例如,回调)上下文客户端是设备被锁定并且用户当前正在使用的应用程序是音乐应用程序的谓词。例如,由请求客户端40_126指定的谓词可以识别由逻辑(例如布尔)运算符分隔的一个或多个上下文条件(例如,硬件状态值、软件状态值、导出的上下文等)。当计算设备的当前状态对应于指定的谓词时,上下文守护进程40_102将通知(例如,回调)请求客户端40_126。
[2247] 在一些具体实施中,谓词可以包括时间分量。例如,谓词可以包括“之前”和/或“之后”操作符(措辞),其允许请求客户端40_126指示在某个事件(例如,状态变化、上下文变化等)之前或之后的时间量,此时请求客户端40_126应收到通知。例如,上下文守护进程40_102可以接收指示安排了在将来特定时间的会议的日历应用程序状态信息。请求客户端40_
126可以注册一个谓词(例如,条目40_316),该谓词指定上下文守护进程40_102应在会议之前三十分钟通知请求客户端40_126。在当前时间对应于会议之前三十分钟时,上下文守护进程40_102可以向请求客户端40_126发送通知。类似地,上下文守护进程40_102可以基于历史上下文信息预测未来事件(例如,用户睡眠周期、用户到家、用户到达办公室、用户醒来等)。例如,请求客户端40_126可以注册一个谓词(例如条目40_306),该谓词指定上下文守护进程40_102应在预测的用户睡眠周期之前三十分钟通知请求客户端40_126。在当前时间对应于预测的睡眠周期之前三十分钟时,上下文守护进程40_102可以向请求客户端40_126发送通知。类似地,请求客户端40_126可以注册一个谓词(例如,条目40_310),该谓词指定上下文守护进程40_102应在基于预测的睡眠周期预测用户醒来之后五分钟通知请求客户端40_126。例如,在当前时间对应于用户醒来之后五分钟时,上下文守护进程40_102可以向请求客户端40_126发送通知。
[2248] 事件流
[2249] 参考图40_1,在一些具体实施中,上下文守护进程40_102可以包括历史知识储存库40_118。例如,虽然当前上下文40_112包括反映计算设备的当前状态的上下文信息,但是如上所述,历史知识40_118包括历史上下文信息。历史知识40_118可以是历史上下文信息的内存储存库。例如,历史知识40_118可以包括表示上下文(例如状态)随时间推移的变化的事件流。例如,在当前上下文40_112中跟踪的每个事件或上下文项具有对应的值。在当前上下文40_112中的上下文项改变值时,旧值可被记录在历史知识40_118中。通过分析状态变化,可以为每个上下文项值计算开始时间、结束时间和持续时间。
[2250] 图40_4是图40_400,其示出了与上下文项相关联的随着时间推移的示例性值变化。例如,图40_400包括指示用于锁定、耳机、充电、蓝牙、焦点应用程序、睡眠和位置上下文项的当前值的当前上下文40_402。图40_400包括用于相同上下文项随时间推移的过往(历史)值40_404。通过分析上下文项值的变化,上下文守护进程40_102可以确定与上下文项相关联的每个值的开始时间、结束时间和持续时间,如下面图5所示。
[2251] 图40_5是示出与上下文项相关联的示例性事件流的图40_500。在一些具体实施中,在图40_4的图40_400中表示的每个状态变化可以被转换成数据对象(例如,对象40_502),该数据对象包括描述系统内存在特定状态的持续时间的数据和与该状态相关联的元数据。在一些具体实施中,历史监视器40_110可以被配置为将当前和/或历史上下文信息转换成历史事件流对象。例如,当检测到对应于特定监视器组40_106的上下文项的值改变时,历史监视器40_110可以基于该上下文项的先前值来生成历史事件流对象。例如,一些上下文监视器40_106可以被配置为周期性地报告计算设备的软件和/或硬件部件的状态。例如,上下文监视器40_106可以被配置为周期性地报告蓝牙状态信息。报告的蓝牙状态信息可以包括相同状态值的序列,随后是状态改变。例如,上下文监视器40_106可以报告蓝牙的状态是“关、关、关、开”。历史监视器40_110可以组合一系列“关”蓝牙上下文项值、确定“关”值的开始时间和结束时间,以及计算蓝牙部件处于“关”状态有多长时间。
[2252] 在一些具体实施中,历史监视器40_110可以收集事件流对象的附加信息(例如,元数据)。例如,继续上述蓝牙实施例,历史监视器40_110可以确定蓝牙上下文项具有“开”值并从蓝牙API 40_138请求额外信息。例如,历史监视器40_110可以从蓝牙API 40_138接收标识连接到计算设备的蓝牙设备的类型的信息、所使用的蓝牙协议、通过蓝牙连接传输的数据量,和/或与蓝牙连接相关的任何其他信息。
[2253] 在另一实施例中,虽然上下文监视器40_108可以被配置为从电话API收集当前上下文信息(例如,呼叫信息)(例如,所呼叫的电话号码、发起呼叫的时间、终止呼叫的时间等),历史监视器40_110可以从联系人API(例如,所呼叫的人的姓名等)或呼叫历史API(例如,被叫的人的姓名,呼叫的持续时间等)收集呼叫的事件流元数据,并且添加该附加信息到电话上下文项的事件流对象。因此,历史监视器40_110可以被配置为生成或收集关于历史事件的附加数据,以使历史事件(例如,事件流、事件流对象)对于历史参考和预测未来事件更有价值。历史监视器40_110收集或生成事件流元数据之后,历史监视器40_110可以将事件流元数据存储在历史知识储存库40_118中。在一些具体实施中,上下文守护进程40_102和/或历史监视器40_110可以将事件流对象(例如,包括开始时间、停止时间、持续时间和/或元数据)存储在历史数据库40_120中。
[2254] 图6示出了示例性历史事件流数据库40_600。例如,历史事件流数据库可以对应于历史数据库40_120。示例性历史事件流数据库40_600表示存储在历史数据库40_600中的历史事件流数据的概念描述,并且可能不反映历史数据库40_600的实际实现。本领域的技术人员将认识到可以采用许多不同的方式来组织和存储数据库40_600中的历史事件流数据。
[2255] 在一些具体实施中,历史数据库40_600可以包括事件流表40_602至40_614。例如,每个事件流表40_602至614可以对应于单个事件流(例如,上下文项)。每个事件流表(例如,表40_602)可以包括对应于事件流中的事件流对象的记录(例如,40_616、40_618等)。例如,“锁定”事件流表40_602可以包括描述“锁定”事件流的锁定(或解锁)状态的事件流对象记录40_616、40_618。事件流对象记录可以包括具有指示事件何时开始的时间戳(TS)值的“开始时间”字段。事件流对象记录可以包括指示事件的持续时间(D)的“持续时间”字段。事件流对象记录可以包括描述与事件相对应的状态变化的状态信息(例如,“锁定:假”指示设备未被锁定)。
[2256] 在一些具体实施中,事件流对象记录可以包括描述与事件相关联的其他数据的元数据。例如,当生成历史事件流数据时,历史监视器40_110可以收集和/或生成描述在事件发生时系统状态的附加属性或周围环境的元数据。例如,对于“充电”事件流40_606,历史监视器40_110可以收集与充电事件开始和/或结束时的电池充电状态相关的信息(例如,百分比电量、充电水平等)。对于蓝牙事件流40_608,历史监视器40_110可以收集与连接到计算设备的蓝牙设备的类型和/或传输到蓝牙设备的媒体的源相关的信息。对于位置事件流40_612,历史监视器40_110可以将原始位置数据(例如,网格坐标、GNSS数据、小区塔标识数据、Wi-Fi网络标识符等)转换为人类用户可以理解的位置词语(例如,家、公司、学校、杂货店、餐厅名称等)。
[2257] 在一些具体实施中,历史监视器40_110可以生成或获得比上下文监视器40_108更准确的位置信息。例如,上下文监视器40_108可以在没有太多(如果有的话)处理的情况下提供当前(例如,瞬时)位置信息。由于定位技术存在各种问题(例如,信号多路径问题,难以连接到足够的卫星等),该初始位置数据可能不准确。给定附加时间和附加数据,可以更准确地确定位置。由于历史监视器40_110处理历史数据(而不是当前数据或瞬时数据),所以历史监视器40_110可以花费时间从例如位置API 40_132获得更准确的位置信息。描述事件的该附加元数据可以存储在历史数据库40_600的事件流记录中。
[2258] 在一些具体实施中,历史监视器40_110可以在初始化监视器组40_106之后获得关于上下文项的历史信息。例如,如果监视器组40_106配置为监视位置上下文,则上下文守护进程40_102可以根据需要加载、调用和/或初始化监视器组40_106,如上所述。当监视器组40_106被初始化时,上下文监视器40_108将收集位置上下文项的上下文信息。然而,当监视器组40_106初始化之后,由于该位置上下文项以前没有被监视,所以没有该位置上下文项的历史数据。因此,在一些具体实施中,历史监视器40_110可以从位置API 40_132请求位置历史数据,并且基于从位置API 40_132接收到的位置历史数据生成历史上下文信息(例如,事件流、事件流对象等)。
[2259] 事件流隐私
[2260] 在一些具体实施中,每个事件流可以具有相应的隐私政策。在一些具体实施中,事件流可以配置有默认隐私政策。在一些具体实施中,管理员用户可以向计算设备提供输入以配置每个事件流(例如,每个上下文项)的隐私政策。例如,对应于各个事件流的隐私政策可随着时间改变。
[2261] 在一些具体实施中,上下文项的事件流可以具有防止维护上下文项的历史信息的隐私政策。例如,对应于位置上下文项的事件流可以具有不允许维护计算设备的位置的历史记录的政策。当这种“无历史”政策被配置用于事件流时,历史监视器40_110将不会生成事件流的历史上下文信息(例如,事件流对象)。
[2262] 在一些具体实施中,上下文项的事件流可以具有指定历史上下文信息在被删除之前应该存储的时间量(例如,生存时间)的隐私政策。例如,对应于“焦点应用”上下文项的事件流可以具有指定比指定时间量(例如,3天、1个月等)更长的“焦点应用”上下文项的事件流数据应被删除的生存时间政策。上下文守护进程40_102可以周期性地对事件流执行维护,以删除比生存时间政策中指定的时间量更长的事件流对象。
[2263] 在一些具体实施中,上下文项的事件流可以具有时间戳解析政策。例如,当时间戳解析政策生效时,历史监视器40_110使与事件流中的事件(例如,状态改变)相关联的精确时间戳不那么精确。例如,位置改变事件可以具有精确到毫秒的时间戳。当解析政策应用于事件流时,历史监视器40_110可以使用精确到秒或分的不那么精确的时间戳。例如,通过使用位置事件流的不那么精确的时间戳,系统可以通过防止上下文客户端确定用户移动的精确时间来保护用户隐私。
[2264] 在一些具体实施中,上下文项的事件流可以具有存储位置政策。例如,计算设备可以配置有对应于计算设备的安全状态的不同存储位置。例如,计算设备可以具有仅当计算设备被解锁(例如,用户已经输入解锁设备的密码)时才能访问的“A”类数据库。计算设备可以具有在重启或启动计算设备之后可以在第一次解锁(例如,无需后续解锁)之后访问的“B”类数据库。计算设备可以具有可以随时(例如,不管密码输入)访问的“C”类数据库。事件流的存储位置隐私政策可以识别将相应的事件流数据存储在哪类数据库中。
[2265] 高效上下文监视
[2266] 在一些具体实施中,计算设备可以被配置为当软件未被使用时终止在计算设备上运行的软件。例如,计算设备的操作系统可以被配置为识别空闲进程。操作系统可以关闭(例如,终止、禁止)空闲进程,以释放内存或节省电池资源以供系统的其他组件(例如,软件、硬件)使用。然而,如果操作系统终止空闲上下文守护进程40_102,则上下文守护进程40_102将不再能够监视系统的当前上下文,并且将不能够通知请求客户端40_126上下文改变。类似地,如果操作系统终止空闲请求客户端40_126,则请求客户端40_126将不会运行以从上下文守护进程40_102接收回调通知。以下段落描述了可以重新启动上下文守护进程
40_102和/或请求客户端40_126以处理上下文监视和/或回调操作的各种机制。
[2267] 图40_7是用于向请求客户端40_126提供上下文回调通知的示例性系统40_700的框图。例如,系统40_700可以对应于上图1的系统40_100。在一些具体实施中,系统40_700可以包括启动守护进程40_702。例如,启动守护进程40_702可以被配置为启动(例如,调用、启动、执行、初始化等)计算设备上的应用程序、实用程序、工具和/或其他进程。启动守护进程40_702可以被配置为监视进程并终止计算设备上的空闲进程。
[2268] 在一些具体实施中,启动守护进程40_702可以启动请求客户端40_126。例如,在计算设备上运行的进程(例如,操作系统、用户应用程序等)可以调用请求客户端40_126。启动守护进程40_702可以接收对应于调用的消息,并且可以启动请求客户端40_126。在启动请求客户端40_126时,启动守护进程40_702可以向请求客户端40_126提供可用于识别计算设备内的请求客户端40_126的客户端标识符40_704。
[2269] 在一些具体实施中,客户端标识符40_704可以是启动守护进程40_702产生并由启动守护进程40_702分配给请求客户端40_126的令牌(例如,加密数据)。启动守护进程40_702可以存储在客户端标识符数据库40_706中对应于(例如,定义)请求客户端40_126的令牌和软件包之间的映射。可以生成令牌,使得令牌本身不识别相应的请求客户端40_126。然而,当启动守护进程40_702稍后接收到令牌时,启动守护进程40_702可以使用令牌来查找客户端标识符数据库40_706中相应的请求客户端40_126。因此,启动守护进程40_702可以使用令牌作为索引来在令牌对计算设备内的其他软件不透明时识别相应的请求客户端。
[2270] 在一些具体实施中,客户端标识符40_704可以是对应于请求客户端40_126的特定实例的实例标识符。在一些具体实施中,客户端标识符40_704可以在请求客户端40_126的所有实例中识别软件包(例如,应用程序、实用程序、工具等)。例如,当启动守护进程40_702启动请求客户端40_126的第一实例时,客户端标识符40_704可以识别请求客户端40_126的第一实例。当请求客户端40_126被终止(例如,因为请求客户端40_126已变为空闲)时,相同的客户端标识符40_704可用于识别由启动守护进程40_702启动的请求客户端40_126的后续实例。启动守护进程40_702可以使用与请求客户端40_126类似的机制来启动上下文守护进程40_102。
[2271] 在一些具体实施中,请求客户端40_126可以向上下文守护进程40_102发送回调请求40_708。例如,如上所述,回调请求40_708可以包括客户端标识符40_704和回调谓词。如上所述,在接收到回调请求40_708时,上下文守护进程40_102可以存储客户端标识符40_704和谓词数据库40_116中的谓词。
[2272] 在一些具体实施中,当请求客户端40_126向上下文守护进程40_102发送回调请求40_708时,请求客户端在请求客户端40_126和上下文守护进程40_102之间建立通信会话
40_709。在一些具体实施中,系统40_700可以被配置为使得请求客户端40_126和上下文守护进程40_102之间的通信会话只能通过请求客户端40_126来发起。例如,上下文守护进程
40_102可能不能够直接建立与请求客户端40_126的通信会话。因此,在一些具体实施中,上下文守护进程40_102只能在由请求客户端40_126建立的通信会话40_709仍然打开时与请求客户端40_126进行通信(例如,向该请求客户端发送回调通知)。
[2273] 在一些具体实施中,上下文守护进程40_102可以收集关于在计算设备上发生的事件的上下文信息。例如,如上所述,上下文守护进程40_102可以从监视器组40_106和报告客户端40_124收集上下文信息。在一些具体实施中,上下文守护进程40_102可以将当前上下文存储在上下文数据库40_712中。例如,上下文守护进程40_102可以将当前上下文存储在上下文数据库40_712中,以便于将上下文信息恢复为上下文守护进程40_102。当上下文守护进程40_102被终止并重新启动时,上下文守护进程40_102可以在上下文守护进程40_102等待来自监视器组40_106的上下文更新时从上下文数据库40_712中恢复当前上下文(例如,现在的旧上下文)。
[2274] 在一些具体实施中,上下文守护进程40_102可以确定当前上下文是否对应于从请求客户端40_126接收到的谓词。例如,当获得更新当前上下文(例如,改变上下文项的状态)的新上下文数据时,上下文守护进程40_102可以将由回调注册表40_114或谓词数据库40_116中的上下文守护进程40_102存储的回调谓词与当前上下文40_112中的上下文项进行比较,以确定当前上下文是否匹配(对应于)由谓词指定的条件。在当前上下文与由请求客户端40_126注册的谓词匹配时,上下文守护进程40_102可以向请求客户端40_126发送通知
40_701。例如,如上所述,通知40_701可以识别先前由请求客户端40_126向上下文守护进程
40_102发送的回调请求。因此,当上下文守护进程40_102检测到请求客户端40_126感兴趣的当前上下文时,上下文守护进程40_102可以通知(例如,回调)请求客户端40_126。
[2275] 图40_8A和图40_8B是示出重新启动已被终止的请求客户端的示例性系统40_700的框图。例如,在图8A中,系统40_700已经确定请求客户端40_126是空闲的并且已经终止请求客户端40_126(例如,请求客户端40_126的虚线轮廓指示终止)。在图8A中,上下文守护进程40_102仍在运行。然而,由于请求客户端40_126已被终止,因此通信会话40_709也被终止。
[2276] 图40_8B是示出使用系统40_700重新启动请求客户端40_126的示例性机制的框图。继续图8A的实施例,上下文守护进程40_102可以接收与由请求客户端40_126注册的回调谓词匹配的上下文信息。响应于确定上下文信息与回调谓词匹配,上下文守护进程40_102可以尝试通知请求客户端40_126。在尝试通知请求客户端40_126时,上下文守护进程
40_102可以确定上下文守护进程40_102和请求客户端40_126之间的通信会话40_709已被终止。响应于确定通信会话40_709被终止,上下文守护进程40_102可以请求启动守护进程
40_702重新启动请求客户端40_126。例如,上下文守护进程40_102可以向被请求重新启动请求客户端40_126的启动守护进程40_702发送从请求客户端40_126接收到的客户端标识符40_704。
[2277] 在一些具体实施中,在接收到客户端标识符40_704时,启动守护进程40_702可以启动请求客户端40_126。例如,启动守护进程40_702可以确定上下文守护进程40_102被授权以基于由上下文守护进程40_102提供的客户端标识符来请求重新启动请求客户端40_126。例如,如果请求客户端40_126先前没有从上下文守护进程40_102请求回调并且没有向上下文守护进程40_102提供客户端标识符40_704,则上下文守护进程40_102将不具有客户端标识符40_704(例如,令牌)。
[2278] 在一些具体实施中,在重新启动时,请求客户端40_126可以向上下文守护进程40_102发送回调请求40_708。例如,请求客户端40_126可以通过向上下文守护进程40_102发送回调请求40_708来在请求客户端40_126和上下文守护进程40_102之间建立新的通信会话
40_802。一旦建立通信会话40_802,上下文守护进程40_102可以向请求客户端40_126发送通知40_710以通知请求客户端40_126由请求客户端40_126提供的回调谓词已被当前上下文所满足。
[2279] 图40_9A和图40_9B是示出重新启动已被终止的上下文守护进程的示例性系统40_700的框图。例如,在图9A中,系统40_700已经确定上下文守护进程40_102是空闲的并且已经终止上下文守护进程40_102(例如,上下文守护进程40_102的虚线轮廓指示终止)。在图
9A中,请求客户端40_126仍在运行。然而,由于上下文守护进程40_102已被终止,因此通信会话40_709也被终止。
[2280] 图40_9B是示出使用系统40_700重新启动上下文守护进程40_102的示例性机制的框图。继续图9A的实施例,系统40_700可以响应于从请求客户端40_126接收到针对上下文守护进程40_102的消息来重新启动上下文守护进程40_102。
[2281] 在一些具体实施中,请求客户端40_126可以检测到请求客户端40_126和上下文守护进程40_102之间的通信会话40_709已被终止。响应于检测到通信会话40_709已被终止,请求客户端40_126可以通过向终止的上下文守护进程40_102发送消息来重新建立通信会话。在一些具体实施中,请求客户端可以使用消息系统40_902向上下文守护进程40_102发送消息。系统40_700的消息系统40_902可以确定上下文守护进程40_102未运行,并且向启动守护进程40_702发送消息以使启动守护进程40_702重新启动上下文守护进程40_102。响应于接收到消息,启动守护进程40_702可以重新启动上下文守护进程40_102。一旦上下文守护进程40_102正在运行,消息系统40_902可以向上下文守护进程40_102发送来自请求客户端40_126的消息,从而重新建立请求客户端40_126和上下文守护进程40_102之间的通信信道。
[2282] 在一些具体实施中,在重新启动时,上下文守护进程40_102可以恢复其回调注册表40_114和当前上下文40_112。例如,回调注册表40_114可以从谓词数据库40_116中恢复。当前上下文40_112可以从上下文数据库40_712中恢复。在重新启动后,上下文守护进程40_
102可以加载收集上下文信息所需的监视器组40_106,以便为从谓词数据库40_116中恢复的回调请求服务。如上所述,上下文守护进程40_102可以利用加载的监视器组40_104报告的上下文信息来更新当前上下文40_112,并且当前上下文40_112中的上下文项与由请求客户端40_126注册的谓词匹配时,通知请求客户端40_126。
[2283] 图40_10A和图40_10B是示出重新启动已被终止的上下文守护进程和请求客户端的示例性系统40_700的框图。例如,在图40_10A中,系统40_700已经确定上下文守护进程40_102和请求客户端40_126都是空闲的并且已经终止上下文守护进程40_102和请求客户端40_126(例如,虚线轮廓指示终止)。在图40_10A中,由于上下文守护进程40_102和请求客户端40_126都被终止,因此通信会话40_709被终止。
[2284] 图40_10B是示出使用系统40_700重新启动上下文守护进程40_102和请求客户端40_126的示例性机制的框图。继续图40_10A的实施例,系统40_700可以响应于从干预客户端40_1002接收到针对终止的上下文守护进程40_102的消息来重新启动上下文守护进程
40_102。例如,类似于图9B中的请求客户端40_126,干预客户端40_1002可以向现在终止的上下文守护进程40_102发送消息。消息系统40_902可以接收消息并确定上下文守护进程
40_102未运行。响应于确定上下文守护进程40_102未运行,消息系统40_902可以向启动守护进程40_702发送消息以使启动守护进程40_702重新启动上下文守护进程40_102。
[2285] 在一些具体实施中,在重新启动时,上下文守护进程40_102可以从谓词数据库40_116中恢复其回调注册表40_114。在重新启动时,上下文守护进程40_102可以从上下文数据库40_712中恢复其当前上下文40_112,并且可以开始收集更新的上下文信息,如上所述。当上下文守护进程40_102确定注册的谓词与当前上下文信息匹配时,上下文守护进程40_102可以尝试通知请求客户端40_126。当上下文守护进程40_102确定在请求客户端40_126和上下文守护进程40_102之间不存在通信会话40_709时,上下文守护进程40_102可以请求启动守护进程40_702重新启动请求客户端40_126,使得可以重新建立通信会话,并且上下文守护进程40_102可以回调请求客户端40_126,如上文参考图8B所述。
[2286] 图40_11是被配置为基于由启动守护进程40_702接收到的设备状态信息来重新启动请求客户端40_126和/或上下文守护进程40_102的示例性系统40_1100的框图。例如,系统40_1100可以对应于系统40_700,并且可以执行与系统40_700类似的功能,如上所述。
[2287] 在一些具体实施中,启动守护进程40_702可以被配置为接收设备状态40_1104。例如,设备状态40_1104可以是由计算设备的各种硬件和/或软件组件生成的低级具体状态数据。例如,启动守护进程40_702可以接收包括由计算设备的位置服务组件(例如,GPS接收器、Wi-Fi或蜂窝数据组件等)生成的位置数据的设备状态40_1104。在一些具体实施中,设备状态40_1104可以指示位置改变,但是可能不提供高级位置信息(例如,人类可读标签)。
[2288] 例如,请求客户端40_126可以向上下文守护进程40_102发送具有基于位置的谓词的回调请求40_708。该谓词可以指定请求客户端40_126应被通知计算设备的当前位置(例如,当前上下文)是用户的家(例如,位置=家)。为了确定设备位置是用户的家,上下文守护进程40_102和/或监视器组40_106可以从位置API 40_132以及在用户设备上运行、定义“家”的位置(例如,定义与“家”标签相关联的地理位置)的联系人应用程序收集信息。通过将来自位置API 40_132的位置信息与联系人应用程序中“家”的定义进行比较,上下文守护进程40_102可以确定上下文项“位置”何时等于“家”。如该实施例所示,确定由请求客户端40_126定义的位置谓词(例如,“家”)被满足取决于将当前地理位置数据(例如,网格坐标)与将标签(例如,“家”)与地理位置相关联的用户数据组合起来。因此,抽象位置上下文“家”可以通过分析由计算设备的位置服务和联系人应用程序生成的具体状态数据来确定。
[2289] 在一些具体实施中,当上下文守护进程40_102从请求客户端40_126接收到回调请求40_708时,上下文守护进程40_102可以向启动守护进程40_702发送设备状态请求40_1102以注册对计算设备的特定组件的状态改变的兴趣。当启动守护进程40_702接收到设备状态40_1104时,启动守护进程40_702可以确定指定的组件已经发生状态改变,并且通知上下文守护进程40_102和/或请求客户端40_126。
[2290] 在一些具体实施中,设备状态请求40_1102可以指定当指定的状态改变发生时,启动守护进程40_702应通知上下文守护进程40_102。例如,当请求客户端40_126向上下文守护进程40_102发送指定基于位置的回调谓词的回调请求时,上下文守护进程40_102可以向启动守护进程40_702发送设备状态请求40_1102,以请求当启动守护进程40_702检测到位置组件状态改变时,启动守护进程40_702通知上下文守护进程40_102。
[2291] 在一些具体实施中,设备状态请求40_1102可以指定当指定的状态改变发生时,启动守护进程40_702应通知请求客户端40_126。例如,当请求客户端40_126向上下文守护进程40_102发送指定基于位置的回调谓词的回调请求时,上下文守护进程40_102可以向启动守护进程40_702发送设备状态请求40_1102,以请求当启动守护进程40_702检测到位置组件状态改变时,启动守护进程40_702通知请求客户端40_126。在一些具体实施中,设备状态请求40_1102可以包括对应于请求客户端40_126的客户端标识符40_704,使得启动守护进程40_702可以确定通知哪个请求客户端40_126。
[2292] 图40_12A和图40_12B是示出使用启动守护进程重新启动上下文守护进程的示例性系统40_1100的框图。例如,在图40_12A中,系统40_1100已经确定上下文守护进程40_102和请求客户端40_126都是空闲的并且已经终止上下文守护进程40_102和请求客户端40_126(例如,虚线轮廓指示终止)。在图40_12A中,由于上下文守护进程40_102和请求客户端
40_126都被终止,因此通信会话40_709也被终止。
[2293] 图40_12B是示出使用系统40_1100的启动守护进程40_702重新启动上下文守护进程40_102的示例性机制的框图。如上文参考图40_11所述,上下文守护进程40_102可以从请求客户端40_126接收回调请求,该回调请求指定向请求客户端40_126发送来自上下文守护进程40_102的通知40_710的上下文谓词。响应于接收到谓词,上下文守护进程40_102可以向启动守护进程40_702发送设备状态请求40_1102,以注册与谓词相关联的设备状态改变的兴趣。例如,如果请求客户端40_126指定基于位置的回调谓词,则当计算设备的位置改变时,上下文守护进程40_102可以要求启动守护进程40_702通知上下文守护进程40_102。当启动守护进程40_702接收到指示位置改变的设备状态40_1104时,启动守护进程40_702可以尝试通知上下文守护进程40_102。继续图40_12A的实施例,由于上下文守护进程40_102未在计算设备上运行,因此启动守护进程40_702可以确定上下文守护进程40_102未运行并启动(例如,重新启动、发起、调用、执行等)上下文守护进程40_102。一旦重新启动上下文守护进程40_102,上下文守护进程40_102可以请求启动守护进程40_702重新启动请求客户端40_126,如上文参考8B所述。
[2294] 图40_13A和图40_13B是示出使用启动守护进程重新启动请求客户端40_126的示例性系统40_1100的框图。例如,在图40_13A中,系统40_1100已经确定上下文守护进程40_102和请求客户端40_126都是空闲的并且已经终止上下文守护进程40_102和请求客户端
40_126(例如,虚线轮廓指示终止)。在图40_13A中,由于上下文守护进程40_102和请求客户端40_126都被终止,因此通信会话40_709也被终止。
[2295] 图40_13B是示出使用系统40_1100的启动守护进程40_702重新启动请求客户端40_126的示例性机制的框图。如上文参考图40_11所述,上下文守护进程40_102可以从请求客户端40_126接收回调请求,该回调请求指定向请求客户端40_126发送来自上下文守护进程40_102的回调通知40_710的上下文谓词。响应于接收到谓词,上下文守护进程40_102可以向启动守护进程40_702发送设备状态请求40_1102,以注册与代表请求客户端40_126的谓词相关联的设备状态改变的兴趣。例如,当注册与谓词相关联的设备状态改变的兴趣时,上下文守护进程40_102可以向启动守护进程40_702提供客户端标识符40_704。例如,如果请求客户端40_126指定基于位置的回调谓词,则当计算设备的位置改变时,上下文守护进程40_102可以要求启动守护进程40_702通知请求客户端40_126。当启动守护进程40_702接收到指示位置改变的设备状态40_1104时,启动守护进程40_702可以尝试通知请求客户端
40_126(例如,由客户端标识符40_704识别)。继续图40_13A,由于请求客户端40_126未在计算设备上运行,因此启动守护进程40_702可以确定请求客户端40_126未运行并启动(例如,重新启动、发起、调用、执行等)请求客户端40_126。一旦重新启动请求客户端40_126,请求客户端40_126可以通过向上下文守护进程40_102发送消息来使启动守护进程40_702重新启动上下文守护进程40_102,如上文参考图9B所述。
[2296] 预测未来事件
[2297] 在一些具体实施中,上下文守护进程40_102可以基于事件流信息来预测未来事件。例如,上下文守护进程40_102可以分析历史上下文信息(例如,事件流、事件流对象等)以确定历史用户行为模式。上下文守护进程40_102可以基于这些过去的行为模式来预测未来的用户行为。例如,可预测的用户行为可以包括睡眠模式、工作模式、锻炼模式、饮食模式和其他重复的用户行为。上下文守护进程40_102可以基于事件流中反映用户在这些用户活动期间如何与计算设备交互的线索来确定这些用户行为何时发生。
[2298] 为了便于解释,下面的描述将基于历史设备锁定状态事件流数据来描述示例性睡眠预测具体实施。然而,用于睡眠预测的机制也可以用于通过分析其他事件流数据来预测其他用户行为。例如,上下文守护进程40_102可以使用位置数据来推断用户工作模式。上下文守护进程40_102可以使用加速度计数据来推断用户运动模式。上下文守护进程40_102可以使用应用程序数据(例如,在社交媒体软件应用程序上的餐厅登记)来推断用户饮食模式。
[2299] 在一些具体实施中,上下文守护进程40_102可以使用设备锁定状态事件流数据来确定和/或预测用户睡眠模式。例如,如果计算设备(例如,手持设备、智能电话等)长时间(例如,5小时或更长时间)保持锁定,则上下文守护进程40_102可以推断用户正在睡觉。在一些具体实施中,其他事件流信息(例如,加速度计数据、应用程序使用数据等)可以用于确认睡眠模式和/或睡眠预测。在一些具体实施中,上下文守护进程40_102可以在用户从前一天的睡眠醒来之后和在下一个预测的睡眠周期之前的某个时间执行当天的睡眠预测。例如,上下文守护进程40_102可以执行计算以在检测到用户已经从当前睡眠周期醒来之后预测下一个睡眠周期。例如,上下文守护进程40_102可以通过确定“锁定”上下文项的当前值为伪(例如,用户已经解锁设备)并且当前时间在预测的睡眠时间段结束之后,检测到用户已经醒来。
[2300] 未来事件的时隙方式预测
[2301] 在一些具体实施中,上下文守护进程40_102可以执行时隙方式平均来预测未来事件。例如,为了预测确定睡眠用户睡眠模式,上下文守护进程40_102可以分析上述锁定状态事件流。上下文守护进程40_102可以通过将锁定状态事件流划分为前40_28天内的连续24小时时间段来分析锁定状态事件流。上下文守护进程40_102可以将每个24小时时间段划分为96个15分钟时隙。上下文守护进程40_102可以确定每个24小时时间段中每个15分钟的分钟时段的锁定状态。例如,如果计算设备在整个15分钟时隙内保持锁定,则该时隙的锁定状态可为真(例如,1)。如果计算设备在15分钟时隙内解锁,则该时隙的锁定状态可为伪(例如,0)。可将每个24小时时间段内15分钟时隙的锁定状态数据组合,以生成表示前40_28天中每一天的28个数据向量。例如,每个向量(例如,长度为96)可以包括对应于一天内的15分钟时隙中的每一个的96个锁定状态值。然后,上下文守护进程40_102可以在40_28天时间段内平均每个15分钟时隙,以确定用户的历史睡眠模式。
[2302] 图40_14是示出用于预测未来事件的时隙方式平均的实施例的图40_1400。例如,图40_1400示出了使用设备锁定状态来确定睡眠模式并预测未来睡眠时间段。例如,每条水平线表示24小时时间段的锁定状态数据向量。24小时时间段可在t-n至t+n的范围内,其中“t”是对应于用户睡眠周期的大约(例如,推定的、典型的、计算的等)中间的某个时间,并且“n”可以是40_12。例如,如果典型的人从下午10点睡到上午6点,则“t”可以是上午2点。在图40_1400中,“C”表示当天。因此,C-1是昨天,C-2是两天前,C-7是一周前,C-28是四周前。每天具有96个相应的15分钟时隙。例如,图40_1400描绘了对应于上午3:30-3:45、上午5:00-
5:15和上午6:15-6:30的15分钟时隙。虽然在图40_1400上仅示出了三个15分钟时隙以减少图形40_1400上的混乱,但是每个向量具有96个15分钟时隙,并且将对每个24小时时间段内的96个时隙中的每一个执行参考图40_1400上的三个15分钟时隙描述的操作。
[2303] 参考图40_1400上的向量C-1,3:30时隙和5:00时隙中的一个的值(例如,1,真)指示计算设备在整个相应的15分钟时隙期间保持锁定。在6:15时隙期间,零值(例如,0,伪)指示计算设备在15分钟时间段期间的某个时间解锁。例如,上下文守护进程40_102可以推断用户必须已经醒来才能在6:15时隙中解锁计算设备。上下文守护进程40_102可以推断当设备保持锁定长达阈值时间段(例如,5小时)时用户处于睡着状态,如下面进一步描述。
[2304] 为了确定用户将在当天中的每个15分钟时隙期间保持计算设备锁定(并且因此保持睡眠)的概率,上下文守护进程40_102可以平均前28天内的每个15分钟时隙的值,以预测当前24小时时间段中的每个15分钟时隙的值。上下文守护进程40_102可以使用针对当前24小时时间段计算的平均15分钟时隙值,来识别当前24小时中超过设备可能保持锁定的睡眠阈值(例如,5小时)的时间段。例如,在15分钟时隙的平均值高于某个阈值(例如,0.5,40_50%等)的情况下,上下文守护进程40_102可以确定计算设备将在该15分钟时隙内保持锁定。上下文守护进程40_102可以确定具有大于阈值的连续(或大部分连续)的系列15分钟时隙,这些时隙在被组合时超过睡眠阈值时间段。一旦确定该系列15分钟时隙,上下文守护进程40_102可以将该系列15分钟时隙所覆盖的时间段识别为预测的睡眠时间段。
[2305] 在一些具体实施中,上下文守护进程40_102可以在锁定状态数据向量中执行加权平均。例如,可以对每个向量进行加权,使得较旧的锁定状态数据比较新的锁定状态数据对平均值的影响小。在一些具体实施中,上下文守护进程40_102可以在一系列最近几天内(例如,在过去7天的每一天内)执行短期平均,和/或在一系列周内(例如,7天前、14天前、21天前、28天前)执行长期平均。例如,短期平均对于预测每天模式可能更好,而长期平均对于预测用户在一周的特定日期做什么可能更好。例如,如果今天是星期六,则用户在上一个星期六的活动比用户昨天(例如,星期五)的活动可能更好地预测用户今天的行为,特别是在用户星期一至星期五工作的情况下。
[2306] 短期平均
[2307] 在一些具体实施中,上下文守护进程40_102可以使用以下短期加权平均算法来确定设备将在15分钟时隙内保持锁定的概率(PS):
[2308]
[2309] 其中V1对应于C-1,V2对应于C-2,以此类推,V7对应于C-7,并且λ是通过实验确定的值介于0和1之间的权重。例如,短期加权算法可用于计算前七天内每15分钟的加权平均数。
[2310] 长期平均
[2311] 在一些具体实施中,上下文守护进程40_102可以使用以下长期加权平均算法来确定设备将在15分钟时隙内保持锁定的概率(PL):
[2312]
[2313] 其中V7对应于C-7,V14对应于C-14,V21对应于C-21,并且V28对应于C-28,并且“λ”是通过实验确定的值介于0和1之间的权重。例如,长期加权算法可用于计算过去四周内每周的同一天的15分钟的加权平均数。
[2314] 在一些具体实施中,可将短期加权平均算法和长期加权平均算法组合,以生成计算设备将在15分钟时隙内保持锁定的组合(例如,复合、整体等)概率(P),概率(P)如下计算:
[2315]
[2316] 其中“r”是可用于调整长期加权平均数对概率计算的影响的通过实验确定的数(例如,0.5)。
[2317] 比例时隙值
[2318] 图15分钟描绘了示出计算比例时隙值的示例性图15分钟00和15分钟50。例如,不是如上面的描述那样,上下文守护进程40_102为24小时时间段C-n内的每个15分钟时隙分配真(1)和伪(0)值,而是可以确定计算设备在多少个每个15分钟时隙期间被锁定或解锁,并且向表示设备被锁定的时隙内的比例时间量的时隙分配比例值。
[2319] 参考图15分钟00,每个15分钟时隙的阴影区域可以表示设备被锁定的时隙内的时间。例如,设备在整个上午3:30-3:45和上午5:00-5:15时隙期间被锁定。因此,3:30和5:00时隙可以被分配值一(1)。然而,计算设备仅在部分上午6:15-6:30时隙内被锁定。如果计算设备在6:15时隙的前40_10分钟被锁定,则6:15时隙可以被分配值40_10/15或0.67,该值表示设备被锁定的15分钟时隙的比例量,如图15分钟50所示。如果计算设备被反复锁定和解锁(例如,锁定5分钟、解锁2分钟、锁定1分钟、解锁5分钟等),则计算设备可以将锁定的时间段加起来,将解锁的时间段加起来,并计算该计算设备被锁定期间15分钟时隙的比例。在一些具体实施中,可以为24小时时间段(例如,数据向量)内的每个15分钟时隙确定比例值。在一些具体实施中,当计算上述短期和/或长期概率时,可以使用每个15分钟时隙的比例值。
[2320] 生成睡眠曲线
[2321] 图40_16A是示出用于预测未来上下文的示例性方法的图40_1600。例如,图40_16所示的方法可用于预测计算设备的用户的未来睡眠时间段。例如,图40_1600中的每列(例如,列40_1602、列40_1606)可以表示15分钟时隙,如上所述。每个15分钟时隙的值可以由列的高度表示,并且可以对应于时隙的组合加权平均概率(P),如上所述。例如,概率(P)可以在零(例如,0,0%)至一(例如,1,40_100%)的范围内。该概率可以表示例如计算设备将在15分钟时隙期间保持锁定的概率,如上所述。该概率可以基于二进制(例如,0,1)15分钟时隙值来计算。该概率可以基于比例15分钟时隙值来计算。
[2322] 在一些具体实施中,上下文守护进程40_102可以将概率图40_1600转换成表示计算设备的用户的睡眠周期的概率曲线。例如,上下文守护进程40_102可以确定睡眠概率阈值40_1606,以确定哪个15分钟时隙对应于用户的睡眠时间段。在一些具体实施中,睡眠概率阈值40_1606可以动态地确定。例如,给定最小睡眠时间段(例如,5小时、7小时等),上下文守护进程40_102可以确定形成一段连续15分钟时隙的睡眠概率阈值40_1606的值(例如,0.65,40_50%等),该一段连续15分钟时隙至少与最小睡眠时间段一样长并且包括具有超过睡眠概率阈值40_1606的(例如,概率、平均)值的15分钟时隙。换句话说,上下文守护进程
40_102可以上下调整睡眠概率阈值40_1606,直到一系列15分钟时隙在被组合时满足或超过最小睡眠时间段并且具有高于睡眠概率阈值的值。
[2323] 在一些具体实施中,一旦确定睡眠概率阈值40_1606,上下文守护进程40_102可以基于连续的15分钟时隙来确定用户的睡眠时间段40_1608。例如,睡眠时间段40_1608可以对应于连续的15分钟时隙所覆盖的时间段。参考图40_16,睡眠周期可以对应于下午11点开始到上午7点结束的时间段。
[2324] 图40_16B是示出用于将时隙方式概率转换为概率曲线的示例性方法的图40_1650。例如,为了使得能够一致地预测用户的睡眠周期,可能有用的是,生成随着用户入睡而单调递增(例如,增加设备将保持锁定的概率)并且随着用户醒来而单调递减(例如,降低设备将保持锁定的概率)的概率曲线(例如,类似于钟形曲线)。
[2325] 在一些具体实施中,为了生成概率曲线40_1652,上下文守护进程40_102可以使用上面确定的睡眠概率阈值将针对每个15分钟时隙计算的概率(例如,平均数)转换为二进制(例如,1或0)值。例如,睡眠时间段内(例如,高于睡眠阈值40_1606)的15分钟时隙可以被分配值一(1),并且睡眠时间段之外的15分钟时隙可以被分配值零(0)。一旦将二进制值分配给每个15分钟时隙,上下文守护进程40_102可以将曲线(例如,概率曲线40_1652)拟合为二进制值。一旦生成,上下文守护进程40_102可以使用概率曲线40_1652来估计用户将在一天的特定时间和/或在一天中的特定时间段内处于睡眠状态的概率。例如,上下文守护进程40_102可以使用概率曲线40_1652来预测用户未来在何时可能处于睡眠状态。参考图16B,由于图40_1650所表示的计算的睡眠时间段落在下午11点和上午7点之间,因此上下文守护进程40_102可以预测用户未来将在下午11点和上午7点之间处于睡眠状态。例如,如果睡眠预测每天完成(例如,在用户早晨醒来之后),则上下文守护进程40_102可以预测用户将在当天下午11点和上午7点之后之间处于睡眠状态。
[2326] 处理不规则性—异常值和缺失数据
[2327] 在一些具体实施中,上下文守护进程40_102可以被配置为处理历史事件流数据内的异常值数据。在一些具体实施中,上下文守护进程40_102可以被配置为处理一段时间内以其他方式对应于睡眠时间段的异常值15分钟时隙。例如,可能是睡眠时间段候选者的一段时间(例如,具有超过睡眠阈值的值并且在被组合时超过最小睡眠时间段的一段连续15分钟时隙)可以包括不超过睡眠阈值的15分钟时隙。例如,如果最小睡眠时间段为5小时,则睡眠时间段内存在至少二十个15分钟时隙。在存在二十个15分钟时隙的情况下,可能存在十个超过睡眠阈值的时隙,然后是一个不超过睡眠阈值的时隙(例如,异常值),其次是九个超过睡眠阈值的时隙。这种情况的实施例可以参考图40_16看出,其中异常值时隙40_1608不超过睡眠阈值40_1606,并且被超过睡眠阈值40_1606的时隙(例如,40_1604)包围。当在超过睡眠阈值的一段15分钟时隙内存在少数(例如,一个、两个)异常值15分钟时隙时,那么上下文守护进程40_102可以将该异常值15分钟时隙视为犹如其超过睡眠阈值一样,使得可以生成如上所述的睡眠时间段(例如,睡眠曲线)。例如,当确定对应于睡眠时间段的该段连续15分钟时隙时,上下文守护进程40_102可以忽略异常值15分钟时隙。当将15分钟时隙转换为二进制值以生成概率曲线(如图40_16B所示)时,上下文守护进程40_102可以为异常值15分钟时隙分配值一,使得可以生成概率曲线。
[2328] 在一些具体实施中,上下文守护进程40_102可以被配置为在预测睡眠时间段时处理历史事件流内的异常值日期(例如,24小时时间段、历史数据向量等)。例如,在计算短期平均数之前,上下文守护进程40_102可以将前七天的锁定事件数据(例如,历史上下文数据)进行比较。例如,上下文守护进程40_102可以对前七个24小时时间段中的每一个的历史数据向量执行相似性分析。如果该七天中的一天(例如,异常值日期)的数据与其他六天完全不同,则上下文守护进程40_102可以从短期平均计算中去除该异常值日期。例如,15分钟时隙的历史设备锁定状态数据中产生较小的日期间变化可能是正常的。然而,大段锁定数据(例如,对应于用户睡眠时间段)中产生变化是不正常的。上下文守护进程40_102可以通过将历史数据中的日期间模式进行比较并检测所观察到的一天的使用模式(例如,用户行为)不对应于所观察到的本周中其他日期的使用模式,来检测异常值日期。例如,当一段15分钟时隙在其他日期通常被锁定时,上下文守护进程40_102可以确定同一段15分钟时隙在异常值日期(24小时时间段)中被解锁。一旦检测到异常值日期,上下文守护进程40_102可以从上述短期平均计算中省略异常值日期。
[2329] 类似地,在计算长期平均数之前,上下文守护进程40_102可以例如将前四周中的每一周同一天的锁定事件数据(例如,历史上下文数据)进行比较。如果其中一天(例如,异常值日期)的数据与其他四天显著不同,则上下文守护进程40_102可以从长期平均计算中去除该异常值日期。例如,15分钟时隙的历史设备锁定状态数据中产生较小的周间变化可能是正常的。然而,大段锁定数据(例如,对应于用户睡眠时间段)中产生变化是不正常的。上下文守护进程40_102可以通过将历史数据中的周间模式进行比较并检测所观察到的一天的使用模式(例如,用户行为)不对应于所观察到的前几周中同一天的使用模式,来检测异常值日期。一旦检测到异常值日期,上下文守护进程40_102可以从上述长期平均计算中省略异常值日期。
[2330] 在一些具体实施中,上下文守护进程40_102可以基于用户行为模式的变化来检测异常值日期。例如,如果用户通常在下午11点和上午7点之间睡觉,则历史锁定事件数据将指示设备在下午11点和上午7点之间保持(大部分)锁定。然而,在极少数日期,用户可以通宵候学习或工作,因此当天的睡眠时间段可变化为另一个时间段(例如,上午6点至下午12点)。在一些具体实施中,上下文守护进程40_102可以基于历史锁定状态数据来检测睡眠模式的这种变化,并且从平均计算中去除这一天。
[2331] 在一些具体实施中,上下文守护进程40_102可以基于人类行为中已知或普遍认可的限制条件来检测异常值日期。例如,用户可能在周末旅行并且整个周末意外地将计算设备(例如,智能电话)留在家中。在这种情况下,整个周末(例如,两天)设备将保持锁定,从而生成可被上下文守护进程40_102错误地解读为睡眠时间段的一段锁定数据。上下文守护进程40_102可以通过将对应于该段锁定数据的时间段(例如,睡眠时间段)与最大睡眠时间段(例如,12小时、24小时等)进行比较来检测这种情况。例如,最大睡眠时间段可以基于常识(例如,人类睡眠通常不会超过24小时)或基于所观察到的数据(例如,所观察到的最大用户睡眠时间段为10小时)确定。如果该段时间超过最大睡眠时间段,则当执行上述长期和/或短期计算时,上下文守护进程40_102可以忽略对应于该段时间的日期或多个日期。
[2332] 在一些具体实施中,上下文守护进程40_102可以被配置为处理历史事件流中的丢失数据。例如,用户可能在一段时间内关闭计算设备,或者设备在长时间内从外部电源拔出之后可能失去电池电量。当关闭设备时,设备无法收集上下文信息,并且无法生成历史事件流。当再次打开计算设备时,上下文守护进程40_102可以尝试基于对应于关闭设备的时间段的丢失数据来预测未来事件(例如,未来的睡眠时间段)。在这种情况下,上下文守护进程40_102可以确定在该时间段内不存在任何事件(例如,上下文项)数据值,并且当执行上述短期和/或长期平均计算时,忽略(例如,省略)对应于该时间段的日期或多个日期(例如,历史数据向量)。
[2333] 基于预测事件安排活动
[2334] 图40_17示出了包括预测的未来事件的示例性事件流40_1700。例如,使用上述机制,上下文守护进程40_102可以预测未来的睡眠时间段40_1702。在一些具体实施中,预测的未来事件可用于在计算设备内安排活动(例如,上下文回调)。参考图1,请求客户端40_126可以在预测的事件之前请求回调通知。例如,请求客户端40_126可以向上下文守护进程
40_102发送包括谓词的回调请求,该回调请求指定上下文守护进程40_102应在用户入睡前三十分钟通知请求客户端40_126。当接收到回调请求时,上下文守护进程40_102可以在预测睡眠时间段开始之前的30分钟内安排通知。类似地,请求客户端可以向上下文守护进程
40_102发送包括谓词的回调请求,该回调请求指定上下文守护进程40_102应在用户入睡后一小时通知请求客户端40_126。当接收到回调请求时,上下文守护进程40_102可以在预测睡眠时间段开始之后的一小时内安排通知。
[2335] 在一些具体实施中,上下文守护进程40_102可以基于事件的预测时间处的当前上下文来确认对未来事件的预测。例如,如果请求客户端40_126请求上下文守护进程40_102在预测睡眠时间段开始后三十分钟通知请求客户端40_126,则上下文守护进程40_102可以通过分析当前上下文40_112(例如,上下文项值)以确定设备是否被锁定来确认用户当时实际上已经入睡。如果设备在预测睡眠时间段开始后三十分钟内被解锁(例如,用户未入睡),则上下文守护进程40_102将不通知请求客户端40_126。在一些具体实施中,其他上下文信息可用来确认预测睡眠时间段。例如,加速度计状态可用来确认睡眠时间段。例如,大多数智能电话用户在睡觉时会将智能电话放在桌子上或地板上。桌子和地板通常是静止的物体。因此,智能电话不会生成大量(如果有的话)的加速度计数据。如果智能电话正在生成加速度计数据,则智能电话最有可能在用户的口袋中,而用户正在移动。因此,加速度计数据可以指示用户在预测睡眠时间段内正在移动并且未入睡。
[2336] 在一些具体实施中,上下文守护进程40_102可以通过识别前体事件来改进对未来事件的预测。例如,上下文守护进程40_102可以分析历史事件流数据以识别用户活动和预测事件之间的关系。例如,用户在睡觉之前可能有检查邮件应用程序、社交网络应用程序、新闻应用程序或其他应用程序的习惯。上下文守护进程40_102可以检测这些模式(例如,使用闹钟应用程序,然后睡觉)并且识别一个或多个前体应用程序(例如,时钟应用程序、新闻应用程序等)。一旦识别一个或多个前体应用程序,上下文守护进程40_102可以使用前体应用程序来预测用户即将睡觉。例如,上下文守护进程40_102可以基于历史事件数据来确定用户通常在使用闹钟应用程序之后40_10分钟内入睡。如果上下文守护进程40_102已经预测用户将在下午11点睡觉并且用户将在下午10点使用闹钟应用程序,则上下文守护进程40_102可以基于前体闹钟应用程序活动将预测睡眠时间段的开始从下午11点调整为下午
10:10。在一些具体实施中,上下文守护进程40_102可以通过调整预测睡眠时间段的开始时间和停止时间而不调整预测睡眠时间段的持续时间来调整预测睡眠时间段的开始。在一些具体实施中,上下文守护进程40_102可以通过调整开始时间而不调整预测睡眠时间段的停止时间,从而延长预测睡眠时间段的持续时间来调整预测睡眠时间段的开始。或者,当上下文守护进程40_102检测到用户正在使用前体应用程序(例如,当前上下文指示焦点应用程序是前体应用程序)时,上下文守护进程40_102可以监视用户的活动以确定用户何时锁定计算设备,并且一旦设备被锁定,就开始当前睡眠时间段。
[2337] 其他使用案例
[2338] 在一些具体实施中,在计算设备上运行的上下文客户端可以使用上述睡眠预测来在用户入睡时安排后台任务。例如,操作系统进程(例如,应用程序更新器)可能需要在用户正在入睡时安排一些系统维护任务(例如,下载和/或安装应用程序更新),使得用户不会因系统资源的分配而不便于系统维护。上下文守护进程40_102可以分析各种设备组件(例如,硬件、软件等)的状态,以确定安排的活动是否可能干扰任何用户活动,如下面进一步描述。
[2339] 在某些情况下,在执行系统维护任务之前,操作系统进程可能需要用户密码(例如,密码)。由于用户将无法在用户入睡时提供密码,因此操作系统进程可以在用户的预测睡眠时间段之前的某个时间(例如,40_10分钟)从上下文守护进程40_102请求回调通知。在接收到回调请求之后,上下文守护进程40_102可以在预测睡眠时间段开始之前40_10分钟内安排回调通知。当安排时间到达时(例如,当前时间等于安排时间),上下文守护进程40_102可以向操作系统进程发送回调通知。当操作系统进程收到回调通知时,操作系统进程可以提示用户输入用户密码,使得操作系统进程可以在用户入睡时执行维护任务。例如,操作系统进程可以从用户接收密码,并且存储该密码以便在执行系统维护任务期间使用。一旦完成系统维护任务并且不再需要密码,操作系统进程可以从计算设备中删除用户密码。
[2340] 为了在用户入睡时发起维护任务,操作系统进程可以在预测睡眠时间段开始之后的某个时间(例如,40_30分钟)请求回调通知。在接收到回调请求之后,上下文守护进程40_102可以在预测睡眠时间段开始之后45分钟内安排回调通知。当安排时间到达时(例如,当前时间等于安排时间),上下文守护进程40_102可以在向操作系统进程发送回调通知之前验证用户未使用和/或不会使用计算设备。
[2341] 在一些具体实施中,上下文守护进程40_102可以通过确定计算设备是否正在为用户发起的活动提供服务来验证用户未使用计算设备。例如,即使计算设备被锁定(例如,指示用户可能正在睡觉),计算设备可以执行用于用户导航请求的导航相关活动。因此,当上下文守护进程40_102确定打开计算设备的导航组件(例如,全球导航卫星系统接收器)时,上下文守护进程40_102可以确定用户正在使用计算设备,并且在预测睡眠时间段内取消或延迟向操作系统进程发送回调通知。类似地,当上下文守护进程40_102确定计算设备正在提供个人热点服务,响应于用户请求与另一用户设备同步数据(例如,与自动背景同步相反),或者在安排回调通知时提供一些其他用户发起的服务时,上下文守护进程40_102可以取消或延迟向操作系统进程发送回调通知,因为用户仍然正在使用计算设备,即使该设备被锁定。
[2342] 在一些具体实施中,上下文守护进程40_102可以通过确定计算设备是否即将发起用户可见的活动来验证用户不会使用计算设备。例如,在计算设备上运行的各种进程可以通知用户或获得用户的注意。通信应用程序(例如,即时消息、文本消息、电子邮件、电话等)可以提醒用户接收到的消息。例如,通信应用程序可以被配置为在接收到消息之后十分钟提醒用户读取或响应接收到的消息。时钟应用程序可以包括被配置为在未来某个时间通知(例如,唤醒)用户的闹钟功能。日历应用程序可以被配置为在未来提醒用户安排的日历事件。如果安排用户参加会议,则导航应用程序可以基于用户从用户的当前位置到会议位置的行进时间量来向用户呈现离开时间提醒。运动应用程序可以被配置为提醒用户站起来、四处走动、去跑步或做其他类型的运动。这些通知、提醒、警报等中的每一者都针对用户,并且将提示或使得用户与计算设备交互。上下文守护进程40_102可以确定这些用户可见的事件中的一者是否将在阈值时间段(例如,一分钟、十分钟、完成系统维护任务所需的时间等)内发生,并且延迟或取消向操作系统进程发送回调通知,因为用户即将开始使用计算设备。
[2343] 过程
[2344] 图40_18是用于通知客户端计算设备上的上下文变化的示例性过程40_1800的流程图。例如,对应于上述系统40_100的计算装置可以执行过程40_1800。
[2345] 在步骤40_1802处,计算设备可以接收上下文回调请求。例如,上下文守护进程40_102可以从请求客户端40_126接收回调请求,如上所述。回调请求可以包括用于请求客户端
40_126的标识符和定义上下文(例如,设备状态)条件的谓词,上下文守护进程40_102应在该上下文条件下向请求客户端40_126发送回调通知。在一些具体实施中,在接收到回调请求时,上下文守护进程40_102可以生成可由上下文守护进程40_102和/或请求客户端40_
126用来识别回调请求的回调标识符。例如,上下文守护进程40_102可以响应于从请求客户端40_126接收到回调请求,将回调标识符返回到请求客户端40_126。例如,上下文守护进程
40_102可以将回调请求存储在回调注册表40_114和/或谓词数据库40_116中。
[2346] 在步骤40_1804处,计算设备可以初始化上下文监视器以为回调请求提供服务。例如,上下文守护进程40_102可以加载对应于回调请求谓词中指定的上下文项的一个(或多个)监视器组40_106,如上所述。
[2347] 在步骤40_1806处,计算设备可以从上下文监视器组40_106(上下文监视器40_108)接收当前上下文信息。例如,每个上下文监视器40_108可以与各种系统组件连接,以获得系统组件的状态。然后,上下文监视器40_108可以将状态报告给上下文守护进程40_102。
或者,上下文守护进程40_102可以从报告客户端40_124接收状态信息。上下文守护进程40_
102可以基于接收到的状态信息生成当前上下文40_112,如上所述。
[2348] 在步骤40_1808处,计算设备可以确定当前上下文与所请求的上下文匹配。例如,上下文守护进程40_102可以将上下文请求谓词与当前上下文进行比较,以确定当前上下文满足谓词中指定的条件。
[2349] 在步骤40_1810处,计算设备可以向请求客户端40_126发送回调通知。例如,响应于确定当前上下文与所请求的上下文匹配,上下文守护进程40_102可以向识别回调请求的请求客户端40_126发送回调通知。请求客户端40_126可以使用回调请求标识符来确定哪个回调谓词触发回调(例如,以确定计算设备的当前操作上下文)。然后,请求客户端40_126可以执行适合于当前上下文的动作。
[2350] 图40_19是用于重新启动上下文守护进程以为回调请求提供服务的示例性过程40_1900的流程图。例如,当进程管理器确定进程已经空闲一段时间时,在计算设备上运行的进程可以由操作系统的进程管理器服务终止。当进程管理器(或某些其他进程)终止上下文守护进程40_102时,计算设备可以执行进程40_1900以重新启动上下文守护进程40_102,使得上下文守护进程40_102可以收集上下文信息并向请求客户端40_126发送回调通知。例如,过程40_1900可以对应于参考图7至图13描述的上下文守护进程重新启动机制。
[2351] 在步骤40_1902处,计算设备可以发起上下文守护进程40_102和请求客户端40_126之间的通信会话。在一些具体实施中,请求客户端40_126可以通过如上所述向上下文守护进程40_102发送回调请求来发起与上下文守护进程40_102的通信会话。回调请求可以包括客户端标识符和回调谓词,如上所述。在一些具体实施中,上下文守护进程40_102只能使用由请求客户端40_126发起的通信会话来与请求客户端40_126进行通信(例如,发送回调通知)。在一些具体实施中,上下文守护进程40_102可以将回调请求存储在回调数据库(例如,谓词数据库40_116)中。
[2352] 在步骤40_1904处,计算设备可以确定上下文守护进程40_102是不活动的。例如,当上下文守护进程40_102在一段时间内未接收到任何回调请求或上下文信息更新时,进程管理器可以确定上下文守护进程40_102是空闲的或不活动的。
[2353] 在步骤40_1906处,计算设备可以关闭上下文守护进程40_102。例如,基于确定上下文守护进程40_102是不活动的,进程管理器可以关闭或终止上下文守护进程40_102以节省系统资源(例如,电池电量、存储器等)。在关闭上下文守护进程40_102时,请求客户端40_126和上下文守护进程40_102之间的通信会话也将被终止。
[2354] 在步骤40_1908处,计算设备可以检测与上下文守护进程40_102相关联的事件。例如,事件可以是向上下文守护进程40_102发送消息的上下文客户端(例如,请求客户端40_126、报告客户端40_124等)。例如,消息可以是来自请求客户端40_126的回调请求。消息可以是从报告客户端40_124接收的上下文信息更新。在一些具体实施中,事件可以是启动守护进程40_702所接收的设备状态更新,其中上下文守护进程40_102已经注册了兴趣。
[2355] 在步骤40_1910处,计算设备可以重启上下文守护进程40_102。例如,当上下文客户端向终止的上下文守护进程40_102发送消息时,计算设备可以重新启动上下文守护进程40_102,使得上下文守护进程40_102可以接收和处理该消息。当启动守护进程40_702接收到对应于从上下文守护进程40_102接收到的请求的设备状态更新时,启动守护进程40_702可以重新启动上下文守护进程40_102。
[2356] 在步骤40_1912处,计算设备可以将注册的回调请求恢复到回调守护进程40_102。例如,一旦重新启动,回调守护进程40_102可以恢复在回调守护进程40_102被终止之前所接收的回调请求。例如,回调守护进程40_102可以从回调数据库中恢复先前接收到的回调。
[2357] 在步骤40_1914处,计算设备可以初始化用于为所恢复的回调请求提供服务所需的事件监视器。例如,上下文守护进程40_102可以加载收集为回调请求提供服务所需的上下文信息所需的事件监视器组40_106。
[2358] 在步骤40_1916处,计算设备可以重新建立上下文守护进程40_102和请求客户端40_126之间的通信会话。例如,一旦上下文守护进程40_102再次运行,请求客户端40_126可以向上下文守护进程40_102发送消息(例如,回调请求)以重新建立通信会话。上下文守护进程40_102可以使用重新建立的通信会话并根据回调请求中指定的谓词向客户端发送回调通知。
[2359] 图40_20是用于重新启动回调客户端以接收回调通知的示例性过程40_2000的流程图。例如,当进程管理器确定进程已经空闲一段时间时,在计算设备上运行的进程可以由操作系统的进程管理器服务终止。当进程管理器(或某个其他进程)终止请求客户端40_126时,计算设备可以执行过程40_1900以重新启动请求客户端40_126,使得请求客户端40_126可以从上下文守护进程40_102接收回调通知。例如,过程40_1900可以对应于参考图7至图13描述的请求客户端重新启动机制。
[2360] 在步骤40_2002处,计算设备可以发起上下文守护进程40_102和请求客户端40_126之间的通信会话。在一些具体实施中,请求客户端40_126可以通过如上所述向上下文守护进程40_102发送回调请求来发起与上下文守护进程40_102的通信会话。回调请求可以包括客户端标识符和回调谓词,如上所述。在一些具体实施中,上下文守护进程40_102只能使用由请求客户端40_126发起的通信会话来与请求客户端40_126进行通信(例如,发送回调通知)。在一些具体实施中,上下文守护进程40_102可以将回调请求存储在回调数据库(例如,谓词数据库40_116)中。
[2361] 在步骤40_2004处,计算设备可以确定请求客户端40_126是不活动的。例如,当请求客户端40_126未执行计算设备内的重要处理(例如,请求客户端40_126的CPU使用低于阈值水平)时,处理管理器可以确定请求客户端40_126是空闲的或不活动的。
[2362] 在步骤40_2006处,计算设备可以关闭请求客户端40_126。例如,基于确定请求客户端40_126是不活动的,进程管理器可以关闭或终止请求客户端40_126以节省系统资源(例如,电池电量、存储器等)。在关闭请求客户端40_126时,请求客户端40_126和上下文守护进程40_102之间的通信会话也将被终止。因此,上下文守护进程40_102将不具有向请求客户端40_126递送回调通知的通信信道。
[2363] 在步骤40_2008处,计算设备可以检测与请求客户端40_126相关联的事件。例如,上下文守护进程40_102可以检测与上下文回调谓词匹配(例如,对应于谓词指定的条件)的当前上下文。启动守护进程40_702可以检测对应于从上下文守护进程40_102接收到的设备状态请求并与上下文客户端40_126的客户端标识符相关联的设备状态。
[2364] 在步骤40_2010处,计算设备可以重新启动请求客户端40_126。例如,当上下文守护进程40_102检测到当前上下文与上下文回调谓词匹配时,上下文守护进程40_102可以尝试向请求客户端40_126发送回调通知。然而,由于上下文守护进程40_102和请求客户端40_126之间的通信会话被终止,因此上下文守护进程40_102不能向请求客户端40_126发送回调通知。因此,在检测到具有请求客户端40_126的通信信道已被终止时,上下文守护进程
40_102可以向被请求重新启动请求客户端40_126的启动守护进程40_702发送从请求客户端40_126接收到的客户端标识符。在一些具体实施中,在请求启动守护进程40_702重新启动请求客户端40_126时,上下文守护进程40_102可以删除与请求客户端40_126的客户端标识符相关联的所有回调请求数据(例如,存储在回调注册表40_114和/或谓词数据库40_116中)。在接收到客户端标识符时,启动守护进程40_702可以重新启动请求客户端40_126。或者,在检测到对应于从上下文守护进程40_102接收到的设备状态请求并与上下文客户端
40_126的客户端标识符相关联的设备状态时,启动守护进程40_702可以重新启动请求客户端40_126。
[2365] 在步骤40_2012处,计算设备可以重新建立上下文守护进程40_102和请求客户端40_126之间的通信会话。例如,在重新启动时,请求客户端40_126可以向上下文守护进程
40_102发送新的回调请求以开始新的通信会话。
[2366] 在步骤40_2014处,计算设备可以从重新启动的请求客户端40_126接收客户端回调请求。例如,上下文守护进程40_102可以从请求客户端40_126接收指定对应于当前上下文的相同回调预测的回调请求,如在步骤40_2008处所述。在接收到回调请求时,上下文守护进程40_102可以确定回调请求对应于计算设备的当前上下文。
[2367] 在步骤40_2016处,计算设备可以向请求客户端40_126发送回调通知。例如,在确定当前上下文与回调请求匹配时,上下文守护进程40_102可以使用重新建立的通信信道向请求客户端40_126发送回调通知。
[2368] 图40_21是用于基于历史上下文信息预测未来事件的示例性过程40_2100的流程图。例如,过程40_2100可以对应于参考图40_14至图40_17描述的事件预测机制。
[2369] 在步骤40_2102处,计算设备可以获得上下文项的历史上下文数据。例如,上下文守护进程40_102(例如,使用历史监视器40_110)可以为当前上下文40_112中的每个上下文项生成指示设备上下文(例如,设备状态)随时间变化的历史事件流。例如,历史监视器40_110可以为“锁定的”上下文项生成指示设备何时被锁定或解锁的历史事件流,如上所述。
[2370] 在步骤40_2104处,计算设备可以生成上下文项的历史上下文数据向量。例如,上下文守护进程40_102可以为前40_28天内的24小时时间段中的上下文项分析历史上下文数据。例如,上下文守护进程40_102可以为40_28个前24小时时间段中的每一个生成28个数据向量。28个数据向量中的每一个可以包括对应于每个40_24小时时间段中的96个15分钟时隙的96个数据条目(例如,每个向量可以具有长度96)。上下文守护进程40_102可以向96个15分钟时隙中的每一个分配概率值,该概率值对应于在40_28个前24小时时间段(例如,前
40_28天)中的每一个期间所记录的上下文项(例如,设备状态)的观察值。例如,上下文守护进程40_102可以向40_28个向量中的96个数据时隙中的每一个分配值(例如,0、1、0.45等),该值指示计算设备在前40_28天中的96个15分钟时隙中的每一个期间将保持锁定的可能性。
[2371] 在步骤40_2106处,计算设备可以确定在每个时隙中将观察到特定上下文值的短期概率。例如,短期概率可以基于在前几天内所收集的数据来计算。例如,通过如以上部分“短期平均”所述,计算前七天内的15分钟时隙的平均值,上下文守护进程40_102可以计算设备将保持锁定的短期概率(PS)。
[2372] 在步骤40_2108处,计算设备可以确定在每个时隙中将观察到特定上下文值的长期概率。例如,长期概率可以基于在前几周内的每一周同一天(例如,星期天、星期三等)所收集的数据来计算。例如,通过如以上部分“长期平均”所述,计算前四周内的15分钟时隙的平均值,上下文守护进程40_102可以计算设备将保持锁定的长期概率(PL)。
[2373] 在步骤40_2110处,计算设备可以组合短期概率和长期概率以生成组合概率。例如,上下文守护进程40_102可以组合短期概率(PS)和长期概率(PL)以生成组合概率(P),如上所述。在一些具体实施中,上下文守护进程40_102可以对长期概率(或短期概率)进行加权,以调整长期概率对组合概率的影响。
[2374] 在步骤40_2112处,计算设备可以生成上下文项值的概率曲线。例如,上下文守护进程40_102可以将时隙方式概率值转换为概率曲线,如以上部分“生成睡眠曲线”所述。
[2375] 在步骤40_2114处,计算设备可以预测特定设备上下文的未来发生。例如,一旦生成概率曲线,上下文守护进程40_102可以基于概率曲线预测相同上下文项值未来的发生。例如,使用上述锁定的上下文实施例,上下文守护进程40_102可以预测设备将在下午11点和上午7点的时间内保持锁定。基于该锁定的上下文项预测,上下文守护进程40_102可以推断用户将在该预测的时间段内入睡。
[2376] 图40_22是用于为睡眠上下文回调请求提供服务的示例性过程40_2200的流程图。例如,过程40_2200可以对应于至少在上图40_22中描述的机制。例如,请求客户端40_126(例如,应用程序、实用程序、操作系统工具等)可以向上下文守护进程40_102发送回调请求,该回调请求指定上下文守护进程40_102应在用户睡觉时通知进程。例如,请求客户端
40_126可以被配置为在用户睡觉时安排维护活动,使得用户在使用计算设备时不会因这些维护活动而导致不便。
[2377] 在步骤40_2202处,计算设备可以接收睡眠上下文回调请求。例如,上下文守护进程40_102可以从请求客户端40_126接收回调请求,该回调请求指定上下文守护进程40_102应在用户睡觉之后十分钟通知请求客户端40_126。
[2378] 在步骤40_2204处,计算设备可以初始化睡眠上下文监视器以为回调请求提供服务。例如,睡眠上下文监视器可以是监视器组40_106,其包括被配置为监视计算设备的锁定状态的上下文监视器40_108。在一些情况下,上下文监视器40_108可以被配置为监视计算设备的锁定状态以及与睡眠上下文相关联的其他组件的状态。例如,上下文监视器40_108可以监视导航组件、无线网络组件(例如,个人热点、蓝牙等)、设备同步组件和/或设备输入/输出组件(例如,耳机插孔连接器等)的状态。
[2379] 在步骤40_2206处,计算设备可以从上下文监视器接收睡眠上下文信息。例如,上下文监视器40_108可以将计算设备的锁定状态和/或其他受监视组件的状态报告给上下文守护进程40_102。
[2380] 在步骤40_2208处,计算设备可以预测未来的睡眠时间段。例如,上下文守护进程40_102可以预测未来的睡眠时间段,如上文参考图40_21所述。
[2381] 在步骤40_2210处,计算设备可以安排睡眠上下文回调。例如,如果预测的睡眠时间段是从下午11点到上午7点,并且睡眠上下文回调指定请求客户端40_126应在睡眠时间段开始之后十分钟被调回,则上下文守护进程40_102可以在下午11:10安排睡眠回调。
[2382] 在步骤40_2212处,计算设备可以处理安排的睡眠上下文回调。例如,上下文守护进程40_102可以检测当前时间何时等于安排的时间上午11:10,并且确定是否向请求客户端40_126发送回调通知。
[2383] 在步骤40_2214处,计算设备可以确定用户是否正在睡觉。例如,上下文守护进程40_102可以分析各种上下文项(例如,设备状态)以确认用户正在睡觉。在一些具体实施中,上下文守护进程40_102可以确定当前设备锁定状态是否指示设备被锁定。如果设备未被锁定,则上下文守护进程40_102可以取消或延迟向请求客户端40_126发送睡眠回调通知。
[2384] 在一些具体实施中,上下文守护进程40_102可以确定用户是否正在被动地使用计算设备。例如,用户可以在不提供用户输入或解锁设备的情况下使用(例如,依赖)设备。如果用户正在被动地使用计算设备,则上下文守护进程40_102可以取消或延迟向请求客户端40_126发送睡眠回调通知。例如,当设备被锁定时,用户可能正在使用计算设备的导航特征。因此,上下文守护进程40_102可以确定导航组件(例如,GNSS系统、Wi-Fi和/或蜂窝数据收发器等)是否被打开。如果当前上下文信息指示这些导航组件被供电,则上下文守护进程
40_102可以确定用户正在被动地使用计算设备且未入睡。
[2385] 作为被动使用的另一示例,当计算设备被锁定时,用户可能正在使用由计算设备提供的个人热点功能。如果当前上下文信息指示个人热点组件被供电,则上下文守护进程40_102可以确定用户正在被动地使用计算设备且未入睡。
[2386] 作为被动使用的另一示例,用户可能已经发起与另一设备(例如,膝上型电脑、平板电脑、智能手表等)的同步操作。可以在计算设备被锁定时执行同步操作。如果当前上下文信息指示计算设备正在执行同步操作,则上下文守护进程40_102可以确定用户正在被动地使用计算设备且未入睡。
[2387] 在步骤40_2216处,计算设备可以确认没有临近的用户活动需要安排发生。例如,用户实际上可能入睡,但是计算设备可能已经安排了用户可见的通知很快发生,这些通知将唤醒用户并使用户使用计算设备。例如,计算设备可能已经安排了关于传入通信(例如,文本消息、即时消息、电子邮件、电话呼叫等)的提醒,该提醒被安排在安排睡眠回调通知之后很快发生。计算设备可能已经安排了闹钟警报,该闹铃警报被安排在安排睡眠回调通知之后很快发生。计算设备可能已经安排了日历提醒或警报,该日历提醒或警报被安排在安排睡眠回调通知之后很快发生。计算设备可能已经安排了离开时间通知,该离开时间通知被安排在安排睡眠回调通知之后很快发生。计算设备可能已经安排了运动提醒,该运动提醒被安排在安排睡眠回调通知之后很快发生。如果上下文守护进程40_102确定用户活动被安排在阈值时间段(例如,1分钟、5分钟等)内发生,则上下文守护进程40_102可以取消或延迟向请求客户端40_126发送睡眠回调通知。
[2388] 在一些具体实施中,计算设备可以向客户端发送睡眠回调通知。例如,当上下文守护进程40_102在步骤40_2214处确认用户正在睡觉并确认没有临近的用户活动需要安排时,上下文守护进程40_102可以向请求客户端40_126发送睡眠回调通知。
[2389] 示例性系统架构
[2390] 图1A示出了具有用于实现本部分中描述的系统和过程的系统架构的示例性设备100。
[2391] 用于上下文监控/预测的示例性方法
[2392] 在一些实施方案中,上下文监控的方法包括:由在计算设备上执行的上下文守护进程接收对应于由一个或多个上下文监视器监视的一个或多个上下文项的值;由上下文守护进程从上下文客户端进程接收对应于第一上下文项的上下文信息请求;由上下文守护进程确定上下文监视器当前未监视第一上下文项;以及由上下文守护进程初始化对应于第一上下文项的新上下文监视器。在一些实施方案中,初始化新上下文监视器包括将对应于新上下文监视器的新软件包动态地加载到上下文守护进程中。在一些实施方案中,初始化新上下文监视器包括调用与上下文守护进程分开的新上下文监视器进程,该新上下文监视器进程对应于新上下文监视器。在一些实施方案中,一个或多个上下文项值描述计算设备的一个或多个硬件组件的当前状态。在一些实施方案中,一个或多个上下文项值描述计算设备的一个或多个软件组件的当前状态。在一些实施方案中,该方法包括:通过新上下文监视器进程生成对应于第一上下文项的历史事件流。在一些实施方案中,新上下文监视器进程生成历史事件流对象,该历史事件流对象识别描述历史事件流中的事件的开始时间、持续时间和上下文项值。
[2393] 在一些实施方案中,上下文通知的方法包括:由在计算设备上执行的上下文守护进程生成描述计算设备的当前上下文的信息;由上下文守护进程从上下文客户端进程接收指定用于向上下文客户端进程发送通知的谓词的回调请求,该谓词指定用于回调上下文客户端的上下文条件;由上下文守护进程检测当前上下文对应于谓词;以及响应于该检测,由上下文守护进程向请求客户端发送回调通知。在一些实施方案中,上下文条件指定一个或多个上下文项的值,当该一个或多个上下文项的值在当前上下文中被检测到时,使得上下文守护进程向上下文客户端发送回调通知。在一些实施方案中,回调请求包括上下文客户端和谓词的标识符;并且还包括:在一些实施方案中,该方法包括:由上下文守护进程生成回调请求的唯一标识符;以及由上下文守护进程向请求客户端发送该唯一标识符。在一些实施方案中,该方法包括:由上下文守护进程存储唯一标识符、上下文客户端标识符和谓词之间的关联。在一些实施方案中,该存储过程包括将唯一标识符、上下文客户端标识符和谓词存储在与上下文守护进程相关联的存储器中。在一些实施方案中,该存储过程包括将唯一标识符、上下文客户端标识符和谓词存储在谓词数据库中。在一些实施方案中,该方法包括:由上下文守护进程接收描述计算设备的软件和硬件组件的当前状态的设备状态信息;以及由上下文守护进程基于接收到的设备状态信息生成当前上下文信息。
[2394] 在一些实施方案中,上下文预测的方法包括:由计算设备获得对应于由计算设备监视的上下文项的历史事件流;由计算设备计算在历史事件流中的相应时间段内将观察到上下文项的特定值的多个概率;由计算设备基于计算出的概率生成概率曲线;以及由计算设备基于概率曲线预测上下文项的特定值的未来发生。在一些实施方案中,该方法包括:基于概率曲线预测用户活动的未来发生。在一些实施方案中,预测的用户活动对应于预测的用户睡眠时间段。在一些实施方案中,该方法包括:由上下文守护进程从请求客户端接收请求上下文守护进程在预测的用户活动的未来发生之前的所请求时间通知回调客户端的回调请求;由上下文守护进程安排在所请求时间传送通知;以及由上下文守护进程在预测的用户活动的未来发生之前的所请求时间向请求客户端发送通知。在一些实施方案中,该方法包括:由上下文守护进程从请求客户端接收请求上下文守护进程在预测的用户睡眠时间段期间的所请求时间通知回调客户端的回调请求;由上下文守护进程安排在预测的用户睡眠时间段期间的所请求时间传送通知;确定所请求时间对应于当前时间;由上下文守护进程确定用户在当前时间是否入睡;以及当上下文守护进程确定用户在当前时间入睡时,由上下文守护进程向请求客户端发送通知。在一些实施方案中,确定用户在当前时间是否入睡包括:确定用户发起的操作在当前时间是否正由计算设备执行。在一些实施方案中,确定用户在当前时间是否入睡包括:确定用户可见的操作在相对于当前时间的阈值时间段内是否被安排为由计算设备执行。
[2395] 在一些实施方案中,有效的上下文监控的方法包括:在在计算设备上执行的上下文守护进程中从上下文客户端接收第一上下文回调请求,该上下文回调请求发起上下文客户端和上下文守护进程之间的第一通信会话;由上下文守护进程接收当前上下文信息;确定当前上下文信息对应于上下文回调请求;响应于该确定,由上下文守护进程检测与上下文客户端的第一通信会话已终止;以及响应于该检测,由上下文守护进程向启动守护进程发送请求启动守护进程重新启动上下文客户端的重新启动消息。在一些实施方案中,回调请求包括客户端标识符,并且还包括:由上下文守护进程向消息中的启动守护进程发送客户端标识符。在一些实施方案中,当前上下文信息包括描述计算设备的当前状态的一个或多个上下文项。在一些实施方案中,上下文回调请求基于上下文守护进程接收到的当前上下文信息来指定用于通知上下文客户端的条件。在一些实施方案中,该方法包括:在上下文守护进程接收到第一上下文回调请求之后终止上下文客户端。在一些实施方案中,该方法包括:在接收到重新启动消息时,由启动守护进程重新启动上下文客户端;在已经重新启动客户端之后,由上下文守护进程从上下文客户端接收第二上下文回调请求;将第二上下文回调请求与当前上下文信息进行比较;以及响应于该比较,通知上下文客户端当前上下文信息对应于第二上下文回调请求。在一些实施方案中,第二上下文回调请求建立上下文客户端和上下文守护进程之间的第二通信会话,并且其中上下文守护进程使用由上下文客户端建立的第二通信会话来通知上下文客户端。
[2396] 第11部分:应用内搜索的客户端、服务器和Web方面
[2397] 本部分中的内容“应用内搜索的客户端、服务器和Web方面”描述了根据一些实施方案的应用内搜索、众包应用程序历史搜索以及应用程序视图索引和搜索的客户端、服务器和基于Web的方面,并且提供了补充本文提供的公开内容的信息。例如,本部分的一些部分描述了搜索应用程序状态的方法,这补充了本文提供的公开内容,例如与创建和使用深层链接相关的内容(如下文参考方法600和800所述)。
[2398] 应用内搜索的客户端、服务器和Web方面的简明摘要
[2399] 描述了使用多个应用程序状态执行搜索的设备的方法和装置。在示例性实施方案中,设备从在设备上运行的多个应用程序接收多个应用程序状态。设备还创建多个应用程序状态的索引。另外,设备接收用于搜索存储在设备上的数据的查询。此外,设备使用索引和查询来搜索多个应用程序状态。设备另外确定该查询与多个应用程序状态中的一个应用程序状态的匹配情况,并返回该匹配应用程序状态的匹配情况。
[2400] 在另一个实施方案中,设备使用设备上的多个应用程序状态来执行查询。在该实施方案中,设备使用存储在设备上的索引来执行查询。设备还接收与查询匹配的多个结果。此外,设备确定与对应于安装在设备上的本机应用程序的应用程序状态相对应的多个结果的子集。此外,设备针对多个结果的子集中的每个结果呈现该结果以及对应于该结果的本机应用程序的表示。
[2401] 在另一实施方案中,设备选择用于多设备搜索的应用程序状态。在该实施方案中,设备在设备上检测是否已经将应用程序状态选择为在该设备上进行设备级搜索的查询结果。设备还向服务器传输应用程序状态,其中应用程序状态将与来自其他设备的其他应用程序状态一起被编入索引。
[2402] 在另一个实施方案中,设备使用从第二设备接收到的应用程序状态来执行对第一设备的搜索。在该实施方案中,设备从在多个设备上运行的多个应用程序接收多个应用程序状态。设备还创建多个应用程序状态的索引。设备另外接收用于搜索存储在设备上的数据的查询。另外,设备使用索引和搜索查询来搜索多个应用程序状态,并返回匹配的应用程序状态的匹配情况。
[2403] 在另一个实施方案中,设备执行搜索。在该实施方案中,设备向服务器传输查询并接收与查询匹配的多个结果。设备还确定多个结果的子集,该子集包括在另一设备上生成的应用程序状态,该应用程序状态对应于安装在该设备上的本机应用程序状态。另外,设备针对多个结果的子集中的每个结果呈现本机应用程序的链接和表示。
[2404] 在另一个实施方案中,设备将应用程序状态在搜索查询索引中编入索引。在该实施方案中,从耦接到服务器的另一设备接收应用程序的应用程序状态。设备还生成与应用程序状态对应的应用程序的视图,其中该视图是与应用程序状态对应的应用程序的用户界面的表示。另外,设备将视图在搜索查询索引中编入索引。
[2405] 在另一个实施方案中,设备检索具有与查询结果相关联的视图的应用程序状态。在该实施方案中,设备向服务器发送查询。设备还从服务器接收查询结果,其中该结果包括与该结果对应的应用程序的应用程序状态的视图,并且该视图是与应用程序状态相对应的应用程序的用户界面的表示。装置另外呈现具有视图的指示的结果。
[2406] 还描述了其他方法和装置。
[2407] 应用内搜索的客户端、服务器、Web方面的详细描述
[2408] 描述了使用多个应用程序状态执行搜索的设备的方法和装置。在以下说明中,阐述了许多具体细节,以提供对本发明的实施方案的彻底解释。然而,对于本领域的技术人员显而易见的是,本发明的实施方案可在不具有这些具体细节的情况下被实施。在其他情况下,尚未详细示出熟知的组件、结构和技术,以免模糊对本说明的理解。
[2409] 在本说明书中提及“一个实施方案”或“实施方案”是指结合该实施方案描述的特定特征、结构或特性可被包括在本发明的至少一个实施方案中。在本说明书中的各个位置出现短语“在一个实施方案中”不一定都是指同一个实施方案。
[2410] 在以下描述和权利要求中,可以使用术语“耦接”和“连接”及其派生词。应当理解,这些术语并非意在彼此同义。“耦接”被用于表示可能或可能不彼此直接物理或电接触的两个或更多个元件彼此合作或交互。“连接”被用于表示彼此耦接的两个或更多元件之间通信的建立。
[2411] 以下附图中所示的过程由处理逻辑执行,该处理逻辑包括硬件(例如,电路、专用逻辑等)、软件(诸如在通用计算机系统或专用机器上运行的软件)或两者的组合。虽然下文按照某些顺序操作来描述这些过程,但应当理解,所述的某些操作可以不同的顺序来执行。此外,某些操作也可并行执行而非按顺序执行。
[2412] 术语“服务器”、“客户端”和“设备”旨在一般性地指代数据处理系统,而不是具体地指代服务器、客户端和/或设备的特定形状要素。
[2413] 描述了使用多个应用程序状态执行搜索的设备的方法和装置。如上所述,能够搜索web浏览器的历史是有用的,因为用户具有使用web浏览器的数字例程。该数字例程还可以包括重复访问相同的应用程序,并且使用这些应用程序进行相同类型的操作。如上所述,智能电话用户平均花费86%的时间来使用非web浏览器应用程序。然而,能够搜索非web浏览器应用程序的历史可能存在困难,因为应用程序的使用历史的数据难以访问(如果发生的话)并且具有专有格式。因此,应用程序历史难以搜索。
[2414] 在一个实施方案中,设备生成并存储执行中的应用程序的应用程序状态。设备还将这些应用程序状态编入索引,使得在设备上运行的本地搜索服务可以搜索编入索引的应用程序状态以为查询结果提供服务。在该实施方案中,应用程序状态是应用程序的即时快照。应用程序状态类似于web浏览器历史。在一个实施方案中,应用程序状态用于非web浏览器应用程序。在一个实施方案中,应用程序的应用程序状态可以包括状态的标题、视图、在该视图中显示的日期、相关联的元数据和/或其他状态信息。例如,在一个实施方案中,应用程序可以是评论类型应用程序,其显示某个地理区域的不同业务和服务的评论。在该实施例中,每个应用程序状态可以是业务或服务的一组评论和相关信息(例如,名称、地址、联系信息、开放时间、该业务或服务的描述、该服务或业务的访问者或用户提交的一组评论和/或与该业务或服务相关联的任何其他类型的信息)。每个应用程序状态可以在一个用户界面页面上显示或跨多个用户页面显示,其中每个页面都是为了显示而组织的内容(在一些实施方案中,每个页面是在特定时间点的应用程序的窗口)。在一个实施方案中,每个执行中的应用程序导出一个或多个应用程序状态,其中设备将应用程序状态在应用程序状态索引中编入索引。
[2415] 通过将应用程序状态编入索引,用户可以搜索应用程序的历史。这允许用户搜索并查找先前的应用程序状态。通过查找应用程序状态,用户可以使用该应用程序状态启动相应的应用程序,从而使应用程序指出当应用程序导出应用程序状态时应用程序正在执行的位置。用户可以使用编入索引的应用程序状态,以经由用于多个不同应用程序的公共机制将应用程序返回到先前使用的状态。例如,在一个实施方案中,应用程序状态可以具有公交系统的特定路线的公交应用程序的页面。在该实施例中,用户可以在公交应用程序中导航到特定路线,诸如本地公共汽车路线7。通过导航到该特定路线,公交应用程序将该本地公共汽车路线页面的应用程序状态导出到应用程序状态索引。利用该编入索引的应用程序状态,用户可以经由查询来检索该应用程序状态。例如,在一个实施方案中,用户可以在查询中输入“公共汽车路线7”,并且本地公共汽车路线7的应用程序状态将显示为查询结果。在选择该应用程序状态时,公交应用程序将被加载有本地公共汽车路线7的应用程序状态,并且该公交应用程序中的本地公共汽车路线7的页面将被显示给用户。因此,在该实施例中,公交应用程序被采用为与先前执行的状态相同的状态。
[2416] 在另一个实施方案中,设备可以将应用程序状态导出到远程应用程序状态索引器,该远程应用程序状态索引器可用于支持来自未生成这些应用程序状态的设备的查询。在该实施方案中,设备输出用户已经占用的应用程序状态,其中所占用的应用程序状态是指响应于用户在设备上的查询应用程序状态已被作为查询结果返回,并且该用户已经选择该应用程序状态。另外,设备通过在导出应用程序状态之前移除私人信息来清理应用程序状态。如果远程应用程序状态索引器已经接收到该应用程序状态必要的次数,则远程应用程序状态索引器接收该应用程序状态并将该应用程序状态编入索引。在该实施方案中,通过在必要的次数之后将应用程序状态编入索引,该应用程序状态已经被众包,使得许多不同的用户和/或设备在本地搜索中已经占用该应用程序状态。在一个实施方案中,需要一定数量的应用程序状态占用增加了该应用程序状态对其他用户有用的可能性。一旦编入索引,远程搜索服务可以搜索远程应用程序状态索引以确定是否存在与查询匹配的应用程序状态。对于每个匹配,远程搜索服务将匹配的应用程序状态返回给客户端。在客户端上,用户可以选择其中相应的应用程序被启动并且使应用程序指出当应用程序导出应用程序状态时应用程序正在执行的位置的应用程序状态。
[2417] 在另一个实施方案中,设备生成不同应用程序状态的应用程序状态视图。在该实施方案中,应用程序状态视图是对应于该应用程序状态的应用程序的用户界面的表示。例如,在一个实施方案中,可以访问业务和服务的数千条或数百万条评论的内容的评论类型应用程序可以具有针对数千条或数百万条评论中的每一条的视图。这些视图可以用于预览应用程序状态,并且一般还可以用于预览应用程序。在一个实施方案中,这些应用程序状态视图可以用于预览在一组查询结果中返回的应用程序状态,或者一般可以用于预览应用程序。在一个实施方案中,收集一个应用程序的多个应用程序状态视图可用于在应用程序存储中预览该应用程序。例如,在一个实施方案中,评论类型应用程序可以具有可用于该应用程序的数十个应用程序状态视图。
[2418] 图41_1是将应用程序状态编入索引以在本地设备搜索索引中使用的系统的一个实施方案的框图。在图41_1中,设备41_100包括耦接到应用程序状态索引器41_104的多个应用程序41_102。在一个实施方案中,设备41_100是可以与另一设备(例如,个人计算机、膝上型电脑、服务器、移动设备(例如,电话、智能电话、智能手表、个人游戏设备等)、其他网络元件等)通信网络数据的任何类型的设备。在一个实施方案中,设备41_100可以是虚拟机,或者可以是托管一个或多个虚拟机的设备。在一个实施方案中,设备41_100另外包括应用程序状态搜索索引41_108。在一个实施方案中,应用程序41_102中的每一个是在该应用程序正在运行时通过一系列状态进行的执行程序。例如,在一个实施方案中,应用程序41_102可以是文字处理应用程序、电子表格、联系人、邮件、电话、web浏览器、媒体播放器、评论应用程序、分类广告应用程序、社交网络、效率、实用程序、游戏、房地产、照片、视频、电子商务、店面、优惠券、操作系统和/或可以在设备上运行的任何其他类型的应用程序。
[2419] 如上所述,应用程序41_102中的每一个在该应用程序正在执行时通过一系列状态进行。在一个实施方案中,这些应用程序状态中的一个应用程序状态是应用程序的即时快照。在一个实施方案中,应用程序41_102的应用程序状态可以包括标题、用户界面状态、在该用户界面中显示的数据、相关联的元数据和/或状态的其他状态信息。在另一个实施方案中,应用程序状态包括描述状态如何在搜索结果中呈现的信息。例如,在一个实施方案中,应用程序41_102可以是评论类型应用程序,其显示某个地理区域的不同业务和服务的评论。在该实施例中,每个应用程序状态可以是业务或服务的一组评论和相关信息(例如,名称、地址、联系信息、开放时间、该业务或服务的描述、该服务或业务的访问者或用户提交的一组评论和/或与该业务或服务相关联的任何其他类型的信息)。在一个实施方案中,在评论类型应用程序的情况下,应用程序状态标题是针对该应用程序状态给出的标题,诸如该业务或服务的名称。应用程序状态的用户界面状态可以是对应于该应用程序状态的应用程序41_102的用户界面的表示。在该实施方案中,用户界面状态可以包括用户界面的以下表示:用户界面滚动到用户界面的位置、用户界面的哪个组件是活动的、应用程序可能处于何种模式(例如,应用程序41_102可以具有用于向用户呈现信息的不同模式)。在一个实施方案中,应用程序可能足够小以包括标题加统一资源定位符或应用程序标识符以及与该状态兼容的应用程序版本号。
[2420] 在一个实施方案中,每个应用程序状态包括标题、可搜索数据和/或元数据以及特定于应用程序的不透明数据。在该实施方案中,可搜索数据和/或元数据是这样的数据:其由应用程序41_102指定为可由搜索索引服务和/或查询搜索服务访问的数据,其中该可搜索数据和/或元数据可用于将应用程序状态编入索引,并且还可用于作为查询结果返回应用程序状态。例如,在一个实施方案中,可搜索数据和/或元数据可以是应用程序状态中的内容(例如,应用程序状态标题、在用户界面状态中显示的内容、媒体数据、位置数据、时间数据,或者可以用于搜索索引的任何其他类型的数据或元数据)。在一个实施方案中,特定于应用程序的不透明数据是用于将应用程序返回到其先前状态的特定于应用程序的数据,并且可以是或可以不是可搜索的数据。在该实施方案中,通过相应的应用程序41_102加载应用程序状态将该应用程序返回到应用程序状态。例如,在一个实施方案中,特定于应用程序的不透明数据可以包括用户界面状态、用户界面模式和/或对资源的引用。用户界面模式可以是用户当前面向使用的模式类型。例如,在一个实施方案中,文字处理程序可以是草案布局视图或打印布局视图;并且图像编辑程序可以处于库模式、图像编辑模式或打印模式。在一个实施方案中,所引用的资源可以是被查看或编辑的字段、可以在设备上或另一设备(诸如,网络中的服务器)上的资源的统一资源定位符。在一个实施方案中,作为应用程序状态的一部分的数据可以成对(键、值)存在于词典中。
[2421] 在一个实施方案中,应用程序41_102中的一个或多个各自将一个或多个应用程序状态导出到应用程序状态索引器41_104。在该实施方案中,应用程序41_102可以各自将应用程序状态导出到固定或可变的时间表上。例如,在一个实施方案中,在与用户进行一个或多个交互或者一些其他度量之后,应用程序41_102可以基于固定时间导出应用程序状态、导出每个新用户界面状态的应用程序状态。又如,在另一个实施方案中,评论应用程序可以导航到新的评论或评论搜索。在该实施例中,通过导航到新的评论或评论搜索,新的视图被生成,并且新的应用程序状态被创建并被导出到应用程序状态索引器41_104。应用程序状态索引器接收应用程序状态,并将应用程序状态添加到应用程序索引41_108。通过将应用程序状态添加到索引,新的应用程序状态可用于本地搜索服务,以与本地搜索服务接收到的查询匹配。在另一个实施方案中,应用程序状态可以被导出到远程搜索应用程序状态索引41_108,其在下图41_6-11中描述。
[2422] 图41_2是使用设备上应用程序状态搜索索引搜索应用程序状态的系统的一个实施方案的框图。在图41_2中,设备41_200包括耦接到本地搜索服务41_208的应用程序41_204。本地搜索服务41_208还耦接到应用程序状态搜索索引41_212和本地搜索索引41_214。
在一个实施方案中,设备41_200是如图41_1的设备。在一个实施方案中,应用程序41_204包括搜索输入字段41_206。在该实施方案中,搜索输入字段用于输入可由本地搜索服务使用的查询,以使用该查询用来执行搜索。如果查询被输入到搜索输入41_206,则应用程序41_
204将该查询发送到本地搜索服务41_208。本地搜索服务41_208接收查询,并且通过搜索本地搜索索引41_214和/或应用程序状态搜索索引41_212来确定一组查询结果,从而产生排名结果。另外,本地搜索服务41_208对结果进行排名并将其发送回应用程序41_204。
[2423] 在该实施方案中,搜索可以包括对存储在设备41_200上的对象的搜索。例如,在一个实施方案中,对象可以是存储在本地搜索索引中的文档、图片、音乐、应用程序、电子邮件、日历条目和/或其他对象。在一个实施方案中,搜索基于由搜索模块维护的索引进行。在该实施方案中,索引是存储在设备的对象中的元数据的索引。在替代实施方案中,本地搜索服务41_208还可以将查询应用于应用程序状态搜索索引41_212。在该实施方案中,本地搜索服务41_208适用于对应用程序状态搜索索引41_212的查询,以确定是否存在与查询匹配的任何应用程序状态。例如,在一个实施方案中,本地搜索服务41_208将查询应用于存储在索引41_212中的每个应用程序状态的可搜索数据。在该实施例中,如果在索引41_212中存在一个或多个应用程序状态的查询匹配,则本地搜索服务41_208将包括这些一个或多个应用程序状态的一组结果返回到应用程序41_204。应用程序41_204显示排名结果。如果显示的排名结果中的一个结果是应用程序状态,则应用程序可以显示应用程序的图标、应用程序状态标题和应用程序状态摘要。在一个实施方案中,在选择所显示的应用程序状态时,对应于该应用程序状态的应用程序被加载有该应用程序状态。在该实施方案中,通过使应用程序加载有应用程序状态,应用程序被加载到对应于该应用程序状态的执行状态。例如,在一个实施方案中,如果应用程序状态是优惠券应用程序的特定优惠券(例如,周末租赁汽车5折!),则优惠券应用程序被加载有该应用程序状态,并且应用程序状态显示特定优惠券,犹如用户已经导航到该优惠券一样。
[2424] 图41_3是在其他查询结果之间显示应用程序状态查询结果的用户界面的实施方案的框图。在图41_3中,示出了在设备上显示应用程序状态的三个不同的可能用户界面41_300A-C。在一个实施方案中,用户界面41_300A包括搜索输入41_302、应用程序状态显示41_
314A、其他动作41_310A和屏幕键盘41_312A。在一个实施方案中,搜索输入41_302A用于输入设备的用户的查询。在该实施方案中,可以输入部分或整个查询并将其发送到本地搜索服务,以便确定一组或多组查询结果。在一个实施方案中,查询的结果返回为输入搜索的一个或多个字符。此外,应用程序状态显示41_314A包括应用程序图标41_304A、应用程序状态标题41_306A和应用程序状态摘要41_308A。在一个实施方案中,应用程序图标41_304A是表示与应用程序状态相对应的应用程序的图标。在该实施方案中,应用程序图标41_304A可以是从查询返回的或基于应用程序状态中存储的信息来检索的应用程序状态的一部分。在一个实施方案中,应用程序状态标题41_306A是在应用程序状态下存储的应用程序状态的标题。此外,应用程序状态摘要41_308A是应用程序状态的摘要。例如,在一个实施方案中,应用程序状态摘要41_308A包括应用程序状态的描述,诸如对应用程序状态的内容的描述。在该实施例中,应用程序状态摘要41_308A可以向用户指示与应用程序状态相关联的内容。
[2425] 在一个实施方案中,除了显示包括应用程序状态41_314A的查询结果之外,用户界面41_300A还可以包括其他动作41_310A。例如,在一个实施方案中,其他动作41_310A可以包括用于使用该查询搜索网络或者使用该查询搜索在线百科全书的链接。用户界面41_300A还可以包括用户输入搜索查询所使用的屏幕键盘41_312A。或者,可以经由其他方式(例如,经由耦接到设备的麦克风,通过耦接到该设备的另一设备,诸如耦接到便携式设备的智能手表)来输入查询。在一个实施方案中,图标41_304A可以是由应用程序提供的特定于应用程序状态的图像缩略图。此外,图标41_304A也可以是视频或视频预览。在另一实施方案中,应用程序状态摘要可以包括“动作”按钮,诸如“电话呼叫”图标、“播放”、“方向”、“购买”。
[2426] 在一个实施方案中,存在可以显示为查询结果的许多不同类型的应用程序状态。例如,在一个实施方案中,应用程序状态可以具有公交系统的特定路线的公交应用程序的视图。在该实施例中,用户可以在公交应用程序中导航到特定路线,诸如本地公共汽车路线
7。通过导航到该特定路线,公交应用程序将该本地公共汽车路线视图的应用程序状态导出到应用程序状态索引。通过该已编索引的应用程序状态,用户可以经由查询来检索该应用程序状态。例如,在一个实施方案中,用户可以在查询中输入“公共汽车路线7”,并且本地公共汽车路线7的应用程序状态将显示为查询结果。在选择该应用程序状态时,公交应用程序将被加载有本地公共汽车路线7的应用程序状态,并且该公交应用程序中的本地公共汽车路线7的用户界面将被显示给用户。因此,在该实施例中,公交应用程序被采用为与先前所看到的状态相同的状态。
[2427] 又如,在另一个实施方案中,用户可以使用食品配送应用程序,并且用户只想再订购他们之前的订单之一。在该实施例中,用户可以使用特定于本地餐馆的应用程序从本地餐馆订购越南粉。在这个订单中,当地餐馆应用程序将导出与越南粉订单对应的应用程序状态。该应用程序状态将被本地搜索服务编入索引并访问。用户可以稍后输入查询“越南粉”、“越南餐馆”或本地餐馆的名称,并且与该订单对应的应用程序状态可以是其中一个结果。此应用程序状态也可以是此结果的最高命中。在选择此应用程序状态时,本地餐馆应用程序将被启动并显示之前的越南粉订单,这样用户可以完成该越南粉的订单。
[2428] 在另一示例和实施方案中,用户可以维护图像板来规划他们的下一次旷野之旅。在该实施例中,用户使用图像板应用程序来链接关于该下一行程的图片和评论。用户将使用图像板应用程序回到该特定图像板,以便从设备的剪贴板添加链接。图像板应用程序将导出图像板的针对旷野之旅的该应用程序状态,该应用程序状态将由本地搜索服务提供。
通过搜索该应用程序状态,诸如旅行地点的名称,用户可以通过查询快速到达图像板应用程序内的该旷野之旅图像板,而不是启动图像板应用程序并导航到该特定图像板视图。
[2429] 在一个实施方案中,可以使用保存应用程序状态来快速访问可能难以导航到的实用程序的特定视图。例如,在一个实施方案中,设备设置应用程序可以具有许多级别的多种选项。在该实施例中,用户可以进入设置应用程序中的电池使用页面,以查看哪个应用程序正在消耗大部分电池。电池使用页面可能是四级或更多级别,因此难以访问。通过为设置应用程序的电池使用页面导出应用程序状态,用户可能能够输入查询“电池使用率”、“电池”、“batter”或电池使用率一词的其他前缀,从而得到设置应用程序的电池使用页面的应用程序状态显示为查询的结果。这将为设置应用程序中可能难以导航到的页面提供快速访问。
[2430] 在另一个实施方案中,用于查询的应用程序状态结果可以与来自其他域的其他查询结果一起显示,诸如上述图41_2中所描述的本地搜索索引。在图41_3中,用户界面41_300B显示应用程序状态41_314B连同其他查询结果41_310B。在该用户界面41_300B中,搜索输入41_302B与应用程序状态41_314B、其他查询结果41_310B以及屏幕键盘41_312B一起显示。在一个实施方案中,搜索输入41_302B和屏幕键盘41_312C与上文针对用户界面41_300A所述的相同。此外,应用程序状态41_314B包括应用程序图标41_304B、应用程序状态标题
41_306B和应用程序状态摘要41_308B,其与如上文针对用户界面41_300A所述的应用程序图标、应用程序状态标题和应用程序状态摘要相同。此外,用户界面41_300B包括其他查询结果41_310B,其可以是来自其他域或应用程序状态的其他查询结果。例如,在一个实施方案中,查询“电池”的其他查询结果41_310B可以包括本地搜索索引中的与“电池”一词匹配的对象索引,与“电池”一词匹配的其他应用程序状态,或者与“电池”一词匹配的本地或远程搜索索引(例如,web搜索索引)的其他匹配查询结果。
[2431] 如上所述,还可以为在设备上运行的实用应用程序保存应用程序状态。例如,在一个实施方案中,设备的用于配置设备的这些设置应用程序也可以导出应用程序状态。用户界面41_300C是包括设置应用程序的应用程序状态的查询结果的示例。在图41_3中,用户界面41_300C、搜索输入41_302C与应用程序状态41_314B、其他动作41_310C以及屏幕键盘41_312C一起显示。在一个实施方案中,搜索输入41_302C和屏幕键盘41_312C与上文针对用户界面41_300A所述的相同。此外,应用程序状态41_314C包括应用程序图标41_304B、设置应用程序的组件(例如,电池使用率)的应用程序状态标题41_306C以及设置应用程序的组件(电池使用率)的应用程序状态摘要41_308C。
[2432] 如上所述,为了使本地搜索服务可访问应用程序状态,将应用程序状态添加到本地搜索服务可访问的索引。图4A是用于索引从设备上多个不同应用程序接收的应用程序状态的过程41_400的一个实施方案的流程图。在一个实施方案中,过程41_400由应用程序状态索引器(诸如应用程序状态索引器41_104)执行,如上文在图41_1中所述。在图4A中,过程41_400始于在框41_402处从设备上的多个应用程序接收多个应用程序状态。例如,在一个实施方案中,过程41_400可以从各种应用程序(诸如文字处理应用程序、电子表格、联系人、邮件、电话、web浏览器、媒体播放器、评论应用程序、分类广告应用程序、社交网络、效率、实用程序、游戏、房地产、照片、视频、电子商务、店面、优惠券、操作系统和/或可以在设备上运行的任何其他类型的应用程序)接收应用程序状态。在一个实施方案中,应用程序可以同时、串行地和/或以其组合将应用程序状态发送到过程41_400。在框41_404处,对于过程41_
400接收的每个应用程序状态,过程41_400将这些应用程序状态添加到应用程序状态索引。
在一个实施方案中,过程41_400通过向搜索索引数据结构添加应用程序状态标识符、可索引文本、应用程序标识符和/或插入时间来向应用程序状态索引添加应用程序状态(例如,倒排索引和完成尝试)。
[2433] 通过向应用程序状态索引添加多个应用程序状态,这些索引应用程序状态可用于本地搜索服务的查询搜索。图4B是使用应用程序状态索引确定查询的查询结果的过程450的一个实施方案的流程图。在一个实施方案中,过程450由本地搜索服务执行,以使用应用程序状态索引确定查询的查询结果,诸如在上文的图41_2中所述的本地搜索服务41_208。在图4B中,过程450始于在框452处接收查询。在一个实施方案中,查询是由用户在应用程序中输入并发送到过程450的搜索字符串。在一个实施方案中,输入可以通过文本、说出词语、自动生成的和/或输入查询前缀的一些其他方式来输入。例如,在一个实施方案中,用户可以在web浏览器或文件浏览器中输入查询。在框454处,过程450使用本地应用程序状态索引确定查询的一组查询结果。在一个实施方案中,过程450使用查询中的信息来确定本地应用程序状态索引中的匹配应用程序状态。在框456处,过程450对该组查询结果进行排名。在一个实施方案中,排名基于与查询匹配的每个应用程序状态的分数。过程450在框458处返回该组查询结果的排名。在一个实施方案中,过程450将经排名的该组查询结果发送回到将查询发送到过程450的应用程序。
[2434] 图41_5是将应用程序状态作为查询结果的一部分接收和呈现的过程41_500的一个实施方案的流程图。在一个实施方案中,过程41_500由应用程序执行以将应用程序状态作为查询结果的一部分接收和呈现,诸如在上文的图41_2中所述的应用程序41_204。在图41_5中,过程41_500始于在框41_502处向本地搜索服务发送查询。在一个实施方案中,查询可以是由用户在应用程序中输入并发送到本地搜索服务的搜索字符串。在该实施方案中,输入可以通过文本、说出词语、自动生成的、从耦接的设备(例如,耦接到便携式设备的智能手表)接收的和/或输入搜索字符串的一些其他方式来输入。在另一个实施方案中,搜索系统可以建议查询,并且用户可以从多个选择中选出一个查询。或者,可以从上下文中提取查询。例如,在一个实施方案中,用户正在阅读文本消息并进行搜索,查询由数据检测系统提取并向用户自动发出或建议。此外,可以通过跟随来自另一应用程序的链接来发出查询。在框41_504处,过程41_500接收一组结果,其中所述结果包括应用程序状态。在一个实施方案中,以最高排名的结果为最高命中,对该组结果进行排名。在框41_506处,过程41_500在用户界面中呈现应用程序状态。在该实施方案中,应用程序状态包括应用程序状态标题、摘要以及与该应用程序状态的应用程序对应的图标的指示。在一个实施方案中,过程41_500显示如上文在图41_3中所述的应用程序状态。响应于所选择的应用程序,过程41_500使用所选择的应用程序状态启动对应的应用程序。例如,在一个实施方案中,如果应用程序状态是针对评论类型应用程序的对本地餐馆的评论,则过程41_500启动具有本地餐馆应用程序状态的评论类型应用程序。在该实施例中,将启动评论类型应用程序,使得呈现给用户的视图是评论类型应用程序中的本地餐馆之一。在一个实施方案中,如果应用程序未安装在设备上,则过程41_500可以从远程源(诸如应用程序商店、网页或其他远程服务器)下载该应用程序。在该实施方案中,过程41_500将安装应用程序并使用所选择的应用程序状态启动应用程序。
[2435] 如上所述,多个应用程序可以导出在执行这些应用程序的设备上本地编入索引的应用程序状态。在一个实施方案中,这些应用程序状态可以进一步被导出到远程应用程序状态索引器,并用于支持来自未生成这些应用程序状态的设备的查询。图41_6是索引应用程序状态以在远程搜索索引中使用的系统41_618的一个实施方案的框图。在图41_6中,设备41_600耦接到远程应用程序状态索引器41_610。在一个实施方案中,设备41_600中的每一个包括在该设备41_600上执行的多个应用程序41_602,并且应用程序41_602中的每一个耦接到设备上的应用程序状态模块41_604。在该实施方案中,应用程序41_602中的每一个将一个或多个应用程序状态41_612导出到应用程序状态模块41_604。在该实施方案中,如在上文的图41_1至图41_5中所述,应用程序状态模块41_604将应用程序状态搜索索引41_608中的接收到的应用程序状态编入索引。在另一个实施方案中,这些应用程序状态可被发送到远程应用程序状态索引器41_610。通过将应用程序状态发送到远程应用程序状态索引器41_610,可以使这些应用程序状态可用于支持来自未示出的其他设备的查询。因此,在该实施方案中,响应于由不生成这些应用程序状态的设备发送的查询,可将来自在多个设备上运行的多个应用程序的已编索引的应用程序状态用于查询结果。
[2436] 在一个实施方案中,本地编入索引的每个应用程序状态也可以被导出到远程应用程序状态索引器41_610。在该实施方案中,可以生成数千或数百万个应用程序状态并将其发送到远程应用程序状态索引器41_610。然而,随着这许多的应用程序状态被导出和编入索引,这可能会创建一个过大和/或具有许多无用虚假条目的应用程序状态索引。此外,导出的应用程序状态中的一些或全部可能包括不希望包括在已编索引的应用程序状态41_614中的私人信息。
[2437] 在一个实施方案中,如果已在设备上占用应用程序状态,则应用程序状态模块41_604将这些应用程序状态导出到远程应用程序状态索引器41_610。在该实施方案中,为了占用应用程序状态,应用程序状态模块响应于用户在设备上的查询来确定该应用程序状态是否已作为查询结果返回,并且确定该用户是否已选择该应用程序状态。在一个实施方案中,占用应用程序状态意味着用户已将查询发送到本地搜索服务,该本地搜索服务已经以一组查询结果的形式返回了该应用程序状态,并且用户已经选择或查看了该应用程序状态。在一个实施方案中,占用应用程序状态向应用程序状态模块41_604指示该特定应用程序状态可能比由设备41_600生成的其他应用程序状态更重要。对于每个已占用的应用程序状态,应用程序状态模块41_604将该应用程序状态导出到远程应用程序状态索引器41_610。
[2438] 在另一个实施方案中,在将已占用的应用程序状态导出到远程应用程序状态索引器41_610之前,应用程序状态模块41_604通过移除可处于该应用程序状态的任何可能的私人信息来清理应用程序状态。在一个实施方案中,该应用程序状态可以包括私人信息,诸如用户名、私人联系信息、位置、访问时间、社会安全号码、行帐号和/或可处于该应用程序状态的任何其他类型的私人信息。在一个实施方案中,创建该应用程序状态的应用程序可将在该应用程序状态下存储的某些信息标记为私人的。在另一个实施方案中,设备可以向该应用程序状态添加私人信息。或者,应用程序状态模块41_604可知道某些信息是私人的,无论该信息是否被标记为私人的。在这些实施方案的任一个中,应用程序状态模块41_604将移除该私人信息。
[2439] 在一个实施方案中,远程应用程序状态索引器41_610从多个设备41_600接收应用程序状态。远程应用程序状态索引器41_610可以从几个设备或多达数千或数百万个设备接收应用程序状态。另外,在一个实施方案中,远程应用程序状态索引器41_610维护两组应用程序状态。一组应用程序状态是已编索引的应用程序状态41_614。这些是已经被编入索引并可供搜索服务使用的一组应用程序状态。另一组应用程序状态是未编索引的应用程序状态41_616。在一个实施方案中,一旦应用程序状态已由一个或多个设备占用必要次数,则远程应用程序状态索引器41_610将应用程序状态添加到应用程序状态的索引组。例如,在一个实施方案中,如果应用程序状态被占用50次,则将该应用程序状态添加到应用程序状态的索引组。在另选的实施方案中,如果应用程序状态已被占用差不多的次数,则可以将该应用程序状态添加到应用程序状态的索引组。在一个实施方案中,应用程序状态在被编入应用程序索引中之前将被占用的必要次数可以根据应用程序状态的类型而变化。例如,在一个实施方案中,包括地理定位信息的应用程序状态(例如,区域优惠券的应用程序状态)与不具有地理定位信息的应用程序状态相比,可能需要被占用较少的次数。
[2440] 在该实施方案中,在应用程序状态已经被占用必要次数之后将应用程序状态编入索引,增加了该应用程序状态对其他用户有用的可能性。例如,在一个实施方案中,不同设备上的许多不同用户使用本地公交应用程序并且生成本地公共汽车路线7的应用程序状态。在该实施例中,这是常用路线,所以该应用程序状态是由用户通过本地搜索服务访问该应用程序状态而被占用的。该应用程序状态由远程应用程序状态索引器41_610编入索引,并且可用于远程搜索服务。
[2441] 在一个实施方案中,远程应用程序索引器41_610通过计算用于该应用程序状态的散列来确定是否先前已经发送了该应用程序状态。如果该散列与远程应用程序索引器41_610存储的其他散列匹配,则远程应用程序索引器41_610递增远程应用程序索引器已经接收到该应用程序状态的次数。如果已经接收到必要的次数,则远程应用程序索引器41_610将该应用程序状态编入索引。在下面的图41_8中进一步描述了将应用程序状态编入索引。
[2442] 图41_7是使用远程应用程序状态搜索索引搜索应用程序状态的系统的一个实施方案的框图。在图41_7中,设备41_702耦接到远程应用程序状态搜索服务41_714。在一个实施方案中,设备41_702包括耦接到本地搜索服务41_708的应用程序41_704。本地搜索服务41_708进一步耦接到应用程序状态搜索索引41_716。在一个实施方案中,设备41_702、应用程序41_704、本地搜索服务41_708和应用程序状态搜索索引41_716是如在上文的图41_2中所述的设备、应用程序、本地搜索服务和应用程序状态搜索索引。在另一个实施方案中,本地搜索服务41_708可以将查询转发到远程应用程序搜索服务41_714,其中远程应用程序搜索服务41_714确定是否存在用于查询的一组结果。远程应用程序搜索服务41_714将该组结果返回到本地搜索服务41_708,该搜索服务又将该组结果返回到应用程序41_704。或者,应用程序41_704可以将查询发送到远程应用程序搜索服务41_714,该远程应用程序搜索服务又将该组查询结果发送回到应用程序41_704。
[2443] 如上所述,远程应用程序状态搜索服务41_714从设备41_702接收查询,并将该查询的一组查询结果返回给设备41_702。在一个实施方案中,远程应用程序状态搜索服务41_714接收搜索索引应用程序状态41_712的查询,以获得与所接收的查询匹配的应用程序状态,对匹配的应用程序状态中的每一个进行评分,对该组结果进行排名,并将经排名的结果返回给应用程序。应用程序41_704显示包括该应用程序状态的结果。在一个实施方案中,应用程序41_704显示如上文在图41_3中所述的应用程序的图标、应用程序状态标题和应用程序状态摘要。在选择所显示的应用程序状态后,应用程序被加载有该应用程序状态。在一个实施方案中,如果该应用程序状态本地存储在该设备上,则应用程序处于与如同在用户已经占用了该应用程序状态的情况下应用程序所处的状态相同的状态。
[2444] 图41_8是将应用程序状态添加至应用程序状态索引的过程41_800的一个实施方案的流程图。在一个实施方案中,过程41_800由应用程序状态导出器模块执行以将应用程序状态添加到应用程序状态索引,诸如,如上文在图41_6中所述的应用程序状态导出器模块41_606。在图41_8中,过程41_800始于在框41_802处接收应用程序状态。在一个实施方案中,由过程41_800从正在执行过程41_800的设备上运行的一个或多个应用程序接收应用程序状态。在框41_802处,过程41_800确定该应用程序状态是否已被占用。在一个实施方案中,如果在与查询匹配的一组结果中返回该应用程序状态并且用户已经选择该应用程序状态以加载到应用程序中,则该应用程序状态被占用。如果该应用程序状态未被占用,则执行进行到上面的框41_802。如果该应用程序状态已被占用,则过程41_800清理框41_806的应用程序状态。在一个实施方案中,过程41_800通过移除与上文的图41_6中所述的应用程序状态相关联和/或存储在其中的私人信息来清理应用程序状态。在框41_808处,过程41_800将经清理的应用程序状态发送到远程应用程序状态索引服务。在一个实施方案中,远程应用程序状态索引服务可能将该应用程序状态添加到应用程序状态索引。
[2445] 图41_9是通过应用程序状态索引服务将应用程序状态编入索引的过程41_900的一个实施方案的流程图。在一个实施方案中,过程41_900由远程应用程序状态索引器执行以将应用程序状态编入索引,诸如,如上文在图41_6中所述的远程应用程序状态索引器41_610。在图41_6中,过程41_900始于在框41_902处从设备接收指示应用程序状态。在一个实施方案中,应用程序状态指示是应用程序状态的散列。通过接收应用程序状态散列而不是完整的应用程序状态,过程41_900直到应用程序状态为多个客户端所共有的或已经被占用必要次数时才会接收应用程序状态。在框41_904处,过程41_900递增该应用程序状态的出现次数。在一个实施方案中,过程41_900维持该应用程序状态散列的计数。如果这是第一次过程41_900已接收到该指示,则计数为1。过程41_900确定框41_906处的出现次数是否大于阈值。在一个实施方案中,应用程序状态已由过程41_900接收必要次数意味着该应用程序状态已被占用多次,并且是将被编入索引并可用于服务查询的候选者。例如,在一个实施方案中,如果该应用程序状态已经被占用50次,则可以使优惠券应用程序的特定优惠券的应用程序状态可用于应用程序状态索引。如果出现次数大于阈值,则过程41_900向发送最后一个应用程序状态指示的设备发送对完整应用程序状态的请求。过程41_900在框41_910处接收应用程序状态。过程41_900在框41_910处将应用程序状态编入索引。通过将应用程序状态编入索引,过程41_900使此应用程序状态可用作查询的一组结果的一部分。
[2446] 在另一个实施方案中,过程41_900不是在最后接收到应用程序状态指示时请求完整应用程序状态,而是开始逐渐构建应用程序状态,直到过程41_900接收到应用程序状态的最后一部分并将应用程序状态编入索引。例如,在一个实施方案中,过程41_900要求最后的M个客户端向过程900发送应用程序状态的1/M。在该实施例中,由于应用程序状态生成相同的应用程序状态散列,所以这是相同的应用程序状态。这意味着应用程序状态的这些M个部分可以通过过程41_900连接。该实施方案可以提供额外的隐私,因为每次允许过程41_900构建完整的应用程序状态时应用程序状态的部分被传输。
[2447] 图41_10是使用应用程序状态索引执行查询搜索的过程41_1000的一个实施方案的流程图。在一个实施方案中,过程41_1000由远程应用程序状态搜索服务执行以使用应用程序状态索引执行查询搜索,诸如,如上文在图41_7中所述的远程应用程序状态搜索服务41_714。在图41_10中,过程41_1000始于在框41_1002处从客户端接收查询。在一个实施方案中,查询是由用户在应用程序中输入并发送到如上所述的远程搜索服务的搜索字符串。
在框41_1004处,过程41_1000使用查询搜索应用程序状态索引。在一个实施方案中,过程
41_1000确定是否存在与查询匹配的任何应用程序状态。过程41_1000在41_1006的框处确定查询的一组结果。在一个实施方案中,该组结果包括与查询中的一些或全部文本匹配的一个或多个应用程序状态。在框41_1008处,过程41_1000对该组结果进行排名。在一个实施方案中,过程41_1000通过确定结果中每一个的得分并使用这些得分对这些结果进行排名来对该组结果进行排名。在框41_1010处,过程41_1000将一组结果与来自其他搜索域的结果组合。在一个实施方案中,如果搜索是联合搜索,其中使用相同的查询来搜索不同的索引,则过程41_1000将来自其他搜索域的结果与使用应用程序状态索引确定的该组结果组合。例如,在一个实施方案中,查询可用于搜索应用程序状态索引、一般Web搜索索引和/或不同索引(例如,媒体索引、应用程序存储索引、地图索引、在线百科全书索引和/或另一种类型的索引)。在框41_1012处,过程41_1000将一组经排名的结果连同在框41_1010中生成的其他结果一起返回给客户端。
[2448] 图41_11是用于将应用程序状态作为查询结果的一部分接收和呈现的过程41_1100的一个实施方案的流程图。在一个实施方案中,过程41_1100由应用程序执行,以将应用程序状态作为查询结果的一部分接收和呈现,诸如上文在图41_7中所述的应用程序41_
704。在图41_11中,过程41_1100始于在框41_1102处向远程搜索服务发送查询。在一个实施方案中,查询可以是由用户在应用程序中输入并发送到远程搜索服务的搜索字符串。在该实施方案中,输入可以通过文本、说出词语、自动生成的、从耦接的设备(例如,耦接到便携式设备的智能手表)接收的和/或输入搜索字符串的一些其他方式来输入。在框41_1104处,过程41_1100接收一组结果,其中所述结果包括应用程序状态。在该实施方案中,应用程序状态是已由用户占用必要次数的经清理的应用程序状态,如上文在图41_6中所述。在一个实施方案中,以最高排名的结果为最高命中,对该组结果进行排名。在框41_1106处,过程
41_1100在用户界面中呈现应用程序状态。在该实施方案中,应用程序状态包括应用程序状态标题、摘要以及与该应用程序状态的应用程序对应的图标的指示。在一个实施方案中,过程41_1100显示如上文在图41_2中所述的应用程序状态。响应于所选择的应用程序,过程
41_1100使用所选择的应用程序状态启动对应的应用程序。例如,在一个实施方案中,如果应用程序状态是针对评论类型应用程序的对本地餐馆的评论,则过程41_1100启动具有本地餐馆应用程序状态的评论类型应用程序。在该实施例中,将启动评论类型应用程序,使得呈现给用户的视图是评论类型应用程序中的本地餐馆之一。在一个实施方案中,如果应用程序未安装在设备上,则过程41_1100可以从远程源(诸如应用程序商店、网页或其他远程服务器)下载该应用程序。在该实施方案中,过程41_1100将安装应用程序并使用所选择的应用程序状态启动应用程序。
[2449] 图41_12是索引应用程序状态视图以在远程搜索索引中使用的系统41_1200的一个实施方案的框图。在图41_12中,设备41_1202耦接到应用程序状态存储器41_1206和应用程序状态索引41_1208。在一个实施方案中,设备41_1202检索存储在应用程序状态存储器41_1206中的应用程序状态,并且对于应用程序状态中的每一个,设备41_1202为这些应用程序状态中的每一个生成视图。在一个实施方案中,应用程序状态的视图是对应于该应用程序状态的应用程序的用户界面的表示。例如,在一个实施方案中,用户界面可以包括文本、图像、视频、音频、动画、图形和/或其他类型的用户界面组件。在该实施例中,对应视图是用户界面的二维表示。在一个实施方案中,一个应用程序可以具有基于与该应用程序相关联的不同应用程序状态生成的许多不同视图。例如,在一个实施方案中,可以访问业务和服务的数千条或数百万条评论的内容的评论类型应用程序可具有针对数千条或数百万条评论中的每一条的视图。在下面的图41_13中进一步描述了视图。
[2450] 在一个实施方案中,存储在应用程序状态存储器41_1206中的应用程序状态可以是用户已经占用必要次数的应用程序状态,如上文在图41_6中所解释的。或者,应用程序状态存储器41_1206还可以包括未编索引的应用程序状态。另外,应用程序状态索引41_1208包括具有为这些应用程序状态生成的视图的编入索引的应用程序状态。在该实施方案中,这些视图可以与作为查询的一组结果的一部分的应用程序状态一起返回。搜索引擎41_1210包括从设备41_1214接收查询的应用程序状态搜索服务41_1212。应用程序状态搜索服务41_1212从设备41_1214接收查询,使用这些查询搜索应用程序状态索引,确定具有相关联的视图的查询的匹配应用程序状态,对匹配的应用程序状态进行评分,对匹配的应用程序状态进行排名,并将这些匹配应用程序状态作为一组结果返回给发送原始查询的设备。
[2451] 如上所述,应用程序状态可以具有相关联的视图。图41_13是应用程序状态视图41_1302的一个实施方案的框图。在图41_13中,设备41_1300具有在特定应用程序状态下执行的应用程序。该应用程序状态下的应用程序显示应用程序状态用户界面41_1302。应用程序状态用户界面41_1302可以包括各种组件,诸如图标、文本、图像、视频、音频、动画、图形和/或其他类型的用户界面组件。例如,在一个实施方案中,应用程序状态用户界面41_1302包括图像41_1304、文本41_1306和图标41_1308。在一个实施方案中,可以从该应用程序状态用户界面41_1302生成视图。在这种环境中,该视图是应用程序状态用户界面41_1302的表示,该应用程序状态用户界面可以与应用程序状态索引中的该应用程序状态一起被保存并编入索引。例如,在一个实施方案中,应用程序状态用户界面41_1302的视图是二维图像,诸如GIF、JPEG、PNG和/或另一类型的二维图像。在该实施例中,该视图的二维图像可以与该应用程序状态一起存储在应用程序状态索引中。
[2452] 图41_14是使用应用程序状态生成应用程序状态视图的过程41_1400的一个实施方案的流程图。在一个实施方案中,过程41_1400由应用程序状态视图生成器和索引器执行以使用应用程序状态来生成应用程序状态视图,诸如上文在图41_12中所述的应用程序状态视图生成器和索引器41_1204。在图41_14中,过程41_1400始于在框41_1402处接收应用程序状态。在一个实施方案中,过程41_1400从应用程序状态存储器接收应用程序状态,诸如,如上文在图41_12中所述的应用程序状态存储器41_1206。在框41_1404处,过程41_1400使用该应用程序状态生成应用程序状态视图。在一个实施方案中,过程41_1400通过使用该应用程序状态模拟应用程序来生成应用程序状态视图。在该实施方案中,使用该应用程序状态在模拟器中执行应用程序。过程41_1400可以使用模拟器的私有框架捕获该应用程序状态的应用程序用户界面。或者,过程41_1400可以将应用程序加载到虚拟平台或设备本身上,并使用机制来生成该应用程序状态的视图。在框41_1406处,过程41_1400将应用程序状态视图添加到对应应用程序状态的应用程序状态索引。
[2453] 通过生成这些应用程序状态视图,过程41_1400可以为一个或多个应用程序生成多个视图。这些视图可以用于预览应用程序状态,并且一般还可以用于预览应用程序。在一个实施方案中,这些应用程序状态视图可以用于预览在一组查询结果中返回的应用程序状态,或者一般可以用于预览应用程序。在下面的图41_15中进一步描述了使用具有查询的视图。在一个实施方案中,收集一个应用程序的多个应用程序状态视图可用于预览该应用程序。例如,在一个实施方案中,评论类型应用程序可以具有可用于该应用程序的数十个应用程序状态视图。对于对此评论类型应用程序感兴趣的人(例如,在应用程序商店中查看该应用程序的人),可以使这些应用程序状态视图可用,以便用户可以在购买和/或下载该应用程序之前预览该应用程序。在该实施例中,用户可以向前和向后浏览数十个视图,以了解应用程序的外观。
[2454] 图41_15是将应用程序状态(包括应用程序状态视图)作为查询结果的一部分接收和呈现的过程41_1500的一个实施方案的流程图。在一个实施方案中,过程41_1500由设备执行以将应用程序状态视图作为查询结果的一部分接收和呈现,诸如在上文的图41_12中所述的设备41_1214。在图41_15中,过程41_1500始于在框41_1502处向远程搜索服务发送查询。在一个实施方案中,查询可以是由用户在应用程序中输入并发送到远程搜索服务的搜索字符串。在该实施方案中,输入可以通过文本、说出词语、自动生成的、从耦接的设备(例如,耦接到便携式设备的智能手表)接收的和/或输入搜索字符串的一些其他方式来输入。在框41_1504处,过程41_1500接收一组结果,其中所述结果包括应用程序状态。在该实施方案中,应用程序状态是已由用户占用必要次数的经清理的应用程序状态,如上文在图41_6中所述。在一个实施方案中,以最高排名的结果为最高命中,对该组结果进行排名。在框41_1506处,过程41_1500在用户界面中呈现应用程序状态。在该实施方案中,应用程序状态包括应用程序状态标题、摘要、与该应用程序状态的应用程序对应的图标的指示,以及对应应用程序视图的可用性的指示。响应于所选择的应用程序状态视图,过程41_1500检索并呈现应用程序状态视图。在一个实施方案中,通过显示应用程序状态视图,用户可以获得在该应用程序状态下执行的应用程序的预览。这可以帮助用户决定是否选择该应用程序状态。在另一个实施方案中,即使将应用程序安装在设备上,预览视图也可能比启动具有该应用程序状态的应用程序更快。例如,在一个实施方案中,如果应用程序状态视图是针对评论类型应用程序的对本地餐馆的评论,则过程41_1500检索并显示该应用程序状态视图。
[2455] 用于应用内搜索的客户端、服务器、Web方面的示例性机器可读介质、方法和系统[2456] 在一个方面,提供了使用多个应用程序状态执行搜索的设备的方法和装置。在示例性实施方案中,设备从在设备上运行的多个应用程序接收多个应用程序状态。设备还创建多个应用程序状态的索引。另外,设备接收用于搜索存储在设备上的数据的查询。此外,设备使用索引和查询来搜索多个应用程序状态。设备另外确定该查询与多个应用程序状态中的一个应用程序状态的匹配情况,并返回该匹配应用程序状态的匹配情况。
[2457] 在一些实施方案中,提供了一种机器可读介质,其具有可执行指令,使得一个或多个处理单元执行方法以使用多个应用程序状态执行搜索,该方法包括:从在设备上运行的多个应用程序接收多个应用程序状态;创建多个应用程序状态的索引,该索引存储在设备上;接收用于搜索存储在设备上的数据的查询;使用所述索引和查询来搜索多个应用程序状态;确定该查询与多个应用程序状态中的一个应用程序状态的匹配情况,并返回该匹配应用程序状态的匹配情况。在一些实施方案中,多个应用程序状态中的每一个包括表示针对该应用程序状态的应用程序的即时快照的数据。在一些实施方案中,存在针对多个应用程序中的一个应用程序的多个应用程序状态。在一些实施方案中,除了搜索多个应用程序状态之外,该查询用于搜索存储在设备上的文件。在一些实施方案中,多个应用程序状态中的一个应用程序状态包括用户界面信息,其表示由多个应用程序中对应的一个应用程序使用的用户界面数据的视图位置。
[2458] 在一些实施方案中,提供了一种机器可读介质,其具有可执行指令,使得一个或多个处理单元执行方法以使用多个应用程序状态执行查询,该方法包括:使用存储在设备上的索引对设备执行查询;接收与该查询匹配的多个结果;确定与对应于安装在设备上的本机应用程序的应用程序状态对应的所述多个结果的子集;并且针对所述多个结果的子集中的每个结果呈现该结果以及对应于该结果的本机应用程序的表示。
[2459] 在另一方面,提供了选择用于多设备搜索的应用程序状态的设备的方法和装置。在该实施方案中,设备在设备上检测是否已经将该应用程序状态选择为在该设备上进行设备级搜索的查询结果。设备还向服务器传输该应用程序状态,其中该应用程序状态将与来自其他设备的其他应用程序状态一起被编入索引。在一些实施方案中,提供了一种机器可读介质,其具有可执行指令,使得一个或多个处理单元执行方法以选择用于多设备搜索的应用程序状态,该方法包括:在设备上检测是否已经将该应用程序状态选择为在该设备上进行设备级搜索的查询结果;以及向服务器传输该应用程序状态,其中该应用程序状态与来自其他设备的其他应用程序状态一起被编入索引。
[2460] 在一些实施方案中,提供了一种机器可读介质,其具有可执行指令,使得一个或多个处理单元执行方法以使用从第二设备接收的应用程序状态执行对第一设备的搜索,该方法包括:从在多个设备上运行的多个应用程序接收多个应用程序状态;创建多个应用程序状态的索引;接收用于搜索存储在设备上的数据的查询;使用所述索引和搜索查询来搜索多个应用程序状态;确定该搜索查询与多个应用程序状态中的一个应用程序状态的匹配情况,并返回该匹配应用程序状态的匹配情况。在一些实施方案中,创建索引包括:如果一个应用程序状态被接收到的次数满足阈值,则将多个应用程序状态中的该应用程序状态添加到索引。在一些实施方案中,提供了一种机器可读介质,其具有可执行指令,使得一个或多个处理单元执行方法以用于执行搜索,该方法包括:从设备向服务器传输查询;接收与查询匹配的多个结果;确定所述多个结果中每个结果包括在另一设备上生成的与安装在所述设备上的本机应用程序对应的应用程序状态的子集;并且针对所述多个结果的子集中的每个结果呈现本机应用程序的链接和表示。
[2461] 在又一方面,提供了将应用程序状态在搜索查询索引中编入索引的设备的方法和装置。在该实施方案中,从耦接到服务器的另一设备接收应用程序的应用程序状态。设备还生成与该应用程序状态对应的应用程序的视图,其中该视图是与该应用程序状态对应的应用程序的用户界面的表示。另外,设备将该视图在搜索查询索引中编入索引。在一些实施方案中,提供了一种机器可读介质,其具有可执行指令,使得一个或多个处理单元执行方法以将应用程序状态在搜索查询索引中编入索引,该方法包括:使用服务器从耦接到该服务器的设备接收应用程序的应用程序状态;生成与该应用程序状态对应的应用程序的视图,其中该视图是与该应用程序状态对应的应用程序的用户界面的表示;并且将该视图在搜索查询索引中编入索引。在一些实施方案中,还包括:将该视图链接到该应用程序状态的索引条目。在一些实施方案中,索引条目是索引的一部分,其中索引包括针对来自耦接到服务器的多个设备的多个应用程序,其应用程序状态的多个索引条目。在一些实施方案中,应用程序状态包括表示针对该应用程序状态的应用程序的即时快照的数据。在一些实施方案中,索引条目包括选自标题、可搜索数据和特定于应用程序的不透明数据的信息。在一些实施方案中,视图是图像。在一些实施方案中,视图是具有多个的图像。在一些实施方案中,生成包括:在虚拟设备上执行应用程序;以及捕获与应用程序状态对应的应用程序的用户界面的屏幕图像。在一些实施方案中,生成包括:用应用程序状态模拟应用程序;以及捕获与应用程序状态对应的应用程序的用户界面的屏幕图像。
[2462] 在一些实施方案中,提供了一种机器可读介质,其具有可执行指令,使得一个或多个处理单元执行方法以检索具有与查询结果相关联的视图的应用程序状态,该方法包括:向服务器发送查询;从服务器接收查询结果,其中该结果包括与该结果对应的应用程序的应用程序状态的视图,并且该视图是与应用程序状态相对应的应用程序的用户界面的表示;并且呈现具有视图的指示的结果。在一些实施方案中,还包括:响应于用户的手势呈现视图。
[2463] 示例性电子设备的功能框图
[2464] 根据一些实施方案,图42示出根据各种所述实施方案的原理进行配置的电子设备4200的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图42中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备4200被实现为便携式多功能设备100(图1A至图1B)。
[2465] 如图42所示,电子设备4200包括被配置为显示信息的显示单元4201(例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元4203(例如,图1A的显示控制器156和触敏显示器系统112),以及与显示单元4201和触敏表面单元4203耦接的处理单元4205。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图42示出了与电子设备4200集成的显示单元4201和触敏表面单元4203,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。在一些实施方案中,处理单元包括执行单元(例如,图42的执行单元4207)、收集单元(例如,图42的收集单元4209)、获取单元(例如,图42的获取单元4211)、关联单元(例如,图42的关联单元4213)、提供单元(例如,图42的提供单元4215)、发送单元(例如,图42的发送单元4217)、接收单元(例如,图42的接收单元4219)、显示单元(例如,图42的显示单元4221)、检测单元(例如,图42的检测单元4223)、执行单元(例如,图42的执行单元
4225)、确定单元(例如,图42的确定单元4227)和监视单元(例如,图42的监视单元4229)。
[2466] 在一些实施方案中,处理单元4205(或其一个或多个部件,诸如单元1007至1029)被配置为:响应于来自电子设备的用户的指令,在电子设备上(例如,利用执行单元4207)执行应用程序;在执行应用程序时,(例如,利用收集单元4209)收集使用数据,该使用数据至少包括用户在应用程序内执行的一个或多个动作;在无人为干预的情况下,(例如,利用获取单元4211)自动基于收集的使用数据获取至少一个触发条件;(例如,利用关联单元4213)将所述至少一个触发条件与用户在应用程序内执行的一个或多个动作的特定动作关联;并且在确定已经满足所述至少一个触发条件时,(例如,利用提供单元4215)向用户提供指示,指示与触发条件相关联的特定动作可用。在电子设备4200的一些实施方案中,处理单元(或其一个或多个部件,诸如单元4207至4229)被进一步配置为执行以上在“发明内容”部分中所描述的A2至A22的任一者中的方法。
[2467] 根据一些实施方案,图43示出根据各种所述实施方案的原理进行配置的电子设备4300的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图43中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备4300被实现为便携式多功能设备100(图1A至图1B)。
[2468] 如图43所示,电子设备4300包括被配置为显示信息的显示单元4301(例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元4303(例如,图1A的显示控制器156和触敏显示器系统112),以及与显示单元4301和触敏表面单元4303耦接的处理单元4305。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图43示出了与电子设备4300集成的显示单元4301和触敏表面单元4303,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。在一些实施方案中,处理单元包括显示单元(例如,图43的显示单元4309)、检测单元(例如,图43的检测单元4307)、检索单元(例如,图43的检索单元4311)、填充单元(例如,图43的填充单元4313)、滚动单元(例如,图43的滚动单元4315)、显现单元(例如,图43的显现单元4317)、选择单元(例如,图43的选择单元4319)、接触单元(例如,图43的接触单元4321)、接收单元(例如,图43的接收单元4323)和执行单元(例如,图43的执行单元
4325)。
[2469] 在一些实施方案中,处理单元4305(或其一个或多个部件,诸如单元4307至4329)被配置为:(例如,利用检测单元4307和/或触敏表面单元4303)检测触敏显示器上来自电子设备用户的搜索激活手势;响应于检测到搜索激活手势,在触敏显示器上(例如,利用显示单元4309和/或显示单元4301)显示搜索界面,该搜索界面包括:(i)搜索入口部分;以及(ii)在搜索入口部分处接收到任何用户输入前显示的预测部分,预测部分由以下一项或多项填充:(a)用于联系多个之前联系人员中某个人员的至少一个示能表示,(例如,通过选择单元4319)至少部分地基于当前时间从所述多个之前联系的人员中自动选择该人员,以及(b)用于在电子设备上可用的多个应用程序的某个应用程序中执行预测的动作的至少一个示能表示,(例如,通过选择单元4319)至少部分地基于与电子设备用户相关联的应用程序使用历史来自动选择预测的动作。在电子设备4300的一些实施方案中,处理单元(或其一个或多个部件,诸如单元4307至4325)被进一步配置为执行以上在“发明内容”部分中所描述的C2至C18的任一者中的方法。
[2470] 根据一些实施方案,图44示出根据各种所述实施方案的原理进行配置的电子设备4400的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图44中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备4400被实现为便携式多功能设备100(图1A至图1B)。
[2471] 如图44所示,电子设备4400包括被配置为显示信息的显示单元4401(例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元4403(例如,图1A的显示控制器156和触敏显示器系统112),以及与显示单元4401和触敏表面单元4403耦接的处理单元4405。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图44示出了与电子设备4400集成的显示单元4401和触敏表面单元4403,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。在一些实施方案中,处理单元包括检测单元(例如,图44的检测单元4407)、显示单元(例如,图44的显示单元4409)、检索单元(例如,图44的检索单元4411)、搜索模式进入单元(例如,图44的搜索模式进入单元4412)、填充单元(例如,图44的填充单元4413)、获取单元(例如,图44的获取单元4415)、确定单元(例如,图44的确定单元4417)和选择单元(例如,图44的选择单元4419)。
[2472] 处理单元4405(或其一个或多个部件,诸如单元4407至4419)被配置为:在显示单元(例如,显示单元4401)上(例如,利用显示单元4409和/或显示单元4401)显示与正在电子设备上执行的应用程序相关联的内容;通过触敏表面单元(例如,触敏表面单元4403)并(例如,利用检测单元4407和/或触敏表面单元4403)检测轻扫手势,当检测到该手势时,将使电子设备进入不同于该应用程序的搜索模式;响应于检测到轻扫手势,(例如,利用搜索模式进入单元4411)进入搜索模式,搜索模式包括显示单元(例如,显示单元4407)上显示的搜索界面;结合进入搜索模式,至少部分地基于与该内容相关联的信息(例如,利用确定单元4417)确定至少一个建议的搜索查询;并且在搜索界面处接收到任何用户输入之前,使用所述至少一个建议的搜索查询并(例如,利用填充单元4413)填充显示的搜索界面。在电子设备4400的一些实施方案中,处理单元(或其一个或多个部件,诸如单元4407至4419)被进一步配置为执行以上在“发明内容”部分中所描述的D2至D16的任一者中的方法。
[2473] 根据一些实施方案,图45示出根据各种所述实施方案的原理进行配置的电子设备4500的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图45中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备4500被实现为便携式多功能设备100(图1A至图1B)。
[2474] 如图45所示,电子设备4500包括被配置为显示信息的显示单元4501(例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元4503(例如,图1A的显示控制器156和触敏显示器系统112),以及与显示单元4501和触敏表面单元4503耦接的处理单元4505。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图45示出了与电子设备4500集成的显示单元4501和触敏表面单元4503,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。在一些实施方案中,处理单元包括检测单元(例如,图45的检测单元4507)、显示单元(例如,图45的显示单元4509)、填充单元(例如,图45的填充单元4511)和搜索模式进入单元(例如,图45的搜索模式进入单元4513)。
[2475] 处理单元4505(或其一个或多个部件,诸如单元1007至1029)被配置为:通过触敏表面单元(例如,触敏表面单元4503)并(例如,利用检测单元4507和/或触敏表面单元4503)检测用户界面上的轻扫手势,其中当检测到轻扫手势时,将使电子设备进入搜索模式;并且响应于检测到轻扫手势,(例如,利用搜索模式进入单元4513)进入搜索模式,并且进入搜索模式包括:在搜索界面内接收到任意用户输入前,使用第一内容项并(例如,利用填充单元4511和/或显示单元4509和/或显示单元4501)填充与用户界面不同的搜索界面。在一些实施方案中,根据确定用户界面包括与某个应用程序相关联的内容,其中该用户界面不同于包括用于调用应用程序的可选图标的home屏幕,使用第一内容项填充搜索界面包括使用所述至少一个建议的搜索查询并(例如,利用填充单元4511)填充搜索界面,其中该搜索查询至少部分地基于与该应用程序相关联的内容;并且根据确定用户界面与home屏幕的页面相关联,使用第一内容项填充搜索界面包括使用示能表示并(例如,利用填充单元4511)填充搜索界面,该示能表示包括对电子设备当前位置的阈值距离内的至少一个兴趣点的可选描述。在电子设备4500的一些实施方案中,处理单元(或其一个或多个部件,诸如单元4507至
4513)被进一步配置为执行以上在“发明内容”部分中所描述的E2的方法。
[2476] 根据一些实施方案,图46示出根据各种所述实施方案的原理进行配置的电子设备4600的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图46中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备4600被实现为便携式多功能设备100(图1A至图1B)。
[2477] 如图46所示,电子设备4600包括被配置为显示信息的显示单元4601(例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元4603(例如,图1A的显示控制器156和触敏显示器系统112)、被配置为获得电子设备的定位信息的位置传感器单元4607以及与显示单元4601、触敏表面单元4603和位置传感器单元4607耦接的处理单元4605。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图46示出了与电子设备4600集成的显示单元4601和触敏表面单元4603,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。在一些实施方案中,处理单元包括显示单元(例如,图46的显示单元4609)、检索单元(例如,图46的检索单元4611)、确定单元(例如,图46的确定单元4613)、存储单元(例如,图46的存储单元4615)、识别单元(例如,图46的识别单元4617)、选择单元(例如,图46的选择单元4619)、接收单元(例如,图46的接收单元4621)、提供单元(例如,图46的提供单元
4623)和回放单元(例如,图46的回放单元4625)。
[2478] 处理单元4605(或其一个或多个部件,诸如单元4609至4625)被配置为:在无来自用户的指令情况下,(例如,利用确定单元4613)自动确定电子设备用户位于停留在某个地理位置的车辆内;在确定用户已经离开位于该地理位置的车辆时,(例如,利用确定单元4613)确定从位置传感器单元(例如,位置传感器单元4607)(例如,利用检索单元4621)检索的用于(例如,利用识别单元4617)识别地理位置的定位信息是否满足准确度标准;在(例如,利用确定单元4613)确定定位信息不满足准确度标准时,向用户(例如,利用提供单元
4623)提供输入有关地理位置信息的提示;并且响应于提供该提示,(例如,利用接收单元
4623)从用户接收关于该地理位置的信息,并将该信息(例如,利用存储单元4615)存储为车辆位置信息。在电子设备4600的一些实施方案中,处理单元(或其一个或多个部件,诸如单元4609至4625)被进一步配置为执行以上在“发明内容”部分中所描述的F2至F16的任一者中的方法。
[2479] 根据一些实施方案,图47示出根据各种所述实施方案的原理进行配置的电子设备4700的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图47中所述的功能块任选地被组合或被分离为子块,以便实现各种所述实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备4700被实现为便携式多功能设备100(图1A至图1B)。
[2480] 如图47所示,电子设备4700包括被配置为显示信息的显示单元4701(例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元4703(例如,图1A的显示控制器156和触敏显示器系统112)、被配置为获得电子设备的定位信息的位置传感器单元4707以及与显示单元4701和触敏表面单元4703耦接的处理单元4705。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图47示出了与电子设备4700集成的显示单元4701和触敏表面单元4703,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。在一些实施方案中,处理单元包括检测单元(例如,图47的检测单元4709)、显示单元(例如,图47的显示单元4711)、检索单元(例如,图47的检索单元4713)、确定单元(例如,图47的确定单元4715)、识别单元(例如,图47的识别单元4717)、解锁单元(例如,图47的解锁单元4719)和搜索模式进入单元(例如,图47的搜索模式进入单元4721)。
[2481] 处理单元4705(或其一个或多个部件,诸如单元4709至4719)被配置为:在不接收任何来自电子设备用户的指令情况下:使用位置传感器单元(例如,位置传感器单元4707)监测电子设备的地理位置;基于监测的地理位置确定(例如,通过确定单元4715)电子设备在预定类型的兴趣点的阈值距离内;根据确定电子设备在兴趣点的阈值距离内:识别(例如,通过识别单元4717)当前在兴趣点处流行的至少一项活动;检索(例如,通过检索单元4713)关于该兴趣点的信息,包括检索关于至少一项当前在兴趣点处流行的活动的信息;通过触敏表面单元(例如,触敏表面单元4703)检测(例如,通过检测单元4709和/或触敏表面单元4703)第一输入,第一输入当被检测到时使电子设备进入搜索模式;并且响应于检测到第一输入,进入搜索模式(例如,通过搜索模式进入单元4721),并且进入搜索模式包括在搜索界面处接收到任何用户输入之前,通过显示单元(例如,显示单元4701)呈现(例如,通过显示单元4711和/或显示单元4701)包括以下项的示能表示:(i)关于所述至少一项活动的信息,以及(ii)所述至少一项活动已被确定为当前在兴趣点处流行的活动的指示。在电子设备4700的一些实施方案中,处理单元(或其一个或多个部件,例如单元4709至4719)被进一步配置为执行如上所述的“摘要”部分中的G2至G10中的任一方法。
[2482] 根据一些实施方案,图48示出根据各种所述实施方案的原理进行配置的电子设备4800的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图48中所述的功能块任选地被组合或被分离为子块,以便实现各种所描述的实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备4800被实现为便携式多功能设备100(图1A至图1B)。
[2483] 如图48所示,电子设备4800包括被配置为显示信息的显示单元4801(例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元4803(例如,图1A的显示控制器156和触敏显示器系统112)、以及与显示单元4801和触敏表面单元4803耦接的处理单元4805。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图48示出了与电子设备4800集成的显示单元4801和触敏表面单元4803,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括语音通信接收单元(例如,图48的语音通信接收单元4807)、内容项提取单元(例如,图48的内容项提取单元4809)、可用性确定单元(例如,图48的可用性确定单元4811)、应用程序识别单元(例如,图48的应用程序识别单元4813)、显示单元(例如,图48的显示单元4815)、内容项存储单元(例如,图48的内容项存储单元4817)、反馈提供单元(例如,图48的反馈提供单元4819)、输入检测单元(例如,图48的输入检测单元4821)、应用程序打开单元(例如,图48的应用程序打开单元4823)、填充单元(例如,图48的填充单元4825)和语音通信分析单元(例如,图48的语音通信分析单元4827)。
[2484] 在一些实施方案中,处理单元(或其一个或多个部件,诸如单元4807至4827)被配置为:接收语音通信的至少一部分(例如,通过语音通信接收单元4807),语音通信的该部分包括由不同于电子设备用户的远程设备的远程用户提供的语音。处理单元被进一步配置为:至少部分地基于由远程设备的远程用户提供的语音来提取内容项(例如,通过内容项提取单元4809),并确定内容项当前在电子设备上是否可用(例如,通过可用性确定单元4811)。根据确定内容项当前在电子设备上不可用,处理单元被进一步配置为:(i)识别与内容项相关联的应用程序(例如,通过应用程序识别单元4813),以及(ii)在显示器上显示内容项的可选描述(例如,通过显示单元4815和/或显示单元4801)。响应于检测到可选描述的选择(例如,通过输入检测单元4821和/或触敏表面单元4803),处理单元被配置为:存储该内容项以通过识别的应用程序进行呈现(例如,通过内容项存储单元4817)。
[2485] 在电子设备4800的一些实施方案中,内容项是新事件。
[2486] 在电子设备4800的一些实施方案中,内容项是当前与电子设备上的日历应用程序相关联的事件的新事件细节。
[2487] 在电子设备4800的一些实施方案中,内容项是新联系人。
[2488] 在电子设备4800的一些实施方案中,内容项是与电子设备上的电话应用程序相关联的现有联系人的新联系人信息。
[2489] 在电子设备4800的一些实施方案中,语音通信是实时电话呼叫。
[2490] 在电子设备4800的一些实施方案中,语音通信是实时FaceTime通话。
[2491] 在电子设备4800的一些实施方案中,语音通信是记录的语音信箱。
[2492] 在电子设备4800的一些实施方案中,显示可选描述包括在包括使用电话应用程序(例如,具有显示单元4815和/或显示单元4801)进行的最近呼叫的用户界面内显示可选描述。
[2493] 在电子设备4800的一些实施方案中,可选描述与以下指示一起显示:内容项与语音通信相关联(例如,使用显示单元4815和/或显示单元4801)。
[2494] 在电子设备4800的一些实施方案中,检测选择包括(例如,使用输入检测单元4821)在显示包括最近通话的用户界面的同时接收选择。
[2495] 在电子设备4800的一些实施方案中,处理单元被进一步配置为:结合显示内容项的可选描述,向电子设备的用户提供(例如,使用反馈提供单元4819)已检测到内容项的反馈。
[2496] 在电子设备4800的一些实施方案中,提供反馈包括将关于内容项的检测的信息(例如,通过反馈提供单元4819)发送到靠近电子设备的不同的电子设备。
[2497] 在电子设备4800的一些实施方案中,处理单元被进一步配置为:确定语音通信包括关于第一物理位置的信息;检测输入(例如,通过输入检测单元4821);并且响应于检测到输入,打开(例如,通过应用程序打开单元4823)能够接受位置数据并且用关于第一物理位置的信息填充该应用程序的应用程序。
[2498] 在电子设备4800的一些实施方案中,该应用程序为地图应用程序,并且使用与第一物理位置有关的信息填充该地图应用程序包括:使用与第一物理位置对应的位置标识符填充该地图应用程序内显示的地图。
[2499] 在电子设备4800的一些实施方案中,处理单元被进一步配置为:确定语音通信包括关于第一物理位置的信息;(例如,通过输入检测单元4821)检测输入,并且响应于检测到输入,使用关于第一物理位置的信息(例如,通过填充单元4825)填充搜索界面。
[2500] 在电子设备4800的一些实施方案中,提取内容项包括分析语音通信的一部分以检测预定类型的内容,并且在通过与电子设备通信的音频系统输出语音通信的时进行分析。
[2501] 在电子设备4800的一些实施方案中,分析语音通信包括(例如,使用语音通信分析单元4827):(i)将远程设备的远程用户提供的语音转换为文本;(ii)将自然语言处理算法应用于该文本以确定文本是否包括一个或多个预定义的关键字;并且(iii)根据确定文本包括相应的预定义关键字,确定语音通信包括描述内容项的语音。
[2502] 在电子设备4800的一些实施方案中,接收至少该部分语音通信包括从电子设备用户接收应分析语音通信该部分的指示(例如,指令)。
[2503] 在电子设备4800的一些实施方案中,该指示对应于硬件按钮的选择。
[2504] 在电子设备4800的一些实施方案中,该指示对应于来自电子设备用户的命令,包括字词“嘿,Siri”。
[2505] 在电子设备4800的一些实施方案中,处理单元被进一步配置为:接收语音通信的第二部分,该第二部分包括由远程设备的远程用户提供的语音和由电子设备的用户提供的语音(例如,语音通信是实时电话呼叫,该第二部分包括用户与远程用户之间的讨论)。处理单元被进一步配置为:至少部分地基于由远程设备的远程用户提供的语音和由电子设备的用户提供的语音(例如,使用内容项提取单元)提取第二内容项4809;根据确定第二内容项当前在电子设备上不可用:(i)识别与第二内容项相关联的第二应用程序(例如,通过应用程序识别单元4813),以及(ii)在显示器上显示第二内容项的第二可选描述(例如,通过显示单元4815和/或显示单元4801)。响应于检测到第二可选描述的选择,处理单元被配置为:(例如,使用内容项存储单元4817)存储第二内容项以通过识别的第二应用程序进行呈现。
[2506] 在电子设备4800的一些实施方案中,在用户界面内显示可选描述和第二可选描述,其中该用户界面包括使用电话应用程序进行过的最近通话。
[2507] 根据一些实施方案,图49示出根据各种所述实施方案的原理进行配置的电子设备4900的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图49中所述的功能块任选地被组合或被分离为子块,以便实现各种所描述的实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备4900被实现为便携式多功能设备100(图1A至图1B)。
[2508] 如图49所示,电子设备4900包括被配置为显示信息的显示单元4901(例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元4903(例如,图1A的显示控制器156和触敏显示器系统112)、以及与显示单元4901和触敏表面单元4903耦接的处理单元4905。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图49示出了与电子设备4900集成的显示单元4901和触敏表面单元4903,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括语音通信接收单元(例如,图49的语音通信接收单元4907)、内容项提取单元(例如,图49的内容项提取单元4909)、指示提供单元(例如,图49的指示提供单元4911)、输入检测单元(例如,图49的输入检测单元4913)、应用程序打开单元(例如,图49的应用程序打开单元4915)、应用程序填充单元(例如,图49的应用程序填充单元4917)、反馈提供单元(例如,图49的反馈提供单元4919)和语音通信分析单元(例如,图49的语音通信分析单元4921)。
[2509] 在一些实施方案中,处理单元(或其一个或多个部件,诸如单元4907至4921)被配置为:接收语音通信的至少一部分(例如,通过语音通信接收单元4907),语音通信的该部分包括由不同于电子设备用户的远程设备的远程用户提供的语音。处理单元被进一步配置为:确定语音通信包括识别物理位置的语音(例如,通过内容项提取单元4909)。响应于确定语音通信包括识别该物理位置的语音,处理单元被配置为:提供已检测到关于该物理位置的信息的指示(例如,通过内容项提取单元4909)。处理单元被进一步配置为:通过触敏表面单元检测输入(例如,通过输入检测单元4911)。响应于检测到输入,处理单元2506被配置为:(i)打开接受地理位置数据的应用程序(例如,通过应用程序打开单元4913),并且(ii)使用有关物理位置的信息填充该应用程序(例如,通过应用程序填充单元4915)。
[2510] 在电子设备4900的一些实施方案中,语音通信是实时电话呼叫。
[2511] 在电子设备4900的一些实施方案中,语音通信是实时FaceTime通话。
[2512] 在电子设备4900的一些实施方案中,语音通信是记录的语音信箱。
[2513] 在电子设备4900的一些实施方案中,提供指示包括在用户界面内显示物理位置的可选描述,其中该用户界面包括使用电话应用程序进行过的最近通话。
[2514] 在电子设备4900的一些实施方案中,可选描述指示内容项与语音通信相关联。
[2515] 在电子设备4900的一些实施方案中,检测输入包括:在显示包括最近通话的用户界面的同时在可选描述上检测输入。
[2516] 在电子设备4900的一些实施方案中,提供指示包括向电子设备的用户提供触觉反馈(例如,使用反馈提供单元4919)。
[2517] 在电子设备4900的一些实施方案中,提供指示包括将关于物理位置的信息(例如,使用反馈提供单元4919)发送到靠近电子设备的不同的电子设备。
[2518] 在电子设备4900的一些实施方案中,确定语音通信包括描述物理位置的语音包括:分析语音通信的该部分以(例如,使用语音通信分析单元4921)检测关于物理位置的信息,并且在通过与电子设备通信的音频系统输出语音通信的同时执行分析。
[2519] 在电子设备4900的一些实施方案中,接收至少该部分语音通信包括从电子设备用户接收应分析语音通信该部分的指令。
[2520] 在电子设备4900的一些实施方案中,该指令对应于硬件按钮的选择。
[2521] 在电子设备4900的一些实施方案中,该指令对应于来自电子设备用户的命令,包括字词“嘿,Siri”。
[2522] 根据一些实施方案,图50示出根据各种所述实施方案的原理进行配置的电子设备5000的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图50中所述的功能块任选地被组合或被分离为子块,以便实现各种所描述的实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备5000被实现为便携式多功能设备100(图1A至图1B)。
[2523] 如图50所示,电子设备5000包括被配置为显示信息的显示单元5001(例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元5003(例如,图1A的显示控制器156和触敏显示器系统112)、以及与显示单元5001和触敏表面单元5003耦接的处理单元5005。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图50示出了与电子设备5000集成的显示单元5001和触敏表面单元5003,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括呈现单元(例如,图50的呈现单元5007)、下一输入确定单元(例如,图50的下一输入确定单元5009)、内容分析单元(例如,图50的内容分析单元5011)、选择接收单元(例如,图50的选择接收单元5013)、键入输入监视单元(例如,图50的键入输入监视单元5015)和呈现停止单元(例如,图50的呈现停止单元5017)。
[2524] 在一些实施方案中,处理单元(或其一个或多个部件,例如单元5007至5017)被配置为:在显示器上的即时消息应用程序中呈现文本输入字段和会话副本(例如,通过呈现单元5007和/或显示单元5001)。当在显示器上呈现即时消息应用程序时,处理单元被进一步配置为:确定来自电子设备用户的下一个可能的输入是关于物理位置的信息(例如,通过下一输入确定单元5009)处理单元另被配置为:分析与文本输入字段和会话副本相关联的内容,至少部分地基于分析的内容的一部分确定建议的物理位置(例如,通过内容分析单元5011);在显示器上的即时消息应用程序内呈现识别建议物理位置的可选用户界面元素(例如,通过呈现单元5007);接收可选用户界面元素的选择(例如,通过选择接收单元5013和/或触敏表面单元5003);并且响应于接收到选择,在文本输入字段中呈现建议物理位置的表示(例如,通过呈现单元5007)。
[2525] 在电子设备5000的一些实施方案中,即时消息应用程序包括虚拟键盘,并且可选用户界面元素显示在与虚拟键盘相邻并且在虚拟键盘上方的建议部分中。
[2526] 在电子设备5000的一些实施方案中,确定来自电子设备用户的下一个可能的输入是关于物理位置的信息包括:处理与文本输入字段和会话副本相关联的内容以检测会话副本包括有关用户当前位置的问题。
[2527] 在电子设备5000的一些实施方案中,处理内容包括应用自然语言处理算法检测构成该问题的一个或多个预定义关键字。
[2528] 在电子设备5000的一些实施方案中,该问题包括在从不同于该用户的第二用户接收的消息中。
[2529] 在电子设备5000的一些实施方案中,确定来自电子设备用户的下一个可能的输入是关于物理位置的信息包括:在即时消息应用程序的文本输入部分中(例如,使用键入输入监视单元5015)监视从用户接收的键入输入。
[2530] 在电子设备5000的一些实施方案中,处理单元被进一步配置为:根据确定用户正在键入且尚未选择可选用户界面元素,(例如,使用呈现停止单元5017)停止呈现可选用户界面元素。
[2531] 在电子设备5000的一些实施方案中,处理单元被进一步配置为:根据确定用户已提供额外输入,其中该输入指示用户将不会选择可选用户界面元素,(例如,使用呈现停止单元5017)停止呈现可选用户界面元素。
[2532] 在电子设备5000的一些实施方案中,建议物理位置的表示包括用于识别电子设备的当前地理位置的信息。
[2533] 在电子设备5000的一些实施方案中,建议物理位置的表示是地址。
[2534] 在电子设备5000的一些实施方案中,建议的物理位置是地图对象,该地图对象包括建议物理位置的标识符。
[2535] 在电子设备5000的一些实施方案中,建议的物理位置对应于用户最近在即时消息应用程序之外的应用程序中查看的位置。
[2536] 在电子设备5000的一些实施方案中,即时消息应用程序是邮件应用程序。
[2537] 在电子设备5000的一些实施方案中,即时消息应用程序是文本消息应用程序。
[2538] 根据一些实施方案,图51示出根据各种所述实施方案的原理进行配置的电子设备5100的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图51中所述的功能块任选地被组合或被分离为子块,以便实现各种所描述的实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备5100被实现为便携式多功能设备100(图1A至图1B)。
[2539] 如图51所示,电子设备5100包括被配置为显示信息的显示单元5101(例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元5103(例如,图1A的显示控制器156和触敏显示器系统112)、以及与显示单元5101和触敏表面单元5103耦接的处理单元5105。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图51示出了与电子设备5100集成的显示单元5101和触敏表面单元5103,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括信息获取单元(例如,图51的信息获取单元5107)、应用程序退出单元(例如,图51的应用程序退出单元5109)、请求接收单元(例如,图51的请求接收单元5111)、应用程序能力确定单元(例如,图51的应用程序能力确定单元5113)、应用程序呈现单元(例如,图51的应用程序呈现单元5115)、应用程序填充单元(例如,图51的应用程序填充单元5117)、输入检测单元(例如,图51的输入检测单元5119)、应用程序切换用户界面显示单元(例如,图51的应用程序切换用户界面显示单元5121)、应用程序关联确定单元(例如,图51的应用程序关联确定单元5123)和访问提供单元(例如,图51的访问提供单元
5125)。
[2540] 在一些实施例方案中,处理单元(或其一个或多个部件,例如单元5107至5125)被配置为:在显示第一应用程序的同时,获取用于识别用户在第一应用程序中查看的第一物理位置的信息(例如,通过信息获取单元5107)。处理单元被进一步配置为:退出第一应用程序(例如,通过应用程序退出单元5109),并且在退出第一应用程序后,从用户接收打开不同于第一应用程序的第二应用程序的请求(例如,通过请求接收单元5111)。响应于接收到请求并且根据确定第二应用程序能够接受地理位置信息(例如,由应用程序能力确定单元5113处理或执行的确定),呈现第二应用程序(例如,通过应用程序呈现单元5115),并且呈现第二应用程序包括使用至少部分地基于第一物理位置识别信息的信息填充第二应用程序(例如,通过应用程序填充单元5117)。
[2541] 在电子设备5100的一些实施方案中,接收打开第二应用程序的请求包括:退出第一应用程序后,在第二应用程序的示能表示上(例如,使用输入检测单元5119)检测输入。
[2542] 在电子设备5100的一些实施方案中,第二应用程序的示能表示是显示在电子设备home屏幕内的图标。
[2543] 在电子设备5100的一些实施方案中,检测输入包括:(i)在物理Home按钮上检测双击,(ii)响应于检测到双击,(例如,使用应用程序切换用户界面显示单元5121)显示应用程序切换用户界面,以及(iii)从应用程序切换用户界面内检测示能表示的选择。
[2544] 在电子设备5100的一些实施方案中,填充第二应用程序包括显示用户界面对象,该用户界面对象包括至少部分地基于第一物理位置识别信息的信息。
[2545] 在电子设备5100的一些实施方案中,该用户界面对象包括通知用户第一物理位置最近在第一应用程序中被查看的文本描述。
[2546] 在电子设备5100的一些实施方案中,该用户界面对象是在第二应用程序中显示的地图,并且填充第二应用程序包括填充地图以包括第一物理位置的标识符。
[2547] 在电子设备5100的一些实施方案中,第二应用程序呈现虚拟键盘,并且该用户界面对象显示在虚拟键盘的上方。
[2548] 在电子设备5100的一些实施方案中,获取信息包括获取关于第二物理位置的信息,显示用户界面对象包括显示具有与第二物理位置有关的信息的用户界面对象。
[2549] 在电子设备5100的一些实施方案中,确定第二应用程序能够接受地理位置信息包括执行以下各项中的一个或多个(例如,由应用程序关联确定单元5123和/或应用程序能力确定单元5113执行的一个或多个确定):(i)确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段;(ii)确定第二应用程序能够在地图上显示地理位置信息;(iii)确定第二应用程序能够使用地理位置信息来促进路线引导;以及(iv)确定第二应用程序能够使用地理位置信息定位和提供运输服务。
[2550] 在电子设备5100的一些实施方案中,确定第二应用程序能够接受地理位置信息包括:确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段,并且输入接收字段是搜索框,该搜索框允许在第二应用程序中显示的地图内进行搜索。
[2551] 在电子设备5100的一些实施方案中,处理单元被进一步配置为:响应于接收到请求,基于用户的应用程序使用历史(例如,使用应用关联确定单元5123)确定第二应用程序是否与第一应用程序相关联。
[2552] 在电子设备5100的一些实施方案中,处理单元被进一步配置为:在呈现第二应用程序之前,(例如,使用访问提供单元5125)为第二应用程序提供对识别第一物理位置的信息的访问权限,并且在提供该访问权限之前,第二应用程序不能访问识别第一物理位置的信息。
[2553] 根据一些实施方案,图52示出根据各种所述实施方案的原理进行配置的电子设备5200的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图52中所述的功能块任选地被组合或被分离为子块,以便实现各种所描述的实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备5200被实现为便携式多功能设备100(图1A至图1B)。
[2554] 如图52所示,电子设备5200包括被配置为显示信息的显示单元5201(例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元5203(例如,图1A的显示控制器156和触敏显示器系统112)、以及与显示单元5201和触敏表面单元5203耦接的处理单元5205。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图52示出了与电子设备5200集成的显示单元5201和触敏表面单元5203,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括信息获取单元(例如,图52的信息获取单元5207)、输入检测单元(例如,图52的输入检测单元5209)、应用程序识别单元(例如,图52的应用程序识别单元5211)、示能表示呈现单元(例如,图52的示能表示呈现单元5213)、应用程序打开单元(例如,图52的应用程序打开单元5215)、应用程序填充单元(例如,图52的应用程序填充单元
5217)、应用程序切换用户界面呈现单元(例如,图52的应用程序切换用户界面呈现单元
5219)、应用程序能力确定单元(例如,图52的应用程序能力确定单元5221)。
[2555] 在一些实施方案中,处理单元(或其一个或多个部件,例如单元5207至5221)被配置为:获取用于识别用户在第一应用程序中查看的第一物理位置的信息(例如,通过信息获取单元5207)并且检测第一输入(例如,通过输入检测单元5209)。响应于检测到第一输入,处理单元被配置为:(i)识别能够接受地理位置信息的第二应用程序(例如,通过应用程序识别单元5209),以及(ii)在显示器的至少一部分上呈现不同于第一应用程序的示能表示,并建议打开具有关于第一物理位置的信息的第二应用程序(例如,通过示能表示呈现单元5213)。处理单元还被配置为:在示能表示处检测第二输入(例如,通过输入检测单元5209)。
响应于在示能表示处检测到第二输入,处理单元被配置为:(i)打开第二应用程序(例如,通过应用程序打开单元5215),以及(ii)填充第二应用程序以包括至少部分地基于第一物理位置识别信息的信息(例如,通过应用程序填充单元5217)。
[2556] 在电子设备5200的一些实施方案中,第一输入对应于打开应用程序切换用户界面的请求(例如,第一输入是在电子设备的物理Home按钮上的双击)
[2557] 在电子设备5200的一些实施方案中,在应用程序切换用户界面内呈现示能表示。
[2558] 在电子设备5200的一些实施方案中,呈现示能表示包括:结合呈现示能表示,在应用程序切换用户界面内(例如,使用应用程序切换用户界面呈现单元5219)呈现正在电子设备上执行的应用程序的表示;并且在位于应用程序表示下方的显示器区域中呈现示能表示。
[2559] 在电子设备5200的一些实施方案中,第一输入对应于打开电子设备home屏幕的请求(例如,第一输入是在电子设备的物理Home按钮上的单次轻击)。
[2560] 在电子设备5200的一些实施方案中,在home屏幕的一部分上呈现示能表示。
[2561] 在电子设备5200的一些实施方案中,该建议包括文本描述,该文本描述特定于与第二应用程序相关联的类型。
[2562] 在电子设备5200的一些实施方案中,填充第二应用程序包括显示用户界面对象,该用户界面对象包括至少部分地基于第一物理位置识别信息的信息。
[2563] 在电子设备5200的一些实施方案中,该用户界面对象包括通知用户第一物理位置最近在第一应用程序中被查看的文本描述。
[2564] 在电子设备5200的一些实施方案中,该用户界面对象是在第二应用程序中显示的地图,并且填充第二应用程序包括填充地图以包括第一物理位置的标识符。
[2565] 在电子设备5200的一些实施方案中,第二应用程序呈现虚拟键盘,并且该用户界面对象显示在虚拟键盘的上方。
[2566] 在电子设备5200的一些实施方案中,识别能够接受地理位置信息的第二应用程序包括执行以下各项中的一个或多个(例如,使用应用程序能力确定单元5221执行的一个或多个确定):(i)确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段;(ii)确定第二应用程序能够在地图上显示地理位置信息;(iii)确定第二应用程序能够使用地理位置信息来促进路线引导;以及(iv)确定第二应用程序能够使用地理位置信息定位和提供运输服务。
[2567] 在电子设备5200的一些实施方案中,识别第二应用程序能够接受地理位置信息包括:(例如,使用应用程序能力确定单元5221)确定第二应用程序包括能够接受和处理地理位置数据的输入接收字段,并且输入接收字段是搜索框,该搜索框允许在第二应用程序中显示的地图内进行搜索。
[2568] 根据一些实施方案,图53示出根据各种所述实施方案的原理进行配置的电子设备5300的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图53中所述的功能块任选地被组合或被分离为子块,以便实现各种所描述的实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备5300被实现为便携式多功能设备100(图1A至图1B)。
[2569] 如图53所示,电子设备5300包括被配置为显示信息的显示单元5301(例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元5303(例如,图1A的显示控制器156和触敏显示器系统112)、以及与显示单元5301和触敏表面单元5303耦接的处理单元5305。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图53示出了与电子设备5300集成的显示单元5301和触敏表面单元5303,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括信息获取单元(例如,图53的信息获取单元5307)、车辆进入确定单元(例如,图53的车辆进入确定单元5309)、提示提供单元(例如,图53的提示提供单元5311)、指令接收单元(例如,图53的指令接收单元5313)、路线引导促进单元(例如,图53的路线引导促进单元5315)和消息检测单元(例如,图53的消息检测单元5317)。
[2570] 在一些实施方案中,处理单元(或其一个或多个部件,例如单元5307至5317)被配置为:获取用于识别用户在所述电子设备上正在执行的所述第一应用程序中查看的第一物理位置的信息(例如,通过信息获取单元5307)。处理单元还被配置为:确定用户已经进入车辆(例如,通过车辆进入确定单元5309)。响应于确定用户已经进入车辆,处理单元被配置为:向用户提供提示,提示用户将第一物理位置作为路线引导的目的地使用(例如,通过提示提供单元5311)。响应于提供该提示,从用户接收指令,指示用户将第一物理位置作为路线引导的目的地使用(例如,通过指令接收单元5313)。处理单元另被配置为:促进到第一物理位置的路线引导(例如,通过路线引导促进单元5307)。
[2571] 在电子设备5300的一些实施方案中,处理单元被进一步配置为:(例如,通过消息检测单元5317)检测所述电子设备已经接收到消息,包括检测所述消息包含识别第二物理位置的信息;并且响应于所述检测,(例如,通过提示提供单元5311)向所述用户提供使用该第二物理位置作为路线引导的新目的地的新提示。
[2572] 在电子设备5300的一些实施方案中,处理单元被进一步配置为:响应于从用户接收到将第二物理位置作为新目的地使用的指令,(例如,通过路线引导促进单元5315)促进到第二物理位置的路线引导。
[2573] 在电子设备5300的一些实施方案中,检测消息含有识别第二物理位置的信息包括:当电子设备上可用的虚拟助理正在通过和电子设备通信的音频系统将消息读出给用户时,执行检测。
[2574] 在电子设备5300的一些实施方案中,确定用户已经进入车辆包括检测电子设备已经建立与车辆的通信链路。
[2575] 在电子设备5300的一些实施方案中,促进路线引导包括通过电子设备的显示器提供路线引导。
[2576] 在电子设备5300的一些实施方案中,促进路线引导包括向车辆发送识别第一物理位置的信息。
[2577] 在电子设备5300的一些实施方案中,促进路线引导包括通过与电子设备通信的音频系统提供路线引导(例如,汽车扬声器或设备自身的内部扬声器)。
[2578] 根据一些实施方案,图54示出根据各种所述实施方案的原理进行配置的电子设备5400的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图54中所述的功能块任选地被组合或被分离为子块,以便实现各种所描述的实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备5400被实现为便携式多功能设备100(图1A至图1B)。
[2579] 如图54所示,电子设备5400包括被配置为显示信息的显示单元5401(例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元5403(例如,图1A的显示控制器156和触敏显示器系统112)、以及与显示单元5401和触敏表面单元5403耦接的处理单元5405。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图54示出了与电子设备5400集成的显示单元5401和触敏表面单元5403,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括呈现单元(例如,图54的呈现单元5407)、请求接收单元(例如,图54的请求接收单元5409)、用户界面对象提供单元(例如,图54的用户界面对象提供单元5411)、主动粘贴单元(例如,图54的主动粘贴单元5413)和能力确定单元(例如,图54的能力确定单元5415)。
[2580] 在一些实施方案中,处理单元(或其一个或多个部件,例如单元5407至5415)被配置为:在第一应用程序中呈现内容(例如,通过呈现单元5407和/或显示单元5401);从用户接收打开不同于第一应用程序的第二应用程序的请求(例如,通过请求接收单元和/或触敏表面单元5403),第二应用程序包括输入接收字段;响应于接收到请求,呈现具有输入接收字段的第二应用程序(例如,通过呈现单元5407和/或显示单元5401);在输入接收字段处接收到任何用户输入之前,提供可选用户界面对象以允许用户将内容的至少一部分粘贴到输入接收字段中(例如,通过用户界面对象提供单元5411和/或显示单元5401);并且响应于检测到可选用户界面对象的选择,将内容的该部分粘贴到输入接收字段中(例如,通过主动粘贴单元5413)。
[2581] 在电子设备5400的一些实施方案中,在提供所述可选用户界面对象前,处理单元被进一步配置为:(例如,使用能力确定单元5415)将输入接收字段识别为能够接受内容该部分的字段。
[2582] 在电子设备5400的一些实施方案中,响应于检测到输入接收字段的选择,将输入接收字段识别为能够接受内容该部分的字段。
[2583] 在电子设备5400的一些实施方案中,内容的该部分对应于图像。
[2584] 在电子设备5400的一些实施方案中,内容的该部分对应于文本内容。
[2585] 在电子设备5400的一些实施方案中,内容的该部分对应于文本内容和图像。
[2586] 在电子设备5400的一些实施方案中,第一应用程序是网页浏览应用程序,第二应用程序是即时消息应用程序。
[2587] 在电子设备5400的一些实施方案中,第一应用程序是照片浏览应用程序,第二应用程序是即时消息应用程序。
[2588] 在电子设备5400的一些实施方案中,处理单元被进一步配置为:在接收打开第二应用程序的请求前,接收至少复制内容的所述部分的请求。
[2589] 在电子设备5400的一些实施方案中,可选用户界面对象与以下指示一起显示:内容的该部分最近在第一应用程序中被查看。
[2590] 根据一些实施方案,图55示出根据各种所述实施方案的原理进行配置的电子设备5500的功能框图。该设备的功能块任选地由进行各种所描述的实施方案的原理的硬件、软件、固件、或其组合来实现。本领域的技术人员应当理解,图55中所述的功能块任选地被组合或被分离为子块,以便实现各种所描述的实施方案的原理。因此,本文的描述任选地支持本文所述的功能块的任何可能的组合或分离或进一步限定。为了便于讨论,电子设备5500被实现为便携式多功能设备100(图1A至图1B)。
[2591] 如图55所示,电子设备5500包括被配置为显示信息的显示单元5501(例如,图1A的触敏显示器系统112(也称为触摸屏和触摸屏显示器))、被配置为在触摸屏显示器上接收接触、手势和其他用户输入的触敏表面单元5503(例如,图1A的显示控制器156和触敏显示器系统112)、以及与显示单元5501和触敏表面单元5503耦接的处理单元5505。在一些实施方案中,根据图1E所示计算设备的任何一个(例如,计算设备A至D)配置电子设备。为便于说明,图55示出了与电子设备5500集成的显示单元5501和触敏表面单元5503,然而,在一些实施方案中,尽管这些单元与电子设备保持物理地分离,但这些单元中的一者或两者与电子设备进行通信。处理单元包括呈现单元(例如,图55的呈现单元5507)、确定单元(例如,图55的确定单元5509)、获取单元(例如,图55的获取单元5511)、搜索执行单元(例如,图55的搜索执行单元5513)、信息准备单元(例如,图55的信息准备单元5515)、示能表示显示单元(例如,图55的示能表示显示单元5517)和检测单元(例如,图55的检测单元5519)。
[2592] 在一些实施方案中,处理单元(或其一个或多个部件,例如单元5507至5519)被配置为:在显示器上呈现与应用程序相关联的文本内容(例如,通过呈现单元5507和/或显示单元5501);确定文本内容的一部分与以下各项有关:(i)位置,(ii)联系人,或(iii)事件(例如,通过确定单元5509);在确定文本内容的该部分与位置相关时,从电子设备上的位置传感器获取位置信息(例如,通过获取单元5511),并且准备所获取的位置信息以显示为预测的内容项(例如,通过信息准备单元5515);在确定文本内容的该部分与联系人相关时,在电子设备上执行搜索,搜索与文本内容的该部分相关的联系人信息(例如,通过搜索执行单元5513),并且准备与至少一个通过搜索检索到的联系人相关联的信息以显示为预测的内容项(例如,通过信息准备单元5515);在确定文本内容的该部分与事件相关时,在电子设备上执行新的搜索,搜索与文本内容的该部分相关的事件信息(例如,通过搜索执行单元5513),并且准备至少部分地基于通过搜索检索到的至少一个事件的信息,以显示为预测的内容项(例如,通过信息准备单元5515);在应用程序中显示包括预测内容项的示能表示(例如,通过示能表示显示单元5517和/或显示单元5501);通过触敏表面检测示能表示的选择(例如,通过检测单元5519);并且响应于检测到选择,在显示器上与文本内容相邻处显示与预测内容项相关联的信息(例如,通过呈现单元5507和/或显示单元5501)。
[2593] 在电子设备5500的一些实施方案中,文本内容的该部分对应于最近在应用程序中呈现的文本内容。
[2594] 在电子设备5500的一些实施方案中,该应用程序是即时消息应用程序,并且文本内容的该部分是在即时消息应用程序中接收到的来自不同于电子设备的远程设备的远程用户的问题。
[2595] 在电子设备5500的一些实施方案中,文本内容的该部分是由电子设备用户在应用程序内的输入接收字段提供的输入。
[2596] 在电子设备5500的一些实施方案中,响应于用户输入选择包括文本内容该部分的用户界面对象,识别文本内容的该部分。
[2597] 在电子设备5500的一些实施方案中,该应用程序是即时消息应用程序,并且用户界面对象是在即时消息应用程序内显示的会话中的消息气泡。
[2598] 在电子设备5500的一些实施方案中,处理单元被进一步配置为:检测第二用户界面对象的选择;响应于检测到选择:(I)停止显示具有预测内容项的示能表示,并且(ii)确定与第二用户界面对象相关联的文本内容与位置、联系人或事件相关;并且根据确定,在应用程序内显示新的预测内容项。
[2599] 在电子设备5500的一些实施方案中,示能表示被显示为相邻于应用程序内的虚拟键盘。
[2600] 在电子设备5500的一些实施方案中,其中与预测内容项相关联的信息被显示在输入接收字段中,其中该输入接收字段是显示虚拟键盘处接收到的键入输入的字段。
[2601] 上述任一信息处理方法中的操作任选地通过运行信息处理装置中的一个或多个功能模块来实现,该信息处理装置诸如为通用处理器(例如,如以上相对于图1A和图3所描述)或特定于应用的芯片。
[2602] 以上参考图6A至图6B和图8A至图8B所述的操作任选地由图1A至图1B或图42至图55中所描绘的部件来实施。例如,执行操作602和检测操作802任选地由事件分类器170、事件识别器180和事件处理程序190来实现。事件分类器170中的事件监视器171检测触敏显示器112上的接触,并且事件分配器模块174将事件信息递送到应用程序136-1。应用程序136-
1的相应事件识别器180将事件信息与相应事件定义186进行比较,并且确定触敏表面上第一位置处的第一接触是否(或该设备的旋转是否)对应于预定义的事件或子事件,诸如对用户界面上的对象的选择、或该设备从一个取向到另一个取向的旋转。当检测到相应的预定义的事件或子事件时,事件识别器180激活与对该事件或子事件的检测相关联的事件处理程序190。事件处理程序190任选地使用或调用数据更新器176或对象更新器177来更新应用程序内部状态192。在一些实施例中,事件处理程序190访问相应GUI更新器178来更新应用程序所显示的内容。类似地,本领域的技术人员会清楚地知道基于在图1A至图1B中所描绘的部件可如何实现其他过程。
[2603] 出于解释的目的,前面的描述是通过参考具体实施方案来描述的。然而,上面的示例性讨论并非旨在是穷尽的,也并非旨在将本发明限制为所公开的精确形式。根据以上教导内容,很多修改形式和变型形式都是可能的。选择和描述实施方案是为了最佳地阐明本发明的原理及其实际应用,以便由此使得本领域的其他技术人员能够最佳地使用具有适合于所构想的特定用途的各种修改的本发明以及各种所描述的实施方案。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈