Auto-fill for user equipment

The operating system autofill system, assisted by a remote provider, addresses the inefficiencies of manual data entry in small UIs by automating the process, improving convenience and accuracy.

JP7708837B2Active Publication Date: 2025-07-15GOOGLE LLC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023198065
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2017-10-30
Filing Date
2023-11-22
Publication Date
2025-07-15
Estimated Expiration
2037-10-31

AI Technical Summary

Technical Problem

Manual data entry into small UIs of computing devices, such as mobile devices, is inconvenient, time-consuming, and prone to errors, especially when entering repetitive or difficult-to-remember information.

Method used

An operating system-enabled autofill system that utilizes a remote provider to streamline data entry across multiple applications by recognizing display content, sending a request for candidate data, and autofilling text input fields with received values.

Benefits of technology

Enhances the convenience and accuracy of data entry by automating the process, reducing user effort and minimizing errors.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007708837000001
    Figure 0007708837000001
  • Figure 0007708837000002
    Figure 0007708837000002
  • Figure 0007708837000003
    Figure 0007708837000003
Patent Text Reader

Abstract

To provide a system for, a user device for, and a method of smoothly carry out automatic entry of a plurality of applications to the user device by a user with the help of a remote provider.SOLUTION: A method according to the present invention has a step at which a user device receives authentication for automatic entry in an application displayed on a user interface (UI) of the user device, a step of detecting an automatic entry trigger event during display of the application on the UI to determine a subset of a content which does not include user-unique information, a step of transmitting the subset to a remote provider to request a candidate data for use in automatic entry, a step of receiving, from the remote provider, a response including one or more candidate values for use in the automatic entry, and a step of entering the corresponding one or more candidate values to one or more text input fields displayed on the UI.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Cross - reference to Related Applications This application claims priority based on U.S. Provisional Application No. 62 / 468,011, filed on Mar. 7, 2017, and U.S. Application No. 15 / 798,262, filed on Oct. 30, 2017. The entire disclosures of these are incorporated herein by reference.

Background Art

[0002] Background Many modern computing devices, including mobile devices, cell phones, personal computers, and tablets, provide a user interface (UI) that enables a user to interact with the computing device. For example, application programs can communicate with a user through images, text, and graphic elements (e.g., windows, dialogs, pop - ups, images, buttons, scroll bars, and icons) using the UI. The UI also accepts input from a touch screen, a presence - sensing display, a computer mouse, a keyboard, and other devices that enable a user to control the UI and, further, the application program.

[0003] In some cases, it is possible to interact with an operating system and manage a computing device using a user interface (UI). For example, the operating system may have a control panel or a settings application. This control panel or settings application can use the UI to present one or more windows related to control settings for some aspect of the computing device (e.g., audio control, video output, computer memory, and the human language used by the operating system, etc.). (For example, it can be selected to receive information in English, French, Chinese, Hindi, Russian, etc.). The control panel / settings application can use the UI to receive subsequent inputs related to the above windows. The UI can provide that input to the operating system via the control panel / settings application. Thereby, the computing device can be managed.

[0004] However, especially when the UI of a mobile device is small, manual data entry into the UI can be inconvenient, time-consuming, and / or cumbersome for the user, or may even cause errors.

Summary of the Invention

Means for Solving the Problems

[0005] Overview Exemplary embodiments relate to a system that enables a user, with the help of a remote provider, to streamline autofill across multiple applications using the operating system of a user device. More specifically, the operating system may determine that it is possible to perform autofill in a particular application. The operating system may then recognize the display content on the user device to be sent to a remote provider that helps streamline autofill based on the user's authentication for the autofill, and send a request including the content to the remote provider. After receiving a response from the remote provider that includes data related to the content of the request, the operating system may autofill the application with the related data.

[0006] In one aspect, a method is provided that includes the step of a user device receiving, via a UI, an authentication for performing autofill in an application displayed on a user interface (UI) of the user device. The method further includes detecting an autofill trigger event while the application is displayed on the UI. The method further includes determining, in response to detecting the autofill trigger event, a subset of the content displayed on the UI. The subset does not include user-specific information. The method further includes sending a request for candidate data for use in autofill in the application to a remote provider. The request includes the subset of the content displayed on the UI. The method further includes receiving a response from the remote provider. The response includes one or more candidate values corresponding to one or more text input fields displayed on the UI. The method further includes filling the one or more text input fields displayed on the UI with the corresponding one or more candidate values. Accordingly, the convenience of the UI can be improved, and the accuracy and efficiency of data entry can be enhanced.

[0007]

[0008] Candidate data may be a set of data including candidate values (e.g., one or more data items) received from a remote provider or server. As another aspect, these data items (as part of the data set) may be items input or selected by the user within a field in the UI.

[0009] Optionally, the above method may be performed by the operating system of the user device. The data set further includes a data set identifier. The above method further includes the steps of displaying, via the UI, to allow selection of the data set identifier; receiving input data indicating selection of the data set identifier; and in response to receiving the input data, filling in one or more corresponding candidate values in one or more text input fields displayed on the UI.

[0010] Optionally, the above method may further include the step of the operating system displaying an entry indicator in a text input field where one or more candidate values can be filled in, before the step of receiving input data indicating selection of the data set identifier.

[0011] Optionally, the step of the operating system displaying the entry indicator includes the step of displaying a graphic associated with the entry indicator, and the graphic is received from a remote provider.

[0012] Optionally, the response from the remote provider includes a plurality of data sets, and each data set includes its respective data set identifier and one or more candidate values corresponding to one or more text input fields displayed on the UI. The above method further includes the steps of the operating system displaying one or more data set identifiers via the UI; and the operating system receiving input data indicating selection of a data set identifier from among the one or more displayed data set identifiers.

[0013] Optionally, the method may further include the operating system receiving a preliminary selection of a dataset identifier from among one or more dataset identifiers, and the operating system displaying an entry indicator via the UI in a text input field capable of entering one or more candidate values corresponding to the preliminarily selected dataset identifier.

[0014] Optionally, the method may further include a text input field capable of entering one or more candidate values corresponding to any of the dataset identifiers displaying an entry indicator via the UI.

[0015] Optionally, the method may further include, in response to receiving input data indicating a selection of a dataset identifier, the operating system generating respective secure authentication prompts, and each secure authentication prompt may be displayed on the UI of the user device. The method may further include the operating system receiving respective secure input communications to the respective secure authentication prompts, and in response to the respective secure input communications to the respective secure authentication prompts, the operating system entering one or more candidate values corresponding to the selected dataset identifier in one or more text input fields displayed on the UI.

[0016] Optionally, the step of the operating system displaying a dataset identifier via the UI includes displaying the dataset identifier in a drop-down menu separate from the text input field.

[0017] Optionally, the above method is performed by the operating system of the user device. The step of the operating system of the user device receiving authentication for automatic filling in the application of the user device via the UI of the user device includes the step of the operating system of the user device determining a plurality of remote providers for candidate data, the step of the operating system of the user device generating a list of the plurality of remote providers and displaying the list on the UI of the device, and the step of the operating system of the user device receiving input data indicating the selection of a remote provider from the list, and the selected remote provider is authenticated to receive a request for automatic filling in the application.

[0018] Optionally, the above method is performed by the operating system of the user device. Before the step of receiving the above response, the operating system receives a preliminary communication signal including a prompt for providing secure authentication from the remote provider, the operating system displays a secure authentication prompt, the operating system receives user input data based on the secure authentication prompt, and the operating system transmits a confirmation signal including the user input data to the remote provider.

