对于应用的事件通知的制作方法

文档序号:14213468阅读:243来源:国知局
对于应用的事件通知的制作方法

相关申请的交叉引用

本申请是2015年8月28日提交的美国专利申请第14/838,489号的pct国际申请。上面所引用的申请的全部公开内容通过引用并入。

本公开涉及向可以被安装在移动计算设备上的应用发送事件通知。



背景技术:

许多移动计算设备包括可下载并执行应用的计算处理器。一些移动计算设备包括可进行传感器测量的传感器。示例传感器包括位置传感器、加速度计、陀螺仪、磁力计等。一些应用可以监测传感器测量结果以确定情境。例如,应用可以监测位置传感器以确定移动计算设备的位置。应用可以监测加速度计以确定设备的用户在一天期间可能已移动的步数。一些应用开发者花费大量时间编写代码,使得他们的应用可确定情境。



技术实现要素:

一种服务器可以在检测到事件的发生时向应用发送事件通知。所述服务器可以包括网络通信设备、存储器硬件(例如,存储设备)和数据处理硬件(例如,处理设备)。所述数据处理硬件可以执行计算机可读指令,所述计算机可读指令当由所述数据处理硬件执行时,使所述数据处理硬件经由所述网络通信设备从客户端计算设备接收传感器数据和应用数据。所述传感器数据可以包括来自所述客户端计算设备中的传感器的传感器测量值。所述应用数据可以指示安装在所述客户端计算设备上的应用的应用状态。所述数据处理硬件可以接收在检测到事件的发生时向安装在所述客户端计算设备上的应用提供事件通知的请求。所述请求可以包括描述所述事件的事件描述。

所述数据处理硬件可以识别指示所述事件的发生的事件触发。所述事件触发可以包括指示另一应用的应用状态的应用状态触发。所述事件触发可以包括指示所述传感器中的一个的传感器测量值的传感器测量触发。所述数据处理硬件可以通过将所述应用状态触发与所述应用数据中的应用状态相比较来检测所述事件的发生。所述数据处理硬件可以通过将所述传感器测量触发与所述传感器数据中的传感器测量值相比较来检测所述事件的发生。所述数据处理硬件可以在检测到所述事件的发生时向所述应用发送事件通知。所述事件通知可以指示所述事件已经发生。

一种计算设备可以使用传感器测量结果和应用状态来检测事件的发生。所述计算设备可以包括触摸屏显示器、传感器、收发器、存储应用的存储器和数据处理硬件(例如,计算处理器)。所述数据处理硬件执行计算机可读指令,所述计算机可读指令当由所述数据处理硬件执行时,使所述数据处理硬件执行下列中的一个或多个。所述数据处理硬件可以接收安装另一应用的选择。所述数据处理硬件确定所选择的应用正在请求事件通知以通知所述应用事件已经发生。

所述数据处理硬件识别用于检测所述事件的发生的传感器。对于用于检测所述事件的发生的每个传感器,所述数据处理硬件请求使用所述传感器的传感器测量值来检测所述事件的发生的许可。所述数据处理硬件响应于所述请求被准许而使用所述传感器测量值来检测事件的发生。所述数据处理硬件识别用于检测所述事件的发生的应用。对于用于检测所述事件的发生的每个应用,所述数据处理硬件请求在检测所述事件的发生时使用所述应用的应用状态的许可。所述数据处理硬件响应于所述请求被准许而使用所述应用状态来检测所述事件的发生。

一种计算机实现的方法可以包括下列中的一个或多个。计算设备的数据处理硬件可以接收在所述计算设备上安装应用的选择。所述数据处理硬件可以确定所选择的应用正在请求通知所述应用关于对应事件的发生的事件通知。所述数据处理硬件中的收发器向服务器发送所选择的应用的应用标识符(id)。响应于发送所述应用id,所述数据处理硬件接收识别所述计算设备的可以用于检测所述事件的发生的传感器的传感器标识符。

对于可以用于检测所述事件的发生的每个传感器,所述数据处理硬件经由所述计算设备的触摸屏显示器请求在检测所述事件的发生时使用所述传感器的传感器测量值的许可。所述数据处理硬件经由所述收发器通知所述服务器响应于所述请求被准许而使用传感器测量值来检测所述事件的发生。响应于发送所述应用id,所述数据处理硬件接收识别安装在所述计算设备上的可以用于检测所述事件的发生的应用的应用标识符。对于可以用于检测所述事件的发生的每个应用,所述数据处理硬件经由所述触摸屏显示器请求在检测所述事件的发生时使用所述应用的应用状态的许可。所述数据处理硬件经由所述收发器通知所述服务器响应于所述请求被准许而使用所述应用状态来检测所述事件的发生。

附图说明

图1是例示了用于为安装在客户端计算设备上的应用生成事件通知的示例系统的示意图。

图2a是为应用生成事件通知的示例服务器的框图。

图2b是图2a的示例事件记录识别器的框图。

图2c和图2d是图2a的示例事件记录生成器的框图。

图3是例示了用于为应用生成事件通知的示例方法的框图。

图4a是例示了事件的示例事件记录的图。

图4b是例示了客户端计算设备的示例传感器数据记录的图。

图4c是例示了客户端计算设备的示例应用数据记录的图。

图5是例示了示例客户端计算设备的框图。

图6是用于接收对于安装在客户端计算设备上的应用的事件通知的示例方法的框图。

图7a和图7b是例示了客户端计算设备上的示例许可请求屏幕的示意图。

图8是用于请求在检测事件并生成事件通知时使用传感器和应用的许可的示例方法的框图。

图9是例示了可以用于实现服务器或客户端计算设备的示例计算设备的框图。

在各个附图中,相似的附图标记可以指示相似的元素。

具体实施方式

移动计算设备可包括许多应用。一些应用可以确定移动计算设备的情境。为了确定移动计算设备的情境,应用可以监测安装在移动计算设备上的传感器或其它应用。例如,为了确定移动计算设备的用户正在锻炼,健身应用可以监测心率传感器。当心率传感器测量到高于阈值(例如,150跳动/分钟(bpm))的心率时,健身应用可以确定用户正在锻炼。应用开发者可能必须编写使得应用能够确定情境的软件程序代码。编写软件程序代码对于应用开发者来说可以是一件费时工作。此外,因为大多数应用彼此可能不共享所确定的情境,所以应用开发者常常浪费时间为已知情境编写软件程序代码。

应用可以使移动计算设备运行(例如,执行)专用服务以确定情境。例如,健身应用可以使移动计算设备执行服务以便监测心率传感器。当多个应用正在监测传感器时,移动计算设备可能必须执行多个服务。例如,移动计算设备可能必须执行用于健身应用监测心率传感器的服务,以及用于健康应用监测心率传感器的另一服务。当移动计算设备执行服务时,该服务使用移动计算设备的处理资源。执行多个服务来为不同的应用确定相同的情境可能导致资源浪费。

移动计算设备(在下文中,客户端计算设备)可向服务器发送传感器数据和应用数据。传感器数据可以包括客户端计算设备中的传感器的列表以及每个传感器的传感器测量值。例如,传感器数据可以识别心率传感器和单位为每分钟跳动的心率。应用数据可以包括应用的列表和每个应用的应用状态。例如,应用数据可以识别音乐播放器应用,并且指示音乐播放器应用正在播放锻炼播放列表。客户端计算设备发送用户已批准检测情境的传感器的传感器数据和应用的应用数据。客户端计算设备避免发送用户已拒绝在检测情境时使用的传感器的传感器数据和应用的应用数据。

服务器可确定客户端计算设备的情境,而不是每个应用必须确定情境。例如,服务器可确定何时用户正在锻炼而不是健身应用必须确定用户何时正在锻炼。应用开发者可给服务器提供描述应用开发者想要通知应用的事件的事件描述。例如,健身应用的应用开发者可能想要在用户正在锻炼时通知健身应用。因此,应用开发者可以给服务器提供内容为“检测用户何时正在锻炼”的事件描述。

服务器识别指示事件的发生的事件触发。事件触发可以包括服务器可以监测以检测事件的发生的传感器的列表或应用的列表。例如,服务器可以监测心率传感器和音乐播放器应用以确定用户是否可能正在锻炼。服务器可以在检测到大于150bpm的心率时或者在检测到音乐播放器应用正在播放锻炼播放列表时确定用户正在锻炼。

操作者(例如,人类操作者)可以定义事件触发。操作者可以使关键词与每个事件触发关联。事件触发及其关联的关键词可以被存储在倒排索引或查找表中。服务器可以通过将事件描述中的术语与关键词相比较来识别事件触发。服务器可以使用解析器来将事件描述解析成标记,并且将标记与关键词相比较。服务器可以使用机器学习器来识别事件触发。机器学习器可以是使用操作者定义的事件描述及其关联的事件触发作为训练数据来构建模型的半监督机器学习器。

