用于自动填充应用的定制用户提示的制作方法

文档序号:19792686发布日期:2020-01-24 14:38阅读:273来源:国知局
用于自动填充应用的定制用户提示的制作方法

相关申请的交叉引用

本申请要求于2017年10月24日提交的美国临时申请no.62/576,480的优先权,所述美国临时申请的内容以引用的方式整体并入本文中。



背景技术:

许多现代计算设备,包括移动设备、移动电话、个人计算机和平板电脑,提供用于允许用户与计算设备进行交互的用户界面(ui)。例如,应用程序可以使用ui来使用图像、文本和图形元素(诸如窗口、对话框、弹出窗口、图像、按键、滚动条和图标)与用户通信。ui还可以接收来自设备(诸如,触摸屏、存在敏感显示器、计算机鼠标、键盘和用以允许用户控制ui并且因此控制应用程序的其它设备)的输入。

在一些情况下,ui可以用于与操作系统进行交互以管理计算设备。例如,操作系统可以具有控制面板或设置应用,所述控制面板或设置应用使用ui绘制与用于计算设备的一些方面的控制设置有关的一个或多个窗口,所述方面诸如音频控制、视频输出、计算机存储器和操作系统所使用的人类语言(例如,选择用英语、法语、普通话、印度语、俄语等来接收信息)。控制面板/设置应用可以使用ui接收与所述窗口相关的后续输入。ui可以经由控制面板/设置应用将输入提供给操作系统,以管理计算设备。

然而,手动地将数据输入到ui中对于用户来说可能不便、缓慢和/或麻烦,或者可能会生成误差,尤其是在可能具有小型ui的移动设备上生成误差。



技术实现要素:

示例实施例涉及一种系统,所述系统允许用户设备的操作系统在远程提供者的帮助下智能地提示用户保存数据以供未来跨多个应用的自动填充用途,而无需所述远程提供者分析用户输入数据或将所述用户输入数据存储在用户设备上。更具体地,意识到用户可以输入敏感或机密信息,用户设备的操作系统可以替代地确定由应用在用户设备的用户界面(ui)上显示的内容的子集,所述子集不包括特定于该用户的信息。然后,在另一方面,操作系统可以使用该内容子集来生成并向远程提供者传输对与该应用一起使用的至少一个模板的请求。另外,基于该请求,操作系统可以从远程提供者接收包含至少一个模板的响应,所述至少一个模板指示如何处理输入到由应用在ui上显示的一个或多个文本输入域中的用户输入数据。此外,操作系统还可以接收所述一个或多个文本输入域中的一个或多个用户输入值,并且生成提示以授权将所述一个或多个用户输入值传输给远程提供者以供未来在自动填充中使用,其中,通过使用所述至少一个模板来处理所述一个或多个用户输入值来定制所述提示。

一方面,提供了一种方法,所述方法包括确定由应用在用户设备的用户界面(ui)上显示的内容的子集,其中,所述子集不包括特定于用户的信息。所述方法还包括向远程提供者传输对与所述应用一起使用的至少一个模板的请求,其中,所述请求包括在ui上显示的内容的子集。所述方法还包括从远程提供者接收对所述请求的响应,其中,所述响应包括所述至少一个模板,所述至少一个模板指示如何处理由所述应用在ui上显示的一个或多个文本输入域中的用户输入数据。所述方法还包括接收所述一个或多个文本输入域中的一个或多个用户输入值。所述方法还包括生成提示以授权将所述一个或多个用户输入值传输给远程提供者以供未来在自动填充中使用,其中,通过使用所述至少一个模板来处理所述一个或多个用户输入值来定制所述提示。

在另一方面,提供了一种用户设备。所述用户设备包括ui和操作系统,所述操作系统被配置成确定由应用在用户设备的ui上显示的内容的子集,其中,所述子集不包括特定于用户的信息。所述操作系统还被配置成向远程提供者传输对与应用一起使用的至少一个模板的请求,其中,所述请求包括在ui上显示的内容的子集。操作系统还被配置成从远程提供者接收对请求的响应,其中,所述响应包括所述至少一个模板,所述至少一个模板指示如何处理由应用在ui上显示的一个或多个文本输入域中的用户输入数据。操作系统还被配置成接收所述一个或多个文本输入域中的一个或多个用户输入值。操作系统还被配置为生成提示以授权将所述一个或多个用户输入值传输给远程提供者以供未来在自动填充中使用,其中,通过使用所述至少一个模板来处理所述一个或多个用户输入值来定制所述提示。

在另一方面,提供了一种非暂时性计算机可读介质,在所述非暂时性计算机可读介质中存储有能够由一个或多个处理器执行以使用户设备的操作系统执行功能的指令。所述功能包括确定由应用在用户设备的用户界面(ui)上显示的内容的子集,其中,所述子集不包括特定于用户的信息。这些功能还包括向远程提供者传输对与应用一起使用的至少一个模板的请求,其中,所述请求包括在ui上显示的内容的子集。这些功能还包括从远程提供者接收对请求的响应,其中,所述响应包括所述至少一个模板,所述至少一个模板指示如何处理由应用在ui上显示的一个或多个文本输入域中的用户输入数据。这些功能还包括接收所述一个或多个文本输入域中的一个或多个用户输入值。这些功能还包括生成提示以授权将所述一个或多个用户输入值传输给远程提供者以供未来在自动填充中使用,其中,通过使用所述至少一个模板来处理所述一个或多个用户输入值来定制所述提示。

在另一方面,提供了一种系统,所述系统包括:ui、至少一个处理器和非暂时性计算机可读介质,在所述非暂时性计算机可读介质中存储有指令(当由所述至少一个处理器执行时,使所述至少一个处理器来执行功能)。所述系统包括用于确定由应用在用户设备的用户界面(ui)上显示的内容的子集的装置,其中,所述子集不包括特定于用户的信息。所述系统还包括用于向远程提供者传输对与应用一起使用的至少一个模板的请求的装置,其中,所述请求包括在ui上显示的内容的子集。所述系统还包括用于从远程提供者接收对请求的响应的装置,其中,所述响应包括所述至少一个模板,所述至少一个模板指示如何处理由应用在ui上显示的一个或多个文本输入域中的用户输入数据。所述系统还包括用于接收所述一个或多个文本输入域中的一个或多个用户输入值的装置。所述系统还包括用于生成提示以授权将所述一个或多个用户输入值传输给远程提供者以供未来在自动填充中使用的装置,其中,通过使用所述至少一个模板来处理所述一个或多个用户输入值来定制所述提示。

前述发明内容仅是说明性的,并且不意图以任何方式进行限制。除了上述说明性方面、实施例和特征之外,通过参考附图和以下具体实施方式以及附图,其它方面、实施例和特征也将变得显而易见。

附图说明

图1描绘了根据示例实施例的分布式计算架构。

图2是根据示例实施例的方法的流程图。

图3a图示了根据示例实施例的给用户的提示,该提示用于设置自动填充。

图3b图示了根据示例实施例的用于经由用户设备的ui进行选择的显示的数据集标识符。

图3c图示了根据示例实施例的用于经由用户设备的ui进行选择的多个显示的数据集标识符。

图4a示出了根据示例实施例的用户界面功能,所述用户界面功能与用户将数据手动输入到ui上显示的应用的文本输入域中相关联。

图4b图示了根据示例实施例的确认消息和与保存图4a中示出的用户手动输入的数据相关联的通用数据保存提示。

图4c示出了根据示例实施例的用户界面功能,所述用户界面功能与用户将数据手动输入到ui上显示的应用的文本输入域中相关联。

图4d示出了根据示例实施例的确认消息和与保存图4c中示出的用户手动输入的数据相关联的定制的提示。

图5是根据示例实施例的示例性计算设备的功能框图。

具体实施方式

本文描述了示例性方法和系统。本文描述的任何示例实施例或特征不一定会被解释为比其它实施例或特征优选或有利。本文描述的示例实施例并不意味着是限制性的。容易理解的是,所公开的系统和方法的某些方面可以以多种不同的配置进行布置和组合,所有这些在本文中都是可以想到的。

