AUTOMATICALLY PERFORMING USER ACTIONS BASED ON DETECTED CONTEXT-TO-USER-ACTION CORRELATIONS

- Waldeck Technology, LLC

A system and method are provided for automatically performing user actions at a device based on a context of the user device. In one embodiment, user actions taken by a user of a user device and corresponding contexts of the user device at times at which the user actions were taken are monitored to detect context-to-user-action correlations. Each context-to-user-action correlation defines a context of the user device and a user action historically taken by the user of the user device for when the device is in that context. Subsequently, a current context of the user device is obtained and compared to the stored context-to-user-action correlations to identify a matching context-to-user-action correlation. The user device then automatically performs the user action that is correlated to the current context as defined by the matching context-to-user-action correlation.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
RELATED APPLICATION

This application claims the benefit of provisional patent application Ser. No. 61/173,625, filed Apr. 29, 2009, the disclosure of which is hereby incorporated herein by reference in its entirety.

FIELD OF THE DISCLOSURE

The present disclosure relates to automatically performing user actions at a user device based on a context of the user device.

BACKGROUND

Users often control their mobile devices differently in different contexts. For instance, a user may set his mobile phone to a silent mode when in an important meeting or in a movie theater and set his mobile phone to ring at a maximum volume level when in a noisy environment such as a shopping mall. However, performing such controls can become tedious. Further, forgetting to perform such controls can oftentimes lead to embarrassing situations such as a ringing mobile telephone while watching a movie at a movie theater. As such, there is a need for a system and method of performing user actions on a mobile phone based on context in a manner that is automatic or that requires minimal user input.

SUMMARY

A system and method are provided for automatically performing user actions on a device based on a context of the user device. In one embodiment, user actions taken by a user of a user device and corresponding contexts of the user device at times at which the user actions were taken are monitored to detect correlations between contexts of the user device and user actions taken by the user, which are referred to herein as context-to-user-action correlations. Each context-to-user-action correlation defines a context of the user device and a user action historically taken by the user of the user device for when the device is in that context. Subsequently, a current context of the user device is obtained and compared to the stored context-to-user-action correlations to identify a matching context-to-user-action correlation. The user device then automatically performs the user action that is correlated to the current context as defined by the matching context-to-user-action correlation. Optionally, the user may be prompted for approval to perform the user action before performing the user action.

Those skilled in the art will appreciate the scope of the present invention and realize additional aspects thereof after reading the following detailed description of the preferred embodiments in association with the accompanying drawing figures.

BRIEF DESCRIPTION OF THE DRAWING FIGURES

The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the invention, and together with the description serve to explain the principles of the invention.

FIG. 1 illustrates a mobile device including a Context to user Action Correlation (CAC) function according to one embodiment of the present disclosure;

FIG. 2 is a flow chart illustrating the operation of the CAC function of FIG. 1 according to one embodiment of the present disclosure;

FIGS. 3A through 3C provide a flow chart illustrating the operation of the CAC function of FIG. 1 in more detail according to one embodiment of the present disclosure; and

FIG. 4 is a block diagram of the mobile device of FIG. 1 according to one embodiment of the present disclosure.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The embodiments set forth below represent the necessary information to enable those skilled in the art to practice the invention and illustrate the best mode of practicing the invention. Upon reading the following description in light of the accompanying drawing figures, those skilled in the art will understand the concepts of the invention and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.

FIG. 1 illustrates a mobile device 10 including a Context to user Action Correlation (CAC) function 12 according to one embodiment of the present disclosure. Note that while the discussion herein focuses on the mobile device 10, the CAC function 12 may additionally or alternatively be implemented on other types of user devices (i.e., non-mobile user devices such as personal computers, set-top boxes, audio systems, or the like). The mobile device 10 is a mobile device such as, for example, a mobile smart phone (e.g., an Apple® iPhone), a portable media player (e.g., an Apple® iPod Touch® device), a laptop or notebook computer, a tablet computer (e.g., Apple® iPad), or the like.

As illustrated, the mobile device 10 includes the CAC function 12, one or more context sensors 14, and a CAC record repository 16. The CAC function 12 is preferably implemented in software, but may be implemented as a combination of hardware and software. In operation, the CAC function 12 monitors user actions taken by a user of the mobile device 10 and contexts of the mobile device 10 obtained from the context sensors 14 at times at which the user actions were taken by the user. In the preferred embodiment, the context of the mobile device 10 includes a list of device identifiers (IDs) of a number of mobile devices 18 located proximate to the mobile device 10, a list of user IDs for users of the mobile devices 18 located proximate to the mobile device 10, a list of users in a social network of the user of the mobile device 10 that are proximate to the mobile device 10, a list of users in a contact list maintained by the mobile device 10 that are proximate to the mobile device 10, or a combination thereof. Note that the other mobile devices 18 preferably have similar internal structures as the mobile device 10. Different reference numbers are used for the mobile device 10 and the other mobile devices 18 to enable the mobile devices 10 and 18 to be differentiated in the discussion herein.