在检测到事件的发生时,服务器向应用发送事件通知。事件通知通知应用服务器检测到事件的发生。例如,服务器可以在检测到大于150bpm的心率时或者在检测到音乐播放器应用正在播放锻炼播放列表时向健身应用发送事件通知。该事件通知可以指定服务器使用来检测事件的发生的事件触发。例如,给健身应用的事件通知可以包括心率(例如,心率:164bpm)以及音乐播放器正在播放锻炼播放列表的指示(例如,播放锻炼播放列表:1)。服务器可以使用javascript对象表示法(json)来将事件通知发送给应用。

因为服务器正在检测情境,所以当多个应用正在检测相同的情境时,客户端计算设备可以不必执行多个服务。由于不执行多个服务,客户端计算设备可以节省处理资源。应用开发者可以不必为其应用编写同样多的软件程序代码来检测情境,因为服务器正在检测情境。由于不必编写软件程序代码来检测已知情境,应用开发者可减少开发时间和潜在的软件故障。

图1例示了用于生成事件通知的系统10。事件通知可以指示事件的发生。系统10包括服务器100、客户端计算设备140和开发者入口160。服务器100可以从客户端计算设备140接收传感器数据144和应用数据148。服务器100可以从开发者入口160接收向客户端计算设备上的应用146发送事件通知180的请求170。请求170可以包括识别应用146的应用标识符(id)。请求170可以包括描述事件的事件描述174。服务器100可以基于传感器数据144和应用数据148来检测事件。服务器100可以在检测到事件时将事件通知180发送到应用146。

客户端计算设备140可以包括传感器142。传感器142可以生成传感器测量值。客户端计算设备140可以将传感器测量值发送到服务器100(例如,作为传感器数据144)。传感器142可以测量人体的特性。例如,传感器142可以包括心率传感器、血压传感器、血糖传感器、温度传感器等。传感器142可以测量环境特性。例如,传感器142可以包括环境光传感器、湿度传感器、压力传感器、环境温度传感器等。

传感器142可以测量客户端计算设备140的特性。例如,传感器142可以包括位置传感器、加速度计、陀螺仪、磁力计等。传感器142可以检测物体。例如,传感器142可以包括接近传感器、霍尔效应传感器等。传感器142可以被集成到芯片中。客户端计算设备140可以包括计算处理器,该计算处理器可以包括芯片上传感器。例如,计算处理器可以是包括芯片上位置传感器的片上系统。传感器数据144可以包括传感器142的列表以及传感器142的对应的传感器测量值。客户端计算设备140可以周期性地(例如,一小时一次或一分钟一次)将传感器数据144发送到服务器100。客户端计算设备140可以在从服务器100接收到对传感器数据144的请求时将传感器数据144发送到服务器100。应用146可以使客户端计算设备140将传感器数据144发送到服务器100。例如,当应用146正在确定事件是否已经发生时,应用146可以提示客户端计算设备140发送传感器数据144。客户端计算设备140的用户可以命令客户端计算设备140将传感器数据144发送到服务器100。客户端计算设备140可以在容器中(例如,在json文件中)发送传感器数据144。

客户端计算设备140可以包括应用146。应用146可以被存储在客户端计算设备140的存储器中。计算处理器可以通过执行与应用146对应的计算机可读指令(例如,目标代码)来执行应用146。应用146可以接收事件通知180。事件通知180可以通知应用146对应事件已经发生。事件通知180可以指向特定应用,例如,而不是指向所有应用。应用146可以基于事件通知来执行应用功能。例如,红眼去除应用可以在接收到图像已被捕获的事件通知时自动地对捕获的图像进行操作。

应用146可以被称为本机应用。应用146可以包括预安装的应用。预安装的应用可以由客户端计算设备140的制造商、操作系统的开发者或蜂窝服务提供商安装在客户端计算设备140上。客户端计算设备140可以从数字分发平台(例如,应用商店)下载应用146。应用146的示例包括电子邮件应用、消息传送应用、web(万维网)浏览器应用、社交网络应用、电话应用、图像应用、游戏应用等。

应用146可以生成应用数据148。应用数据148可以指示应用使用。应用数据148可以指示特定应用被使用的持续时间。应用数据148可以指示被使用的或当前正被使用的应用功能。应用数据148可以指示在客户端计算设备140上查看的或者当前正被查看的应用状态。应用数据148可以指示应用使用频率。例如,应用数据148可以指示每天早上从上午7点到上午7:30使用音乐播放器应用来播放锻炼播放列表。应用数据148可以指示从上午8点到上午8:30使用地图应用来显示沿着从用户的家庭到用户的工作地点的路线的交通信息。

应用数据148可以指示客户端计算设备140的用户正在执行的活动。例如,应用数据148可以指示消息传送应用正用于与存储在联系人应用中的联系人进行通信。客户端计算设备140可以将应用数据148发送到服务器100。客户端计算设备140可以周期性地(例如,一小时一次,一分钟一次等)发送应用数据148。客户端计算设备140可以响应于从服务器100接收到对应用数据148的请求而发送应用数据148。客户端计算设备140可以将应用数据148与传感器数据144一起发送。应用数据148可以包括识别客户端计算设备140的客户端设备标识符(id)。客户端设备id可以包括电话号码、电子邮件地址、个人识别号码(pin)等。

客户端计算设备140可以包括数据记录器150。数据记录器150可以记录(例如,存储)传感器数据144和应用数据148。数据记录器150可以将所记录的传感器数据144和应用数据148发送到服务器100。数据记录器150可以多次记录传感器数据144和应用数据148。例如,数据记录器150可以发送成批记录而不是单独的记录。例如,数据记录器150可以通过发送成批记录来节省电池电力,因为数据记录器150可以不唤醒客户端计算设备140的收发器来进行每一记录传输。

数据记录器150可以包括安装在客户端计算设备140上的应用(例如,预安装的应用)。数据记录器150可以作为客户端计算设备140可以预订的服务被实现。数据记录器150可以使用应用编程接口(api)来访问与应用146有关的应用数据148。数据记录器150可以由安装在客户端计算设备140上的操作系统来实现。可以通过硬件电路(例如,通过专用集成电路(asic))来实现数据记录器150。数据记录器150可以由客户端计算设备140的计算处理器上的传感器中枢来实现。

服务器100从客户端计算设备140接收传感器数据144和应用数据148。服务器100可以将传感器数据144和应用数据148存储在存储设备(例如,非暂时性存储器)中。服务器100可以分析传感器数据144和应用数据148以检测通过事件描述174描述的事件。在检测到事件时,服务器100将事件通知180分派到与应用id172对应的应用146。例如,服务器100可以将事件通知180发送到客户端计算设备140。

应用开发者可以使用开发者入口160来生成(例如,定义)请求170。开发者入口160可以包括应用id字段162、事件描述字段164和请求按钮166。应用开发者可以在应用id字段162中输入应用id172。应用id可以识别安装在客户端计算设备140上的应用146中的一个。应用开发者可以在事件描述字段164中输入事件描述174。应用开发者可以用自然语言输入事件描述174。例如,应用开发者可以使用人类可读术语而不是计算机代码来输入事件描述174。应用开发者可以在输入应用id172和事件描述174之后按请求按钮166。开发者入口160可以将请求170发送到服务器100。

服务器100可以分析事件描述174以识别满足事件的触发。服务器100可以识别传感器测量触发和应用状态触发。服务器100可以解析事件描述174以识别触发。服务器100可以包括解析器。服务器100可以包括解析事件描述174的传感器解析器。传感器解析器可以包括一组计算机可读指令,该组计算机可读指令当由服务器100执行时,识别服务器100可以监测来检测事件的发生的传感器。传感器解析器可以识别服务器100可以监测来检测事件的发生的传感器。传感器解析器可以识别服务器100可以使用来检测事件的发生的传感器测量值。

服务器100可以包括解析事件描述174的应用解析器。应用解析器可以包括一组计算机可读指令,该组计算机可读指令当由服务器100执行时,识别服务器100可以监测来检测事件的发生的应用。应用解析器可以识别服务器100可以监测来检测事件的发生的应用。应用解析器可以识别服务器100可以使用来检测事件的发生的应用状态。在检测到事件时,服务器100可以将事件通知180发送到与经由开发者入口160识别的应用id172对应的应用146。

