用于发出通知的第三方应用配置的制作方法

文档序号:14490710研发日期:2017年阅读:338来源:国知局
技术简介:
本专利针对现有通知机制无法精准匹配用户需求的问题,提出基于用户偏好、应用许可及上下文数据的智能通知系统。通过动态分析事件类型、用户历史行为及排序数据,实现个性化通知决策,提升用户体验。系统整合多源事件信息,结合推荐动作(如数据共享),优化用户交互效率。
关键词:智能通知系统,用户偏好分析

本公开一般地涉及电子设备中的第三方应用的配置。



背景技术:

参与事件的用户经常希望使用第三方应用(application,app)与其他朋友共享关于该事件的消息和通知。例如,当用户出现在同一事件时,用户可能希望与彼此发信息或共享图片。然而,用户当前在使用第三方app共享消息和通知时体验到若干不便。



技术实现要素:

根据一些实施方式,可以使用一个或多个应用编程接口(applicationprogramminginterface,api)来配置在电子设备中执行的第三方app。第三方app可以被配置为基于用户的偏好和app的许可从一个或多个源接收事件信息。响应于接收事件信息,进行是否应该向用户发出通知的确定。这个确定基于诸如事件的类型、对于事件的通知触发、用户历史、上下文数据、排序数据、和app许可等各种因素来进行。该通知可以包括到用户的消息和由用户考虑的推荐的动作中的一个或多个。该动作可以包括与其他用户共享数据,所述其他用户与用户共享事件的存在或对事件的兴趣。

根据一些实施方式,可以使用神经网络或其他机器学习技术来训练智能通知发生器,以确定是否应该向用户发出通知。可以使用各种适合的数据,诸如,例如,与用户偏好和设置相对应的数据、响应于事件信息和通知的用户历史、社交网络趋势、和app更新,来训练智能通知发生器。

在本说明书中描述的主题的创新方面包括,在一些实施方式中,计算机实施的方法以执行操作。操作包括由一个或多个处理器发送对确认应用向一个或多个数据源注册的请求。响应于接收应用向一个或多个数据源注册的指示,从一个或多个数据源接收事件信息,以及进行确定与应用相关联的触发事件已经发生。操作还包括由一个或多个处理器确定是否基于一个或多个标准来输出包括与事件信息相对应的数据的通知,并且响应于确定满足一个或多个标准,确定输出包括与事件信息相对应的数据的通知。操作还包括由一个或多个处理器向用户设备的显示器提供包括与事件信息相对应的数据的通知。

实施方式可以各自可选地包括以下特征中的一个或多个。例如,在一些实施方式中,操作还包括由一个或多个处理器训练通知发生器以确定是否使用训练数据来输出通知。训练数据包括与应用相关联的规则和许可、用户偏好数据、用户历史数据、和应用趋势中的一个或多个。

在一些实施方式中,操作还包括响应于接收应用未向一个或多个数据源注册的指示,由所述一个或多个处理器确定与应用相关联的用户偏好,以及由一个或多个处理器基于与应用相关联的用户偏好确定用户可能感兴趣的信息。操作还包括发送对应用向一个或多个数据源注册的请求。对应用向一个或多个数据源注册的请求包括对与用户可能感兴趣的信息相对应的数据的请求。

在一些实施方式中,操作还包括由一个或多个处理器确定存储在用户设备上的应用,以及由一个或多个处理器确定与存储在用户设备上的应用中的每一个应用相关联的应用许可和信任级别。响应于接收应用未向一个或多个数据源注册的指示,操作还包括由一个或多个处理器确定从一个或多个数据源接收信息满足用于应用的应用许可和信任等级,并且发送对应用向一个或多个数据源注册的请求。

在一些实施方式中,与应用相关联的触发事件包括以下中的一个或多个:用户动作、与应用相关联的时间段的到期、由应用的规则设置的条件的满足、以及在一个或多个数据源中的数据的添加。

在一些实施方式中,操作还包括响应于向用户设备的显示器提供通知接收在用户设备处的用户选择的指示,以及由一个或多个处理器训练通知发生器以确定是否使用用户选择来输出通知。

在一些实施方式中,由一个或多个处理器提供包括与事件信息相对应的数据的通知的操作包括基于应用的类型从多个模板中选择模板,并且提供与所选择的模板相对应的模板数据以生成通知。

这些方面的其他实施方式包括被配置为实施上述方法的动作的对应的系统、装置、计算机可读存储介质、和计算机程序。

本说明书中描述的实施方式提供了以下优点中的一个或多个。在一些实施方式中,用户可以免除配置第三方app来执行某些操作或者来手动地进行选择和输入以命令用户设备共享消息、执行操作、或发出通知的不便。相反,通过利用机器学习技术,用户设备可以自动地配置第三方app,以基于用户行为和偏好及时地生成相关的通知,并且与在用户附近的用户的朋友和联系人共享数据。

