CN116324676A - 联系人自动完成键盘 - Google Patents

联系人自动完成键盘 Download PDF

Info

Publication number
CN116324676A
CN116324676A CN202180042908.7A CN202180042908A CN116324676A CN 116324676 A CN116324676 A CN 116324676A CN 202180042908 A CN202180042908 A CN 202180042908A CN 116324676 A CN116324676 A CN 116324676A
Authority
CN
China
Prior art keywords
auto
application
suggestion
completion
suggestions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180042908.7A
Other languages
English (en)
Inventor
陈则亨
J·阿兰达
P·科夫曼
P·W·德马斯科
J·弗鲁迪格
K·米斯拉
S·J·李
G·L·特里布尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of CN116324676A publication Critical patent/CN116324676A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Computational Linguistics (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Telephone Function (AREA)

Abstract

即使应用程序尚未被授予对用户联系人数据库的访问权限,也会基于该用户联系人数据库启用私有且安全的自动完成建议。键盘进程可基于经由该键盘提供的输入来接收和显示建议。该建议是基于用户的联系人数据库生成的。生成该建议,而不将该联系人数据库暴露给该应用程序。然后向该用户显示建议,而不将该建议暴露给该应用程序。一旦用户选择了建议,则将所选择的建议提供给该应用程序以插入到文本字段中。

Description

联系人自动完成键盘
交叉引用
本申请要求2020年6月19日提交的美国临时申请第63/041,784号的优先权的权益,该申请以引用方式并入本文。
技术领域
本公开整体涉及移动电子设备。更具体地,本公开涉及基于用户联系人数据库启用私有且安全的自动完成建议的系统和相关联方法。
背景技术
由电子设备上的操作系统提供的隐私控制系统可以限制对隐私敏感设备(例如,相机/麦克风)和隐私敏感数据源(例如,联系人数据库)的应用程序访问。当应用程序试图访问隐私敏感设备或隐私敏感数据源时,用户会被提示允许或拒绝访问。所指示的用户偏好可由隐私控制系统保持。启用对隐私敏感数据源的访问的一个缺点是可能会授予对整个数据源的访问权限。例如,如果用户允许应用程序访问联系人数据库,则该应用程序可访问联系人数据库中的所有联系人。因此,出于有限的目的启用对隐私敏感数据源的有限访问将是有益的。
发明内容
本文描述的实施方案提供了基于用户联系人数据库启用私有且安全的自动完成建议的系统和相关联方法。键盘进程可基于经由该键盘提供的用户输入来接收和显示建议。该建议是基于用户的联系人数据库生成的。生成该建议,而不将该联系人数据库暴露给该应用程序。然后向该用户显示建议,而不将该建议暴露给该应用程序。仅当用户选择了建议时,才将所选择的建议提供给应用程序以插入到文本字段中。
一个实施方案提供了一种电子设备,该电子设备包括显示设备、与该显示设备耦接的存储器设备、输入设备以及与该显示设备、该存储器设备和该输入设备耦接的一个或多个处理器。该一个或多个处理器可被配置为执行存储在该存储器设备中的指令,其中该指令致使该一个或多个处理器:检测对经由该电子设备的用户界面显示的文本字段的选择,该用户界面代表被配置用于由该一个或多个处理器执行的应用程序而显示在该显示设备上;检测字符串到该文本字段中的输入,该字符串经由该输入设备来输入;基于该字符串生成一个或多个自动完成建议;以及将该一个或多个自动完成建议安全显示在该用户界面内。安全显示该一个或多个自动完成建议包括将该自动完成建议写入到该存储器的对于该应用程序不可访问的一部分,以及经由该显示设备显示来自该存储器的该部分的该一个或多个自动完成建议。在该一个或多个自动完成建议的显示之后,该一个或多个处理器可经由该输入设备接收对该一个或多个自动完成建议中的自动完成建议的选择,并且响应于接收到对该自动完成建议的该选择,将所选择的自动完成建议插入到该文本字段中。在安全显示该自动完成建议时,该应用程序不具有对该自动完成建议的访问权限。当选择了自动完成建议时,可使所选择的建议对于该应用程序可访问。
一个实施方案提供了一种由电子设备的一个或多个处理器执行的方法。该方法包括检测对经由该电子设备的用户界面显示的文本字段的选择,其中该用户界面针对由该一个或多个处理器执行的应用程序而显示。该方法还包括:检测字符串到该文本字段中的输入;基于该字符串生成一个或多个自动完成建议;以及请求该一个或多个自动完成建议在该电子设备的该用户界面内的安全显示。该一个或多个自动完成建议的安全显示使得能够向该用户显示该一个或多个自动完成建议,同时防止该建议被该应用程序读取。例如,可从对于该应用程序不可访问的存储器位置显示该自动完成建议。响应于对所显示的建议的选择,该方法还包括响应于接收到对该自动完成建议的该选择,将所选择的自动完成建议插入到该文本字段中。
一个实施方案提供一种存储指令的非暂态机器可读介质,该指令在由电子设备的一个或多个处理器执行时,致使该一个或多个处理器执行如本文所述的方法的操作。通过附图以及通过以下具体实施方式,本实施方案的其他特征将显而易见。
附图说明
本公开的实施方案以举例的方式而不是以限制的方式在各个附图的图示中进行说明,在附图中类似的附图标号是指类似的元件,并且附图中:
图1示出了根据一个实施方案的对应用程序施加访问限制的系统;
图2示出了应用程序可通过其请求访问用户联系人的提示;
图3是包括用于呈现基于联系人的用户自动完成建议的联系人自动完成键盘的示例性图形用户界面的图示;
图4是用于基于联系人数据库向应用程序安全呈现用户信息建议的系统的框图;
图5示出了启用基于联系人数据库对建议的安全呈现的系统;
图6示出了根据本文描述的实施方案的启用联系人自动完成键盘的方法;
图7示出了确定由应用程序呈现的文本和/或数据字段的字段类型的方法;
图8示出了应用程序的文本输入和重复建议的过滤;
图9示出了防止呈现重复建议的方法;
图10是示出可用于本发明的一些实施方案中的示例性API架构的框图;
图11A至图11B是根据实施方案的示例性API软件栈的框图;
图12是根据实施方案的用于移动或嵌入式设备的设备架构的框图;并且
图13是根据实施方案的计算系统的框图。
具体实施方式
本文描述的实施方案提供基于移动设备上的联系人数据库来安全呈现自动完成建议的联系人自动完成键盘。可针对不具有对移动设备上的联系人数据库的访问权限的应用程序呈现自动完成建议。以防止应用程序阅读建议的方式呈现建议。如果用户选择了建议,则可将所选择的建议提供给应用程序以插入到文本字段中。建议是基于将针对其插入文本的文本字段的类型生成的。可应用启发式方法来确定文本字段的语义含义。文本字段的语义含义用于确定自动完成建议的类型以呈现给用户。在应用程序也针对文本字段提供自动完成建议的情况下,联系人自动完成键盘可以从建议列表中过滤重复的建议,以呈现给用户。
在本说明书中对“一个实施方案”或“实施方案”的引用是指结合该实施方案描述的特定特征、结构或特性可以被包括在本发明的至少一个实施方案中。在本说明书中的各个位置出现短语“在一个实施方案中”不一定都是指同一个实施方案。随后的附图中描绘的过程由处理逻辑执行,该处理逻辑包括硬件(例如,电路、专用逻辑)、软件(作为非暂态机器可读存储介质上的指令),或硬件和软件的组合。现在将详细地参考各种实施方案,这些实施方案的示例在附图中示出。在下面的详细描述中给出了许多具体细节,以便提供对本发明的彻底理解。但是,对本领域技术人员将显而易见的是,本发明可在没有这些具体细节的情况下被实施。在其他情况下,没有详细地描述众所周知的方法、过程、部件、电路和网络,从而不会不必要地使实施方案的各个方面晦涩难懂。
还将理解的是,虽然术语“第一”、“第二”等可能在本文中用于描述各种元素,但是这些元素不应当被这些术语限定。这些术语只是用于将一个元件与另一元件区分开。例如,第一接触可被命名为第二接触,并且类似地,第二接触可被命名为第一接触,而不脱离本发明的范围。第一接触和第二接触两者都是接触,但是它们不是同一接触。
在本文中对本发明的描述中所使用的术语只是为了描述特定实施方案,而并非旨在作为对本发明的限制。如本发明说明书和所附权利要求中所使用的那样,单数形式的“一个”(“a”、“an”)和“该”旨在也涵盖复数形式,除非上下文清楚地另有指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联地列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”(“comprises”和/或“comprising”)在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件,和/或其分组。
如本文中所用,根据上下文,术语“如果”可以被解释为意思是“当...时”或“在...时”或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可被解释为是指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
描述了计算设备、用于此类设备的用户界面、和用于使用此类设备的相关联的过程的实施方案。在一些实施方案中,计算设备是还包含其他功能(诸如PDA和/或音乐播放器功能)的便携式通信设备,诸如移动电话。便携式多功能设备的示例性实施方案包括但不限于来自Apple Computer,Inc.(Cupertino,California)的
Figure BDA0004000230050000051
和iPod
Figure BDA0004000230050000052
设备。
本公开的一部分包含受版权保护的材料。由于本专利文档或本专利公开内容出现在专利与商标局专利文件或记录中,因此版权所有人不反对任何人对本专利文档或本专利公开内容的拓制,但会以其他方式保留任何形式的所有版权权利。版权所有2021苹果公司。
图1示出了根据一个实施方案的对应用程序施加访问限制的系统100。系统100包括可由应用程序103访问的用户数据110和系统资源120。系统100可根据访问控制策略选通用户数据110和系统资源的隐私敏感元素。在一个实施方案中,对隐私敏感用户数据110和系统资源120的访问由访问控制模块117介导。隐私敏感的用户数据110可被分组为不同的分类,包括但不限于联系人111、日历数据112、提醒113、照片库114和消息116,其中所述消息可包括文本(例如,SMS)消息、电子邮件消息和/或经由即时消息应用程序的即时消息。隐私敏感的系统资源120包括但不限于麦克风121、相机123、位置服务125和其他资源127,所述资源可包括软件资源、硬件资源或其组合。对用户数据110的访问可在每个分类级别上进行介导。对系统资源120的访问可在每个资源级别上进行介导。系统100可将各种附加类型的隐私敏感信息作为用户数据110的分类或其他类型的隐私敏感资源120来保护,包括但不限于消息历史、网络浏览器数据(例如,浏览器历史、cookie数据等)、系统备份数据以及可由系统100存储的任何类型的位置历史数据。
在一个实施方案中,访问控制模块117是系统守护进程,通过该系统守护进程,应用程序103可经由系统调用API 118(诸如进程间通信(IPC)调用)进行通信。该应用程序包括用于向访问控制模块117识别该应用程序的标识符104。在一个实施方案中,标识符104是通用唯一标识符。在一个实施方案中,标识符104对于每个系统是唯一的。在一个实施方案中,标识符104对于每个用户是唯一的。
默认情况下,可向应用程序103提供对有限资源集的访问。此默认访问可以是基于应用程序的标准功能而被授予应用程序103的基于策略的访问(例如,策略访问132)。例如,如果应用程序103是相机应用程序,则可基于与应用程序103相关联的策略向应用程序103提供对相机123和照片库114的策略访问132。系统100可被配置为默认情况下不允许访问隐私敏感系统资源,应用程序103被授予策略访问132的资源除外。在一个实施方案中,在应用程序103被授予在策略之外对用户数据110或系统资源120的访问权限之前,访问控制模块117可触发图形界面提示,通过该图形界面提示,系统的用户可显式地授予或拒绝对用户数据110的分类或系统资源120的访问权限。例如,在应用程序103可以访问用户的联系人111之前,应用程序103通过系统调用API 118执行对访问控制模块117的调用,以显式地请求对联系人111的访问134。然后,用户可授予或拒绝对联系人111的访问权限。
图2示出了应用程序可通过其请求访问用户联系人的提示。当应用程序要访问存储在移动设备202的联系人数据库中的用户的联系人时,应用程序可致使提示224呈现在移动设备202的显示器221上。该提示可指示应用程序正在请求访问用户的联系人。可呈现第一界面元素225,该第一界面元素使得用户能够阻止(“不允许”)访问用户的联系人。可呈现第二界面元素226以允许(“OK”)应用程序访问用户的联系人。一旦应用程序被授予对联系人111的访问权限,应用程序就具有对所有联系人条目的访问权限。如果应用程序具有允许响应于用户提供的输入而呈现基于联系人的自动完成建议的特征,则如果应用程序无法访问用户的联系人,则应用程序的基于联系人的自动完成功能将不可操作。
本文描述的技术提供了一种键盘,该键盘基于从联系人数据库导出的数据在应用程序内启用自动完成,而不会将联系人数据库的全部内容暴露给应用程序。如果用户不希望向应用程序提供对整个联系人数据库的访问权限,则可在应用程序进程外生成自动完成建议。可以防止应用程序读取一个或多个自动完成建议的安全方式向用户呈现一个或多个自动完成建议。如果用户选择了自动完成建议,则可将所选择的建议提供给应用程序。
联系人自动完成键盘是一种键盘应用程序,其包括在应用程序的进程空间内执行的进程内键盘部分和在应用程序进程空间外执行的进程外键盘部分。进程内键盘部分和进程外键盘部分可通信和交换信息。基于经由进程内键盘输入的文本,进程外键盘可接收来自自动完成建议源的建议。建议的类型可基于针对其生成建议的文本输入字段而有所不同。建议的类型可包括联系人姓名、联系人地址、联系人电话号码或其他联系人数据库字段。
可基于将针对其提供建议的文本输入字段的语义含义来确定联系人数据库的字段以用于生成建议。应用程序可使用文本输入字段API来声明文本输入字段的语义含义。然而,许多应用程序没有使用API,也没有显式地声明文本输入字段的语义含义。如果没有针对字段声明语义含义,则联系人自动完成键盘可使用启发式方法来确定文本输入字段的用途,从而即使在没有声明含义的情况下,也能够确定针对字段提供的适当类型的建议。
输入字段启发式方法包括例如文本字段是否是搜索文本字段、与文本输入字段相关联的关键字以及文本输入字段的占位符文本。附加启发式方法包括应用程序是否支持汽车信息娱乐界面(例如,Apple Car Play、Android Auto)。与文本输入字段相关联的元数据可指示该字段是否需要电话号码、和地址、姓名、雇主、公司名称或其他类型的数据。一旦确定了文本输入字段所期望的输入类型,一个或多个建议引擎就可根据文本输入和文本输入字段所期望的输入类型来分析联系人数据库。然后,一个或多个建议引擎可生成可针对文本输入字段提供的一组建议。然后,可将最高建议安全地显示给用户。
通过在应用程序的进程外绘制显示一个或多个最高建议的用户界面元素,向用户安全地显示最高建议。键盘的进程外部分可经由电子设备的操作系统的窗口管理器以防止应用程序查看这些一个或多个最高建议的方式显示这些建议。可通知键盘的进程内部分将显示建议。键盘的进程内部分可在键盘视图的顶部绘制空白建议区域。然后,键盘的进程外部分可请求窗口管理器在空白建议区域内呈现一个或多个顶部建议。所呈现的一个或多个建议不能由应用程序读取,但可由电子设备的用户读取。响应于用户对建议的选择,所选择的建议可被呈现给应用程序并被提供作为对文本输入字段的输入。
在其中应用程序也能够生成其自己的建议的场景中,无论是因为应用程序被授予对联系人数据库的访问权限,还是因为应用程序具有可从中生成建议的备用数据源,都可相对于由应用程序呈现的建议来过滤由进程外键盘呈现给用户的建议,以防止呈现重复的建议。可通过经由由应用程序呈现给用户界面框架的应用程序的视图分级结构查看由应用程序显示的文本来确定由应用程序呈现的建议。
联系人自动完成键盘也可跨语言自动工作。自动完成键盘使用来生成自动完成建议的信号是本地化字符串。字符串匹配可以英语执行,并经由用户界面(UI)框架自动本地化。
在操作期间,当用户点击被定义为文本输入字段的视图时,操作系统在UI中呈现虚拟键盘。操作系统逻辑应用启发式方法来确定所呈现的文本字段的类型。在一个实施方案中,呈现在应用程序内的键盘可部分地在应用程序的进程空间内操作,并与应用程序进程空间外的键盘逻辑进行通信。在一个实施方案中,键盘可能完全处于应用程序的进程外,并且应用程序可使用系统编程接口与进程外键盘逻辑交互。输入到文本字段中的文本被发送到进程外键盘逻辑,然后被中继到一个或多个建议守护程序,该一个或多个建议守护程序可使用所确定的文本字段类型和输入的文本字符串来从联系人数据库生成建议。最高一个或多个匹配项由建议守护进程异步中继到进程外键盘逻辑。可通过进程外键盘或建议守护程序过滤与应用程序生成的建议重复的建议。然后,进程外键盘逻辑可要求呈现服务器以一个或多个最高建议的形式呈现安全内容。一个或多个最高建议以防止应用程序查看建议的方式安全地呈现在应用程序的进程内键盘视图的顶部。当用户选择建议候选时,建议候选的文本被插入到应用程序的文本字段中。应用程序只能看到插入文本字段中的最后一个字符串。下文描述呈现联系人自动完成键盘的各种实施方案的具体细节。
图3是包括用于呈现基于联系人的用户自动完成建议的联系人自动完成键盘的示例性图形用户界面的图示。GUI 300可由主机软件应用程序(例如,主机应用程序)结合一个或多个操作系统管理的界面元素来呈现。主机应用程序可以是由与创建计算设备和/或计算设备的操作系统的实体不同的实体创建的网络浏览器、专用软件应用程序或第三方软件应用程序。GUI300的各方面可由计算设备的操作系统部件(诸如操作系统的窗口管理器)呈现。
在一些具体实施中,GUI 300可包括各种数据输入字段。例如,数据输入字段可包括文本输入字段、下拉菜单、滚动菜单或类似的数据输入字段。数据输入字段可被配置为请求和/或接受各种类型的信息。例如,在应用程序是与装运和/或物流服务提供商相关联的应用程序的情况下,数据输入字段302和304可被配置为接受分别指定用户要发送的装运物的接收人的名字和姓氏的输入。数据输入字段306可被配置为接受指定装运物目的地公司名称的用户输入。数据输入字段308、310、312和314可被配置为接受指定装运物目的地的街道名称、城市、州和邮政编码的用户输入。数据输入字段316可被配置为接受指定装运物接收人的电子邮件地址的用户输入。数据输入字段316可被配置为接受指定装运物接收人的电话号码的用户输入。
当用户选择GUI 300上呈现的数据输入字段中的一个数据输入字段时,主机应用程序可致使虚拟键盘320呈现在GUI 300上。例如,键盘320可由主机应用程序外部的进程(例如,操作系统、其他进程等)生成和/或呈现。当用户选择用于提供指定用户的名字的输入的数据输入字段302时,主机应用程序可致使虚拟键盘320被呈现,从而用户可使用虚拟键盘320提供指定装运物接收人的名字的字符输入。用户可向键盘320提供指定装运物接收人的名字的每个字符的输入,并且键盘320可向主机应用程序提供字符输入作为对数据输入字段302的输入。然后,用户可选择在GUI 300上呈现的另一数据输入字段,并通过键盘320向所选择的数据输入字段提供字符输入。
如示例性GUI 300中所示,可能要求用户潜在地输入大量字符以完成由GUI 300呈现的表单。为了简化数据输入进程,应用程序可基于用户的联系人中的条目向用户呈现自动完成建议,前提条件是应用程序已被授予对计算设备的联系人数据库的访问权限。在应用程序尚未被授予对联系人数据库的访问权限的情况下,应用程序将不能呈现自动完成建议。
为了减少在这种场景中用户所需的输入量,键盘320可请求操作系统的部件(例如,窗口管理器)呈现安全建议栏330,以使得能够呈现自动完成建议(例如,建议332和/或建议334)。建议332和334可基于联系人数据库中的数据,或者经由计算设备的操作系统可用的并且与GUI 300上呈现的当前选择的数据输入字段相关的其他数据源来生成。
经由安全建议栏330呈现的建议332和334经由存储在存储器中的对于应用程序不可访问的UI区域来呈现。如果应用程序试图检查安全建议栏330,则应用程序将看到空白UI窗口。安全建议栏330的内容可在包含GUI300的帧缓冲器呈现在计算设备的显示器上之前由窗口管理器呈现。仅当用户显式地提供指示用户希望与主机应用程序共享用户信息的输入时,由安全建议栏330获得或呈现的用户信息才与主机应用程序共享。当用户选择由安全建议栏330呈现的建议(例如,建议332)时,外部键盘和建议栏(KSB)进程可将用户选择的建议作为对当前选择的数据输入字段的输入发送到主机应用程序。
图4是用于基于联系人数据库向应用程序安全呈现用户信息建议的系统400的框图。系统400包括用户设备402,,该用户设备可以是例如台式计算机、膝上型计算机、移动设备、平板计算机、智能手机、智能手表、可穿戴设备或其他计算设备。用户设备402可配置有操作系统404(例如,应用框架、软件库、模块、驱动程序、软件部件、进程等),该操作系统针对在用户设备402上运行的应用程序(例如,第一方应用程序、第三方应用程序等)提供应用编程接口(API)、各种软件服务和/或内置应用程序特征。用户设备402可执行主机应用程序410。例如,主机应用程序410可以是安装在用户设备402上的软件应用程序。主机应用程序410可以是由除构建用户设备402和/或操作系统404的人和/或实体之外的人和/或实体构建的第三方应用程序。主机应用程序410可被配置为呈现GUI300,如上文参考图3所描述。
为了在GUI 300上呈现键盘320和/或安全建议栏330,主机应用程序410可被配置为与键盘和建议栏(KSB)进程420交互。例如,KSB进程420可以是用户设备402上的操作系统404的部件。KSB进程420可在主机应用程序410的外部,但可由主机应用程序410调用,以在主机应用程序410的各种图形用户界面中(诸如在上述GUI 300中)提供键盘320和/或安全建议栏330。例如,当用户选择GUI 300的数据字段时,主机应用程序410可调用或激活KSB进程420,以致使KSB进程420在GUI 300上呈现键盘320和/或安全建议栏330。
KSB进程420可包括键盘模块422,该键盘模块被配置为生成和呈现键盘320。KSB进程420可包括建议模块424,该建议模块被配置为经由操作系统404生成并呈现安全建议栏330。启发式模块425可分析与文本输入字段相关联的字段上下文以确定文本字段的语义含义(例如,字段类型)。由于KSB进程420在主机应用程序410的外部,因此仅在用户授权时,KSB进程420所呈现的联系人数据库建议才能通过各种进程间API调用提供给主机应用程序410。因此,KSB进程420内的数据受到保护,不受主机应用程序410的未授权访问。
在一个实施方案中,键盘进程的至少一部分可在主机应用程序410的进程内执行。在这样的实施方案中,键盘进程的进程内部分可负责绘制安全建议栏330。为了防止应用程序读取安全建议栏330的存储器以访问显示给用户的建议,安全建议栏330可由键盘的进程内部分呈现为空白UI区域。操作系统404的窗口管理器406可将安全建议栏330中显示的建议绘制为与安全建议栏330相关联的UI区域内的文本覆盖。窗口管理器406可显示响应于来自KSB进程420的请求而从建议生成器(例如,专家模块430)所接收的顶部建议候选。窗口管理器406可在安全建议栏330内显示建议,同时将待显示的建议存储在与存储主机应用程序410可见的空白UI区域的存储器不同的存储器区域中。例如,呈现在显示器上的UI可由多个单独的窗口组成。当UI准备好由窗口管理器呈现时,窗口管理器可在与安全建议栏330相关联的窗口坐标之上构成存储从KSB进程420所接收的建议的存储器区域。
可响应于用户提供的输入数据442来生成基于存储在用户设备402中的联系人数据库的建议,以输入用户设备402上呈现的数据字段。系统400可在用户设备402的联系人数据库中搜索与用户选择的数据字段的类型相关的信息,获得相关的用户信息,并在用户设备402的显示器上呈现关于所获得的用户信息中的哪一个可能与所选择数据字段最相关的建议。系统400可通过在安全建议栏330中呈现建议来向用户呈现信息建议,而不向主机应用程序提供联系人数据库信息。在接收到在安全建议栏330中呈现的特定建议的选择之后,可经由进程间通信API将所选择的建议提供给主机应用程序410。
为了生成用于在安全建议栏330上呈现的建议,当用户选择主机应用程序410的数据字段时,主机应用程序410可向KSB进程420发送消息。例如,GUI 300上的每个数据字段可配置有字段类型标识符412。当主机应用程序410向KSB进程420发送消息时,主机应用程序410可在发送到KSB进程420的消息中包括所选择的数据字段的字段类型标识符412。当KSB进程420接收到包括用户所选择数据字段的字段类型标识符的消息时,建议模块424可向专家模块430发送标识用户所选择的数据字段的字段类型426的消息。在字段类型标识符412未包括在消息中的情况下,启发式模块425可基于与主机应用程序410和/或数据字段相关联的上下文来确定数据字段的语义含义。
在各种实施方案中,数据字段启发式方法包括例如数据字段是否是搜索文本字段、与数据字段相关联的关键字以及数据字段的占位符文本。附加启发式方法包括与应用程序相关联的类型或与应用程序关联的能力。例如,数据字段启发式方法可部分地基于应用程序是否支持汽车信息娱乐界面(例如,Apple Car Play、Android Auto)来确定数据字段是搜索文本字段。与数据字段相关联的元数据可指示该字段是否需要电话号码、和地址、姓名、雇主、公司名称或其他类型的数据。一旦确定了数据字段所期望的输入类型,专家模块430就可根据文本输入和文本输入字段所期望输入类型来分析联系人数据库。然后,一个或多个建议引擎可生成可针对数据字段提供的一组建议。然后,可经由安全建议栏330安全地显示顶部建议。
专家模块430可以是加载到KSB进程420中的软件模块、库等。专家模块430可以是与KSB进程420和/或主机应用程序410分开的软件进程。例如,专家模块430可以是用户设备402的操作系统404的进程或部件,其搜索、获得和/或向用户设备402的授权客户端提供与用户相关联的相关用户信息。例如,第一方应用程序和进程(例如,操作系统404、KSB进程420、专家模块430等)可被授权访问专家模块430提供的用户信息,因为专家模块430也是第一方进程,而其他进程(例如,第三方应用程序)可能不被给予对专家模块430和/或专家模块430提供的用户信息的直接访问权限。
专家模块430可包括被配置为在用户设备402上查找、获得和提供某些类型的信息的专家。例如,专家模块430可包括用于从用户设备402上的各种源获得联系人信息的联系人专家432。专家模块430可包括用于从用户设备402上的各种源获得位置信息的定位专家434。专家模块430可包括用于从用户设备402上的各种源获得事件信息的事件专家436。如本文所述的联系人自动完成键盘主要呈现由联系人专家432生成的建议。
专家模块430可向专家模块430提供消息,该消息包括主机应用程序410的所选择的数据字段的字段类型426标识符。字段类型426可以是从主机应用程序410接收的字段类型标识符412和/或由启发式模块425确定的字段类型。专家模块430的每个专家可确定该专家是否被配置为响应于接收到字段类型标识符而提供信息。特定字段类型可仅由一个专家处理,也可由多个专家处理。
如果专家被配置为查找和/或提供由专家模块430接收的字段类型标识符的信息,则专家可搜索各种硬件源、配置源、事件源、通信源和/或应用源,以获得与字段类型标识符相关的用户信息。例如,联系人专家432可搜索用户设备402上的联系人数据库以确定一组建议候选(候选数据440)以呈现给KSB进程420。然后,建议模块424可在安全建议栏330上呈现所选择的建议,而不向主机应用程序410提供所选择的建议(例如,用户信息)。
存储在用户设备402上的联系人信息可以是同步到与用户相关联的其他用户设备和/或从与用户相关联的其他用户设备同步的信息。例如,用户可具有多个用户设备(例如,膝上型计算机、智能电话、平板计算机、智能手表等)。对一个系统的联系人数据库中的条目的改变可以与和同一用户相关联的其他用户设备同步。
图5示出了启用基于联系人数据库对建议的安全呈现的系统500。在一个实施方案中,安全建议栏330可由在主机应用程序410的进程空间内执行的进程内键盘逻辑520绘制。另选地,安全建议栏330可由主机应用程序410的逻辑绘制。为了防止主机应用程序读取经由安全建议栏330呈现的建议,可将建议栏绘制为空白UI区域。KSB进程420可向窗口管理器406发送API消息,请求显示一个或多个建议530。然后,窗口管理器406可在呈现UI期间将一个或多个建议530显示为安全建议栏330的UI区域上方的文本覆盖532。因此,系统500使得建议能够安全地呈现给用户,而不会将那些建议(以及与那些建议相关联的联系人数据)暴露给主机应用程序410。
图6示出了根据本文描述的实施方案的启用联系人自动完成键盘的方法600。方法600可通过本文描述的键盘和建议逻辑(例如,KSB进程420)来实现,以基于用户的联系人数据库来提供自动完成建议,即使当正在针对其生成建议的应用程序不具有对用户的联系人库的访问权限时也是如此。在各种实施方案中,也可使用类似的技术来呈现基于其他私有数据源的自动完成建议。
方法600包括执行操作以检测对经由电子设备的用户界面显示的文本字段的选择(602)。可针对由电子设备的一个或多个处理器执行的应用程序显示用户界面。然后,电子设备可确定与文本字段相关联的类型(604)。此确定可由键盘逻辑基于针对文本字段提供的字段类型来执行。在未针对文本字段提供字段类型的情况下,也可使用基于上下文的启发式方法来进行确定,因为一些应用程序未针对所有文本字段填充字段类型。
响应于检测到字符串到文本字段中的输入(606),电子设备上的键盘逻辑可向建议生成器(608)提供输入字符串和与文本字段相关联的所供应的或所确定的字段类型。建议生成器(例如,专家模块430)可基于电子设备上的联系人数据库生成一个或多个自动完成建议。可生成建议,而无需考虑针对其生成建议的应用程序是否具有对电子设备的联系人数据库的访问权限。
然后,电子设备上的键盘逻辑可从建议生成器接收一个或多个自动完成建议(610)。然后,键盘逻辑可请求一个或多个自动完成建议在电子设备的用户界面内的安全显示(612)。可例如由电子设备的操作系统的窗口管理器根据来自键盘逻辑的请求来执行一个或多个自动完成建议的安全显示。一个或多个自动完成建议可从对于应用程序不可访问的存储位置显示在用户界面内。在一个实施方案中,一个或多个自动完成建议可由窗口管理器显示为由在应用程序的进程空间内执行的应用程序或键盘逻辑绘制的建议栏的UI区域上方的覆盖。
在键盘逻辑经由电子设备的用户界面接收到对一个或多个自动完成建议中的自动完成建议的选择的情况下(614),键盘逻辑可将所选择的自动完成提议插入到文本字段中(616)。通过向应用程序提供自动完成建议的文本,可将所选择的自动完成建议插入到文本字段中。
图7示出了确定由应用程序呈现的文本和/或数据字段的字段类型的方法700。方法700可由电子设备上的键盘逻辑(例如,KSB进程420的启发式模块425)执行。方法700包括键盘逻辑检测对经由用户界面显示的数据字段的选择(702)。可通过从应用程序发送到键盘逻辑的消息来检测对文本字段的选择。然后,键盘逻辑可通过经由用户界面API定义的API字段类型来确定是否针对数据字段定义了字段类型(704)。如果经由API定义了字段类型(“是”,705),则键盘逻辑可将经由API定义的字段类型设置为用于建议生成的字段类型(710)。如果未经由API定义字段类型(“否”,705),则键盘逻辑可检索应用程序和/或文本字段的上下文数据(711)。然后,键盘逻辑可对上下文数据应用启发式方法,以确定字段类型的语义含义(712)。如上所述,启发式方法可包括数据字段是否是搜索文本字段、与数据字段相关联的关键字以及数据字段的占位符文本。附加启发式方法包括应用程序是否支持汽车信息娱乐界面(例如,Apple Car Play、Android Auto)。与数据字段相关联的元数据可指示该字段是否需要电话号码、和地址、姓名、雇主、公司名称或其他类型的数据。
图8示出了应用程序的文本输入和重复建议的过滤。如图所示,移动设备202可在设备的显示器221上呈现应用程序821的用户界面。该应用程序可显示用户界面,该用户界面包括可接收文本输入的一个或多个文本字段。可经由呈现在显示器221上的键盘320提供文本输入,其中显示器是被配置为接受触摸输入的触敏显示器。例如,应用程序821可以是可向用户呈现导航方向的导航应用程序。导航应用程序可包括起始字段822和目的地字段823。起始字段822和/或目的地字段823中的任一者可经由键盘320接收文本输入824。在各种实施方案中,可针对任何类型的应用程序生成建议。生成的建议类型可基于生成建议的应用程序类型而有所不同。
一些应用程序可呈现界面元素以显示应用程序生成的建议825。可基于经由键盘320提供的输入来生成应用程序生成的建议。可基于公共和/或未受保护的数据(诸如存储在移动设备202上或可经由网络访问的地图数据库)来生成应用程序生成的建议825。如果应用程序821已被授予对这些数据的访问权限,则还可基于存储在设备上的私有数据来生成应用程序生成的建议825。例如,文本输入824可以是地址的一部分,并且应用程序生成的建议825可以是基于地图数据库生成的地址的自动完成建议。如果应用程序821已被授予对移动设备202上的日历的访问权限,则可基于日历事件内指定的位置数据来生成应用程序生成的建议825。如果应用程序821已被授予对移动设备202上的联系人数据库的访问权限,则应用程序生成的建议825可基于与联系人数据库中的联系人相关联的地址、姓名、业务或其他数据。
为了防止重复建议的显示,用户设备402上的键盘和建议逻辑可扫描与应用程序821相关联的存储器以检测应用程序正在显示的应用程序生成的建议825。例如,应用程序的视图分级结构可对键盘逻辑可见。可扫描与关联于应用程序的自动完成建议窗口相关联的文本对象来确定应用程序正在呈现的自动完成建议。可移除要经由安全建议栏330呈现的与应用程序生成的建议825中的一个或多个建议重复的建议,并且可显示一个或多个过滤后的建议828。
虽然本文描述了在防止应用程序对联系人数据库的访问的同时实现应用程序的自动完成建议的生成,但可应用类似的技术来实现自动完成,同时防止应用程序对其他私有数据源的访问。例如,可基于存储在电子设备上的位置历史来生成自动完成建议,同时防止应用程序访问位置历史。
图9示出了防止呈现重复建议的方法900。方法900可由本文所述的键盘逻辑(诸如KSB进程420的建议模块424)执行。方法900包括键盘逻辑检测应用程序对自动完成建议的呈现(902)。然后,键盘逻辑可确定从建议生成器所接收的一个或多个自动完成建议是否与应用程序呈现的自动完成建议重复(904)。检测自动完成建议的呈现并且确定是否正在呈现重复建议可通过扫描与应用程序相关联的存储器或者通过向UI框架查询由应用程序经由UI框架呈现的UI数据来确定。如果发现重复建议(“是”,905),则键盘逻辑可从建议列表中移除重复建议,以经由安全建议栏进行阻止(910)。在移除重复建议之后,或者如果没有发现重复建议,则键盘逻辑可经由安全建议栏呈现建议列表(911)。可例如通过请求键盘逻辑在其上执行的设备的操作系统的窗口管理器显示建议来经由安全建议栏呈现建议列表。
本文所述的实施方案包括环境中的一个或多个应用编程接口(API),其中调用程序代码与通过一个或多个编程接口调用的其他程序代码进行交互。各种功能调用、消息或其他类型的调用还可包括各种参数,这些调用可以经由调用程序和被调用代码之间的API而传输。此外,API可以给调用程序代码提供使用在API中定义的、并在被调用程序代码中实现的数据类型或类别的能力。
API允许API调用部件的开发者(可以是第三方开发者)利用由API实现部件提供的指定特征。可以有一个API调用部件或可以有多于一个此类部件。API可以是计算机系统或程序库提供的源代码接口,以便支持来自应用程序的服务请求。操作系统(OS)可具有多个API,以允许运行于OS上的应用程序调用那些API中的一个或多个API,并且服务(例如程序库)可具有多个API,以允许使用服务的应用程序调用那些API中的一个或多个API。可按照在构建应用程序时能够解译或编译的编程语言来指定API。
在一些实施方案中,API实现部件可提供多于一个API,每个API提供不同视图或具有不同方面,该不同方面访问由API实现部件实现的功能的不同方面。例如,API实现部件的一个API可提供第一函数集,并可暴露于第三方开发者,并且API实现部件的另一个API可被隐藏(不暴露)并提供第一函数集的子集,并且还提供另一函数集,诸如不在第一函数集中的测试或调试函数。在其他实施方案中,API实现部件本身可经由下层API调用一个或多个其它部件,因而既是API调用部件又是API实现部件。
API定义在访问和使用API实现部件的指定特征时API调用部件所使用的语言和参数。例如,API调用部件通过被API暴露的一个或多个API调用或引用(例如由函数或方法调用实现)来访问API实现部件的指定特征,并经由API调用或引用使用参数来传递数据和控制信息。API实现部件可响应于来自API调用部件的API调用而通过API返回值。尽管API定义API调用的语法和结果(例如,如何引起API调用以及API调用能干什么),但API可不揭示API调用如何完成由API调用指定的函数。经由调用(API调用部件)和API实现部件之间的一个或多个应用编程接口来传输各种API调用。传输API调用可包括发出、发起、引用、调用、接收、返回或响应函数调用或消息;换句话讲,传输能够描述API调用部件或API实现部件中的任一者的动作。API的函数调用或其它引用可通过参数列表或其它结构发送或接收一个或多个参数。参数可以是常数、键、数据结构、对象、对象类、变量、数据类型、指针、数组、列表或指向函数或方法的指针或援引要经由API传递的数据或其它项目的另一种方式。
此外,数据类型或类可由API提供并由API实现部件实现。因此,API调用部件可利用API中提供的定义来声明变量、使用指向此类类型或类的指针、使用或实例化此类类型或类的恒定值。
通常,可使用API来访问由API实现部件提供的服务或数据,或启动执行由API实现部件提供的操作或计算。以举例的方式,API实现部件和API调用部件可各自为操作系统、库、设备驱动程序、API、应用程序或其它模块(应当理解,API实现部件和API调用部件可以是彼此相同或不同类型的模块)中的任一种。在一些情况下,可至少部分地在固件、微码或其它硬件逻辑部件中实现API实现部件。在一些实施方案中,API可以允许客户端程序使用由软件开发工具包(SDK)库提供的服务。在其他实施方案中,应用程序或其他客户端程序可使用由应用程序框架提供的API。在这些实施方案中,应用程序或客户端程序可将调用结合到由SDK提供和由API提供的函数或方法中,或使用SDK中定义并由API提供的数据类型或对象。在这些实施方案中,应用程序框架可为程序提供主要事件循环,其对框架定义的各种事件作出响应。API允许应用程序利用应用程序框架来指定事件和对事件的响应。在一些具体实施中,API调用能够向应用程序报告硬件设备的能力或状态,包括与诸如输入能力和状态、输出能力和状态、处理能力、电源状态、存储容量和状态、通信能力等方面相关的能力或状态,并且API可部分地由固件、微码或部分地在硬件部件上执行的其它低电平逻辑部件实现。
API调用部件可以是本地部件(即与API实现部件在同一数据处理系统上)或远程部件(即在不同于API实现部件的数据处理系统上),所述部件经由网络通过API与API实现部件进行通信。应当理解,API实现部件也可充当API调用部件(即,它可对被不同API实现部件暴露的API进行API调用),并且API调用部件也可通过实现暴露于不同API调用部件的API来充当API实现部件。
API可允许以不同编程语言编写的多个API调用部件与API实现部件通信(从而API可包括用于转换API实现部件和API调用部件之间的调用和返回的特征);不过,可以特定的编程语言实现API。在一个实施方案中,API调用部件可调用来自不同提供商的API,例如来自OS提供商的一组API和来自插件提供商的另一组API,以及来自另一提供商(例如软件库的提供商)或另一组API的创建者的另一组API。
图10是示出可用于本发明的一些实施方案中的示例性API架构的框图。如图10中所示,API架构1000包括实现API 1020的API实现部件1010(例如,操作系统、库、设备驱动程序、API、应用程序、软件或其他模块)。API 1020指定可由API调用部件1030使用的API实现部件的一个或多个函数、方法、类、对象、协议、数据结构、格式和/或其他特征。API 1020可指定至少一个调用约定,该调用约定指定API实现部件中的函数如何从API调用部件接收参数以及函数如何向API调用部件返回结果。API调用部件1030(例如操作系统、库、设备驱动程序、API、应用程序、软件或其它模块)通过API 1020进行API调用,以访问并使用由API1020指定的API实现部件1010的特征。API实现部件1010可响应于API调用而通过API 1020向API调用部件1030返回值。
应当理解,API实现部件1010可包括未通过API 1020指定且对于API调用部件1030不可用的附加函数、方法、类、数据结构和/或其它特征。应理解,API调用部件1030可与API实现部件1010在同一系统上,或者可远程定位并通过网络来使用API 1020访问API实现部件1010。虽然图10示出了单个API调用部件1030与API 1020交互,但应理解,可用与API调用部件1030不同的语言(或相同的语言)编写的其他API调用部件可以使用API1020。
API实现部件1010、API 1020和API调用部件1030可以存储在机器可读介质中,其包括用于以机器(例如计算机或其他数据处理系统)可读的形式存储信息的任何机构。例如,机器可读介质包括磁盘、光盘、随机存取存储器;只读存储器、闪存存储器设备等。
在一个实施方案中,本文描述的访问控制模块117可与API实现部件1010通信地耦接以介导对隐私相关系统资源(诸如图2所示的用户数据和系统资源)的访问。在API实现部件1010可执行一些操作之前,API实现部件1010可与访问控制模块117通信以确定是否可以执行这些操作。
图11A至图11B是根据实施方案的示例性API软件栈1100、1110的框图。图11A示出了示例性API软件栈1100,其中应用程序1102可使用服务API对服务A或服务B进行调用以及使用OS API调用操作系统1104。此外,服务A和服务B可使用若干OS API调用操作系统1104。
图11B示出了示例性API软件栈1110,包括应用程序1、应用程序2、服务1、服务2和操作系统1104。如图所示,服务2具有两个API,其中一个(服务2API 1)从应用程序1接收调用并返回值,另一个(服务2API 2)从应用程序2接收调用并返回值。服务1(例如,可以是软件库)向OS API1进行调用并接收返回的值,并且服务2(例如,可以是软件库)向OS API1和OS API 2两者进行调用并接收返回的值。应用程序2对OS API 2进行调用并接收返回的值。
在一个实施方案中,本文描述的访问控制模块117可以限制应用程序可以相对于彼此执行的交互的类型。例如,在一个实施方案中,应用程序1可对应用程序2进行控制。访问控制模块117可确定应用程序1是否具有控制应用程序2的权限。此外,访问控制模块117可用于限制系统可编程地接收的事件的类型。访问控制模块117还可防止应用程序使用本地文件夹的网络共享来绕过文件系统保护。
图12是根据实施方案的用于移动或嵌入式设备的设备架构1200的框图。设备架构1200包括存储器接口1202、包括一个或多个数据处理器的处理系统1204、图像处理器和/或图形处理单元以及外围设备接口1206。各种部件可通过一条或多条通信总线或信号线耦接。各种部件可以是单独的逻辑部件或设备或可以集成在一个或多个集成电路,诸如片上系统集成电路。
存储器接口1202可以耦接至存储器1250,其可以包括高速随机存取存储器诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)和/或非易失性存储器,诸如但不限于闪存存储器(例如,NAND闪存、NOR闪存,等等)。
传感器、设备和子系统可耦接到外围设备接口1206以促进多个功能。例如,运动传感器1210、光传感器1212和接近传感器1214可耦接到外围设备接口1206以促进移动设备功能。还可存在一个或多个生物特征传感器1215,诸如用于指纹识别的指纹扫描器或用于面部识别的图像传感器。其他传感器1216也可连接至外围设备接口1206,诸如定位系统(例如,GPS接收器)、温度传感器、或其他感测设备以促进相关的功能。可利用相机子系统1220和光学传感器1222(如电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光学传感器)来促进相机功能,诸如拍摄照片和视频剪辑。
可通过一个或多个无线通信子系统1224来促进通信功能,这些无线通信子系统可包括射频接收器和发射器和/或光学(例如,红外)接收器和发射器。无线通信子系统1224的具体设计与实现可取决于移动设备打算通过其操作的通信网络。例如,包括示出的设备架构1200的移动设备可包括设计来通过GSM网络、CDMA网络、LTE网络、Wi-Fi网络、Bluetooth网络或任何其他无线网络操作的无线通信子系统1224。具体地,无线通信子系统1224可提供通信机构,在该通信机构中,媒体回放应用程序可从远程媒体服务器检索资源或从远程日历或事件服务器检索调度事件。
音频子系统1226可耦接到扬声器1228和麦克风1230以促进支持语音的功能,诸如声音识别、语音复制、数字记录和电话功能。在本文描述的智能媒体设备中,音频子系统1226可以是包括支持虚拟环绕声的高质量音频系统。
I/O子系统1240可包括触摸屏控制器1242和/或其他输入控制器1245。对于包括显示设备的计算设备,触摸屏控制器1242可耦接至触敏显示器系统1246(例如,触摸屏)。触敏显示系统1246和触摸屏控制器1242可例如使用多种触摸和压力感测技术的任何一种检测接触和运动或压力,触摸和压力感测技术包括但不限于电容性、电阻性、红外和表面声波技术,以及用于确定与触敏显示系统1246接触的一个或多个点的其他接近传感器阵列或其他元件。触敏显示系统1246的显示输出可由显示控制器1243生成。在一个实施方案中,显示控制器1243可在可变帧速率下向触敏显示系统1246提供帧数据。
在一个实施方案中,包括传感器控制器1244以监测、控制,和/或处理从一个或多个运动传感器1210、光传感器1212、接近传感器1214,或其他传感器1216接收的数据。传感器控制器1244可包括逻辑来解释传感器数据以通过分析来自传感器的传感器数据来确定多个运动事件或活动中的一者的发生。
在一个实施方案中,I/O子系统1240包括其他输入控制器1245,可耦接到其他输入/控制设备1248,诸如一个或多个按钮、摇臂开关、拇指轮、红外线端口、USB端口和/或指针设备诸如触笔或控件/装置诸如扬声器1228和/或麦克风1230的音量控件的向上/向下按钮。
在一个实施方案中,耦接至存储器接口1202的存储器1250可存储操作系统1252的指令,包括便携式操作系统接口(POSIX)兼容和不兼容的操作系统或嵌入式操作系统。操作系统1252可包括用于处理基础系统服务以及用于执行硬件相关任务的指令。在一些具体实施中,操作系统1252可以是内核。
存储器1250还可以存储通信指令1254以促进与一个或多个附加设备、一个或多个计算机和/或一个或多个服务器的通信,例如从远程web服务器获取web资源。存储器1250还可包括用户界面指令1256,包括图形用户界面指令以有利于图形用户界面处理。
此外,存储器1250可存储传感器处理指令1258以促进传感器相关处理和功能;促进与电话相关的过程及功能的电话指令1260;促进与电子消息处理相关的过程及功能的即时消息指令1262;促进与网页浏览相关的过程和功能的网页浏览指令1264;促进与媒体处理相关的过程和功能的媒体处理指令1266;位置服务指令包括GPS和/或导航指令1268和基于Wi-Fi的位置指令以促进基于位置的功能性;促进与相机相关的过程和功能的相机指令1270;和/或其他软件指令1272,以有利于其他过程和功能,例如安全过程和功能以及与系统相关的过程和功能。存储器1250还可以存储其他软件指令,诸如促进与web视频相关的过程和功能的web视频指令;和/或促进与网络购物相关的过程和功能的网络购物指令。在一些具体实施中,媒体处理指令1266分为音频处理指令和视频处理指令,以分别用于促进与音频处理相关的过程和功能以及与视频处理相关的过程和功能。移动设备标识符,诸如国际移动设备身份(IMEI)1274或类似的硬件标识符也可存储在存储器1250中。
上面所识别的指令和应用程序中的每一者可对应于用于执行上述一个或多个功能的指令集。这些指令不需要作为独立软件程序、进程或模块来实现。存储器1250可包括附加指令或更少的指令。此外,可在硬件和/或软件中,包括在一个或多个信号处理和/或专用集成电路中,执行各种功能。
图13为根据实施方案的计算系统1300的框图。示出的计算机系统1300旨在表示一系列计算系统(有线或无线的),包括例如台式计算机系统、膝上型计算机系统、平板计算机系统、蜂窝电话、包括支持蜂窝的PDA的个人数字助理(PDA)、机顶盒、娱乐系统或其他消费电子设备、智能电器设备、或者智能媒体回放设备的一个或多个具体实施。另选的计算系统可以包括更多、更少和/或不同的部件。计算系统1300可用于提供在计算设备和/或计算设备可能与之连接的服务器设备。
计算机系统1300包括总线1335或用于传递信息的其他通信设备,和与总线1335耦接的可处理信息的处理器1310。虽然计算系统1300被图示为具有单个处理器,但是计算系统1300可以包括多个处理器和/或协处理器。计算系统1300还可包括存储器1320,诸如耦接到总线1335的随机存取存储器(RAM)或其他动态存储设备。存储器1320可存储可由处理器1310执行的信息和指令。在由处理器1310执行指令期间,存储器1320还可用于存储临时变量或其他中间信息。
计算系统1300还可包括只读存储器(ROM)1330和/或耦接到总线1335的可存储用于处理器1310的信息和指令的其他数据存储设备1340。数据存储设备1340可以是或包括各种存储设备,例如闪存存储器设备、磁盘,或光盘并且可通过总线1335或通过远程外围设备接口耦接到计算系统1300。
计算系统1300还可经由总线1335耦接到显示设备1350以向用户显示信息。计算系统1300还可以包括数字字母混合输入设备1360,该设备包括数字字母键和其他键,其可以联接到总线1335以将信息和命令选项发送到处理器1310。另一种用户输入设备包括光标控件1370设备,诸如触控板、鼠标、轨迹球、或光标方向键,用于向处理器1310传递方向信息和命令选择以及在显示设备1350上控制光标移动。计算系统1300还可以经由一个或多个网络接口1380从通信地耦接的远程设备接收用户输入。
计算系统1300还可以包括一个或多个网络接口1380,以提供对诸如局域网之类的网络的访问。网络接口1380可以包括,例如具有天线1385的无线网络接口,所述天线可以表示一个或多个天线。计算系统1300可以包括多个无线网络接口,诸如Wi-Fi和
Figure BDA0004000230050000231
近场通信(NFC)和/或蜂窝电话接口的组合。网络接口1380也可以包括例如有线网络接口,以经由网络电缆1387与远程设备通信,该电缆可以是例如,以太网电缆、同轴电缆、光纤电缆、串行电缆或并行电缆。
在一个实施方案中,网络接口1380可以例如通过符合IEEE 802.11标准来提供对局域网的接入,并且/或者无线网络接口可以例如通过符合蓝牙标准提供对个人区域网络。其他无线网络接口和/或协议也可得到支持。除了经由无线LAN标准进行通信之外或代替经由无线LAN标准进行通信,网络接口1380可以使用例如时分多址(TDMA)协议、全球移动通信系统(GSM)协议、码分多址(CDMA)协议、长期演进(LTE)协议和/或任何其他类型的无线通信协议来提供无线通信。
计算系统1300还可包括一个或多个能量源1305和一个或多个能量测量系统1345。能量源1305可包括耦接到外部电源的AC/DC适配器、一个或多个电池、一个或多个电荷存储设备、USB充电器,或其他能量源。能量测量系统包括至少一个电压或电流测量设备,可测量计算系统1300在预先确定的时间段内消耗的能量。此外,可包括一个或多个能量测量系统测量,例如,显示设备,冷却子系统,Wi-Fi子系统,或其他常用的或高能量消费子系统所消耗的能量。
如上所述,本发明技术的一个方面是采集和使用可从特定合法源获得的数据,以改善用户在授予对数据处理系统上的受保护资源的访问权限方面的体验。本公开设想,在一些实例中,该采集的数据可包括关于用户的应用程序使用模式的个人信息数据。此类应用程序使用模式的收集还可能无意中揭示可用于唯一地识别用户的其他信息,诸如人口统计数据、基于位置的数据、在线标识符、电话号码、电子邮件地址、家庭地址、与用户的健康或健身级别相关的数据或记录(例如,生命特征测量、药物信息、锻炼信息)、出生日期或任何其他个人信息。本公开认识到,在本技术中,此类个人信息数据的使用可用于使用户受益,例如,改善使用本文描述的数据处理系统或计算设备执行任务的用户体验。
本公开设想负责收集、分析、公开、传输、存储或其他使用此类个人信息数据的实体将遵守既定的隐私政策和/或隐私实践。具体地,将期望此类实体实现和一贯地应用一般公认为满足或超过维护用户隐私的行业或政府所要求的隐私实践。关于使用个人数据的此类信息应当被突出并能够被用户方便地访问,并应当随数据的采集和/或使用变化而被更新。用户的个人信息应被收集仅用于合法使用。另外,此类收集/共享应仅发生在接收到用户同意或在适用法律中所规定的其他合法根据之后。此外,此类实体应考虑采取任何必要步骤,保卫和保障对此类个人信息数据的访问,并确保有权访问个人信息数据的其他人遵守其隐私政策和流程。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。此外,应针对被收集和/或访问的特定类型的个人信息数据调整政策和实践,并使其适用于适用法律和标准,包括可用于施加较高标准的辖区专有的考虑因素。例如,在美国,对某些健康数据的收集或获取可能受联邦和/或州法律的管辖,诸如健康保险流通和责任法案(HIPAA);而其他国家的健康数据可能受到其他法规和政策的约束并应相应处理。
不管前述情况如何,本公开还预期用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,本技术可被配置为允许用户在系统配置期间或其后随时选择参与采集个人信息数据的“选择加入”或“选择退出”。除了提供“选择加入”和“选择退出”选项外,本公开还设想提供与访问或使用个人信息相关的通知。例如,可在下载应用时向用户通知其个人信息数据将被访问,然后就在个人信息数据被应用访问之前再次提醒用户。
此外,本公开的目的是应管理和处理个人信息数据以最小化无意或未经授权访问或使用的风险。一旦不再需要数据,通过限制数据收集和删除数据可最小化风险。此外,并且当适用时,包括在某些健康相关应用程序中,数据去标识可用于保护用户的隐私。可在适当时通过移除标识符、控制所存储数据的量或特异性(例如,在城市级别而不是在地址级别收集位置数据)、控制数据如何被存储(例如,在用户间汇集数据)和/或其他方法诸如差异化隐私来促进去标识。
因此,虽然本公开广泛地覆盖了使用个人信息数据来实现一个或多个各种所公开的实施方案,但本公开还预期各种实施方案也可在无需访问此类个人信息数据的情况下被实现。即,本发明技术的各种实施方案不会由于缺少此类个人信息数据的全部或一部分而无法正常进行。例如,可基于汇集的非个人信息数据或绝对最低数量的个人信息,诸如仅在用户设备上处理的内容或可用于内容递送服务的其他非个人信息,来选择内容并递送给用户。
在前面的说明中,已经描述了本公开的示例性实施方案。显而易见的是,在不脱离本公开的更广泛的实质和范围的情况下,可对其进行各种修改。相应地,说明书和附图被视为是例示性意义而不是限定性意义。所提供的描述和示例中的具体细节可用于一个或多个实施方案中的任何地方。不同实施方案或示例的各种特征可与所包括的一些特征和排除的其他特征不同地组合,以适应多种不同的应用。示例可包括主题,诸如方法,用于执行该方法的行为的装置,包括指令的至少一种机器可读介质,所述指令在由机器执行时使得机器执行该方法的行为,或者根据本文所述的实施方案和示例执行装置或系统的动作。此外,本文描述的各种部件可为用于执行本文所描述的操作或功能的装置。
一个实施方案提供一种存储指令的非暂态机器可读介质,该指令在由电子设备的一个或多个处理器执行时,致使该一个或多个处理器执行操作,该操作包括:检测对经由该电子设备的用户界面显示的文本字段的选择,该用户界面针对由该一个或多个处理器执行的应用程序而显示;确定与该文本字段相关联的类型;检测字符串到该文本字段中的输入;向建议生成器提供该输入字符串和与该文本字段相关联的该类型,该建议生成器生成一个或多个自动完成建议,该一个或多个自动完成建议基于该电子设备上的联系人数据库而生成;从该建议生成器接收该一个或多个自动完成建议;请求该一个或多个自动完成建议在该电子设备的该用户界面内的安全显示,其中该一个或多个自动完成建议的该安全显示经由对于该应用程序不可访问的存储器位置在该用户界面内显示该一个或多个自动完成建议;经由该电子设备的该用户界面接收对该一个或多个自动完成建议中的自动完成建议的选择;以及将所选择的自动完成建议插入到该文本字段中。可通过检测用于选择该文本字段的触摸输入来检测对经由该用户界面显示的该文本字段的选择。插入所选择的自动完成建议包括将所选择的自动完成建议写入到对于该应用程序可访问的存储器位置。
一个实施方案提供了一种电子设备,该电子设备包括显示设备、与该显示设备耦接的存储器设备、输入设备以及与该显示设备、该存储器设备和该输入设备耦接的一个或多个处理器。该一个或多个处理器可被配置为执行存储在该存储器设备中的指令,其中该指令致使该一个或多个处理器:检测对经由该电子设备的用户界面显示的文本字段的选择,该用户界面代表被配置用于由该一个或多个处理器执行的应用程序而显示在该显示设备上;检测字符串到该文本字段中的输入,该字符串经由该输入设备来输入;基于该字符串生成一个或多个自动完成建议;以及将该一个或多个自动完成建议安全显示在该用户界面内。安全显示该一个或多个自动完成建议包括将该自动完成建议写入到该存储器的对于该应用程序不可访问的一部分,以及经由该显示设备显示来自该存储器的该部分的该一个或多个自动完成建议。在该一个或多个自动完成建议的显示之后,该一个或多个处理器可经由该输入设备接收对该一个或多个自动完成建议中的自动完成建议的选择,并且响应于接收到对该自动完成建议的该选择,将所选择的自动完成建议插入到该文本字段中。在安全显示该自动完成建议时,该应用程序不具有对该自动完成建议的访问权限。当选择了自动完成建议时,可使所选择的建议对于该应用程序可访问。
一个实施方案提供一种存储指令的非暂态机器可读介质,该指令在由电子设备的一个或多个处理器执行时,致使该一个或多个处理器执行如本文所述的方法的操作。
通过附图以及通过上述具体实施方式,本实施方案的其他特征将显而易见。因此,在研究附图、说明书和所附权利要求时,这些实施方案的真正范围对于技能熟练的从业人员来说是显而易见的。