[0019] Optionally, the secure authentication prompt includes a request for biometric input. Optionally, the method is performed by the operating system of the user device. Before the step of receiving the response, the steps of receiving a first preliminary communication signal including a dataset identifier from a remote provider, the operating system displaying to select the dataset identifier via a UI, the operating system receiving input data indicating the selection of the dataset identifier, the operating system transmitting the input data indicating the selection of the dataset identifier to the remote provider, the operating system receiving a second preliminary communication signal including a secure authentication prompt from the remote provider, the operating system displaying the secure authentication prompt, the operating system receiving user input data based on the secure authentication prompt, and the operating system transmitting a confirmation signal including the user input data to the remote provider are performed.

[0020] Optionally, the secure authentication prompt includes a request for a card verification code or a personal identification number, or both a request for a card verification code and a personal identification number.

[0021] Optionally, the method is performed by the operating system of the user device. Before the step of receiving authentication for automatic filling in an application, the steps of the operating system receiving one or more values corresponding to one or more text input fields displayed on a UI corresponding to a second application, the operating system generating a verification transmission prompt for authenticating the operating system to transmit the one or more values to a remote provider, the operating system displaying the verification transmission prompt, the operating system receiving verification for transmitting the one or more values to the remote provider, and the operating system transmitting the one or more values to the remote provider are performed.

[0022] Optionally, the step of detecting an auto-fill trigger event includes the step of detecting the launch of an application.

[0023] Optionally, the step of detecting an auto-fill trigger event includes the step of detecting the selection of a text input field of an application.

[0024] Optionally, an auto-fill trigger event includes receiving a signal indicating that a text input field has focus, as a result of which a keyboard is displayed on the UI. In another aspect, a user device is provided. The user device includes a UI and an operating system configured to receive authentication for performing auto-fill in an application of the user device. The operating system is further configured to detect an auto-fill trigger event. The operating system is further configured to determine a subset of the content displayed on the UI in response to the detection of the auto-fill trigger event. The subset does not include user-specific information. The operating system is further configured to send a request for candidate data for use in auto-fill in the application to a remote provider. The request includes a subset of the content displayed on the UI. The operating system is further configured to receive a response from the remote provider. The response includes one or more candidate values corresponding to one or more text input fields displayed on the UI. The operating system is further configured to enter the one or more candidate values into the corresponding one or more text input fields displayed on the UI.

[0025] In another aspect, there is provided a non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the operating system of the user device to perform functions. The functions include receiving, via the UI, authentication for performing auto-fill in an application displayed on the UI of the user device. The functions further include detecting an auto-fill trigger event. The functions further include determining, in response to the detection of the auto-fill trigger event, a subset of the content displayed on the UI. The subset does not include user-specific information. The functions further include sending, to a remote provider, a request for candidate data for use in auto-fill in the application. The request includes the subset of the content displayed on the UI. The functions further include receiving a response from the remote provider. The response includes one or more candidate values corresponding to one or more text input fields displayed on the UI. The functions further include filling, in the one or more text input fields displayed on the UI, the corresponding one or more candidate values.

[0026] In another aspect, there is a UI, at least one processor, and instructions that, when executed by the at least one processor, cause the at least one processor to perform functions A system is provided that includes a non-transitory computer-readable medium storing . The system includes means for receiving authentication for performing auto-fill in an application of a user device. The system further includes means for detecting an auto-fill trigger event. The system further includes means for determining a subset of the content displayed on the UI in response to the detection of the auto-fill trigger event. The subset does not include user-specific information. The system further includes means for sending a request for candidate data for use in auto-fill in the application to a remote provider. The request includes a subset of the content displayed on the UI. The system further includes means for receiving a response from the remote provider. The response includes a dataset including one or more candidate values corresponding to one or more text input fields displayed on the UI. The system further includes means for filling one or more text input fields displayed on the UI with the corresponding one or more candidate values.

[0027] The above summary is merely illustrative and is not intended to be limiting in any way. By referring to the figures and the following detailed description and the accompanying drawings, additional aspects, embodiments, and features will become apparent in addition to the above-exemplified aspects, embodiments, and features.

[0028] Note that any of the above features can be used in any particular aspect or embodiment of the present invention.

Brief Description of the Drawings

[0029]

Figure 1

Figure 2

Figure 3A

Figure 3B

Figure 3C

Figure 3D

Figure 3E

Figure 3F

Figure 4A

Figure 4B

Figure 5

Best Mode for Carrying Out the Invention

[0030] Detailed Description Exemplary methods and systems are described herein. None of the exemplary embodiments or features described herein should necessarily be construed as being more preferable or advantageous than other embodiments or features. The exemplary embodiments described herein are intended to be It is not. It will be readily understood that certain aspects of the disclosed systems and methods can be arranged and combined in a variety of different configurations. All of these are contemplated herein.

[0031] Furthermore, the specific arrangements shown should not be considered limiting. In other embodiments, it should be understood that it is also possible to increase or decrease the number of each element in the presented figures. Furthermore, it is also possible to combine or omit some of the illustrated elements. Furthermore, certain exemplary embodiments may include elements not shown.

[0032] It will be readily understood that the aspects of the present disclosure generally described and illustrated herein can be arranged, substituted, combined, separated, and designed in a variety of different configurations. All of these are contemplated herein.

[0033] I. Overview User devices such as mobile devices, mobile phones, personal computers, and tablets are present throughout modern communication networks. Many of these devices are capable of running one or more applications while facilitating communication within such networks. Furthermore, many of these devices provide one or more UIs that enable a user to interact with the user device.

[0034] For example, a user can use the UI to communicate information used in applications on the user device through the use of images, text, and other graphic elements. The UI can also receive input from a number of devices connected to the user device. Examples of these many devices include touchscreens, presence-sensing displays, computer mice, keyboards, and other devices that enable a user to control the UI and, further, applications.

[0035] In an optimal scenario, the user would be able to communicate information effectively and efficiently using the UI. However, due to one or more factors, the user's such ability may be restricted. When operating under such restrictions, as the need to communicate more information increases, the ability to communicate that information effectively and efficiently may be increasingly restricted.

[0036] As an example, in the case of a user device with a small screen, it may be very difficult to enter a huge amount of text into the UI to communicate the information used by the application. This is especially true when the text is difficult for the user to remember. Therefore, it would be convenient if the application could remember the information so that the user does not have to communicate the information again when using the application next time. However, naturally, as the number of applications the user tries to communicate with increases, communicating a huge amount of text to each of those applications using the UI can be a great burden on the user (whether it is the first time or not). This is also the case even if the information entered by the user is remembered by individual applications. As a result, when the user is prompted to enter such information, the user's interest in those applications may wane (or they may completely abandon using them).

[0037] In this specification, by making the operating system of the user device function as an intermediary to smooth automatic filling across multiple applications with the help of a remote provider, the user of the user device can effectively and efficiently use those applications Disclosed are exemplary embodiments related to a method, system, and device that enable communication of information used in a [Japanese kana]. Specifically, in the exemplary embodiments disclosed herein, in part, by enabling autofill, permitting the provision of autofill data to any authenticated remote provider, searching for autofill data, and saving the autofill data for later use, a user can use autofill at the operating system level of a user device.

