Glasses with customizable notification

By using low-power processors and customizable visual indicators in smart glasses devices, the problem of high resource consumption and information overload is solved, improving the device's battery life and user experience.

CN119846845APending Publication Date: 2025-04-18SNAP INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510008530.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2019-03-29
Filing Date
2020-03-17
Publication Date
2025-04-18

AI Technical Summary

Technical Problem

When existing smart glasses devices present incoming messages to users, their resources consume a lot, resulting in short battery life, and the inability to selectively present messages of interest to users, resulting in the user being overwhelmed by excessive information.

Method used

By filtering incoming notifications using a low-power processor in an electronic glasses device, only messages of interest are notified to the user. Notify users non-invasively using customizable visual indicator animations (such as red, green, and blue LEDs) to avoid dispersing and interfering with user activities.

Benefits of technology

Improves the battery life of electronic glasses devices, increases the efficiency, appeal and practicality of the device, and avoids users' frustration and distraction from excessive information.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119846845A_ABST
    Figure CN119846845A_ABST
Patent Text Reader

Abstract

Systems and methods for generating an alert on an eyewear device are provided. The system and method include receiving, by an eyewear device from a mobile device, data indicating a first combination of notification attributes to trigger a first alert on the eyewear device; determining that the mobile device has received a new notification based on additional data received from the mobile device; determining that the combination of attributes of the new notification matches the first combination of notification attributes; and in response to determining that the combination of attributes of the new notification matches the first combination of notification attributes, obtaining a first visual indicator animation representing a first alert from a storage device of the eyewear device; and activating a visual indicator of the eyewear device according to the retrieved first visual indicator animation to generate a first alert on the eyewear device.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of a patent application with an application date of March 17, 2020, application number 202080038985.0, and invention name “Glasses with customizable notifications”.

[0002] Priority claim

[0003] This application claims the benefit of priority to U.S. patent application Ser. No. 16 / 370,219, filed Mar. 29, 2019, which is incorporated herein by reference in its entirety. Background Art

[0004] Some electronically enabled eyewear devices, such as so-called smart glasses, allow a user to selectively capture images and videos while the user is engaged in certain activities. Such devices include an integrated camera that can be selectively activated to capture images of the user's environment. Such images can then be downloaded to the user's mobile device and shared with other users. BRIEF DESCRIPTION OF THE DRAWINGS

[0005] The various figures in the drawings illustrate only example embodiments of the present disclosure and should not be considered limiting of its scope.

[0006] Figure 1 is a block diagram illustrating an example messaging system for exchanging data (eg, messages and associated content) over a network according to an example embodiment.

[0007] Figure 2 is a schematic diagram illustrating data that may be stored in a database of a messaging server system according to an example embodiment.

[0008] Figure 3 is a schematic diagram illustrating the structure of a message generated by a messaging client application for communication according to an example embodiment.

[0009] Figure 4 is a perspective view of an eyeglass apparatus according to example embodiments.

[0010] Figure 5 is a block diagram illustrating an example notification management system according to an example embodiment.

[0011] Figure 6 is a flow diagram illustrating an example operation of a notification management system according to an example embodiment.

[0012] Figures 7 and 8 are illustrative screens of a graphical user interface for customizing notifications of a notification management system according to an example embodiment.

[0013] Fig. 9is a block diagram illustrating a representative software architecture that may be used in conjunction with the various hardware architectures described herein, according to an example embodiment.

[0014] Fig.10 is a block diagram illustrating components of a machine capable of reading instructions from a machine-readable medium (eg, a machine-readable storage medium) and performing any one or more of the methodologies discussed herein, according to example embodiments. DETAILED DESCRIPTION

[0015] The following description discusses illustrative embodiments of the present disclosure. In the following description, for the purpose of explanation, many specific details are set forth to provide an understanding of the various embodiments of the disclosed subject matter. However, it is apparent to those skilled in the art that the embodiments of the disclosed subject matter can be practiced without these specific details. Typically, well-known instruction instances, protocols, structures, and techniques need not be shown in detail.

[0016] Typical smart glasses platforms allow users to read their text messages within the smart glasses. Such platforms are configured to display all messages received by a given user within the lenses of the smart glasses. While such systems generally work well in providing users with all of their messages without disengaging from an activity (e.g., without looking at the user's phone), such devices can overwhelm the user with too much information, making such presentation counterproductive. That is, the device cannot selectively present messages of interest to the user, which in turn ultimately makes the user more frustrated and ultimately distracts the user from the activity they are performing.

[0017] Furthermore, the typical way of presenting all incoming messages in the lenses of smart glasses ends up consuming a lot of processing and battery resources. This is because such devices use standard resource-intensive programming languages ​​and operations to process incoming messages and further use additional resources to generate such messages for display. As a result, the battery life of these typical smart glasses is very limited, requiring the user to constantly charge the smart glasses for use, which loses the appeal and interest of using smart glasses.

[0018] The disclosed embodiments improve the efficiency of using an electronic device by selectively notifying a user of an electronic eyeglass device of incoming messages received by another device, such as a mobile phone. When a message is received in a non-invasive manner by other client devices, the user is notified of the message. In particular, when the electronic eyeglass device receives a notification from other client devices about a message or a notification received by other client devices, the electronic eyeglass device processes the notification using a filtering process to determine whether the message is of interest to the user. The user of the electronic eyeglass device is notified of any notifications that are determined to be of interest to the user through a visual indicator, such as a dedicated light emitting diode. In this way, the user is not notified of notifications that the user is not interested in, which avoids distracting and interfering with the user's performance of activities.

[0019] In an embodiment, the filtering process includes using a low-power processor that executes a low-power process on the electronic glasses device to determine whether the notification includes a pre-specified notification attribute. Notifications that do not have the pre-specified attributes are determined to be of no interest to the user and are filtered out, or are simply discarded to avoid distracting the user of the electronic glasses device. If it is determined that the notification has a pre-specified attribute that the user is interested in, the electronic glasses device activates a low-power visual indicator in the form of red, green and blue light-emitting diodes integrated into the electronic glasses. The visual indicator is activated according to a specific animation that can be customized by the user (such as a specific color and / or flashing pattern), which represents a specific notification, which notifies the user of the content of the notification in a non-invasive manner. Because the processor executes a low-power process to filter incoming notifications, and because the visual indicator of the notification is a low-power device, the battery life of the electronic glasses device is improved. This increases the efficiency, attractiveness and practicality of the electronic glasses device.

[0020] Figure 1 1 is a block diagram illustrating an example messaging system 100 for exchanging data (e.g., messages and associated content) over a network 109. The messaging system 100 includes a plurality of client devices 102, each of which hosts a plurality of applications including a messaging client application 104 and an operating system 105. Each messaging client application 104 is communicatively coupled to other instances of the messaging client application 104 and a messaging server system 108 over a network 109 (e.g., the Internet). The messaging system 100 includes an eyeglass device 119 that hosts a notification management system 107 and other applications. The eyeglass device 119 communicates with the notification management system 107 via the network 109 (which may include communicating via a dedicated short-range communication path, such as Bluetooth). TM or WiFi direct connection) is communicatively coupled to the client device 102.

[0021] Each messaging client application 104 is capable of communicating and exchanging data with another messaging client application 104 and with the messaging server system 108 and the eyeglass device 119 via the network 109. The data exchanged between the messaging client applications 104 and the data exchanged between the messaging client applications 104, the eyeglass device 119 and the messaging server system 108 include functions (e.g., commands to call functions) and payload data (e.g., text, audio, video, notifications, or other multimedia data).

[0022] The messaging client application 104 presents a graphical user interface to the user for customizing notifications that trigger the visual indicator animation in the eyeglass device 119. For example, the graphical user interface allows the user to specify which users or friends in the contact list the user is interested in. For such a user, the user can select a first animation style for the visual indicator of the eyeglass device 119. For example, the user can specify the first animation style as including six red flashes within a span of 3 seconds. The graphical user interface allows the user to associate the first animation style with the selected user or friend so that when a message (e.g., a single message service (SMS) or a multimedia message) is received from these friends, the visual indicator of the eyeglass device 119 is activated according to the first animation style. As another example, the graphical user interface allows the user to specify which applications the user is interested in implemented on the client device 102. For such applications, the user can select a second animation style for the visual indicator of the eyeglass device 119. For example, the user can specify the second animation style as including two green flashes within a span of 5 seconds. The graphical user interface allows the user to associate a second animation style with a selected application so that when the selected application generates a notification (e.g., flight alert, operating status change, reminder, reward, etc.), the visual indicator of the eyewear device 119 is activated according to the second animation style.

[0023] After the user confirms that the selection on the messaging client application 104 indicates different animations of the visual indicator for different users and / or applications, the client device 102 communicates the settings to the eyewear device 119 in the form of notification attributes. In particular, the messaging client application 104 sends a list of animations and the associated notification attributes for each animation to the notification management system 107. The notification attributes include the application name, title, subtitle, and message content representing the various users and / or user-selected applications. The notification management system 107 stores the notification attributes and the associated animations in a local non-volatile storage device.

[0024] In some embodiments, the user can access a graphical user interface on the client device 102 to view a list of previously set notifications. The user can disable, delete, or modify any previously set notifications on the client device 102. In response to receiving any changes to notifications on the client device 102, the client device 102 communicates with the notification management system 107 to implement these changes on the eyeglass device 119. For example, if the user previously enabled notifications with specific animations for a specific user or user group, the notification attributes and corresponding animations are stored on the eyeglass device 119. This enables the eyeglass device 119 to activate a visual indicator when a message or notification from a specific user or user group is received on the client device 102. The user can then access the graphical user interface to delete or disable notifications previously enabled for a specific user or user group, and in response, the client device communicates with the eyeglass device 119 to instruct the eyeglass device 119 to delete the notification attributes associated with the user or user group. This prevents the eyeglass device 119 from activating a visual indicator when a message or notification from a specific user or user group is received on the client device 102.

