Power optimization for colocation connectivity services

CN116195277BActive Publication Date: 2026-08-14SNAP INC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-09-08
Publication Date
2026-08-14

Smart Images

  • Figure CN116195277B_ABST
    Figure CN116195277B_ABST
Patent Text Reader

Abstract

The technical problem of reducing the power consumption of paired client devices is addressed by using the corresponding location data of the paired client devices to determine whether to disable or resume the operation of short-range wireless communication components such as sensors. In some examples, the location service utilizes the Global Positioning System (GPS). The corresponding location data of the paired client devices is transmitted between the paired client devices via a message transceiver server.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Priority requirements

[0002] This application claims priority to U.S. Patent Application Serial No. 16 / 948,628, filed on September 25, 2020, which is incorporated herein by reference in its entirety. Technical Field

[0003] This disclosure generally relates to the interaction between devices that facilitate managed messaging applications. Background Technology

[0004] The popularity of computer-implemented tools that allow users to access content online and interact with other users continues to grow. For example, various computer-implemented tools exist that allow users to share content with other users via messaging applications or play multiplayer video games online with other users. Some of these computer-implemented tools, known as applications or apps, can be designed to run on mobile devices such as phones, tablets, or watches. Mobile devices can be configured to operate via the Internet and other means. It uses short-range wireless communication technology for communication. When the sensor is enabled on the mobile device, it scans other... Enable the device and this The presence of the sensor is advertised to other Bluetooth-enabled devices. Users can manually disable it based on their need for short-range wireless communication. Scanning and notification, as well as manual re-enabling. Scanning and notification. Attached Figure Description

[0005] In accompanying drawings that are not necessarily drawn to scale, similar reference numerals can describe similar parts in different views. To facilitate identification of any discussion of a particular element or action, one or more of the highest-order digits in the reference numerals indicate the drawing number used when that element was first introduced. Some examples are shown in the accompanying drawings by way of example, not limitation:

[0006] Figure 1 It is a graphical representation of a network environment where power-optimized colocation connectivity services can be deployed, based on some examples.

[0007] Figure 2 It is a graphical representation of a messaging system with both client-side and server-side functionalities, based on some examples.

[0008] Figure 3 It is a graphical representation based on examples such as data structures maintained in a database.

[0009] Figure 4It is a block diagram of the architecture of a system for providing power optimization for colocation connectivity services, based on some examples.

[0010] Figure 5 This is a flowchart of a method for providing power optimization for colocation connectivity services, based on some examples.

[0011] Figure 6 It is a diagrammatic representation of an example architecture including a client device with power optimization components.

[0012] Figure 7 It is a graphical representation of a machine in the form of a computer system, based on some examples, within which a set of instructions can be executed to cause the machine to perform any or more of the methods discussed herein. Detailed Implementation

[0013] A colocation connection service, accessible from a client device via a messaging client, is an online service that can be used to detect colocation events and respond to them by unlocking one or more user experiences previously designated as colocation experiences. These colocation events indicate that two devices executing their respective messaging clients are within a certain physical proximity. Examples of colocation experiences include modified user interfaces to include, for example, animated images of the two participants with transparent backgrounds, indications of colocation between the devices, and visual controls operable to activate mini-apps or games that are otherwise unavailable to the user, where the activity is only possible in a non-virtual domain when the two people are very close, such as hugging or dancing. Colocation events are detected based on information obtained using short-range wireless communication components set up at the client device.

[0014] A message transceiver server system, which maintains user profiles representing users of the colocation connection service, provides the colocation connection service and message transceiver clients. The colocation connection service is configured to selectively pair user profiles associated with corresponding client devices, wherein the corresponding client devices can communicate with each other using short-range wireless communication components within a predetermined physical range (referred to as the colocation distance for the purposes of this description). The client device associated with the corresponding paired user profile is referred to as the paired client device. Operations by the client device on the short-range wireless communication component include: announcing the presence of the device to the paired device and / or performing a scanning operation to discover the presence of the paired device within the communication range of the short-range wireless communication component. The short-range wireless communication component may utilize short-range wireless communication technologies, such as Near Field Communication (NFC). (For example, Low energy consumption), low-frequency audio signals, radio frequency identification (RFID), etc.

[0015] The process of announcing and scanning at paired client devices using short-range wireless communication components is called co-location detection. Continuous operation of the short-range wireless communication components by the client device for co-location detection requires power resources. The availability of power resources, especially at mobile devices, may be limited.

[0016] The technical problem of reducing power consumption of paired client devices is addressed by incorporating a power optimization component in a messaging client running at the paired client device. The power optimization component periodically queries the location services available at its host paired client device to obtain location data indicating the geolocation of the paired client device. The power optimization component transmits the obtained location data to the other paired client device. The power optimization component also receives location data indicating the geolocation of the other paired client device. The power optimization component uses the location data indicating the geolocation of its host paired client device and the location data indicating the geolocation of the other paired client device to detect an optimization trigger event. An optimization trigger event indicates that the physical distance between the paired client devices is greater than a predetermined distance, referred to as a threshold distance for the purposes of this description. The threshold distance is greater than the colocation distance and is also large enough that it can be inferred that the paired devices will not be within the colocation distance in the near future. The threshold distance can be a specified distance (e.g., one mile, five miles, or three hundred feet). In some examples, a threshold distance can be periodically determined for paired client devices based on rules or using a predictive machine learning model. This predictive machine learning model takes as input features (e.g., features indicating interactions with the colocation communication service by the corresponding user, represented by a first user profile and a second user profile) that indicate the behavior of the user operating the corresponding paired client device. In response to the detection of an optimization trigger event, the power optimization component disables colocation detection at its host paired client device.