例如,在一些实施方式中,用户不必搜索用户可能能够找到用户感兴趣的信息的参照和源。而是,第三方应用被自动地配置为从数据源接收用户感兴趣的信息。

在一些实施方式中,用户不必进行选择或输入来命令用户设备中的app进行动作。而是,应用可以自动地发出通知以询问用户是否用户想要app进行动作。app部分地基于用户环境、用户位置、用户历史偏好和行为、以及app规则被配置。在某些情况下,用户设备不会向用户请求许可,并且可以自动地进行一个或多个动作。这个过程对于用户更方便,并且允许动作被更快速地和有效地执行而没有必要依赖于来自用户的明确地选择或输入来发起动作。

在一些实施方式中,通过检测在用户的附近或与用户共享事件的用户的朋友和联系人,用户设备可以自动地配置通知和动作,以使得用户能够更有效地与在用户附近或与用户共享事件的用户的朋友和联系人交互。

在附图和下面的描述中阐述了一个或多个实施方式的细节。其他特征和优点将从描述、附图、和权利要求中变得显而易见。

附图说明

图1描绘了在其中在多个用户设备中配置第三方app以在相同位置执行不同操作的示例性场景。

图2描绘了在其中在多个用户设备中配置第三方app以在满足触发事件时执行不同操作的示例性场景。

图3描绘了示出用于使用一个或多个api来配置第三方app的方法的流程图。

图4描绘了用于生成通知的模板。

图5描绘了用于使用一个或多个api来配置第三方app的系统。

各种附图中的相同的参照标号和名称表示相同的元件。

具体实施方式

在图1所示的示例性场景中,多个用户105a、105b、105c正在参加运动事件(诸如足球比赛)。每个用户105a、105b、105c都拥有各自的用户设备105a、105b、105c。用户设备105a、105b、105c可以与包括一个或多个服务器120的网络130通信。在三个用户中,用户105b对接收实时得分更新感兴趣,并且用户105a频繁地在用户的社交媒体平台上共享视频。用户105c对运动不感兴趣,但是作为用户105a和105b的朋友参加运动事件。

用户设备110a、110b、110c中的每一个可以包括用于配置第三方app的一个或多个api。可以基于包括用户选择和偏好的各种因素来配置app。例如,因为用户105b对运动感兴趣,所以api可以在用户设备110b上配置第三方运动app,以请求运动数据库或新闻源向用户设备110b提供运动更新和新闻。在另一示例中,如果用户(诸如用户105c)频繁地检查天气,则api可以在用户设备110c上配置第三方天气app,以请求天气数据库或源向用户设备110c提供天气更新和新闻。

通常,第三方app可以是不由电子设备中的操作系统的开发者安装在电子设备中的任何app。可以使用各种适合的方法将第三方app安装或存储在电子设备上。例如,在某些情况下,用户可以使用从诸如互联网的网络获得的数据来安装app。在某些情况下,电子设备可以使用从存储盘获得的数据来安装app。

当第三方app由开发者编写时,app可以不为个人用户定制。例如,app可以获得对于app的基本功能和对于app的通用用户的一般信息,但是,在许多情况下,可能不能提供根据个人用户的偏好和品味定制的信息。此外,一些app的可靠性可能是不确定的并且用户可能不想让未经验证的或不受信任的app来访问超过最小量的用户信息。在本说明书中描述的参照附图的实施方式解决了与第三方app相关联的这些和其他问题。

为了接收诸如更新和新闻的信息,由api配置的app可以向与信息的源相关联的服务器或数据库注册用户设备。例如,在图1中,用户设备110b中的app可以向与运动信息数据库相关联的一个或多个服务器120发送请求,以注册用户设备110b。作为注册的结果,用户设备110b可以通过第三方运动app接收运动更新。以下进一步详细提供注册过程的细节。

在一些实施方式中,可以请求不同级别的信息。例如,在某些情况下,用户设备110b中的app可以请求一般运动信息。在某些情况下,用户设备110b中的app可以请求属于诸如足球的特定运动的信息。在某些情况下,用户设备110b中的app可以请求属于特定团队的信息。

用户设备110a、110b、110c中的app也可以控制在检测到触发事件时呈现给用户105a、105b、105c的通知。触发事件可以是一种或各种类型的事情、条件、或事件。例如,在某些情况下,触发事件可以包括对特定环境(例如,体育场、大学校园、房子、海滩、或博物馆)的检测。通常,环境可以包括虚拟环境、物理环境、或者包括虚拟和物理环境两者的混合的环境。物理环境可以指适合于主办活动的任何物理场所或位置。虚拟环境可以指各种适合的数字接口,诸如虚拟会议、在线游戏会话、音频和/或视频电话会议、或数字广播会话。混合的环境的示例包括在其中两个会议室经由虚拟会议与每个会议室的若干人连接的场景。