[0025] In an embodiment, the messaging client application 104 and all other applications implemented on the client device 102 utilize the operating system 105 to trigger notifications and alerts on the client device 102. The operating system 105 receives the alert and generates a notification (such as a vibration) on the client device 102 to notify the user that one of the applications has triggered a notification. In particular, when the messaging client application 104 receives an SMS or other message from a friend of the user on the social networking system 122, the messaging client application 104 sends an instruction to the operating system 105 to trigger the notification. In response, in addition to displaying a prompt identifying the message, the operating system 105 controls an electronic mechanism on the client device 102, such as a motor, to generate a vibration to notify the user of the message. Such a notification may be provided to the operating system 105 along with a plurality of attributes, including an application name (e.g., the name of the messaging client application 104 or other application identifier, a title, such as the name of the SMS or contact from whom the message has been received, a subtitle, and the message content).

[0026] The notification management system 107 communicates with the operating system 105 of the client device 102 to receive notification attributes. In particular, when the eyeglass device 119 has established a secure Bluetooth Low Energy (BLE) connection with the client device 102, the notification management system 107 can receive all notifications received by the operating system 105 from one or more local applications on the client device 102. The notification management system 107 determines whether to activate the local visual indicator of the eyeglass device 119 based on the previously defined and selected notification attributes.

[0027] For example, the notification management system 107 loads each previously stored notification attribute from non-volatile memory to a volatile memory of a local processor, such as a cache line or register, one at a time. The notification management system 107 also loads the currently received notification attribute into the volatile memory of the local processor and performs a simple, uncomplicated comparison operation using the local processor. If the comparison indicates that the attributes match, the notification management system 107 obtains an animation associated with the currently loaded previously stored notification attribute and activates a local visual indicator based on the obtained animation. If the comparison indicates that any of the attributes do not match the attributes of the received notification, the notification management system 107 loads the next notification attribute into a volatile memory location for comparison. If none of the previously stored notification attributes match the currently received notification attributes, the notification management system 107 discards the notification received from the operating system 105 and prevents the visual indicator of the eyewear device 119 from being activated.

[0028] The messaging server system 108 provides server-side functionality to specific messaging client applications 104 via the network 109. Although certain functions of the messaging system 100 are described herein as being performed by the messaging client application 104 or by the messaging server system 108, it should be understood that the location of certain functions in the messaging client application 104 or the messaging server system 108 is a design choice. For example, it may be technically preferable to first deploy certain technologies and functions within the messaging server system 108 and then migrate the technologies and functions to the messaging client application 104 where the client device 102 has sufficient processing power.

[0029] The messaging server system 108 supports various services and operations provided to the messaging client applications 104. Such operations include sending data to the messaging client applications 104, receiving data from the messaging client applications 104, and processing data generated by the messaging client applications 104. As examples, the data may include message content, client device information, geolocation information, media annotations and overlays, virtual objects, message content persistence conditions, social network information, and live event information. The data exchange in the messaging system 100 is invoked and controlled through functions available through the user interface (UI) of the messaging client applications 104.

[0030] Turning now specifically to the messaging server system 108, an application program interface (API) server 110 is coupled to and provides a programming interface to an application server 111. The application server 111 is communicatively coupled to a database server 117, which facilitates access to a database 120 in which data associated with messages processed by the application server 111 is stored.

[0031] The API server 110 is particularly handled, and the server 110 receives and sends message data (e.g., commands and message payloads) between the client device 102 and the application server 111. Specifically, the API server 110 provides a set of interfaces (e.g., routines and protocols) that can be called or queried by the messaging client application 104 in order to invoke the functions of the application server 111. The API server 110 exposes various functions supported by the application server 111, including: account registration; login functionality; sending messages from a particular messaging client application 104 to another messaging client application 104 via the application server 111; sending media files (e.g., images or videos) from the messaging client application 104 to the messaging server application 114 for possible access by another messaging client application 104; setting of collections of media data (e.g., stories); retrieval of such collections; retrieval of a friend list of a user of the client device 102; retrieval of messages and content; adding and removing friends from a social graph; the position of friends in a social graph; access to user conversation data; access to avatar information stored on the messaging server system 108; and opening application events (e.g., related to the messaging client application 104).

[0032] The application server 111 hosts multiple applications and subsystems, including a messaging server application 114, an image processing system 116, and a social networking system 122. The messaging server application 114 implements multiple message processing techniques and functions, which particularly relate to the aggregation and other processing of content (e.g., text and multimedia content) included in messages received from multiple instances of the messaging client application 104. As will be described in further detail, text and media content from multiple sources can be aggregated into collections of content (e.g., referred to as stories or galleries). The messaging server application 114 then makes these collections available to the messaging client application 104. Given the hardware requirements of such processing, the messaging server application 114 may also perform other processor and memory intensive processing of the data on the server side.

[0033] The application server 111 also includes an image processing system 116 that is dedicated to performing various image processing operations, typically with respect to images or videos received within the payload of messages at the messaging server application 114 .

[0034] The social networking system 122 supports various social networking functions and services and makes these functions and services available to the messaging server application 114. To this end, the social networking system 122 maintains and accesses an entity graph within the database 120. Examples of functions and services supported by the social networking system 122 include identifying other users of the messaging system 100 with whom a particular user has a relationship or with whom the particular user is "following" and also identifying other entities and interests of the particular user. Such other users may be referred to as friends of the user. The social networking system 122 may access location information associated with each of the user's friends to determine where they live or are currently geographically located. The social networking system 122 may maintain a location profile for each of the user's friends, indicating the geographic location where the user's friends reside.

[0035] The application server 111 is communicatively coupled to a database server 117 , which facilitates access to a database 120 where data associated with messages processed by the messaging server application 114 is stored.

[0036] Figure 2 is a schematic diagram illustrating data that may be stored in a database 120 of a messaging server system 108 according to certain example embodiments. Although the contents of the database 120 are illustrated as including a plurality of tables, it should be understood that the data may be stored in other types of data structures (e.g., as an object-oriented database).

[0037] The database 120 includes message data stored in a message table 214. The entity table 202 stores entity data including an entity graph 204. The entities for which records are maintained in the entity table 202 may include individuals, corporate entities, organizations, objects, places, events, etc. Regardless of the type, any entity about which the messaging server system 108 stores data may be a recognized entity. Each entity has a unique identifier and an entity type identifier (not shown).

[0038] The entity graph 204 also stores information about relationships and associations between entities. The relationships can be social, professional (e.g., working in the same company or organization), interest-based, or activity-based, just to name a few.

[0039] The message table 214 may store a collection of conversations between a user and one or more friends or entities. The message table 214 may include various attributes for each conversation, such as a list of participants, the size of the conversation (e.g., the number of users and / or the number of messages), the chat color of the conversation, a unique identifier for the conversation, and any other conversation-related features.

[0040] The database 120 also stores annotation data in the form of an example of a filter in the annotation table 212. The database 120 also stores the annotation content received in the annotation table 212. The filter for which data is stored in the annotation table 212 is associated with a video (whose data is stored in the video table 210) and / or an image (whose data is stored in the image table 208) and is applied to the video and / or image. In one example, the filter is displayed as an overlay superimposed on an image or video during presentation to the recipient user. The filter can be of various types, including a user-selected filter from a filter library presented to the sender user by the messaging client application 104 when the sender user is composing a message. Other types of filters include geographic location filters (also referred to as geographic filters) that can be presented to the sender user based on geographic location. For example, based on geographic location information determined by a global positioning system (GPS) unit of the client device 102, the messaging client application 104 can present a geographic location filter specific to a neighborhood or a specific location within the UI. Another type of filter is a data filter, which may be selectively presented to the sender user by the messaging client application 104 based on other input or information collected by the client device 102 during the message creation process. Examples of data filters include the current temperature at a particular location, the current speed at which the sender user is traveling, the battery life of the client device 102, or the current time.

[0041] Other annotation data that may be stored in the image table 208 is so-called "shot" data. A "shot" may be real-time special effects and sounds that may be added to an image or video.

[0042] As described above, the video table 210 stores video data, which in one embodiment is associated with messages (whose records are maintained in the message table 214). Similarly, the image table 208 stores image data associated with messages (whose message data is stored in the entity table 202). The entity table 202 can associate various annotations from the annotation table 212 with various images stored in the image table 208 and various videos stored in the video table 210.

[0043] The story table 206 stores data related to a collection of messages and associated images, video, or audio data that are compiled into a collection (e.g., a story or gallery). The creation of a particular collection can be initiated by a particular user (e.g., each user whose record is maintained in the entity table 202). A user can create a "personal story" in the form of a collection of content that the user has created and sent / broadcast. To this end, the UI of the messaging client application 104 may include a user-selectable icon to enable the sender user to add specific content to his or her personal story.

[0044] A collection may also constitute a "live story," which is a collection of content from multiple users that is created manually, automatically, or using a combination of manual and automatic techniques. For example, a "live story" may constitute a curated stream of user-submitted content from various locations and events. For example, a user whose client device has location services enabled and is at a common location event at a particular time may be presented with an option via the UI of the messaging client application 104 to contribute content to a particular live story. A live story may be identified by the messaging client application 104 for a user based on his or her location. The end result is a "live story" told from a common perspective.

[0045] Another type of content collection is called a "location story," which enables users whose client devices 102 are located within a particular geographic location (e.g., on a college or university campus) to contribute to a particular collection. In some embodiments, contributions to location stories may require secondary authentication to verify that the end user belongs to a particular organization or other entity (e.g., is a student on a university campus).