In addition, the context of the mobile device 10 may include a location of the mobile device 10 where the location of the mobile device 10 may be expressed as geospatial coordinates (e.g., latitude and longitude coordinates), a physical address (e.g., a street address), a predefined location designation (e.g., “work” or “home”), Wi-Fi hotspot ID, or the like. Still further, the context of the mobile device 10 may include data defining one or more ambient conditions such as, for example, temperature, weather conditions, ambient sound level, ambient light level (i.e., visibility), crowd density as estimated by, for example, a number of proximate mobile devices 18 detected in the local wireless coverage area of the mobile device 10, crowd composition, geographic information system labels or metadata, or the like. Still further, the context of the mobile device 10 may include data from an accelerometer of the mobile device 10, which may indicate whether the user of the mobile device 10 is walking, jogging, driving, sitting, or the like. Still further, the context of the mobile device 10 may include a number of the mobile devices 10 having unknown users. Unknown users are users that are not known to the user of the mobile device 10 in a social network, contact list, or the like. The number of unknown users proximate to the mobile device 10 may be indicative of being located in a public venue such as a sporting arena for a sporting event, concert, or the like. Still further, the context of the mobile device 10 may include data obtained from an electronic calendar maintained for the user of the mobile device 10 such as a status identifier for the user (e.g., “Meeting with Bob”) or the like.

The user actions monitored by the CAC function 12 are generally user actions taken by the user of the mobile device 10 to interact with the mobile device 10. The user actions monitored by the CAC function 12 may be any user action taken by the user to interact with the mobile device 10. Alternatively, the CAC function 12 may only monitor for a defined set of user actions taken by the user to interact with the mobile device 10 (e.g., monitor only volume control actions). While the types of user actions may depend on the particular implementation, some exemplary user actions that may be monitored by the CAC function 12 include, but are not limited to, volume control actions, turning off the mobile device 10, turning off a local wireless communication interface of the mobile device 10, activating a software application, closing a software application, changing a particular setting on the mobile device 10, or the like. Further, the CAC function 12 may monitor user actions with respect to the mobile device 10 in general. Alternatively, the CAC function 12 may monitor user actions only with respect to one or more defined software applications running on the mobile device 10. For example, the CAC function 12 may be incorporated into a particular software application and only monitor only those user actions made by the user with respect to that software application.

Based on the monitoring of the user actions taken by the user and the corresponding contexts of the mobile device 10, the CAC function 12 is enabled to detect correlations between contexts of the mobile device 10 and user actions taken by the user of the mobile device 10. Each detected correlation between a context and a user action taken by the user of the mobile device 10 defines a context of the mobile device 10 and a user action that has historically been taken by the user when the mobile device 10 is in that context. The CAC function 12 may then use the stored context-to-user-action correlations to automatically perform user actions in response to detecting the correlated contexts.

The context sensors 14 may be implemented in hardware, software, or a combination thereof. In general, the context sensors 14 are software and/or hardware components that are enabled to obtain data forming the context of the mobile device 10. The context sensors 14 preferably include a local wireless communication interface such as, for example, a Bluetooth® communication interface or a communication interface operating according to one of the suite of IEEE 802.11x standards (i.e., a Wi-Fi communication interface). Using the local wireless communication interface, the CAC function 12 is enabled to obtain a list of device IDs of mobile devices 18 that are located proximate to the mobile device 10, user IDs of users of the mobile devices 18 that are located proximate to the mobile device 10, or a combination thereof. Here, the devices 18 that are proximate to the mobile device 10 are mobile devices 18 that are within a wireless coverage area of the mobile device 10 and/or mobile devices 18 for which the mobile device 10 is in their wireless coverage areas. The mobile device 10 may obtain the device IDs of the mobile devices 18 and/or user IDs of the users of the mobile devices 18 by passively monitoring wireless communications to or from the mobile devices 18, by actively querying the mobile devices 18 for their device IDs or the user IDs of their users, or both.

The context sensors 14 may also include a software application that interacts with a social networking service (e.g., the Facebook® social networking service) to identify other users in the social network of the user of the mobile device 10 that are currently located proximate to the mobile device 10. As used herein, a social networking service is also to include an Instant Messaging service or the like. More specifically, in one embodiment, the mobile device 10 may query the social networking service via a network connection (e.g., an Internet connection) with the device IDs of the mobile devices 18 or the user IDs of the users of the mobile devices 18. In this embodiment, the social networking service stores device IDs and/or user IDs for at least some of the users of the social networking service. As such, in response to receiving the query, the social networking service identifies users of the social networking service that correspond to the IDs included in the query, if any, and determines which of the identified users are in the social network of the user of the mobile device 10. The social networking service then returns information identifying the users in the social network of the user of the mobile device 10 that have IDs matching those of the mobile devices 18 or users of the mobile devices 18 that are proximate to the mobile device 10. In an alternative embodiment, rather than querying the social networking service, the mobile device 10 may query an intermediate device or service between the mobile device 10 and the social networking service.

