KIOSK mode for mobile device resource optimization

By adopting resource-optimized kiosk mode on AR devices, a single AR application runs with a minimum service set, solving the problems of insufficient responsiveness and poor user experience caused by resource limitation of AR devices, achieving longer experience duration and higher responsiveness.

CN119895382APending Publication Date: 2025-04-25SNAP INC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202380066848.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-09-21
Filing Date
2023-07-31
Publication Date
2025-04-25

AI Technical Summary

Technical Problem

Existing AR devices (such as wearable glasses devices) have insufficient responsiveness and poor user experience due to resource limitations (such as battery life, memory, Internet access quality, etc.).

Method used

Using resource-optimized kiosk mode, a single AR application runs with the smallest set of services required, extending experience duration and improving responsiveness by reducing battery usage, memory usage, and power consumption.

Benefits of technology

Extend the experience duration of the AR device, reduces the chance of battery heating and damage, reduces memory usage, and improves the responsiveness of the AR device.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119895382A_ABST
    Figure CN119895382A_ABST
Patent Text Reader

Abstract

A resource optimized kiosk mode that improves the mobile experience of a creator and a user of a mobile augmented reality (AR) enabled wearable eyewear device. The eyewear device enters a kiosk mode by receiving a kiosk mode request for an application and, in response to the request, determining which services and application programming interfaces (APIs) are required to execute a selected application. The determined service required to execute the selected application and the identification of the API are stored, and the eyewear device is restarted. Upon reboot, the selected application is launched, and only the identified services and APIs are enabled. To determine which services and APIs are needed to execute the selected application, metadata may be associated with the selected application that specifies the services and / or APIs that the selected application needs to use when operating.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to U.S. application serial number 17 / 949,500, filed on September 21, 2022, the contents of which are incorporated herein by reference in their entirety. Technical Field

[0003] The present disclosure relates to mobile devices. More specifically, but not by way of limitation, the present disclosure describes techniques for providing a resource-optimized application kiosk mode for resource-limited mobile devices, such as wearable eyewear devices enabled with augmented reality (AR). Background Art

[0004] AR devices (such as wearable eyewear devices) are similar to mobile phones, but are typically more limited in available resources (battery life, thermal stress, memory, quality of Internet access, location data) and user input (no keyboard, trackpad, mouse, or touchscreen). Such resource limitations restrict the responsiveness of AR devices and the experiences available to content creators and users of such devices. BRIEF DESCRIPTION OF THE DRAWINGS

[0005] The features of the various embodiments disclosed will be readily understood from the following detailed description, in which reference is made to the accompanying drawings. In the description and throughout the several views of the accompanying drawings, reference numerals are used with each element. When multiple similar elements are present, a single reference numeral may be assigned to the similar elements.

[0006] Unless otherwise noted, the various elements shown in the figures are not drawn to scale. For clarity, the sizes of various elements may be enlarged or reduced. Several figures depict one or more embodiments and are presented by way of example only and should not be construed as limiting. The drawings include the following:

[0007] Figure 1A is a side view of an example eyewear device including an optical assembly having an image display;

[0008] Figure 1B yes Figure 1A a top cross-sectional view of the optical components and electronics in a portion of the eyewear device shown;

[0009] Figures 2A-2D is a rear view of an example eyewear device depicting an image display;

[0010] Figure 3 is a block diagram illustrating an example of capturing visible light using the example eyewear device shown in any of the previous figures;

[0011] Figure 4 is a system block diagram of an example eyewear device;

[0012] Figure 5 is configured with Figure 4 A block diagram of electronic components of a mobile device for use with the system;

[0013] Figure 6 yes Figure 4 a block diagram of an example backend server system of the type shown;

[0014] Figure 7 is a communication diagram for establishing a resource-constrained kiosk mode between a mobile device and an eyewear device in an example configuration; and

[0015] Figure 8 is a flow chart of a method for setting a resource-constrained kiosk mode on an AR-enabled eyewear device using a mobile application of an associated mobile device in an example configuration. DETAILED DESCRIPTION

[0016] A resource-optimized kiosk mode is described that improves the mobile experience for content creators and users of mobile devices, such as augmented reality (AR)-enabled wearable eyewear devices. The resource-optimized kiosk mode enables a single AR application (e.g., Implemented in SPECTACLES TM The filters shown above, both available from Snap, Inc. of Santa Monica, California) are able to run with a minimal set of services required for AR applications to extend the duration of the experience due to reduced power usage, reduce the chance of battery heating and / or damage, reduce memory usage, and improve the responsiveness of mobile devices (such as AR-enabled glasses devices).

[0017] Mobile devices such as AR-enabled glasses devices are typically designed for a variety of applications. Typical operating systems for such glasses devices support general-purpose applications and therefore assume the possibility of context switching. This results in keeping functions running when they may be needed. Therefore, the operating system of a conventional AR-enabled glasses device typically always runs multiple services that provide different application programming interfaces (APIs) and features, even when the AR-enabled glasses device is running a limited number of services and APIs. This results in battery consumption and exhaustion of available resources. Even when the AR-enabled glasses device is running in kiosk mode (the kiosk mode restricts the user from running anything other than one or more specific groups of applications), numerous background services and APIs are still running, each of which affects power and memory usage, and therefore affects the responsiveness of the AR-enabled glasses device.

[0018] The kiosk mode as described herein enables a user of a mobile device (such as an AR-enabled eyewear device) to exclusively run a selected AR application (e.g., a filter) without any unnecessary background services or APIs. Once the kiosk mode is turned on via the paired mobile device and the eyewear device is restarted, the selected AR application is directly opened and shown to the user. The user is not allowed to exit the AR application (e.g., navigate to a dial / menu to make another selection) or switch to another AR application. Thus, the selected AR application is "locked" and is the only AR application available to the user. Use cases such as kiosk mode include, among others:

[0019] -Distribute AR-enabled eyewear devices with a locked guide AR app to museum visitors;

[0020] -Distributing AR-enabled eyewear devices with a locked menu card AR app to restaurant patrons; and

[0021] -Distribute AR-enabled eyewear devices with locked promotional AR apps to trade show booth visitors.

[0022] Therefore, the systems and methods described herein enable a mobile device such as an AR-enabled eyewear device to run a single AR application (e.g., a filter) with the minimum set of services required to extend the duration of the experience by reducing battery usage, reducing the chance of battery heating and / or damage, reducing memory usage, improving the responsiveness of the AR-enabled eyewear device, and unlocking applications that require more resources and may not be able to run when the operating system retains its normal amount of resources. To this end, an indication (e.g., metadata) is provided that identifies the services and APIs that a specific AR application (e.g., a filter) uses and depends on to operate. The indication makes it possible to restart the operating system of the eyewear device and shut down those services that will not be needed to execute the AR application during operation of the AR-enabled eyewear device in kiosk mode.

[0023] In an example configuration, the eyewear device is configured in kiosk mode by receiving a request to enter kiosk mode for a selected application and determining, in response to the request, which services and application programming interfaces (APIs) are required to execute the selected application. Identifications of the services and APIs determined to be required to execute the selected application are stored, and the eyewear device is restarted. After restarting, the selected application is turned on, and only those services and APIs identified by the identification are enabled to execute during operation of the selected application in kiosk mode. In the example configuration, determining which services and APIs are required to execute the selected application includes: reading metadata associated with the selected application, the metadata specifying at least one of the services or APIs that the selected application needs to use when operating. Determining which services and APIs are required to execute the selected application may also include: parsing the metadata of the selected application to find a service / API metadata declaration that identifies at least one of the services or APIs required to execute the selected application, and storing the service / API metadata declaration as an identification. In an example configuration, enabling only those services that require APIs at runtime may include reading service / API metadata declarations stored in storage and, after reboot, using the service / API metadata to determine services and APIs to execute for selected applications when kiosk mode is turned on.

[0024] In an example configuration, when kiosk mode has been selected and the selected application does not include a service / API metadata declaration, a warning message may be presented on the paired mobile device stating that the selected application is not optimized for kiosk mode. The eyeglass device may then default to running all system services and APIs of the eyeglass device as if not in kiosk mode.

[0025] The following detailed description includes systems, methods, techniques, instruction sequences, and computer program products that illustrate the examples set forth in this disclosure. In order to provide a thorough understanding of the disclosed subject matter and its related teachings, many details and examples are included. However, those skilled in the relevant art can understand how to apply the related teachings without these details. The various aspects of the disclosed subject matter are not limited to the specific devices, systems, and methods described, because the related teachings can be applied or practiced in various ways. The terms and nomenclature used herein are only used for the purpose of describing specific aspects and are not intended to be limiting. In general, well-known instruction instances, protocols, structures, and techniques are not necessarily shown in detail.

[0026] As used herein, the terms "connect," "connected," "coupled," and "coupled" refer to any logical, optical, physical, or electrical connection, including links that transmit electrical or magnetic signals generated or supplied by one system element to another coupled or connected system element, etc. Unless otherwise specified, coupled or connected elements or devices are not necessarily directly connected to each other, and may be separated by intermediate components, elements, or communication media, one or more of which can modify, manipulate, or carry electrical signals. The term "on" refers to being directly supported by an element, or indirectly supported by an element through another element that is integrated into or supported by the element.

[0027] Additional objects, advantages and novel features of the examples will be set forth in part in the following description and in part will become apparent to those skilled in the art upon examination of the following and accompanying drawings, or may be learned by production or operation of the examples. The objects and advantages of the subject matter may be realized and obtained by means of the methods, tools and combinations particularly pointed out in the appended claims.