[0046] Figure 3 is a schematic diagram illustrating the structure of a message 300 generated by a messaging client application 104 for communication with another messaging client application 104 or a messaging server application 114 according to some embodiments. The content of a particular message 300 is used to populate a message table 214 stored in a database 120 accessible by a messaging server application 114. Similarly, the content of the message 300 is stored in memory as "in-transit" or "in-flight" data of a client device 102 or an application server 111. The message 300 is shown as including the following components:

[0047] ●Message identifier 302: A unique identifier that identifies the message 300.

[0048] • Message text payload 304 : The text to be generated by the user via the UI of the client device 102 and included in the message 300 .

[0049] • Message image payload 306 : Image data captured by a camera component of the client device 102 or retrieved from the memory of the client device 102 and included in the message 300 .

[0050] • Message video payload 308 : Video data captured by a camera component or retrieved from a memory component of the client device 102 and included in the message 300 .

[0051] • Message audio payload 310 : audio data captured by a microphone or retrieved from a memory component of the client device 102 and included in the message 300 .

[0052] • Message annotation 312: Annotation data representing an annotation (eg, a filter, sticker, or other enhancement) to be applied to the message image payload 306, the message video payload 308, or the message audio payload 310 of the message 300.

[0053] Message duration parameter 314: indicates the content of the message in seconds (e.g., message image payload 306, message video payload 308, message audio payload 310)

[0054] The parameter value for the amount of time to be presented to or made accessible to the user via the messaging client application 104 .

[0055] Message geolocation parameters 316: Geolocation data (e.g., latitude and longitude coordinates) associated with the content payload of the message. Multiple message geolocation parameter 316 values ​​may be included in the payload, with each of these parameter values ​​being associated with a content item included in the content (e.g., a specific image in the message image payload 306 or a specific video in the message video payload 308).

[0056] Message story identifier 318: An identifier value used to identify one or more content sets associated with a particular content item in the message image payload 306 of the message 300 (e.g.,

[0057] "Stories"). For example, multiple images within the message image payload 306 may each be associated with multiple content collections using identifier values.

[0058] Message tags 320: Each message 300 may be tagged with a plurality of tags, each tag indicating the subject of the content included in the message payload. For example, where a particular image included in the message image payload 306 depicts an animal (e.g., a lion), a tag value indicating the relevant animal may be included within the message tags 320. The tag values ​​may be manually generated based on user input or may be automatically generated using, for example, image recognition.

[0059] • Message sender identifier 322: An identifier (eg, a messaging system identifier, an email address, or a device identifier) ​​that indicates the user of the client device 102 on which the message 300 was generated and from which the message 300 was sent.

[0060] Message recipient identifier 324: An identifier (eg, a messaging system identifier, an email address, or a device identifier) ​​that indicates the user of client device 102 to which message 300 is addressed. In the case of a conversation between multiple users, this identifier may indicate each user participating in the conversation.

[0061] The content (e.g., value) of each component of message 300 may be a pointer to a location in a table storing content data values. For example, the image value in message image payload 306 may be a pointer (or address) to a location in image table 208. Similarly, the value in message video payload 308 may point to data stored in video table 210, the value stored in message annotation 312 may point to data stored in annotation table 212, the value stored in message story identifier 318 may point to data stored in story table 206, and the values ​​stored in message sender identifier 322 and message recipient identifier 324 may point to user records stored in entity table 202.