In another embodiment, the social networking service tracks locations of users of the social networking service. As such, CAC function 12 of the mobile device 10 may query the social networking service for members of the social network of the user of the mobile device 10 that are currently located proximate to the current location of the mobile device 10. The social networking service determines which members of the social network of the user of the mobile device 10 are proximate to the current location of the mobile device 10 and returns information identifying those members to the CAC function 12 at the mobile device 10. Here, members of the social network of the user are proximate to the current location of the mobile device 10 if, for example, they are within a defined distance from the current location of the mobile device 10, at the same street address as the mobile device 10, or the like.

Note that, as yet another alternative, a contact list of may be maintained and stored at the mobile device 10 that include a number of contacts of the user. The contact list may also include device IDs of mobile devices associated with at least some of the contacts. The CAC function 12 may then use the device IDs of the mobile devices 18 and the device IDSs in the contact list to identify other users in the contact list of the user that are currently proximate to the mobile device 10.

The context sensors 14 may also include a location determination function that operates to sense or otherwise obtain the location of the mobile device 10. The location determination function may be, but is not limited to, a Global Positioning System (GPS) receiver. The context sensors 14 may also include one or more context sensors 14 for detecting or otherwise obtaining ambient conditions such as, for example, temperature, weather conditions, ambient sound level, ambient light level (i.e., visibility), crowd density, or the like. The context sensors 14 may detect the ambient conditions directly or obtain the ambient conditions from a remote device or service (e.g., an Internet based weather service). Further, the one or more context sensors 14 may include an accelerometer for detecting user or device movement. Still further, the context sensors 14 may include a software component for obtaining relevant contextual data from an electronic calendar maintained for the user of the mobile device 10, where the electronic calendar may be stored locally at the mobile device 10 or remotely by, for example, an Internet based service.

In this embodiment, the CAC record repository 16 stores a number of CAC records for potential context-to-user-action correlations, which are referred to herein as potential CAC records, and a number of CAC records for actual context-to-user-action correlations, which are referred to herein as actual CAC records. Each CAC record, whether potential or actual, defines a user action and a context of the mobile device 10. In addition, the CAC record may include a counter that counts the number of times the defined user action has been detected when the mobile device 10 is in the defined context, timestamps defining times at which the defined user action has been detected when the mobile device 10 is in the defined context, or both. The CAC record may also include a flag, or indicator, that indicates whether the CAC record is for an actual context-to-user-action correlation or a potential context or user action correlation.

FIG. 2 is a flow chart illustrating the operation of the CAC function 12 of FIG. 1 according to one embodiment of the present disclosure. First, the CAC function 12 detects correlations between contexts of the mobile device 10 and user actions taken by the user of the mobile device 10 (step 100). More specifically, the CAC function 12 monitors the user actions taken by the user at the mobile device 10 and the context of the mobile device 10 at the times the user actions were taken. Over time, via results of the monitoring, the CAC function 12 detects correlations between contexts of the mobile device 10 and user actions taken by the user of the mobile device 10. In general, a context-to-user-action correlation is detected when the user of the mobile device 10 has historically performed a particular user action when the mobile device 10 is in a particular context. One or more system-defined or user-configurable rules may be used by the CAC function 12 to determine when a context-to-user-action correlation has been detected. For example, the CAC function 12 may detect a context-to-user-action correlation when the user of the mobile device 10 has performed a particular user action at the mobile device 10 when the mobile device 10 is in a particular context, or in a number of matching contexts, at least a defined minimum number of times (e.g., three times). As a specific example, if the user tends to turn the ringer of the mobile device 10 off or tends to not take his or her telephone calls while the user is proximate to three or more users while in the user's “work” Wi-Fi network, then the CAC function 12 may detect this as a context-to-user-action correlation. Note that, as used herein, matching contexts are contexts that match exactly or match at least to a predefined threshold degree. As another example, the CAC function 12 may detect a context-to-user-action correlation when the user of the mobile device 10 has performed a particular user action at the mobile device 10 when the mobile device 10 is in a particular context, or in a group of matching contexts, at least a defined minimum number of times (e.g., three times) within a defined amount of time (e.g., one month). Note that the aforementioned examples are illustrative and are not intended to limit the scope of the present disclosure. Other types of rules may be used to detect context-to-user-action correlations.

While the discussion herein focuses on detection of context-to-user-action correlations by the CAC function 12, the present disclosure is not limited thereto. In one embodiment, in addition to or as an alternative to detection of context-to-user-action correlations by the CAC function 12, the CAC function 12 may enable the user of the mobile device 10 to manually define one or more context-to-user-action correlations. These user-defined context-to-user-action correlations may then be used by the CAC function 12 to automatically perform the defined user actions in response to detecting the corresponding contexts in the manner described below.