[0028] The orientation of the eyeglass device, related components, and any complete device including an eye scanner and camera, such as shown in any of the accompanying drawings, is given as an example only for the purpose of illustration and discussion. In the operation of a particular variable optical processing application, the eyeglass device can be oriented in any other direction suitable for the particular application of the eyeglass device, such as upward, downward, sideways, or any other orientation. In addition, as used herein, any directional terms, such as front, back, inward, outward, toward, left, right, lateral, longitudinal, up, down, upper, lower, top, bottom, and side, are used only as examples and do not limit the direction or orientation of any optical device or optical device component constructed as otherwise described herein.

[0029] Reference will now be made in detail to the examples illustrated in the drawings and discussed below. An example eyewear device and related systems and methods for providing a resource optimized kiosk mode will be described with reference to FIGS. 1-8.

[0030] The system described in this article includes three types of hardware components: eyeglasses, mobile devices, and servers. The eyeglasses will be described with reference to FIGS. 1-3 , and the mobile devices will be described with reference to Figure 5 Describes the server and will refer to Figure 6 The corresponding system will refer to Figure 4 The operation of the software components, including the eyewear device and the application software on the mobile device, will refer to Figure 7-8 In an example configuration, such software components include system software for establishing a resource-optimized kiosk mode on an AR-enabled eyewear device.

[0031] In an example configuration, an eyewear device with augmented reality (AR) capabilities is used in the system described herein. It is desirable to use an eyewear device in the system described herein because such a device is scalable and customizable to enable a personalized experience, enable effects to be applied anytime, anywhere, and ensure user privacy by only allowing the user to view the transmitted information. In an example configuration, the eyewear device can be used without any dedicated hardware, such as the SPECTACLES available from Snap Inc. of Santa Monica, California. TM .

[0032] Figure 1A 1 is a diagram depicting a side view of an example hardware configuration of an eyeglass device 100 including an optical assembly 180A ( Figure 2A ). The eyewear device 100 includes a plurality of visible light cameras 114A and 114B forming a stereo camera ( Figure 3 ), where one visible light camera 114A is located on the right temple 110A, and the other visible light camera 114B is located on the left temple 110B ( Figure 2A ). In the example shown, the optical component 180A is located on the right side of the eyeglass device 100. The optical component 180A may be located on the left side of the eyeglass device 100 or at other locations.

[0033] Visible light cameras 114A and 114B may include image sensors that are sensitive to wavelengths in the visible light range. Each of visible light cameras 114A and 114B has a different front-facing overlap angle, for example, visible light camera 114A has an overlap angle 111A ( Figure 3 ). The overlap angle is the angular range over which the respective image sensors of visible light cameras 114A and 114B detect incident light and generate image data. Examples of such visible light cameras 114A and 114B include high-resolution complementary metal oxide semiconductor (CMOS) image sensors and video graphics array (VGA) cameras, such as 640p (e.g., 640 x 480 pixels, 0.3 megapixels total), 720p, 1080p, 4K, or 8K. Image sensor data from visible light cameras 114A and 114B may be captured along with geolocation data, digitized by an image processor, and stored in memory.