[0062] Figure 4 A front perspective view of an eyeglass device 119 in the form of a pair of smart glasses including a notification management system 107 according to an example embodiment is shown. The eyeglass device 119 includes a body 103 including a front piece or frame 106 and a pair of temples 109 connected to the frame 106 (which are used to support the frame 106 in a suitable position on the user's face when the eyeglass device 119 is worn). The frame 106 can be made of any suitable material (such as plastic or metal), including any suitable shape memory alloy.

[0063] Eyeglass device 119 includes a pair of optical elements in the form of a pair of lenses 112 held by corresponding optical element supports in the form of a pair of edges 115 forming part of frame 106. Edges 115 are connected by beams 118. In other embodiments, one or both of the optical elements may be a display, a display assembly, or a lens and display combination.

[0064] The frame 106 includes a pair of end pieces 121 defining lateral ends of the frame 106. In this example, various electronic components are disposed in one or both of the end pieces 121. The temples 109 are coupled to the respective end pieces 121. In this example, the temples 109 are coupled to the frame 106 by respective hinges so as to be hingedly movable between a wearable mode and a folded mode in which the temples 109 are pivoted toward the frame 106 to be stored substantially flat against it. In other embodiments, the temples 109 may be coupled to the frame 106 by any suitable means, or may be rigidly or fixedly secured to the frame 106 to be integral therewith.

[0065] Each of the temples 109 includes a front portion that is coupled to the frame 106 and any suitable rear portion for coupling to the user's ear, such as at Figure 4 In some embodiments, the frame 106 is formed from a single piece of material so as to have a single or unitary construction. In some embodiments, the entire body 103 (including the frame 106 and the temples 109) can be a single or unitary construction.

[0066] The eyewear device 119 has an onboard electronic device assembly, including a computing device (such as a computer 124), or a low-power processor, which in different embodiments can be of any suitable type to be carried by the body 103. In some embodiments, the computer 124 is at least partially placed in one or both of the temples 109. In this embodiment, the various components of the computer 124 are placed in the cross-end piece 121 of the frame 106. The computer 124 includes one or more processors together with a memory (e.g., a volatile storage device, such as a random access memory or register), a storage device (e.g., a non-volatile storage device), a wireless communication circuit (e.g., a BLE communication device and / or a WiFi direct device), and a power supply. The computer 124 includes low-power circuits, high-speed circuits, and in some embodiments, a display processor. Various embodiments may include these elements in different configurations or integrated together in different ways.

[0067] The computer 124 additionally includes a battery 127 or other suitable portable power source. In one embodiment, the battery 127 is disposed in one of the temples 109. Figure 4 In the illustrated eyewear device 119 , a battery 127 is shown disposed in one of the end pieces 121 , electrically coupled to the remainder of the computer 124 disposed in the corresponding end piece 121 .

[0068] The eyeglass device 119 is camera-enabled, including in this example a camera 130 mounted in one of the end pieces 121 and facing forward so as to be approximately aligned with the direction of view of the wearer of the eyeglass device 119. The camera 130 is configured to capture digital images (also referred to herein as digital photographs or pictures) and digital video content. The operation of the camera 130 is controlled by a camera controller provided by the computer 124, and image data representing images or videos captured by the camera 130 is temporarily stored on a memory forming part of the computer 124. In some embodiments, the eyeglass device 119 may have a pair of cameras 130, for example positioned by the respective end pieces 121.

[0069] As will be described in more detail below, the onboard computer 124 and the lens 112 are configured together to provide a notification management system 107 that automatically presents an alert to the user by animating one or more visual indicators 401, such as one or more red, green, and blue light emitting diodes (LEDs). The visual indicators 401 can be provided on any portion of the eyewear device 119. For example, a first of the visual indicators 401 can be included on one of the end pieces 121, and a second of the visual indicators 401 (not shown) can be included on a second of the end pieces 121. The visual indicators 401 can be animated so that they emit light having a specific color for a specific duration and flash a specific number of times. The visual indicators 401 can operate synchronously or asynchronously. When the visual indicators 401 operate synchronously, the visual indicators 401 are animated to generate the same pattern of light of the same color. When the visual indicators 401 operate asynchronously, one visual indicator emits light of a first color (orange) that flashes a first number of times intermittently, wherein each flash lasts a first amount of time; and another visual indicator emits light of a second color (blue) that flashes a second number of times intermittently, wherein each flash lasts a second amount of time. The animation can be specified by a user of the client device (e.g., mobile device) 102 using a graphical user interface of the messaging client application 104.

[0070] The eyeglass device 119 also includes one or more input and output devices that allow communication with and control of the camera 130. In particular, the eyeglass device 119 includes one or more input mechanisms for enabling user control of one or more functions of the eyeglass device 119. In this embodiment, the input mechanism includes a button 402 mounted on the frame 106 so that the user can reach the top of one of the end pieces 121 to press. In addition to any other functions that can be controlled by operation of the button 402, the button 402 in this example enables the user to trigger photo capture of the camera 130. In the current example embodiment, a photo capture command can be issued by a single relatively short button press (e.g., less than one second), while a video capture command can be issued by a press-and-hold action.

[0071] The eyewear device 119 also includes one or more communication devices, such as a Bluetooth Low Energy (BLE) communication interface. The BLE communication interface enables the eyewear device 119 to wirelessly communicate with the client device 102. Other forms of wireless communication may also be used instead of or in addition to the BLE communication interface (such as a WiFi direct interface). The BLE communication interface implements a standard number of BLE communication protocols.

[0072] The first communication protocol among the communication protocols implemented by the BLE interface of the eyeglass device 119 enables an unencrypted link to be established between the eyeglass device 119 and the client device 102. In this first protocol, the link layer communication (physical interface or medium) between the eyeglass device 119 and the client device 102 includes unencrypted data. In this first protocol, the application layer (the communication layer that operates on the physically exchanged data) encrypts and decrypts the data that is physically exchanged in unencrypted form through the link layer of the BLE communication interface. In this way, the data exchanged through the physical layer can be freely read by the eavesdropping device, but the eavesdropping device will not be able to decrypt the exchanged data without performing the decryption operation in the application layer.

[0073] The second communication protocol in the communication protocol implemented by the BLE interface of the eyeglass device 119 enables an encrypted link to be established between the eyeglass device 119 and the client device 102. In this second protocol, the link layer communication (physical interface) between the eyeglass device 119 and the client device 102 receives data from the application layer and adds a first type of encryption to the data before exchanging the data through the physical medium. In this second protocol, the application layer (the communication layer that operates on the physically exchanged data) may or may not use the second type of encryption to encrypt and decrypt the data that is physically exchanged in an encrypted form using the first type of encryption through the link layer of the BLE communication interface. That is, the data may be first encrypted by the application layer, and then further encrypted by the physical layer before being exchanged through the physical medium. After being exchanged through the physical medium, the data is then decrypted by the physical layer and then decrypted again by the application layer (e.g., using a different type of encryption). In this way, because the data is encrypted in the physical medium, the data exchanged through the physical layer cannot be read by the eavesdropping device.

[0074] Some applications implemented on the client device 102 using the eyeglass device 119 allow communication between the client device 102 and the eyeglass device 119 only through the second communication protocol through the BLE communication interface. For example, the messaging client application 104 can communicate with the eyeglass device 119 through the first protocol in which data in the physical layer is not encrypted, while the operating system 105 can communicate with the eyeglass device 119 only through the second protocol in which data in the physical layer is encrypted. In some embodiments, the eyeglass device 119 can switch from using the first protocol to using the second protocol to communicate with the client device 102 based on which application attempts to exchange data with the eyeglass device 119. In some embodiments, after the second protocol is configured to communicate with the client device 102, when any one application allows communication using the first protocol, the eyeglass device 119 will communicate with all applications of the client device 102 using the second protocol.

[0075] In some embodiments, the client device 102 communicates with the eyeglass device 119 using a first protocol to exchange images or videos between the messaging client application 104 and the eyeglass device 119. For example, the messaging client application 104 can download all or part of the images and videos stored on the eyeglass device 119 from the eyeglass device 119 using the first protocol. In some embodiments, the user can request to enable notification alerts in the eyeglass device 119 by selecting an option in the messaging client application 104. Enabling notification alerts can cause the visual indicator of the eyeglass device 119 to be selectively and customizable. Animated to emit a light pattern to represent one or more messages received by the client device 102. In such a case, the eyeglass device 119 receives a notification from the operating system 105 (regardless of whether the messaging client application 104 is currently running). The notification indicates that a new message is received or provided by one or more applications implemented on the client device 102 and an alert is generated. In response to receiving a request to enable notification alerts, the eyeglass device 119 can switch from the first protocol to the second protocol so that the eyeglass device can communicate with the operating system 105. To switch to the second protocol, a visual dialog may be presented on the client device 102 to confirm the Bluetooth communication exchange with the eyeglass device 119. Upon receiving confirmation from the user of the client device 102, the second protocol is utilized to communicate with the eyeglass device 119.

[0076] In some embodiments, the eyeglass device 119 is shared between different users and between different client devices 102. For example, because the user of the eyeglass device 119 is interested in receiving notification alerts on the eyeglass device 119, the eyeglass device 119 may currently be communicating with the first client device 102 using the second protocol. After receiving a request to establish communication with the second client device 102, the eyeglass device 119 may determine whether the eyeglass device 119 previously communicated with the second device 102 using the second communication protocol. For example, the eyeglass device 119 stores in a memory a client device identifier and protocol information indicating the protocol used to communicate with the client device. Alternatively, the eyeglass device 119 stores in a memory a client device identifier and an indication of whether notification alerts have been enabled for the client device on the eyeglass device 119. In response to determining that the second client device has not previously communicated with the eyeglass device 119 using the second protocol (e.g., if the memory indicates that the client device identifier is associated with a disabled state of notification alerts), the eyeglass device 119 automatically switches to the first protocol to communicate with the second client device 102. In response to determining that the second client device has previously communicated with the eyeglass device 119 using the second protocol (e.g., if the memory indicates that the client device identifier is associated with an enabled state of notification alerts), the eyeglass device 119 maintains the second protocol and establishes a communication session using the second protocol with the second client device 102. This avoids unnecessarily presenting a dialog to enable Bluetooth communications using the second protocol if a given user of the client device is not interested in receiving notification alerts while using the eyeglass device 119.

[0077] Figure 5 is a block diagram illustrating an example notification management system 107 according to an example embodiment. The notification management system 107 includes a client device identification module 540, a BLE interface module 510, a new notification detection module 519, a notification attribute match detection module 516, a notification attribute selection module 511, an animation selection module 518, and a visual indicator activation module 520.

[0078] The BLE interface module 510 includes an interface device for establishing a BLE connection with a specific client device 102. The BLE interface module 510 implements multiple BLE protocols, including a first BLE protocol in which link layer physical data exchange is not encrypted and a second BLE protocol in which link layer physical data exchange is encrypted.

[0079] The client device identification module 540 communicates with the BLE interface module 510 to determine the device identifier of the client device 102 with which the eyeglass device 119 is communicating. In some embodiments, the client device 102 sends an unencrypted message in a broadcast manner to indicate to nearby devices that the client device 102 is ready to establish a BLE connection. The broadcast message includes the device identifier of the client device 102 and various other Bluetooth-specific parameters. The BLE interface module 510 reads the broadcast message to obtain the device identifier. The BLE interface module 510 communicates with the client device identification module 540 to determine whether the device identifier matches any previously stored device identifier. That is, after the eyeglass device 119 establishes a connection with the new client device 102, the eyeglass device 119 stores the device identifier in the client device identification module 540. The client device identification module 540 also stores an indication of the BLE protocol used to communicate with the associated client device.

[0080] In response to determining that the device identifier received from the nearby device matches the device identifier in the client device identification module 540, the BLE interface module 510 obtains the BLE protocol stored in association with the device identifier in the client device identification module 540. For example, the BLE interface module 510 obtains the corresponding encryption key and the first BLE protocol for communicating with the client device 102 associated with the specific device identifier. The BLE interface module 510 then sends a message with various BLE parameters back to the client device 102 to establish a BLE connection with the client device 102 using the first BLE protocol. In response to determining that the device identifier received from the nearby device matches the device identifier in the client device identification module 540, the client device identification module 540 sends the client device identifier to the notification attribute selection module 511.

[0081] The notification attribute selection module 511 stores a list with notification attributes and corresponding visual indicator animations in the non-volatile memory of the eyeglass device 119. The list can be associated with multiple device identifiers to allow multiple users to share access to the eyeglass device 119. At a given time, only a set of notification attributes associated with the same device identifier may be active. That is, the notification attribute selection module 511 can access or activate a list of notification attributes associated with the device identifier received from the client device identification module 540. In an embodiment, the activated list can be moved to a new temporary storage location of the eyeglass device 119.

[0082] In some embodiments, when a user enables or modifies notification settings on the client device 102 (e.g., via a graphical user interface on the client device 102), new notification attributes are added to the list stored by the notification attribute selection module 511. For example, when a video / image message is received from a particular friend, the user utilizes the graphical user interface to enable notifications on the eyewear device 119, and may also specify an animation type for the visual indicator (e.g., a red light flashes 5 times). In response, the client device 102 sends data with notification attributes associated with the selection to the notification attribute selection module 511, and these notification attributes are stored in the list in association with the identifier of the client device 102. In some embodiments, the notification attribute selection module 511 deletes previously stored notification attributes and corresponding visual indicator animations from the list in response to receiving data from the client device 102 indicating that the user has deleted or changed previously set notification attributes. For example, the user may subsequently access the graphical user interface to delete or disable notifications from a particular friend. In response, the client device 102 passes instructions to the notification attribute selection module 511 to delete the notification attributes associated with the particular friend from the list associated with the identifier of the client device 102. The notification attribute selection module 511 may then remove the corresponding notification attribute from the list stored in the non-volatile storage device to prevent activation of the visual indicator on the eyewear device 119 when a message is received from a particular friend on the client device 102 .

[0083] The new notification detection module 519 receives various data exchanged with the client device 102 from the BLE interface module 510. In an embodiment, the new notification detection module 519 determines that a given set of data corresponds to a notification received from the operating system 105 of the client device 102. In such a case, the new notification detection module 519 obtains a set of attributes (e.g., application name, title, subtitle, message content, etc.) from the newly received notification. The new notification detection module 519 provides the set of notification attributes to the notification attribute matching detection module 516.

[0084] The notification attribute match detection module 516 loads a set of attributes of the new notification to a first storage location of a volatile memory of a processor of the eyeglass device 119, such as a cache line or a register. The notification attribute match detection module 516 obtains notification attributes of a first notification stored in an active list of the notification attribute selection module 511. For example, the obtained notification attributes of the first notification include an application name (e.g., a messaging application identifier), a title (e.g., an SMS message), and a subtitle (e.g., a user identifier). The notification attribute match detection module 516 loads the notification attributes of the first notification to a second storage location of the volatile memory of the processor of the eyeglass device 119. The notification attribute match detection module 516 instructs the processor of the eyeglass device 119 to perform a storage location comparison operation (e.g., an XOR logical operation) on the first and second storage locations to determine whether the storage locations match.

[0085] In response to determining that the comparison operation indicates that the storage locations fail to match (e.g., the XOR logical operation is greater than "0"), such as because at least one of the loaded attributes of the first notification (e.g., the user identifier) ​​fails to match the user identifier stored in the newly received notification attributes (e.g., the subtitle of the newly received notification attributes is different from the subtitle of the first notification), the notification attribute match detection module 516 obtains the attributes of the second active notification from the notification attribute selection module 511. The attributes of the second notification are stored in a second storage location of the volatile memory of the processor to replace the previously stored attributes that failed to match. The notification attribute match detection module 516 instructs the processor to compare the two storage locations again to determine whether they match each other.

[0086] In response to determining that the comparison operation indicates that the storage locations match (e.g., the XOR logical operation is equal to "0"), notification attribute match detection module 516 instructs animation selection module 518 to obtain the visual indicator animation associated with the notification whose attributes match the attributes of the newly received notification. For example, if it is determined that the attributes of the second notification obtained from notification attribute selection module 511 match the attributes of the newly received notification, animation selection module 518 is instructed to obtain the animation stored in association with the second notification.

[0087] The animation selection module 518 accesses a list of notification attributes stored in the activity to obtain an animation of a visual indicator associated with a matching notification. For example, a matching notification (e.g., a second notification) is associated with an animation of a red light flashing 5 times within a span of 3 seconds. The animation selection module 518 provides the obtained animation to the visual indicator activation module 520. In some embodiments, the animation selection module 518 stores a default list of animations associated with specific notification attributes in a non-volatile storage device. For example, a notification attribute having an application title as a messaging application and a title as a text message can be associated with a first animation, and a notification attribute having an application title as an email application and a title as an email can be associated with a second animation. In such cases, the animation selection module 518 can obtain the notification attribute from a second storage location of the volatile memory and search the non-volatile storage device for an animation corresponding to the obtained notification attribute.

[0088] The visual indicator activation module 520 receives the animation and instructs the visual indicator 401 of the eyewear device 119 to activate according to the animation. For example, the animation specifies that the red color flashes 10 times within a span of 10 seconds. In such a case, the visual indicator activation module 520 instructs the visual indicator 401 to turn on the red light output for 0.5 seconds, then turn off for 0.5 seconds and repeat the process for a total of 10 seconds. Any number of different animations can be specified, which differ in light color, on duration, off duration, and the number of times the light is turned on / off in a given time period.

[0089] Figure 6 600 in performing process 600. Process 600 may be implemented in computer-readable instructions executed by one or more processors such that the operations of process 600 may be performed in part or in whole by functional components of notification management system 107; therefore, process 600 is described below with reference thereto by way of example. However, in other embodiments, at least some of the operations of process 600 may be deployed on various other hardware configurations. Therefore, process 600 is not intended to be limited to notification management system 107 and may be implemented in whole or in part by any other component. Some or all of the operations of process 600 may be performed in parallel, in reverse order, or omitted entirely.

[0090] At operation 601, the notification management system 107 receives data from the mobile device via the eyeglass device indicating a first combination of notification attributes that triggers a first alarm on the eyeglass device. For example, the notification attribute selection module 511 stores a list of notification attributes (for one or more users) designated as being of interest by a user of the messaging client application 104 in a non-volatile memory of the eyeglass device 119.

[0091] At operation 602, the notification management system 107 determines that the mobile device has received a new notification. For example, the new notification detection module 519 communicates with the operating system 105 of the client device 102 and establishes a BLE connection with the operating system 105 of the client device 102 to receive notifications generated locally by one or more applications implemented on the client device 102.

[0092] At operation 603, the notification management system 107 determines whether the combination of attributes of the new notification matches the first combination of notification attributes. For example, the notification attribute match detection module 516 utilizes two volatile memory locations of the processor of the eyeglass device 119 to compare the notification attributes of the newly received notification from the operating system 105 with the notification attributes of each active notification obtained from the notification attribute selection module 511 using a simple registration operation. Notifications are sequentially loaded into the same volatile memory location and compared to reduce the number of volatile memory locations required.

[0093] At operation 604, in response to determining that the combination of attributes of the new notification matches the first combination of notification attributes, the notification management system 107 retrieves a first visual indicator animation representing the first alert from a storage device of the eyewear device. For example, the animation selection module 518 obtains an animation of a visual indicator associated with a given notification whose attributes match the attributes of the newly received notification.

[0094] At operation 605, the notification management system 107 activates the visual indicator of the eyeglass device 119 according to the obtained first visual indicator animation to generate a first alert on the eyeglass device 119. For example, the visual indicator activation module 520 activates the visual indicator 401 of the eyeglass device 119 according to the animation provided by the animation selection module 518. In this way, if the specific notification has an attribute of identifying an SMS message received from a first friend and is associated with a first animation (e.g., a red light flashes 6 times within a span of 2 seconds), when it is determined that the newly received notification has an attribute of identifying an SMS message received from the first friend, the visual indicator 401 is activated according to the first animation. As another example, if the specific notification has an attribute of identifying an email received from anyone and is associated with a second animation (e.g., a green light flashes 2 times within a span of 2 seconds), when it is determined that the newly received notification has an attribute of identifying an email message, the visual indicator 401 is activated according to the second animation.

[0095] Figures 7 and 8 are illustrative screens of a graphical user interface for customizing notifications of notification management system 107 according to an example embodiment. Figures 7 and 8The screens shown may be provided by the messaging client application 104 of one or more client devices 102 and / or other applications implemented on one or more client devices 102. In an embodiment, the user accesses a notification menu of the messaging client application 104. The notification menu allows the user to enable notifications on the eyeglass device 119. As previously discussed, when notifications are first enabled for a given client device 102, on the eyeglass device 119 coupled to the client device 102, the eyeglass device 119 switches from a first BLE protocol to a second BLE protocol that encrypts link layer physical data exchanged with the client device 102.

[0096] In an embodiment, the user accesses the notification menu and clicks or otherwise selects the displayed SMS menu item. In response, the screen is presented with an enable option 703 presented in a disabled state. In response to the user clicking or otherwise selecting the enable option 703, the SMS notification is enabled to trigger the visual indicator on the eyeglass device 119. The user can use the color option 704 to select an animation for the visual indicator associated with the SMS notification. Other options (not shown) allow the user to specify other animation characteristics for the visual indicator, such as the flashing mode (e.g., the number of flashes and the duration of each flash) of the visual indicator associated with the SMS notification. The user can change the properties of the notification by selecting the option 705 identifying the contact from which the activation of the visual indicator is triggered by receiving a message. Figure 7 The check mark next to the contact shown indicates that the user has selected the contact so that receiving an SMS from the contact will trigger the visual indicator on the eyewear device 119 to animate according to the animation selected using option 704 (and other options). As shown, the user has selected a first color (e.g., green) for option 704, which is also reflected in indicator 702, which shows that the SMS message will activate the visual indicator on the eyewear device 119 with the first color. Different colors 701 can be specified for image / video messages received from the same or different user groups, and the user can select the color of the image / video message in the Figure 8 Specify in .

[0097] As an example, after the user selects a contact by selecting option 705, notification attributes are generated to be provided to the non-volatile storage device of the eyeglass device 119. For example, the notification attributes include an application name attribute (e.g., a messaging application, an SMS application), a title attribute (e.g., an SMS message), and a subtitle attribute (e.g., the name or multiple names or identifiers of the user selected in option 705).

[0098] The user can similarly configure notification properties for various applications implemented on the client device 102. For example, the user can access the "Other Applications" option from the graphical user interface and be presented with a list of applications implemented or installed on the client device 102. By default, all notifications for each application are disabled so that when the operating system of the client device 102 receives a notification from an application on the client device 102 and delivers the notification to the eyeglass device 119, the eyeglass device 119 filters the notification and does not activate the visual indicator. For each application that the user wants the eyeglass device 119 to prompt the user by activating the visual indicator of the eyeglass device 119, the user can click or otherwise select a given option 706. For example, the user can select option 706 for the Lyft application (e.g., a ride-sharing application). In this way, any notification received by the client device 102 from the application (e.g., a car arrives or a new passenger is picked up or a destination is reached) causes the eyeglass device 119 to trigger the visual indicator and activate the visual indicator according to the animation associated with the selected application. As an example, a user has selected a given color (e.g., blue) for the Lyft app (or all listed apps for which notifications are enabled—Lyft and Venmo), which will activate a visual indicator on the eyewear device 119 with the given color 102 when that app generates a notification on the client device 102.

[0099] The user can use the graphical user interface to specify different animations for different types or emergency alerts generated by the application. For example, when a car arrival notification is generated by the Lyft application, the user can choose to have the visual indicator of the eyeglass device 119 illuminated in a first color and a first flashing pattern. Moreover, when a destination arrival notification is generated by the Lyft application, the user can choose to have the visual indicator of the eyeglass device 119 illuminated in a second color and a second flashing pattern. If a given application marks any notification as urgent, the user can specify a specific animation for the visual indicator indicating an emergency notification (e.g., a red light that flashes 100 times very quickly within a span of 20 seconds).

[0100] like Figure 8 As shown, the user may select enable option 801 to enable image / video messages received from the messaging client application 104. The user may select option 802 to navigate to a graphical user interface that allows the user to select an option shown in screen 803 identifying a specific friend from whom receiving an image / video message triggers activation of the visual indicator. Figure 8The selection mark next to the illustrated friend indicates that the user has selected the friend so that receiving an image / video message from the friend will trigger the visual indicator on the eyeglass device 119 to animate according to the animation selected for the friend. The user may select the best friends option to cause image / video messages received from a pre-designated list of friends that the user has previously identified as best friends to trigger notifications on the eyeglass device 119. The user may select a specific animation for the visual indicator to be associated with such messages received from best friends, which may be different from the animation of the visual indicator associated with messages received from specific friends.

[0101] Fig. 9 is a block diagram illustrating an example software architecture 906 that may be used in conjunction with the various hardware architectures described herein. Fig. 9 is a non-limiting example of a software architecture and it will be appreciated that a number of other architectures may be implemented to facilitate the functionality described herein. Software architecture 906 may be implemented in a manner such as Fig.10 1000, which includes, among other things, a processor 1004, a memory 1014, and input / output (I / O) components 1018. A representative hardware layer 952 is shown and may represent, for example, Fig.10 The machine 1000 of the embodiment of the present invention. The representative hardware layer 952 includes a processing unit 954 having associated executable instructions 904. The executable instructions 904 represent executable instructions of the software architecture 906, including implementations of the methods, components, etc. described herein. The hardware layer 952 also includes a memory and / or storage module memory / storage device 956 also having executable instructions 904. The hardware layer 952 may also include other hardware 958.

[0102] exist Fig. 9 In the example architecture of , software architecture 906 can be conceptualized as a stack of layers, wherein each layer provides specific functionality. For example, software architecture 906 may include layers such as operating system 902, library 920, framework / middleware 918, application 916, and presentation layer 914. In operation, application 916 and / or other components within a layer may call API call 908 through a software stack and receive message 912 in response to API call 908. The layers shown are representative in nature, and not all software architectures have all layers. For example, some mobile or dedicated operating systems may not provide framework / middleware 918, while other operating systems may provide such layers. Other software architectures may include additional or different layers.

[0103] The operating system 902 may manage hardware resources and provide public services. The operating system 902 may include, for example, a kernel 922, services 924, and drivers 926. The kernel 922 may act as an abstraction layer between the hardware and other software layers. For example, the kernel 922 may be responsible for memory management, processor management (e.g., scheduling), component management, networking, security settings, etc. Services 924 may provide other public services to other software layers. Drivers 926 may be responsible for controlling or interfacing with the underlying hardware. For example, drivers 926 include display drivers, camera drivers, drives, flash drives, serial communications drivers (such as Universal Serial Bus (USB) drivers), drivers, audio drivers, power management drivers, etc., depending on the hardware configuration.

[0104] The library 920 provides a common infrastructure used by the application 916 and / or other components and / or layers. The library 920 provides the following functions: allowing other software components to perform tasks in a more convenient way than directly interfacing with the basic operating system 902 functions (e.g., kernel 922, service 924, and / or driver 926). The library 920 may include a system library 944 (e.g., a C standard library) that may provide functions such as memory allocation functions, string manipulation functions, mathematical functions, etc. In addition, the library 620 may include an API library 646 such as a media library (e.g., a library for supporting the presentation and operation of various media formats (such as MPREG4, H.264, MP3, AAC, AMR, JPG, PNG)), a graphics library (e.g., an OpenGL framework that can be used to present two-dimensional and three-dimensional graphics content on a display), a database library (e.g., SQLite that can provide various relational database functions), a network library (e.g., WebKit that can provide network browsing functions), etc. The library 920 may also include a variety of other libraries 948 to provide multiple other APIs to the application 916 and other software components / modules.

[0105] The framework / middleware 918 (sometimes also referred to as middleware) provides a high-level general purpose architecture that can be used by applications 916 and / or other software components / modules. For example, the framework / middleware 918 can provide various graphical UI (GUI) functions, advanced resource management, advanced location services, etc. The framework / middleware 918 can provide a wide range of other APIs that can be used by applications 916 and / or other software components / modules, some of which may be specific to a particular operating system 902 or platform.

[0106] Applications 916 include built-in applications 938 and / or third-party applications 940. Examples of representative built-in applications 938 may include, but are not limited to, contact applications, browser applications, book reader applications, location applications, media applications, messaging applications, and / or game applications. Third-party applications 940 may include applications that are created by entities other than the seller of a particular platform using ANDROID TM or IOS TM Software Development Kit (SDK) applications can be developed on mobile operating systems (such as IOS TM ANDROID TM , Third-party applications 940 may call API calls 908 provided by a mobile operating system (such as operating system 902) to facilitate the functionality described herein.

[0107] Applications 916 may use built-in operating system functionality (e.g., kernel 922, services 924, and / or drivers 926), libraries 920, and framework / middleware 918 to create a UI to interact with a user of the system. Alternatively or additionally, in some systems, interaction with the user may occur through a presentation layer such as presentation layer 914. In these systems, the application / component "logic" may be separated from aspects of the application / component that interact with the user.

[0108] Fig.10 1 is a block diagram illustrating components of a machine 1000 capable of reading instructions from a machine-readable medium (e.g., a machine-readable storage medium) and performing any one or more of the methods discussed herein, according to some example embodiments. Specifically, Fig.10A diagrammatic representation of a machine 1000 in the form of an example computer system is shown, in which instructions 1010 (e.g., software, programs, applications, applet, application programs, or other executable codes) for causing the machine 1000 to perform any one or more of the methods discussed herein may be executed. Thus, the instructions 1010 may be used to implement the modules or components described herein. The instructions 1010 convert a general, unprogrammed machine 1000 into a specific machine 1000 that is programmed to perform the functions described and shown in the described manner. In alternative embodiments, the machine 1000 operates as a standalone device, or may be coupled (e.g., networked) to other machines. In a network deployment, the machine 1000 may operate in the capacity of a server machine or a client machine in a server-client network environment, or may operate as a peer machine in a peer-to-peer (or distributed) network environment. The machine 1000 may include, but is not limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a personal digital assistant (PDA), an entertainment media system, a cellular phone, a smart phone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), other smart devices, a network appliance, a network router, a network switch, a network bridge, or any machine capable of executing instructions 1010 in sequence or otherwise, which specify actions to be taken by the machine 1000. In addition, while only a single machine 1000 is shown, the term "machine" should also be taken to include a collection of machines that individually or collectively execute instructions 1010 to perform any one or more of the methodologies discussed herein.

[0109] The machine 1000 may include a processor 1004, a memory / storage device 1006, and an I / O component 1018, which may be configured to communicate with each other, such as via a bus 1002. In an example embodiment, the processor 1004 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), another processor, or any suitable combination thereof) may include, for example, a processor 1008 that may execute instructions 1010 and a processor 1012. The term "processor" is intended to include a multi-core processor that may include two or more independent processors (sometimes referred to as "cores") that may execute instructions simultaneously. Although Fig.10 Multiple processors 1004 are shown, but the machine 1000 may include a single processor having a single core, a single processor having multiple cores (e.g., a multi-core processor), multiple processors having single cores, multiple processors having multiple cores, or any combination thereof.

