# US 12,001,878 B2 · Auto-recovery for AR wearable devices

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,001,878 B2
- Document ID: US12001878B2
- Status: Granted
- Kind: B2
- Application number: 17/831,949
- Filed: 2022-06-03
- Published: 2023-12-07
- Granted: 2024-06-04
- Earliest claimed: 2022-06-03
- Assignees: Snap Inc.
- Applicants: Snap Inc.
- Inventors: Piotr Gurgul
- Web page: https://patentgrep.com/patent/US12001878B2

## CPC

- G06F 9/4856: {resumption being on a different machine, e.g. task migration, virtual machine migration (G06F9/5088 takes precedence)}
- G02B 27/017: {Head mounted}
- G02B 27/0172: {characterised by optical features}
- G06F 3/14: Digital output to display device {; Cooperation and interconnection of the display device with other functional units}
- G06F 11/0742: {in a data processing system embedded in a mobile device, e.g. mobile phones, handheld devices}
- G06F 11/0757: {by exceeding a time limit, i.e. time-out, e.g. watchdogs}
- G06F 11/0793: {Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40)}
- G02B 2027/014: {comprising information/image processing systems}
- G02B 2027/0178: {Eyeglass type (eyeglass details G02C)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G02B: OPTICAL ELEMENTS, SYSTEMS OR APPARATUS

## Abstract

Systems, methods, and computer readable media for auto-recovery of an augmented reality (AR) wearable device are disclosed. A pass-through application is invoked as a background process and an application is invoked as a foreground process. The pass-through application includes an on-resume procedure that is called if the operating system or interpreter determines that the foreground process is unresponsive. The on-resume procedure restarts the application as the foreground process and may first reboot the AR wearable device. The pass-through application remains transparent to the user by not displaying output on the display of the AR wearable device. Additionally, an uncaught exception handler is registered with the operating system to be called in the event that an exception occurs that does not have a handler. The exception handler restarts the application as the foreground process and may first reboot the AR wearable device.

## Claims

### Claim 1

A method performed on an augmented reality (AR) wearable device, the method comprising:
registering an uncaught exception handler;
invoking a pass-through application as a background process, the pass-through application comprising an on-resume procedure;
invoking an application as a foreground process;
in response to detecting the application is unresponsive,
invoking the on-resume procedure to switch the pass-through application as the foreground process from the background process, and
causing, by the on-resume procedure, the application to be restarted as the foreground process and the pass-through application to be switched as the background process from the foreground process; and
in response to an exception without an exception handler,
invoking the uncaught exception handler as the foreground process,
causing, by the uncaught exception handler, a process associated with the application to be terminated, and
causing, by the uncaught exception handler, the application to be restarted as the foreground process.

### Claim 2 (depends on 1)

The method of claim 1 wherein the application causes an AR output to be displayed on a display of the AR wearable device.

### Claim 3 (depends on 2)

The method of claim 2 wherein the method further comprises:
the pass-through application refraining from causing output to be displayed on the display of the AR wearable device or preventing the pass-through application from displaying output on the display of the AR wearable device.

### Claim 4 (depends on 1)

The method of claim 1 further comprising:
in response to the application terminating without an exception handler being invoked, causing, by the uncaught exception handler, the application to be invoked and to become the foreground process and the pass-through application to become the background process.

### Claim 5 (depends on 1)

The method of claim 1,
wherein in response to the exception without an exception handler further comprises:
creating, by the uncaught exception handler, a pending intent to restart the application by setting a flag associated with a process associated with the application, the flag indicating the application is to be restarted if the process associated with the application is terminated.

### Claim 6 (depends on 5)

The method of claim 5 further comprising:
in response to the flag associated with the process being set, restarting the application as the foreground process.

### Claim 7 (depends on 1)

The method of claim 1 further comprising:
logging in a memory of the AR wearable device a crash detection associated with a time of the crash detection.

### Claim 8 (depends on 7)

The method of claim 7 further comprising:
in response to a number of crash detections exceeding a first threshold number of crash detections within a time period, causing, by the uncaught exception handler, the AR wearable device to reboot.

### Claim 9 (depends on 1)

The method of claim 1 wherein the background process is a first background process, and wherein the method further comprise:
invoking a monitor process as a second background process;
invoking the monitor process as the foreground process and the application as the first background process;
in response to the monitor process detecting that the application is unresponsive, invoking the on-resume procedure to switch the pass-through application as the foreground process from the first background process and causing the monitor process to become the second background process, causing, by the on-resume procedure, the application to be restarted as the foreground process and the pass-through application to be switched as the first background process from the foreground process, otherwise invoking the application as the foreground process and switching the monitor process from the foreground process to the background process.

### Claim 10 (depends on 1)

The method of claim 1 wherein the AR wearable device is AR glasses.

### Claim 11 (depends on 1)

The method of claim 1 wherein the pass-through application causes a translucent output to be displayed on a display of the AR wearable device.

### Claim 12 (depends on 1)

The method of claim 1 wherein the invoking the on-resume procedure further comprises:
detecting that the application is unresponsive.

### Claim 13 (depends on 1)

The method of claim 1 wherein the invoking the on-resume procedure further comprises:
detecting that a duration of time since the application has caused output to be displayed on a display of the AR wearable device transgresses a threshold period of time.

### Claim 14

An augmented reality (AR) wearable device comprising:
one or more processors; and
a memory storing instructions that, when executed by the one or more processors, configure the AR wearable device to perform operations comprising:
registering an uncaught exception handler;
invoking a pass-through application as a background process, the pass-through application comprising an on-resume procedure;
invoking an application as a foreground process;
in response to detecting the application is unresponsive,
invoking the on-resume procedure to switch the pass-through application as the foreground process from the background process, and
causing, by the on-resume procedure, the application to be restarted as the foreground process and the pass-through application to be switched as the background process from the foreground process; and
in response to an exception without an exception handler,
invoking the uncaught exception handler as the foreground process,
causing, by the uncaught exception handler, a process associated with the application to be terminated, and
causing, by the uncaught exception handler, the application to be restarted as the foreground process.

### Claim 15 (depends on 14)

The AR wearable device of claim 14 wherein the application causes AR output to be displayed on a display of the AR wearable device.

### Claim 16 (depends on 14)

The AR wearable device of claim 14, wherein the pass-through application refrains from causing output to be displayed on a display of the AR wearable device.

### Claim 17

A non-transitory computer-readable storage medium, the computer-readable storage medium including instructions that when executed by a virtual reality (AR) wearable device, cause the AR wearable device to perform operations comprising:
registering an uncaught exception handler;
invoking a pass-through application as a background process, the pass-through application comprising an on-resume procedure;
invoking an application as a foreground process;
in response to detecting the application is unresponsive,
invoking the on-resume procedure to switch the pass-through application as the foreground process from the background process, and
causing, by the on-resume procedure, the application to be restarted as the foreground process and the pass-through application to be switched as the background process from the foreground process; and
in response to an exception without an exception handler,
invoking the uncaught exception handler as the foreground process,
causing, by the uncaught exception handler, a process associated with the application to be terminated, and
causing, by the uncaught exception handler, the application to be restarted as the foreground process.

### Claim 18 (depends on 17)

The non-transitory computer-readable storage medium of claim 17 wherein
the application causes AR output to be displayed on a display of the AR wearable device.

### Claim 19 (depends on 17)

The non-transitory computer-readable storage medium of claim 17 wherein the pass-through application refrains from causing output to be displayed on a display of the AR wearable device.