服务器100、客户端计算设备140和开发者入口160可以经由网络190通信。网络190可以包括局域网(lan)、广域网(wan)、因特网和/或类似物。网络190可以包括有线网络。网络190可以包括无线网络,例如蜂窝网络。网络190可以包括基站192(例如,演进型节点b)。客户端计算设备140可以经由基站192与服务器100进行通信。客户端计算设备140可以以无线方式(例如,经由长期演进(lte)收发器)发送传感器数据144和应用数据148,并且接收事件通知180。

图2a是示例服务器200的框图。服务器200例示了服务器100的示例实现。服务器200从客户端计算设备(例如,图1中所示的客户端计算设备140)接收传感器数据(例如,图1中所示的传感器数据144)和应用数据(例如,图1中所示的应用数据148)。服务器200接收事件的事件描述(例如,图1中所示的事件描述174)。服务器200在检测到事件的发生时生成事件通知(例如,图1中所示的事件通知180)。服务器200响应于事件的发生而发送事件通知。

服务器200可以包括数据处理硬件202、存储设备204(例如,存储器硬件)和网络通信设备206。数据处理硬件202可以包括执行计算机可读指令的一个或多个计算处理器的集合。数据处理硬件202的计算处理器可以独立地或者以分布式方式操作。计算处理器可以经由总线和/或网络连接。计算处理器可以位于相同的物理设备(例如,相同的外壳)中。计算处理器可以位于不同的物理设备(例如,不同的外壳(例如,在分布式计算系统中))中。计算处理器可以包括物理中央处理单元(pcpu)。pcpu可以执行计算机可读指令以实现虚拟中央处理单元(vcpu)。数据处理硬件202可以实现事件触发识别器210和事件通知生成器228。数据处理硬件202可以执行存储在存储设备204中的指令,该指令使数据处理硬件202实现事件触发识别器210和事件通知生成器228。

存储设备204存储数据。存储设备204可以包括计算机可读存储介质。例如,存储设备204可以包括固态存储器设备、硬盘存储器设备、光盘驱动器、只读存储器、基于纳米管的存储设备等。存储设备204可以经由总线和/或网络连接到数据处理硬件202。存储设备204内的不同的存储介质可以位于相同的物理位置(例如,在相同的数据中心、相同的机架或相同的外壳中)。存储设备204的不同的存储介质可以是分布式的(例如,在不同的数据中心、不同的机架或不同的外壳中)。存储设备204可以实现(例如,存储)事件数据仓库230、传感器数据仓库250和应用数据仓库270。

网络通信设备206可以与网络(例如,网络190)进行通信。网络通信设备206可以包括执行有线通信(例如,经由以太网、通用串行总线(usb)或光缆)的一个或多个通信接口。网络通信设备206可以执行无线通信(例如,经由wi-fi、蜂窝网络或卫星)。网络通信设备206可以包括依照电气与电子工程师协会(ieee)规范(例如,以太网、无线局域网(lan)等)与网络进行通信的收发器。网络通信设备206可以包括依照第三代合作伙伴计划(3gpp)规范(例如,码分多址(cdma)、长期演进(lte)、高级lte等)与网络进行通信的收发器。网络通信设备206可以包括依照通用串行总线(usb)规范(例如,经由usb端口)与网络进行通信的收发器。

服务器200可以由云计算平台来实现。云计算平台可以包括远程计算服务的集合。云计算平台可以包括计算资源(例如,数据处理硬件202)。计算资源可以包括服务器(例如,物理服务器或虚拟服务器)。云计算资源可以包括存储资源(例如,存储设备204)。存储资源可以包括可以支持nosql、mysql、oracle、sqlserver等的数据库服务器。云计算平台可以包括联网资源(例如,网络通信设备206)。例如,联网资源可以向多个虚拟专用服务器分发传入的对事件通知的请求。示例云计算平台包括亚马逊web服务和谷歌云平台。

事件触发识别器210可以识别指示事件的发生的触发。事件触发识别器210可以接收对事件的事件描述(例如,事件描述174)。事件触发识别器210可以使用事件描述来识别触发。事件触发识别器210可以识别指示事件的发生的应用状态触发224。应用状态触发224可以指示应用(例如,应用146)和应用状态。事件触发识别器210可以识别指示事件的发生的传感器触发226。传感器触发226可以指示传感器(例如,传感器142)和该传感器的传感器测量值。

事件触发识别器210可以包括事件记录识别器212。事件记录识别器212可以从事件数据暂存器230中识别事件记录232。事件记录232可以包括应用状态触发224和传感器触发226。事件记录232可以由操作者(例如,人类操作者)生成。关于图4a讨论示例事件记录232。事件记录识别器212可以基于事件描述来识别事件记录232。事件记录识别器212可以基于包括在事件描述中的术语来搜索事件数据仓库230中的事件记录232。关于图2b讨论事件记录识别器212的示例实现。

事件触发识别器210可以包括事件记录生成器220。事件记录生成器220可以生成事件记录232。事件记录生成器220可以将事件记录232存储在事件数据仓库230中。例如,如果事件记录识别器212不能基于事件描述来识别事件记录232,则事件记录生成器220可以为事件描述生成事件记录232。例如,当事件描述与事件数据仓库230中的现有事件记录232不匹配时,事件记录生成器220可以生成事件记录232。

事件记录生成器220可以基于事件描述来生成事件记录。事件记录生成器220可以包括解析事件描述以识别应用状态触发224和/或传感器触发226的解析器。事件记录生成器220可以包括使用机器学习模型来识别事件触发的机器学习器。机器学习器可以通过使用事件记录232作为训练数据来生成机器学习模型。关于图2c至图2d讨论事件记录生成器220的示例实现。

事件通知生成器228生成事件通知(例如,事件通知180)。事件通知生成器228可以响应于检测到事件的发生而生成事件通知。事件通知生成器228可以接收传感器数据(例如,传感器数据144)和应用数据(例如,应用数据148)。事件通知生成器228可以通过将传感器数据与传感器触发226相比较来检测事件的发生。事件通知生成器228可以通过将应用数据与应用状态触发224相比较来检测事件的发生。

例如,如果传感器数据中的传感器测量值与传感器触发226中的传感器测量值匹配,则事件通知生成器228可以确定传感器触发226由传感器数据触发。例如,如果应用状态触发224中的应用状态与应用数据中的应用状态相匹配,则事件通知生成器228可以确定应用状态触发224由应用数据触发。事件通知生成器228可以响应于触发224、226与数据之间的匹配(例如,确切匹配或近似匹配)而生成事件通知。事件通知生成器228可以采用公差范围。例如,如果传感器测量值在公差范围内(例如,相差小于5%),则事件通知生成器228可以确定传感器触发226中的传感器测量值与传感器数据中的传感器测量值匹配。

服务器200可以将传感器数据和应用数据存储在数据仓库中。服务器200可以将传感器数据作为传感器记录252存储在传感器数据仓库250中。服务器200可以将应用数据作为应用记录272存储在应用数据仓库270中。关于图4b至图4c讨论传感器记录252和应用记录272的示例实现。事件通知生成器228可以从传感器记录252中检索传感器数据。事件通知生成器228可以从应用记录272中检索应用数据。

事件通知生成器228可以使用多个传感器记录252来检测传感器触发226。例如,传感器触发226可以指心率在不到一分钟内增加了50%。事件通知生成器228可以从最后一分钟检索传感器记录252,识别每个传感器记录252中的心率测量结果,并且确定心率测量结果是否指示增加50%。事件通知生成器228可以使用多个应用记录272来检测应用状态触发224。例如,应用状态触发224可以指音乐播放器应用连续三天被用于收听锻炼播放列表。事件通知生成器228可以检索最后三天的应用记录272,并且确定音乐播放器应用是否用于在每天播放锻炼播放列表。

图2b例示了示例事件记录识别器212的框图。事件记录识别器212接收事件描述,并且基于该事件描述从事件数据仓库230中识别事件记录232。事件记录232可以包括指示事件的发生的触发。例如,事件记录232可以包括应用状态触发224和传感器触发226。事件记录识别器212可以基于包括在事件描述中的术语来搜索事件数据仓库230中的事件记录232。事件描述可以被称为搜索查询。通过事件记录识别器212识别的事件记录可以被称为搜索结果。

事件记录识别器212可以包括事件描述分析器214、考虑集合生成器216和事件记录选择器218。事件描述分析器214分析事件描述。事件描述分析器214可以例如通过识别解析的标记来标记化事件描述中的术语。事件描述分析器214可以例如通过将事件描述中的词缩减成其词干或词根来取词干。事件描述分析器214可以例如通过识别事件描述中的术语的同义词来分析同义词。事件描述分析器214可以例如通过从事件描述中去除通常出现的词(例如,通过去除“该”、“一”等)来去除停止词。