The CAC function 102 then obtains a current context of the mobile device 10 (step 102). In the preferred embodiment, the current context of the mobile device 10 includes a list of device IDs of the mobile devices 18 currently located proximate to the mobile device 10, a list of user IDs for users of the mobile devices 18 currently located proximate to the mobile device 10, a list of users in a social network of the user of the mobile device 10 that are currently proximate to the mobile device 10, a list of users in a contact list maintained by the mobile device 10 that are proximate to the mobile device 10, or a combination thereof. In addition, the current context of the mobile device 10 may include a current location of the mobile device 10 where the current location of the mobile device 10 may be expressed as geospatial coordinates (e.g., latitude and longitude coordinates), a physical address (e.g., a street address), a predefined location designation (e.g., “work” or “home”), Wi-Fi hotspot ID, or the like. Still further, the current context of the mobile device 10 may include data defining one or more current ambient conditions such as, for example, temperature, weather conditions, ambient sound level, ambient light level (i.e., visibility), crowd density, or the like. Further, the context of the mobile device 10 may include data from an accelerometer that is indicative of user or device movement. Still further, the current context of the mobile device 10 may include data obtained from an electronic calendar maintained for the user of the mobile device 10 such as an event or meeting that the user is currently scheduled to be attending.

The CAC function 12 then automatically performs a user action that is correlated to the current context, if any (step 104). In one embodiment, the CAC function 12 automatically performs the user action by first prompting the user of the mobile device 10 for approval to perform the user action and then performing the user action upon receiving approval from the user. In another embodiment, the CAC function 12 automatically performs the user action without user interaction from the user of the mobile device 10 (e.g., without first prompting the user for approval). In this embodiment, the CAC function 12 may, after automatically performing the user action, provide an alert to the user indicating that the user action has been taken and why the user action has been taken (e.g., the context that triggered the user action). Note that contexts may be named by the user as part of the context-to-user-action creation process.

FIGS. 3A through 3C provide a flow chart illustrating the operation of the CAC function 12 of FIG. 1 in more detail according to one embodiment of the present disclosure. First, the CAC function 12 monitors for a user action (step 200). Again, the user actions monitored for by the CAC function 12 are generally user actions taken by the user of the mobile device 10 to interact with the mobile device 10. The user actions monitored by the CAC function 12 may be any user action taken by the user to interact with the mobile device 10. Alternatively, the CAC function 12 may only monitor for a defined set of user actions taken by the user to interact with the mobile device 10 (e.g., monitor only volume control actions). Further, the CAC function 12 may monitor user actions with respect to the mobile device 10 in general. Alternatively, the CAC function 12 may monitor user actions only with respect to one or more defined software applications running on the mobile device 10. The CAC function 12 then determines whether a user action has been detected (step 202). Note that while illustrated separately, steps 200 and 202 may be implemented as a single step. If a user action has been detected, the CAC function 12 obtains the current context of the mobile device 10 (step 204).

Next, the CAC function 12 determines whether there is a matching CAC record for the current context of the mobile device 10 (step 206). In one embodiment, a matching CAC record is either a potential CAC record or an actual CAC record in the CAC record repository 16 of the mobile device 10 having a defined context that matches the current context of the mobile device 10 and a defined user action that matches the detected user action from steps 200 and 202. Again, as used herein, contexts match if they match exactly or at least to a predefined threshold degree. One or more system-defined rules and/or one or more user-configurable rules may be used to determine whether the defined context of a CAC record matches the current context of the mobile device 10. The one or more rules may state that, for example, the defined context of the CAC record matches the current context of the mobile device 10 if each contextual component (e.g., list of device IDs, location, etc.) of the defined context for the CAC record exactly matches the corresponding contextual component of the current context of the mobile device 10. As another example, the one or more rules may state that the defined context of the CAC record matches the current context of the mobile device 10 if each contextual component (e.g., list of device IDs, location, etc.) of the defined context for the CAC record matches the corresponding contextual component of the current context of the mobile device 10 to at least a defined threshold degree (e.g., at least 90% of device IDs in defined context of a CAC record are also in the list of device IDs for the current context). As another example, the one or more rules may state that the defined context of the CAC record matches the current context of the mobile device 10 if some contextual components (e.g., list of device IDs) of the defined context for the CAC record match the corresponding contextual components of the current context of the mobile device 10 to at least a threshold degree (e.g., at least 90% of device IDs in defined context of a CAC record are also in the list of device IDs for the current context) and other contextual components (e.g., location) of the defined context for the CAC record exactly match the corresponding contextual components of the current context of the mobile device 10.