此外,附图中示出的特定布置不应被视为是限制性的。应当理解的是,其它实施例可以或多或少包括给定的图中示出的每个元素。此外,图示的元素中的一些元素可以组合或省略。另外,示例实施例可以包括图中未图示的元素。

容易理解的是,如本文一般地描述的以及在附图中图示的,本公开的各方面可以以多种不同的配置来布置、替换、组合、分离和设计,所有这些在本文中都是可以想到的。

i.概述:

包括移动设备、移动电话、个人计算机和平板电脑的用户设备在现代通信网络中无处不在。这些设备中的许多设备能够运行一个或多个应用,同时促进在此类网络内的通信。此外,这些设备中的许多设备还提供了用于允许用户与用户设备进行交互的一个或多个ui。

例如,用户可以通过图像、文本和其它图形元素的使用来使用ui传达将由用户设备上的应用使用的信息。ui还可以从连接到用户设备的众多设备接收输入,所述众多设备是诸如触摸屏、存在敏感显示器、计算机鼠标、键盘和允许用户控制ui并因此控制应用的其它设备。

在最佳情形下,用户将能够有效且高效地使用ui来传达此类信息;然而,一个或多个因素可能会限制用户的这种能力。因此,如果在这种限制下进行操作,则随着对传达越来越多信息的需求的增长,有效且高效地传达该信息的能力可能会受到限制。

举例来说,对于具有小型屏幕的用户设备来说,将大量文本键入到ui中以传达将由应用使用的信息可能非常困难,尤其是在文本也难以被用户记住的情况下。因此,可能有利的是所述应用能够记住该信息,因为下次用户要采用所述应用时不必重新传达该信息。然而,可能的是,随着用户尝试与之通信的应用的数量的增加,通过使用ui向这些应用中的每个应用传达大量文本(第一次或其它)所带来的负担可能会烦扰用户。而且,即使个别应用记住用户输入的信息,可能还是这种情况。因此,一旦被提示输入此类信息,用户就可能会变得较少启用这些应用(或完全放弃它们的使用)。

这些问题中的一些可以通过使用方法、系统和设备来解决,所述方法、系统和设备允许用户设备的用户有效且高效地传达将被这些应用使用的信息,做法是启用用户设备的操作系统充当中介,以在远程提供者的帮助下促进跨多个应用的自动填充。具体地,在一些示例中,用户可以通过以下方式来在用户设备的操作系统层面上使用自动填充:部分启用自动填写,允许授权的远程提供者提供用于自动填充的数据,检索自动填充数据以及保存自动填充数据以供未来使用。

此外,远程提供者在帮助促进自动填充方面的这种使用可以为用户使用自动填充时的体验提供若干改进。例如,用户可以对于其输入的数据(例如,密码、信用卡号等)享受增加的安全性,因为该数据可以由远程提供者远程存储,而不是本地存储在用户设备上。在另一示例中,用户可以对于可能跨多个设备的进一步的自动填充的使用,对于其输入的数据(例如,密码、信用卡号等)享受增加的便利性,因为该数据可以由远程提供者远程存储,而不是本地存储在一个用户设备上。但是,如上所述,因为远程提供者可能无法访问用户可能输入的用于未来自动填充用途的数据直到用户同意允许将该数据用于未来自动填充用途,所以对于远程提供者来说,很难对于用户输入数据的类型、范围和详细信息或甚至如何将用户输入数据用于未来的自动填充用途向操作系统提供任何见解或方向。

因此,在这种系统中,可能会减少用户倾向于启用和利用这种自动填充功能的另一挑战将是可能对于为未来自动填充用途存储的信息的类型或程度方面缺乏特异性。例如,如果向用户显示通用的自动填充保存提示,诸如“将<类型>保存到<服务>?”(“save<type>to<service>?”),由于不知道来自用户的输入数据的详细信息,因此<类型>和<服务>可能仅可以通过使用通用词(例如“密码”、“信用卡”等)进行设置。此外,出于一个或多个令人信服的理由(例如,个人身份信息或“pii”和/或其它敏感信息),设备可能不支持对该用户输入的数据进行分析或保存这一事实可能会使该问题更加复杂。并且,缺少由设备分析或保存该用户输入的数据可能会给设备带来其它分析限制和/或给用户带来不期望的体验(例如,即使用户已经选择了保存输入的数据以供未来的自动填充用途(包括这一次),设备还是可能会显示此通用保存提示,这可能会令用户讨厌)。另外,这种由设备分析或保存用户输入的数据的缺失可能会给其它为用户对设备的自动填充体验做出贡献的分析部件带来挑战(例如,设备对用户输入的数据的验证可能有限,因此任何关联的自动填充提供者必须在收到后处理与该数据有关的任何错误)。

此外,这些问题可能不会在可能不具有移动设备的安全性约束(例如,操作系统可能不理解信用卡的概念,并且因此无法基于任何用户输入的号码而推断其类型、推断其有效与否、推断基于发卡行应显示什么图标等)的其它设备或平台上发生,因为可能已从移动设备上卸载所述信息和逻辑(例如,转移到关联的自动填充提供者上)。因此,当试图为用户提供用户输入的数据(所述用户输入数据将被系统保存以用于未来自动填充用途)的类型、范围和详细信息的准确近似时,存在一个因果难定的问题:移动设备的操作系统只能在当其经由由用户输入的文本输入域获取到用户输入的数据后才能推测该逻辑,但是在用户同意之前,也不能分析、传输或存储该数据以提供知情提示。因此,需要向用户提供用户输入的数据的类型、范围和详细信息的准确近似而不会影响该数据,所述用户输入的数据将被用于未来自动填充用途。

本文公开的是与方法、系统和设备有关的示例实施例,所述方法、系统和设备允许向用户设备的用户告知用户输入的数据的类型、范围和详细信息而不会影响该数据,所述用户输入的数据将被用于未来自动填充用途。具体地,本文公开的示例实施例允许部分地通过以下方式来向用户智能地告知在用户设备的操作系统层面上输入的用于未来自动填充用途的数据:请求和接收指示系统应如何处理用户输入的数据的一个或多个模板,接收此类数据的输入,根据用户设备已从自动填充提供者接收的一个或多个模板进行处理并以其它方式进行验证,以及生成和显示定制的提示以授权将该输入的数据传输到远程提供者以用于未来自动填充用途。

通过在用户输入任何数据之前接收模板,设备的操作系统可以在已经输入了用户输入之后立即显示定制的提示,而无需任何网络通信。替代系统可能需要将用户输入的数据传输到远程提供者,以允许远程提供者生成定制的提示并将定制的提示传输回设备。然而,在可以向设备的用户显示定制的提示之前,这种替代系统可能会遭遇网络延迟,特别是如果用户位于网络连接性较差的区域中。

在根据本公开的示例实施例中,可能用户设备的操作系统可以从用户接收授权以启用在用户设备的ui上显示的应用的自动填充。例如,为了使得能够自动填充,操作系统可以确定文本输入域与通用自动填充描述符相关联(例如,文本输入域与诸如“卡号”或“有效期”等术语相关联),并且然后提示用户设置自动填充。在另一方面,如果用户仅指定了一个远程提供者来帮助促进自动填充,则可以提示用户同意使用该远程提供者;但是如果指定了多个远程提供者,则可能会提示用户选择一个或多个远程提供者。然而,在任何一种情形下,由于启用操作系统执行自动填充功能可能涉及特定于用户的敏感和/或个人信息,所以操作系统可以向用户告知关于自动填充授权的详细信息。这些详细信息可以包括接受关于操作系统和/或与每个远程提供者相关联的免责声明的详细协议,以在授权这些远程提供者中的一个或多个使用自动填充之前通知用户并确认其同意。

在另一方面,操作系统还可检测触发操作系统检查ui上显示的内容的事件。在示例实施例以及其它说明性示例中,该事件可以包括:应用程序的启动;在应用上选择文本输入域;文本输入域具有焦点的信号(例如,特定文本域已被启用,使得在ui上显示键盘)。

在另一方面,操作系统还可以确定该内容的哪一部分不包含敏感的特定于用户的信息。