考虑集合生成器216生成事件记录232的考虑集合。考虑集合生成器216可以基于由事件描述分析器214生成的标记来识别事件记录232。考虑集合生成器216可以通过使事件描述的术语与事件记录232中的术语相匹配来识别考虑集合。事件记录232可以包括应用状态触发224。应用状态触发224可以指定应用的应用名称224-1和应用状态224-2。事件记录232可以包括传感器触发226。传感器触发226可以包括传感器的传感器名称226-1和传感器测量值226-2。

事件描述可以指定应用名称。例如,如果应用名称224-1与事件描述中的一个或多个术语匹配,则考虑集合生成器216可以将事件记录232包括在考虑集合中。例如,事件描述可以指定“音乐播放器播放锻炼播放列表”。例如,如果应用名称224-1指音乐播放器应用,则考虑集合生成器216可以将事件记录232包括在考虑集合中。

事件描述可以指定应用状态。例如,如果应用状态224-2与事件描述中的一个或多个术语匹配,则考虑集合生成器216可以将事件记录232包括在考虑集合中。例如,事件描述可以指定“播放锻炼播放列表”。例如,如果应用状态224-2指锻炼播放列表,则考虑集合生成器216可以将事件记录232包括在考虑集合中。

事件描述可以包括传感器名称的一部分。例如,如果传感器名称226-1与事件描述中指定的一个或多个术语匹配,则考虑集合生成器216可以将事件记录232包括在考虑集合中。例如,事件描述可以指定“心率高于165”。例如,如果传感器名称226-1指心率传感器,则考虑集合生成器216可以将事件记录232包括在考虑集合中。

事件描述可以包括传感器测量值。例如,如果传感器测量值226-2与事件描述中的一个或多个术语匹配,则考虑集合生成器216可以将事件记录232包括在考虑集合中。例如,事件描述可以指定“热天”。例如,如果传感器测量值226-2指高于平均每日温度读数的温度读数,则考虑集合生成器216可以将事件记录232包括在考虑集合中。考虑集合生成器216可以基于事件记录232与由事件描述分析器214生成的标记的比较来生成考虑集合。

事件记录选择器218可以从考虑集合中选择事件记录232。事件记录选择器218可以对考虑集合中的事件记录232(例如,每个事件记录232)进行评分。事件记录选择器218可以选择具有最高分数的事件记录。事件记录232的分数可以指示由事件记录表示的事件的定性性质或定量性质。例如,事件记录的分数可以指示事件记录与事件描述的相关性。事件记录的分数可以指示由事件记录表示的事件的流行度。事件记录的分数可以指示由事件记录表示的事件的发生频率。事件记录的分数可以指示由事件记录表示的事件的发生的概率。

事件记录选择器218可以基于一个或多个评分特征来对事件记录进行评分。评分特征可以与事件记录和/或事件描述相关联。示例评分特征可以包括事件记录评分特征(在下文中为“记录评分特征”)、描述评分特征和/或记录描述评分特征。

记录评分特征可以与事件记录相关联。记录评分特征可以包括与事件相关联的数据。例如,记录评分特征可以包括来自事件记录232的应用状态触发224和/或传感器触发226。记录评分特征可以包括与事件有关的参数。记录评分特征可以包括指示事件的流行度的数据。例如,记录评分特征可以指示在一时间段内(例如,在最后一天、周、月或年内)的事件发生次数。

描述评分特征可以与事件描述相关联。描述评分特征可以包括与事件描述相关联的数据。示例描述评分特征可以包括事件描述中的词的数量、事件描述的流行度和/或事件描述中的词的预期频率。记录描述评分特征可以包括可以基于与考虑集合中的事件记录和事件描述相关联的数据而生成的数据。记录描述评分特征可以包括指示事件描述的术语与考虑集合中的事件记录匹配的数量的参数。

事件记录选择器218可以基于记录评分特征、描述评分特征和/或记录描述评分特征来对事件记录进行评分。事件记录选择器218可以包括机器学习模型。机器学习模型可以包括监督学习模型、半监督学习模型或无监督学习模型。机器学习模型可以被配置为接收评分特征。机器学习模型可以基于记录评分特征、描述评分特征和/或记录描述评分特征来对事件记录232进行评分。

事件记录选择器218可以确定事件记录232的特征向量。事件记录选择器218可以基于包括在事件记录232和事件描述中的信息来确定事件记录232的特征向量。特征向量可以包括记录评分特征、描述评分特征和/或记录描述评分特征。事件记录选择器218可以使用特征向量作为用于机器学习回归模型计算事件记录232的分数的输入。机器学习回归模型可以包括一组决策树(例如,梯度提升决策树)。机器学习回归模型可以包括逻辑概率公式。机器学习任务可作为半监督学习任务被实现。在半监督任务中,训练数据的一部分可以用人为策划的分数标记,并且可以在没有人为策划的分数的情况下使用剩余的训练数据。

事件记录选择器218可以选择具有最高分数的事件记录。事件记录选择器218可以将所选择的事件记录232发送到事件通知生成器228。事件记录选择器218可以从所选择的事件记录232中检索应用状态触发224和/或传感器触发226。事件记录选择器218可以将来自所选择的事件记录232的应用状态触发224和/或传感器触发发送到事件通知生成器228。

在一些情况下,事件记录识别器212可能不能从事件数据仓库230中识别事件记录232。例如,如果事件描述包括与存储在事件记录232中的应用状态触发224和传感器触发226不匹配的术语,则事件记录识别器212可能未找到适合的事件记录。例如,当考虑集合中的事件记录的最高分低于阈值分数(例如,低于0.5)时,事件记录识别器212可以确定适合的事件记录不存在于事件数据仓库230中。事件记录识别器212可以通知事件记录生成器220事件记录识别器212不能从事件数据仓库230中识别事件记录232。

图2c例示了示例事件记录生成器220。事件记录生成器220可以包括事件描述分析器214、一个或多个解析器222和事件记录填充器244。事件描述分析器214可以接收事件描述并生成标记。解析器222可以使用标记来确定指示事件的发生的触发。例如,解析器222可以确定传感器触发226和应用状态触发224。解析器222可以包括传感器解析器222-s和应用解析器222-a。

传感器解析器222-s可以确定传感器触发226。传感器解析器222-s可以通过将标记与传感器名称相比较来确定传感器触发226。传感器解析器222-s可以使用传感器查找表来在标记当中识别传感器名称226-1。传感器查找表可以包括传感器名称的列表。传感器查找表可以包括传感器可以记录的潜在传感器测量值。传感器解析器222-s可以通过将标记与存储在传感器查找表中的传感器测量值相比较来在标记中识别传感器测量值226-2。传感器解析器222-s可以包括多个传感器解析器,每个传感器解析器可以与不同的传感器对应。例如,传感器解析器222-s可以包括心率传感器解析器、血糖传感器解析器、温度传感器解析器、环境光传感器解析器等。

应用解析器222-a可以确定应用状态触发224。应用解析器222-a可以通过将标记与应用名称相比较来确定应用状态触发224。应用解析器222-a可以使用应用查找表来在标记当中识别应用名称224-1。应用查找表可以包括应用名称的列表。应用查找表可以包括应用可能具有的潜在应用状态。应用解析器222-a可以通过将标记与存储在应用查找表中的应用状态相比较来在标记中识别应用状态224-2。应用解析器222-a可以包括多个应用解析器,每个应用解析器可以与不同的应用对应。例如,应用解析器222-a可以包括音乐播放器应用解析器、社交网络应用解析器、导航应用解析器、消息传送应用解析器等。附录a例示了用于应用解析器(例如,应用名称解析器)的示例伪代码。

事件记录填充器244创建事件记录232并且填充事件记录232。事件记录填充器244可以接收传感器触发226和/或应用状态触发224。事件记录填充器244可以使用传感器触发226和/或应用状态触发224来填充事件记录232。事件记录填充器244可以将所生成的事件记录存储在事件数据仓库230中。

图2d例示了事件记录生成器220的另一示例实现。事件记录生成器可以包括机器学习器260。机器学习器260可以包括监督机器学习器、半监督机器学习器或无监督机器学习器。机器学习器260可以使用决策树学习、关联规则学习、人工神经网络、归纳逻辑编程、支持向量机、聚类、贝叶斯网络、强化学习、表示学习、相似度和度量学习和/或稀疏字典学习。机器学习器260可以使用模型262来确定应用状态触发224和/或传感器触发226。机器学习器260可以包括模型生成器264。模型生成器264可以生成模型262。模型生成器264可以使用事件记录232作为训练数据268来生成模型262。