在某些情况下,触发事件可以包括在用户设备的阈值距离内对多个用户的检测。在某些情况下,触发事件可以包括对天气状况(例如,雨或雪)、或当日的时间(例如,早上、晚上、或夜晚)的检测。触发事件可以由app开发者、用户设备的用户来编程,或者可以基于机器学习来编程。多个因素,诸如例如,用户历史、用户输入、用户偏好、上下文信息、触发事件的定时、以及事件的类型可以被用来设置触发事件。

参照图1,用户105a使用设备110a在结果是进球的场上记录动作。用户105a在进球得分后终止记录。在进球得分后,在用户设备110a上显示询问用户105a是否用户105a想要在用户的社交媒体平台中与朋友共享视频的通知。输出这个通知,因为用户设备110a检测到与在其中用户105a和在他的社交网络中的其他朋友在体育场中的共享事件相对应的触发事件,并且因为用户具有在记录它们之后共享视频的历史。通常,共享事件可以是在其中至少两个用户与相同事件相关联的任何事件。用户设备110a中的api可以使得用户设备110a能够显示询问用户105a是否用户105a想要与用户的社交网络中的朋友或在用户105a的附近的用户105b和105c共享该视频的通知。

用户设备110b也可以在进球得分之后接收通知。特别地,用户设备110b接收关于足球比赛的最新结果的更新。用户设备110b接收这个通知,因为用户设备110b中的一个或多个app已经注册了用户设备110b以接收对足球比赛的实时更新,并且已经确定在普利茅斯(plymouth)fc和汉普顿(hampton)fc之间的比赛的最新更新是用户当前正在参加并且感兴趣的比赛。在一些实施方式中,用户设备110b可以接收更新信息,但是不显示包括更新信息的通知,因为用户设备110b确定用户105b可能位于正在播放赛事的体育场,并且更新信息可能提供用户105b已经知道的信息。

在图1中示出的场景中,用户设备110c不显示任何通知,并且保持主屏幕的显示,因为对于用户设备110c没有触发事件被检测到。如图1的示例性场景中所示,第三方app可以由一个或多个api在不同设备上基于用户兴趣和偏好不同地进行配置,并且可以基于相应的配置提供通知。

参照图2中所描绘的示例性场景,用户205a和205b正在餐厅就餐(201)。用户设备210a和用户设备210b可以通过各种适合的方法来检测用户205a和205b的存在,所述方法包括从社交网络提取数据以确定其他用户的位置、使用基于位置的服务来识别设备210a和210b的位置、或者使用在设备210a和210b之间的短距离通信来交换位置信息。在晚餐后,用户205a和205b离开餐厅(202)。餐厅出口是触发用户设备210a和210b显示通知的触发事件。

特别地,在就餐时(201),用户设备210a可以使用确定服务的任何适合的位置、或指定用户的活动和位置中的一个或多个的用户输入来确定用户205a正在餐厅就餐。用户205a可以在晚餐期间拍摄照片。用户设备210a可以随后使用确定服务的任何适合的位置、来自指示用户的移动的运动传感器的数据、或指定用户的餐厅出口或位置的用户输入来确定用户205a已经离开餐厅(202)。

用户设备210a包括已经配置了第三方照片共享app的一个或多个api,以在满足触发事件时共享有餐饮相关标签的图片、或者有指示在用户205a从餐厅的离开的预定时间段之内的图像捕获时间的元数据的图片。用户可以与被识别为和该用户参与事件的用户共享该图片。

在图2中示出的场景201中,用户设备210a确定用户205b存在于与用户205a的晚餐中;确定用户205a离开餐厅;确定餐厅出口与对于第三方照片共享app的触发事件相对应;并且生成与触发事件和第三方照片共享app相对应的通知。如图所示,用户设备210a显示询问用户205a是否用户205a想要向用户205a与其共进晚餐的用户(即用户205b)传送晚餐图片的通知。

如上所述,用户设备210b也向用户205b显示通知。特别地,在就餐时(201),用户设备210b可以使用确定服务的任何适合的位置、或指定用户活动和位置中的一个或多个的用户输入来确定用户205b正在餐厅就餐。用户设备210b可以随后使用确定服务的任何适合的位置、来自指示用户的移动的运动传感器的数据、或指定用户的餐厅出口或位置的用户输入来确定用户205b已经离开餐厅(202)。