If there is no matching CAC record (referring to step 206), the CAC function 12 creates a potential CAC record for the current context of the mobile device 10 and the detected user action and stores the potential CAC record in the CAC record repository 16 (step 208), and then the process returns to step 200 and is repeated. If there is a matching CAC record, the CAC function 12 determines whether the matching CAC record is an actual CAC record (step 210). If the matching CAC record is not an actual CAC record, the matching CAC record is a potential CAC record. As such, the CAC function 12 then updates the matching potential CAC record to reflect detection of the user action (step 212). More specifically, in one embodiment, the matching potential CAC record includes a counter for the number of times the user action has been detected in the defined context. As such, the CAC function 12 may then increase the counter by a value of one (1). In another embodiment, the matching potential CAC record includes a timestamp for each occurrence of the user action for the defined context. As such, the CAC function 12 may add a timestamp to the matching potential CAC record defining the current time to indicate that the user action was detected with respect to the defined context at the current time. In addition, the defined context of the matching potential CAC record may be updated based on the current context. This is particularly the case where the current context matches the defined context for the matching potential CAC record less than exactly. For example, if the list of device IDs and/or user IDs for the current context does not match the list of device IDs and/or user IDs for the defined context for the matching potential CAC record, any device IDs and/or user IDs in the current context that are not included in the defined context for the matching potential CAC record may be added to the defined context for the matching potential CAC record. Note that, before adding the user IDs to the defined context, this condition may be required to occur a threshold number of times within a defined period of time.

In this embodiment, the CAC function 12 then determines whether a pattern has been detected for the matching potential CAC record (step 214). In this embodiment, a pattern is detected when the matching potential CAC record indicates that the user of the mobile device 10 has historically performed the defined user action when the mobile device 10 is in the defined context. One or more system-defined or user-configurable rules may be used by the CAC function 12 to determine when a pattern has been detected. For example, the CAC function 12 may detect a pattern when the number of occurrences for the user action defined by the matching potential CAC record for the context defined by the matching potential CAC record, as indicated by the counter stored in the matching potential CAC record, is greater than a defined threshold number of occurrences (e.g., three times). The defined threshold number of occurrences may be user-defined or system-defined. For instance, in one exemplary embodiment, the CAC function 12 may track the number of times that the user must typically be prompted regarding a potential CAC record before the user approves promoting the potential CAC record to an actual CAC record (see below) and then set the defined threshold number of occurrences to that number. Thus, if the user typically approves promoting potential CAC record to an actual CAC record after being prompted two times, the defined threshold number of occurrences may be set to three. As another example, the CAC function 12 may detect a pattern when a frequency of occurrence for the user action defined by the matching potential CAC record for the context defined by the matching potential CAC record is greater than a defined threshold frequency of occurrence. The frequency of occurrence may be defined from timestamps stored in the matching potential CAC record for occurrences of the defined user action when in the defined context. As an example, the defined threshold frequency of occurrence may be three times over the last month. Note that the aforementioned examples are illustrative and are not intended to limit the scope of the present disclosure. Other types of rules may be used.

If a pattern is not detected, the process returns to step 200 and is repeated. If a pattern is detected, in this embodiment, the CAC function 12 prompts the user of the mobile device 10 for approval to promote the matching potential CAC record to an actual CAC record (step 216). In other words, the CAC function 12 prompts the user of the mobile device 10 for approval to promote the matching potential CAC to an actual CAC. The CAC function 12 then determines whether approval has been received from the user of the mobile device 10 (step 218). If not, the process returns to step 200 and is repeated. If approval is received from the user, the CAC function 12 promotes the matching potential CAC record to an actual CAC record (step 220). In other words, the matching potential CAC is promoted to an actual CAC. In one embodiment, the matching potential CAC record includes a flag indicating that the matching potential CAC record is a potential CAC record. As such, the matching potential CAC record may be promoted to an actual CAC record by setting the flag such that the flag indicates that the matching potential CAC record is now an actual CAC record. In one embodiment, promoting the matching potential CAC record to an actual CAC record may include prompting the user for a name for the actual CAC record or more specifically a name for the context defined by the actual CAC record, which may be used, for example, when displaying alerts. At this point, the process returns to step 200 and is repeated.

Note that steps 216 and 218 are optional. In another embodiment, the user is not prompted for approval. Rather, the matching, potential CAC record is automatically promoted to an actual CAC record without interaction from the user of the mobile device 10. Further note that whether the user is prompted for approval may be a user configurable setting.

Returning to step 210, if the matching CAC record is an actual CAC record, the CAC function 12 updates the actual CAC record to reflect the detection of the user action (step 222). In addition, the defined context for the actual CAC record may be updated based on the current context in a manner to that described above. The process then returns to step 200 and is repeated.

Returning to step 202, if a user action is not detected, the CAC function 12 obtains the current context of the mobile device 10 (step 224) and determines whether there are one or more matching actual CAC records stored in the CAC record repository 16 (step 226). Here, the matching actual CAC records are actual CAC records that define contexts that match the current context of the mobile device 10. Again, contexts match if they match exactly or at least a predefined threshold degree. One or more system-defined rules and/or one or more user-configurable rules may be used to determine whether the defined context of an actual CAC record matches the current context of the mobile device 10. The one or more rules may state that, for example, the defined context of the actual CAC record matches the current context of the mobile device 10 if each contextual component (e.g., list of device IDs, location, etc.) of the defined context for the actual CAC record exactly matches the corresponding contextual component of the current context of the mobile device 10. As another example, the one or more rules may state that the defined context of the actual CAC record matches the current context of the mobile device 10 if each contextual component (e.g., list of device IDs, location, etc.) of the defined context for the actual CAC record matches the corresponding contextual component of the current context of the mobile device 10 to at least a defined threshold degree (e.g., at least 90% of device IDs in defined context of CAC record are also in list of device IDs for the current context). As another example, the one or more rules may state that the defined context of the actual CAC record matches the current context of the mobile device 10 if some contextual components (e.g., list of device IDs) of the defined context for the actual CAC record match the corresponding contextual components of the current context of the mobile device 10 to at least a threshold degree (e.g., at least 90% of device IDs in defined context of CAC record are also in list of device IDs for the current context) and other contextual components (e.g., location) of the defined context for the actual CAC record exactly match the corresponding contextual components of the current context of the mobile device 10.