训练数据268可以包括标记训练数据,例如,像在监督学习中一样。标记训练数据可以识别事件记录的结构。标记训练数据可以通过特征向量来识别事件记录的结构。特征向量可以由操作者(例如,人类操作者)策划。训练数据268可以包括未标记训练数据,例如,像在无监督学习中一样。模型生成器264可以接收事件记录232。模型生成器264可以通过推理接收事件描述274作为输入并且输出应用状态触发224和传感器触发226的功能来确定模型262。训练数据268可以包括标记训练数据和未标记训练数据的组合,例如,像在半监督学习中一样。

模型生成器264生成模型262。模型生成器264可以通过推理将事件描述274映射到应用状态触发224和传感器触发226的功能来生成模型262。模型生成器264可以接收来自操作者的输入。模型生成器264可以基于来自操作者的输入来生成模型262。模型生成器264可以基于从操作者接收到的输入来调整模型262。操作者可以对由模型262生成的输出进行评估(例如,评分)。模型生成器264可以调整模型262,例如,直到模型生成器264接收到来自操作者的阈值分数为止。

模型262生成应用状态触发224和传感器触发226。模型262可以包括将事件描述映射到应用状态触发224和传感器触发226的功能。模型262可以将应用状态触发224和传感器触发226发送到事件记录填充器244。事件记录填充器244可以从机器学习器260接收应用状态触发224和传感器触发226。事件记录填充器244可以创建事件记录232。事件记录填充器244可以用由机器学习器260生成的应用状态触发224和传感器触发226填充事件记录232。事件记录填充器244可以将经填充的事件记录232存储在事件数据仓库230中。事件记录填充器244可以将经填充的事件记录232发送到事件通知生成器228。

图3例示了用于生成事件通知的示例方法300。在302,服务器从客户端计算设备接收传感器数据和应用数据。传感器数据可以识别一个或多个传感器。传感器数据可以包括传感器的传感器测量值。应用数据可以识别一个或多个应用。应用数据可以包括应用的应用状态。例如,服务器100可以从客户端计算设备140接收传感器数据144和应用数据148。

在304,服务器接收向客户端计算机设备上的应用提供事件通知的请求。该请求可以包括事件描述。事件描述可以采用自然语言。事件描述可以包括例如人类可读术语,而不是软件程序代码指令。服务器可以从开发者入口接收请求。服务器可以从客户端计算设备(例如,从应用或客户端计算设备的用户)接收请求。请求可能是永久的。例如,请求可以指示服务器响应于事件的每次发生而向应用发送事件通知。

请求可能是有时间有限的。请求可以指示服务器在一时间段(例如,下1年)期间向应用发送事件通知。请求可以包括付款信息。服务器可以收取费用来向应用提供事件通知。请求可以包括金融账户标识符(例如,信用卡信息)。服务器可以从通过请求识别的金融账户扣除用于提供事件通知的费用。请求可能是一次请求。服务器可以在检测到事件的第一次发生时将事件通知发送到应用。

在306,服务器识别指示事件的发生的事件触发。服务器可以识别传感器触发(例如,传感器触发226)和应用状态触发(例如,应用状态触发224)。传感器触发可以识别传感器和指示事件的发生的传感器测量值。应用状态触发可以识别应用和指示事件的发生的应用状态。服务器可以通过基于事件描述在事件记录数据仓库中执行对事件记录的搜索来识别触发。例如,服务器可以在事件数据仓库230中搜索事件记录232。服务器可以通过使用解析器(例如,解析器222)来识别触发。解析器可以解析事件描述以识别传感器触发和/或应用状态触发。服务器可以通过使用机器学习器(例如,机器学习器260)来识别触发。

在308,服务器可以检测事件的发生。服务器可以通过将事件触发与传感器数据和应用数据相比较来检测事件的发生。当传感器数据中的传感器测量值与传感器触发中的传感器测量值匹配(例如,相等或近似地相等,使得传感器测量结果在公差内)时,服务器可以检测到传感器触发。

当应用触发中的应用状态与应用数据中的应用状态匹配(例如,相等或近似地相等)时,服务器可检测到应用状态触发。当应用触发中的应用功能与应用数据中的应用功能匹配(例如,相等或近似地相等)时,服务器可检测到应用功能触发。服务器可以通过比较功能参数(例如,包括在诸如统一资源定位符(url)的应用访问机制中的参数)来检测应用状态触发。例如,如果阈值数量的功能参数(例如,95%的功能参数)在由应用数据指示的应用状态与由应用状态触发指示的应用状态之间匹配,则服务器可以检测到应用状态触发。服务器可以通过比较图形用户界面(gui)元素来检测应用状态触发。例如,如果阈值数量的gui元素(例如,95%的gui元素)在由应用数据指示的应用状态与由应用状态触发指示的应用状态之间匹配,则服务器可以检测到应用状态触发。

在310,服务器可以将事件通知发送到应用。服务器可以在检测到事件的发生时发送事件通知。事件通知可以指示事件的发生。事件通知可以包括事件发生的时间。事件通知可以指示触发了事件的传感器触发。事件通知可以指示触发了事件的应用状态触发。事件通知可以包括指示事件的发生次数的运行计数的计数器值。

服务器可以确定应用是否已被准许访问事件通知(例如,接收事件通知的许可)。服务器可以响应于确定应用已被准许访问事件通知而发送事件通知。服务器可以确定应用尚未被准许接收事件通知的许可。服务器可以请求客户端计算设备从用户获得允许应用接收事件通知的许可。服务器可以响应于用户准许应用接收事件通知的许可而发送事件通知。

图4a例示了可以表示事件的示例事件记录432。事件记录432例示了图2中所示的事件记录232的示例表示。事件记录432可以被存储在事件数据仓库230中。事件记录432可以包括事件标识符(id)434。服务器可以生成事件id434来区分不同的事件记录432。事件记录432可以包括应用id472(例如,应用id172)。应用id472可以识别在发生事件时接收事件通知的应用。事件记录432可以包括事件描述474(例如,事件描述174)。

事件记录432可以包括一个或多个传感器触发426。传感器触发426可以表示图2中所示的传感器触发226。传感器触发426可以包括传感器名称426-1和传感器测量值426-2。每个传感器触发426可以与不同的传感器对应。例如,与心率传感器对应的传感器触发426可以包括作为传感器名称426-1的“心率传感器”以及作为传感器测量值426-2的“>160”。与话筒对应的传感器触发426可以包括作为传感器名称426-1的“话筒”以及作为传感器测量值426-2的“>50db”。传感器触发426可以由操作者(例如,人类操作者)使用解析器(例如,解析器222)和/或使用机器学习器(例如,机器学习器260)来生成。

事件记录432可以包括一个或多个应用状态触发424。应用状态触发424可以表示应用状态触发224。应用状态触发可以包括应用名称424-1和应用状态424-2。每个应用状态触发424可以与不同的应用对应。例如,与音乐播放器应用对应的应用状态触发424可以包括作为应用名称424-1的“音乐播放器”以及作为应用状态424-2的“播放锻炼播放列表”。与消息传送应用对应的应用状态触发424可以包括作为应用名称424-1的“messenger”和作为应用状态424-2的“与sarah聊天”。应用状态触发424可以由操作者(例如,人类操作者)使用解析器(例如,解析器222)和/或使用机器学习器(例如机器学习器260)来生成。

图4b例示了示例传感器记录452。传感器记录452可以表示传感器记录252。传感器记录452可以存储从客户端计算设备(例如,客户端计算设备140)接收到的传感器数据(例如,传感器数据144)。传感器记录452可以包括客户端设备id440。客户端设备id440可以识别发送存储在传感器记录452中的传感器数据的客户端计算设备。客户端设备id440可以包括与客户端计算设备的用户相关联的电子邮件地址、指配给客户端计算设备的个人识别号码(pin)、客户端计算设备的国际移动台设备标识(imei)、客户端计算设备的因特网协议(ip)地址、客户端计算设备的媒体访问控制(mac)地址、客户端计算设备的电话号码等。

传感器记录452可以包括时间戳456。时间戳456可以指在客户端计算设备捕获传感器测量值的时间。时间戳456可以指客户端计算设备将传感器数据发送到服务器的时间。时间戳456可以指服务器从客户端计算设备接收到传感器测量值的时间。传感器记录452可以包括应用id472-1、472-2、...、472-n。应用id472-1、472-2、...、472-n可以指被安装在客户端计算设备上的应用(例如,应用146)。