用户设备210b包括已经配置了第三方餐厅评级app的一个或多个api,以在满足触发事件时请求用户进行餐厅评级,该触发事件在这种情景下,与用户205b离开餐厅相对应。一个或多个api可以基于用户205b在餐厅就餐之后不久对餐厅进行评级的频繁习惯来配置第三方餐厅评级app。

在图2中所示的场景201中,用户设备210b确定用户205a存在于与用户205b的晚餐中;确定用户205b离开餐厅;确定餐厅出口与对于第三方评级应用的触发事件相对应;并且生成与触发事件和第三方餐厅评级app相对应的通知。如图所示,用户设备210b显示询问用户205b是否用户205b想要评级餐厅的通知。在一些情况下,在完成评级之后,用户设备210b还可以显示询问是否用户205b想要与用户205a共享评级的通知。

虽然在图1和图2中的上述实施方式已经用进行诸如确定是否满足触发事件以及是否应该响应于触发事件的满足而显示通知的各种确定的用户设备描述,在一些实施方式中,可以由网络服务器执行这些确定步骤。在这种实施方式中,网络服务器可以从用户设备接收数据、可以进行确定、并且向用户设备提供数据以显示通知。例如,在图1中,网络130中的服务器120可以进行确定。在图2中,网络230中的服务器220可以进行确定。

图3示出了使用一个或多个api来配置第三方app的方法。该方法可以被用来实施上述针对图1和图2的场景。图3的方法可以由图5中所示的系统来实施。该系统包括电子设备540和网络数据库505。电子设备540包括收发器542、一个或多个存储设备544、和包括事件管理器547和智能通知发生器549的处理器545。在一些实施方式中,事件管理器547和智能通知发生器549中的每一个可以至少部分地由api来实施。网络数据库505包括规则和许可数据库510、用户偏好和历史数据库520、以及app用户偏好和趋势数据库530。在一些实施方式中,电子设备540还包括一个或多个传感器543。

事件管理器547可以确定安装在用户设备中的app的数量和类型,以及与每个app相关联的信任级别。app的信任级别可以由各种因素确定,该各种因素包括,例如,由app商店对app的分类、由用户的反馈和评论、附加到app的元数据、以及app中恶意代码的存在。例如,如果app是从一个值得信任的应用商店(诸如googleplay商店)下载的,则用户反馈和评论通常是正面的,并且没有发现对嵌入在app代码中的恶意代码的报告,然后app可能被分类为值得信任的app,并且被分配高信任级别。如果app具有由用户对崩溃或嵌入在应用代码中的恶意代码的一些投诉,则该app可能被分配低信任级别。

通常,可以使用各种级别的信任。每个级别的信任都映射到一组许可。具有高信任级别的app可以被授予更多的许可以及允许对用户信息和电子设备540的组件的更多的访问的许可。具有低信任级别的app可以被授予更少或最少的许可以及限制对用户信息和电子设备540的组件的访问的许可。

在一些实施方式中,与app相关联的信任级别可以随着时间改变。例如,如果app最初被分配低信任级别,被运行多次,但是作为运行的结果没有报告问题,则分配给app的信任级别可能会升高到更高级别。在另一示例中,如果app最初被分配高信任级别,被运行多次,但是作为运行的结果报告了若干问题,则分配给该app的信任级别可能会下降到更低级别。授予app的许可可能会根据不断改变的信任级别而被改变。

在确定了第三方app及其信任级别之后,事件管理器547可以根据与app相关联的许可以及根据用户偏好来注册app(305)。事件管理器547可以从规则和许可数据库510中访问与app相关联的规则和许可。规则和许可数据库510存储被授予给app的许可和与app的信任级别相对应的许可的映射。在从电子设备540接收到识别app和与该app相关联的信任级别的信息时,规则和许可数据库510可以访问映射,并且将对于所识别的app的许可信息提供给电子设备540。如上所述,规则和许可与所确定的信任级别相对应,使得有更高信任的app可以具有更大数量的许可来访问用户信息和电子设备540。

事件管理器547还可以从用户偏好和历史数据库520中访问用户偏好和动作的历史。用户偏好和历史数据库520可以存储指示用户行为和选择的数据,而不存储识别用户的信息。在一些实施方式中,用户偏好和历史数据库520可以存储各种数据,包括,例如,指示与用户相关联的用户设备的位置的数据、指示用户选择和与app以及互联网的交互的数据、指示用户的社交网络、社交动作或活动的数据、以及指示app的使用的频率和由使用的app执行的功能的频率的数据。