在又一方面,利用内容的这一部分,操作系统可以向远程提供者传输请求,以通过提供用于应用的至少一个模板来帮助促进应用的自动填充。在该实施例中,这种请求可能对操作系统和用户二者都是有益的,因为它可以允许远程提供者安全地和私密地解析ui上显示的内容,以确定哪些信息对于促进应用的自动填充(例如,确定可以自动填充应用上的哪些文本输入域)可能是有用的。在一些实施例中,可以响应于应用的启动而向远程提供者传输该对所述至少一个模板的请求。在其它实施例中,可以响应于对应用的文本输入域的选择而传输该请求。在其它实施例中,该请求可以包括与一个或多个文本输入域相关联的元数据。

无论哪种方式,一旦这种请求已经被发送到远程提供者,操作系统就可以接收对包含有至少一个模板的请求的响应,所述至少一个模板指示如何处理在ui上显示的应用的一个或多个文本输入域中的用户数据。另外,在其它实施例中,模板可以包括至少一个正则表达式。在另外的实施例中,模板可以包括多个值与对应的多个图像之间的映射,并且系统还可以基于所述映射和一个或多个用户输入值来确定要包括在提示内的图像。在其它实施例中,模板可以包括部分值掩码,并且系统还可以通过将部分值掩码应用于所述一个或多个用户输入值中的一个用户输入值来确定要包括在提示内的值。

在另一示例中,如果与给定的扩充相关联的条件评估为真,则可以扩充模板和/或ui。例如,远程提供者可以提供用于支付数据的模板,可以基于信用卡类型进一步定制所述模板(例如,对于信用卡类型a,可以在定制的提示中显示徽标或相关联的图形以及定制文本,但是对于信用卡类型b,定制的提示中可能仅显示徽标或相关联的图形)。在另一方面,这是通过传递模板的有条件定制来实现的,其中如果满足了对应的条件,则可以用各种类型的输入数据进一步扩充模板。在另一方面,在扩充模板之后,可以经由与每个扩充相关联的转换列表来填充模板。例如,如果卡是信用卡类型a,则操作系统可以插入信用卡类型a特定的ui元素,并且使用相关联的转换来填充这些元素。

在其它实施例中,所述响应还可以包含多个值占位符的布局和对应的多个转换,并且所述系统可以通过将对应的转换应用于所述一个或多个用户输入值中的至少一个用户输入值来确定所述多个值占位符中的每个值占位符的值,其中,所述提示包括用于所述布局中的每个值占位符的确定的值。在另一方面,在一些实施例中,该布局可以包括字符串模板。

无论哪种方式,一旦接收到该响应,操作系统还可以接收所述一个或多个文本输入域中的一个或多个用户输入值。

操作系统可以生成提示以授权将一个或多个用户输入值传输到远程提供者以供未来在自动填充中使用,其中通过使用所述至少一个模板来处理所述一个或多个用户输入值来定制所述提示。在另一方面,在一些实施例中,该提示可以包括远程提供者的标识符。在另一方面,在一些实施例中,一旦生成了提示,操作系统就可以在生成提示之后丢弃所述至少一个模板。

一旦生成了该提示,操作系统还可以经由所述提示接收将所述一个或多个用户输入值传输到远程提供者的授权。然后,响应于接收授权,操作系统可以将一个或多个用户输入值传输到远程提供者。

在另外的实施例中,操作系统还可以使用至少一个模板来验证一个或多个用户输入值,并且响应于成功的验证(例如,用户已经输入了正确的信用卡号位数的验证)而生成提示。然而,在其它示例中,如果该验证不成功,则操作系统可能不会生成或显示提示。

在其它实施例中,操作系统还可以响应于经由ui的多个用户输入动作中的每一个用户输入动作而基于所述至少一个模板来确定所述一个或多个用户输入值是否有效。操作系统可能仅在确定所述一个或多个用户输入值有效时才生成提示。例如,所述多个用户输入动作中的每一个用户输入动作可以是将文本字符输入到所述一个或多个文本输入域中的一个文本输入域中。

在其它实施例中,操作系统还可以确定远程提供者是否已经存储了对应于所述一个或多个用户输入值的数据集。操作系统可能仅在确定了远程提供者尚未存储对应于所述一个或多个用户输入值的数据集时才生成提示。在另一方面,在一些实施例中,操作系统可以基于远程提供者先前提供的数据集的列表来确定远程提供者是否已经存储对应于所述一个或多个用户输入值的数据集。

ii.分布式计算架构

现在将详细参考各种实施例,所述各种实施例的示例在附图中图示出。在下面的详细描述中,阐述了众多具体细节以便提供对本公开和所描述的实施例的透彻理解。然而,可以在没有这些具体细节的情况下实践本公开。在其它情形下,未详细描述熟知的方法、程序、部件和电路,以免不必要地模糊实施例的各方面。

图1描绘了根据示例实施例的具有服务器设备108、110的分布式计算架构100,所述服务器设备108、110被配置成经由网络106与用户设备104a、104b、104c、104d、104e以及远程提供者112和114通信。网络106可以对应于局域网(lan)、广域网(wan)、公司内部网、公共互联网或被配置成在联网计算设备之间提供通信路径的任何其它类型的网络。网络106也可以对应于一个或多个lan、wan、公司内部网和/或公共互联网的组合。

虽然图1仅示出了少量的用户设备,但是分布式应用架构可以服务于数十个、数百个或数千个用户设备。此外,用户设备104a、104b、104c、104d、104e(或任何另外的可编程设备)可以是能够允许用户启用计算设备的操作系统以在远程提供者的帮助下促进跨多个应用的自动填充的任何类别的计算设备,诸如普通笔记本计算机、台式计算机、可穿戴计算设备、移动计算设备、可头戴的设备(hmd)、网络终端、无线通信设备(例如,智能电话或手机)等。在诸如以用户设备104a、104b和104c指示的一些实施例中,用户设备可以直接连接到网络106。在诸如以用户设备104d和104e指示的其它实施例中,用户设备可以经由相关联的计算设备(诸如计算设备104c)间接连接到网络106。在这种实施例中,用户设备104c可以充当关联的计算设备以在用户设备104d和104e与网络106之间传递电子通信。在图1中未示出的其它实施例中,用户设备可以既直接地也间接地连接到网络106。

服务器设备108、110可以作为基于云的服务器系统的一部分来操作,所述基于云的服务器系统按需将计算机处理资源和数据共享给计算机和其它设备。特别地,服务器设备108、110可以被配置成执行用户设备104a到104e请求的一个或多个服务。例如,服务器设备108和/或110可以向用户设备104a到104e提供内容。在另一方面,服务器设备108和/或110可以直接或通过促进从第三方请求的内容的传输来向用户设备104a到104e提供内容。所述内容可以包括但不限于网页、超文本、脚本、诸如编译的软件等二进制数据、图像、音频和/或视频。所述内容可以包括压缩和/或未压缩的内容。内容可以是加密和/或未加密的。

远程提供者112、114也可以作为基于云的服务器系统的一部分来操作,所述基于云的服务器系统按需将计算机处理资源和数据共享给计算机和其它设备。特别地,根据示例实施例,远程提供者112、114可以在网络106上提供、接收、存储、管理和传输内容。例如,远程提供者112和/或114可以接收对将要被用户设备104a到104e使用的内容的请求,并且生成包含所述内容的响应并将所述响应传输给连接到所述网络的设备。

在示例内,服务器设备108和/或110可以在远程提供者112和/或114的帮助下提供促进跨用户设备104a到104e上的多个应用的自动填充的内容。另外,服务器设备108和/或110可以向用户设备104a到104e提供对软件的访问,以用于数据库、搜索、计算、图形、音频、视频、万维网/互联网利用和/或其它功能。所述内容的许多其它示例也是可能的。

iii.方法流程图和示例实施例

图2图示了示出方法200的流程图,可以执行所述方法200以允许用户启用用户设备的操作系统来保存用户输入的数据,以在远程提供者的帮助下促进跨多个应用的未来自动填充。方法200可以由一个或多个计算设备来执行,所述一个或多个计算设备诸如用户设备104a到104e和远程提供者112和/或114并且在一些情形下还有服务器108和/或110,如关于图1所图示和描述的那样。在另外的示例中,方法200可以由作为基于云的系统的一部分进行操作的用户设备104a到104e以及远程提供者112和/或114以及在一些情形下还有服务器108和/或110来执行。另外,方法200可以由除图1中特别图示的那些设备以外的一种或多种其它类型的计算设备执行。