传感器记录452可以包括传感器测量结果444。传感器测量结果444可以表示传感器数据144。每个传感器测量结果444可以包括客户端计算设备中的不同传感器(例如,传感器142)的传感器测量值。例如,传感器测量结果444可以包括由心率传感器记录的心率。传感器测量结果444可以包括由话筒记录的单位为分贝的声级。传感器测量结果444可以包括由位置传感器确定的位置。

图4c例示了示例应用记录470。应用记录470可以表示应用记录272。应用记录470可以存储从客户端计算设备(例如,客户端计算设备140)接收到的应用数据(例如,应用数据148)。应用记录470可以包括客户端设备id440。应用记录470可以包括时间476。时间476可以指在客户端计算设备捕获应用数据的时间。时间476可以指客户端计算设备将应用数据发送到服务器的时间。时间476可以指服务器从客户端计算设备接收到应用数据的时间。应用记录470可以包括应用id472-1、472-2、...、472-n。

应用记录470可以包括应用状态448。应用状态448可以表示应用数据148。每个应用状态448可以指安装在客户端计算设备上的不同应用(例如,应用146)的应用状态。例如,应用状态448可以指音乐播放器应用的“播放锻炼播放列表”状态。应用状态448可以指messenger应用的“与sarah聊天”状态。应用状态448可以指健身应用的“锻炼”状态。应用状态448可以指导航应用的“导航到工作”状态。应用状态448可以指facebook应用的“接收到100个喜欢”状态。

应用状态448可以指在时间476在客户端计算设备上显示的屏幕。应用状态448可以指在时间476在客户端计算设备上执行的应用。应用状态448可以指客户端计算设备的用户在时间476正在使用的应用。应用状态448可以指在时间476由消息传送应用接收或发送的消息。应用状态448可以指客户端计算设备的用户在时间476使用的应用功能(例如,播放锻炼播放列表)。应用状态448可以指应用在时间476执行的应用活动(例如,向女朋友发送消息、导航到工作等)。

图5例示了示例客户端计算设备540。客户端计算设备540例示了图1中所示的客户端计算设备140的示例实现。客户端计算设备可以包括传感器542、存储应用546的存储器544、触摸屏显示器554和计算处理器560。传感器542可以实现传感器142。应用546可以实现应用146。

计算处理器560可以包括芯片上传感器542'、传感器中枢562、收发器564、显示电路566和中央处理单元(cpu)568。芯片上传感器542'可以包括位置传感器,例如全球定位系统(gps)和/或全球导航卫星系统(glonass)。芯片上传感器542'可以包括加速度计、磁力计、陀螺仪等。传感器542可以被实现为芯片上传感器542'。对传感器542的参考包括芯片上传感器542'。

传感器中枢562可以管理传感器542。传感器中枢562可以从传感器542接收传感器数据(例如,传感器数据144)。传感器中枢562可以确定何时接通或断开传感器542。传感器中枢562可以接通传感器542并命令传感器542记录传感器测量结果。传感器中枢562可以断开传感器542,例如,以节省电力。传感器中枢562可以周期性地(例如,每小时一次、每分钟一次等)接收传感器数据。传感器中枢562可以响应于接收到请求(例如,经由收发器564从服务器)而捕获传感器数据。

收发器564使得能够与网络(例如,网络190或基站192)电子通信。收发器564可以包括蜂窝收发器,例如lte收发器、高级lte收发器或5g(第五代移动网络)收发器。收发器564可以包括wi-fi收发器。收发器564可以包括zigbee收发器、蓝牙收发器(例如,低功耗蓝牙收发器)、nfc收发器等。收发器564可以经由有线通信与网络进行通信。例如,收发器564可以经由以太网电缆、光缆、usb电缆等与网络进行通信。

显示电路566可以使触摸屏显示器554显示信息。显示电路566可以从触摸屏显示器554接收用户输入(例如,用户选择)。显示电路566可以包括显示驱动器。显示驱动器可以驱动触摸屏显示器554。例如,显示电路566可以包括可以驱动发光二极管(led)显示器的led驱动器。显示电路566可以驱动立体显示器(例如,自动立体3d显示器)。

cpu568可以包括基于精简指令集计算(risc)架构的arm处理器。cpu568可以包括多个核(例如,双核、四核或八核)。cpu568可以执行存储在存储器544中的计算机可读指令。当cpu568执行计算机可读指令时,该cpu可以实现许可请求器570、应用状态记录器572和软件开发工具包(sdk)574。cpu568可以执行应用546。

应用状态记录器572可以记录应用546的应用状态。应用状态记录器572可以是应用(例如,预安装的应用)。应用状态记录器572可以由安装在客户端计算机设备540上的操作系统来实现。应用状态记录器572可以是客户端计算机设备540可以预订的服务。应用状态记录器572例如可以作为后台操作来执行,使得用户可以能够使用客户端计算设备540。

应用状态记录器572可以记录应用546的使用。例如,应用状态记录器572可以记录应用572被使用的时间。应用状态记录器572可以记录应用正在执行的应用功能。应用状态记录器572可以记录客户端计算设备的用户正在使用的应用功能。应用状态记录器572可以通过捕获被显示在触摸屏显示器554上的应用屏幕的屏幕截图来记录应用状态。应用状态记录器572可以将所记录的应用状态存储在记录数据仓库552中。应用状态记录器572可以将消息记录在消息数据仓库550中。例如,应用状态记录器572可以监测消息传送应用并存储经由消息传送应用传递的消息。在另一示例中,应用状态记录器572监测电子邮件应用并将经由电子邮件应用传递的电子邮件存储在消息数据仓库550中。传感器中枢562和应用状态记录器572可以被称为数据记录器(例如,数据记录器150)。

计算处理器560可以经由收发器564将由数据记录器记录的数据发送到服务器(例如,服务器100)。计算处理器560可以发送由应用状态记录器572记录的应用数据(例如,应用状态)。计算处理器560可以发送由传感器中枢562记录的传感器数据(例如,传感器测量值)。计算处理器560可以周期性地(例如,一小时一次、一分钟一次或一秒钟一次)发送传感器数据和应用数据。计算处理器560可以响应于从服务器接收到请求而发送应用数据和传感器数据。计算处理器560可以在消息中(例如,在单个消息中)发送应用数据和传感器数据。计算处理器560可以将应用数据和传感器数据作为分别的消息来发送。

cpu568可以实现sdk574。服务器可以提供sdk574。sdk574可以包括应用546可以预订的服务。在cpu568上执行的应用546可以与sdk574交互。应用546可以经由sdk574预订事件通知。应用546可以经由sdk574请求事件通知。应用546可以经由sdk574解除预订事件通知。应用546可以经由sdk574接收事件通知。sdk574可以包括一个或多个应用编程接口(api)。sdk574可以包括一个或多个库等。

cpu568可以实现许可请求器570。许可请求器570可以请求记录传感器数据和应用数据的许可。许可请求器570可以请求将传感器数据和应用数据发送到服务器的许可。许可请求器570可以请求向应用546提供事件通知的许可。许可请求器570可以将许可存储在许可数据仓库548中。

sdk574可以与许可请求器570交互。sdk574可以在向应用546提供事件通知之前经由许可请求器570请求许可。sdk574可以访问许可数据仓库548。sdk574可以确定应用546是否具有接收事件通知的许可。sdk574可以响应于确定应用546具有接收事件通知的许可而给应用546提供事件通知。sdk574可以响应于应用546不具有接收事件通知的许可而指示许可请求器570请求许可。

图6例示了用于在客户端计算设备(例如,客户端计算设备540)接收事件通知的示例方法600。在602,客户端计算设备确定该客户端计算设备中的传感器的传感器测量值。客户端计算设备可以包括记录传感器测量值的传感器中枢(例如,传感器中枢562)。客户端计算设备可以周期性地确定传感器测量值。客户端计算设备可以响应于请求(例如,来自服务器的请求)而确定传感器测量值。

在604,客户端计算设备确定安装在客户端计算设备上的应用的应用状态。客户端计算设备可以包括应用中枢(例如,应用状态记录器572)。应用中枢可以确定正在客户端计算设备的计算处理器上执行的应用的状态。客户端计算设备可以周期性地确定应用状态。附加地或可选地,客户端计算设备可以响应于来自服务器的请求而确定应用状态。客户端计算设备可以将所确定的应用状态存储在数据仓库中。例如,客户端计算设备可以发送一批存储的应用状态,而不是发送单独的应用状态,这可以帮助节省电池电力。

在606,客户端计算设备将传感器测量值和应用状态发送到服务器。客户端计算设备可以一起(例如,在相同的json文件中)发送传感器测量值和应用状态。客户端计算设备可以在分别的消息中分别发送传感器测量值和应用状态。客户端计算设备可以与传感器数据(例如,传感器测量值)和应用数据(例如,应用状态)一起发送客户端计算设备id。客户端计算设备id识别客户端计算设备。客户端计算设备可以与传感器数据和应用数据一起发送应用标识符的列表。应用标识符可以与安装在客户端计算设备上的应用对应。