[0110] The memory / storage device 1006 may include a memory 1014, such as a main memory or other memory storage device and a storage unit 1016, which are accessible by the processor 1004, such as via the bus 1002. The storage unit 1016 and the memory 1014 store instructions 1010 that embody any one or more of the methodologies or functions described herein. During execution by the machine 1000, the instructions 1010 may also reside, in whole or in part, within the memory 1014, within the storage unit 1016, within at least one of the processors 1004 (e.g., within a cache memory of the processor), or any suitable combination thereof. Thus, the memory 1014, the storage unit 1016, and the memory of the processor 1004 are examples of machine-readable media.

[0111] I / O components 1018 may include a variety of components to receive input, provide output, generate output, send information, exchange information, collect measurements, etc. The specific I / O components 1650 included in a particular machine 1000 will depend on the type of machine. For example, a portable machine such as a mobile phone will likely include a touch input device or other such input mechanism, while a headless server machine will likely not include such a touch input device. It should be understood that I / O components 1018 may be included in Fig.10 1028. The I / O components 1018 are grouped according to function for the purpose of simplifying the following discussion only, and the grouping is by no means limiting. In various example embodiments, the I / O components 1018 may include output components 1026 and input components 1028. The output components 1026 may include visual components (e.g., displays such as plasma display panels (PDPs), light emitting diode (LED) displays, liquid crystal displays (LCDs), projectors, or cathode ray tubes (CRTs)), auditory components (e.g., speakers), tactile components (e.g., vibration motors, resistor mechanisms), other signal generators, etc. The input components 1028 may include alphanumeric input components (e.g., keyboards, touch screens configured to receive alphanumeric input, optical keyboards, or other alphanumeric input components), point-based input components (e.g., mice, touch pads, trackballs, joysticks, motion sensors, or other pointing instruments), tactile input components (e.g., physical buttons, touch screens that provide touch gestures and / or touch position forces or other tactile input components), audio input components (e.g., microphones), etc.