另外,虽然以下将方法200的步骤描述为由操作系统完成,但是与用户设备有关的其它部件、应用和/或技术可以执行方法200的步骤。

此外,应当注意的是,结合本文描述的流程图描述的功能可以实现为:特殊功能和/或被配置的通用功能硬件模块,由处理器执行以实现特定逻辑功能的程序代码的各部分,确定,和/或结合图2中示出的流程图描述的步骤。在使用时,程序代码可以存储在任何类型的计算机可读介质(例如包括磁盘或硬盘驱动器的存储设备)上。

另外,图2中示出的流程图的每个框可以表示被连线以在过程中执行特定逻辑功能的电路。除非特别指出,否则图2中示出流程图中的功能可以不按照示出或讨论的顺序执行,包括基本上同时执行分开描述的功能,或者在一些示例中甚至按相反的顺序执行,这取决于所涉及的功能,前提是所描述的方法的整体功能得以维持。

在框210处,方法200可以包括确定由应用在用户设备的用户界面(ui)上显示的内容的子集,其中,所述子集不包括特定于用户的信息。特别地,用户可能正在与计算设备进行交互,并决定与该设备上的应用进行交互。操作系统可以识别出用户正在与应用进行交互,并且识别出存在操作系统知道的与对应用进行自动填充有关的内容。根据该数据,操作系统然后可以提示用户来授权操作系统以启用对应用的自动填充,这可以改善用户与用户界面功能的交互和/或响应性。

通常而言,操作系统可以识别通常与自动填充相关联的某些数据。在示例中,操作系统可以识别出与应用相关联的文本输入域包含有通用自动填充描述符或与通用自动填充描述符(例如,“卡号”或“有效期”)相关联。作为响应,在该示例中,操作系统然后可以提示用户来设置自动填充。

在一些示例中,在用户对该提示进行响应之前、之后或期间,操作系统还可以编译一个或多个远程提供者的列表,以进一步帮助促进自动填充。一方面,如果仅指定了一个远程提供者来帮助促进自动填充,则可以提示用户同意使用该远程提供者。然而,在另一方面,如果指定了多个远程提供者来帮助促进自动填充,则可以提示用户选择一个远程提供者并且还提示用户使用该远程提供者的协议。在又一方面,虽然可以允许用户选择不止一个远程提供者,但是仍然可以提示用户使用选择的远程提供者中的每一个远程提供者的协议。

在另一示例中,由于触发了事件(可能是自动填充触发事件),操作系统可以开始确定由应用在ui上显示的内容的子集。自动填充触发事件可以提供有关用户设备的当前状态的信息或在其上的应用的当前状态的信息,包括用户与设备交互的状态。自动填充触发事件还可以用于帮助操作系统知道何时在正确的时间点启用授权的自动填充。在一些示例中,自动填充触发事件可以是用户与设备的直接或间接交互。然而,通常而言,一旦用户批准了自动填充,操作系统就可以监视用户与设备的交互。

在一个实施例中,示例性自动填充触发事件可以由以下数据指示,所述数据和用户与用户设备的直接交互相关联,诸如,用户对应用的启动,用户对应用的文本输入域的选择,或来自用户的为一个或多个应用设置自动填充的请求,以及其它情形。

在其它示例中,自动填充触发事件可以包括以下数据,所述数据和用户与用户设备的间接交互相关联,诸如已经启动了应用的信号,或者应用的文本输入域或者在用户设备的ui上显示的内容的某一其它参数具有焦点以及其它情形。在另一方面,可以通过ui上显示的图形或gui(诸如键盘)反映用户与用户设备的间接交互。

通常而言,根据这些情形中的任何一种,操作系统可以在尝试促进自动填充时查看敏感和/或个人信息,并且可能有利的是,在用户同意其使用之前,将该自动填充的详细信息通知给用户。具体地,因为操作系统可能查看包含有敏感和/或个人信息的设备上的内容,所以操作系统可以在启用自动填充之前向用户通知关于自动填充的授权的详细信息。

在另一方面,因为所选择的远程提供者可能会接收到用户通常可能不会共享的一些信息,所以也可能会提示用户来批准包含有使用由用户所选择的自动填充提供者中的每一个自动填充提供者的条款的协议。在一些示例中,为了确保用户完全理解使用这些自动填充提供者的详细信息,在授权使用自动填充之前,可能会向用户提示一个协议,所述协议可以包括使用操作系统和/或由用户所选择的用于自动填充的自动填充提供者中的每一个自动填充提供者的免责声明。

在其它示例中,在授权使用自动填充之前,可以向用户提示经过验证的传输提示从而授权操作系统将输入到ui上显示的一个或多个文本输入域中的一个或多个值发送给远程提供者。例如,用户可能已经将所述一个或多个值输入到应用中,而不是输入到用作操作系统提示用户设置自动填充的依据的应用(“第二应用”)中。在另一方面,一旦获得用户的授权来这么做,操作系统然后就可以将所述一个或多个值传输到远程提供者以供未来使用。

通常而言,由应用在ui上显示的内容是指操作系统可确定的与应用相关联的任何信息。在一个示例中,该内容可以包括在用户设备的ui上显示的内容的当前视图层次。然而,因为内容还可能包含敏感和/或私密的信息,所以操作系统仅确定内容的不包括特定于用户的信息的子集。

在一些示例中,特定于用户的信息可以包括个人身份信息或任何以下其它信息,所述其它信息可以单独使用或与其它信息一起使用以识别、联系或定位一个人,或者识别在其它信息或数据的上下文中的个体。在另外的示例中,特定于用户的信息可以包括用户已指定为敏感和/或私密的信息。

在其它示例中,特定于用户的信息可以包括基于与用户相关联的一个或多个因素已被指定为敏感和/或私密的信息。例如,除其它可能性之外,特定于用户的信息可以包括基于用户、用户设备和/或远程提供者所在的地理区域而已被指定为敏感和/或私密的信息。在其它示例中,特定于用户的信息可以包括基于用户的属性(例如,用户的年龄)而已被指定为敏感和/或私密的信息。

在框220处,方法200还包括向远程提供者传输对与所述应用一起使用的至少一个模板的请求,其中,所述请求包括在ui上显示的内容的子集。可以将对模板的请求发送给被选择以帮助促进在用户设备上使用自动填充的远程提供者。具体地,基于显示的内容的不包括特定于用户的信息的子集,操作系统可以向远程提供者发送包含在该内容的子集内或与所述子集相关联的信息的请求,以尤其提醒远程提供者在ui上显示的可能可填充的域。不管怎样,该请求对于操作系统和用户二者都是有益的,因为它可能允许远程提供者安全且私密地解析ui上显示的内容,以确定哪些信息可以用于促进对应用的自动填充(例如,确定可以对应用上的哪些文本输入域进行自动填充)。

在一些示例中,所述请求可以包括与在ui上显示的文本输入域相关联的信息。一方面,该信息可以包括与文本输入域相关联的一个或多个描述符。例如,这些描述符可以包括诸如“名称”、“用户名”、“电子邮件”、“密码”、“地址”、“城市”、“州”、“邮政编码”、“国家”、“帐号”和/或“卡号”等术语。

在其它示例中,所述请求可以包括与用户设备的当前视图层次结构相关联的信息。一方面,该信息可以包括与编译或维护ui上显示的内容的子集(例如,基础脚本和/或代码)相关联的信息。在另一方面,该信息可以包括与在ui上显示的内容的子集的某些近似相关联的信息(例如,内容的子集的线框表示)。在又一方面,该信息可以包括与在ui上显示的内容的子集的架构相关联的信息(例如,与相对布局、线性布局、按键、表格布局、表格行、复选框和/或其它元素相关联的信息)。

