IP Library Granted Patent US 10,152,987
Granted Patent B2
US 10,152,987 · App. 14/311,995 · Granted Dec 11, 2018

Remote invocation of mobile device actions

Inventors: Omer Bar-or (Mountain View, CA); Scott B. Huffman (Redwood City, CA); Ida Mayer (Sunnyvale, CA); Arthur E. Blume (Melrose, MA); Pravir K. Gupta (Mountain View, CA)
Assignee: Google LLC
G10L25/48G06F9/4445G06F9/452G06F9/54G06F9/4806G06F2209/482G06F2209/549
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,152,987
App. No.
14/311,995
Granted
Dec 11, 2018
Kind
B2
Abstract

Systems, methods and apparatus for invoking actions at a second user device from a first user device. A method includes determining that a first user device has an associated second user device; accessing specification data that specifies a set of user device actions that the second user device is configured to perform; receiving command inputs for the first user device; for each command input, determining whether the command input resolves to one of the user device actions; for each command input not determined to resolve to any of the user device actions, causing the command input to be processed at the first user device; and for each command input determined to resolve one of the user device actions causing the first user device to display in a user interface a dialog by which a user may either accept or deny invoking the user device action at the second user device.

Claims (73)

1. A computer-implemented method performed by a data processing apparatus, comprising:

determining, at a first user device, that the first user device has an associated second user device that is separate from the first user device;

accessing, at the first user device, specification data for the second user device that specifies a set of user device actions that the second user device is configured to perform, wherein each user device action is an action performed by a respective application installed on the second user device;

receiving, at the first user device, command inputs for the first user device, each command input being a set of terms input by a user of the first user device;

for each command input, determining, at the first user device, whether the command input resolves to one of the user device actions of the set of user device actions for the second user device, the one of the user device actions being an action that can be performed by a respective application installed on the second user device; and

for each command input determined to resolve one of the user device actions at the second user device:

causing the first user device to generate and display a dialog in a user interface of the first user device by which a user of the first user device may either accept or deny invoking the user device action of the respective application at the second user device in response to the command input;

in response to an acceptance, through the dialog and by the user at the first user device, to invoke the user action at the second user device, causing the second user device to invoke the user device action of the respective application installed on the second user device and process the command input as an input for the user device action, wherein causing the second user device to invoke the user device action and process the command input as an input for the user device action comprises:

generating, at the first user device, a command communication that includes data that, when processed by an application programming interface on the second user device, causes the second user device to invoke the user device action and process the command input as the input for the user device action; and

sending, from the first user device, the command communication to the second user device; and

in response to a denial, through the dialog and by the user at the first user device, to invoke the user device action at the second user device, causing the first user device to invoke the user device action of the respective application installed on the first user device and process the command input as an input for the user device action.

2. The computer implemented method of claim 1 , further comprising, for each command input not determined to resolve to any of the user device actions, causing the command input to be processed at the first user device.

3. The computer-implemented method of claim 1 , wherein the second user device is a smart phone.

4. A computer-implemented method performed by a data processing apparatus, comprising:

determining, at a server computer separate from a first user device and a second user device, that the first user device is associated with the second user device that is separate from the first user device;

accessing, at the server computer, specification data for the second user device that specifies a set of user device actions that the second user device is configured to perform, wherein each user device action is an action performed by a respective application installed on the second user device;

receiving, at the server computer, command inputs input at the first user device for the first user device, each command input being a set of terms input by a user of the first user device;

for each command input, determining, at the server computer, whether the command input resolves to one of the user device actions of the set of user device actions for the second user device, the one of the user device actions being an action that can be performed by a respective application installed on the second user device; and

for each command input determined to resolve one of the user device actions at the second user device:

causing the first user device to generate and display a dialog in a user interface of the first user device by which a user of the first user device may either accept or deny invoking the user device action of the respective application at the second user device in response to the command input;

in response to an acceptance, through the dialog and by the user at the first user device, to invoke the user device action at the second user device, causing the second user device to invoke the user device action of the respective application installed on the second user device and process the command input as an input for the user device action, wherein causing the second user device to invoke the user device action and process the command input as an input for the user device action comprises:

generating, at the first user device, a command communication that includes data that, when processed by an application programming interface on the second user device, causes the second user device to invoke the user device action and process the command input as the input for the user device action; and

sending, from the first user device, the command communication to the second user device; and

in response to a denial, through the dialog and by the user at the first user device, to invoke the user device action at the second user device, causing the first user device to invoke the user device action of the respective application installed on the second user device and process the command input as an input for the user device action; and

for each command input not determined to resolve to any of the user device actions, causing the first user device to invoke the user device action and process the command input as an input for the user device action.

5. The computer-implemented method of claim 1 , wherein the command inputs are voice command sentences.

6. A computer-implemented method performed by a data processing apparatus, comprising:

determining that a first user device has an associated second user device that is separate from the first user device;

accessing specification data for the second user device that specifies a set of user device actions that the second user device is configured to perform, wherein each user device action is an action performed by a respective application installed on the second user device;

receiving command inputs for the first user device, each command input being a set of terms input by a user of the first user device;

for each command input, determining whether the command input resolves to one of the user device actions of the set of user device actions for the second user device, the one of the user device actions being an action that can be performed by a respective application installed on the second user device; and

for each command input determined to resolve one of the user device actions at the second user device:

causing the first user device to generate and display a dialog in a user interface of the first user device by which a user of the first user device may either accept or deny invoking the user device action of the respective application at the second user device in response to the command input;

in response to an acceptance, through the dialog and by the user at the first user device, to invoke the user action at the second user device, causing the second user device to invoke the user device action of the respective application installed on the second user device and process the command input as an input for the user device action, wherein causing the second user device to invoke the user device action and process the command input as an input for the user device action comprises:

generating, at the first user device, a command communication that includes data that, when processed by an application programming interface on the second user device, causes the second user device to invoke the user device action and process the command input as the input for the user device action; and

sending, from the first user device, the command communication to the second user device; and

in response to a denial, through the dialog and by the user at the first user device, to invoke the user device action at the second user device, causing the command input to be processed at the first user device to invoke the user device action of the respective application installed on the first user device at the first user device; and

receiving, for the second user device, update data for an update to the specification data for the second user device, the update data specifying a change to the set of user device actions that the second user device is configured to perform; and

updating the specification data for the second user device to reflect the change to the set of user device actions that the second user device is configured to perform.

7. A system, comprising:

a user device comprising a data processing apparatus and a computer storage apparatus in data communication with the data processing apparatus and storing instructions executable by the data processing apparatus and that upon such execution cause the data processing apparatus to perform operations comprising:

determining, at a first user device, that the first user device has an associated second user device that is separate from the first user device;

accessing, at the first user device, specification data for the second user device that specifies a set of user device actions that the second user device is configured to perform, wherein each user device action is an action performed by a respective application installed on the second user device; receiving, at the first user device, command inputs for the first user device, each command input being a set of terms input by a user of the first user device;

for each command input, determining, at the first user device, whether the command input resolves to one of the user device actions of the set of user device actions for the second user device, the one of the user device actions being an action that can be performed by a respective application installed on the second user device; and

for each command input determined to resolve one of the user device actions at the second user device:

causing the first user device to generate and display a dialog in a user interface of the first user device by which a user of the first user device may either accept or deny invoking the user device action of the respective application at the second user device in response to the command input;

in response to an acceptance, through the dialog and by the user at the first user device, to invoke the user action at the second user device, causing the second user device to invoke the user device action of the respective application installed on the second user device and process the command input as an input for the user device action, wherein causing the second user device to invoke the user device action and process the command input as an input for the user device action comprises:

generating, at the first user device, a command communication that includes data that, when processed by an application programming interface on the second user device, causes the second user device to invoke the user device action and process the command input as the input for the user device action; and

sending, from the first user device, the command communication to the second user device; and

in response to a denial, through the dialog and by the user at the first user device, to invoke the user device action at the second user device, causing the first user device to invoke the user device action of the respective application installed on the first user device and process the command input as an input for the user device action.

8. The system of claim 7 , the operations further comprising for each command input no determined to resolve to any of the user device actions, causing the command input to be processed at the first user device.

9. The system of claim 7 , wherein the second user device is a smart phone.

10. The system of claim 7 , the operations further comprising:

receiving, for the second user device, update data for an update to the specification data for the second user device, the update data specifying a change to the set of user device actions that the second user device is configured to perform; and

updating the specification data for the second user device to reflect the change to the set of user device actions that the second user device is configured to perform.

11. A non-transitory computer readable storage medium in data communication with a data processing apparatus and storing instructions executable by the data processing apparatus and upon such execution cause the data processing to perform operations comprising:

determining, at a first user device, that the first user device has an associated second user device that is separate from the first user device;

accessing, at the first user device, specification data for the second user device that specifies a set of user device actions that the second user device is configured to perform, wherein each user device action is an action performed by a respective application installed on the second user device; receiving, at the first user device, command inputs for the first user device, each command input being a set of terms input by a user of the first user device;

for each command input, determining, at the first user device, whether the command input resolves to one of the user device actions of the set of user device actions for the second user device, the one of the user device actions being an action that can be performed by a respective application installed on the second user device; and

for each command input determined to resolve one of the user device actions at the second user device: causing the first user device to generate and display a dialog in a user interface of the first user device by which a user of the first user device may either accept or deny invoking the user device action of the respective application at the second user device in response to the command input;

in response to an acceptance, through the dialog and by the user at the first user device, to invoke the user action at the second user device, causing the second user device to invoke the user device action of the respective application installed on the second user device and process the command input as an input for the user device action, wherein causing the second user device to invoke the user device action and process the command input as an input for the user device action comprises:

generating, at the first user device, a command communication that includes data that, when processed by an application programming interface on the second user device, causes the second user device to invoke the user device action and process the command input as the input for the user device action; and

sending, from the first user device, the command communication to the second user device; and

in response to a denial, through the dialog and by the user at the first user device, to invoke the user device action at the second user device, causing the first user device to invoke the user device action of the respective application installed on the first user device and process the command input as an input for the user device action.

12. The computer implemented method of claim 1 , further comprising:

determining whether each command input resolves two or more of the user device actions of the set of user device actions for the second user device; and

for each command input determined to resolve two or more of the user device actions at the second user device and prior to causing the first user device to generate and display the dialog in the user interface of the first user device, determining a likelihood of a most likely action to be performed of the two or more of the user device actions, wherein the user device action to be displayed in the dialog in the user interface in the first device comprises the most likely action.

13. The computer-implemented method of claim 4 , further comprising:

determining whether each command input resolves two or more of the user device actions of the set of user device actions for the second user device; and

for each command input determined to resolve two or more of the user device actions at the second user device and prior to causing the first user device to generate and display the dialog in the user interface of the first user device, determining a likelihood of a most likely action to be performed of the two or more of the user device actions, wherein the user device action to be displayed in the dialog in the user interface in the first device comprises the most likely action.

14. The system of claim 7 , the operations further comprising:

determining whether each command input resolves two or more of the user device actions of the set of user device actions for the second user device; and

for each command input determined to resolve two or more of the user device actions at the second user device and prior to causing the first user device to generate and display the dialog in the user interface of the first user device, determining a likelihood of a most likely action to be performed of the two or more of the user device actions, wherein the user device action to be displayed in the dialog in the user interface in the first device comprises the most likely action.

Assignments (2)
CHANGE OF NAME Recorded Oct 20, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044567/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2014
From: BAR-OR, OMER; HUFFMAN, SCOTT B.; MAYER, IDA; BLUME, ARTHUR E.; GUPTA, PRAVIR K.
To: GOOGLE INC.
Reel/Frame 033587/0757 →
Continuity (1)
Related Publication 20150371664A1 · Dec 24, 2015
Cited By (1)
US 12,243,554