通常,可以向用户提供控制用户偏好和历史数据库520是否、何时、以及如何收集用户信息的机会。此外,与用户相关联的数据的一些或全部可以在被存储或使用之前以一种或多种方式被匿名化,从而移除个人身份信息。例如,用户的身份可以被匿名化,使得不能为用户确定个人身份信息,或者用户的地理位置可以被概括在获得位置信息(诸如城市、邮政编码、或州级)的地方,使得不能确定用户的具体位置。因此,用户可以控制如何收集关于用户的信息以及用户偏好和历史数据库520如何使用用户信息。

在从用户偏好和历史数据库520中检索用户偏好和动作的历史之后,事件管理器547可以确定或识别用户的兴趣。例如,事件管理器547可以确定或识别用户可能感兴趣的社交事件、朋友、或运动。在一些实施方式中,事件管理器547可以确定或识别用户在某些情况下频繁地进行的动作。例如,参照图2,事件管理器547可以确定用户频繁地喜欢在访问餐厅之后对餐厅进行评级,或者,参照图1,用户对诸如足球的特定运动感兴趣。

如上所述,基于与app相关联的用户偏好和许可,事件管理器547可以向一个或多个数据源注册app以从数据源(305)接收信息。例如,事件管理器547可以向运动数据库处注册app以接收用户可能感兴趣的关于运动的信息。如图1中所示的示例中,事件管理器547向提供足球结果的更新的数据源注册运动app。在另一示例中,如果确定用户对食谱感兴趣,则事件管理器547可以在用户设备上注册第三方食物app以在食谱被添加到食谱数据库时接收新食谱。通常,数据源可以指能够提供信息的各种类型的源,诸如例如,数据库、网站、存储单元、服务器、或计算机。

在一些实施方式中,作为操作305的一部分,当确定安装在用户设备中的app的数量和类型以及与每个app相关联的信任级别时,事件管理器547可以通过向数据源发送确认请求消息,来确认是否每个确定的app已经向一个或更多数据源注册。确认请求消息可以从数据源请求app注册的验证或确认。如果在发送确认请求消息的阈值时间段内没有接收到验证或确认,则事件管理器547可以确定该app未向确认请求消息被发送到的数据源注册。如果app未向一个或多个数据源注册,则事件管理器547可以基于用户的偏好和许可向数据源注册app,如上所述。如果app已经向一个或多个数据源注册,则事件管理器547可以运行操作310,如下所述。

注册过程可以包括将用于注册用户设备的注册请求消息发送到一个或多个数据源,以及从一个或多个数据源接收用户设备和用户设备中的应用已被注册的确认。发送的注册请求消息可以包括用户设备标识和地址信息,使得一个或多个数据源可以通过网络向用户设备发送信息。发送的注册请求消息还可以包括识别正在传送注册请求的app的信息。在一些实施方式中,发送的注册请求消息还可以包括设置信息,该信息包括指示用户设备想要接收信息的频率的定时信息、指示要发送到用户设备的内容的类型的内容信息、或者指示在其中信息可以被发送或提供给用户设备的格式的格式信息。

在向一个或多个数据源注册app之后或者确认向一个或多个数据源注册app之后,电子设备540可以从一个或多个数据源接收信息(310),并且事件管理器547可以检测是否发生触发事件(315)。触发事件可以根据app的类型而变化。在某些情况下,与特定app相关联的触发事件可以基于诸如接收用户输入或对显示信息的请求的用户动作。在某些情况下,触发事件可以基于从数据源接收到的数据。例如,与特定app相关联的触发事件可以与诸如新的食谱或从数据源接收的更新的得分的新信息相对应。

在某些情况下,与特定app相关联的触发事件可以由app的规则来确定。例如,app可以被编程以周期性地或在预定时间段之后生成通知或向用户提供信息。这些情况下的触发事件在预定时间段到期时被检测。在某些情况下,与特定app相关联的触发事件可以基于用户位置或环境。例如,当用户位于一个或多个人或特定位置的阈值距离内时,可能发生对于app的触发事件。阈值距离可以由app开发者或用户来设置;可以通过机器学习来配置,或者可以由app规则和许可来指定。通常,app可以具有任何数量的触发事件。

响应于检测到触发事件,智能通知发生器549确定是否生成并输出通知(325)。智能通知发生器549可以至少部分地基于它的训练来进行确定。智能通知发生器549可以以训练数据连续地或周期性地被训练(320)。在一些实施方式中,可以利用各种机器学习算法、神经网络、或规则,随训练数据一起,来训练和操作智能通知发生器549。