在608,客户端计算设备从服务器接收对于应用的事件通知。事件通知指示事件的发生。客户端计算设备可以响应于事件的每次发生而接收事件通知。客户端计算设备可以响应于事件的第一次发生而接收事件通知。客户端计算设备可以在一时间段期间(例如,在1年付费预订时段期间)接收事件通知。

在610,客户端计算设备基于用户许可设置而准许应用访问事件通知。客户端计算设备可以包括可以存储许可设置的许可数据仓库。许可设置可以指示应用被允许接收事件通知。客户端设备可以响应于确定应用被允许接收事件通知而向应用提供通知。客户端计算设备可以确定对应用的许可设置不存在。例如,如果许可既未被拒绝也未被准许,则客户端计算设备可以请求将事件通知提供给应用的许可。例如,如果许可已被拒绝给应用,则客户端计算设备可以抑制事件通知。客户端计算设备可以通过清除事件通知来抑制事件通知。客户端计算设备可以将被抑制的事件通知发送回到服务器,例如,以指示应用未被允许接收事件通知。

图7a和图7b分别例示了示例许可屏幕740和740'。客户端计算设备(例如,客户端计算设备140)可以显示用于请求向应用742提供事件通知的许可的许可屏幕740。客户端计算设备的用户可以使用许可屏幕740来允许或拒绝应用742检测事件。许可屏幕740可以显示事件770-1、770-2和770-3。例如,健身应用可以请求通知健身应用客户端计算设备的用户正在锻炼的事件通知。健身应用可以请求通知健身应用用户已步行了10,000步的事件通知。健身应用可以请求通知健身应用用户已经坐太久了的事件通知。

许可屏幕740可以显示gui元素772-1、772-2和772-3,所述gui元素772-1、772-2和772-3可以被选择以分别允许应用742接收对于事件770-1、770-2和770-3的事件通知。gui元素772-1、772-2和772-3可以包括可以被标记为“接受”或诸如此类的按钮。例如,如果客户端计算设备接收到对gui元素772-1的选择,则应用742可以接收通知应用742关于事件770-1的发生的事件通知。例如,如果客户端计算设备接收到对gui元素772-1的选择,则健身应用可以接收通知健身应用用户可能正在锻炼的事件通知。

许可屏幕740可以显示gui元素774-1、774-2和774-3,所述gui元素774-1、774-2和774-3可以被选择以分别拒绝应用742接收对于事件770-1、770-2和770-3的事件通知。gui元素774-1、774-2和774-3可以包括可被标记为“拒绝”或诸如此类的按钮。例如,如果客户端计算设备接收到对gui元素774-3的选择,则应用742可以不接收通知应用742关于事件770-3的发生的事件通知。例如,如果客户端计算设备接收到对gui元素774-3的选择,则健身应用可以不接收通知健身应用用户可能已坐太久的事件通知。许可屏幕740使用户能够允许应用742检测一些事件,同时拒绝应用742检测其它事件。

许可屏幕740可以显示gui元素776-1、776-2和776-3,所述gui元素776-1、776-2和776-3可以被选择以分别查看关于事件770-1、770-2和770-3的更多信息。许可屏幕740可以显示gui元素778,所述gui元素778可以被选择以允许应用742检测应用已请求检测的所有事件。gui元素778可以包括可以被标记为“接受全部”或诸如此类的按钮。许可屏幕740可以显示gui元素780,所述gui元素780可以被选择以拒绝应用742检测应用已请求检测的所有事件。gui元素780可以包括可被标记为“拒绝全部”或诸如此类的按钮。许可屏幕740可以显示可以被选择以安装应用742的gui元素782。

图7b例示了示例许可屏幕740'。许可屏幕740'显示关于事件770-1的更多信息。客户端计算设备可以在接收到对gui元素776-1的选择时显示许可屏幕740'。许可屏幕740'可以显示可以用于检测事件770-1的传感器742-1、742-2和742-3的列表。许可屏幕740'可以显示可以用于检测事件770-1的应用746-1和746-2的列表。许可屏幕740'可以显示gui元素784-1、784-2和784-3,所述gui元素784-1、784-2和784-3可以被选择以准许或拒绝在检测事件770-1时使用传感器742-1、742-2和742-3。许可屏幕740'可以显示可以被选择以允许或拒绝在检测事件770-1时使用应用746-1和746-2的gui元素784-4和784-5。

gui元素784-1、...、784-5可以包括切换开关。客户端计算设备可以接收将开关784-1切换到“是”位置的选择。将开关784-1切换到“是”位置指示可以在检测事件770-1时使用传感器742-1。客户端计算设备可以接收将开关784-3切换到“否”位置的选择。将开关784-3切换到“否”位置指示在检测事件770-1时不能使用传感器742-3。客户端计算设备可以接收将开关784-4切换到“是”位置的选择。例如,因为开关784-4被切换到“是”位置,所以应用746-1可以用于检测事件770-1。客户端计算设备可以接收将开关784-5切换到“否”位置的选择。例如,因为开关784-5被切换到“否”位置,所以不能使用应用746-2来检测事件770-1。有利地,可以准许或拒绝使用各个传感器和/或应用来检测由应用742请求的特定事件。

例如,因为切换开关784-1和784-2被切换到“是”位置,所以客户端计算设备可以记录传感器742-1和742-2的传感器测量值。例如,因为切换开关784-1和784-2被切换到“是”位置,所以客户端计算设备可以将传感器742-1和742-2的传感器测量值发送到服务器(例如,服务器100)。例如,因为切换开关784-1和784-2被切换到“是”位置,所以服务器可以使用来自传感器742-1和742-2的传感器测量值来检测事件770-1。

例如,因为切换开关784-3被切换到“否”位置,所以客户端计算设备不能记录传感器742-3的传感器测量值。例如,因为切换开关784-3被切换到“否”位置,所以客户端计算设备不能将传感器742-3的传感器测量值发送到服务器。例如,因为切换开关784-3被切换到“否”位置,所以服务器不能使用来自传感器742-3的传感器测量值来检测事件770-1。

例如,因为切换开关784-4被切换到“是”位置,所以客户端计算设备可以记录应用746-1的应用数据。例如,因为切换开关784-4被切换到“是”位置,所以客户端计算设备可以将应用746-1的应用数据发送到服务器(例如,服务器100)。例如,因为切换开关784-4被切换到“是”位置,所以服务器可以使用来自应用746-1的应用数据来检测事件770-1。

例如,因为切换开关784-5被切换到“否”位置,所以客户端计算设备可以避免记录应用746-2的应用数据。进一步,例如,因为切换开关784-5被切换到“否”位置,所以客户端计算设备可以避免将应用746-2的应用数据发送到服务器(例如,服务器100)。例如,因为切换开关784-5被切换到“否”位置,所以服务器不能使用来自应用746-2的应用数据来检测事件770-1。

图8例示了用于获得在检测事件时使用传感器和应用的许可的示例方法800。在802,客户端计算设备可以接收使用应用的选择。客户端计算设备可以例如从数字分发平台接收安装应用的选择。客户端计算设备可以通过接收对在客户端计算设备的应用托盘、应用功能区或主屏幕中显示的应用图标的选择,接收使用该应用的选择。

在804,客户端计算设备确定应用正在请求对应事件的事件通知。客户端计算设备可以基于与应用相关联的元数据来确定应用正在请求事件通知。例如,客户端计算设备可以分析与应用相关联的清单文件。客户端计算设备可以基于从服务器接收到的信息来确定应用正在请求事件通知。例如,客户端计算设备可以向服务器发送应用id并且从服务器接收该应用使用事件通知的指示。

在806,客户端计算设备识别用于检测事件的传感器和应用。客户端计算设备可以基于与应用相关联的元数据来识别传感器和应用。客户端计算设备可以基于与应用相关联的清单文件来识别传感器和应用。客户端计算设备可以向服务器发送应用id或事件id,并且接收用于检测事件的传感器和应用的列表。

在808,客户端计算设备显示对于用于检测事件的每个传感器和应用的可选gui元素。gui元素可以包括可被切换到“是”位置或“否”位置的切换开关。将切换开关切换到“是”位置可以指示批准使用与切换开关相关联的传感器或应用来检测事件。将切换开关切换到“否”位置可以指示拒绝或否定使用与切换开关相关联的应用或传感器来检测事件。gui元素可以包括按钮、滑块、复选框等。