[0112] In further example embodiments, the I / O component 1018 may include a biometric component 1039, a motion component 1034, an environment component 1036, or a position component 1038, among a variety of other components. For example, the biometric component 1039 may include a component for detecting expressions (e.g., hand expressions, facial expressions, voice expressions, body postures, or eye tracking), measuring bio-signals (e.g., blood pressure, heart rate, body temperature, sweat, or brain waves), identifying a person (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or EEG-based recognition), etc. The motion component 1034 may include an acceleration sensor component (e.g., an accelerometer), a gravity sensor component, a rotation sensor component (e.g., a gyroscope), etc. Environmental component 1036 may include, for example, an illumination sensor component (e.g., a photometer), a temperature sensor component (e.g., one or more thermometers that detect ambient temperature), a humidity sensor component, a pressure sensor component (e.g., a barometer), an acoustic sensor component (e.g., one or more microphones that detect background noise), a proximity sensor component (e.g., an infrared sensor that detects nearby objects), a gas sensor (e.g., a gas detection sensor that detects concentrations of hazardous gases for safety or measures pollutants in the atmosphere), or other components that may provide indications, measurements, or signals corresponding to the surrounding physical environment. Position component 1038 may include a position sensor component (e.g., a GPS receiver component), an altitude sensor component (e.g., an altimeter or barometer that detects the altitude from which the air pressure can be obtained), an orientation sensor component (e.g., a magnetometer), etc.