训练数据可以从网络数据库505中的任何一个中获得。如上所述,用户偏好和历史数据库520可以提供用户偏好和动作的历史。用户偏好和动作数据的历史可以用作智能通知发生器549可以用来确定是否生成和输出通知的训练数据。例如,如果用户偏好和动作数据的历史指示用户已经忽略了先前更新(诸如天气更新)的阈值数量,则智能通知发生器549可以确定用户对查看天气更新不感兴趣,并且可以决定当接收到新的天气相关的信息时,不生成天气更新通知。

app用户偏好和趋势数据库530可以提供指示app的多个用户的趋势和偏好的数据。例如,app服务器可以监视app的哪些功能被app用户频繁执行、哪些信息被频繁地请求、或者哪些信息被app的渐增的用户频率地拒绝。这个信息可以被存储在app用户偏好和趋势数据库530中,并且可以被用作训练数据来训练智能通知发生器549。例如,如果app用户偏好和趋势数据指示app(诸如交通app)的大多数用户已经查看交通更新通知,但是忽略了包括事故报告的通知,则智能通知发生器549可以确定不生成包括事故报告的通知,但是可以生成和输出交通更新通知。

规则和许可数据库510可以提供指示与输出的通知相关联的各种规则和许可的数据。例如,规则和权限数据库510可以提供指示app可以输出的通知的定时、通知的数量、和通知的类型的数据。规则和许可数据库510还可以防止在通知中输出与app无关的信息。app规则和许可数据可以被用作训练数据来训练智能通知发生器549。例如,如果对于app的app规则和许可数据指示在某个时间段(例如,6个小时)中仅两个通知能够被输出,则智能通知发生器549可以不允许在六小时时段中输出任何多于两个的通知。

在一些实施方式中,智能通知发生器549可以包括排序引擎,该排序引擎可以对生成的通知进行排序并且选择确定数量的排序最高的通知以输出。例如,接收的事件信息和检测到的触发事件可能导致生成多个通知。训练数据可以,例如,指示app的规则只允许一次输出一个通知,或者指示用户可以具有一次仅查看一个通知的历史。因此,基于训练数据,智能通知发生器549可以激活排序引擎以对生成的通知进行排序。通知可以基于用户查看通知的可能性进行排序。用户查看通知的可能性基于训练数据。智能通知发生器549然后可以选择确定数量的排序最高的通知以输出。能够输出的排序最高的通知的数量可以由app规则或权许可、由app开发者、或由用户来设置。

基于训练数据并且响应于检测到触发事件,智能通知发生器549确定是否生成并输出通知(325)。如果智能通知发生器549确定不生成或输出通知,则没有输出被生成并且用户没有接收任何通知(330)。如果智能通知发生器549决定生成并输出通知,则处理器545可以生成用于用户设备的指令和数据,以显示与所接收的事件信息相对应的通知(335)。

用户设备可以使用一个或多个输出模板显示通知。图4示出了可以由电子设备540选择以基于检测到触发事件的app的类型来生成通知的示例性通知模板410、420、430、440。输出活动模板410、420、430、440可以各自包括与多个通知类型和app相对应的多个模板。例如,餐厅活动模板410可以被用于与输出餐厅菜单内容和小费计算内容有关的通知、或者由支付app、账单共享app、或餐厅评论app提供的通知。虽然图4仅示出了体育活动模板420、社交活动模板430、和杂项活动模板,但是可以以任何适合的方式使用各种适合的通知模板。

在用户设备上显示通知之后,用户可以忽略通知、查看通知、或者响应于通知进行一些额外的动作。例如,参照返回图1,如果通知是对于第三方运动app的得分更新,则用户105b可以查看得分更新并且不进行进一步的动作。用户105a可以以询问用户105a是否用户105a想要进行额外的动作来共享视频的问题的形式来接收通知。如果用户105a肯定地响应指示用户105a想要进行额外的动作,则在某些情况下,用户设备110a可以提示用户105a选择用户105a想要与其共享该视频的一个或多个联系人。

在一些实施方式中,指示用户对通知的响应的数据被提供给用户偏好和历史数据库520,并且被用作用于智能通知发生器549的训练数据。如上所述,这个信息可以以对数据进行匿名化的方式操纵,并且不包括用户标识信息。

参照返回图5,在一些实施方式中,系统的所有组件可以在用户设备中被实施。在一些实施方式中,系统的所有组件可以在网络服务器中被实施。在一些实施方式中,系统的组件可以跨网络分布,使得一些组件在网络服务器中被实施,并且一些组件在用户设备中被实施。例如,收发器542、一个或多个传感器543、一个或多个存储设备544、和处理器545可以在用户设备中被实施,并且规则和许可数据库510、用户偏好和历史数据库520、以及app用户偏好和趋势数据库530可以在网络服务器中被实施。在其中电子设备540在用户设备中被实施的实施方式中,电子设备540可以指具有处理器并且能够连接到网络的任何适合的电子设备。电子设备540的示例包括但不限于台式计算机、膝上型计算机、个人数字助理、电子平板(electronicpad)、电子笔记本、电话、智能电话、电视机、智能电视机、手表、智能冰箱。在其中电子设备540在网络服务器中被实施的实施方式中,电子设备540的示例包括但不限于工作站、服务器、刀片服务器(bladeserver)、或主机(mainframe)。

