Status indicators are useful graphical user interface elements to enable a user to obtain information on underlying actions of a computing device and on activities of other users with respect to their computing devices. For example, online status indicators can provide information on whether a user is or was recently online or operating a particular application.
Collaboration platforms and social media platforms use online status indicators to assist with interactions between users of those platforms in an effort to support online engagement and coordination. Common online status indicators, particularly for collaboration platforms, include available, busy, offline, and do not disturb. There has been effort to improve the ability of status indicators to indicate whether a user is truly available for interaction or simply online or working, for example, by providing options a user can manually select to appear away or offline or by incorporating artificial intelligence for evaluating user patterns and predicting whether a user is available or busy. However, there continues to be areas for improvement.
Extended status indicators for mobile device interactions are described. The described status indicators can assist with collaboration and engagement not only online via collaboration and social media platforms, but also “offline” (e.g., for in-person interactions).
A computer-implemented method for extended status indicators can include receiving a signal indicating a first computing device associated with a first user is proximate to a beacon at a particular location; determining a current status of the first user associated with the first computing device; generating an updated status of the first user based on the signal indicating the first computing device is proximate the beacon and the current status of the first user; and directing the updated status to requesting client devices for display as a status indicator of the first user.
Determining the current status of the first user associated with the first computing device can include receiving activity information from the first computing device or a second computing device associated with the first user. The activity information from the first computing device can indicate an application state of an application or operation of a phone service of the first computing device. The activity information from the second computing device can indicate an application state of an application such as a collaboration or social media application on the second computing device.
In some cases, the method for extended status indicators can further include receiving a second signal indicating the first computing device associated with the first user is proximate to a second beacon at a second particular location. In some of such cases, generating the updated status of the first user based on the signal indicating the first computing device is proximate to the beacon and the current status of the first user further uses the second signal (and potentially additional beacon signals received within a certain period of time) to determine which status indicator applies.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
Extended status indicators for mobile device interactions are described. The described status indicators can assist with collaboration and engagement not only online via collaboration and social media platforms, but also “offline” (e.g., for in-person interactions).
Online services, such as social networking services (e.g., LinkedIn, Facebook, etc.), allow users to communicate with each other online, either through public conversations (e.g., posting comments, replying to comments, etc.), or through private conversations using direct messaging. Similarly, online services, such as collaboration services (e.g., Teams, Slack, Microsoft365, Google Workspace, etc.), allow users to collaborate and communicate with each other online through group channels, private conversations (e.g., via direct messaging, email, etc.), and comments (e.g., on documents).
To encourage conversations between users and/or assist with productivity, presence indicators that indicate a user's status (e.g., online, offline, or available to receive a notification) are presented by the online service. The presence indicators allow users of the online service to easily determine whether another user is online and available to converse, which may increase the likelihood of the users engaging in a private or public conversations and/or improve workflow.
As mentioned, presence indicators are often used for indicating online accessibility to the person. However, the described extended status indicators can convey additional information about a user's online availability as well as provide information regarding in-person and/or informal approachability.
In the illustrative scenario, the first user 100 steps away from their second computing device 120, which had been running an application associated with an online service 130. The second computing device 120 (and/or the application associated with the online service 130) may be considered to have gone inactive (e.g., reflected by a sleep screen 135 in the display of the second computing device 120). A second user (not shown) who is using a third computing device 140 (e.g., implemented such as described with respect to system 300 of
For example, when a user indicator is present on the display of a client computing device of the online service (e.g., third computing device 140), the client computing device determines the presence status of the corresponding user(s) and presents presence indicator(s) indicating the determined presence status(es). The client computing device can determine the presence status of a user by transmitting a request to the online service 130 (e.g., a server of the online service, which may be embodied on a system 400 such as described with respect to
As illustrated in
Turning to
In the illustrative scenario, when the first user 100, and particularly the first computing device 110, is proximate a beacon 170 at a coffee area 175 (e.g., within a radius sufficient for beacon 170 and first computing device 110 to detect and/or communicate with each other), a communication between the first computing device 110 and the beacon 170 can occur and a signal is sent to the online service 130 indicating that the first computing device 110 associated with the first user 100 is proximate to the beacon 170 at the particular location (e.g., coffee area 175). In some cases, the signal indicating the first computing device 110 associated with the first user 100 is proximate to the beacon 170 at the particular location is sent to the online service 130 by the first computing device 110 (e.g., when the first computing device 110 is running the application associated with the online service 130). When the signal is sent by the first computing device 110, the communication between the beacon 170 and the first computing device 110 (e.g., from the beacon 170 to the first computing device 110) can include a beacon identifier or other location information.
In some cases, the signal indicating the first computing device 110 associated with the first user 100 is proximate to the beacon 170 at the particular location is sent to the online service 130 by the beacon 170. When the signal is sent by the beacon 170, the communication between the beacon 170 and the first computing device 110 (e.g., from first computing device 110 to the beacon 170) can include information of the first user 100 (e.g., a user identifier of the first user 100 or a device identifier that the online service may use to identify the first user 100). In some of such cases, such as when a user opts-in to enable such communications, the first computing device 110 also provides certain operation information to the beacon 170 that can indicate activity information of the first computing device 110 (e.g., operation of a phone service of the first computing device 110, an application state of an application on the first computing device 110, calendar information, online meeting information, etc.).
As described in more detail with respect to
Thus, when a user indicator is present on the display of a client computing device of the online service (e.g., third computing device 140), the client computing device determines the presence status of the corresponding user(s) and presents presence indicator(s) indicating the determined presence status(es), which can include the extended statuses. In the example scenario shown in
In this manner, if another user (e.g., the second user) sees the status change to indicate that the first user 100 is at the breakroom, that other user may go get a cup of coffee or otherwise visit the break area in hopes of talking to the first user, supporting offline interactions.
Communications between the first computing device 110 and online service 130, the second computing device 120 and online service 130, third communications device and online service 130, and beacon 170 and online service 130 may be carried out over network 190.
Network 190 can include, but is not limited to, a cellular network, a satellite network, the Internet, a local area network (LAN), a wide area network (WAN), a WiFi network, an ad hoc network, or a combination thereof. The network 190 may include one or more connected networks (e.g., a multi-network environment) including public networks, such as the Internet, and/or private networks such as a secure enterprise private network. Access to the network 190 may be provided via wired and/or wireless means as will be understood by those skilled in the art. As will also be appreciated by those skilled in the art, communication networks can take several different forms and can use several different communication protocols.
Receiving (210) the signal indicating the first computing device associated with the first user is proximate to a beacon at a particular location can include receiving a string naming the particular location and a first identifier associated with the first user. In some cases, receiving (210) the signal indicating the first computing device associated with the first user is proximate to a beacon at a particular location includes receiving an identifier of the particular location and a first identifier associated with the first user. In some of such cases, a look-up is performed of a string naming the particular location using the identifier of the particular location. The string naming the particular location can be used as part of an extended status identifier.
As previously mentioned, the signal indicating the first computing device associated with the first user is proximate to a beacon at a particular location can be received from the beacon itself or the first computing device, depending on implementation.
Determining (220) the current status of the first user associated with the first computing device can include receiving activity information from the first computing device, a second computing device associated with the first user, or both the first computing device and the second computing device).
For example, determining (220) the current status of the first user can include receiving activity information from the second computing device associated with the first user and assigning the current status of the first user based on the received activity information from the second computing device. The second computing device associated with the first user can have a collaboration or social media application stored thereon and it is the application state of the collaboration or social media application that is indicated by the activity information. In some cases, the first computing device associated with the first user and the second computing device associated with the first user are executing a same application.
As another example, determining (220) the current status of the first user can include receiving activity information from the first computing device; and assigning the current status of the first user based on the received activity information. Similar to activity information that may come from the second computing device, the activity information from the first computing device can indicates an application state of an application such as a collaboration application, social media application, and even a messaging application. In some cases, the activity information from the first computing device indicates operation of a phone service of the first computing device. When the activity information indicates operation of the phone service, the current status of the first user can be assigned as busy when the phone service is being used and can be assigned as available when the phone service is not being used. A similar response could be made based on network operation of the first computing device (e.g., amount of cellular or network data, which may be indicative of heavy usage of the device).
Since it is not uncommon for a user to be signed in to an application associated with an online service using many devices at the same time, any existing or otherwise suitable mechanism by which to aggregate the user's presence information may be used by the online service to determine a current status.
Generating (230) the updated status of the first user based on the signal indicating the first computing device is proximate the beacon and the current status of the first user can include determining whether an extended status is available or is blocked for the first user in view of the current status. An extended status can be determined to be available if conditions regarding the current status indicate that the user may want to have their physical location advertised; and an extended status can be determined to be blocked if the conditions regarding the current status indicate that the user would not want to have their physical location advertised. For example, if a user is on a phone call, the extended status can be determined to be blocked. Of course, a user can expressly indicate that they are not to be disturbed (even when opted in to the service providing extended statuses and otherwise could be considered to be available for extended status).
The system performing the method 200 can include machine learning/artificial intelligence components to assist with the determination of availability of an extended status. These systems may involve generating and training models of behavior of applications, etc., as is known in the art, to identify patterns of signals indicative of whether a user would be available for in-person interruption. In a most simple implementation, a set of logic can be used/developed (e.g., if/then statements) for common scenarios that would reflect the extended status and if the signals do not fall into a recognized category or scenario, the extended status can be determined to be blocked. Information of signals that are not part of the known scenarios can be collected and used to potentially update the logic.
For example, returning to a possible scenario associated with
The purpose of the status indicator can be to show if someone is busy (and where they are) or to indicate approachability or availability at in-person settings such as near an object (e.g., coffee machine) or at a location. For example, current presence indicators may be able to indicate that a user is in a call or on an online meeting, which can imply to someone seeing that indicator that if they need to contact that user, they should either wait or send an email or instant message. They would know that calling or stopping by in person would not get a response. Similarly, if a user is indicated as presenting by a current presence indicator, someone seeing that indicator would know that they probably should not send an instant message in case the user is sharing their screen. The intelligence (whether part of the simple logic or a more complex machine learning implementation) uses this information to make decisions to not advertise the beacon location as it would be likely that the user does not want to be disturbed. Thus, certain signals like being on the phone, being in a meeting, having an appointment on a calendar, and editing a document can indicate that the user would not want to be interrupted in-person (and may be part of defined decision logic).
Accordingly, when generating (230) the updated status of the first user based on the signal indicating the first computing device is proximate the beacon and the current status of the first user, if the extended status is determined to be blocked, generating (230) the updated status includes applying the current status as the updated status of the first user. For example, if the user is indicated as being busy as part of the current status, the updated status can indicate the user is busy.
If the extended status is determined to be available in view of the current status, generating (230) the updated status includes obtaining a status template for the extended status and inserting information of the particular location in a custom field of the status template for the extended status used as the updated status of the first user.
There can be status templates stored by the service (e.g., at or in communication with a server on which the service is provided) that have one or more parameters that can be updated in the template based on the known location and in some cases on the user's activities. For example, a status template can be “hanging near X” or “taking a break at X”. Another status template can be eating lunch at “X”. The system can determine the template to use based on the location identity, received signals, and user-defined scenarios among other information.
In some cases, the method for extended status indicators can further include receiving a second signal indicating the first computing device associated with the first user is proximate to a second beacon at a second particular location. In some of such cases, generating the updated status of the first user based on the signal indicating the first computing device is proximate to the beacon and the current status of the first user further uses the second signal (and potentially additional beacon signals received within a certain period of time) to determine which status indicator applies. The system receiving the signals from beacons can track the timing between the signals. The timing between the first signal and the second signal (from a different beacon) can be indicative of certain behaviors. Inferencing operations (e.g., using any suitable machine learning algorithm or a simple set of logic if/then statements may be used) can be performed to assist with the status indicator determination.
For example, a beacon A may be located in the office lobby and a beacon B may be located in a parking lot. A first signal can be received indicating the first computing device associated with the first user is proximate beacon A and then a second signal can be received indicating the first computing device associated with the first user is proximate the beacon B. If the timing between the two signals is about a minute, a reasonable inference may be that the first user is about to leave the office. This in turn could translate into a status indicator “Elvis has left the building.” As another example, a beacon C may be located in a copy room. Multiple signals received indicating the first computing device associated with the first user is proximate the beacon C (or the beacon C and another one of the beacons) within a period of time (e.g., 5-10 minutes) may generate a reasonable inference that the first user is working away from their desk and is busy (which may contribute to a determination whether an extended status is available or not for that user).
As can be seen, it is possible, through use of an extended status indicator, to assist with collaboration and engagement not only online via collaboration and social media platforms, but also “offline” (e.g., for in-person interactions).
Referring to
System 300, for example, includes a processing system 305 of one or more processors to transform or manipulate data according to the instructions of software 310 stored on a storage system 315. Examples of processors of the processing system 305 include general purpose central processing units, application specific processors, and logic devices, as well as any other type of processing device, combinations, or variations thereof.
The software 310 can include an operating system 320 and application programs 325 such as an electronic messaging application, a collaboration application, a web browsing application, and/or a social media application, which may communicate with an appropriate online service tracking user presence. Collaboration applications can include, but are not limited to, team collaboration tools that support a variety of communications and content including, but not limited to, one or more of video, audio, text, file attachments, instant messages (e.g., exchanges between two—and sometimes more—people), chat messages (e.g., messaging within a chat room or other virtual meeting area), email, calendar entries, meeting entries, and the like. Examples of team collaboration tools include MICROSOFT TEAMS, SLACK, and FLOWDOCK. Other applications that include at least some meetings, collaboration, and messaging capabilities include FACEBOOK (and FACEBOOK MESSENGER), GOTOMEETING, and JOIN.ME. Collaboration applications can also include MICROSOFT365 and GOOGLE WORKSPACE. Example social media applications include FACEBOOK, INSTAGRAM, and TWITTER.
Device operating systems generally control and coordinate the functions of the various components in the computing device, providing an easier way for applications to connect with lower-level interfaces like the networking interface. The operating system 320 may control phone operation services and network operation services on the system 300.
It should be noted that the operating system 320 may be implemented both natively on the computing device and on software virtualization layers running atop the native device operating system (OS). Virtualized OS layers, while not depicted in
Storage system 315 can include any computer readable storage media readable by the processing system 305 and capable of storing software 310 including the various applications 325 that may communicate with an associated online service tracking user presence. Storage system 315 may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Examples of storage media include random access memory, read only memory, magnetic disks, optical disks, CDs, DVDs, flash memory, virtual memory and non-virtual memory, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other suitable storage media. In no case is the storage medium of storage system a transitory propagated signal.
Storage system 315 may include additional elements, such as a controller, capable of communicating with processor 305.
The system can further include user interface system 330, which may include input/output (I/O) devices and components that enable communication between a user and the system 300. User interface system 330 can include input devices such as a mouse, track pad, keyboard, a touch device for receiving a touch gesture from a user, a motion input device for detecting non-touch gestures and other motions by a user, a microphone for detecting speech, and other types of input devices and their associated processing elements capable of receiving user input. The user interface system 330 may also include output devices such as display screens, speakers, haptic devices for tactile feedback, and other types of output devices. In certain cases, the input and output devices may be combined in a single device, such as a touchscreen display which both depicts images and receives touch gesture input from the user. Visual output may be depicted on the display in myriad ways, presenting graphical user interface elements, text, images, video, notifications, virtual buttons, virtual keyboards, or any other type of information capable of being depicted in visual form.
The user interface system 330 may also include user interface software and associated software (e.g., for graphics chips and input devices) executed by the OS in support of the various user input and output devices. The associated software assists the OS in communicating user interface hardware events to application programs using defined mechanisms. The user interface system 330 including user interface software may support a graphical user interface, a natural user interface, or any other type of user interface.
Communications interface 340 may include communications connections and devices that allow for communication with other computing systems over one or more communication networks. Examples of connections and devices that together allow for inter-system communication may include network interface cards, antennas, power amplifiers, RF circuitry, transceivers, and other communication circuitry. The connections and devices may communicate over communication media (such as metal, glass, air, or any other suitable communication media) to exchange communications with other computing systems or networks of systems. Transmissions to and from the communications interface are controlled by the operating system 320, which informs applications of communications events when necessary.
It should be noted that certain elements of system 300 may be included in a system-on-a-chip (SoC) device. These elements may include, but are not limited to, the processing system 305, a communications interface 340, and even elements of the storage system 315.
The system 400 can include a processing system 420, which may include one or more processors and/or other circuitry that retrieves and executes software 405 from storage system 415. Processing system 420 may be implemented within a single processing device but may also be distributed across multiple processing devices or sub-systems that cooperate in executing program instructions.
Examples of processing system 420 include general purpose central processing units, application specific processors, and logic devices, as well as any other type of processing device, combinations, or variations thereof. The one or more processing devices may include multiprocessors or multi-core processors and may operate according to one or more suitable instruction sets including, but not limited to, a Reduced Instruction Set Computing (RISC) instruction set, a Complex Instruction Set Computing (CISC) instruction set, or a combination thereof. In certain embodiments, one or more digital signal processors (DSPs) may be included as part of the computer hardware of the system in place of or in addition to a general purpose CPU.
As with storage system 315 (as shown in
Software 405 may be implemented in program instructions and among other functions may, when executed by system 400 in general or processing system 420 in particular, direct the system 400 or processing system 420 to operate as described herein for extended statuses. For example, software 405 may provide program instructions that implement an online service 410 that tracks user presence, for example performing method 200 as described with respect to
Software 405 may also include additional processes, programs, or components, such as operating system software or other application software. Software 405 may also include firmware or some other form of machine-readable processing instructions executable by processing system 420.
In embodiments where the system 400 includes multiple computing devices, the system can include one or more communications networks that facilitate communication among the computing devices. For example, the one or more communications networks can include a local or wide area network that facilitates communication among the computing devices. One or more direct communication links can be included between the computing devices. In addition, in some cases, the computing devices can be installed at geographically distributed locations. In other cases, the multiple computing devices can be installed at a single geographic location, such as a server farm or an office.
A communication interface 425 may be included, providing communication connections and devices that allow for communication between system 400 and other computing systems (e.g., including computing devices 110, 120, and 130 described with respect to
Communication to and from client computing devices, beacons, and other computing systems (not shown) and the online service 410 may be carried out, in some cases, via application programming interfaces (APIs). An API is an interface implemented by a program code component or hardware component (hereinafter “API-implementing component”) that allows a different program code component or hardware component (hereinafter “API-calling component”) to access and use one or more functions, methods, procedures, data structures, classes, and/or other services provided by the API-implementing component. An API can define one or more parameters that are passed between the API-calling component and the API-implementing component. The API is generally a set of programming instructions and standards for enabling two or more applications to communicate with each other and is commonly implemented over the Internet as a set of Hypertext Transfer Protocol (HTTP) request messages and a specified format or structure for response messages according to a REST (Representational state transfer) or SOAP (Simple Object Access Protocol) architecture.
It should be understood that the examples and embodiments described herein are for illustrative purposes only and that various modifications or changes in light thereof will be suggested to persons skilled in the art and are to be included within the spirit and purview of this application.
Although the subject matter has been described in language specific to structural features and/or acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as examples of implementing the claims and other equivalent features and acts that would be recognized by one skilled in the art are intended to be within the scope of the claims.
Number | Name | Date | Kind |
---|---|---|---|
6668173 | Greene | Dec 2003 | B2 |
7603131 | Wang | Oct 2009 | B2 |
7627334 | Cohen | Dec 2009 | B2 |
7823073 | Holmes | Oct 2010 | B2 |
7958212 | Wong | Jun 2011 | B1 |
7983404 | Croak | Jul 2011 | B1 |
8024431 | Hoffman | Sep 2011 | B2 |
8050690 | Neeraj | Nov 2011 | B2 |
8250157 | Millmore | Aug 2012 | B2 |
8634858 | Jackson | Jan 2014 | B1 |
8700048 | Kamdar | Apr 2014 | B2 |
8774145 | Lin | Jul 2014 | B2 |
8995911 | Nousiainen | Mar 2015 | B2 |
9218363 | Zwaal | Dec 2015 | B2 |
9432808 | Reyes | Aug 2016 | B1 |
9488487 | Andersen | Nov 2016 | B2 |
9510142 | Hans | Nov 2016 | B2 |
9525968 | Pounds | Dec 2016 | B2 |
9661091 | Dawoud Shenouda Dawoud | May 2017 | B2 |
9680529 | Coelho et al. | Jun 2017 | B2 |
9706364 | Kay | Jul 2017 | B2 |
9832748 | Broum | Nov 2017 | B1 |
9860685 | White, Jr. | Jan 2018 | B1 |
9876867 | Healey | Jan 2018 | B2 |
9886727 | Curtis | Feb 2018 | B2 |
10004056 | Khan | Jun 2018 | B2 |
10007355 | Schorsch et al. | Jun 2018 | B2 |
10009868 | Reyes | Jun 2018 | B1 |
10206065 | De Vries | Feb 2019 | B2 |
10332168 | He | Jun 2019 | B2 |
10367911 | Combs | Jul 2019 | B1 |
10382382 | Chae | Aug 2019 | B2 |
10587558 | Karimli | Mar 2020 | B2 |
10818119 | Robertson | Oct 2020 | B2 |
11051130 | Crowley | Jun 2021 | B2 |
11074613 | McDevitt | Jul 2021 | B2 |
11206506 | Gorsica | Dec 2021 | B2 |
11223699 | Niewczas | Jan 2022 | B1 |
11540103 | Gaver | Dec 2022 | B2 |
20020077080 | Greene | Jun 2002 | A1 |
20060099911 | Shibuya | May 2006 | A1 |
20070043828 | Famolari | Feb 2007 | A1 |
20070130260 | Weintraub | Jun 2007 | A1 |
20080242231 | Gray | Oct 2008 | A1 |
20090052442 | Chen | Feb 2009 | A1 |
20100205242 | Marchioro, II | Aug 2010 | A1 |
20110264528 | Whale | Oct 2011 | A1 |
20150339461 | Min | Nov 2015 | A1 |
20160086228 | Babb | Mar 2016 | A1 |
20160100282 | Pounds | Apr 2016 | A1 |
20160110467 | Hern | Apr 2016 | A1 |
20160132917 | Carney, II | May 2016 | A1 |
20170025861 | Lee | Jan 2017 | A1 |
20170171754 | South | Jun 2017 | A1 |
20170270783 | Mendiola | Sep 2017 | A1 |
20180095606 | Chae | Apr 2018 | A1 |
20200036831 | Kim | Jan 2020 | A1 |
Number | Date | Country |
---|---|---|
106302818 | Jan 2017 | CN |
110427572 | Nov 2019 | CN |
Entry |
---|
Betters, Élyse, “‘Highlight’ App Gives a Name to the Stranger Nearby, Brings Social Network to Life”, Retrieved from: https://9to5mac.com/2012/01/24/highlight-app-gives-a-name-to-the-stranger-nearby-brings-social-network-to-life/, Jan. 24, 2012, 4 Pages. |