无论哪种方式,操作系统都可以请求与应用一起使用的模板。在一些示例中,模板可以是一种机制,其中远程提供者提供以发送给操作系统的可打包对象表示的业务逻辑,然后操作系统将用户提供的数据馈送到这些对象中以推断必要的业务逻辑。例如,这些模板可以用作自动填充过程的一部分,并可以由一个或多个可选对象表示(例如,validator(验证器)模板–用于验证信用卡信息(如果无效,则框架将不会经由ui示出“保存”提示);generator(生成器)模板-用于生成信用卡号(如果已经保存了这种信用卡以用于该服务,则框架将不会经由ui示出“保存”提示);custompresentation(定制演示)模板-用于显示可能具有图像、带掩码的信用卡号、有效期、带有链接的文本等的定制演示)。

无论哪种方式,在一些示例中,可以响应于应用的启动而传输该请求。在一些示例中,可以响应于对应用的文本输入域的选择而传输该请求。

在一些其它示例中,该请求可以包括与一个或多个文本输入域相关联的元数据。该元数据可以是提供关于其它数据的信息的数据或信息(例如,描述性元数据(其可以出于诸如发现和标识等目的而描述资源,并且可以包括诸如标题、摘要、作者和关键词等元素);结构性元数据(其可能是关于数据的容器的,并指示如何将复合对象组合在一起,例如如何对页面进行排序以形成章节并且描述数字资料的类型、版本、关系和其它特征);以及管理性元数据(其可以提供帮助管理资源的信息,诸如资源是何时以及如何创建的、文件类型和其它技术信息,以及谁可以访问所述资源))。

在框230处,方法200还可以包括从远程提供者接收对请求的响应,其中,所述响应包括所述至少一个模板,所述至少一个模板指示如何处理由应用在ui上显示的一个或多个文本输入域中的用户输入数据。通常而言,从远程提供者接收到的响应可以提供有助于操作系统促进自动填充的数据(例如,模板)。

在一个示例中,响应可以包含有助于操作系统在第一时刻促进自动填充的数据。例如,响应可以包含所述至少一个模板,所述至少一个模板指示如何处理由应用在ui上显示的一个或多个文本输入域中的用户输入数据。

在一些示例中,模板可以包括至少一个正则表达式。此处,正则表达式(有时称为regex、regexp或有理表达式)可以是描述字符模式的对象,所述字符模式可以用于在用户输入的文本上执行模式匹配和/或“搜索和替换”功能。在另一方面,正则表达式可以使用多种不同的语法或格式中的任何一种,诸如在搜索引擎、文字处理器和文本编辑器的搜索和替换对话框、文本处理实用程序以及词法分析中使用的那些语法或格式。另外,许多编程语言都提供内置的或经由库提供的正则表达式功能。

在一些示例中,模板可以包括在多个值与对应的多个图像之间的映射,并且操作系统可以基于所述映射和一个或多个用户输入值来确定要包括在提示中的图像(例如,以示出用户输入的信用卡类型的信用卡符号)。此处,映射可以是在两个不同的数据模型之间创建数据元素映射的过程(可以用作多种数据整合任务的第一步)。映射本身可以被创建为正则表达式。

在一些示例中,模板可以包括部分值掩码,并且操作系统可以通过将部分值掩码应用于所述一个或多个用户输入值中的一个用户输入值来确定要包括在提示内的值(例如,以仅示出信用卡号的后四位数)。此处,值掩码或部分值掩码可以包括在输入域上应用掩码,从而使用户只能看到输入数据的某些部分。

在框240处,方法200还可以包括接收所述一个或多个文本输入域中的一个或多个用户输入值。当用户输入(例如,键入)单独的字符、数字或单词时,可以在一段时间内接收用户输入值。

在框250处,方法200还可以包括生成提示以授权将所述一个或多个用户输入值传输给远程提供者以供未来在自动填充中使用,其中,通过使用所述至少一个模板来处理所述一个或多个用户输入值来定制所述提示。在一些示例中,定制的提示可以包括与远程提供者尚未访问但仍提供了模板的用户输入的数据有关的详细信息,以帮助操作系统分析和应用以创建定制的提示。在一些示例中,该模板可以允许操作系统生成定制的提示,以授权将所述一个或多个用户输入值传输到远程提供者以供未来在自动填充中使用(例如,“为自动填充提供者x保存信用卡b?”(“savecreditcardbtoautofillproviderx?”)),而不是生成一般的自动填充保存提示,诸如(“将<类型>保存到<服务>?”,其中由于不知道来自用户的输入的数据的详细信息的情况,因此<类型>和<服务>只能通过使用例如“密码”、“信用卡”等通用词来设置)。

在另一方面,在一些实施例中,该提示可以包括远程提供者的标识符(例如,特定于信用卡b的图像、自动填充提供者x或二者)。通常而言,从远程提供者接收的标识符可以与由用户输入的对应于ui上显示的潜在可填充域的数据相关联。在另一方面,显示与用户输入的数据相关联的一个或多个标识符可以使操作系统和用户二者受益(因为当决定操作系统应使用哪些数据来进行自动填充时,用户可以选择显示的标识符来和由用户输入的与所述标识符相关联的数据一起使用,而不是查看所有可用的数据)。

在另一方面,在一些实施例中,一旦生成了提示,操作系统就可以在生成提示之后丢弃所述至少一个模板。该丢弃可能是操作系统进行的常规工作流程或过程的一部分,并且可以为操作系统提供有利的结果(例如,允许操作系统不理会经由模板对用户输入的数据的任何进一步处理,这可以为操作系统释放资源)。因此,每次启动和/或已经运行了应用,远程自动填充提供者可以负责发送新模板。

iv.其它示例实施例

在一些示例中,本文所描述的方法还可以包括:一旦生成该提示,操作系统就经由所述提示接收将所述一个或多个用户输入值传输到远程提供者的授权。然后,响应于接收到所述授权,操作系统还可以将所述一个或多个用户输入值传输到远程提供者。

在一些示例中,操作系统还可以使用所述至少一个模板来验证所述一个或多个用户输入值,并且响应于成功的验证而生成提示,所述验证例如是,用户已经输入了正确的信用卡号位数的验证,用户之前没有输入过该输入的数据的验证(并且因此不应创建通用或定制的自动填充提示)。

在一些示例中,操作系统还可以响应于经由ui的多个用户输入动作中的每一个用户输入动作而基于所述至少一个模板来确定所述一个或多个用户输入值是否有效。操作系统可能仅在确定了所述一个或多个用户输入值有效时才生成提示。例如,所述多个用户输入动作中的每一个用户输入动作可以是将文本字符输入到所述一个或多个文本输入域中的一个文本输入域中。

在一些其它示例中,操作系统还可以确定远程提供者是否已经存储了对应于所述一个或多个用户输入值的数据集。操作系统可能仅在确定了远程提供者尚未存储对应于所述一个或多个用户输入值的所述数据集时才生成提示。在另一方面,在一些实施例中,操作系统可以基于远程提供者先前提供的数据集的列表来确定远程提供者是否已经存储了对应于所述一个或多个用户输入值的所述数据集。

在另一示例中,如果在自动填充和相关联的标识符中要使用多组输入值,则这些标识符可以显示为标识符列表(以下拉菜单方式或其它方式显示),每个标识符对应于供用户选择的一组值。

在又一示例中,也可以在能够用这些值填充的文本输入域中显示填充指示符。具体地,填充指示符可以允许用户在启用自动填充之前预览将用特定的一组值自动填充哪些文本输入域。此外,可以以由操作系统生成的图形(例如,铅笔图形)或从远程提供者接收的特定图形的形式或其它形式(例如,与远程提供者相关联的品牌或图形)显示填充指示符。其它说明性示例当然也是可能的。

另外,本文描述的方法还可以包括由操作系统接收指示数据集标识符的选择的输入数据。通常而言,接收指示数据集标识符的选择的输入数据可以向操作系统指示用户正在选择数据集标识符以及与该标识符相关联的值,以用于自动填充。

v.另外说明性附图和示例实施例