[0017] The power optimization component also uses location data indicating the geolocation of its host paired client device and location data indicating the geolocation of another paired client device to detect additional optimization trigger events, which indicate that the physical distance between the paired client devices is less than a threshold distance. In response to the additional optimization trigger event, the power optimization component resumes co-location detection at its host paired client devices. Examples of location services are Global Positioning System (GPS) or positioning technologies using relative network signal strength detected at network access points.

[0018] Paired client devices exchange their location data using a messaging server. For example, the messaging server may include a location data exchange component that receives location data from one paired client device and sends it to another paired client device. The other paired client device receives location data from its paired client device from the messaging server's location data exchange component. Although the use of location data obtained from location services such as GPS to determine whether to disable or restore location services is described in the context of co-location connectivity services... A power optimization method for the operation of short-range wireless communication components is described, but this method can also be used to reduce the power consumption of paired devices that can communicate using short-range wireless communication technology and also have positioning detection capabilities such as GPS sensors. Online power optimization for co-location connection services can be referred to below. Figure 1 The described implementation takes place in a networked computing environment, which is referred to as a message sending and receiving system.

[0019] Networked computing environment

[0020] Figure 1 This is a block diagram illustrating an example messaging system 100 for exchanging data (e.g., messages and associated content) over a network. The messaging system 100 includes multiple instances of client devices 102, each hosting several applications including messaging clients 104. Each messaging client 104 is communicatively coupled to other instances of messaging client 104 and a messaging server system 108 via a network 106 (e.g., the Internet).

[0021] Message transceiver client 104 is capable of communicating and exchanging data with another message transceiver client 104 and message transceiver server system 108 via network 106. The data exchanged between message transceiver clients 104 and between message transceiver client 104 and message transceiver server system 108 includes functions (e.g., commands for activating functions) and payload data (e.g., text, audio, video, or other multimedia data). The client device hosting message transceiver client 104 may be equipped with sensors, i.e., short-range wireless communication components, which allow message transceiver client 104 to communicate via, for example,... The low-power short-range wireless communication technology communicates and exchanges data with another message transceiver client 104.

[0022] Message transceiver server system 108 provides server-side functionality to specific message transceiver clients 104 via network 106. While some functions of message transceiver system 100 are described herein as being performed by message transceiver client 104 or message transceiver server system 108, the location of certain functions—whether within message transceiver client 104 or message transceiver server system 108—may be a design choice. For example, it might be technically preferred that certain technologies and functions are initially deployed within message transceiver server system 108, but later migrated to message transceiver client 104 with sufficient processing power on client device 102.

[0023] The messaging server system 108 supports various services and operations provided to the messaging client 104. Such operations include sending data to and receiving data from the messaging client 104, and processing data generated by the messaging client 104. As an example, this data may include message content, client device information, geolocation information, media enhancements and overlays, message content persistence conditions, social network information, and live event information. Data exchange within the messaging system 100 is activated and controlled via functions available through the user interface (UI) of the messaging client 104.

[0024] Specifically, turning to message transceiver server system 108, application programming interface (API) server 110 is coupled to application server 112 and provides a programming interface to application server 112. Application server 112 is communicatively coupled to database server 118, which facilitates access to database 120. Web server 124 is coupled to application server 112 and provides a web-based interface to application server 112. For this purpose, web server 124 processes incoming network requests via Hypertext Transfer Protocol (HTTP) and several other related protocols. Database 120 stores data associated with messages processed by application server 112, such as profile data about specific entities. In the case where the entity is an individual, profile data includes, for example, username, notifications, and privacy settings, as well as records related to changes made by the user to their profile data. Where a first user profile and a second user profile have been designated as paired user profiles, the first user profile includes a unique identifier of the user's client device and an identifier of the second user profile. The second user profile, in turn, includes a unique identifier of its client device and an identifier of the first user profile.

[0025] Application Programming Interface (API) server 110 receives and sends message data (e.g., commands and message payloads) between client device 102 and application server 112. Specifically, API server 110 provides a set of interfaces (e.g., routines and protocols) that can be invoked or queried by messaging client 104 to activate the functionality of application server 112. API server 110 exposes various functions supported by application server 112, including account registration, login functionality, sending messages from one messaging client 104 to another messaging client 104 via application server 112, sending media files (e.g., images or videos) from messaging client 104 to messaging server 114 and for possible access by another messaging client 104, opening application events (e.g., involving messaging client 104), and various functions for use by third-party computer systems supported by developer tools provided by messaging server system 108.

[0026] Application server 112 hosts several server applications and subsystems, including, for example, messaging server 114, image processing server 116, and social networking server 122. Messaging server 114 implements several messaging technologies and functions, particularly relating to the aggregation and other processing of content (e.g., text and multimedia content) included in messages received from multiple instances of messaging client 104. Image processing server 116 is dedicated to performing various image processing operations, typically relative to images or videos within the payload of messages sent from or received at messaging server 114. Social networking server 122 supports various social networking functions and services and makes these functions and services available to messaging server 114. The messaging server 114 provides online power optimization for a colocation connectivity service 117, which is configured to selectively pair user profiles associated with corresponding client devices equipped with sensors that communicate with each other within a predetermined physical range. This colocation connectivity service monitors the physical proximity of client devices based on sensor data obtained from corresponding messaging clients executed at the respective client devices through power optimization of the colocation connectivity service, and generates a colocation experience by modifying the user interface in the corresponding messaging client in response to detecting that a client device is within the predetermined physical proximity range. As described further below, the messaging server 114 is configured to cooperate with the messaging client 104 to optimize power consumption attributable to the use of short-range wireless communication components by the client device 102.