[0034] To provide stereoscopic vision, visible light cameras 114A and 114B may be coupled to an image processor ( Figure 4 Image processor 412 may include circuitry for receiving signals from visible light cameras 114A and 114B and processing those signals from visible light cameras 114A and 114B into a format suitable for storage in memory ( Figure 4 The timestamp may be added by image processor 412 or other processor controlling the operation of visible light cameras 114A and 114B. Visible light cameras 114A and 114B allow the stereo camera to simulate human binocular vision. The stereo camera also provides a time stamp based on two captured images ( Figure 3 The image pair 358A and 358B) is used to reproduce the three-dimensional scene ( Figure 3 4. The ability to produce a three-dimensional image of a scene 315 in the image (see FIG. 4). Such three-dimensional images allow for immersive virtual experiences that feel realistic, such as for use in virtual reality or video games. For stereoscopic vision, a pair of images 358A and 358B may be generated at a given moment—one for each of visible light cameras 114A and 114B. Depth perception is provided by optical assemblies 180A and 180B when a pair of generated images 358A and 358B from forward-facing fields of view (FOVs) 111A and 111B of visible light cameras 114A and 114B are stitched together (e.g., by image processor 412).

[0035] In one example, the eyeglass device 100 includes a frame 105, a right rim 107A, a right temple 110A extending from a right lateral side 170A of the frame 105, and a see-through image display 180C ( Figure 2A -B) to present a GUI or other images to the user. The eyeglass device 100 includes a visible light camera 114A connected to the frame 105 or the right temple 110A to capture an image of a scene. The eyeglass device 100 also includes another visible light camera 114B connected to the frame 105 or the left temple 110B to capture (e.g., at least substantially simultaneously with the visible light camera 114A) another image of the scene from another viewpoint that at least partially overlaps with the image captured by the visible light camera 114A. Although Figure 1A and Figure 1B , but the processor 432 ( Figure 4 ) is coupled to the eyewear device 100 and is connected to the visible light cameras 114A and 114B and the memory 434 (accessible to the processor 432) Figure 4 ), and the programming in the memory 434 can be set in the eyeglass device 100 itself.

[0036] Although Figure 1A , but the eyeglass device 100 may also include a head motion tracker ( Figure 1B Element 109) or eye movement tracker ( Figure 2A Element 113 or Figure 2B and Figure 2CThe eyeglass device 100 may further include perspective image displays 180C and 180D of the optical components 180A and 180B, respectively, for presenting a display image sequence. The eyeglass device 100 may further include an image display driver ( Figure 4 442) which is coupled to the perspective image displays 180C and 180D to drive the image displays 180C and 180D. The perspective image displays 180C and 180D and the image display driver are described in further detail below. The eyewear device 100 may also include a memory 434 and a processor 432 ( Figure 4 ), the processor 432 can access the image display driver 442 and the memory 434, and program in the memory 434. The execution of the programming by the processor 432 configures the eyewear device 100 to perform functions, including the function of presenting an initial display image of a display image sequence via the perspective image displays 180C and 180D, wherein the initial display image has an initial field of view corresponding to the initial head direction or the initial eye gaze direction as determined by the eye movement tracker 113 or 213.

[0037] Execution of the programming by processor 432 may further configure eyewear device 100 to detect movement of a user of eyewear device 100 by: (i) detecting movement of a user of eyewear device 100 via a head motion tracker ( Figure 1B 109) to track the head movement of the user's head, or (ii) via an eye movement tracker ( Figure 2A Element 113 or Figure 2B and 2C 213) tracks eye movement of the user's eye of the eyeglass device 100. Execution of the programming by the processor 432 may further configure the eyeglass device 100 to determine a field of view adjustment of an initial field of view of an initial display image based on the detected user movement. The field of view adjustment may include a continuous field of view corresponding to a continuous head direction or a continuous eye direction. Execution of the programming by the processor 432 may further configure the eyeglass device 100 to generate a continuous display image of a display image sequence based on the field of view adjustment. Execution of the programming by the processor 432 may further configure the eyeglass device 100 to present the continuously displayed images via the perspective image displays 180C and 180D of the optical components 180A and 180B.

[0038] Figure 1B It is a depiction Figure 1A 1 is an illustration of a top cross-sectional view of the optical components and electronics in a portion of eyewear device 100 depicting visible light camera 114A, head motion tracker 109, and circuit board 140. Visible light camera 114B is substantially similar in construction and placement to visible light camera 114A, except that it is connected and coupled on another lateral side 170B ( Figure 2A). As shown, the eyeglass device 100 includes a visible light camera 114A and a circuit board, which may be a flexible printed circuit board (PCB) 140. A hinge 126A connects the right temple 110A to an articulated arm 125A of the eyeglass device 100. In some examples, components of the visible light camera 114A, the flexible PCB 140, or other electrical connectors or contacts may be located on the right temple 110A or the hinge 126A.

[0039] As shown, the eyeglass device 100 may include a head motion tracker 109, which includes, for example, an inertial measurement unit (IMU). An inertial measurement unit is an electronic device that uses a combination of an accelerometer and a gyroscope, and sometimes a magnetometer, to measure and report the body's specific force, angular velocity, and sometimes also the magnetic field around the body. The inertial measurement unit works by detecting linear acceleration using one or more accelerometers and detecting rotation rate using one or more gyroscopes. A typical configuration of an inertial measurement unit includes an accelerometer, a gyroscope, and a magnetometer for each of the three axes: a horizontal axis (X) for left and right movement, a vertical axis (Y) for top and bottom movement, and a depth or distance axis (Z) for up and down movement. The accelerometer detects a gravity vector. The magnetometer defines rotation in a magnetic field (e.g., facing south, facing north, etc.), just like a compass that generates a heading reference. The three accelerometers detect acceleration along the horizontal, vertical, and depth axes defined above, which can be defined relative to the ground, the eyeglass device 100, or the user wearing the eyeglass device 100.

[0040] The eyeglass device 100 can detect the movement of the user of the eyeglass device 100 by tracking the head movement of the user's head via the head movement tracker 109. The head movement includes a change in the head direction from the initial head direction on the horizontal axis, the vertical axis, or a combination thereof during the presentation of the initial display image on the image display. In one example, tracking the head movement of the user's head via the head movement tracker 109 includes measuring the initial head direction on the horizontal axis (e.g., X-axis), the vertical axis (e.g., Y-axis), or a combination thereof (e.g., lateral or diagonal movement) via an inertial measurement unit. Tracking the head movement of the user's head via the head movement tracker 109 also includes: measuring the continuous head direction on the horizontal axis, the vertical axis, or a combination thereof via the inertial measurement unit during the presentation of the initial display image.

[0041] Tracking the head movement of the user's head via the head movement tracker 109 may include determining a change in the head direction based on both the initial head direction and the continuous head direction. Detecting the movement of the user of the eyewear device 100 may also include: in response to tracking the head movement of the user's head via the head movement tracker 109, determining that the change in the head direction exceeds a deviation angle threshold on the horizontal axis, the vertical axis, or a combination thereof. In the example configuration, the deviation angle threshold is between approximately 3° and 10°. As used herein, the term "approximately" means ±10% from the amount when referring to an angle.

[0042] Changes along the horizontal axis slide three-dimensional objects (such as characters, Bitmojis, application icons, etc.) into and out of the field of view by, for example, hiding, unhiding, or otherwise adjusting the visibility of the three-dimensional objects. Changes along the vertical axis, for example, when the user looks up, in one example, display weather information, time of day, date, calendar appointments, etc. In another example, when the user looks down on the vertical axis, the eyewear device 100 can be powered off.

[0043] like Figure 1B As shown, the right temple 110A includes a temple body 211 configured to accommodate a temple cap. Figure 1B The temple cap is omitted in the cross-section of FIG. Disposed inside the right temple 110A are various interconnected circuit boards, such as a PCB or flexible PCB 140, which include circuits for visible light camera 114A, microphone 130, speaker 132, low power wireless circuitry (e.g., for communicating with a user via a wireless communication interface). Wireless short-range network communications) and high-speed wireless circuit systems (e.g., for A controller circuit for wireless LAN communication).

[0044] The visible light camera 114A is coupled to or disposed on the flexible PCB 140 and is overlapped by a visible light camera cover lens that is aimed through an opening formed in the right temple 110A. In some examples, the frame 105 connected to the right temple 110A includes an opening for the visible light camera cover lens. The frame 105 may include a forward-facing side that is configured to face outward away from the user's eyes. The opening for the visible light camera cover lens may be formed on the forward-facing side and through the forward-facing side. In this example, the visible light camera 114A has an outward-facing overlap angle 111A in the line of sight or viewing angle of the user's right eye of the eyeglass device 100. The visible light camera cover lens may also be adhered to the outward-facing surface of the right temple 110A, where the opening is formed with an outward-facing overlap angle, but in a different outward direction. The coupling may also be indirect via an intermediate component.

[0045] Visible light camera 114A may be connected to perspective image display 180C of optical assembly 180A to generate a first background scene for a first continuously displayed image. Visible light camera 114B may be connected to perspective image display 180D of optical assembly 180B to generate a second background scene for a second continuously displayed image. The first background scene and the second background scene may partially overlap to present a three-dimensional observable area of ​​the continuously displayed image.

[0046] Flexible PCB 140 may be disposed within right temple 110A and coupled to one or more other components housed in right temple 110A. Although shown as being formed on circuit board 140 of right temple 110A, visible light camera 114A may be formed on another circuit board (not shown) in one of left temple 110B, articulated arm 125A, articulated arm 125B, or frame 105.

[0047] Figure 2A is a diagram depicting a rear view of an example hardware configuration of the eyewear device 100. Figure 2A As shown, the eyewear device 100 is in a form configured to be worn by a user. Figure 2A The example of the eyewear device 100 is glasses. The eyewear device 100 may take other forms and may be combined with other types of frames, such as headgear, headphones, or helmets.

[0048] In the eyeglass example, the eyeglass device 100 includes a frame 105 including a right rim 107A connected to a left rim 107B via a nose bridge 106, the nose bridge 106 being configured to accommodate the user's nose. The right and left rims 107A and 107B include respective rings 175A and 175B that hold respective optical elements 180A and 180B, such as lenses and see-through displays 180C and 180D. As used herein, the term lens is meant to encompass a transparent or translucent piece of glass or plastic having curved and flat surfaces that cause light to converge / diverge or cause little or no convergence / divergence.

[0049] Although shown as having two optical elements 180A and 180B, the eyeglass device 100 may include other arrangements, such as a single optical element, depending on the application or intended user of the eyeglass device 100. As further shown, the eyeglass device 100 includes a right temple 110A adjacent to the right lateral side 170A of the frame 105 and a left temple 110B adjacent to the left lateral side 170B of the frame 105. The temples 110A and 110B may be integrated into the frame 105 on the respective sides 170A and 170B (as shown), or implemented as separate components attached to the frame 105 on the respective sides 170A and 170B. Alternatively, the temples 110A and 110B may be integrated into the articulated arms 125A and 125B attached to the frame 105. The hinge 126B connects the left temple 110B to the articulated arm 125B of the eyeglass device 100. In some examples, visible light camera 114B, a flexible PCB (not shown), or other components of electrical connectors or contacts may be located on left temple 110B or hinge 126B.

[0050] exist Figure 2A In an example of the invention, an eye scanner 113 is provided, which includes an infrared emitter 115 and an infrared camera 120. Visible light cameras typically include a blue light filter to block infrared light detection. In one example, the infrared camera 120 is a visible light camera, such as a low-resolution video graphics array (VGA) camera (e.g., 640x 480 pixels, a total of 0.3 megapixels), in which the blue filter is removed. The infrared emitter 115 and the infrared camera 120 can be co-located on the frame 105. For example, both are shown as being connected to the upper portion of the left mirror edge 107B. The frame 105 or one or more of the temples 110A and 110B may include a circuit board (not shown) that includes the infrared emitter 115 and the infrared camera 120. For example, the infrared emitter 115 and the infrared camera 120 can be connected to the circuit board by welding.

[0051] Other arrangements of the infrared emitter 115 and the infrared camera 120 may be implemented, including arrangements where both the infrared emitter 115 and the infrared camera 120 are on the right rim 107A or at different locations on the frame 105. For example, the infrared emitter 115 may be on the left rim 107B, and the infrared camera 120 may be on the right rim 107A. In another example, the infrared emitter 115 may be on the frame 105, and the infrared camera 120 may be on one of the temples 110A or 110B, or vice versa. The infrared emitter 115 may be connected to substantially any location on the frame 105, the right temple 110A, or the left temple 110B to emit an infrared light pattern. Similarly, the infrared camera 120 may be connected to substantially any location on the frame 105, the right temple 110A, or the left temple 110B to capture at least one reflection change in the infrared light emission pattern.

[0052] The infrared emitter 115 and the infrared camera 120 can be arranged to face inwardly toward the user's eyes, with a partial or full field of view of the eyes, to identify the corresponding eye position and gaze direction. For example, the infrared emitter 115 and the infrared camera 120 can be positioned directly in front of the eyes, on the upper part of the frame 105, or in the temples 110A or 110B at both ends of the frame 105.

[0053] Figure 2B is an illustration depicting a rear view of another example hardware configuration of an eyeglass device 200. In this example configuration, the eyeglass device 200 is depicted as including an eye scanner 213 on the right temple 210A. As shown, an infrared emitter 215 and an infrared camera 220 are co-located on the right temple 210A. The eye scanner 213 or one or more components of the eye scanner 213 can be located on the left temple 210B and other locations of the eyeglass device 200, such as the frame 105. The infrared emitter 215 and the infrared camera 220 are similar to Figure 2A , but the eye scanner 213 can be varied to be sensitive to different wavelengths of light, as previously described in Figure 2A Similar to Figure 2A , eyeglass device 200 includes frame 105 including right rim 107A connected to left rim 107B via nose bridge 106. Rims 107A-B may include respective rims that hold respective optical elements 180A and 180B including see-through displays 180C and 180D.

[0054] Figure 2C and Figure 2D 1 is a diagram depicting a rear view of an example hardware configuration of the eyewear device 100 including two different types of see-through image displays 180C and 180D. In one example, these see-through image displays 180C and 180D of the optical assemblies 180A and 180B include integrated image displays. Figure 2C As shown, optical assemblies 180A and 180B include any suitable type of display matrices 180C and 180D, such as a liquid crystal display (LCD), an organic light emitting diode (OLED) display, a waveguide display, or any other such display.

[0055] The optical components 180A and 180B also include one or more optical layers 176A-N, which may include lenses, optical coatings, prisms, reflectors, waveguides, light strips, and other optical components in any combination. The optical layer 176 may include prisms of suitable size and configuration, and include a first surface for receiving light from the display matrix and a second surface for emitting light to the user's eyes. The prisms of the optical layer 176 may extend over all or at least a portion of the corresponding mirror rings 175A and 175B formed in the mirror edges 107A and 107B to allow the user to see the second surface of the prism when the user's eyes look through the corresponding mirror edges 107A and 107B. The first surface of the prism of the optical layer 176 faces upward from the frame 105, and the display matrix overlaps the prism so that the photons and light emitted by the display matrix hit the first surface. The prism is sized and shaped so that the light is refracted within the prism and directed to the user's eyes through the second surface of the prism of the optical layer 176. In this regard, the second surface of the prisms of the optical layer 176 can be convex to direct light toward the center of the eye. The prisms are sized and shaped to magnify the images projected by the see-through image displays 180C and 180D, and the light travels through the prisms so that the image viewed from the second surface is larger in one or more dimensions than the image emitted from the see-through image displays 180C and 180D.

[0056] In another example, the see-through image displays 180C and 180D of the optical assemblies 180A and 180B may include Figure 2D The projected image display shown. The optical assemblies 180A and 180B include a projector 150, which may be a three-color projector using a scanning mirror, a galvanometer, a laser projector, or other type of projector. During operation, a light source such as the projector 150 is disposed in or on one of the temples 110A or 110B of the eyeglass device 100. The optical assemblies 180A and 180B may include one or more light strips 155A-N spaced across the width of the lens of the optical assemblies 180A and 180B or across the depth of the lens between the front and rear surfaces of the lens.

[0057] When the photons projected by the projector 150 travel through the lenses of the optical components 180A and 180B, the photons encounter the light strip 155. When a particular photon encounters a particular light strip, the photon is either redirected to the user's eye or passed to the next light strip. A combination of the modulation of the projector 150 and the modulation of the light strip can control a particular photon or light beam. In one example, the processor controls the light strip 155 by initiating a mechanical, acoustic, or electromagnetic signal. Although shown as having two optical components 180A and 180B, the eyeglass device 100 may include other arrangements, such as a single or three optical components, or the optical components 180A and 180B may have different arrangements depending on the application or intended user of the eyeglass device 100.

[0058] like Figure 2C and Figure 2D As further shown, the eyewear device 100 includes a right temple 110A adjacent to the right lateral side 170A of the frame 105 and a left temple 110B adjacent to the left lateral side 170B of the frame 105. The temples 110A and 110B can be integrated into the frame 105 on the respective lateral sides 170A and 170B (as shown), or implemented as separate components attached to the frame 105 on the respective sides 170A and 170B. Alternatively, the temples 110A and 110B can be integrated into the articulated arms 125A and 125B attached to the frame 105.

[0059] In one example, the perspective image display includes a perspective image display 180C and a perspective image display 180D. The eyeglass device 100 may include lens rings 175A and 175B, which hold corresponding optical components 180A and 180B. The optical component 180A may include a perspective image display 180C (e.g., a projector and light strip in a display matrix or right temple 110A). The optical component 180B may include a perspective image display 180D (e.g., a projector 150 and light strip in a display matrix or right temple 110A). The continuous field of view of the continuous display image may include a viewing angle between about 15° and 30° measured horizontally, vertically or diagonally, and more specifically 24°. The continuous display image with a continuous field of view represents a combined three-dimensional observable area visible by splicing together two display images presented on the image display.

[0060] As used herein, "angle of view" describes the angular range of the field of view associated with the displayed image presented on each of the image displays 180C and 180D of the optical assemblies 180A and 180B. "Overlap angle" describes the angular range of the lens of the visible light camera 114A or 114B or the infrared camera 220 that can image. Typically, the image circle produced by the lens is large enough to completely cover the film or sensor, possibly including some vignetting (i.e., the brightness or saturation of the image is reduced toward the periphery compared to the center of the image). If the overlap angle of the lens does not fill the sensor, the image circle will be visible, typically with strong vignetting toward the edges, and the effective angle of view will be limited by the overlap angle. "Field of view" is intended to describe the field of view of the observable area that can be seen by the user of the eyewear device 100 through his or her eyes via the displayed images presented on the image displays 180C and 180D of the optical assemblies 180A and 180B. Image display 180C of optical assemblies 180A and 180B may have a field of view with an overlap angle between 15° and 30° (eg, 24°) and a resolution of 480 x 480 pixels (or greater; eg, 720p, 1080p, 4K, or 8K).

[0061] Figure 3 The block diagram in FIG. 4 shows an example of capturing visible light with cameras 114A and 114B. Visible light is captured by visible light camera 114A having a circular field of view (FOV) 111A. Selected rectangular raw image 358A is used to generate a pixel image by image processor 412 ( Figure 4 ) for image processing. Visible light is also captured by visible light camera 114B having circular FOV 111B. Rectangular raw image 358B selected by image processor 412 is used for image processing by processor 412. Raw images 358A and 358B have overlapping fields of view 313. Processor 412 processes raw images 358A and 358B and generates a three-dimensional image 315 for display by displays 180C and 180D. Three-dimensional image 315 is also referred to as an immersive image hereinafter.

[0062] Figure 4 The system block diagram in shows a high-level functional block diagram including example electronic components arranged in an example configuration in the eyewear device 100 or 200. The electronic components shown include a processor 432, a memory 434, and the see-through image displays 180C and 180D.

[0063] The memory 434 includes instructions for execution by the processor 432 to implement the functions of the eyeglass devices 100 and 200, including instructions for the high-speed processor 432 to control the image 315. Such functions can be implemented by processing instructions of the eye movement tracking program 445, kiosk mode application software 460, and object tracking software 470 stored in the memory 434 and executed by the high-speed processor 432. The high-speed processor 432 receives power from the battery 450 and executes the instructions stored in the memory 434. The memory 434 can be a separate component, or the memory 434 can be integrated "on-chip" with the processor 432 to perform the functions of the eyeglass devices 100 and 200 and communicate with external devices via a wireless connection.

[0064] Eyewear devices 100 and 200 may be combined with eye movement tracking program 445 (e.g., using Figure 2B ) and can be implemented via the mobile device 500 ( Figure 5 ) and a server system 498 connected via various networks to provide user interface adjustments. The mobile device 500 may be a smartphone, tablet, laptop, access point, or any other such device capable of connecting to the eyewear device 100 or 200 using both a low-power wireless connection 425 and a high-speed wireless connection 437. The mobile device 500 is also connected to the server system 498 via a network 495. The network 495 may include any combination of wired and wireless connections.

[0065] The glasses apparatuses 100 and 200 may include an image display driver 442 , an image processor 412 , a low power circuit system 420 , and a high speed circuit system 430 . Figure 4 The components of the eyeglass devices 100 and 200 shown in the drawings are located on one or more circuit boards, such as a PCB or a flexible PCB, in the temples. Alternatively or additionally, the depicted components may be located in the temples, frames, hinges, articulated arms, or nose bridges of the eyeglass devices 100 and 200. Visible light cameras 114A and 114B may include digital camera elements, such as complementary metal oxide semiconductor (CMOS) image sensors, charge coupled devices, lenses, or any other corresponding visible light or light capturing elements that can be used to capture data, including images of scenes with unknown objects.

[0066] The eye movement tracking program 445 implements user interface field of view adjustment instructions, including instructions for causing the eyeglass device 100 or 200 to track eye movements of the user's eyes of the eyeglass device 100 or 200 via the eye movement tracker 213. Other implemented instructions (functions) cause the eyeglass device 100 and 200 to determine a FOV adjustment to the initial FOV 111A-B based on the detected user eye movements corresponding to the continuous eye directions. Further implemented instructions generate a continuous display image of the display image sequence based on the field of view adjustment. The continuous display image is generated to the user as a visible output via the user interface. The visible output appears on the perspective image displays 180C and 180D of the optical components 180A and 180B, which are driven by the image display driver 442 to present a display image sequence, including an initial display image with an initial field of view and a continuous display image with a continuous field of view.

[0067] The following will be combined Figure 7-8 The kiosk mode application software 460 is described in more detail.

[0068] For example, the object tracking model applied by the object tracking software 470 can detect gestures of the user as well as objects in the environment, which will be recognized by the object recognition software associated with the eyewear device 100 or 200 in the example configuration.

[0069] like Figure 4 As shown, the high-speed circuit system 430 includes a high-speed processor 432, a memory 434, and a high-speed wireless circuit system 436. In this example, an image display driver 442 is coupled to the high-speed circuit system 430 and operated by the high-speed processor 432 to drive the image displays 180C and 180D of the optical components 180A and 180B. The high-speed processor 432 can be any processor capable of managing high-speed communications and operations of any general-purpose computing system required for the eyeglass device 100 or 200. The high-speed processor 432 includes the processing resources required to manage high-speed data transmission on a high-speed wireless connection 437 to a wireless local area network (WLAN) using the high-speed wireless circuit system 436. In some examples, the high-speed processor 432 executes an operating system such as a LINUX operating system or other such operating system of the eyeglass device 100 or 200, and the operating system is stored in the memory 434 for execution. In addition to any other duties, the high-speed processor 432, which executes the software architecture of the eyeglass device 100 or 200, is used to manage data transmission with the high-speed wireless circuit system 436. In some examples, the high-speed wireless circuitry 436 is configured to implement a wireless communication protocol, such as the Institute of Electrical and Electronics Engineers (IEEE) 802.11 communication standard, also referred to herein as In other examples, other high-speed communication standards may be implemented by high-speed wireless circuitry 436 .

[0070] The low-power wireless circuit system 424 and the high-speed wireless circuit system 436 of the eyeglass devices 100 and 200 may include a short-range transceiver. and wireless WAN, LAN, or WAN transceivers (e.g., cellular or ). Mobile device 500, including a transceiver that communicates via low power wireless connection 425 and high speed wireless connection 437, may be implemented using details of the architecture of eyewear devices 100 and 200, as may other elements of network 495.

[0071] The memory 434 includes any storage device capable of storing various data and applications, including, among other things, color maps, camera data generated by the visible light cameras 114A-B and the image processor 412, and images generated for display by the image display driver 442 on the see-through image displays 180C and 180D of the optical assemblies 180A and 180B. Although the memory 434 is shown as being integrated with the high-speed circuit system 430, in other examples, the memory 434 may be a separate, independent element of the eyewear device 100 or 200. In some such examples, the circuitry may provide a connection from the image processor 412 or the low-power processor 422 to the memory 434 through a system on a chip including the high-speed processor 432. In other examples, the high-speed processor 432 may manage addressing of the memory 434 so that the low-power processor 422 will initiate the high-speed processor 432 whenever a read or write operation involving the memory 434 is required.

[0072] The server system 498 may be one or more computing devices as part of a service or network computing system, for example, including a processor, a memory, and a network communication interface to communicate with the mobile device 500 and the eyeglass devices 100 and 200 via the network 495. The eyeglass devices 100 and 200 may be connected to a host computer. For example, the eyeglass device 100 or 200 may be paired with the mobile device 500 via a high-speed wireless connection 437, or connected to the server system 498 via the network 495. In addition, a gallery 490 of snapshots and AR objects may be maintained by the server system 498 for each user and invoked by providing communications that link to the snapshots and AR objects stored in the gallery 490.

[0073] The output components of the eyeglass devices 100 and 200 include visual components such as Figure 2C and Figure 2DThe image displays 180C and 180D of the optical components 180A and 180B described above (e.g., displays such as liquid crystal displays (LCDs), plasma display panels (PDPs), light emitting diode (LED) displays, projectors, or waveguides). The image displays 180C and 180D of the optical components 180A and 180B are driven by an image display driver 442. The output components of the eyeglass devices 100 and 200 also include acoustic components (e.g., speakers), tactile components (e.g., vibration motors), and other signal generators. The input components of the eyeglass devices 100 and 200, the mobile device 500, and the server system 498 may include alphanumeric input components (e.g., keyboards, touch screens configured to receive alphanumeric inputs, optical keyboards, or other alphanumeric input components), point-based input components (e.g., mice, touch pads, trackballs, joysticks, motion sensors, or other pointing tools), tactile input components (e.g., physical buttons, touch screens or other tactile input components that provide the location and force of touch or touch gestures), and audio input components (e.g., microphones), etc.

[0074] The eyeglass devices 100 and 200 may include additional peripheral device elements, such as ambient light and spectral sensors, biometric sensors, thermal sensors 440, or other display elements integrated with the eyeglass devices 100 or 200. For example, the peripheral device elements may include any I / O components, including output components, motion components, position components, or any other such components described herein. The eyeglass devices 100 and 200 may take other forms and may be combined with other types of frames, such as headgear, headphones, or helmets.

[0075] For example, the biometric components of the eyeglass devices 100 and 200 may include components for detecting expressions (e.g., hand expressions, facial expressions, vocal expressions, body postures, or eye tracking), measuring biological signals (e.g., blood pressure, heart rate, body temperature, perspiration, or brain waves), and identifying people (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or electroencephalogram-based recognition), etc. The motion components include acceleration sensor components (e.g., accelerometers), gravity sensor components, and rotation sensor components (e.g., gyroscopes), etc. The position components include position sensor components for generating position coordinates (e.g., global positioning system (GPS) receiver components), and positioning system coordinates. or transceiver, altitude sensor components (e.g., an altimeter or barometer that detects air pressure from which altitude can be derived), and orientation sensor components (e.g., a magnetometer), etc. Such positioning system coordinates may also be received from mobile device 500 via low power wireless circuitry 424 or high speed wireless circuitry 436 over wireless connections 425 and 437.

[0076] Figure 5 It is depicted with Figure 4 A block diagram of an example configuration of a mobile device 500 for use in conjunction with the system. Figure 5 5 is a high-level functional block diagram of an example mobile device 500 that a user can use with the eyeglass device 100 to extend the user interface to the eyeglass device 100 as described herein. The mobile device 500 may include a flash memory 505 that stores programming to be executed by the CPU 510 to perform all or a subset of the functions described herein. The mobile device 500 may also include a camera 525 that includes one or more visible light cameras (visible light cameras with overlapping fields of view) or at least one visible light camera and a depth sensor with substantially overlapping fields of view. The flash memory 505 may also include multiple images or videos generated via the camera 525.

[0077] The mobile device 500 may further include an image display 530, a mobile display driver 535 for controlling the image display 530, and a display controller 540. Figure 5 In the example of , image display 530 may include a user input layer 545 (e.g., a touch screen) that is layered over or otherwise integrated into the screen used by image display 530. Examples of touch screen-type mobile devices that may be used include (but are not limited to) smartphones, personal digital assistants (PDAs), tablet computers, laptop computers, or other portable devices. However, the structure and operation of touch screen-type devices are provided by way of example; the subject technology as described herein is not intended to be limited thereto. For purposes of this discussion, Figure 5 Thus, a block diagram illustration of an example mobile device 500 having a user interface including a touch screen input layer 545 for receiving input (via touch, multi-touch or gestures, etc., by hand, stylus or other tool) and an image display 530 for displaying content is provided.

[0078] like Figure 5 As shown, the mobile device 500 includes at least one digital transceiver (XCVR) 550, shown as a WWAN (wireless wide area network) XCVR, for digital wireless communication via a wide area wireless mobile communication network. The mobile device 500 may also include additional digital or analog transceivers, such as a short-range transceiver (XCVR) 555 for short-range network communication, such as via NFC, VLC, DECT, ZigBee, or For example, the short-range XCVR 555 may take the form of any available two-way wireless local area network (WLAN) transceiver of a type compatible with one or more standard communication protocols implemented in wireless local area networks, such as IEEE 802.11. One of the standards.

[0079] In order to generate location coordinates for locating the mobile device 500, the mobile device 500 may also include a global positioning system (GPS) receiver. Alternatively or additionally, the mobile device 500 may utilize either or both of the short-range XCVR 555 and the WWAN XCVR 550 to generate location coordinates for positioning. For example, based on a cellular network, or The positioning system can generate very accurate position coordinates, especially when used in combination. Such position coordinates can be transmitted to the mobile device 500 via the XCVR 550, 555 through one or more network connections.

[0080] The transceivers 550, 555 (i.e., network communication interfaces) may conform to one or more of the various digital wireless communication standards used by modern mobile networks. Examples of WWAN transceivers 550 include, but are not limited to, transceivers configured to operate in accordance with code division multiple access (CDMA) and third generation partnership project (3GPP) network technologies (including, for example and without limitation, 3GPP type 2 (or 3GPP2) and LTE, sometimes referred to as "4G"). The transceivers may also incorporate broadband cellular network technologies known as "5G". For example, transceivers 550, 555 provide two-way wireless communication of information including digitized audio signals, still images and video signals, web page information for display and network-related input, and various types of mobile message communications to / from the mobile device 500.

[0081] The mobile device 500 may also include a microprocessor that serves as a central processing unit (CPU) 510. A processor is a circuit having elements that are constructed and arranged to perform one or more processing functions (typically various data processing functions). Although discrete logic components may be used, these examples utilize components that form a programmable CPU. The microprocessor, for example, includes one or more integrated circuit (IC) chips that contain electronic components to perform the functions of the CPU 510. For example, the CPU 510 may be based on any known or available microprocessor architecture, such as a reduced instruction set computing (RISC) using an ARM architecture, as is commonly used today in mobile devices and other portable electronic devices. Of course, other arrangements of processor circuitry may be used to form the CPU 510 or processor hardware in smartphones, laptops, and tablet computers.

[0082] The CPU 510 functions as a programmable main controller of the mobile device 500 by configuring the mobile device 500 to perform various operations, e.g., according to instructions or programming executable by the CPU 510. For example, such operations may include various general operations of the mobile device 500, as well as operations related to programming of a messaging application and an AR camera application on the mobile device 500. Although a processor may be configured using hardwired logic, a typical processor in a mobile device is a general-purpose processing circuit that is configured by executing programming.

[0083] Mobile device 500 also includes a memory or storage system for storing programming and data. Figure 5 In the example shown, the memory system may include flash memory 505, random access memory (RAM) 560, and other memory components 565, as needed. RAM 560 may be used as short-term storage for instructions and data being processed by CPU 510, such as working data processing memory. Flash memory 505 typically provides long-term storage.

[0084] Thus, in the example of mobile device 500, flash memory 505 may be used to store programming or instructions for execution by CPU 510. Depending on the type of device, mobile device 500 stores and runs a mobile operating system through which specific applications are executed. Examples of mobile operating systems include Google Android, Apple iOS (for iPhone or iPad devices), Windows Mobile, Amazon Fire OS (operating system), or RIM BlackBerry OS, among others.

[0085] Mobile device 500 may include an audio transceiver 570 that can receive audio signals from the environment via a microphone (not shown) and provide audio output via a speaker (not shown). The audio signals may be coupled with video signals and other messages through a messaging application or social media application implemented on mobile device 500.

[0086] Mobile device 500 may execute mobile application software 520, such as Snap Inc., available from Santa Monica, California. It is loaded into the flash memory 505. As will be described below with respect to Figure 7-Figure 8 As described in more detail, the mobile application 520 communicates with the eyeglass device 100 to enable a user of the eyeglass device 100 to establish a resource-optimized kiosk mode as described herein.

[0087] The techniques described herein may also be used with one or more of the computer systems described herein, or with one or more other systems. For example, the various processes described herein may be implemented with hardware or software or a combination of both. For example, at least one of the processors, memories, storage devices, output devices, input devices, or communication connections discussed below may each be at least a portion of one or more hardware components. A dedicated hardware logic component may be constructed to implement at least a portion of one or more of the techniques described herein. For example and without limitation, such a hardware logic component may include a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), an application specific standard product (ASSP), a system on a chip (SOC), a complex programmable logic device (CPLD), and the like. The applications of the devices and systems that may include various aspects may widely include various electronic and computer systems. The techniques may be implemented using two or more specific interconnected hardware modules or devices, wherein related control and data signals may be communicated between and through the modules, or as part of an ASIC. In addition, the techniques described herein may be implemented by a software program executable by a computer system. For example, implementations may include distributed processing, component / object distributed processing, and parallel processing. In addition, virtual computer system processing may be constructed to implement one or more of the techniques or functions described herein.

[0088] Figure 6 The block diagram in FIG. 1 shows a computer system for implementing a processing element such as Figure 4 The backend server system 498 shown in . Figure 6 is a block diagram of an example machine 600 on which the Figure 4 600. In one or more configurations of an example backend server system 498 of the type shown, the machine 600 may be configured as a standalone device or may be connected (e.g., using a network) to other machines. In a networked deployment, the machine 600 may operate in the capacity of a server machine, a client machine, or both in server-client network environment. In one example, the machine 600 may act as a peer machine in a peer-to-peer (P2P) (or other distributed) network environment.

[0089] In an example configuration, the machine 600 may be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile phone, a smart phone, a network appliance, a server, a network router, a switch or a bridge, or any machine capable of executing instructions (sequentially or otherwise) that specify the action to be taken by the machine. For example, the machine 600 may be used as a workstation, a front-end server, or a back-end server for a communication system. The machine 600 may provide an AR application, such as a filter available from Snap Inc. of Santa Monica, California, which may be run as a visual overlay or implement other user interface (UI) features during a resource-optimized kiosk mode as described herein. In addition, although only a single machine 600 is shown, the term "machine" should also be deemed to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methods discussed herein, such as cloud computing, software as a service (SaaS), and other computer cluster configurations.

[0090] As described herein, examples may include or may run on a processor, logic or multiple components, modules or mechanisms (referred to herein as "modules"). A module is a tangible entity (e.g., hardware) that is capable of performing a specified operation and may be configured or arranged in a certain manner. In one example, a circuit may be arranged as a module in a specified manner (e.g., internally or relative to an external entity, such as other circuits). In one example, all or part of one or more computer systems (e.g., independent, client or server computer systems) or one or more hardware processors may be configured as a module by firmware or software (e.g., instructions, application parts or applications), which operates to perform specified operations. In one example, the software may reside on a machine-readable medium. When executed by the underlying hardware of the module, the software causes the hardware to perform the specified operation.

[0091] Thus, the term "module" is understood to include at least one of a tangible hardware or software entity that is physically constructed, specifically configured (e.g., hardwired), or temporarily (e.g., temporarily) configured (e.g., programmed) to operate in a particular manner or to perform part or all of any of the operations described herein. Considering examples where modules are temporarily configured, each of the modules need not be instantiated at any one time. For example, where a module includes a general-purpose hardware processor configured using software, the general-purpose hardware processor can be configured as corresponding different modules at different times. The software can configure the hardware processor accordingly, for example, to constitute a particular module at one time and to constitute different modules at different times.

[0092] The machine (e.g., computer system) 600 may include a hardware processor 602 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a hardware processor core, or any combination thereof), a main memory 604, and a static memory 606, some or all of which may communicate with each other via an interconnect (e.g., a bus) 608. The machine 600 may also include a display unit 610 (shown as a video display), an alphanumeric input device 612 (e.g., a keyboard), and a user interface (UI) navigation device 614 (e.g., a mouse). In one example, the display unit 610, the input device 612, and the UI navigation device 614 may be a touch screen display. The machine 600 may additionally include a mass storage device (e.g., a drive unit) 616, a signal generating device 618 (e.g., a speaker), a network interface device 620, and one or more sensors 622. Example sensors 622 include one or more of a global positioning system (GPS) sensor, a compass, an accelerometer, a temperature, a light, a camera, a video camera, a physical state or position sensor, a pressure sensor, a fingerprint sensor, a retinal scanner, or other sensors. The machine 600 may also include an output controller 624, such as a serial (e.g., Universal Serial Bus (USB), parallel, or other wired or wireless (e.g., infrared (IR), near field communication (NFC), etc.) connection to communicate with or control one or more peripheral devices (e.g., a printer, a card reader, etc.).

[0093] The mass storage device 616 may include a machine-readable medium 626 having stored thereon one or more sets of data structures or instructions 628 (e.g., software) that embody or are utilized by any one or more of the techniques or functionality described herein. The instructions 628 may also reside, completely or at least partially, within the main memory 604, within the static memory 606, or within the hardware processor 602 during execution of the instructions 628 by the machine 600. In one example, one or any combination of the hardware processor 602, the main memory 604, the static memory 606, or the mass storage device 616 may constitute a machine-readable medium.

[0094] Although the machine-readable medium 626 is shown as a single medium, the term "machine-readable medium" may include a single medium or multiple media (e.g., a centralized or distributed database or at least one of an associated cache and server) configured to store one or more instructions 628. The term "machine-readable medium" may include any medium capable of storing, encoding, or carrying instructions executed by the machine 600 and causing the machine 600 to perform any one or more of the techniques of the present disclosure, or any medium capable of storing, encoding, or carrying data structures used by or associated with these instructions. Non-limiting machine-readable medium examples may include solid-state memory and optical and magnetic media. Specific examples of machine-readable media may include non-volatile memory, such as semiconductor memory devices (e.g., electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM)) and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; random access memory (RAM); solid-state hard disks (SSD); and CD-ROM and digital video disc (DVD)-ROM disks. In some examples, the machine-readable medium may include a non-transitory machine-readable medium. In some examples, machine-readable media may include machine-readable media that is not a transitory propagating signal.