If there are no matching actual CAC records, the process returns to step 200 and is repeated. If there are one or more matching actual CAC records, the CAC function 12 gets the next matching actual CAC record and the user action defined by the matching actual CAC record (steps 228 and 230). Note that there may be multiple matching actual CAC records where, for example, the user of the mobile device 10 has historically taken multiple user actions when in the same context. The CAC function 12 then prompts the user of the mobile device 10 for approval to take the user action defined by the matching actual CAC record (step 232). The CAC function 12 then determines whether approval has been received from the user (step 234). If approval is not received, the process proceeds to step 238. Note that if approval is not received, the CAC function 12 may record that fact that approval was not received in association with or as part of the CAC record. This information could be used by the CAC function 12 to identify and avoid future false alarms. If approval is received, the CAC function 12 performs the user action defined by the matching actual CAC record (step 236). Note that steps 232 and 234 are optional. In another embodiment, the user is not prompted for approval. Rather, the user action defined by the matching actual CAC record is automatically performed without first prompting for user approval.

In yet another embodiment, approval whether or not approval is requested from the user before performing the user action may be determined by the CAC function 12 on a case-by-case basis based on user configuration, user-defined or system-defined rules, whether the user has given approval for taking the user action in response to detecting the corresponding context in the past, or whether the user has given approval for taking similar user actions in the past. For example, if the user has always or almost always allowed a user action for turning off a ringer of the mobile device 10 when in a “movie theater” context, the CAC function 12 may automatically perform that user action in response to detecting the “movie theater” context without first prompting the user for approval. In contrast, if the user has not consistently turned off the ringer of the mobile device 10 when in a “meeting” context, then the CAC function 12 may prompt the user for approval before performing that user action in response to detecting the “meeting” context.

In yet another embodiment, if the user action is performed automatically, the CAC function 12 may monitor user actions for a short time (e.g., 5-10 seconds) after automatically performing the user action to see if the user reverses the user action. Whether the user reverses the automatically performed user action may then be stored in the CAC record and used by the CAC function 12 to, for example, determine whether to prompt the user for approval before performing the user action in response to detecting the corresponding context in the future.

At this point, whether proceeding from step 234 or 236, the CAC function 12 determines whether there are more matching actual CAC records to process (step 238). If so, the process returns to step 228 and is repeated. Once all of the matching actual CAC records have been processed, the process returns to step 200 and is repeated. Note that numerous variations to the process of FIGS. 3A through 3C will be apparent to one of ordinary skill in the art upon reading this disclosure and are considered within the scope of the present disclosure. For example, steps 228-238 may be modified such that the user is prompted for approval for the user actions defined by all of the matching actual CAC records at once. For instance, the user may be presented with a list of user actions, where the user is enabled to approve any number of the user actions from the list as he or she may desire. Also, along with each user action in the list, the user may be presented with the corresponding context and the contextual components that triggered the inclusion of the user action in the list. The user may then be enabled to edit this list to modify the CAC records for future occurrences.

FIG. 4 is a block diagram of the mobile device 10 according to one embodiment of the present disclosure. As illustrated, the mobile device 10 includes a controller 20 connected to memory 22, one or more secondary storage devices 24, one or more communication interfaces 26, one or more user interface components 28, and one or more context sensors 14 by a bus 30 or similar mechanism. The controller 20 is a microprocessor, digital ASIC, FPGA, or the like. In this embodiment, the controller 20 is a microprocessor, and the CAC function 12 is implemented in software and stored in the memory 22 for execution by the controller 20. In addition, one or more of the context sensors 14 may be implemented in software and stored in the memory 22 for execution by the controller 20. The one or more secondary storage devices 24 are digital storage devices such as, for example, one or more hard disk drives. In one embodiment, the CAC record repository 16 is implemented in the one or more secondary storage devices 24. The one or more communication interfaces 26 preferably include a local wireless communication interface such as, but not limited to, a Bluetooth® interface or an IEEE 802.11x interface. In addition, the one or more communication interfaces 26 may include a cellular telecommunications interface (e.g., GSM, LTE, W-CDMA, WiMAX, or the like). Note that an IEEE 802.11x interface or a cellular telecommunications interface may be utilized to connect to a remote service such as, for example, a social networking service, an Internet based weather service, or the like. Also, note that the local wireless communication interface may be used as, or as part of, one of the context sensors 14. The one or more user interface components 28 include, for example, a touchscreen, a display, one or more user input components (e.g., a keypad), a speaker, or the like, or any combination thereof. Note that one or more of the user interface components 28 may be used as, or as part of, one or more of the context sensors 14. For example, a microphone user interface component may be used to sense an ambient sound level. Lastly, the mobile device 10 may include one or more additional context sensors 14 such as, for example, a GPS receiver, or an ambient condition sensor (e.g., a temperature sensor).