[0027] System Architecture

[0028] Figure 2This is a block diagram illustrating further details of a messaging system 100 according to some examples. Specifically, the messaging system 100 is shown as including a messaging client 104 and an application server 112. The messaging system 100 includes several subsystems supported on the client side by the messaging client 104 and on the server side by the application server 112. These subsystems include, for example, a short-run timer system 202, a collection management system 204, a power optimization system 206, a map system 208, and a game system 210.

[0029] The short-lived timer system 202 is responsible for enabling temporary or time-limited access to content by the message sending client 104 and the message sending server 114. The short-lived timer system 202 includes several timers that selectively enable access (e.g., for rendering and displaying) of messages and associated content via the message sending client 104 based on duration and display parameters associated with a message or set of messages (e.g., a story). Further details regarding the operation of the short-lived timer system 202 are provided below.

[0030] The collection management system 204 is responsible for managing collections or sets of media (e.g., collections of text, images, video, and audio data). Collections of content (e.g., messages, including images, videos, text, and audio) can be organized into "event galleries" or "event stories." Such collections can be made available for a specified time period (e.g., the duration of the event the content relates to). For example, content related to a concert can be made available as a "story" for the duration of the concert. The collection management system 204 can also be responsible for publishing icons that provide notifications about the existence of specific collections to the user interface of the messaging client 104.

[0031] Map system 208 provides various geolocation functions and supports the presentation of map-based media content and messages by messaging client 104. For example, map system 208 enables the display (e.g., stored in configuration data 308) of user icons or avatars on a map to indicate the current or past locations of the user's "friends" and media content generated by these friends (e.g., a collection of messages including photos and videos) within the context of the map. For example, a message posted by a user from a specific geolocation to messaging system 100 can be displayed to the specific user's "friends" on the map interface of messaging client 104 within the context of that specific location on the map. The user can also share his or her location and status information with other users of messaging system 100 (e.g., using appropriate status avatars) via messaging client 104, where the location and status information is similarly displayed to the selected user within the context of the map interface of messaging client 104.

[0032] The gaming system 210 provides various gaming functions within the context of the messaging client 104. The messaging client 104 provides a game interface that offers a list of available games that a user can initiate and play with other users of the messaging system 100 within the context of the messaging client 104. The messaging system 100 also enables specific users to invite other users to participate in specific games by sending invitations from the messaging client 104. The messaging client 104 also supports both voice and text messaging (e.g., chat) within the gaming context, provides leaderboards for the game, and supports in-game rewards (e.g., game currency and items).

[0033] Figure 2 The diagram also shows a power optimization system 206. The power optimization system 206 selectively disables the operation of short-range wireless communication components based on the physical distance between the client device and its paired device; for example, it disables the operation of components powered by... Sensors perform scans and notifications to facilitate reduced power consumption at the client device. A location service (e.g., GPS) set up at the corresponding paired device is used to determine the physical distance between the client device and its paired device. Power optimization system 206 uses... Figure 6 The location data exchange component shown facilitates the transmission of location data between paired client devices via a message transceiver server. The power optimization system 206 also uses components residing at the paired client devices. These components include short-range wireless communication components, location services, and power optimization components, which will refer to… Figure 4 Further details will be discussed. As mentioned above, a paired client device is a client device associated with a corresponding paired user profile. In addition to other profile information such as user ID and various user preferences, the paired user profile also includes a unique identifier for the user's client device and an identifier for the paired user profile.

[0034] Data Architecture

[0035] Figure 3 This is a schematic diagram illustrating a data structure 300 that can be stored in a database 120 of a message transceiver server system 108, according to certain examples. Although the contents of the database 120 are shown as including several tables, it will be understood that data can be stored in other types of data structures (e.g., stored as an object-oriented database).

[0036] Database 120 includes message data stored in message table 302. For any given message, this message data includes at least message sender data, message receiver (or recipient) data, and payload. See below for reference. Figure 4 Further details are described regarding information that can be included in a message and information included in the message data stored in message table 302.

[0037] Entity table 304 stores entity data and (for example, by reference) links to entity diagram 306 and configuration data 308. Entities that store records in entity table 304 may include individuals, companies, organizations, objects, locations, events, etc. Regardless of the entity type, any entity whose data is stored in message transceiver server system 108 can be an identifiable entity. Each entity is assigned a unique identifier and an entity type identifier (not shown).

[0038] Entity diagram 306 stores information about the relationships and associations between entities. As an example only, such relationships can be social, professional (e.g., working in the same company or organization), interest-based, or activity-based. Entity diagram 306 may also store representations reflecting... Figure 1 The information on the pairing of user profiles for users of the colocation service 117.