电子设备540中的收发器542可以包括发送器和接收器,并且可以被利用来与一个或多个网络服务器、以及一个或多个数据库进行通信。收发器542可以包括放大器、调制器、解调器、天线、和各种其它组件。收发器542可以将从其他网络组件接收的数据定向到电子设备540中的其他组件,诸如处理器545。收发器542还可以将电子设备540中的组件定向到系统中的其他设备。

在一些实施方式中,电子设备540还可以包括一个或多个传感器543,传感器543可以包括各种适合的传感器,诸如触摸传感器、电容传感器、光学传感器、和运动传感器。从传感器543接收的数据可以被用来提供各种类型的信息。例如,可以使用触摸、光学、或电容传感器来确定是否用户正在触摸显示器进行选择。运动传感器可以被用来确定电子设备540的运动的方向、位移、或速度。光学传感器可以被用来确定电子设备540周围的照明条件。

一个或多个存储设备544可以包括一个或多个大容量存储设备诸如例如,磁盘、磁光盘、光盘、eprom、eeprom、闪速存储器设备,并且可以被实施为用于存储数据的内部硬盘、可移动磁盘、磁光盘、可编程逻辑器件(programmablelogicdevices,pld)、cdrom、或dvd-rom磁盘。在一些实施方式中,一个或多个存储设备544可以存储用于检测触发事件的规则、用于选择输出模板的规则、以及用于训练智能通知发生器549的训练数据中的一个或多个。

在一些实施方式中,电子设备540和网络数据库505可以通过一个或多个网络来连接。一个或多个网络可以向系统、一个或多个网络服务器、和一个或多个数据库提供网络接入、数据传输、和其他服务。通常,一个或多个网络可以包括和实施任何通常定义的网络架构,所述网络架构包括由标准机构定义的网络架构,诸如全球移动通信系统(globalsystemformobilecommunication,gsm)协会、互联网工程任务组(internetengineeringtaskforce,ietf)、和全球互操作性微波接入(worldwideinteroperabilityformicrowaveaccess,wimax)论坛。例如,一个或多个网络可以实施gsm架构、通用分组无线电业务(generalpacketradioservice,gprs)架构、通用移动电信系统(universalmobiletelecommunicationssystem,umts)架构、以及被称为长期演进(longtermevolution,lte)的umts的演进中的一个或多个。一个或多个网络可以实施由wimax论坛或无线保真(wirelessfidelity,wifi)架构定义的wimax架构。一个或多个网络可以包括,例如,局域网(localareanetwork,lan)、广域网(wideareanetwork,wan)、互联网、虚拟lan(virtuallan,vlan)、企业lan、层3虚拟专用网络(virtualprivatenetwork,vpn)、企业ip网络、公司网络、或其任何组合。

在一些实施方式中,一个或多个网络可以包括云系统、一个或多个存储系统、一个或多个服务器、一个或多个数据库、接入点、和模块。包括云系统的一个或多个网络可以提供互联网连接和其他网络相关功能。

一个或多个服务器可以与系统通信以实施本文描述的第三方app配置方法的一个或多个操作。一个或多个服务器可以包括耦合到一个或多个网络的任何适合的计算设备,包括但不限于个人计算机、服务器计算机、一系列服务器计算机、迷你计算机、和主机计算机、或其组合。例如,一个或多个服务器可以包括运行网络操作系统的web服务器(或一系列服务器)。

一个或多个服务器还可以实施公共和标准协议和库,诸如安全套接字层(securesocketslayer,ssl)保护的文件传输协议、基于安全外壳文件传输协议(secureshellfiletransferprotocol,sftp)的密钥管理、和nacl加密库。一个或多个服务器可以被用于和/或提供云和/或网络计算。虽然未在附图中示出,但是一个或多个服务器可以具有到外部系统的连接,从而提供消息传递功能,诸如电子邮件、sms消息传递、文本消息传递、和诸如加密/解密服务、网络警报等的其他功能。