[0038] In an example of an embodiment according to the present disclosure, the operating system of a user device may receive user authentication for performing autofill in an application displayed on the UI of the user device. For example, to enable autofill, the operating system may determine whether a text input field is associated with a common autofill descriptor (e.g., whether the text input field is associated with an item such as "password" or "username"), and then prompt the user to set autofill. In a further aspect, if the user has only one remote provider designated to assist in streamlining autofill, the user may be prompted to consent to the use of that remote provider. On the other hand, if there are multiple designated remote providers, the user may be prompted to select one or more remote providers. However, in any scenario, since user-specific confidential information and / or personal information may be required to perform the autofill function using the operating system, the operating system may notify the user of the details inherent in the authentication of autofill. Those details may include accepting detailed agreements regarding the operating system and / or disclaimers regarding each remote provider. Thereby, before the user authenticates the use of autofill using one or more of those remote providers, the user can be provided with information and confirm consent.

[0039] In yet another aspect, the operating system may detect an event that triggers the operating system to check the content displayed on the UI. In an exemplary embodiment, this event may include the launch of an application, the selection of a text input field on the application, or a signal indicating that a text input field has focus (e.g., a specific text field becomes active and the keyboard is displayed on the UI), although there may be many other examples.

[0040] When the operating system detects such an event and checks the content displayed on the UI, the operating system may determine which parts of the content do not contain user-specific confidential information. In yet another aspect, using the relevant parts of the content, the operating system may send a request to a remote provider to help smooth out autofill in the application by providing candidate data for use in the application. In this embodiment, such a request may be beneficial to both the operating system and the user. This is because the remote provider can then securely and privately parse the content displayed on the UI and determine which information is useful for smoothing out autofill in the application (e.g., which text input fields on the application are autofillable).

[0041] When such a request is sent to the remote provider, the operating system may receive a response to the request that includes a set of candidate values corresponding to one or more text input fields of the application displayed on the UI. In a further embodiment, the operating system may display a secure authentication prompt and receive user input data directed to this prompt before actually receiving such a response from the remote provider. This secure authentication prompt may include a request for biometric input information, although there may be many other examples.

[0042] In any case, when this response is received, the operating system may fill one or more corresponding candidate values in the text input field of the application displayed on the UI.

[0043] In another embodiment, the response may include a dataset identifier corresponding to a set of candidate values. When multiple sets of candidate values are included in the response, assigning an identifier to each of them may be convenient for the user and the operating system to manage the information contained therein. Further, in a further embodiment, the operating system may display a secure authentication prompt and receive user input data directed to the prompt before receiving a response from the remote provider. This secure authentication prompt may include a request for a card verification code or a personal identification number, but there may be many other examples.

[0044] When the above response is received, the operating system may display one or more dataset identifiers included in this response. Next, the operating system may receive input data from the user indicating that the user has selected a dataset identifier corresponding to the value to be used for filling in the text input field of the application. In one embodiment, the identifier corresponding to the set of candidate values received from the remote provider may be displayed for the user to select. In a further aspect, this displayed information is a list of identifiers (dropdown menu or other format), and each identifier may correspond to the set of candidate values received from the remote provider. In a further aspect, when a dataset identifier is selected, the operating system may fill the text input field of the application displayed on the UI with the set of candidate values corresponding to the selected dataset identifier.

[0045] In another embodiment, before the user selects a data set, an entry indicator (in a graphic format received from a remote provider, or other format) may be displayed in a text input field where these candidate values can be entered. In yet another embodiment, the operating system may receive a preselected data set identifier from the user from a list of identifiers, and display an entry indicator in a text input field of an application where candidate values associated with the preselected data set identifier can be entered.

[0046] In another embodiment, after data is manually entered into a text input field of an application displayed on the UI, the user data may be provided to a remote provider for later use in auto-fill. More specifically, after receiving the data, the operating system prompts the user to save the input data for later use, and sends that data to the remote provider selected by the user to help smooth the auto-fill in the application. In one embodiment, to save such input data for auto-fill, the user may be prompted to save the input data for later use in auto-fill when the input data is entered and the keyboard is closed. In a further aspect, such saving of data may be done by the operating system immediately sending the input data to the remote provider. Alternatively, it may be done by the operating system temporarily holding the data until the user responds to a prompt, and then sending the data to the remote provider when the response is received.

[0047] II. Distributed Computing Architecture The following refers in detail to various embodiments. Examples of these embodiments are shown in the accompanying drawings It is shown in. In the following detailed description, many specific details are set forth in order to provide a thorough understanding of the present disclosure and the described embodiments. However, the present disclosure may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.

[0048] FIG. 1 shows a distributed computing architecture 100 that includes server devices 108, 110 configured to communicate with user devices 104a, 104b, 104c, 104d, 104e and remote providers 112, 114 via network 106, in accordance with an exemplary embodiment. Network 106 may correspond to any other type of network configured to provide a communication path between local area networks (LANs), wide area networks (WANs), corporate intranets, the public Internet, or networked computing devices. Network 106 may correspond to a combination of one or more LANs, WANs, corporate intranets, and / or the public Internet.

[0049] Although FIG. 1 only shows a small collection of user devices, the distributed application architecture may provide dozens, hundreds, or thousands of user devices. Further, the user devices 104a, 104b, 104c, 104d, 104e (or any additional programmable device) may be any type of computing device that, with the help of a remote provider, can smooth out auto-fill across multiple applications using the operating system of the computing device for the user. For example, a general laptop computer, desktop computer, wearable computing device, portable computing device, head-mounted device (HMD), network terminal, wireless communication device (e.g., smartphone or mobile phone), etc. In certain embodiments, as shown by user devices 104a, 104b, and 104c, the user devices may be directly connected to network 106. In other embodiments, as shown by user devices 104d and 104e, the user devices may be indirectly connected to network 106 via a related computing device such as user device 104c. In such embodiments, user device 104c may function as a related computing device that transmits electronic information between user devices 104d and 104e and network 106. Although not shown in FIG. 1, in still other embodiments, one user device may be directly and indirectly connected to network 106.

[0050] Server devices 108, 110 may operate as part of a cloud-based server system that shares computer processing resources and data with computers and other devices in response to requests. In particular, server devices 108, 110 are user device 104a It may be configured to perform one or more services requested by [[ID=]],

[0051] Remote providers 112, 114 may operate as part of a cloud-based server system that shares computer processing resources and data with computers and other devices in response to requests. Specifically, remote providers 112, 114 may provide, receive, store, manage, and transmit content on network 106 according to an exemplary embodiment. For example, remote provider 112 and / or 114 may receive a request for content used by user equipment 104a - 104e, generate a response including the content, and transmit the response to a device connected to the network.

[0052] As an example, server devices 108 and / or 110 may provide content that, with the help of remote providers 112 and / or 114, facilitates autofill across multiple applications on user devices 104a - 104e. Further, server devices 108 and / or 110 may provide user devices 104a - 104e with access to software for databases, search, computing, graphics, audio, video, World Wide Web / Internet utilization, and / or other functions. There can be numerous other examples of content.

[0053] III. Method Flowcharts and Exemplary Embodiments FIG. 2 is a flowchart showing a method 200 that can be performed to enable a user to facilitate autofill across multiple applications using an operating system of a user device with the help of a remote provider. As illustrated and described in FIG. 1, method 200 may be performed by one or more computing devices such as user devices 104a - 104e and remote providers 112 and / or 114 (and optionally server 108 and / or 110). In a further example, method 200 may be performed by user devices 104a - 104e and remote providers 112 and / or 114 (and optionally server 108 and / or 110) operating as part of a cloud - type system. Further, method 200 may be performed by one or more other types of computing devices other than the computing devices specifically shown in FIG. 1.