[0039] Profile data 308 stores various types of profile data about a specific entity. Based on privacy settings specified by the specific entity, profile data 308 can be selectively used and presented to other users of messaging system 100. In the case of an individual, profile data 308 includes, for example, a username, phone number, address, settings (e.g., notification and privacy settings), and an avatar representation (or a set of such avatar representations) selected by the user. A specific user can then selectively include one or more of these avatar representations in the content of messages transmitted via messaging system 100 and on a map interface displayed to other users by messaging client 104. The set of avatar representations may include “status avatars,” which present a graphical representation of a status or activity that a user can choose to communicate at a specific time. In addition to user identifier 318, profile data 308, representing a profile paired with another user profile (where the paired profile represents a user co-locating connection service 117), also includes user device identifier 320 and paired user identifier 322. In one example, considering a user profile including a user identifier, user device identifier, and paired user identifier, Figure 2 The location data exchange component of the power optimization system 206 shown obtains the location data of the user equipment (represented by the user equipment identifier), determines the pairing profile based on the paired user identifier, and transmits the obtained user equipment location data to the paired device represented by the user equipment identifier stored in the pairing profile.

[0040] Database 120 also stores enhancement data, such as overlays or filters, in enhancement table 310. The enhancement data is associated with and applied to videos (whose data is stored in video table 314) and images (whose data is stored in image table 316).

[0041] Story table 312 stores data about collections of messages and associated image, video, or audio data, compiled into collections (e.g., stories or galleries). The creation of a specific collection can be initiated by a specific user (e.g., each user whose record is stored in entity table 304). A user can create a "personal story" in the form of a collection of content that has already been created and sent / broadcast by that user. For this purpose, the user interface of messaging client 104 may include user-selectable icons that allow the sending user to add specific content to his or her personal story.

[0042] As described above, video table 314 stores video data, which in one example is associated with messages whose records are maintained within message table 302. Similarly, image table 316 stores image data associated with messages whose message data is stored in entity table 304. Entity table 304 allows various enhancements from enhancement table 310 to be associated with various images and videos stored in image table 316 and video table 314.