在810,客户端计算设备使用所选择的传感器和应用来检测事件。客户端计算设备可以更新许可设置以指示可用于检测事件的传感器和应用。客户端计算设备可以使用对应的切换开关被切换到“是”位置的传感器和应用。客户端计算设备不能使用切换开关被切换到“否”位置的传感器和应用。客户端计算设备可以向服务器通知许可设置。客户端计算设备可以指示服务器使用被批准用于检测事件的应用和传感器。客户端计算设备可以指示服务器避免使用被拒绝用于检测事件的传感器和应用。

客户端计算设备可以记录被批准在检测事件时使用的传感器和应用的传感器数据和应用数据。客户端计算设备可以发送被批准在检测事件时使用的传感器和应用的传感器数据和应用数据。客户端计算设备可以避免记录被拒绝在检测事件时使用的传感器和应用的数据。客户端计算设备可以避免发送未被批准用于检测事件的传感器和应用的传感器数据和应用数据。

图9是可以用于实现本文档中所描述的系统和方法的示例计算设备1000的框图。计算设备1000可以用于实现服务器100。计算设备1000可以用于实现客户端计算设备140。计算设备1000旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其它适当的计算机。这里所示出的组件、它们的连接和关系及其功能仅意在为示例性的,而不意在限制本文档中所描述和/或要求保护的本公开的实现。

计算设备1000包括处理器1002、存储器1004、存储设备1006、连接到存储器1004和高速扩展端口1010的高速接口1008以及连接到低速总线1014和存储设备1006的低速接口1012。组件1002、1004、1006、1008、1010和1012中的每一个使用各种总线互连,并且可以根据需要被安装在公共母板上或以其它方式安装。处理器1002可处理在计算设备1000内执行的指令,包括存储在存储器1004中或在存储设备1006上以在外部输入/输出设备(诸如,耦合到高速接口1008的显示器)上显示图形用户界面(gui)的图形信息1016的指令。在其它实施方式中,可以根据需要使用多个处理器和/或多条总线以及多个存储器和多种类型的存储器。另外,可以连接多个计算设备1000,其中每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。

存储器1004存储计算设备1000内的信息。在一个实施方式中,存储器1004是计算机可读介质。在一个实施方式中,存储器1004是一个或多个易失性存储器单元。在另一实现中,存储器1004是一个或多个非易失性存储器单元。

存储设备1006能够为计算设备1000提供海量存储。在一些实施方式中,存储设备1006是计算机可读介质。在各种不同的实施方式中,存储设备1006可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪速存储器或其它类似的固态存储器设备或设备阵列,包括存储区域网络或其它配置中的设备。在附加实施方式中,计算机程序产品被有形地具体实现在信息载体中。计算机程序产品包含指令,所述指令当被执行时,执行一个或多个方法,诸如上面所描述的那些方法。信息载体是计算机或机器可读介质,诸如存储器1004、存储设备1006或处理器1002上的存储器。

高速控制器1008管理计算设备1000的带宽密集操作,然而低速控制器1012管理较低带宽密集操作。责任的这种分配仅是示例性的。在一些实施方式中,高速控制器1008耦合到存储器1004、显示器1016(例如,通过图形处理器或加速器),并且耦合到可以接受各种扩展卡(未示出)的高速扩展端口1010。在该实施方式中,低速控制器1012耦合到存储设备1006和低速扩展端口1014。可以包括各种通信端口(例如,usb、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、定位设备、扫描仪或联网设备(诸如交换机或路由器)。

如图9中所示,可以以许多不同的形式实现计算设备1000。例如,它可以作为标准服务器1020被实现,或者在一组此类服务器中被实现多次。它也可以作为机架服务器系统1024的一部分被实现。此外,它可以被实现在个人计算机(诸如膝上型计算机1022)中。或者,来自计算设备1000的组件可以与移动设备(诸如设备1050)中的其它组件(未示出)组合。此类设备中的每一个可以包含一个或多个计算设备1000,并且整个系统可以由彼此通信的多个计算设备1000组成。

这里所描述的系统和技术的各种实现可用数字电子和/或光学电路、集成电路、专门设计的asic(专用集成电路)、计算机硬件、固件、软件和/或其组合加以实现。这些各种实施方式可包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,所述可编程系统包括至少一个可编程处理器,所述可编程处理器可以是专用的或通用的,耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并且向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。

这些计算机程序(也被称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可用高级过程和/或面向对象编程语言和/或用汇编/机器语言加以实现。如本文中所使用的,术语“机器可读介质”和“计算机可读介质”指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(pld)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”指用于向可编程处理器提供机器指令和/或数据的任何信号。

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

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

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

作为示例,适合于执行计算机程序的处理器包括通用微处理器和专用微处理器两者,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元件是用于执行指令的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机也将包括或者可操作地耦合以从用于存储数据的一个或多个海量存储设备(例如,磁盘、磁光盘或光盘)接收数据,或者向该海量存储设备传送数,或者兼而有之。然而,计算机不必具有此类设备。此外,可将计算机嵌入在另一设备中,所述另一设备例如为移动电话、个人数字助理(pda)、移动音频播放器、全球定位系统(gps)接收器等等。适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,作为示例包括半导体存储器设备,例如eprom、eeprom和闪速存储器设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及cd-rom和dvd-rom盘。处理器和存储器可由专用逻辑电路来补充,或者并入专用逻辑电路。

为了提供与用户的交互,可以将本公开的一个或多个方面实现在计算机上,所述计算机具有用于向用户显示信息的显示设备(例如,crt(阴极射线管)、lcd(液晶显示器)监视器或触摸屏)以及可选地用户可以用来向该计算机提供输入的键盘和定位设备(例如,鼠标或跟踪球)。其它种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以任何形式接收来自用户的输入,包括声、语音或触觉输入。此外,计算机可通过向由用户使用的设备发送文档并从由用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收到的请求而向用户的客户端设备上的web浏览器发送web页面。

本公开的一个或多个方面可被实现在计算系统中,所述计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有用户可以用来与本说明书中所描述的主题的实施方式交互的图形用户界面或web浏览器的客户端计算机),或者包括一个或多个此类后端、中间件或前端组件的任何组合。系统的组件可通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”)、互联网络(例如,因特网)和对等网络(例如,自组织对等网络)。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络来交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施方式中,服务器向客户端设备发送数据(例如,html页面)(例如,出于向与客户端设备交互的用户显示数据并且从与客户端设备交互的用户接收用户输入的目的)。可在服务器处从客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)。

虽然本说明书包含许多细节,但是这些不应当被解释为对本公开的或可以要求保护的范围构成限制,而是相反作为特定于本公开的特定实施方式的特征的描述。也可在单个实施方式中相结合地实现在本说明书中在单独的实施方式的上下文中描述的某些特征。相反地,也可以在多个实施方式中单独地或者按照任何适合的子组合实现在单个实施方式的上下文中描述的各种特征。此外,尽管特征可以在上面被描述为按照某些组合行动并且因此甚至最初要求保护,然而来自要求保护的组合的一个或多个特征在一些情况下可以从该组合中删除,并且所要求保护的组合可以指向子组合或子组合的变型。

类似地,虽然在附图中以特定次序描述操作,但是这不应当被理解为要求以所示特定次序或以顺序次序执行此类操作,或者要求所有图示的操作被执行以实现所希望的结果。在某些情况下,多任务处理和并行处理可以是有利的。此外,上述的实施例中的各种系统组件的分离不应当被理解为在所有实施例中都要求这种分离,并且应该理解的是,所描述的程序组件和系统通常可被一起集成在单个软件产品中或者封装到多个软件产品中。

已经对许多实现进行了描述。然而,应理解的是,可以在不脱离本公开的精神和范围的情况下进行各种修改。因此,其它实现在以下权利要求的范围内。例如,权利要求中所记载的动作可以被以不同的次序执行并仍然达到所希望的结果。

示例的应用名称解析器:

1.读取应用名称查找表//应用名称查找表标识已知应用的列表、应用的应用标识符、每个已知应用的关联词或短语以及与每个应用/词或短语对相关联的置信度值。

2.接收所分析的标记

3.对于标记的每个组合{//单个标记和两个或更多个标记的组合

4.在查找表中查找标记的组合以得到与已知应用的任何可能的匹配

5.如果找到匹配

6.则:使用标记的组合作为字符串来生成解析的标记

7.添加限定与应用/词或短语对相关联的应用id和置信度值的新性质

8.否则:如果标记的组合中所分析的标记的数量==1//没有同义词和单个标记

9.则:使用标记的组合作为字符串来生成解析的标记

10.否则:丢弃标记的组合

11.将解析的标记组合成解析的查询

12.输出解析的查询

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