[0113] A variety of technologies may be used to achieve communication. I / O components 1018 may include a communication component 1040 that is operable to couple machine 1000 to network 1037 or device 1029 via coupling 1024 and coupling 1022, respectively. For example, communication component 1040 may include a network interface component or other suitable device that interfaces with network 1037. In further examples, communication component 1040 may include a wired communication component, a wireless communication component, a cellular communication component, a near field communication (NFC) component, Components (e.g. Low energy consumption), Device 1029 may be another machine or any of a variety of peripheral devices (eg, a peripheral device coupled via USB).

[0114] In addition, the communication component 1040 can detect an identifier or include a component operable to detect an identifier. For example, the communication component 1040 can include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., an optical sensor for detecting one-dimensional bar codes such as universal product codes (UPC) bar codes, multi-dimensional bar codes (e.g., Quick Response (QR) codes, Aztec codes, Data Matrix, Digital Graphics, Max Code, PDF417, Super Code, UCC RSS-2D bar codes) and other optical codes), or an acoustic detection component (e.g., a microphone for identifying a tagged audio signal). In addition, various information can be obtained via the communication component 1040, such as obtaining a location via Internet Protocol (IP) geolocation, ... Signal triangulation to obtain location, obtaining location via detection of NFC beacon signals that can indicate a specific location, etc.

[0115] Glossary:

[0116] In this context, "carrier signal" refers to any intangible medium capable of storing, encoding or carrying instructions, whether transitory or non-transitory, for execution by a machine, and includes digital or analog communications signals or other intangible media to facilitate communication of such instructions. Instructions may be sent or received over a network using a transitory or non-transitory transmission medium via a network interface device and using any of a number of well-known transmission protocols.

[0117] In this context, a "client device" refers to any machine that interfaces with a communication network to obtain resources from one or more server systems or other client devices. A client device may be, but is not limited to, a mobile phone, desktop computer, laptop, PDA, smart phone, tablet computer, ultrabook, netbook, laptop, multiprocessor system, microprocessor-based or programmable consumer electronics, game console, set-top box, or any other communication device that a user can use to access a network.

[0118] In this context, a "communication network" refers to one or more parts of a network, which may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless local area network (WLAN), a wide area network (WAN), a wireless wide area network (WWAN), a metropolitan area network (MAN), the Internet, a part of the Internet, a part of the public switched telephone network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, A network, another type of network, or a combination of two or more such networks. For example, the network or a portion of a network may include a wireless or cellular network, and the coupling may be a code division multiple access (CDMA) connection, a global system for mobile communications (GSM) connection, or another type of cellular or wireless coupling. In this example, the coupling may implement any of a variety of types of data transmission technologies, such as single carrier radio transmission technology (1xRTT), evolution data optimized (EVDO) technology, general packet radio service (GPRS) technology, enhanced data rates for GSM evolution (EDGE) technology, the third generation partnership project (3GPP) including 3G, fourth generation wireless (4G) networks, universal mobile telecommunications system (UMTS), high speed packet access (HSPA), world wide interoperability for microwave access (WiMAX), long term evolution (LTE) standards, other standards defined by various standards development organizations, other remote protocols, or other data transmission technologies.

[0119] In this context, a "short message" is a message that is accessible for a limited duration. A short message can be text, image, video, etc. The access time of a short message can be set by the sender of the message. Alternatively, the access time can be a default setting or a setting specified by the recipient. Regardless of the setting technique, the message is temporary.

[0120] In this context, "machine-readable medium" refers to a component, device, or other tangible medium capable of temporarily or permanently storing instructions and data, and may include, but is not limited to, random access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical media, magnetic media, cache memory, other types of storage devices (e.g., erasable programmable read-only memory (EPROM)), and / or any suitable combination thereof. The term "machine-readable medium" should be understood to include a single medium or multiple media (e.g., centralized or distributed databases, or associated caches and servers) capable of storing instructions. The term "machine-readable medium" should also be understood to include any medium or combination of multiple media capable of storing instructions (e.g., code) executed by a machine so that the instructions, when executed by one or more processors of the machine, cause the machine to perform any one or more of the methods described herein. Therefore, "machine-readable medium" refers to a single storage device or device, as well as a "cloud-based" storage system or storage network including multiple storage devices or devices. The term "machine-readable medium" itself does not include signals.

[0121] In this context, "component" refers to a device, physical entity, or logic with boundaries defined by function or subroutine calls, branch points, APIs, or other techniques that provide partitioning or modularization of specific processing or control functions. Components can be combined through their interfaces with other components to perform machine processes. A component can be a packaged functional hardware unit designed to be used with other components and a part of a program that generally performs a specific function of related functions. A component can constitute a software component (e.g., code embodied on a machine-readable medium) or a hardware component. A "hardware component" is a tangible unit that can perform certain operations and can be configured or arranged in a certain physical manner. In various example embodiments, one or more computer systems (e.g., a stand-alone computer system, a client computer system, or a server computer system) or one or more hardware components of a computer system (e.g., a processor or a group of processors) can be configured by software (e.g., an application or an application portion) as a hardware component that operates to perform certain operations as described herein.

[0122] Hardware components may also be implemented mechanically, electronically, or any suitable combination thereof. For example, a hardware component may include a dedicated circuit or logic that is permanently configured to perform certain operations. A hardware component may be a dedicated processor, such as a field programmable gate array (FPGA) or an ASIC. A hardware component may also include programmable logic or circuits that are temporarily configured by software to perform certain operations. For example, a hardware component may include software executed by a general-purpose processor or other programmable processor. After being configured by such software, the hardware component becomes a specific machine (or a specific component of a machine) that is specifically customized to perform the configured function, and is no longer a general-purpose processor. It is understood that the decision to implement a hardware component mechanically in a dedicated and permanently configured circuit or in a temporarily configured circuit (e.g., configured by software) may be driven by cost and time considerations. Therefore, the phrase "hardware component" (or "hardware-implemented component") should be understood to include a tangible entity that is physically constructed, permanently configured (e.g., hardwired) or temporarily configured (e.g., programmed), an entity that operates or performs certain operations described herein in a certain manner. Considering embodiments in which hardware components are temporarily configured (e.g., programmed), each hardware component does not need to be configured or instantiated at any time. For example, where a hardware component includes a general purpose processor that is configured by software to be a special purpose processor, the general purpose processor may be configured as different special purpose processors (e.g., including different hardware components) at different times. Thus, the software correspondingly configures a particular processor or processors, for example, to constitute a particular hardware component at one time and another different hardware component at another different time.

[0123] Hardware components can provide information to other hardware components and receive information from other hardware components. Therefore, the described hardware components can be considered to be communicatively coupled. In the case of multiple hardware components being present at the same time, communication can be achieved by signal transmission (e.g., through appropriate circuits and buses) between two or more hardware components. In embodiments where multiple hardware components are configured or instantiated at different times, communication between such hardware components can be achieved, for example, by storing and obtaining information in a memory structure accessible to multiple hardware components. For example, a hardware component can perform an operation and store the output of the operation in a memory device to which it is communicatively coupled. Then, another hardware component can access the memory device at a later time to obtain and process the stored output.

[0124] The hardware component may also initiate communication with an input or output device and may operate on a resource (e.g., a collection of information). The various operations of the example methods described herein may be performed at least in part by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute a processor-implemented component that operates to perform one or more operations or functions described herein. As used herein, a "processor-implemented component" refers to a hardware component implemented using one or more processors. Similarly, the methods described herein may be implemented at least in part by a processor, wherein a specific processor or processor is an example of hardware. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented components. In addition, one or more processors may also be operated to support the execution of relevant operations in a "cloud computing" environment or as "software as a service" (SaaS). For example, at least some of the operations may be performed by a group of computers (as an example of a machine including a processor), wherein the operations may be accessed via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., APIs). The execution of certain operations may be distributed between processors, not only residing in a single machine, but also deployed across multiple machines. In some example embodiments, the processor or processor-implemented components may be located in a single geographic location (e.g., in a home environment, an office environment, or a server farm). In other example embodiments, the processor or processor-implemented components may be distributed across multiple geographic locations.

[0125] In this context, a "processor" refers to any circuit or virtual circuit (a physical circuit emulated by logic executed on an actual processor) that manipulates data values ​​according to control signals (e.g., "commands," "opcodes," "machine codes," etc.) and produces corresponding output signals suitable for operating a machine. A processor may be, for example, a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an ASIC, a radio frequency integrated circuit (RFIC), or any combination thereof. A processor may further be a multi-core processor having two or more independent processors (sometimes referred to as "cores") that can execute instructions simultaneously.

[0126] In this context, a "timestamp" refers to a series of characters or coded information that identifies when a particular event occurred, such as giving a date and time, sometimes accurate to a fraction of a second.

[0127] Changes and modifications may be made to the disclosed embodiments without departing from the scope of the present disclosure. These and other changes or modifications are intended to be included within the scope of the present disclosure as expressed in the following claims.

[0128] Modules, components and logic

[0129] Certain embodiments are described herein as including logic or several components, modules or mechanisms. A module may constitute either a software module (e.g., a code encoded on a machine-readable medium or in a transmission signal) or a hardware module. A "hardware module" is a tangible unit that is capable of performing certain operations and may be configured or arranged in some physical manner. In various example embodiments, one or more computer systems (e.g., a stand-alone computer system, a client computer system, or a server computer system) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein.

[0130] In some embodiments, the hardware module may be implemented mechanically, electronically, or any suitable combination thereof. For example, the hardware module may include a dedicated circuit or logic that is permanently configured to perform certain operations. For example, the hardware module may be a dedicated processor, such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC). The hardware module may also include programmable logic or circuits that are temporarily configured by software to perform certain operations. For example, the hardware module may include software contained in a general-purpose processor or other programmable processor. It is understood that the decision to implement the hardware module mechanically in a dedicated and permanently configured circuit or in a temporarily configured circuit (e.g., configured by software) may be driven by cost and time considerations.

[0131] Therefore, the phrase "hardware module" should be understood to include a tangible entity, which is a physically constructed, permanently configured (e.g., hardwired) or temporarily configured (e.g., programmed) entity that operates in a certain manner or performs certain operations described herein. As used herein, a "hardware-implemented module" refers to a hardware module. Considering embodiments in which hardware modules are temporarily configured (e.g., programmed), each hardware module does not need to be configured or instantiated at any time. For example, in the case where the hardware module includes a general-purpose processor that is configured by software to become a special-purpose processor, the general-purpose processor can be configured as different special-purpose processors (e.g., including different hardware modules) at different times. Therefore, the software can configure a specific processor or processors accordingly, for example, to constitute a specific hardware module at one time and another different hardware module at another different time.

[0132] A hardware module may provide information to other hardware modules and receive information from other hardware modules. Therefore, the described hardware modules may be considered to be communicatively coupled. In the case where multiple hardware modules exist simultaneously, communication may be achieved by signal transmission (e.g., by appropriate circuits and buses) between two or more hardware modules. In an embodiment where multiple hardware modules are configured or instantiated at different times, communication between such hardware modules may be achieved, for example, by storing and obtaining information in a memory structure accessible to multiple hardware modules. For example, a hardware module may perform an operation and store the output of the operation in a memory device to which it is communicatively coupled. Then, another hardware module may access the memory device at a later time to obtain and process the stored output. A hardware module may also initiate communication with an input or output device and may operate on a resource (e.g., a collection of information).

[0133] The various operations of the example methods described herein may be performed, at least in part, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Such processors, whether temporarily or permanently configured, may constitute processor-implemented modules that operate to perform one or more operations or functions described herein. As used herein, a "processor-implemented module" refers to a hardware module implemented using one or more processors.

[0134] Similarly, the methods described herein may be implemented at least in part by a processor, wherein a particular processor or processors are examples of hardware. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented modules. In addition, one or more processors may also be operable to support the execution of related operations in a "cloud computing" environment or as "software as a service" (SaaS). For example, at least some of the operations may be performed by a group of computers (as an example of a machine including a processor), wherein the operations may be accessed via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., APIs).

[0135] The performance of certain operations in the operation can be distributed among one or more processors, not only residing in a single machine, but also deployed across multiple machines. In some example embodiments, the processor or the module implemented by the processor is located in a single geographical location (e.g., in a home environment, an office environment, or a server farm). In other example embodiments, the processor or the module implemented by the processor is distributed in multiple geographical locations.

Claims

1. A method comprising: communicating between the wearable device and the mobile device via a first protocol including an unencrypted link layer connection to transmit a first data set from the wearable device to the mobile device; switching from the first protocol to a second protocol including an encrypted link to enable the wearable device to communicate with an operating system of the mobile device to receive one or more notifications from the mobile device; as well as Receipt of a new notification by the mobile device is determined by the wearable device based on additional data received from the mobile device via the second protocol including the encrypted link.

2. The method of claim 1, wherein the first data set comprises one or more images, the one or more processors of the wearable device receiving the additional data after the one or more processors of the wearable device receive the data comprising the filtering information, and the method further comprises: Data indicating a first combination of notification attributes that triggers a first alarm on the wearable device is received from the mobile device via the one or more processors of the wearable device, and the data received from the mobile device via the one or more processors of the wearable device includes filtering information, and the filtering information is used to control whether the first alarm is triggered based on at least a source of a given notification and a given animation mode of the first alarm.

3. The method according to claim 1, wherein: The unencrypted link layer connection comprises a Bluetooth Low Energy (BLE) link, and wherein the wearable device comprises an eyewear device.

4. The method according to claim 1, further comprising: establishing a default setting that causes all notifications of the operating device to be filtered by the wearable device to prevent activation of a visual indicator; as well as A graphical user interface is generated for display on the mobile device, the graphical user interface including a first option for changing default settings for a given application to select a first combination of notification properties for the given application and a second option for selecting a first visual indicator animation. 5 . The method of claim 1 , further comprising switching from the first protocol to the second protocol after transmitting the first data set over the first protocol including the unencrypted link layer connection.

6. The method according to claim 1, further comprising: filtering, by one or more processors of the wearable device, one or more notifications received from the mobile device based on the filtering information to discard a portion of the one or more notifications received from the mobile device and maintain other notifications received from the mobile device including the new notification; determining, by the one or more processors of the wearable device, that a combination of attributes of the new notification matches a first combination of notification attributes; in response to determining that the combination of attributes of the new notification matches the first combination of notification attributes, retrieving, by the one or more processors of the wearable device, a first visual indicator animation representing a first alert from a storage device of the wearable device; as well as The one or more processors of the wearable device activate a visual indicator of the wearable device according to the obtained first visual indicator animation to generate the first alarm on the wearable device.

7. The method of claim 1 , further comprising receiving data specifying a first color of an LED for notifications including SMS messages, and wherein the data specifies a second color of the LED for notifications including images or videos received from a specific user, the wearable device being configured to capture an image in response to detecting a touch input including a click having a duration shorter than a threshold, the wearable device being configured to capture a video in response to detecting a touch input including a press and hold action.

8. The method according to claim 1, further comprising: storing, in a storage device of the wearable device, the first combination of notification attributes in a list associating multiple combinations of notification attributes with corresponding visual indicator animations, the list being a first list associated with the first device identifier; as well as A second list is stored, the second list associating another plurality of combinations of notification attributes with corresponding visual indicator animations for a second device identifier, wherein at a given time, only the notification attributes of the first list or the second list are active and moved to a new temporary storage location on the wearable device.

9. The method according to claim 8, further comprising: Retrieving a given combination of notification attributes from the first position in said list; loading the obtained given combination of notification attributes and the attributes of the new notification into a memory of one or more processors of the wearable device; comparing each attribute of a given combination of the retrieved notification attributes to each corresponding attribute of the attributes of the new notification by performing an uncomplicated comparison operation using the one or more processors of the wearable device; as well as In response to determining that each attribute of the retrieved given combination of notification attributes matches each corresponding attribute of the attributes of the new notification, the visual indicator animation associated with the given combination of notification attributes is retrieved.

10. The method of claim 9, further comprising, in response to determining that at least one of the retrieved attributes of the given combination of notification attributes cannot match a corresponding attribute of the attributes of the new notification: Obtaining a next combination of notification attributes from a second position in the list adjacent to the first position; replacing a given combination of retrieved notification attributes loaded into a memory of the one or more processors with a next combination of retrieved notification attributes; and Repeat the comparison operation.

11. The method of claim 1 , further comprising establishing a first flashing pattern for a visual indicator associated with a first state received from a ride-sharing application, and establishing a second flashing pattern for a visual indicator associated with a second state received from the ride-sharing application, the second state indicating that a new passenger has been picked up.

12. The method according to claim 1, wherein: The visual indicator of the wearable device includes a first LED included in a first end piece of a pair of end pieces of the eyeglass device.

13. The method according to claim 12, wherein: A second LED is included in a second end piece of the pair of end pieces of the eyewear apparatus, and the method further includes asynchronously operating the first LED and the second LED to generate different light patterns to generate a first alert.

14. The method according to claim 9, wherein: A first portion of the plurality of combinations of notification attributes is associated with a first user of the wearable device, and wherein a second portion of the plurality of combinations of notification attributes is associated with a second user of the wearable device, the method further comprising: determining an identity of the mobile device; and A selection is made between the first portion and the second portion of a plurality of combinations of the notification attributes based on the identification of the mobile device.

15. The method according to claim 1, further comprising: loading a first combination of notification attributes into a first storage location of the wearable device; loading attributes of the new notification into a second storage location of the wearable device; as well as An XOR logic operation is performed on the first storage location and the second storage location to determine whether the contents of the first storage location and the second storage location match, wherein a first alarm is triggered in response to determining that the first storage location and the second storage location match.

16. The method according to claim 1, further comprising: receiving, from the mobile device, a request to activate a notification alert on the wearable device; as well as In response to receiving the request to activate the notification alert on the wearable device, switching to an encrypted BLE link layer connection between the wearable device and the mobile device.

17. The method according to claim 16, wherein: Switching to the encrypted BLE link layer connection includes presenting a Bluetooth session on the mobile device to establish the encrypted BLE link layer connection.

18. The method according to claim 17, further comprising: The wearable device detects a new mobile device that establishes a BLE connection with the wearable device; determining, by the wearable device, that the notification alert is in a disabled state for the new mobile device; as well as In response to determining that the notification alert is in a disabled state for the new mobile device, the unencrypted link layer connection is established between the wearable device and the new mobile device without presenting the Bluetooth session on the new mobile device.

19. A system comprising: Storage devices for wearable devices; as well as A processor of the wearable device, wherein the processor is configured to perform operations, the operations comprising: communicating between the wearable device and the mobile device via a first protocol including an unencrypted link layer connection to transmit a first data set from the wearable device to the mobile device; switching from the first protocol to a second protocol including an encrypted link to enable the wearable device to communicate with an operating system of the mobile device to receive one or more notifications from the mobile device; and Receipt of a new notification by the mobile device is determined by the wearable device based on additional data received from the mobile device via the second protocol including the encrypted link.

20. A non-transitory machine-readable storage medium comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising: communicating between the wearable device and the mobile device via a first protocol including an unencrypted link layer connection to transmit a first data set from the wearable device to the mobile device; switching from the first protocol to a second protocol including an encrypted link to enable the wearable device to communicate with an operating system of the mobile device to receive one or more notifications from the mobile device; as well as Receipt of a new notification by the mobile device is determined by the wearable device based on additional data received from the mobile device via the second protocol including the encrypted link.