[0043] Figure 4 This is a block diagram illustrating an example system 400 for providing power optimization for co-location connectivity services. System 400 includes a short-range wireless communication component 410, a location service 420, and a power optimization component 430. As described above, operations performed by a client device on the short-range wireless communication component 410 may include: announcing the presence of the client device and performing a scanning operation to discover the presence of paired devices within the communication range of the short-range wireless communication component 410. The short-range wireless communication component 410 may utilize short-range wireless communication technologies, such as Near Field Communication (NFC). (For example, Low-power, low-frequency audio signals, radio frequency identification (RFID), etc. Examples of location service 420 are Global Positioning System (GPS) or location technologies using relative network signal strength detected at network access points. Power optimization component 430 is configured to periodically query location service 420 to obtain location data indicating the geolocation of a client device, and transmit the obtained location data to the paired client device via a server system. Power optimization component 430 is also configured to receive location data indicating the geolocation of another paired client device, and use the location data indicating the geolocation of the client device and the location data indicating the geolocation of the paired client device to detect an optimization trigger event indicating that the physical distance between the paired client devices is greater than a threshold distance. In response to detecting an optimization trigger event, power optimization component 430 disables the operation of short-range wireless communication component 410 at the client device. Power optimization component 430 is also configured to enable the operation of short-range wireless communication component 410 at the client device in response to determining that the physical distance between the paired client devices is less than a threshold distance based on the location data indicating the geolocation of the client device and the location data indicating the geolocation of the paired client device. Each component of the system 400 can be set to... Figure 1 The client device is located at 102. Further details regarding the operation of system 400 are provided below.

[0044] Figure 5 This is a flowchart of a method 500 for providing power optimization for colocation connectivity services. Method 500 can be executed by processing logic, which may include hardware (e.g., dedicated logic, programmable logic, microcode, etc.), software, or a combination thereof. In one example, some or all of the processing logic resides in... Figure 1 Client devices at 102 locations and / or Figure 1 The message transceiver server system 108. Operation 510 includes: at the first paired client device, obtaining first location data indicating the geolocation of the first paired client device from a location service executed at the paired client device. Operation 520 includes: receiving second location data indicating the geolocation of a second paired client device from the message transceiver server. Operation 530 includes: based on the first and second location data, determining that the distance between the first and second paired client devices is greater than a threshold distance. Operation 540 includes: in response to the determination, disabling the operation of a short-range wireless communication component at the first paired client device, the short-range wireless communication component being configured to exchange communication information with the second paired client device within a co-location distance.

[0045] Figure 6 This is a schematic representation 600 of an example architecture including a client device with power optimization components. (Example:) Figure 6As shown, the paired client devices 610 and 620 host respective message transceiver clients including corresponding power optimization components 612 and 622, respective short-range wireless communication components (sensors 614 and 624) communicating via signal 630, and respective location services 616 and 626.

[0046] For reference Figure 2 As described, power optimization components 612 and 622 are configured to periodically query the corresponding location services 612 and 622 to obtain location data indicating the geolocation of paired client devices 610 and 620, and transmit the obtained location data from one paired client device to the other via a location data exchange component 642 located at a message transceiver server 640. The message transceiver server 640 uses the location data exchange component 642 to receive location data from paired client device 610 and send the location data to the other paired client device 620.

[0047] Machine architecture

[0048] Figure 7This is a schematic representation of machine 700, in which instructions 608 (e.g., software, programs, applications, applets, or other executable code) can be executed to cause machine 700 to perform any or more of the methods discussed herein. For example, instructions 708 can cause machine 700 to perform any or more of the methods described herein. Instructions 708 transform a general, unprogrammed machine 700 into a specific machine 700 programmed to perform the described and illustrated functions in the described manner. Machine 700 can operate as a standalone device or can be coupled (e.g., networked) to other machines. In a network deployment, machine 700 can operate as a server machine or client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. Machine 700 may include, but is not limited to, server computers, client computers, personal computers (PCs), tablet computers, laptop computers, netbooks, set-top boxes (STBs), personal digital assistants (PDAs), entertainment media systems, cellular phones, smartphones, mobile devices, wearable devices (e.g., smartwatches), smart home devices (e.g., smart appliances), other smart devices, web devices, network routers, network switches, network bridges, or any machine capable of sequentially or otherwise executing instructions 708 specifying actions to be taken by machine 700. Furthermore, although only a single machine 700 is shown, the term "machine" should also be considered as a collection of machines that individually or jointly execute instructions 708 to perform any one or more of the methods discussed herein. For example, machine 700 may include client device 102 or any of several server devices forming part of message transceiver server system 108. In some examples, machine 700 may also include both client and server systems, wherein certain operations of a particular method or algorithm are performed on the server side and certain operations of a particular method or algorithm are performed on the client side.

[0049] Machine 700 may include a processor 702, a memory 704, and input / output (I / O) components 738 that can be configured to communicate with each other via a bus 740. In the example, processor 702 (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, processors 706 and 710 capable of executing instructions 708. The term "processor" is intended to include multi-core processors, which may include two or more independent processors (sometimes referred to as "cores") capable of executing instructions simultaneously. Although... Figure 7 Multiple processors 702 are shown, but machine 700 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors with a single core, multiple processors with multiple cores, or any combination thereof.

[0050] Memory 704 includes main memory 712, static memory 714, and storage cells 716, all of which are accessible by processor 702 via bus 740. Main memory 704, static memory 714, and storage cells 716 store instructions 708 that implement any one or more of the methods or functions described herein. Instructions 708 may also reside wholly or partially in main memory 712, in static memory 714, in machine-readable medium 718 within storage cell 716, in at least one of the processors 702 (e.g., in the processor's cache memory), or in any suitable combination thereof during execution by machine 700.

[0051] I / O component 738 may include various components for receiving input, providing output, generating output, transmitting information, exchanging information, capturing measurement results, etc. The specific I / O component 738 included in a particular machine will depend on the type of machine. For example, portable machines such as mobile phones may include touch input devices or other such input mechanisms, while headless server machines are unlikely to include such touch input devices. It will be understood that I / O component 738 may include... Figure 7 Many other components are not shown. In various examples, I / O component 738 may include user output component 724 and user input component 726. User output component 724 may include visual components (e.g., a display such as a plasma display panel (PDP), light-emitting diode (LED) display, liquid crystal display (LCD), projector, or cathode ray tube (CRT) display), acoustic components (e.g., a speaker), haptic components (e.g., a vibration motor, a resistance mechanism), other signal generators, etc. User input component 726 may include alphanumeric input components (e.g., a keyboard, a touchscreen configured to receive alphanumeric input, an optical keyboard, or other alphanumeric input components), pointing-based input components (e.g., a mouse, touchpad, trackball, joystick, motion sensor, or other pointing instrument), haptic input components (e.g., a physical button, a touchscreen or other haptic input component that provides positioning and / or force for touch or touch gestures), audio input components (e.g., a microphone), etc.

[0052] In other examples, I / O component 738 may include biometric component 728, motion component 730, environmental component 732, or position component 734, as well as various other components. For example, biometric component 728 includes components for detecting expressions (e.g., hand gestures, facial expressions, vocal expressions, body posture, or eye tracking), measuring biosignals (e.g., blood pressure, heart rate, body temperature, sweating, or brain waves), and identifying people (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or EEG-based recognition). Motion component 730 includes: accelerometer component (e.g., accelerometer), gravity sensor component, and rotation sensor component (e.g., gyroscope).

[0053] The environmental component 732 includes, for example: one or more camera devices (with still image / photograph and video capabilities), 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 the concentration of hazardous gases for safety purposes or measures pollutants in the atmosphere), or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment.

[0054] Regarding the camera device, client device 102 may have a camera device system including, for example, a front-facing camera on the front surface of client device 102 and a rear-facing camera on the rear surface of client device 102. The front-facing camera may be used, for example, to capture still images and videos (e.g., "selfies") of the user of client device 102, and then the still images and videos may be enhanced using the enhancement data (e.g., filters) described above. For example, the rear-facing camera may be used to capture still images and videos in a more conventional camera device mode, which are similarly enhanced with the enhancement data. In addition to the front-facing and rear-facing cameras, client device 102 may also include a 360° camera for capturing 360° photos and videos.

[0055] Furthermore, the camera system of the client device 102 may include dual rear cameras (e.g., a main camera and a depth-sensing camera), or even include triple, quadruple, or quintuple rear camera configurations on the front and rear sides of the client device 102. For example, these multiple camera systems may include wide-angle cameras, ultra-wide-angle cameras, telephoto cameras, macro cameras, and depth sensors.

[0056] The position component 734 includes a positioning sensor component (e.g., a GPS receiver component), an altitude sensor component (e.g., an altimeter or barometer that detects the air pressure from which the altitude can be obtained), an orientation sensor component (e.g., a magnetometer), etc.

[0057] Various technologies can be used to achieve communication. I / O component 738 also includes communication component 736, which is operable to couple machine 700 to network 720 or device 722 via a corresponding coupling or connection. For example, communication component 736 may include a network interface component or another suitable device for interfacing with network 720. In further examples, communication component 736 may include wired communication components, wireless communication components, cellular communication components, near field communication (NFC) components, etc. Components (e.g.) (low energy consumption) Components and other communication components that provide communication via other modes. Device 722 can be any peripheral device from other machines or a wide variety of peripheral devices (e.g., a peripheral device coupled via USB).

[0058] Furthermore, communication component 636 may detect identifiers or include components operable to detect identifiers. For example, communication component 636 may 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 barcodes such as Universal Product Code (UPC) barcodes, multi-dimensional barcodes such as Quick Response (QR) codes, Aztec codes, Data Matrix, Dataglyph, MaxiCode, PDF417, UltraCode, UCC RSS-2D barcodes, and other optical codes), or an acoustic detection component (e.g., a microphone for identifying audio signals from the tag). Additionally, various information can be derived via communication component 736, such as location derived via Internet Protocol (IP) geolocation, etc. Location can be obtained through signal triangulation or by detecting NFC beacon signals that indicate a specific location.

[0059] Various memories (e.g., main memory 712, static memory 714, and memory in processor 702) and storage unit 716 may store one or more sets of instructions and data structures (e.g., software) that embody or are used by any one or more of the methods or functions described herein. These instructions (e.g., instruction 708) cause various operations to implement the disclosed examples when executed by processor 702.

[0060] Instructions 708 can be sent or received over network 720 via a network interface device (e.g., a network interface component included in communication component 736), using a transmission medium and any of several known transmission protocols (e.g., Hypertext Transfer Protocol (HTTP)). Similarly, instructions 608 can be sent or received via a transmission medium through a coupling to device 722 (e.g., peer-to-peer coupling).

[0061] Glossary

[0062] "Carrier signal" refers to any intangible medium capable of storing, encoding, or carrying instructions to be executed by a machine, including digital or analog communication signals or other intangible media to facilitate the communication of such instructions. Instructions can be sent or received over a network using a transmission medium via a network interface device.

[0063] "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. Client devices can be, but are not limited to, mobile phones, desktop computers, laptop computers, portable digital assistants (PDAs), smartphones, tablet computers, ultrabooks, netbooks, laptops, multiprocessor systems, microprocessor-based or programmable consumer electronics, game consoles, set-top boxes, or any other communication device that a user can use to access the network.

[0064] "Communication network" refers to one or more parts of a network, which can be an ad hoc network, intranet, extranet, virtual private network (VPN), local area network (LAN), wireless LAN (WLAN), wide area network (WAN), wireless WAN (WWAN), metropolitan area network (MAN), the Internet, a part of the Internet, a part of the Public Switched Telephone Network (PSTN), a POTS (Plain Old-Style Telephone Service) network, a cellular telephone network, a wireless network, etc. A network, other types of networks, or a combination of two or more such networks. For example, a network or part of a network may include a wireless network or a cellular network, and the coupling may be a Code Division Multiple Access (CDMA) connection, a Global System for Mobile Communications (GSM) connection, or other types of cellular or wireless coupling. In this example, the coupling can implement any data transmission technology of various types, such as Single Carrier Radio Transmission (1xRTT), Evolved Data Optimization (EVDO), General Packet Radio Service (GPRS), Enhanced Data Rate Evolution of GSM (EDGE), the 3rd Generation Partnership Project (3GPP) including 3G, fourth-generation wireless (4G) networks, Universal Mobile Telecommunications System (UMTS), High-Speed ​​Packet Access (HSPA), Global Microwave Access Interoperability (WiMAX), Long Term Evolution (LTE) standards, other data transmission technologies defined by various standards setting organizations, other long-distance protocols, or other data transmission technologies.

[0065] A “component” refers to a device, physical entity, or logic having boundaries defined by functional or subroutine calls, branch points, APIs, or other technologies that provide partitioning or modularity for specific processing or control functions. Components can be combined with other components via their interfaces to perform machine processing. A component can be an encapsulated functional hardware unit designed for use with other components, or part of a program that typically performs a specific function. Components can constitute software components (e.g., code implemented on a machine-readable medium) or hardware components. A “hardware component” is a tangible unit capable of performing certain operations and can be configured or arranged in some physical manner. In various example implementations, one or more computer systems (e.g., standalone computer systems, client computer systems, or server computer systems) or one or more hardware components (e.g., processors or processor groups) of a computer system can be configured by software (e.g., an application or application portion) to perform certain operations as described herein. Hardware components can also be implemented mechanically, electronically, or in any suitable combination thereof. For example, a hardware component may include dedicated circuitry or logic permanently configured to perform certain operations. Hardware components can be dedicated processors such as field-programmable gate arrays (FPGAs) or application-specific integrated circuits (ASICs). Hardware components can also include programmable logic or circuitry that is 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. Once configured by such software, the hardware component becomes a specific machine (or a specific part of a machine) uniquely tailored to perform the configured function and is no longer a general-purpose processor. It should be understood that the decision to implement a hardware component mechanically in a dedicated and permanently configured circuit or in a temporarily configured (e.g., software-configured) circuit may be made for cost and time considerations. Therefore, the phrase "hardware component" (or "hardware-implemented component") should be understood to include tangible entities, i.e., entities physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain way or perform certain operations described herein. Consider the example of a hardware component being temporarily configured (e.g., programmed), where it is not necessary to configure or instantiate each hardware component at any given time. For example, in cases where the hardware components include a general-purpose processor that is configured as a dedicated processor via software, this general-purpose processor can be configured as its own distinct dedicated processor (e.g., including different hardware components) at different times. The software accordingly configures one or more specific processors to constitute a particular hardware component at one moment and different hardware components at different times. Hardware components can provide information to and receive information from other hardware components. Therefore, the described hardware components can be considered communicatively coupled.In the presence of multiple hardware components, communication can be achieved through signal transmission between or among two or more hardware components (e.g., via appropriate circuitry and buses). In examples where multiple hardware components are configured or instantiated at different times, such communication between hardware components can be achieved, for example, by storing information in a memory structure accessed by the multiple hardware components and retrieving information from that memory structure. For example, a hardware component can perform an operation and store the output of that operation in a memory device communicatively coupled to that hardware component. Other hardware components can then access the memory device at a subsequent time to retrieve and process the stored output. Hardware components can also initiate communication with input or output devices and can operate on resources (e.g., collections of information). The various operations of the example methods described herein can be performed at least in part by one or more processors configured, either temporarily (e.g., by software) or permanently, to perform the relevant operations. Whether temporarily or permanently configured, such processors can constitute processor-implemented components that operate to perform one or more operations or functions described herein. As used herein, "processor-implemented component" refers to a hardware component implemented using one or more processors. Similarly, the methods described herein can be implemented at least in part by processors, wherein a particular processor or one or more processors are examples of hardware. For example, at least some operations of the methods can be performed by one or more processors 1004 or processor-implemented components. Furthermore, one or more processors can also operate to support the execution of related operations in a “cloud computing” environment or operate as “Software as a Service” (SaaS). For example, at least some operations can be performed by a group of computers (as an example of machines including processors), wherein these operations are accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., APIs). The execution of certain operations can be distributed among processors, not just residing within a single machine, but can be deployed across several machines. In some examples, the processor or processor-implemented component can be located in a single geographic location (e.g., in a home environment, office environment, or server cluster). In other examples, the processor or processor-implemented component can be distributed across several geographic locations.