Below, a number of exemplary use cases are provided. These use cases are intended to illustrate some but not all of the concepts described above and should not be construed as limiting the scope of the concepts disclosed and claimed herein.

Use Case #1:

    • 1. Bob works at an IT company, and is a meeting with Jack, Jim, Dave and Tim.
    • 2. During the meeting Bob's wife calls him on his mobile device.
    • 3. Bob immediately cancels the call and switches his mobile device to “meeting mode.”
    • 4. After about a week, Bob gets a call from a friend while he is again in a meeting with Jack, Jim, Dave and Tim.
    • 5. Bob cancels the call again and switches his device to “meeting mode.”
    • 6. This time Bob's device automatically scans for any devices within its Bluetooth proximity range and finds the devices of Jack, Jim, Dave and Tim.
    • 7. It then identifies/creates a context with these 4 devices.
    • 8. The next time when all of these 4 devices are in its proximity range, Bob receives an alert message from his device, “Do you want to switch to meeting mode?”.
    • 9. Bob is happy to have received the alert message before the meeting started and accepts it.

Use Case #2:

    • 1. Bob goes to a live football game.
    • 2. His device scans the wireless environment and finds about 50 devices in its Bluetooth proximity range, of which it recognizes none from Bob's contact list.
    • 3. But the device detects that 26 of the 50 devices in its proximity range are tuned to a local internet radio/video station that provides play-by-play audio commentary and video replays of significant plays of the game he is attending. Here, the context of Bob's device includes both the number of devices in its Bluetooth proximity range and the number of those devices tuned to the local internet radio/video station.
    • 4. Bob's device identifies the current environment (large density of unknown devices, a majority of those devices tuned to a particular local “channel”) as a “Tar Heels football game” context.
    • 5. Bob's device automatically alerts Bob to the appropriate local internet radio/video station that the nearby users are listening to/viewing and tunes to that station upon approval from Bob. Alternatively, Bob's device may automatically tune to the station without approval from Bob.

Use Case #3:

    • 1. Bob goes to a movie theatre.
    • 2. His device scans the wireless environment and finds about 25 devices in its Bluetooth proximity range, of which it recognizes none from Bob's contact list. It also detects from a light sensor that the ambient lighting is very low.
    • 3. The device identifies the current environment (large density of unknown devices, dark surroundings) as a “Movie Theater” context.
    • 4. The device automatically switches to “silent mode.”

Those skilled in the art will recognize improvements and modifications to the preferred embodiments of the present invention. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.

Claims

1. A method of operation for a user device, comprising:

detecting a plurality of context-to-user-action correlations, each context-to-user-action correlation of the plurality of context-to-user-action correlations defining a context of the user device and a user action historically performed by a user of the user device for the context;
obtaining a current context of the user device;
identifying a matching context-to-user-action correlation for the current context of the user device from the plurality of context-to-user-action correlations; and
automatically performing a user action correlated to the current context by the matching context-to-user-action correlation.

2. The method of claim 1 wherein detecting the plurality of context-to-user-action correlations comprises:

monitoring user actions taken by the user of the user device and corresponding contexts of the user device at times at which the user actions were taken by the user; and
detecting the plurality of context-to-user-action correlations based on monitoring the user actions taken by the user of the user device and corresponding contexts of the user device at times at which the user actions were taken by the user.

3. The method of claim 1 wherein detecting the plurality of context-to-user-action correlations comprises:

detecting a user action taken by the user at the user device;
obtaining a current context of the user device at the time of detecting the user action; and
determining that a context-to-user-action correlation for the current context and the user action is detected if a number of occurrences of the user action for contexts that match the current context is greater than a predefined threshold number of occurrences.

4. The method of claim 1 wherein detecting the plurality of context-to-user-action correlations comprises:

detecting a user action taken by the user at the user device;
obtaining a current context of the user device at the time of detecting the user action; and
determining that a context-to-user-action correlation for the current context and the user action is detected if a frequency of occurrence of the user action for contexts that match the current context is greater than a predefined threshold frequency of occurrence.

5. The method of claim 1 wherein detecting the plurality of context-to-user-action correlations comprises:

detecting a user action taken by the user at the user device;
obtaining a current context of the user device at the time of detecting the user action;
determining whether the user action has been previously detected for a context that matches the current context; and
storing a potential context-to-user-action correlation for the current context and the user action if the user action has not been previously detected for a context that matches the current context.

6. The method of claim 5 wherein detecting the plurality of context-to-user-action correlations further comprises, if the user action has been previously detected for a context that matches the current context:

determining whether a context-to-user-action correlation has already been detected and stored for the user action and a context that matches the current context;
if a context-to-user-action correlation has not already been detected and stored, determining whether a pattern is detected for the user action and the current context;
if a pattern is detected, prompting the user for approval to store a context-to-user-action correlation for the user action and the current context; and
if the user provides approval, storing a context-to-user-action correlation for the user action and the current context as one of the plurality of context-to-user-action correlations.

7. The method of claim 5 wherein detecting the plurality of context-to-user-action correlations further comprises, if the user action has been previously detected for a context that matches the current context:

determining whether a context-to-user-action correlation has already been detected and stored for the user action and the context that matches the current context;
if a context-to-user-action correlation has not already been detected and stored, determining whether a pattern is detected for the user action and the current context; and
if a pattern is detected, storing a context-to-user-action correlation for the user action and the current context as one of the plurality of context-to-user-action correlations without user interaction.

8. The method of claim 1 wherein automatically performing the user action comprises:

prompting the user of the user device for approval to perform the user action correlated to the current context; and
performing the user action correlated to the current context in response to receiving approval from the user to perform the user action.

9. The method of claim 1 wherein automatically performing the user action comprises automatically performing the user action correlated to the current context without user interaction.

10. The method of claim 1 further comprising:

storing a user-defined context-to-user-action correlation that defines a context of the user device and a user action defined by the user of the user device; and
automatically performing the user action defined by the user-defined context-to-user-action correlation when a current context of the user device matches the context defined by the user-defined context-to-user-action correlation.

11. The method of claim 1 wherein for each context-to-user-action correlation of the plurality of context-to-user-action correlations, the context of the user device defined by the context-to-user-action correlation comprises at least one of a group consisting of: one or more device identifiers of one or more other user devices located proximate to the user device and information identifying one or more other users of one or more other user devices located proximate to the user device.

12. The method of claim 11 wherein the context of the user device defined by the context-to-user-action correlation further comprises at least one ambient condition.

13. The method of claim 1 wherein for each context-to-user-action correlation of the plurality of context-to-user-action correlations, the context of the user device defined by the context-to-user-action correlation comprises information identifying other users in a social network of the user located proximate to the user device.

14. The method of claim 1 wherein obtaining the current context of the user device comprises obtaining device identifiers of devices located proximate to the user device via local wireless communication.

15. The method of claim 14 wherein obtaining device identifiers of devices located proximate to the user device via local wireless communication comprises passively monitoring local wireless communications for device identifiers of devices located proximate to the user device.

16. The method of claim 14 wherein obtaining device identifiers of devices located proximate to the user device via local wireless communication comprises actively querying devices located proximate to the user device for the device identifiers of the devices located proximate to the user device via local wireless communication.

17. The method of claim 14 wherein obtaining the current context of the user device further comprises obtaining at least one ambient condition.

18. The method of claim 1 wherein obtaining the current context of the user device comprises obtaining user identifiers of users of devices located proximate to the user device via local wireless communication.

19. The method of claim 18 wherein obtaining user identifiers of users of devices located proximate to the user device via local wireless communication comprises passively monitoring local wireless communications for user identifiers of users of devices located proximate to the user device.

20. The method of claim 18 wherein obtaining user identifiers of users of devices located proximate to the user device via local wireless communication comprises actively querying devices located proximate to the user device for the user identifiers of users of the devices located proximate to the user device via local wireless communication.

21. The method of claim 18 wherein obtaining the current context of the user device further comprises obtaining at least one of a group consisting of: temperature, weather, ambient light level, ambient sound level, and accelerometer data indicative of movement.

22. The method of claim 1 wherein obtaining the current context of the user device comprises obtaining information identifying users in a contact list maintained on the user device that are located proximate to the user device.

23. The method of claim 1 wherein the user device is a mobile device.

24. A user device, comprising:

a communication interface; and
a controller associated with the communication interface and adapted to: detect a plurality of context-to-user-action correlations, each context-to-user-action correlation of the plurality of context-to-user-action correlations defining a context of the user device and a user action historically performed by a user of the user device for the context; obtain a current context of the user device; identify a matching context-to-user-action correlation for the current context of the user device from the plurality of context-to-user-action correlations; and automatically perform a user action correlated to the current context by the matching context-to-user-action correlation.
Patent History
Publication number: 20120046068
Type: Application
Filed: Apr 21, 2010
Publication Date: Feb 23, 2012
Applicant: Waldeck Technology, LLC (Wilmington, DE)
Inventors: Ravi Reddy Katpelly (Durham, NC), Kunal Kandekar (Jersey City, NJ), Scott Curtis (Durham, NC)
Application Number: 12/764,143
Classifications
Current U.S. Class: Radiotelephone Equipment Detail (455/550.1)
International Classification: H04W 88/02 (20090101);