图3a示出了根据示例实施例的对自动填充进行设置的提示。特别地,诸如蜂窝电话等用户设备302可以在用户设备上显示应用304的一部分。应用304还可以包括文本输入域,所述文本输入域包含通用自动填充描述符306(例如,“卡号”)和/或308(例如,“有效期”)或与它们相关联。在该示例中,一旦用户设备302的操作系统识别出一个或多个通用自动填充描述符306和/或308,操作系统就显示对自动填充310进行设置的提示。在其它示例中,如上面所讨论的,在选择对自动填充进行设置之后,可以提示用户选择一个或多个远程提供者以帮助促进自动填充,并且还可以提示用户查看和批准与选择的提供者相关联的一个或多个协议。

图3b示出了根据示例实施例的用于经由用户设备的ui进行选择的显示的数据集标识符。特别地,诸如蜂窝电话等用户设备302可以在用户设备上显示应用304的一部分。在该示例中,如上所述,响应于应用的具有某个焦点312(此处“卡号”文本输入域具有垂直线,所述垂直线指示可以经由显示的键盘将文本键入到所述域中)的文本输入域和没有这种焦点314(此处“有效期”文本输入域没有这种垂直线)的那些文本输入域,操作系统识别该焦点,确定ui上显示的内容的不包括特定于用户的信息的子集,将内容的该子集传输给远程提供者,并且一旦接收到来自远程提供者的响应,就针对用户的选择来显示与先前用户输入的将要在自动填充中使用的值相关联的数据集标识符316。在其它示例中,操作系统还可以在将要用先前输入的用户数据进行填充的所述文本输入域中显示填充指示符318(此处为铅笔图形)。

图3c示出了根据示例实施例的用于经由用户设备的ui进行选择的多个显示的数据集标识符。与图3b中的示例实施例不同,一旦接收到来自远程提供者的响应,用户设备302的操作系统就针对用户的选择显示与可能会在自动填充中使用的先前输入的用户数据的每个集合相关联的数据集标识符320的列表。在其它示例中,操作系统还可以以多种方式在将要填充用户输入的数据的所述文本输入域中显示填充指示符318(此处为铅笔图形)。例如,一方面,操作系统可以基于从显示的标识符列表中接收到标识符的预选,而在所述文本输入域中显示填充指示符318。然而,在另一示例中,操作系统可以在所述文本输入域中显示填充指示符318,所述文本输入域可以填充有与来自显示的标识符列表的标识符中的任何一个标识符相关联的先前输入的用户数据。其它说明性示例当然也是可能的。

图4a示出了根据示例实施例的用户界面功能,所述用户界面功能与用户将数据手动输入到ui上显示的应用的文本输入域中相关联。更具体地,诸如蜂窝电话等用户设备402可以在用户设备上显示应用404的一部分。在该示例中,尽管授权移动设备的操作系统启用自动填充,但是用户可以将输入数据手动输入到第一文本输入域406(此处为“卡号”文本输入域)中和第二文本输入域408(此处为“有效期”文本输入域)中。在另一方面,用户可以手动输入该输入数据,而不考虑与要在自动填充中使用的先前输入的用户数据相关联的一个或多个显示的数据集标识符410和/或将要填充该数据的文本输入域中的显示的填充指示符412(此处为铅笔图形)。在另一示例实施例中,响应于用户将输入数据手动输入到文本输入域中,操作系统可以过滤将要在自动填充中使用的显示的数据集标识符和/或相关联的数据,以将要在自动填充中使用的显示的数据集标识符和/或相关联的数据限于匹配或对应于用户手动输入的所述输入数据的那些数据。例如,如果用户开始手动输入与先前输入的用户数据中的任何一个用户数据都不匹配的信用卡,则操作系统可以在确定将经由ui显示用于自动填充用途的哪些内容时过滤掉所有这些数据。

图4b图示了根据示例实施例的确认消息和通用数据保存提示,所述通用数据保存提示与如图4a中示出的用户将数据手动输入到ui上显示的应用的文本输入域中相关联。具体地,一旦用户已经手动输入了与ui上显示的文本输入域相关联的输入数据,操作系统就可以生成并显示确认消息414以告知用户ui上显示的应用的文本输入域已被填充。在另一示例中,操作系统还可以显示通用提示416,从而允许用户保存输入到应用的文本输入域中的输入数据,通用提示416还可以包括将输入数据传输到选择的远程提供者以用于未来自动填充用途。在另一方面,操作系统可以通过临时持有数据直到用户对所述提示做出响应为止来保存输入数据以用于未来的自动填充用途,这时操作系统可以将数据发送给远程提供者。然而,在另一示例中,一旦数据已被发送给自动填充提供者,操作系统就可能会忽略用户输入的数据。

与图4a类似,图4c示出了根据另一示例实施例的用户界面功能,所述用户界面功能与用户将数据手动输入到ui上显示的应用的文本输入域中相关联。更具体地,诸如蜂窝电话等用户设备402可以在用户设备上显示应用404的一部分。在该示例中,尽管授权移动设备的操作系统启用自动填充,但是用户可以将输入数据手动输入到第一文本输入域406(此处为“卡号”文本输入域)中和第二文本输入域408(此处为“有效期”文本输入域)中。在另一方面,用户可以手动输入该输入数据,而不考虑与要在自动填充中使用的先前输入的用户数据相关联的一个或多个显示的数据集标识符410和/或将要填充该数据的文本输入域中的显示的填充指示符412(此处为铅笔图形)。

然而,与图4b不同,图4d图示了根据示例实施例的确认消息和定制的数据保存提示,所述定制数据保存提示与如图4c中示出的用户将数据手动输入到ui上显示的应用的文本输入域中相关联。具体地,一旦用户已经手动输入了与ui上显示的文本输入域相关联的输入数据,操作系统就可以生成并显示确认消息418以告知用户ui上显示的应用的文本输入域已被填充。

在另一示例中,操作系统还可以显示定制的提示420,从而允许用户保存输入到应用的文本输入域中的输入数据,定制的提示420还可以包括将输入数据传输到选择的远程提供者以用于未来的自动填充用途。此处,与通用提示416相反,定制的提示420包括基于用户手动输入的数据的几个定制的方面。例如,这些定制的方面可以包括:定制的标识符“b”(可以与信用卡提供者(例如,对于信用卡类型a,可以在定制的提示中显示徽标或相关联的图形以及定制文本)、远程提供者或二者相关联);信用卡详细信息的定制的表示(信用卡号的后四位数字“-0121”和其有效期“12/20”);以及其与其它先前输入的信用卡“cc3-0121”的关系。此外,这些定制的方面可能与先前生成的方面不同(例如,对于信用卡类型a,可以在定制的提示中显示徽标或相关联的图形“a”(此处在410的上下文中示出),但是对于信用卡类型b,可以在定制的提示中显示徽标或相关联的图形“b”(此处在416的上下文中示出)以及定制的文本(此处在416处示出,“为自动填充提供者x保存信用卡b?”(“savecreditcardbforautofillproviderx?”)))。

在另一方面,操作系统可以通过临时持有数据直到用户对所述提示做出响应为止来保存输入数据以用于未来的自动填充用途,这时操作系统可以将数据发送给远程提供者;或者,只要数据已被发送给自动填充提供者,操作系统就可能会忽略用户输入的数据。

无论哪种方式,完成定制的提示420的生成和显示都不是简单的任务。操作系统可能不理解手动输入的用户数据的相关细节或逻辑(例如,信用卡的概念,并且因此无法基于任何用户输入的号码而推断其类型、推断其有效与否、推断基于发卡行应显示什么图标等)。可能已从移动设备上卸载所述信息和逻辑(例如,转移到关联的自动填充提供者上)以生成定制的提示。

因此,当试图为用户提供用户输入的数据(所述用户输入的数据将被系统保存以用于未来自动填充用途)的类型、范围和详细信息的准确近似时,存在一个因果难定的问题:移动设备的操作系统只能在当其经由由用户输入的文本输入域获取到用户输入的数据后才能推测该逻辑,但是在用户同意之前,也不能分析、传输或存储该数据以提供知情提示。