Claims (20)

1.一种存储指令的非暂态机器可读介质,所述指令在由电子设备的一个或多个处理器执行时,使所述一个或多个处理器执行操作,所述操作包括:
基于经由文本字段输入的字符串生成一个或多个自动完成建议;
请求一个或多个自动完成建议的安全显示,其中所述一个或多个自动完成建议的所述安全显示包括经由对于应用程序不可访问的存储器位置显示所述一个或多个自动完成建议,其中针对所述应用程序呈现了所述自动完成建议;
接收对所述一个或多个自动完成建议中的自动完成建议的选择;以及
响应于接收到对所述自动完成建议的所述选择,将所选择的自动完成建议插入到所述文本字段中。
2.根据权利要求1所述的非暂态机器可读介质,其中将所选择的自动完成建议插入到所述文本字段中包括使得所述应用程序能够访问所选择的自动完成建议。
3.根据权利要求1所述的非暂态机器可读介质,所述操作还包括:
确定与所述文本字段相关联的类型;以及
使用所述字符串和所述类型生成一个或多个自动完成建议。
4.根据权利要求3所述的非暂态机器可读介质,其中确定与所述文本字段相关联的所述类型包括确定所述文本字段的语义含义是否是经由应用编程接口定义的。
5.根据权利要求3所述的非暂态机器可读介质,其中确定与所述文本字段相关联的所述类型包括分析与所述文本字段相关联的占位符文本。
6.根据权利要求3所述的非暂态机器可读介质,其中确定与所述文本字段相关联的所述类型还包括确定所述应用程序的类型。
7.根据权利要求1所述的非暂态机器可读介质,所述操作还包括使用所述电子设备上的联系人数据库生成一个或多个自动完成建议。
8.根据权利要求7所述的非暂态机器可读介质,所述操作还包括由所述应用程序经由所述电子设备的隐私控制系统选通对所述联系人数据库的访问。
9.根据权利要求1所述的非暂态机器可读介质,所述操作还包括:
经由所述应用程序的进程空间内的键盘逻辑检测所述字符串到所述文本字段中的输入;
确定与所述文本字段相关联的类型;以及
在所述应用程序的进程空间外的键盘逻辑处从所述应用程序的所述进程空间内的所述键盘逻辑接收所述字符串和与所述文本字段相关联的所述类型;
由所述应用程序的进程空间外的所述键盘逻辑基于所述字符串和与所述文本字段相关联的所述类型请求生成所述一个或多个自动完成建议。
10.根据权利要求1所述的非暂态机器可读介质,所述操作还包括:
检测所述应用程序对自动完成建议的呈现;
确定所述一个或多个自动完成建议是否与所述应用程序的所述自动完成建议重复;以及
当建议是所述应用程序的所述自动完成建议的重复时,从所述一个或多个自动完成建议中移除所述建议。
11.一种电子设备,包括:
显示设备;
存储器设备,所述存储器设备与所述显示设备耦接;
输入设备;和
一个或多个处理器,所述一个或多个处理器与所述显示设备、所述存储器设备和所述输入设备耦接,所述一个或多个处理器执行存储在所述存储器设备中的指令,其中所述指令使所述一个或多个处理器:
基于经由文本字段输入的字符串生成一个或多个自动完成建议;
安全显示所述一个或多个自动完成建议,其中安全显示所述一个或多个自动完成建议包括将所述自动完成建议写入到所述存储器的对于应用程序不可访问的一部分,其中针对所述应用程序呈现了所述自动完成建议,以及经由所述显示设备显示来自所述存储器的所述部分的所述一个或多个自动完成建议;
接收对所述一个或多个自动完成建议中的自动完成建议的选择;以及
响应于接收到对所述自动完成建议的所述选择,将所选择的自动完成建议插入到所述文本字段中。
12.根据权利要求11所述的电子设备,其中将所选择的自动完成建议插入到所述文本字段中包括使得所述应用程序能够访问所述存储器的存储所选择的自动完成建议的一部分。
13.根据权利要求11所述的电子设备,其中生成所述一个或多个自动完成建议以:
向与所述电子设备的操作系统相关联的建议生成器提供所述字符串和与所述文本字段相关联的类型,所述建议生成器基于所述字符串、与所述文本字段相关联的所述类型和所述电子设备上的联系人数据库来生成一个或多个自动完成建议;以及
从所述建议生成器接收所述一个或多个自动完成建议。
14.根据权利要求13所述的电子设备,其中确定与所述文本字段相关联的类型包括确定所述文本字段的语义含义是否是经由应用编程接口定义的。
15.根据权利要求14所述的电子设备,其中确定与所述文本字段相关联的类型包括:
确定所述文本字段的语义含义未被定义;以及
基于与所述文本字段相关联的占位符文本或与所述应用程序相关联的应用程序类型来确定与所述文本字段相关联的所述类型。
16.根据权利要求11所述的电子设备,其中所述一个或多个处理器还用于:
检测所述应用程序对自动完成建议的呈现;
确定所述一个或多个自动完成建议是否与所述应用程序的所述自动完成建议重复;以及
当建议是所述应用程序的所述自动完成建议的重复时,从所述一个或多个自动完成建议中移除所述建议。
17.一种方法,包括:
基于经由文本字段输入的字符串生成一个或多个自动完成建议;
请求所述一个或多个自动完成建议的安全显示,其中所述一个或多个自动完成建议的所述安全显示包括经由对于应用程序不可访问的存储器位置显示所述一个或多个自动完成建议,其中针对所述应用程序呈现了所述自动完成建议;
接收对所述一个或多个自动完成建议中的自动完成建议的选择;以及
响应于接收到对所述自动完成建议的所述选择,将所选择的自动完成建议插入到所述文本字段中。
18.根据权利要求17所述的方法,所述方法还包括:
确定与所述文本字段相关联的类型;以及
使用电子设备上的联系人数据库使用所述字符串和所述类型生成一个或多个自动完成建议,其中对所述联系人数据库的应用程序访问被阻止,并且确定与所述文本字段相关联的所述类型包括确定所述文本字段的语义含义是否是经由应用编程接口定义的、分析与所述文本字段相关联的占位符文本或确定所述应用程序的类型。
19.根据权利要求18所述的方法,其中将所选择的自动完成建议插入到所述文本字段中包括使得所述应用程序能够访问所选择的自动完成建议。
20.根据权利要求17所述的方法,所述方法还包括:
检测所述应用程序对自动完成建议的呈现;
确定所述一个或多个自动完成建议是否与所述应用程序的所述自动完成建议重复;以及
当建议是所述应用程序的所述自动完成建议的重复时,从所述一个或多个自动完成建议中移除所述建议。
CN202180042908.7A 2020-06-19 2021-05-25 联系人自动完成键盘 Pending CN116324676A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063041784P 2020-06-19 2020-06-19
US17/183,008 2021-02-23
US17/183,008 US11256864B2 (en) 2020-06-19 2021-02-23 Contacts autocomplete keyboard
PCT/US2021/034081 WO2022203700A1 (en) 2020-06-19 2021-05-25 Contacts autocomplete keyboard