一个或多个服务器可以被连接到一个或多个数据库或可以与一个或多个数据库集成。一个或多个数据库可以包括云数据库或由数据库管理系统(databasemanagementsystem,dbms)管理的数据库。通常,云数据库可以在诸如python的平台上操作。dbms可以被实施为控制数据库中数据的组织、存储、管理、和检索的引擎。dbms频繁地提供查询、备份和复制、执行规则、提供安全性、做计算、执行更改和访问日志、以及自动优化的能力。dbms典型地包括建模语言、数据结构、数据库查询语言、和事务机制。根据数据库模型,建模语言可以被用来定义dbms中的每一个数据库的模式,数据库模型可以包括分层模型、网络模型、关系模型、对象模型、或一些其他适用的已知或便利的组织。数据结构可以包括用于存储数据的字段、记录、文件、对象、以及任何其他适用的已知或便利的结构。dbms还可以包括关于存储的数据的元数据。

在本说明书中描述的实施例和所有功能操作和/或动作可以在数字电子电路中、或在计算机软件、固件、或硬件中被实施,包括在本说明书中公开的结构及其结构等同物、或它们中的一个或多个的组合。实施例可以被实施为一个或多个计算机程序产品,例如,用于由数据处理装置执行或控制数据处理设备的操作的、在计算机可读介质上编码的计算机程序指令的一个或多个模块。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备、影响机器可读传播信号的物质的组成、或它们中的一个或多个的组合。术语“数据处理装置”涵盖了用于处理数据的所有装置、设备、和机器,包括例如,可编程处理器、计算机、或多个处理器或计算机。除了硬件之外,该设备还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或它们中的一个或更多的组合的代码。传播信号是人为生成的信号,例如,机器生成的电、光、或电磁信号被生成以编码用于到适合的接收器装置的传输的信息。

计算机程序,也称为程序、软件、软件app、脚本、或代码,可以以编程语言的任何形式编写,包括编译的或解释的语言,并且可以以任何形式部署,包括作为脱机程序或作为适用于计算环境中的使用的模块、组件、子例程、或其他单元。计算机程序不必与文件系统中的文件相对应。程序可以被存储在文件的一部分中,所述文件保持在专用于所讨论的程序的单一文件中或在多个协调文件中的其他程序或数据。计算机程序可以被部署为在一个计算机上或在位于一个站点上、或者跨多个站点分布并由通信网络互连的多个计算机上执行。

本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,所述一个或多个可编程处理器运行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以被实施为专用逻辑电路,例如,fpga(fieldprogrammablegatearray,现场可编程门阵列)或asic(applicationspecificintegratedcircuit,专用集成电路)。

适用于计算机程序的执行的处理器包括,例如,通用和专用微处理器两者、以及任何种类的数字计算机中的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。处理器可以包括硬件和软件的任何适合的组合。

计算机的元件可以包括用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括、或可操作地耦合以从一个或多个用于存储数据的大容量存储设备(例如,磁盘、磁光盘、或光盘)接收数据或向其传输数据、或两者。此外,计算机可以嵌入在另一设备中,例如,用户设备。适用于存储计算机程序指令和数据的计算机可读介质包括非易失性存储器、介质和存储器设备的所有形式,包括例如,半导体存储器设备(例如,eprom、eeprom、和闪速存储器设备);磁盘(例如,内部硬盘或可移动磁盘);磁光盘;以及cdrom和dvd-rom磁盘。处理器和存储器可以由专用逻辑电路补充或并入其中。

虽然本说明书包含许多细节,但是这些不应该被解释为对本公开或可以要求保护的内容的范围的限制,而应该被解释为对于特定实施例的特有的特征的描述。在本说明书中描述的在单独的实施例的上下文中的某些特征也可以在单一实施例中以组合来实施。相反,在单一实施例的上下文中描述的各种特征也可以在多个实施例中单独地或以任何适合的子组合来实施。此外,虽然以上可以将特征描述为以某些组合的方式起作用并且甚至可以这样要求,但是来自所要求的组合的一个或多个特征可以在某些情况下从组合中被切除,并且所要求的组合可以针对子组合或子组合的变化。

类似地,虽然在附图中以特定顺序描绘了动作,但是这不应该被理解为要求以所示的特定顺序或按连续顺序执行此类动作,或者执行所有示出的动作以达到所期望的结果。此外,上述实施例中的各种系统组件的分离不应该被理解为在所有实施例中要求这样的分离,并且应当理解,所描述的程序组件和系统通常可以被集成在单一软件产品中或被封装到多个软件产品中。

应当理解,短语“……中的一个或多个”以及短语“……中的至少一个”包括元素的任何组合。例如,短语“a和b中的一个或多个”包括a、b、或a和b两者。类似地,短语“a和b中的至少一个”包括a、b、或a和b两者。

因此,已经描述了特定的实施方式。其他实施方式在所附权利要求的范围内。例如,权利要求中所述的动作可以以不同的顺序执行,并且仍然达到所期望的结果。

当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!