为了在用户同意之前向用户提供用户输入的数据(所述用户输入的数据将被系统保存以用于未来自动填充用途)的类型、范围和详细信息的准确近似而不会影响该数据,操作系统需要一种方法来在用户同意之前从远程提供者提供该逻辑而无需暴露用户手动输入的数据(也可以是pii或安全信息,例如信用卡号)。另外,操作系统在这样做的同时维持一个或多个预定义条件可能是有利的(例如,保留与用户的现有保存对话框的安全功能;让远程提供者定制所述保存对话框;在显示之前让远程提供者转换数据;提供一种在已经保存了特定信息(例如,信用卡号)时不显示所述保存对话框的方法;如果输入数据的形式无效就不提供保存特定信息(例如,信用卡号)的选项)。

例如,用户设备402的操作系统可以确定由应用404显示的内容的子集(不包括特定于用户的信息),并且将对与应用404一起使用的至少一个模板的请求传输给远程提供者。来自远程提供者的该响应还可以包含至少一个模板,所述模板指示如何处理由应用在ui上显示的一个或多个文本输入域(例如,文本输入域406(此处为“卡号”文本输入域)和/或文本输入域408(此处为“有效期”文本输入域)中的用户输入数据。

在一些示例中,这种模板可以是一种机制,其中,远程提供者提供以发送给操作系统的可打包对象表示的业务逻辑,操作系统将用户提供的数据馈送到这些对象中以推断必要的业务逻辑。例如,这些模板可以用作该过程的一部分,并且可以由一个或多个可选对象表示。

不管怎样,操作系统可能都需要潜在地通过valuefinder提取ui上显示的输入域的实际值(例如,在自动填充过程中)或ui上显示的某一其它内容。可能需要该valuefinder将实际的用户输入映射到由模板提供的域(即,远程提供者提供的模板可能具有对id的引用,并且该功能可以获取实际值)。例如,操作系统可以使用接口来辅助该过程,诸如:

publicinterfacevaluefinder{

autofillvaluefindbyautofillid(autofillidid);

}

在一些示例中,模板可以是validator模板,所述validator模板可以用于验证用户输入的数据(例如,信用卡信息)的格式。在一些示例中,validator模板可以用于帮助操作系统评估用户输入的数据是否无效(例如,无效的信用卡号)。在一些示例中,如果输入的数据无效,则操作将根本不会显示让用户保存输入的数据以用于未来的自动填充用途的通用和定制的提示(分别在图4b中示出为416,并且在图4d中示出为420)。因此,定制的提示的生成不依赖于验证模板和逻辑,并且反之亦然。

为了促进有效使用该validator模板,操作系统可以使用validator接口,诸如:

publicinterfacevalidatorextendsparcelable{

booleanisvalid(valuefinderfinder);

}

在另一方面,操作系统可以提供validator接口的多种实施方式,诸如:charsequencevalidator(其可以基于远程提供者传递的正则表达式而验证单个视图的内容);luhnchecksumvalidator(其可以验证所供应的标识是否可以通过luhn算法);validator(其可以提供使用逻辑表达式(例如and(和)和or(或))来组合多个验证器的方法)以及其它此类可能性。

无论哪种方式,当saveinfo对象具有validator并且操作系统准备经由ui显示通用和定制的提示(分别在图4b中示出为416,并且在图4d中示出为420),它将首先将会话数据馈送到validator中,并且只有isvalid(session)返回“真”时,才经由ui示出所述提示。为了促进该validator模板的这些示例性用途,操作系统可以使用以下示例性代码样本。

在要求信用卡输入域具有正好16个字母数字位数的简单验证器的上下文中:

savebuilder.setvalidator(new

charsequencevalidator.builder(ccnumberid,

"^\\d{16}$").build());

在支持15或16个字母数字位数的验证器的上下文中:

在支持15个或16个字母数字位数但它们必须通过luhn算法的验证器的上下文中:

在用于将信用卡号存储在4个域中,且每个域具有4个字母数字位数的屏幕的验证器的上下文中:

在一些示例中,模板可以是generator模板,generator模板可以用于生成信用卡号。generator模板可以用于帮助确定这种信用卡是否已被保存用于该服务。如果是这样,则操作系统将根本不会显示让用户保存输入的数据以用于未来的自动填充用途的通用和定制的提示(分别在图4b中示出为416,并且在图4d中示出为420)。因此,定制的提示的生成不依赖于generator模板和逻辑,并且反之亦然。

在一些示例中,当远程提供者已经具有一些用户输入的数据时,一个或多个标识符可以被显示为标识符列表(以下拉菜单方式或其它方式显示),每个标识符对应于供用户选择的一组值和/或数据。除了其它方法以外,generator模板还可以与该标识符功能以及新的手动输入的用户数据整合在一起,以比较或区分两者,解决此问题(例如,当用户输入略有不同时,经由ui显示不同的输入的值和/或标识符(例如,如果远程提供者经由一个或多个模板发送值“1234”,并且用户输入“1234”,那么这些输入值可能会经由ui呈现不同的结果或相同的结果,取决于实施方式))。

在其它示例中,模板可以是custompresentation模板,所述custompresentation可以用于经由用户设备402的ui显示定制演示(例如,定制的提示)。custompresentation模板可以用于显示定制的演示,所述定制的演示可以向用户呈现图像、带掩码的信用卡号、有效期、带有链接的文本以及其它此类信息,以告知用户其输入的将用于未来自动填充用途的数据的类型、范围和详细信息。

在一些示例中,custompresentation对象使远程提供者可以为信用卡标题定义remoteviews模板,以及定义transformation[s],所述transformation[s](转换)用来通过在运行时推断的值替换该模板上的子视图。在另一方面,为了促进有效使用该custompresentation模板,操作系统可以使用transformation接口,诸如:

publicinterfacetransformationextendsparcelable{

voidapply(valuefinderfinder,remoteviewsparenttemplate,intchildviewid);

}

在另一方面,操作系统可以提供transformation接口的多种实施方式,包括:singleviewcharsequencetransformation(其可以使用正则表达式和组替换来转换字符串中的单个视图,并且通常可以用于对信用卡号进行掩码);multipleviewscharsequencetransformation(其可以使用正则表达式和组替换来转换字符串中的多个视图,并且通常可以用于生成有效期期);charsequencetransformation(其可以包括singleviewcharsequencetransformation和multipleviewscharsequencetransformation的某种组合);或imagetransformation(其可以选择一个图像,regexp基于所述图像来匹配视图的值,并且通常可以用来选择适当的信用卡图标);以及诸如texttransformation等其它这种可能性,所述其它这种可能性可能类似于imagetransformation但可以生成文本(例如信用卡银行名称)等等。

为了促进custompresentation模板的这些示例性使用,操作系统可以使用以下示例性代码样本,所述示例性代码样板使用singleviewcharsequencetransformation、multipleviewscharsequencetransformation或imagetransformationtransformation以生成定制的提示(诸如,图4d中的420)。

在为远程视图定义xml模板的上下文中:

<linearlayout>

<imageviewandroid:id="@+id/templatecclogo"/>

<textviewandroid:id="@+id/templateccnumber"/>

<textviewandroid:id="@+id/templateexpdate"/>

</linearlayout>

然后,在为远程视图定义xml模板的上下文中:

在另一方面,在一些示例中,可以用stringtranformation代替multipleviewscharsequencetransformation,这可以通过示例性代码样本来实现,诸如:

newstringformattransformation.builder("exp:%s/%s")

.addarg(ccexpmonthid,"^(\\d\\d)$")

.addarg(ccexpyearid,"^(\\d\\d)$")

.build())

并且,在另一方面,该方法可以表现出某些优点(例如,使模板对于操作系统更具可读性)。其它这种示例也是可能的。

下面提供了来自另一个示例性实施方式的说明性文档和样本代码段:

charsequencetransformation:

customdescription:

imagetransformation:

validator:

vi.计算设备

现在参考图5,图5是根据示例实施例的计算设备500的功能框图。特别地,图5中示出的计算设备500可以被配置成执行服务器设备108和/或110和/或远程提供者112和/或114、用户设备104a到104e中的任何一个、方法200、用户设备302和/或用户设备402中的至少一个功能,如前所述的那样。

计算设备500可以包括用户接口模块501、网络通信接口模块502、一个或多个处理器503、数据存储装置504以及一个或多个传感器520,所有这些都可以经由系统总线、网络或其它连接机制505连接在一起。