Publications (1)

Publication Number Publication Date
CN116324676A true CN116324676A (zh) 2023-06-23

Family

ID=79023619

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180042908.7A Pending CN116324676A (zh) 2020-06-19 2021-05-25 联系人自动完成键盘

Country Status (4)

Country Link
US (1) US11256864B2 (zh)
EP (1) EP4150435A1 (zh)
CN (1) CN116324676A (zh)
WO (1) WO2022203700A1 (zh)

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7313760B2 (en) * 2002-12-19 2007-12-25 Microsoft Corporation Contact picker
US20050047575A1 (en) * 2003-08-29 2005-03-03 Stephen Parker Secure valet telephone system
US8726165B1 (en) 2007-11-01 2014-05-13 Google Inc. Methods for auto-completing contact entry on mobile devices
US20110191717A1 (en) * 2010-02-03 2011-08-04 Xobni Corporation Presenting Suggestions for User Input Based on Client Device Characteristics
CN103379217B (zh) * 2012-04-28 2015-09-09 阿里巴巴集团控股有限公司 一种手持设备中输入内容自动补全的方法、装置和服务器
US9818161B2 (en) * 2012-06-05 2017-11-14 Apple Inc. Creating a social network message from an interface of a mobile device operating system
US8713042B1 (en) 2012-10-11 2014-04-29 Google Inc. Processing autocomplete suggestions
US8843845B2 (en) * 2012-10-16 2014-09-23 Google Inc. Multi-gesture text input prediction
KR102306899B1 (ko) * 2013-01-21 2021-09-30 키포인트 테크놀로지스 인디아 프라이비트 리미티드 텍스트 입력 시스템 및 방법
US9213941B2 (en) * 2014-04-22 2015-12-15 Google Inc. Automatic actions based on contextual replies
US20160357761A1 (en) * 2015-06-05 2016-12-08 Apple Inc. Techniques for suggesting recipients based on a context of a device
US10078673B2 (en) * 2016-04-20 2018-09-18 Google Llc Determining graphical elements associated with text
US10531286B2 (en) * 2016-10-24 2020-01-07 Facebook, Inc. Methods and systems for auto-completion of anonymized strings
US11907272B2 (en) * 2017-02-17 2024-02-20 Microsoft Technology Licensing, Llc Real-time personalized suggestions for communications between participants
US10416854B2 (en) * 2017-03-07 2019-09-17 Google Llc Autofill for a user device
US10782986B2 (en) * 2018-04-20 2020-09-22 Facebook, Inc. Assisting users with personalized and contextual communication content