[0054] Note that in the following, the steps of method 200 are described as being completed by the operating system, but other components, applications, and / or technologies related to the user device may perform the steps of method 200.

[0055] Note that the functions described in this specification in relation to the flowchart may be implemented as hardware modules with special functions and / or set general functions, or may be implemented as part of program code executed by a processor to implement the specific logical functions, determinations, and / or steps described in relation to the flowchart shown in FIG. 2. When program code is used, the program code may be stored in any type of computer-readable medium, such as a storage device including, for example, a disk or a hard drive.

[0056] Furthermore, each block of the flowchart shown in FIG. 2 may represent a circuit wired to perform a specific logical function in the process. Unless otherwise specified, the functions in the flowchart shown in FIG. 2 may be executed in an order different from that shown or described. If the overall function of the described method is maintained, depending on the functions involved, for example, the separately described functions may be executed substantially simultaneously, or in some cases, in the reverse order.

[0057] In block 210, method 200 performs authentication for auto-fill in the application displayed on the UI of the user device via the UI to the operating This may include receiving by the GU system. Specifically, a user may decide to interact with an application on the device during an interaction with a computing device. However, when or before the user selects an application, the user may be prompted to provide authentication to the operating system of the portable device to facilitate auto-fill in that application and / or other applications. More specifically, the operating system may recognize that the user is interacting with an application and that there is content that the operating system is aware of and relevant to auto-fill in the application. Then, based on this data, the operating system may prompt the user to provide authentication to the operating system for auto-fill in the application. Thereby, the interaction between the user and the user interface function and / or the responsiveness of the user interface function may be improved.

[0058] Generally, the operating system may recognize certain specific data that is commonly relevant to auto-fill. In one example, the operating system may recognize that text input fields related to an application include or are related to a common auto-fill descriptor (e.g., "password" or "username"). In response, in this example, the operating system may prompt the user to set up auto-fill.

[0059] In one example, before, after, or during the user's response to this prompt, the operating system may compile a list of one or more remote providers to further assist in streamlining the autofill. In one aspect, if there is only one remote provider specified to assist in streamlining the autofill, the user may be prompted to consent to the use of that remote provider. On the other hand, in another aspect, if there are multiple remote providers specified to assist in streamlining the autofill, the user may be prompted to select one remote provider and further prompted to consent to the use of that remote provider. In yet another aspect, the user may be able to select two or more remote providers. In that case as well, the user may be prompted to consent to the use of each selected remote provider.

[0060] Generally, in any scenario, the operating system may verify confidential information and / or personal information when performing autofill. It may be convenient for the user to know the details before consenting to the use of this autofill. Specifically, since the operating system can verify the content on the device including confidential information and / or personal information, the operating system can inform the user of the details inherent in the authentication of the autofill before performing the autofill.

[0061] In a further aspect, since the selected remote provider may receive some information that the user typically does not provide, the user may be prompted to commit to an agreement including the terms regarding the use of each autofill provider selected by the user. In one example, to ensure that the user fully understands the details regarding the use of the autofill provider, the user may be prompted to commit to the agreement before authenticating the use of the autofill. This agreement may include disclaimers regarding the use of the operating system and / or each autofill provider selected by the user for autofill.

[0062] In yet other examples, the operating system may present a reconciliation submission prompt to the user before authorizing the use of autofill. This reconciliation submission prompt is what authorizes the operating system to send one or more values entered into one or more text input fields displayed on the UI to a remote provider. For example, the user may enter one or more values into an application other than the application that prompted the user for the autofill settings (the "second application"). In a further aspect, the operating system may send one or more values to the remote provider for later use once authenticated by the user. In block 220, method 200 further includes the operating system detecting an autofill trigger event while the application is displayed on the UI. The autofill trigger event may provide information about the user device, or the current state of an application on the user device, including the state of the user's interaction with the device. Using the autofill trigger event can also help the operating system know when to perform authenticated autofill at an appropriate time. In one example, the autofill trigger event may be a direct or indirect user interaction with the device. However, generally, once autofill is consented to by the user, the user interaction with the device can be monitored by the operating system.

[0063] In one embodiment, by way of example, the autofill trigger event may be indicated by data related to a direct user interaction with the user device. For example, there may be a user's launch of an application, a user's selection of a text input field of an application, or a user request to set up autofill in one or more applications, among many other scenarios.

[0064]

[0065] ​In other examples, the auto-fill trigger event may include data related to indirect user interaction with the user device. For example, a signal indicating that an application has been launched, or a signal indicating that some other parameter of the text input field of the application or the content displayed on the UI of the user device has focus, among others, and there can be numerous other scenarios. In a further aspect, the indirect interaction of the user with the user device by the user may be reflected by the display of a graphic such as a keyboard or a GUI on the UI.

[0066] In block 230, method 200 may further include the operating system determining a subset of the content displayed on the UI in response to detecting the auto-fill trigger event. This subset does not include user-specific information.

[0067] Generally, the content displayed on the UI refers to any information related to an application that the operating system can grasp. In one example, the above content may include the current view hierarchy of the content displayed on the UI of the user device. However, since the above content may include confidential and / or private information, the operating system determines only a subset of the content that does not include user-specific information.

[0068] In one example, user-specific information may include personally identifiable information, or any other information that can identify, contact, or locate a particular human being alone or in combination with other information, or any other information that can identify an individual in light of other information or data. In a further example, user-specific information may include information designated by the user as confidential and / or private information.