用户接口模块501可操作用于向外部用户输入/输出设备发送数据和/或从所述设备接收数据。例如,用户接口模块501可以被配置成向诸如键盘、小键盘、触摸屏、存在敏感显示器、计算机鼠标、轨迹球、操纵杆、相机、语音识别模块等用户设备和/或其它类似设备发送数据和/或从所述设备接收数据。用户接口模块501还可以配置成向用户显示设备提供输出,所述用户显示设备诸如一个或多个阴极射线管(crt)、液晶显示器、发光二极管(led)、使用数字光处理(dlp)技术的显示器、打印机、灯泡和/或现在已知或以后开发的其它类似的设备。用户接口模块501还可以被配置成生成听觉输出,诸如扬声器、扬声器插孔、音频输出端口、音频输出设备、耳机和/或其它类似设备。用户接口模块501还可以被配置具有一个或多个触觉设备,所述一个或多个触觉设备可以生成触觉输出,诸如可以通过与计算设备500的触碰和/或物理接触来检测的振动和/或其它输出。在一些实施例中,用户接口模块501可以用于提供用于利用计算设备500的gui。

网络通信接口模块502可以包括可配置为经由网络进行通信的一个或多个无线接口507和/或一个或多个有线接口508。无线接口507可以包括一个或多个无线发射器、接收器和/或收发器,诸如蓝牙收发器、zigbee收发器、wi-fi收发器、wimax收发器和/或可配置为经由无线网络通信的其它类似类型的无线收发器。有线接口508可以包括一个或多个有线发射器、接收器和/或收发器,诸如可配置为经由双绞线、同轴电缆、光纤链路或与有线网络的类似物理连接通信的以太网收发器、通用串行总线(usb)收发器或类似收发器。

在一些实施例中,网络通信接口模块502可以被配置成提供可靠、安全和/或认证的通信。对于每次通信,可以提供用于确保可靠通信(即,受保证的消息传递)的信息,可能会作为消息标头和/或页脚的一部分(例如,数据包/消息排序信息,封装标头和/或页脚,大小/时间信息以及传输验证信息(诸如crc和/或奇偶校验值))。可以使用一种或多种加密协议和/或算法(诸如但不限于des、aes、rsa、diffie-hellman和/或dsa)使通信安全(例如,编码或加密)和/或解密/解码。也可以使用其它加密协议和/或算法,以补充本文列出的用于保护通信(并且然后进行解密/解码)的那些协议和/或算法。

一个或多个处理器503可以包括一个或多个通用处理器和/或一个或多个专用处理器(例如,数字信号处理器、图形处理单元、专用集成电路等)。一个或多个处理器503可以被配置成执行被包含在数据存储装置504中的计算机可读程序指令506和/或如本文所述的其它指令。

数据存储装置504可以包括可以由一个或多个处理器503中的至少一个处理器读取和/或访问的一个或多个计算机可读存储介质。所述一个或多个计算机可读存储介质可以包括易失性和/或非易失性存储部件,诸如可以整体或部分地与一个或多个处理器503中的至少一个处理器成一体的光学、磁性、有机或其它存储器或磁盘存储装置。在一些实施例中,可以使用单个物理设备(例如,一个光学、磁性、有机或其它存储器或磁盘存储单元)来实现数据存储装置504,而在其它实施例中,可以使用两个或更多个物理设备来实现数据存储装置504。

数据存储装置504可以包括计算机可读程序指令506以及可能的另外数据。在一些实施例中,数据存储装置504可以另外包括执行本文描述的方法、情形和技术的至少一部分和/或本文描述的设备和网络的功能的至少一部分所需的存储装置。

在一些实施例中,计算设备500可以包括一个或多个传感器520。传感器520可以被配置成测量计算设备500的环境中的条件并且提供关于该环境的数据。例如,传感器520可以包括以下中的一个或多个:(i)用于识别其它物体和/或设备的标识传感器,诸如但不限于rfid读取器、接近传感器、一维条形码读取器、二维条形码(例如,快速响应(qr)码)读取器和激光跟踪仪,其中标识传感器可以被配置成读取标识符,例如rfid标签、条形码、qr码和/或被配置成被读取并至少提供识别信息的其它设备和/或物体;(ii)用于测量计算设备500的位置和/或运动的传感器,诸如但不限于倾斜传感器、陀螺仪、加速度计、多普勒传感器、全球定位系统(gps)设备、声纳传感器、雷达设备、激光位移传感器和指南针;(iii)用于获取指示计算设备500的环境的数据的环境传感器,诸如但不限于红外传感器、光学传感器、光传感器、相机、生物传感器、生物特征传感器、电容式传感器、触碰传感器、温度传感器、无线传感器、无线电传感器、运动传感器、麦克风、声音传感器、超声传感器和/或烟雾传感器;以及(iv)用于测量作用在计算设备500附近的一个或多个力(例如,惯性力和/或g力)的力传感器,诸如但不限于测量以下的一个或多个传感器:一个或多个维度的力、扭矩、地面力、摩擦,和/或识别零力矩点(zmp)和/或zmp的位置的zmp传感器。传感器520的许多其它示例也是可能的。

本公开不限于本申请中描述的特定实施例,所述实施例意在作为各种方面的说明。如本领域技术人员将显而易见的,可以在不脱离其精神和范围的情况下做出许多改型和变型。除了本文列举的方法和装置之外,根据前述说明,本领域技术人员也将显而易见本公开范围内的功能等效的方法和装置。这些改型和变型意在落入所附权利要求的范围内。

上面的详细描述参考附图描述了所公开的系统、设备和方法的各种特征和功能。在附图中,除非上下文另外指出,否则相似的符号通常表示相似的部件。在具体实施方式、附图和权利要求中描述的说明性实施例并不意味着是限制性的。在不脱离本文提出的主题的精神或范围的情况下,可以利用其它实施例,并且可以做出其它改变。容易理解的是,可以以多种不同的配置来布置、替换、组合、分离和设计如本文一般地描述的以及在附图中图示的本公开的各方面,本文明确地设想了所有这些。

就附图中和如本文所讨论的梯形图、情形和流程图中的任何一个或全部而言,每个方框和/或通信可以表示根据示例实施例的信息的处理和/或信息的传输。替代实施例包括在这些示例实施例的范围内。在这些替代实施例中,例如,被描述为框、传输、通信、请求、响应和/或消息的功能可以不按照示出或讨论的顺序执行,包括基本上同时执行或以相反的顺序执行,这取决于所涉及的功能。此外,更多或更少的框和/或功能可以与本文讨论的任何梯形图、情形和流程图中的任何一个一起使用,并且这些梯形图、情形和流程图可以部分或全部彼此组合。

表示信息处理的框可以对应于电路,所述电路可以被配置成执行本文描述的方法或技术的特定逻辑功能的电路。替代地或另外,表示信息处理的块可以对应于程序代码(包括相关数据)的模块、片段或一部分。所述程序代码可以包括一个或多个指令,所述一个或多个指令可由处理器执行以用于在所述方法或技术中实现特定的逻辑功能或动作。程序代码和/或相关数据可以存储在任何类型的计算机可读介质(诸如包括磁盘或硬盘驱动器的存储设备或其它存储介质)上。

计算机可读介质还可以包括短时间存储数据的非暂时性计算机可读介质,诸如非暂时性计算机可读介质,例如寄存器存储器、处理器高速缓存和随机存取存储器(ram)。所述计算机可读介质还可以包括长时间存储程序代码和/或数据的非暂时性计算机可读介质,诸如次级或永久性长期存储装置,例如只读存储器(rom)、光盘或磁盘、光盘只读存储器(cd-rom)。计算机可读介质还可以是任何其它易失性或非易失性存储系统。例如,计算机可读介质可以被认为是计算机可读存储介质或有形存储设备。

此外,表示一个或多个信息传输的框可以对应于同一物理设备中的软件模块和/或硬件模块之间的信息传输。然而,其它信息传输可以在不同物理设备中的软件模块和/或硬件模块之间。

虽然本文已经公开了各种方面和实施例,但是其它方面和实施例对于本领域技术人员将是显而易见的。出于说明性目的提供了本文公开的各种方面和实施例并且不意在是限制性的,其真实范围由所附权利要求指示。

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