Also Published As

Publication number Publication date
US11256864B2 (en) 2022-02-22
WO2022203700A1 (en) 2022-09-29
US20210397789A1 (en) 2021-12-23
EP4150435A1 (en) 2023-03-22

Similar Documents

Publication Publication Date Title
US8646032B2 (en) Method and apparatus providing privacy setting and monitoring user interface
EP3547604B1 (en) Method and apparatus for security question generation and identity verification
US11475029B2 (en) Presenting user information suggestions
WO2019231627A2 (en) Privatized apriori algorithm for sequential data discovery
US11895105B2 (en) Authenticated interface element interactions
US20230259548A1 (en) Virtual file library
JP2020504356A (ja) 決済アプリケーション分離方法および装置、ならびに端末
CN112883405B (zh) 一种数据脱敏方法、装置、设备及存储介质
CN109219003B (zh) 信息加密方法、装置、存储介质及电子设备
US11017109B1 (en) Dynamic sandboxing of user data
US20210397751A1 (en) Software initiated camera and microphone indicator
US20230136200A1 (en) Organization-based Template Publishing and Discovery
US11256864B2 (en) Contacts autocomplete keyboard
EP4220364A1 (en) Method for presenting interface information, and electronic device
US11556714B2 (en) Multi-language grouping of content items based on semantically equivalent topics
CN113486401A (zh) 访问权限的验证方法、装置、设备及介质
US12067146B2 (en) Method and system of securing sensitive information
US20220413685A1 (en) Electronic device for folder operation, and operating method therefor
CN110168314B (zh) 电子设备和利用其的基于位置的信息服务方法
Havey PrivSense: Static Analysis for Detecting Privacy-related Code in Mobile Apps
Derks et al. Fair Privacy: Improving Usability of the Android Permission System

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination