IP Library Granted Patent US 12,368,773
Granted Patent B2
US 12,368,773 · App. 18/479,420 · Granted Jul 22, 2025

Cross device application discovery and control

Inventors: Arunjeet Singh (Redmond, WA); John M Sheehan (Somerville, MA); Kunal Gandhi (Redmond, WA); Sean McKenna (Seattle, WA); Akhilesh (Akhil) Kaza (Sammamish, WA); Sameer Tejani (Newcastle, WA)
Assignee: Microsoft Technology Licensing, LLC
H04L67/10G06F9/5044G06F9/5055H04L67/51
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 12,368,773
App. No.
18/479,420
Granted
Jul 22, 2025
Kind
B2
Abstract

Systems and methods cross device application discovery and/or control. Cross device application discovery and/or control can provide for simple detection and activation of applications on remote devices. Cross device application discovery and/or control can provide for the control of remote applications in a master and slave configuration. Responsive to an activation message, an application can execute a task in an application, the task being displayed on a target device. Responsive to an activation message, an application can execute a task in an application on a target device, a task context data for the task being streamed to the source device for presentation on a display. Cross device application discovery and/or control can be enabled on a single operating system, or across a plurality of operating systems.

Claims (75)

1. A computer-implemented method for application discovery, the method comprising:

receiving, at a target device, an application discovery query from a source device;

determining, on the target device, that a level of trust between the target device and the source device is above a threshold trust level;

determining, on the target device, based on a device capability of the target device, that the target device is capable of executing a task;

determining, on the target device, based on an application capability of the target device, that the target device has an application capable of executing the task; and

sending, from the target device, in response to the receiving of the application discovery query, a discovery response message to the source device, the discovery response message being based on determining that the target device is capable of executing the task and has an application capable of executing the task.

2. The method of claim 1 , further comprising:

receiving, at the target device, an application activation message; and

responsive to receiving the application activation message, activating the application on the target device.

3. The method of claim 2 , further comprising:

running, on the target device, a task of the application, wherein the task has associated task context data; and

sending, from the target device, an application response message to the source device, wherein the application response message comprises at least one of:

a notification of the task associated with the application running on the target device; and

the task context data for presentation by the source device.

4. The method of claim 2 , further comprising:

running, on the target device, a task of the application, wherein the task has associated task context data; and

sending, from the target device, an application response message to the source device, wherein the application response message is comprised at least of:

a notification of the task running on the application on the target device; and

a notification of the task context data being presented by the target device.

5. The method of claim 1 , further comprising:

receiving, at the target device, a background task activation message from the source device;

responsive to the receiving the background task activation message, activating a background task on the target device; and

sending, from the target device, a background task response message to the source device.

6. The method of claim 1 , wherein the application capability indicates performance data of the application.

7. The method of claim 1 , wherein the device capability indicates at least one of device memory capability, device speed capability, and device display capability.

8. A target device for application discovery, the target device comprising:

at least one processor; and

memory storing instructions that, when executed by the at least one processor, cause the target device to perform operations comprising:

receiving an application discovery query from a source device;

determining that a level of trust between the target device and the source device is above a threshold trust level;

determining based on a device capability of the target device, that the target device is capable of executing a task;

determining based on an application capability of the target device, that the target device has an application capable of executing the task; and

in response to the receiving of the application discovery query, sending a discovery response message to the source device, the discovery response message being based on determining that the target device is capable of executing the task and has an application capable of executing the task.

9. The target device of claim 8 , wherein the operations further comprise:

receiving an application activation message; and

responsive to receiving the application activation message, activating the application on the target device.

10. The target device of claim 9 , wherein the operations further comprise:

running a task of the application, wherein the task has associated task context data; and

sending an application response message to the source device, wherein the application response message comprises at least one of:

a notification of the task associated with the application running on the target device; and

the task context data for presentation by the source device.

11. The target device of claim 9 , wherein the operations further comprise:

running a task of the application, wherein the task has associated task context data; and

sending an application response message to the source device, wherein the application response message is comprised at least of:

a notification of the task running on the application on the target device; and

a notification of the task context data being presented by the target device.

12. The target device of claim 8 , wherein the operations further comprise:

receiving a background task activation message from the source device;

responsive to the receiving the background task activation message, activating a background task on the target device; and

sending, from the target device, a background task response message to the source device.

13. The target device of claim 8 , wherein the application capability indicates performance data of the application.

14. The target device of claim 8 , wherein the device capability indicates at least one of device memory capability, device speed capability, and device display capability.

15. A source device comprising:

at least one processor; and

memory storing instructions that, when executed by the at least one processor, cause the source device to perform operations comprising:

determining that a level of trust between the source device and a target device is above a threshold trust level;

sending an application discovery query to the target device;

receiving an application discovery response message from of the target device, the application discovery response message comprising:

a device capability of the target device; and

an application capability of an application on the target device; and

processing the application discovery response message to determine a capability of the target device to perform a task.

16. The source device of claim 15 , wherein the device capability comprises at least one of a target device memory; a target device speed; or a target device presentation capability.

17. The source device of claim 15 , wherein operations further comprise:

selecting the target device from a plurality of target devices based on the application discovery response message;

sending an application activation message to the target device to direct the target device to activate an application;

receiving an application activation response message comprising a notification of the application having been activated on the target device; and

controlling the application on the target device from the source device.

18. The source device of claim 17 , wherein the operations further comprise:

receiving task context data from the target device; and

causing the target device to present the task context data.

19. The source device of claim 15 , wherein the operations further comprise:

sending a remote application file associated with the application discovery response message to a remote application file limiter, each of the one or more remote application files being associated with a respective application and specifying the application capability and the device capability.

20. The source device of claim 15 , wherein the operations further comprise:

selecting, via a remote application file limiter, a remote application file of one or more remote application files that are available from the remote application file limiter, the selecting being for at least one of activation or control; and

selecting a remote target device, of the one or more remote target devices, based at least in part on the selected remote application file.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2025
From: SINGH, ARUNJEET; SHEEHAN, JOHN M.; GANDHI, KUNAL; MCKENNA, SEAN; KAZA, AKHILESH (AKHIL); TEJANI, SAMEER
To: MICROSOFT CORPORATION
Reel/Frame 071497/0190 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2025
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 071497/0470 →
Continuity (6)
Continuation 17575157 · Jan 13, 2022
Continuation 16940155 · Jul 27, 2020
Continuation 15630374 · Jun 22, 2017
Continuation 14508801 · Oct 7, 2014
Provisional Application 62049979 · Sep 12, 2014
Related Publication 20240031426A1 · Jan 25, 2024
References Cited (7)
US 20050160289A1 · Shay · 2005 [cited by examiner]
US 20060168213A1 · Richardson · 2006 [cited by examiner]
US 20100323681A1 · Corda · 2010 [cited by examiner]
Communication under Rule 71(3) EPC Received for European Application No. 15772089.7, mailed on May 14, 2018, 05 pages. [cited by applicant]
Decision to grant a European patent pursuant to Article 97(1) Received for European Application No. 15772089.7, mailed on Sep. 27, 2018, 02 pages. [cited by applicant]
Rejection Decision Received for Chinese Application No. 201580049159.5, mailed on Oct. 27, 2020, 10 pages. [cited by applicant]
Second Office Action Received for Chinese Application No. 201580049159.5, mailed on Jun. 9, 2020, 32 pages (English Translation Provided). [cited by applicant]