[0066] "Computer-readable storage medium" refers to both machine-readable storage media and transmission media. Therefore, these terms include both storage devices / media and carrier / modulated data signals. The terms "machine-readable medium," "computer-readable medium," and "device-readable medium" refer to the same thing and can be used interchangeably in this disclosure.

[0067] "Machine storage medium" refers to one or more storage devices and media (e.g., centralized or distributed databases, and associated caches and servers) that store executable instructions, routines, and data. Therefore, the term should be considered to include, but is not limited to, solid-state memory and optical and magnetic media, including memory internal or external to the processor. Specific examples of machine storage media, computer storage media, and device storage media include: non-volatile memory, including, for example, semiconductor memory devices such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), FPGAs, and flash memory devices; disks, such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The terms "machine storage medium," "device storage medium," and "computer storage medium" refer to the same thing and are used interchangeably in this disclosure. The terms "machine storage medium," "computer storage medium," and "device storage medium" expressly exclude carrier waves, modulated data signals, and other such media, at least some of which are covered by the term "signal medium."

[0068] "Non-transitory computer-readable storage medium" refers to a tangible medium capable of storing, encoding, or carrying instructions that can be executed by a machine.

[0069] "Signal medium" means any intangible medium capable of storing, encoding, or carrying machine-executable instructions and including digital or analog communication signals, or other intangible medium that facilitates the communication of software or data. The term "signal medium" should be considered to include any form of modulated data signal, carrier wave, etc. The term "modulated data signal" means a signal whose characteristics are set or altered in a manner that encodes information in the signal. The terms "transmission medium" and "signal medium" mean the same thing and may be used interchangeably in this disclosure.