[0095] The instructions 628 may also be sent or received over the communication network 632 via the network interface device 620 using a transmission medium. The machine 600 may communicate with one or more other machines using any of a variety of transmission protocols (e.g., frame relay, Internet Protocol (IP), transmission control protocol (TCP), user datagram protocol (UDP), hypertext transfer protocol (HTTP), etc.). Example communication networks may include, among others, a local area network (LAN), a wide area network (WAN), a packet data network (e.g., the Internet), a mobile telephone network (e.g., a cellular network), a plain old telephone service (POTS) network, and a wireless data network (e.g., known as a wireless network). The network interface device 620 may include one or more physical jacks (e.g., Ethernet, coaxial, or telephone jacks) or one or more antennas 630 to connect to the communication network 632. In one example, the network interface device 620 may include multiple antennas 630 to wirelessly communicate using at least one of single-input multiple-output (SIMO), multiple-input multiple-output (MIMO), or multiple-input single-output (MISO) technology. In some examples, the network interface device 620 may use multi-user MIMO technology for wireless communication.

[0096] The features and flow charts described herein may be embodied as method steps in one or more methods, or in one or more applications as described above. According to some configurations, one or more "applications" are programs that perform the functions defined in the program. Various programming languages ​​may be used to generate one or more of the applications structured in various ways, such as an object-oriented programming language (e.g., Objective-C, Java, or C++) or a procedural programming language (e.g., C or assembly language). In one specific example, a third-party application (e.g., an application created by an entity other than a particular platform vendor using ANDROID TM or IOS TM Software Development Kit (SDK) can be used to develop applications on platforms such as IOS TM ANDROID TM , The invention relates to mobile software running on a mobile operating system of an Android phone or other mobile operating system. In this example, a third-party application can call an API (application programming interface) provided by the operating system to facilitate the functions described herein. The application can be stored in any type of computer-readable medium or computer storage device and executed by one or more general-purpose computers. In addition, the methods and processes disclosed herein can alternatively be embodied in dedicated computer hardware or an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or a complex programmable logic device (CPLD).

[0097] The program aspects of the technology may be considered a "product" or "article of manufacture," typically in the form of at least one of executable code or associated data, which is carried or embodied in a machine-readable medium. For example, the programming code may include code for a touch sensor or other functions described herein. "Storage" type media include any or all tangible memories of a computer, processor, etc., or related modules thereof, such as various semiconductor memories, tape drives, and disk drives, which can provide non-transitory storage for software programming at any time. All or part of the software may sometimes be communicated over the Internet or various other telecommunications networks. For example, such communication may enable software to be loaded from one computer or processor to another. Therefore, another type of medium that can carry programming, media content, or metadata files includes optical, electrical, and electromagnetic waves, such as those used over physical interfaces between local devices through wired and fiber optic landline networks and through various air links. Physical elements that carry such waves, such as wired links or wireless links, or optical links, etc., can also be considered as media that carry software. As used herein, unless limited to "non-transitory," "tangible," or "storage" media, terms such as computer or machine "readable media" refer to any medium that participates in providing instructions or data to a processor for execution.

[0098] Therefore, machine-readable media can take the form of tangible storage media in a variety of forms. Non-volatile storage media include, for example, optical or magnetic disks, such as any storage device in any computer or the like, such as client devices, media gateways, code converters, etc., which can be used to implement the drawings. Volatile storage media include dynamic memory, such as the main memory of such a computer platform. Tangible transmission media include coaxial cables, copper wires, and optical fibers, including wires that constitute a bus within a computer system. Carrier transmission media can take the form of electrical or electromagnetic signals, or sound or light waves, such as those generated during radio frequency (RF) and infrared (IR) data communications. Therefore, common forms of computer-readable media include, for example: floppy disks, floppy disks, hard disks, magnetic tapes, any other magnetic media, CD-ROMs, DVDs or DVD-ROMs, any other optical media, punched card tapes, any other physical storage media with hole patterns, RAMs, PROMs and EPROMs, FLASH-EPROMs, any other storage chips or boxes, carriers that transmit data or instructions, cables or links that transmit such carriers, or any other medium from which a computer can read at least one of a programming code or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution.

[0099] Now about Figure 7-Figure 8Features of a mobile device application 520 running on a mobile device 500 and features of a kiosk mode application 460 running on the eyeglass device 100 for establishing a resource-optimized kiosk mode are described.

[0100] In an example configuration, to save battery power, the mobile device application 520 provides a settings view that requests all available setting knobs (e.g., Boolean values ​​of settings belonging to a category or set of related configurations that can be changed within the mobile device application 520) from the AR-enabled glasses device 100, together with their current setting values ​​when navigated to by the user. All available settings can be dynamically pulled from the AR-enabled glasses device 100, and new settings can be added without updating the mobile device application 520 on the paired mobile phone 500. The user can use a button to flip the setting switch and trigger the update of all values ​​at once. These values ​​can then be sent to the AR-enabled glasses device 100 in a single remote procedure call (RPC) request, thereby optimizing battery life. Such a system is described in co-owned U.S. patent application serial number 17 / 929,985 filed on September 6, 2022, the contents of which are incorporated herein by reference. Alternatively, the setting can be set in a conventional manner, similar to the associated additional consumption of the battery.

[0101] One of the loaded settings may be a "kiosk mode" which can be turned on / off by selecting / deselecting the kiosk bit. When kiosk mode is on, the user may select an AR application to which the AR-enabled eyewear device 100 will be locked (e.g., in the and can be used with SPECTACLES TM , both available from Snap, Inc. of Santa Monica, California). After restarting the AR-enabled eyewear device 100, the selected AR application (filter) can be directly opened and shown to the user. The user cannot exit the AR application or switch to another AR application by navigating to a carousel and / or menu. Therefore, the selected AR application is "locked". Since only one AR application runs in kiosk mode until the AR-enabled eyewear device 100 is restarted (e.g., when the kiosk mode is turned off or another locked AR application is selected for kiosk mode), only services and system components used and required by the AR application are opened and run in kiosk mode.

[0102] Those skilled in the art will appreciate that conventional AR applications do not provide an indication of what services and APIs a particular AR application (e.g., a filter) uses and relies on during operation. Therefore, it is currently not possible to turn off unused services or prevent them from being turned on after startup. Therefore, in the example configuration, the AR application file / package is modified to include metadata that specifies the services and / or APIs that the AR application needs to use when operating. In the example configuration, the format of the service / API metadata file can be, for example, XML and JSON. As an XML example of filter metadata (which identifies the services and / or APIs to be implemented by an AR application in the form of a filter available from Snap), the XML can be in the following format: [...]

[0104] <lens-apis>

[0105] <lens-api name=”depth-api” / >

[0106] <lens-api name=”location-api” / >

[0107] [...]

[0109] A predefined set of API names can be mapped to a required set of services. One API may require two or more system / platform services, or a system / platform service may require one or more APIs. The list of used APIs can be defined (manually) by the filter developer, who creates the filter using Lens Studio, available from Snap, Inc. of Santa Monica, California, or automatically inferred by static analysis of the AR application in the editor (e.g., for Lens Studio filters) to identify the APIs and services used by the AR application. The APIs and services so identified are mapped to the AR application, and the AR application is modified to include corresponding mapped service / API metadata.

[0110] During operation, when the user selects kiosk mode in the mobile device application 520 and selects a locked AR application (filter), the service / API metadata of the locked AR application is parsed to find the service metadata declaration used / required. Before the AR-enabled glasses device 100 is restarted, the service / API metadata for the locked AR application is stored in the device storage (e.g., memory 434) of the AR-enabled glasses device 100. Each service part of the AR-enabled glasses device 100 reads and uses the service / API metadata after restarting to determine whether it is meant to run / execute when the kiosk mode is turned on.

[0111] However, when the user opens kiosk mode with a locked AR application that does not include service / API metadata, a warning message is presented on the paired mobile device 500 stating that the locked AR application is not optimized for kiosk mode. In this scenario, the AR-enabled eyewear device 100 runs all system services and APIs in regular kiosk mode (i.e., without resource optimization) by default.

[0112] Figure 7 1 is a communication diagram for establishing a resource-constrained kiosk mode between a mobile device 500 and an AR-enabled eyewear device 100 in an example configuration. As shown in the figure, a user initiates a mobile application 520 on the user's mobile device 500 and establishes a BLE ( The user then navigates to the settings by selecting kiosk mode within the settings of the mobile application 520 to enable the kiosk mode of the locked AR application 460 (at 710). The ID of the locked AR application 460 is provided to the AR-enabled eyeglass device 100, and the AR-enabled eyeglass device 100 retrieves the locked AR application 460 from a local store or from the server system 498 using the ID of the locked AR application 460. In an example configuration, the retrieved AR application 460 may include service / API metadata that identifies all required services and operating system components for the locked AR application 460. The service / API metadata is stored in the AR-enabled eyeglass device 100 for access upon restart. Upon receiving a response 720 indicating successful reception of the kiosk mode selection and the locked AR application 460, the mobile phone 500 instructs the AR-enabled eyeglass device 100 to restart at 730. When the AR-enabled glasses device 100 is successfully restarted at 740 , those services and APIs that are not required by the locked AR application 460 become unavailable to the user of the restarted AR-enabled glasses device 100 .

[0113] For example, if the AR-enabled glasses device 100 implements services 1 and 2 before restarting, but only service 2 is needed to operate the locked AR application 460, service 1 is not identified in the service / API metadata identified in the persistent service / API metadata stored on the AR-enabled glasses device 100 by the component that starts the service. As a result, service 1 does not run after restarting because the locked AR application 460 does not need service 1. On the other hand, since service 2 is needed to operate the locked AR application 460, service 2 is identified in the persistent service / API metadata stored on the AR-enabled glasses device 100 by the component that starts the service. As a result, service 2 is started after restarting, as indicated at 750. In this way, unnecessary service 1 is not run, thereby saving battery power and memory. The user remains in the resource-optimized kiosk mode until the setting is changed in the mobile device 500 and the AR-enabled glasses device 100 is restarted.

[0114] Those skilled in the art will appreciate that a single mobile device 500 can control the settings of multiple AR-enabled glasses devices 100, so that the locked AR applications 460 do not need to be set up one at a time in each AR-enabled glasses device 100. For example, multiple AR-enabled glasses devices 100 can be set up in parallel with the same AR application 460, just like when multiple AR-enabled glasses devices 100 are set up to implement a museum guide app, a menu card app, or a trade show promotion app for use by multiple users. In each case, only the required services and APIs will be enabled for operation on each AR-enabled glasses device 100.

[0115] Figure 8 is a flow chart of a method for setting a resource-constrained kiosk mode on an AR-enabled eyewear device 100 using a mobile application 520 of an associated mobile device 500 in an example configuration. As shown, the method begins at 800 by a user opening the mobile app 520 at 802. When the mobile app 520 is launched, the user is presented with a kiosk mode-related menu at 804. For example, a kiosk mode option may be presented in a settings menu of the mobile app 520. At 806, the user may request a list of available AR apps that may be run on the paired AR-enabled eyewear device 100 (e.g., a list of available AR apps available on the SPECTACLES platform available from Snap Inc. of Santa Monica, California). TM At 808, the paired AR-enabled glasses device 100 retrieves a list of available AR apps from the server system 498 and / or the local storage of the AR-enabled glasses device 100. The list of AR apps (e.g., filter list) is provided to the mobile app 520 for display at 810. Then, at 812, the user enables kiosk mode by, for example, selecting kiosk mode from a settings menu, and an enable kiosk mode request is sent to the AR-enabled glasses device 100.

[0116] Upon receiving a request from the mobile app 520 to enable kiosk mode, the setup service 820 sets the kiosk mode enabled bit to “TRUE” at 822. The user can then select a kiosk mode active AR app (i.e., the locked AR app 460) from a list of available AR apps (e.g., filters) at 824. The ID of the selected AR app (e.g., AR app 460) is provided to the setup service 820, which sets the kiosk mode active AR app to the ID of the selected AR app 460 at 826. The setup service 820 or another service then downloads the settings and service / API metadata associated with the ID of the selected AR app 460 from the server system 498 or from local storage at 828. The service / API metadata of the AR app 460 is pulled at 830 and saved in persistent storage at 832. A restart request prompt is then sent to the mobile app 520.

[0117] Upon receiving the restart request prompt, at 840, the mobile app 520 prompts the user to restart the AR-enabled glasses device 100. If the user does not choose to restart at 842, the process ends at 844, and the AR-enabled glasses device 100 can implement a conventional kiosk mode (without resource optimization). On the other hand, if the user chooses to restart the AR-enabled glasses device 100 at 842, the AR-enabled glasses device 100 restarts at 846 and enters the system startup phase 850.

[0118] In the system startup phase 850, a processor (e.g., Figure 4 The high-speed processor 432 of the AR-enabled glasses device 100 reads the kiosk mode enable bit at 852. If it is determined at 854 that the kiosk mode is not enabled, all services are turned on in a conventional manner at 856. However, if it is determined at 854 that the kiosk mode is enabled, then at 858, a list of required services of the selected AR app 460 is read from the service / API metadata of the selected AR app 460 saved to the persistent storage at 832. Then, at 860, only the required services / APIs of the selected AR app 460 are turned on. At 862, the selected AR app 460 is turned on, and an appropriate user interface (UI) for rendering the selected AR app 460 is presented to the display of the AR-enabled glasses device 100.

[0119] In the example configuration, whenever there is a request from a component in the system to launch an AR app 460, the request is intercepted by the “AR request converter” 870. If it is determined at 872 that kiosk mode is enabled, the selected AR app 460 is locked, and switching to another AR app is not allowed except for the locked AR app 460 that is active for kiosk mode. In kiosk mode, navigation to the home screen (e.g., the AR app carousel) is not allowed. For example, if kiosk mode is enabled, the ID of the kiosk mode active AR app (the selected AR app 460) is read at 874, and the AR app request is replaced with the kiosk mode active AR app 460 at 876, and the kiosk mode active AR app 460 is launched. At 878, the locked kiosk mode AR app 460 is displayed on the display of the AR-enabled glasses device 100. However, if kiosk mode is not enabled, the selected AR app 460 is launched at 880. In this case (kiosk mode is not enabled), the selected AR app 460 can be selected from the home screen (e.g., filter wheel) in a conventional manner, and at 882, the selected AR app 460 and / or the AR app wheel is displayed to the display of the AR-enabled eyewear device 100. The process ends at 884.

[0120] In the above configuration, the AR app can be a filter transmitted from Lens Studio implemented by the server system 498 to be used as a UI for the AR-enabled glasses device 100. Alternatively, the developer can add filters to Lens Studio, or create new UIs, which are selected for display on the AR-enabled glasses device 100. In each case, those filters that are enabled for use in resource-optimized kiosk mode will include service / API metadata that identifies the required services and APIs for the associated filters. Similarly, for AR applications other than filters, the same process can be followed to identify and download AR applications with the following metadata that identifies the required services and APIs for operating the corresponding AR applications.

[0121] The scope of protection is limited only by the claims that now follow. When interpreted in light of this specification and subsequent prosecution history, the scope is intended and should be interpreted to be as broad as consistent with the ordinary meaning of the language used in the claims and to encompass all structural and functional equivalents. Nonetheless, none of the claims are intended to encompass subject matter that does not satisfy the requirements of Sections 101, 102, or 103 of the Patent Act, nor should they be interpreted in such a manner. Any unintended inclusion of such subject matter is hereby disclaimed.

[0122] Except as stated immediately above, nothing stated or described is intended or should be construed as conferring upon the public any element, step, feature, object, benefit, advantage, or equivalent, whether or not recited in the claims.

[0123] It will be understood that the terms and expressions used herein have the common meaning consistent with these terms and expressions relative to their corresponding respective investigations and research fields, unless otherwise specified herein. Relational terms such as first and second can be used only to distinguish one entity or action from another entity or action, without necessarily requiring or implying any actual such relationship or order between these entities or actions. The term "comprises", "comprising", "includes", "including" or any other variant thereof is intended to cover non-exclusive inclusion, so that the process, method, article or device that includes or includes a series of elements or steps not only includes these elements or steps, but also can include other elements or steps that are not explicitly listed or inherent to such process, method, article or device. In the absence of further restrictions, an element starting with "one" or "an" does not exclude the presence of additional identical elements in the process, method, article or device that includes the element.

[0124] Unless otherwise indicated, all measurements, values, ratings, positions, quantities, dimensions, and other specifications set forth in this specification (including the following claims) are approximate and not exact. These quantities are intended to have a reasonable range consistent with the functions to which they are related and the customary practices in the art to which they belong. For example, unless otherwise expressly stated, parameter values ​​or similar values ​​may vary from the stated quantity by as much as ±10%.

[0125] In addition, in the foregoing detailed description, various features are grouped together in various examples for the purpose of simplifying the present disclosure. This method of disclosure should not be interpreted as reflecting an intention that the claimed examples require more features than those explicitly recited in each claim. On the contrary, as reflected in the following claims, the subject matter to be protected lies in less than all the features of any single disclosed example. Therefore, the following claims are hereby incorporated into the detailed description, and each claim stands on its own as a separately claimed subject matter.

[0126] Although the foregoing has described what is the best mode and other examples, it should be understood that various modifications may be made therein, and the subject matter disclosed herein may be implemented in various forms and examples, and they may be applied to many applications, only some of which are described herein. The following claims are intended to claim all modifications and variations that fall within the true scope of the present concept.

Claims

1. A glasses device, comprising: a memory storing instructions; and a processor coupled to the memory, wherein the processor executes the instructions to configure the eyewear device to enter a kiosk mode by executing instructions including: In response to the request to enter the kiosk mode for a selected application, determining which services and application programming interfaces (APIs) are needed to execute the selected application; storing the determined identities of services and APIs required to execute the selected application; Restarting the eyewear device; Open the selected app; and Only those services and APIs identified by the identification are enabled for execution during operation of the selected application in the kiosk mode.

2. The eyewear device according to claim 1, wherein: The processor also executes instructions to enter / exit the kiosk mode by selecting / deselecting a kiosk bit.

3. The eyewear device according to claim 1, wherein: During the kiosk mode, the selected application is locked such that a user of the selected application cannot switch to another application or exit the selected application by navigating to at least one of a carousel or a menu.

4. The eyewear device according to claim 1, wherein: The processor executing instructions to determine which services and APIs are required to execute the selected application includes reading metadata associated with the selected application that specifies at least one of a service or an API that the selected application needs to use when operating.

5. The eyeglass device according to claim 4, wherein: The metadata is in a format including at least one of Extensible Markup Language (XML) or JavaScript Object Notation (JSON).

6. The eyewear device according to claim 4, wherein: The metadata includes a set of predefined APIs mapped to a set of services required to execute the selected application.

7. The eyeglass device according to claim 4, wherein: The processor executes the instructions to determine which services and APIs are required to execute the selected application, including: parsing the metadata of the selected application to find a service / API metadata declaration that identifies at least one of the services or APIs required to execute the selected application, and storing the service / API metadata declaration as the identification.

8. The eyeglass device according to claim 7, wherein: The processor executes instructions to enable only those services and APIs identified by the identifier to be executed during operation of the selected application in the kiosk mode including: reading the service / API metadata declaration and using the service / API metadata declaration after reboot to determine the services and APIs to be executed for the selected application when the kiosk mode is turned on.

9. The eyeglass device according to claim 7, wherein: When the kiosk mode has been selected and the selected application does not include the service / API metadata declaration, the processor further executes instructions to present a warning message on the paired mobile device, the warning message stating that the selected application is not optimized for the kiosk mode and that system services and APIs of the eyewear device are run in the kiosk mode by default, rather than enabling only those services and APIs identified by the identifier to execute during operation of the selected application in the kiosk mode.

10. The eyewear device according to claim 1, wherein: The processor executes the instructions to determine which services and APIs are required to execute the selected application, including: receiving an identifier of the selected application, and retrieving the selected application from at least one of the memory or the server using the identifier of the selected application, the retrieved application including: service / API metadata identifying all required services and APIs for the operation of the selected application.

11. The eyeglass device according to claim 1 further comprises a request converter which intercepts a request from a component of the eyeglass device to open a selected application, and if the kiosk mode is enabled, the selected application is locked, thereby not allowing switching to another application except for the active locked application for the kiosk mode.

12. The eyewear device according to claim 1, wherein: The processor executes instructions to determine which services and APIs are needed to execute the selected application including: receiving a request from an associated mobile device for all available Boolean values ​​of settings belonging to a configuration category or configuration set that can be changed by the associated mobile device, and in response, dynamically pulling the available settings and adding new settings in a single remote procedure call (RPC) without updating the associated mobile device.

13. A method for configuring an eyewear device to enter a kiosk mode, comprising: receiving a request to enter the kiosk mode for a selected application; In response to the request, determining which services and application programming interfaces (APIs) are needed to execute the selected application; storing the determined identities of services and APIs required to execute the selected application; Restarting the eyewear device; Open the selected app; and Only those services and APIs identified by the identification are enabled for execution during operation of the selected application in the kiosk mode.

14. The method according to claim 13, wherein: Determining which services and APIs are required to execute the selected application includes reading metadata associated with the selected application, the metadata specifying at least one of a service or an API that the selected application needs to use when operating.

15. The method according to claim 14, wherein: Determining which services and APIs are required to execute the selected application also includes parsing metadata of the selected application to find a service / API metadata declaration identifying at least one of the services or APIs required to execute the selected application, and storing the service / API metadata declaration as the identification.

16. The method according to claim 15, wherein: Enabling only those services and APIs identified by the identification to execute during operation of the selected application in the kiosk mode includes reading the service / API metadata declaration and using the service / API metadata after reboot to determine services and APIs to execute for the selected application when the kiosk mode is turned on.

17. The method according to claim 15, wherein: When the kiosk mode has been selected and the selected application does not include the service / API metadata declaration, a warning message is presented on the paired mobile device, stating that the selected application is not optimized for the kiosk mode and that the system services and APIs of the eyewear device are run in the kiosk mode by default, rather than enabling only those services and APIs identified by the identifier to execute during operation of the selected application in the kiosk mode.

18. The method according to claim 14, wherein: Determining which services and APIs are required to execute the selected application includes: receiving an identifier of the selected application, and using the identifier of the selected application to retrieve the selected application from at least one of the memory or server of the eyeglass device, the retrieved application including: service / API metadata identifying all required services and APIs for the operation of the selected application.

19. The method according to claim 13, wherein: Determining which services and APIs are required to execute the selected application includes automatically inferring which services and APIs are used by the selected application during operation through static analysis of the selected application.

20. A non-transitory computer-readable storage medium storing instructions that, when executed by at least one processor, cause the at least one processor to configure an eyewear device to enter a kiosk mode by performing operations comprising: receiving a request to enter the kiosk mode for a selected application; In response to the request, determining which services and application programming interfaces (APIs) are needed to execute the selected application; storing the determined identities of services and APIs required to execute the selected application; Restarting the eyewear device; Open the selected app; and Only those services and APIs identified by the identification are enabled for execution during operation of the selected application in the kiosk mode.

Citation Information

Patent Citations

  • Remotely changing settings on ar wearable devices

    US20240078147A1