[0069] In yet other examples, user-specific information may include information designated as confidential and / or private based on one or more elements related to the user. For example, user-specific information may include information designated as confidential and / or private based on the geographical region where the user, user device, and / or remote provider is located, although there may be numerous other possibilities. In other examples, user-specific information may include information designated as confidential and / or private based on an attribute of the user (e.g., the user's age). In block 240, method 200 may further include the operating system sending a request for candidate data for use in auto-fill in the application to a remote provider. This request includes a subset of the content displayed on the UI. The request for candidate data is sent to a selected remote provider to facilitate the use of auto-fill on the user device. Specifically, based on a subset of the display content that does not include user-specific information, the operating system may send a request to the remote provider that includes information within the subset of the content or information related to a subset thereof. This can thereby draw the attention of the remote provider, particularly with respect to the fillable fields displayed on the UI. In any case, this request can be beneficial to both the operating system and the user. This is because it allows the remote provider to securely and privately parse the content displayed on the UI and determine which information is useful for facilitating auto-fill in the application (e.g., determine which text input fields on the application are auto-fillable).

[0070]

[0071] ​In one example, the above requirements may include information related to text input fields displayed on the UI. In one aspect, this information may include one or more descriptors related to the text input fields. For example, the descriptors may include items such as "name", "username", "email", "password", "address", "city", "state", "zip code", "country", "account number", and / or "card number", among many other possibilities.

[0072] In other examples, the above requirements may include information related to the current view hierarchy of the user device. In one aspect, this information may include information related to compiling or maintaining a subset of the content displayed on the UI (e.g., underlying scripts and / or code). In another aspect, this information may include information related to some approximation of a subset of the content displayed on the UI (e.g., wireframe display of the subset of the content). In yet another aspect, this information may include information related to the architecture of a subset of the content displayed on the UI (e.g., relative layout, linear layout, buttons, table layout, table rows, checkboxes, and / or information related to other elements).

[0073] In block 250, method 200 may further include the operating system receiving a response from a remote provider. This response includes one or more candidate values corresponding to one or more text input fields displayed on the UI. Generally, the response received from the remote provider may provide data useful to the operating system in facilitating autofill.

[0074] In one example, the above response may first include data useful to the operating system in facilitating autofill. For example, the above response may include a data set including a set of candidate values corresponding to one or more text input fields of an application displayed on the UI.

[0075] In another embodiment, the response received from the remote provider may elicit further input data from the user before disclosing the information requested by the operating system. Specifically, in one embodiment, the response may include a preliminary communication signal for eliciting input of data related to the user before transmitting the data set requested by the operating system. In one example, this input data may include data related to the user's fingerprint or any other biometric data. In a further aspect, when such a request for input data is received by the operating system, the operating system may generate and display a secure authentication prompt for notifying the user of the request. In yet another aspect, the operating system may facilitate receipt of the input data and transmit a confirmation signal (which may include the input data) to the remote provider. For example, if the requested data relates to the user's fingerprint data, the operating system may display a secure authentication prompt for eliciting the user's fingerprint data, control one or more sensors for obtaining the user's fingerprint data, receive the user's fingerprint data via one or more of those sensors, and then generate and transmit a confirmation signal (which may include the user's fingerprint data) to the remote provider. Of course, other examples are possible. or may include data related to any other biometric data. In a further aspect, when such a request for input data is received by the operating system, the operating system may generate and display a secure authentication prompt for notifying the user of the request. In yet another aspect, the operating system may facilitate receipt of the input data and transmit a confirmation signal (which may include the input data) to the remote provider. For example, if the requested data relates to the user's fingerprint data, the operating system may display a secure authentication prompt for eliciting the user's fingerprint data, control one or more sensors for obtaining the user's fingerprint data, receive the user's fingerprint data via one or more of those sensors, and then generate and transmit a confirmation signal (which may include the user's fingerprint data) to the remote provider. Of course, other examples are possible.

[0076] In block 260, method 200 may further include the operating system populating one or more text input fields displayed on the UI with one or more corresponding candidate values. Generally, the operating system can ensure that one or more corresponding candidate values are populated accurately and completely in one or more text input fields displayed on the UI.

[0077] In one aspect, before populating the one or more corresponding candidate values in the text input fields, the operating system may determine the positions and order of the text input fields on the UI in which the candidate values are to be populated, and arrange the candidate values in order accordingly.

[0078] In another aspect, the operating system may determine whether one or more text input fields corresponding to one or more candidate values used for auto-fill are actually displayed on the UI. For example, even though the candidate values used for auto-fill correspond to the text input fields of "username", "password", and "address", if the operating system determines that only the text input fields of "username" and "password" are displayed on the UI, the operating system may take further measures. In one example, the operating system may simply ignore the irrelevant candidate values. In another example, the operating system may send a message to notify the remote provider that the irrelevant candidate values were sent by mistake.

[0079] In yet another aspect, the operating system may determine whether one or more corresponding candidate values can actually be entered into one or more text input fields. For example, if one or more of the candidate values used for auto-fill do not conform to the parameters of the corresponding text input field, the operating system may take further measures. In one example, in light of one or more requirements of the corresponding text input field, the candidate value may include non-conforming characters (e.g., too many characters, inappropriate character types, etc.). For example, if the text input field requires a three-digit numeric card verification code and the corresponding candidate value is the word "Faulkner", this candidate value may contain non-conforming characters for at least two reasons (non-conforming length and non-conforming character type). In response, in one example, the operating system may simply ignore the non-conforming candidate value. In another example, the operating system may send a message to the remote provider notifying that a non-conforming candidate value was sent by mistake. In yet another example, the operating system may approximate one or more of the requirements of the text input field using a portion of the non-conforming candidate value (e.g., the first three characters "Fau"). Of course, other examples are possible.

[0080] IV. Further Exemplary Embodiments In other embodiments, the method described herein may further include the operating system receiving a response from a remote provider. This response may include a dataset that includes a dataset identifier.

[0081] In one example, the response may include a data set that includes a set of candidate values corresponding to one or more text input fields of an application displayed on the UI and a data set identifier associated with the set of candidate values. In another example, the response includes a plurality of data sets, and each data set may individually include a set of candidate values corresponding to one or more text input fields of an application displayed on the UI and a data set identifier associated with the set of candidate values.

[0082] Receiving a data set identifier associated with a set of candidate values can be convenient for both the operating system and the user (because the user does not need to consider all of the candidate data when determining the data to use for auto-fill), but when the response includes multiple sets of candidate values, having an identifier associated with each of them can help manage the information contained therein.

[0083] In a further aspect, the method described herein may include the operating system causing a data set identifier to be displayed via the UI for selection. Generally, the data set identifier received from the remote provider may be associated with a set of candidate data corresponding to an entry field displayed on the UI.

[0084] In one example, the response may include a dataset identifier that helps the user identify relevant candidate data for autofill. For example, if the response includes a dataset that contains a set of candidate values corresponding to one or more text input fields of an application displayed on the UI and a dataset identifier associated with this set of candidate values, the dataset identifier may be displayed on the UI to help the user understand the relevant candidate values for autofill. In another example, if the response includes multiple datasets, each dataset individually contains a set of candidate values corresponding to one or more text input fields of an application displayed on the UI and a dataset identifier associated with each set of candidate values, the dataset identifiers may be displayed on the UI to help the user understand the candidate values associated with each dataset identifier.

[0085] In a further aspect, displaying one or more dataset identifiers associated with one or more sets of candidate values can be convenient for both the operating system and the user (because when the operating system decides which candidate values to use for autofill, the user does not have to consider all candidate data, but can select the displayed dataset identifier and use the candidate values associated with that identifier).

[0086] In another example, if there are multiple sets of candidate values and associated identifiers, the identifiers may be displayed as a list (dropdown menu or other format) of identifiers, each corresponding to a set of candidate values, so that the user can select them.

[0087] In yet another example, an entry indicator may be displayed in a text input field where candidate values can be entered. Specifically, the entry indicator can allow the user to confirm in advance which text input fields will have a specific set of candidate values automatically filled in, before the automatic filling occurs. Further, the entry indicator may be displayed in the form of a graphic generated by the operating system (e.g., a pencil shape), or a specific graphic received from a remote provider (e.g., a trademark or logo related to the remote provider), or in other forms. In one example, the operating system may receive a displayed identifier, or a pre-selection of an identifier from a list of displayed identifiers, and display an entry indicator in the text input field of an application where candidate values related to the pre-selected identifier can be entered. In another example, the operating system may display an entry indicator in the text input field of an application where candidate values related to any one of the identifiers in a list of displayed identifiers can be entered. Of course, other examples are possible. In one example, the operating system may receive a displayed identifier, or a pre-selection of an identifier from a list of displayed identifiers, and display an entry indicator in the text input field of an application where candidate values related to the pre-selected identifier can be entered. In another example, the operating system may display an entry indicator in the text input field of an application where candidate values related to any one of the identifiers in a list of displayed identifiers can be entered. Of course, other examples are possible.

[0088] The method described herein may further include the operating system receiving input data indicating a selection of a dataset identifier. Generally, receiving input data indicating a selection of a dataset identifier can indicate to the operating system that the user is selecting the dataset identifier and the candidate values associated with that identifier for use in automatic filling.

[0089] In one example, by receiving input data indicating a selection of a displayed dataset identifier, the operating system can use the candidate values associated with the selected identifier for automatic filling without requiring further action from the user.

[0090] In another example, the displayed dataset identifier may reflect a preliminary communication signal received from a selected remote provider. This preliminary communication signal may include a dataset identifier and, in particular, a secure authentication prompt that can elicit additional input data (e.g., card verification code, personal identification number, etc.) from the user before transmitting the requested data.

[0091] In a further aspect, upon receiving the preliminary communication signal, the operating system may display a secure authentication prompt for eliciting the input data. In yet another aspect, the operating system may facilitate the reception of the input data and transmit a confirmation signal (which may include the input data) to the remote provider. In one embodiment, the operating system may prompt the user to save this input data for later use.

[0092] On the other hand, in another example, the displayed dataset identifier may reflect a first preliminary communication signal (including only the dataset identifier) received from a selected remote provider. In a further aspect, upon its reception, the operating system may transmit the selection of this dataset identifier to the remote provider, and the remote provider may respond by transmitting a second preliminary communication signal. This second preliminary communication signal may include, in particular, a secure authentication prompt that can elicit additional input data (e.g., card verification code, personal identification number, etc.) from the user before transmitting the requested data.

[0093] In a further aspect, upon receiving this second preliminary communication signal, the operating system may display a secure authentication prompt for eliciting the input data. In yet another aspect, the operating system may facilitate the reception of the input data and transmit a confirmation signal (which may include the input data) to the remote provider. In one embodiment, the operating system may prompt the user to save this input data for later use.

[0094] V. Drawings and Exemplary Embodiments for Further Explanation FIG. 3A is a diagram showing a prompt for prompting an auto-fill setting according to an exemplary embodiment. In particular, a user device 302 such as a mobile phone may display a part of an application 304 on the user device. The application 304 may include, or be related to, a text input field including a common auto-fill descriptor 306 (e.g., "password"). In this example, when the operating system of the user device 302 recognizes the common auto-fill descriptor 306, the operating system displays a prompt 308 prompting to set auto-fill. In a further example, as described above, after the user selects the auto-fill setting, the user may be prompted to select one or more remote providers to assist in smoothing the auto-fill. Also, the user may be prompted to confirm and accept one or more agreements related to the selected provider.

[0095] FIG. 3B is a diagram showing a dataset identifier displayed to be selected via the UI of the user device according to an exemplary embodiment. In particular, a user device 302 such as a mobile phone may display a part of an application 304 on the user device. In this example, as described above, in response to the text input field of the application having the focus 310 (here, a vertical line indicating that text can be input into the field via the displayed keyboard is placed in the "E-mail" text input field), the operating system recognizes this focus, determines a subset of the content that does not include user-specific information displayed on the UI, and transmits the subset of the content to a remote provider. Further, when the operating system receives a response from the remote provider, it displays a dataset identifier 312 related to candidate values to be used for auto-fill so that the user can select it. In a further example, the operating system may display an entry indicator 314 (here, a pencil figure) in the text input field where the candidate value should be entered. This may be affected by a preliminary selection of the displayed identifier.

[0096] FIG. 3C is a diagram showing a plurality of dataset identifiers displayed to be selected via the UI of the user device according to an exemplary embodiment. Different from the exemplary embodiment of FIG. 3B, when the operating system of the user device 302 receives a response from the remote provider, it displays a list 316 of dataset identifiers associated with each of the candidate values available for autofill for the user to select. In a further example, the operating system may display an entry indicator 314 (here, a pencil shape) in the text input field where the candidate value is to be entered in various ways. For example, in one aspect, the operating system may display the entry indicator 314 in the text input field based on receiving a pre-selection of an identifier from the list of displayed identifiers. On the other hand, in another example, the operating system may display the entry indicator 314 in the text input field where a candidate value associated with any of the identifiers in the list of displayed identifiers can be entered. Of course, other examples are possible.

[0097] FIG. 3D is a diagram showing user interface functions related to a secure authentication prompt for eliciting biometric input data according to an exemplary embodiment. In this example, different from the previous drawings, the response received from the remote provider includes a preliminary communication signal for eliciting the input of biometric data before transmitting the dataset requested by the user. In a further aspect, the operating system may generate and display a secure authentication prompt 318 (here, a secure authentication prompt for eliciting the user's fingerprint data) for notifying the user of this request. In yet another aspect, the operating system may facilitate the reception of the input data and transmit a confirmation signal (which may include the input data) to the remote provider.

[0098] FIG. 3E is a diagram showing user interface functions related to a secure authentication prompt for extracting a card verification code according to an exemplary embodiment. In particular, a user device 302 such as a mobile phone may display a part of an application 304 on the user device. In this example, as described above, the response received from the remote provider includes a first preliminary communication signal including one or more dataset identifiers related to candidate values used for autofill. Then, in response to receiving input data (here, credit card information corresponding to the displayed dataset identifier) indicating the selection of the displayed dataset identifier 320, the operating system may send the selection of the dataset identifier to the remote provider and receive a second preliminary communication signal including a secure authentication prompt. In this example, the operating system may display a secure authentication prompt 324 (here, a request for a card verification code related to the selected dataset identifier). In still other aspects, the operating system may facilitate the reception of input data, send a confirmation signal (which may include the input data) to the remote provider, and / or allow the user to select whether to save (326) this input data for later use. In response to receiving input data (here, credit card information corresponding to the displayed dataset identifier) indicating the selection of the displayed dataset identifier 320, the operating system may send the selection of the dataset identifier to the remote provider and receive a second preliminary communication signal including a secure authentication prompt. In this example, the operating system may display a secure authentication prompt 324 (here, a request for a card verification code related to the selected dataset identifier). In still other aspects, the operating system may facilitate the reception of input data, send a confirmation signal (which may include the input data) to the remote provider, and / or allow the user to select whether to save (326) this input data for later use.

[0099] FIG. 3F is a diagram showing one or more values entered into corresponding one or more text input fields displayed on the UI of a user device, according to an exemplary embodiment. In particular, a user device 302, such as a mobile phone, may display a portion of an application 304 on the user device. In this example, in response to receiving input data indicating that the user has selected a dataset identifier related to candidate values to be used for auto-fill, the operating system inputs (328) one or more candidate values into the corresponding one or more text input fields displayed on the UI. In a further example, the operating system may display a confirmation message 330 notifying the user that the text input fields of the application displayed on the UI have been auto-filled. In yet another example, the operating system may display a cancellation prompt 332 for notifying the user that the data entered by the operating system during the auto-fill process can be erased from the text input fields of the application.

[0100] FIG. 4A is a diagram showing user interface functions related to manual data entry by a user into a text input field of an application displayed on a UI according to an exemplary embodiment. More specifically, a user device 402 such as a mobile phone may display a part of an application 404 on the user device. In this example, even if the user authenticates auto-fill by the operating system of the mobile device, the user may manually enter input data into a first text input field 406 (here, the "e-mail" text input field) and a second text input field 408 (here, the "password" text input field). In a further aspect, even if one or more data set identifiers 410 related to candidate values used for auto-fill are displayed, and / or an entry indicator 412 (here, a pencil graphic) is displayed in the text input field where the candidate value should be entered, the user may manually enter the input data. In another exemplary embodiment, in response to the user manually entering input data into a text input field, the operating system may filter the displayed data set identifier and / or related candidate values used for auto-fill. Thereby, the displayed data set identifier and / or related candidate values used for auto-fill can be limited to those that match or correspond to the input data manually entered by the user.

[0101] FIG. 4B is a diagram showing a confirmation message and a data saving prompt related to manual data entry by a user into a text input field of an application displayed on the UI shown in FIG. 4A according to an exemplary embodiment. Specifically, when the user manually enters input data related to the text input field displayed on the UI, the operating system may generate and display a confirmation message 414 to notify the user that an entry has been made into the text input field of the application displayed on the UI. In a further example, the operating system may display a prompt 416 to prompt the user to save the input data entered into the text input field of the application. This may include sending the input data to a selected remote provider for later use in auto-fill. In a further aspect, the operating system may temporarily hold the data until the user responds to the prompt and, upon response, send the data to the remote provider, thereby saving the input data for later use in auto-fill.

[0102] VI. COMPUTING DEVICE Next, referring to FIG. 5, FIG. 5 is a functional block diagram of a computing device 500 according to an exemplary embodiment. In particular, the computing device 500 shown in FIG. 5 may be configured to perform at least one function of the aforementioned server devices 108 and / or 110, and / or remote providers 112 and / or 114, user devices 104a - 104e, method 200, user device 302, and / or user device 402.

[0103] The computing device 500 may include a user interface module 501, a network communication interface module 502, one or more processors 503, data storage 504, and one or more sensors 520, and all of these may be linked to each other via a system bus, network, or other connection mechanism 505.

[0104] The user interface module 501 may be operable to transmit and / or receive data with an external user input / output device. For example, the user interface module 501 may be configured to transmit and / or receive data with a user input device such as a keyboard, keypad, touch screen, presence sensing display, computer mouse, trackball, joystick, camera, voice recognition module, and / or other similar devices. The user interface module 501 may further be configured to provide an output to a user display device, which is currently known or will be developed in the future, such as one or more cathode ray tubes (CRTs), liquid crystal displays, light emitting diodes (LEDs), displays using digital light processing (DLP) technology, printers, light bulbs, and / or other similar devices. Also, the user interface module 501 may be configured to generate an audible output with a speaker, speaker jack, voice output port, voice output device, earphone, and / or other similar devices. The user interface module 501 may further be configured to include one or more haptic devices capable of generating a haptic output such as vibrations and / or other outputs detectable by touch and / or physical contact in the computing device 500. In one embodiment, a GUI for using the computing device 500 may be provided using the user interface module 501.

[0105] The network communication interface module 502 may include one or more wireless interfaces 507 and / or one or more wired interfaces 508 that are configurable to communicate via a network. The wireless interface 507 may include one or more wireless transmitters, receivers, and / or transceivers (e.g., a Bluetooth® transceiver, a Zigbee® transceiver, a Wi-Fi transceiver, a WiMAX® transceiver, and / or other similar types of wireless transceivers configurable to communicate via a wireless network, etc.). The wired interface 508 may include one or more wired transmitters, receivers, and / or transceivers (e.g., an Ethernet® transceiver, a Universal Serial Bus (USB) transceiver, or similar transceivers configurable to communicate via a twisted pair wire, a coaxial cable, an optical fiber link, or other similar physical connections to a wired network, etc.).

[0106] In certain embodiments, the network communication interface module 502 is reliable It can be configured to provide reliable, secure, and / or authenticated communication. For each communication, information for ensuring reliable communication (i.e., guaranteed message delivery) may in some cases be provided as part of the message header and / or footer (e.g., packet / message sequencing information, encapsulation header and / or footer, size / time information, and transmission verification information (such as CRC and / or parity check values, etc.)). The communication can be security protected (e.g., encoded or encrypted) and / or decoded using one or more cryptographic protocols and / or algorithms. Examples of such cryptographic protocols and / or algorithms include, but are not limited to, DES, AES, RSA, Diffie-Hellman, and / or DSA. Other cryptographic protocols and / or algorithms may be used similarly or in addition to those listed above to security protect (and then decode) the communication.

[0107] One or more processors 503 may include one or more general-purpose processors and / or one or more special-purpose processors (such as digital signal processors, graphics processing units, application-specific integrated circuits, etc.). One or more processors 503 may be configured to execute computer-readable program instructions 506 included in data storage 504 and / or other instructions described herein.

[0108] Data storage 504 may include one or more computer-readable storage media that can be read and / or accessed by at least one of the one or more processors 503. The one or more computer-readable storage media may include volatile and / or non-volatile storage components such as optical, magnetic, organic, or other memory or disk storage. These storage components may be integrated, in whole or in part, with at least one of the one or more processors 503. In certain embodiments, data storage 504 may be implemented using a single physical device (e.g., one optical, magnetic, organic, or other memory or disk storage device). In other embodiments, however, data storage 504 may be implemented using two or more physical devices.

[0109] Data storage 504 may include computer-readable program instructions 506 and, optionally, other data. In certain embodiments, data storage 504 may further include storage necessary to perform at least a portion of the methods, scenarios, and techniques described herein, and / or at least a portion of the functionality of the devices and networks described herein.

[0110] In certain embodiments, computing device 500 may include one or more sensors 520. Sensors 520 may be configured to measure conditions in the environment of computing device 500 and provide data regarding that environment. For example, sensors 520 may include one or more of the following.

[0111] (i) An identification sensor that identifies other objects and / or devices. For example, but not limited to, an RFID reader, a proximity sensor, a one-dimensional barcode reader, a two-dimensional barcode (e.g., Quick Response (QR) code) reader, and a laser tracker. The identification sensor may be configured to read identifiers such as RFID tags, barcodes, QR codes (registered trademarks), and / or other devices and / or objects configured to be readable, and provide at least identification information.

[0112] (ii) A sensor that measures the position and / or movement of the computing device 500. For example, but not limited to, an inclination sensor, a gyroscope, an accelerometer, a Doppler sensor, a Global Positioning System (GPS) device, a sonar sensor, a radar device, a laser displacement sensor, and a compass. For example, but not limited to, an infrared sensor, an optical sensor, a light sensor, a camera, a biosensor, a biometric sensor, a capacitance sensor, a touch sensor, a temperature sensor, a wireless sensor, a radio sensor, a motion sensor, a microphone, a sound sensor, an ultrasonic sensor, and / or a smoke sensor.

[0113] (iii) An environmental sensor that acquires data indicating the environment of the computing device 500. For example, but not limited to, an infrared sensor, an optical sensor, a light sensor, a camera, a biosensor, a biometric sensor, a capacitance sensor, a touch sensor, a temperature sensor, a wireless sensor, a radio sensor, a motion sensor, a microphone, a sound sensor, an ultrasonic sensor, and / or a smoke sensor.

[0114] (iv) A force sensor that measures one or more forces acting on the computing device 500 (e.g., inertial force and / or gravity). For example, but not limited to, one or more sensors that measure force, torque, ground force, friction in one or more dimensions, and / or a zero moment point (ZMP) sensor that identifies the ZMP and / or position of the ZMP.

[0115] There may be many other examples of the sensors 520. The present disclosure should not be limited to the specific embodiments described in this application example. These specific embodiments are for the purpose of explaining various aspects. As will be apparent to those skilled in the art, numerous changes and modifications are possible without departing from the spirit and scope of the present disclosure. In addition to those enumerated in the present disclosure, methods and apparatuses that are functionally equivalent within the scope of the present disclosure will be apparent to those skilled in the art from the above description. Such changes and modifications are also intended to be within the scope of the appended claims.

[0116] In the above detailed description, various features and functions of the disclosed systems, devices, and methods have been described with reference to the accompanying drawings. In these drawings, unless the context indicates otherwise, like reference numerals typically identify like components. The exemplary embodiments, drawings, and claims described in the detailed description are not intended to be limiting. It is also possible to utilize other embodiments and make other changes without departing from the spirit or scope of the subject matter presented herein. It will be readily understood that the aspects of the present disclosure generally described herein and shown in the drawings can be arranged, substituted, combined, separated, and designed in a variety of different configurations. All of these are explicitly contemplated herein.

[0117] With respect to any or all of the ladder diagrams, scenarios, and flowcharts shown in the drawings and described herein, each block and / or communication may represent the processing of information and / or the transmission of information according to an exemplary embodiment. Alternative embodiments are also included within the scope of these exemplary embodiments. In alternative embodiments, for example, functions described as blocks, transmissions, communications, requests, responses, and / or messages may be performed in an order different from that shown or described, depending on the functions involved (including being performed substantially simultaneously or in reverse order). Further, the blocks and / or functions used in any of the ladder diagrams, scenarios, and flowcharts described herein may be more or fewer. Also, these ladder diagrams, scenarios, and flowcharts may be combined with each other, in part or in whole.

[0118] A block representing the processing of information may correspond to a circuit configured to perform a specific logical function of a method or technique described herein. Alternatively or additionally, a block representing the processing of information may correspond to a part of a module, segment, or program code (including related data). The program code may include one or more instructions executable by a processor to implement a specific logical function or operation in the above method or technique. The program code and / or related data may be stored in any type of computer-readable medium, such as a storage device including a disk, hard drive, or other storage medium.

[0119] A computer-readable medium can include a non-transitory computer-readable medium, such as a register memory, a processor cache, and a random access memory (RAM), which are non-transitory computer-readable media for storing short-term data. The computer-readable medium can include a non-transitory computer-readable medium for storing program code and / or data for a longer period, such as a read-only memory (ROM), an optical or magnetic disk, a secondary or persistent long-term storage device such as a compact disc read-only memory (CD-ROM). The computer-readable medium can be any other volatile or non-volatile memory system. The computer-readable medium can be regarded, for example, as a computer-readable storage medium, i.e., a tangible storage device.

[0120] Furthermore, one or more blocks representing information transmission may correspond to information transmission between software modules and / or between hardware modules of the same physical device. On the other hand, other information transmissions may be performed between software modules and / or between hardware modules of different physical devices.

[0121] Although various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are presented for purposes of illustration and not of limitation. The true scope is indicated by the following claims.

Claims

1. A method comprising: receiving, by a remote device, from a user device, a request for candidate data for autofilling for an application displayed on a user interface of the user device, the request including a subset of content included in the user interface, the subset of content not including user-specific information and including information associated with a view hierarchy of the user device, the method further comprising: determining, by the remote device, based on the view hierarchy and the subset of content included in the user interface, one or more fillable fields of one or more text input fields included in the user interface of the user device; determining, by the remote device, a data set based on the subset of content included in the user interface and the one or more fillable fields, the data set including one or more candidate values corresponding to the one or more fillable fields of the one or more text input fields included in the user interface, the method further comprising: transmitting, by the remote device, a preliminary communication signal including a secure permission prompt for extracting user authentication data; receiving, by the remote device, a confirmation signal including the user authentication data; transmitting, by the remote device to the user device, a response to the request for the candidate data based on the received confirmation signal, the response including the determined data set including the one or more candidate values for inputting into the one or more fillable fields of the one or more text input fields included in the user interface.

2. The method of claim 1, wherein the data set further includes a data set identifier included in the user interface, and selecting the data set identifier causes the corresponding one or more candidate values to be filled into the one or more text input fields included in the user interface.

3. The method according to claim 2, further comprising the step of transmitting an entry indicator associated with the remote device, wherein the entry indicator is included in the user interface of the user device.

4. The method according to claim 3, wherein the entry indicator is associated with a graphic corresponding to the remote device.

5. The response from the remote device includes a plurality of data sets, each data set including a respective data set identifier and one or more candidate values corresponding to one or more text input fields included in the user interface, wherein each respective data set identifier is included in the user interface. The method according to claim 2.

6. The method according to claim 5, wherein an entry indicator is displayed in the text input field in which one or more candidate values corresponding to a preliminary selection of a data set identifier from among the respective data set identifiers can be entered.

7. The method according to claim 5, wherein the entry indicator is included in the user interface within the text input field in which one or more candidate values corresponding to a selected data set identifier can be entered.

8. Each secure permission prompt is generated based on the selection of the data set identifier, each secure permission prompt eliciting a respective secure input communication, and the one or more candidate values corresponding to the selected data set identifier are entered into the one or more text input fields. The method according to claim 5.

9. The method according to claim 5, wherein each respective data set identifier is displayed in a drop-down menu separate from the text input field.

10. The remote device is one of a plurality of remote devices, and the remote device is permitted to receive a request for automatic entry for the application via the user interface. The method according to any one of claims 1 to 9.

11. The method according to any one of claims 1 to 10, wherein the secure permission prompt includes a request for biometric input.

12. The method according to any one of claims 1 to 11, wherein the secure permission prompt includes a request for a card verification code.

13. The secure permission prompt is the method according to any one of claims 1 to 12, including a request for a personal identification number.

14. Further comprising transmitting, from the remote device, a first preliminary communication signal including a dataset identifier; The method according to any one of claims 1 to 13, further comprising receiving, by the remote device, input data indicating a selection of the dataset identifier, wherein the preliminary communication signal is a second preliminary communication signal.

15. The method according to any one of claims 1 to 14, further comprising receiving, by the remote device, one or more values corresponding to one or more text input fields included in the user interface corresponding to a second application, and a confirmed transmission prompt being included in the user interface to receive permission to transmit the one or more values to the remote device.

16. The method according to any one of claims 1 to 15, wherein the step of receiving the request for candidate data is based on the user device detecting activation of the application.

17. The method according to any one of claims 1 to 15, wherein the step of receiving the request for candidate data is based on the user device detecting a selection of a text input field of the application.

18. The method according to any one of claims 1 to 15, wherein the step of receiving the request for candidate data is based on a signal in the user device indicating that a text input field has focus such that a keyboard is included in the user interface.

19. A remote device, One or more processors; A data storage storing instructions that, when executed by the one or more processors, cause the remote device to perform functions, the functions including Receiving, from a user device, a request for candidate data for auto-fill for an application included in the user interface of the user device, the request including a subset of the content included in the user interface, the subset of the content not including information specific to the user and including information associated with the view hierarchy of the user device, the functions further including Based on the view hierarchy and the subset of the content included in the user interface, determining one or more fillable fields of one or more text input fields included in the user interface of the user device; including determining a data set based on the subset of the content included in the user interface and the one or more fillable fields, the data set including one or more candidate values corresponding to the one or more fillable fields of the one or more text input fields included in the user interface, the function further comprising transmitting a preliminary communication signal including a secure permission prompt for eliciting user authentication data; receiving a confirmation signal including the user authentication data; based on the received confirmation signal, transmitting, to the user device, a response to the request for the candidate data, the response including the determined data set including the one or more candidate values for inputting into the one or more fillable fields of the one or more text input fields included in the user interface, a remote device.

20. A computer program including instructions that, when executed by one or more processors, cause the one or more processors to implement the method according to any one of claims 1 to 18.

21. One or more processors; An apparatus storing the computer program according to claim 20.

Citation Information

Patent Citations

  • Content relay device, and its method and program

    JP2004086562A

  • Display control device and program

    JP2016009289A

  • Retrieval and presentation of contact data at an electronic device

    US20130227031A1