Claims

1. A method for power optimization of paired co-location client devices, the method comprising: The first paired client device exchanges communication information with a second paired client device located within a common positioning distance via a short-range wireless communication component. The common positioning distance is a predetermined physical range within which the first paired client device and the second paired client device can communicate with each other. At the first paired client device, first location data indicating the geographic location of the first paired client device is obtained from the location service executed at the first paired client device; Receive second location data from the message transceiver server, indicating the geographic location of the second paired client device; Based on the first location data and the second location data, it is determined that the distance between the first paired client device and the second paired client device exceeds the co-location distance but is within a threshold distance, where the threshold distance is greater than the co-location distance, and it is indicated that the first paired client device and the second paired client device will not be within the co-location distance in the near future. In response to determining that the distance between the first paired client device and the second paired client device exceeds the colocation distance but is within the threshold distance, the operation of the short-range wireless communication component at the first paired client device is maintained. Based on the first location data and the second location data, it is determined that the distance between the first paired client device and the second paired client device exceeds the threshold distance. as well as In response to determining that the distance between the first paired client device and the second paired client device exceeds the threshold distance, the operation of the short-range wireless communication component at the first paired client device is disabled.

2. The method according to claim 1, comprising: The first location data is transmitted to the message transceiver server, which is configured to transmit the first location data to the second paired client device.

3. The method according to claim 1, comprising: A message transceiver client is executed at the first paired client device. The message transceiver client is configured to access the colocation connection service provided by the message transceiver server. The first paired client device is associated with a first user profile in a profile representing the corresponding user of the colocation connection service maintained by the message transceiver server.

4. The method according to claim 3, wherein, The first user profile and the second user profile associated with the second paired client device are paired. An indication of the pairing between the first user profile and the second user profile is stored at the message transceiver server. The reception of the second location data from the message transceiver server is associated with the pairing between the first user profile and the second user profile.

5. The method according to claim 3, wherein the method comprises: The threshold distance is determined by executing a machine learning model, which receives as input features indicating the interaction between the corresponding user and the co-location communication service, represented by the first user profile and the second user profile associated with the second paired client device.

6. The method according to claim 1, wherein, The threshold distance is a value previously stored at the message sending and receiving server.

7. The method according to claim 1, wherein, The operation of the short-range wireless communication component includes: announcing the presence of the first paired client device.

8. The method according to claim 1, wherein, The operation of the short-range wireless communication component includes: performing a scan to detect the presence of the second paired device.

9. The method according to claim 1, wherein, The location service utilizes the Global Positioning System (GPS).

10. The method according to claim 1, wherein, Short-range wireless communication components utilize low-frequency audio signals.

11. A system for power optimization of paired co-location client devices, comprising: One or more processors; as well as A non-transitory computer-readable storage medium, the non-transitory computer-readable storage medium including instructions, which, when executed by the one or more processors, cause the one or more processors to perform operations including: The first paired client device exchanges communication information with a second paired client device located within a common positioning distance via a short-range wireless communication component. The common positioning distance is a predetermined physical range within which the first paired client device and the second paired client device can communicate with each other. At the first paired client device, first location data indicating the geographic location of the first paired client device is obtained from the location service executed at the first paired client device; Receive second location data from the message transceiver server, indicating the geographic location of the second paired client device; Based on the first location data and the second location data, it is determined that the distance between the first paired client device and the second paired client device exceeds the co-location distance but is within a threshold distance, where the threshold distance is greater than the co-location distance, and it is indicated that the first paired client device and the second paired client device will not be within the co-location distance in the near future. In response to determining that the distance between the first paired client device and the second paired client device exceeds the colocation distance but is within the threshold distance, the operation of the short-range wireless communication component at the first paired client device is maintained. Based on the first location data and the second location data, it is determined that the distance between the first paired client device and the second paired client device exceeds the threshold distance. as well as In response to determining that the distance between the first paired client device and the second paired client device exceeds the threshold distance, the operation of the short-range wireless communication component at the first paired client device is disabled.

12. The system according to claim 11, wherein, Operations caused by instructions executed by the one or more processors include: transmitting the first location data to the messaging server, the messaging server being configured to transmit the first location data to the second paired client device.

13. The system according to claim 11, wherein, Operations caused by instructions executed by the one or more processors include: executing a messaging client at the first paired client device, the messaging client being configured to access a colocation connection service provided by the messaging server, the first paired client device being associated with a first user profile in a profile representing the corresponding user of the colocation connection service maintained by the messaging server.

14. The system according to claim 13, wherein, The first user profile and the second user profile associated with the second paired client device are paired. An indication of the pairing between the first user profile and the second user profile is stored at the message transceiver server. The receipt of the second location data from the message transceiver server is associated with the pairing between the first user profile and the second user profile.

15. The system according to claim 13, wherein, Operations caused by instructions executed by the one or more processors include: determining the threshold distance by executing a machine learning model, the machine learning model taking as input features indicating the interaction of the respective user, represented by the first user profile and a second user profile associated with the second paired client device, with the co-location communication service.

16. The system according to claim 11, wherein, The threshold distance is a value previously stored at the message sending and receiving server.

17. The system according to claim 11, wherein, The operation of the short-range wireless communication component includes one or more of the following operations: announcing the presence of the first paired client device; and performing a scan to discover the presence of the second paired device.

18. The system according to claim 11, wherein, Operations caused by instructions executed by the one or more processors include: In response to determining that the new distance between the first paired client device and the second paired client device is less than the threshold distance, operation of the short-range wireless communication component at the first paired client device is resumed.

19. The system according to claim 11, wherein, The location service utilizes the Global Positioning System (GPS).

20. A machine-readable nontransitory storage medium having power-optimized instruction data for paired co-location client devices, the instruction data being executable by a machine to cause the machine to perform operations including: The first paired client device exchanges communication information with a second paired client device located within a common positioning distance via a short-range wireless communication component. The common positioning distance is a predetermined physical range within which the first paired client device and the second paired client device can communicate with each other. At the first paired client device, first location data indicating the geographic location of the first paired client device is obtained from the location service executed at the first paired client device; Receive second location data from the message transceiver server, indicating the geographic location of the second paired client device; Based on the first location data and the second location data, it is determined that the distance between the first paired client device and the second paired client device exceeds the co-location distance but is within a threshold distance, where the threshold distance is greater than the co-location distance, and it is indicated that the first paired client device and the second paired client device will not be within the co-location distance in the near future. In response to determining that the distance between the first paired client device and the second paired client device exceeds the colocation distance but is within the threshold distance, the operation of the short-range wireless communication component at the first paired client device is maintained. Based on the first location data and the second location data, it is determined that the distance between the first paired client device and the second paired client device exceeds the threshold distance. as well as In response to determining that the distance between the first paired client device and the second paired client device exceeds the threshold distance, the operation of the short-range wireless communication component at the first paired client device is disabled.

Citation Information

Patent Citations

  • Mobile communications device providing near field communication (NFC) security features and related methods

    US20130173455A1

  • Systems, devices, and methods for sharing geographic location

    US20150141060A1