Active motion on mobile devices using uniquely identifiable and untagged locations

By measuring wireless signals by sensors and forming sensor location clusters, mobile devices can identify applications and perform actions without the need for user input location information, solving the problem of position determination in the prior art relying on GPS and user input, and improving the autonomy and accuracy of the device.

CN112788540BActive Publication Date: 2025-03-18APPLE INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202110207051.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2016-09-21
Filing Date
2017-05-26
Publication Date
2025-03-18
Estimated Expiration
2037-05-26

AI Technical Summary

Technical Problem

When determining indoor locations, existing mobile devices require users to enter survey results or floor plan, and rely on GPS coordinates, which have problems such as position resolution limit and GPS signal interruption.

Method used

The sensor measures the wireless signal strength or flight time, forms the sensor position, and divides it into clusters, generates evaluation rules based on historical usage information, identify and recommend applications or automatically perform actions, and can be achieved even without knowing the actual physical coordinates.

Benefits of technology

Without the need for users to enter location information, mobile devices can accurately identify applications and perform actions, improve user experience, and enhance device autonomy and location determination capabilities.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112788540B_ABST
    Figure CN112788540B_ABST
Patent Text Reader

Abstract

The present disclosure relates to active actions on a mobile device using a uniquely identifiable and untagged location. A method for identifying suggested applications on a mobile device is disclosed. The method includes detecting an event, determining a first location of the mobile device, identifying that the first location is within a first location area of ​​a plurality of predetermined location areas, and then measuring one or more sensor values ​​at one or more times. The measured sensor values ​​can then be used to create a first data point. In response to identifying the first location area, a plurality of data point clusters can be retrieved. A first cluster of the plurality of clusters corresponding to the first data point can then be identified. The method can also include identifying a group of one or more applications and then providing a message to the user based on the identified group of one or more applications.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the invention patent application with the application date of May 26, 2017, application number 201780033190.9, and invention name "Active actions on a mobile device using a uniquely identifiable and unmarked location".

[0002] CROSS-REFERENCE TO RELATED APPLICATIONS

[0003] This application claims priority to U.S. Non-Provisional Patent Application No. 15 / 272,391, filed on September 21, 2016, which claims priority to U.S. Provisional Patent Application No. 62 / 349,006, filed on June 12, 2016, entitled “Proactive Actions on Mobile Device Using Uniquely-Identifiable and Unlabeled Locations,” the disclosures of which are hereby incorporated by reference in their entirety for all purposes. Background Art

[0004] Modern mobile devices (e.g., smart phones) may contain many applications. Each application may be designed to perform one or more specific functions. For example, an application may be designed to connect a user with a friend, control a television, or notify a user of current events. As modern mobile devices become more closely associated with modern daily life, the number of applications stored on mobile devices has also increased. It is not uncommon to have hundreds of applications on a modern mobile phone. Having multiple applications can make a mobile device particularly useful to a user; however, it may be very difficult and time-consuming for a user to find and run a desired application among all available applications.

[0005] Some modern mobile devices are able to predict applications to a user in order to minimize the time it takes for the user to find a desired application to run. For example, some modern devices can suggest applications when the device is located at a certain location based on the device's GPS coordinates. However, using GPS coordinates to determine the location of a device limits the resolution at which the device can determine its location. In addition, GPS services require a communication line with GPS satellites. If the connection between the device and the GPS satellites is severed, the device will not be able to receive GPS coordinates and therefore cannot determine its location to predict applications to the user.

[0006] In addition to using GPS coordinates, some modern mobile devices also request input from the user related to location information. Floor plans, survey results, etc. can be input into the device so that the device knows the general layout of the indoor location. However, inputting this information requires performing a survey or requiring the user to obtain a floor plan of the indoor location, which can be confusing and difficult for the user to complete, especially when the user is unable to perform a survey or does not have access to a floor plan.

[0007]

[0006] Therefore, improvements in determining location within an indoor location and identifying applications for a user based on the determined location are desired. Summary of the invention

[0008] Embodiments provide improved mobile devices and methods for using sensor measurements (sensor locations) to recommend applications or automatically perform actions with applications based on historical usage information of applications at identifiable locations, even without knowing the actual physical coordinates of the mobile device. The current relative location of the mobile device can be determined relative to a cluster of sensor locations in a sensor space (i.e., the space measured by each sensor) determined from previous usage, thereby allowing proactive actions to be taken without knowing the actual physical coordinates of the mobile device.

[0009] For example, at a given physical location, the device may be configured to measure sensor locations, e.g., a set of measurements of signal strength or flight time of wireless signals from one or more signal sources (such as a wireless router). Over time, more sensor locations may be accumulated at various unknown physical locations, which may then be grouped into clusters in the sensor space of known user activity. Each cluster may correspond to a particular usage pattern that may be used to generate a set of evaluation rules to identify applications for use. Thus, when the device detects a new sensor location, the device may compare the new sensor location to the cluster of sensor locations, determine which cluster of sensor locations corresponds to the new sensor location (e.g., is within a threshold distance of each other in the sensor space), and identify the application associated with the cluster. A message including or using at least one of the group of one or more applications may be provided, e.g., in a message including a list of suggested applications or in a message generated by an identified application, such as a reminder or command to perform an action on another device.

[0010] In some embodiments, a method for identifying a suggested application for execution on a mobile device is performed by the mobile device and may include detecting an event at an input device of the mobile device; determining a first location of the mobile device using a location circuit; and identifying that the first location is within a first location area of ​​a plurality of predetermined location areas, wherein the mobile device stores information defining the plurality of predetermined location areas. The method may also include measuring one or more sensor values ​​one or more times, using one or more sensors of the mobile device to measure the one or more sensor values; creating a first data point based on the one or more sensor values, each sensor value corresponding to a corresponding dimension; and in response to identifying the first location area, retrieving a plurality of data point clusters, wherein data points of the plurality of data point clusters correspond to previous measurements made using the one or more sensors, and wherein each of the plurality of clusters corresponds to a discrete location within the first location area. In an embodiment, the method may also include identifying a first cluster of the plurality of clusters corresponding to the first data point; upon occurrence of an event associated with the measured sensor value corresponding to the first cluster, identifying a set of one or more applications having at least a threshold probability of being accessed by a user, the set of one or more applications being determined based on a first predictive model using historical interactions of the user with the mobile device; and providing a message including or using at least one of the set of one or more applications.

[0011] Other embodiments relate to systems, portable consumer devices, and computer-readable media associated with the methods described herein.

[0012] The nature and advantages of the embodiments of the present disclosure may be better understood by referring to the following detailed description and accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0013] Figure 1A is a simplified diagram illustrating clusters of physical locations in a physical space according to an embodiment of the present disclosure.

[0014] Figure 1B is a diagram showing an embodiment according to the present disclosure Figure 1A A simplified diagram of clusters of sensor locations in sensor space corresponding to physical locations in physical space.

[0015] Figure 2A is a flow chart of a method for generating clusters of sensor locations according to an embodiment of the present disclosure.

[0016] Figure 2B is a flow chart of a method for identifying an application based on sensor location according to an embodiment of the present disclosure.

[0017] Figure 3A block diagram of a system for determining a triggering event according to an embodiment of the present disclosure is shown.

[0018] Figure 4 A block diagram of a system for identifying applications for a user based on sensor location according to an embodiment of the present disclosure is shown.

[0019] Figure 5 is a flow chart of a method for a dual resolution process for determining sensor position according to an embodiment of the present disclosure.

[0020] Figure 6 is a simplified diagram illustrating a dual-resolution process for determining sensor position according to an embodiment of the present disclosure.

[0021] Fig. 7A is a simplified diagram showing measurements of sensor locations in a floor plan according to an embodiment of the present disclosure.

[0022] Figure 7B is a graph representing sensor measurements used to determine sensor position according to an embodiment of the present disclosure.

[0023] Fig. 8A is a simplified diagram illustrating the measurement of sensor values ​​in a floor plan when a device has been moved according to an embodiment of the present disclosure.

[0024] Figure 8B is a graph representing sensor measurements used to determine sensor position when a device has moved according to an embodiment of the present disclosure.

[0025] Fig. 9A is a graph of a plurality of sampling points according to an embodiment of the present disclosure, wherein each point represents a normalized Euclidean distance in dB measured at a respective physical distance.

[0026] Fig. 9B is a graph of a plurality of sampling points, wherein each point represents an RF signal from a signal source measured at a respective physical distance from the signal source, according to an embodiment of the present disclosure.

[0027] Fig. 9C is a graph of a plurality of sampling points according to an embodiment of the present disclosure, wherein each point represents a normalized Jaccard distance measured at a location at a respective physical distance from the signal source.

[0028] Fig. 10A is a diagram representing a cluster of sensor locations in a sensor space according to an embodiment of the present disclosure.

[0029] Fig. 10B is a simplified diagram showing clusters of sensor locations in a physical space according to an embodiment of the present disclosure.

[0030] Fig.11 is a flow chart of a method for determining sensor position according to an embodiment of the present disclosure.

[0031] Fig.12 is a cluster showing sensor locations and new sensor locations for predicting an application based on sensor locations according to an embodiment of the present disclosure.

[0032] Fig.13 is a flow chart of a method for predicting applications based on sensor locations according to an embodiment of the present disclosure.

[0033] Fig.14 is a block diagram of an example device according to an embodiment of the present disclosure. DETAILED DESCRIPTION

[0034] It may be difficult to accurately determine the physical location of a mobile device within a residence or other building. Embodiments provide techniques that enable such recommendations to be made even when the actual physical location coordinates are not directly known. Sensors on a mobile device (e.g., antennas and associated circuits) can measure sensor values ​​from wireless signals emitted by one or more substantially stationary signal sources (e.g., wireless routers or network-enabled devices in a residence). These sensor values ​​can be reproduced at the same physical location of the mobile device, so the sensor values ​​can be used as a proxy for physical location. In this way, the sensor values ​​can form a sensor location, formed in sensor space rather than in physical space. The sensor location can be a multidimensional data point defined by separate sensor values ​​for each dimension.

[0035] The mobile device may take measurements at various unknown physical locations to obtain corresponding sensor locations, while identifying the use of applications at each sensor location. The measurements may be taken in response to certain events occurring at an input of the mobile device, such as events that launch an application or cause a backlight of a display to illuminate. After taking such sensor measurements, the mobile device may generate clusters of sensor locations, for example, periodically at night or at other times when the mobile device is not in use. Groups of sensor locations with similar sensor values ​​may form clusters, which may be used to define discrete locations. For each cluster, a predictive model of the mobile device may analyze the historical use of applications at the sensor locations within the cluster to identify a predicted application corresponding to the cluster.

[0036] After the cluster is determined by the prediction model (e.g., the next day), the mobile device can measure another sensor location in response to an event detected at an input of the mobile device (e.g., indicating that the user is about to use an application), and use the newly measured sensor location to identify a cluster that includes the newly measured sensor location. Once the cluster is determined, the predicted application can be identified, where the prediction can also be based on other criteria, such as the time of day or the type of event that triggered the sensor measurement. Proactive action can then be taken with the predicted application. For example, the predicted application can be suggested to the user in a message (e.g., a display on the screen or an audio message), or the predicted application can be automatically used to provide a message to the user, another application on the same mobile device, or another device.

[0037] Such a mobile device may not require the user to input survey or floor plan information to determine the physical location of the device. In addition, the mobile device may learn the user's device usage pattern and then use the learned pattern to predict applications for the user, thereby enhancing the user experience.

[0038] I. Sensor Measurement and Clustering

[0039] Although the mobile device is positioned at a physical location within a residence or other location area, the mobile device may detect a trigger event and then measure signals emitted from one or more signal sources present at that point in the physical space. For example, the mobile device may detect a button press that acts as a trigger event and causes the mobile device to measure signals (e.g., WiFi or BT signals) emitted from any signal source (e.g., an electronic device such as a wireless router, a WiFi-equipped device (e.g., a set-top box, a smart home device), or a Bluetooth device). The detected signals may be used to generate a multi-dimensional data point of sensor values ​​in a sensor space, where each dimension in the sensor space may correspond to a characteristic of a signal emitted from a signal source. The multi-dimensional data point may represent a sensor position of the mobile device in the sensor space, where the sensor position corresponds to a physical position of the mobile device in the physical space.

[0040] Figure 1A 1 is a simplified diagram showing multiple physical locations in physical space 103. For example, physical space 103 may be the interior of a residence, office, store, or other building. Physical space 103 may include multiple signal sources, such as signal sources 102A and 102B. Each signal source may transmit a wireless communication signal, such as a wireless communication signal transmitted from a wireless router or a Bluetooth device. The signal sources may be considered fixed devices because their locations generally do not change.

[0041] The mobile device may be positioned within the physical space 103 such that one or more signals transmitted from the signal sources 102A and 102B are detected. For example, the mobile device may be positioned within the physical space 103. Figure 1A 104 in physical space 103, where signals 101 and 100 are detected from signal sources 102A and 102B, respectively. It should be understood that at some locations, the mobile device can only measure one of signals 101 and 100, for example, because the signal is attenuated at certain locations. In addition, the mobile device can be at a physical location where signals from other signal sources (not shown) outside of physical space 103 can be detected, and the embodiments herein are not limited to physical locations where the mobile device can only detect signals 101 and 100.

[0042] Typical human behavior causes mobile devices to be used more frequently in some physical locations than in other physical locations. For example, when a user is on a sofa or in bed, a user may use a mobile device more frequently. These physical locations may be represented by clusters of physical locations, such as clusters 114 and 116 of physical locations. Each cluster may have a set of physical locations that are located close to each other. For example, cluster 114 may include physical locations 104, 106, and 112. As shown, cluster 116 includes physical locations 108 and 110. According to an embodiment, a mobile device may be configured to determine when the mobile device is located in one of these clusters and identify an application associated with the cluster based on detected signals (signals 100 and 101).

[0043] As part of detecting signals at any physical location using sensors of the mobile device, the mobile device can measure one or more sensor values ​​from signals transmitted from signal sources 102A and 102B. For example, if the mobile device is at physical location 104, the mobile device can measure sensor values ​​from signal 101 transmitted from signal source 102A and signal 100 transmitted from signal source 102B. The measured sensor values ​​can be signal characteristics of signal 101 and signal 100. The measured sensor values ​​can be used to form a sensor position in a sensor space, such as Figure 1B shown.

[0044] Figure 1B 1 is a simplified diagram showing multiple sensor locations in a sensor space 105, which corresponds to a physical space 103. The sensor space 105 is depicted as a graph of measured sensor locations of signal strength. The X-axis may represent the measured value of the signal from the signal source 102B in dB, increasing to the right along the X-axis, and the Y-axis may represent the measured value of the signal from the signal source 102A in dB, increasing upward along the Y-axis.

[0045] The sensor locations in the sensor space correspond to corresponding physical locations in the physical space 103. For example, Figure 1A The sensor value measured at the physical location 104 in Figure 1B 1. Sensor location 132 is represented as a two-dimensional data point, where one dimension corresponds to a sensor value from signal source 102A and another dimension corresponds to a sensor value from signal source 102B. Sensor space 105 may include clusters of sensor locations, such as cluster 124 of sensor locations and cluster 126 of sensor locations. Clusters 124 and 126 of sensor locations correspond to Figure 1A Clusters 114 and 116 correspond to the physical locations in FIG.

[0046] Clusters 124 and 126 may be unlabeled locations, meaning that the mobile device is not aware of the actual physical coordinates corresponding to clusters 124 and 126. The device may only know that there is a cluster of sensor locations with similar sensor values ​​and that the cluster represents a discrete location in the physical space. However, the mobile device may perform functions based on the sensor location in the sensor space that benefit the use of the mobile device in the physical space. For example, the mobile device may determine the sensor location of the mobile device and recommend applications to the user based on whether the sensor location is within a cluster where application usage patterns are known. Methods of forming clusters and recommending applications based on sensor locations are further discussed below.

[0047] Thus, a sensor location may correspond to a set of one or more sensor values ​​measured by a sensor of a mobile device at a physical location in a physical space, the one or more sensor values ​​being from one or more wireless signals transmitted by one or more signal sources (e.g., external devices such as networked devices). A sensor value may be a measurement of a signal characteristic (e.g., signal strength, time of flight, or data transmitted in a wireless signal), which may occur if a signal source measures a signal characteristic from a mobile device and sends the value back to the mobile device. Each sensor value in the set of values ​​may correspond to a different dimension in the sensor space, wherein the set of one or more sensor values ​​forms a data point (e.g., a multi-dimensional data point, also referred to as a feature vector) in the sensor space.

[0048] exist Figure 1A In the embodiment shown in FIG. 1 , for example, when the sensor value is the signal strength, for the signal source 102A (which is Figure 1B ), the sensor values ​​of the sensor locations in cluster 114 may be higher than the sensor values ​​of the sensor locations in cluster 116. This may be caused by the fact that the physical locations in cluster 114 are closer to signal source 102A than the physical locations in cluster 116. When the sensor values ​​are time-of-flight signal characteristics, the values ​​of cluster 114 will be lower than the values ​​of cluster 116.

[0049] A given measurement of one or more wireless signals obtained at a physical location may be made one or more times within a time interval to obtain a set of sensor values. For example, when two measurements are made at the same physical location at two different times, the two measurements at two different times may correspond to the same sensor location. A sensor location may have a zero value for a given dimension (e.g., a sensor location where no particular wireless signal is measured), or a sensor location may have a nominal value (e.g., low signal power (-100dB RSSI) or distance range), or a sensor location may have a large uncertainty.

[0050] II. Predicting User-Device Interactions

[0051] The mobile device may identify which applications the user is running at each sensor location. After collecting the sensor locations and the corresponding applications that the user is running at the sensor locations, the device may generate a cluster of sensor locations (e.g., periodically at night) and associate one or more applications that may be run by the user with the cluster of sensor locations. Thus, upon detecting a subsequent trigger event, the device may generate a new sensor location and compare the new sensor location with the generated cluster of sensor locations. If the new sensor location is determined to be within a threshold distance from one of the sensor location clusters, one or more applications associated with the sensor location cluster may be identified and used in an action, such as providing it to the user as a suggested application. The threshold distance may be a distance expressed in units of decibels (e.g., for received signal strength indication (RSSI)) or meters (e.g., for time of flight (TOF)), depending on the units of the sensor location, as will be discussed further herein.

[0052] A. Learning and Generating Clusters

[0053] Figure 2A 1 is a flow chart of a method 200 for generating clusters of sensor locations according to an embodiment of the present disclosure. The clusters of sensor locations may later be used by a mobile device to identify an application and suggest the application to a user. The method 200 may be performed by a mobile device (e.g., a phone, a tablet, a wearable computing device, etc.).

[0054] At box 202, a trigger event is detected. A trigger event can be identified as an event that is fully likely to be associated with the operation of the mobile device. The trigger event may be caused by a user and / or an external device. For example, a trigger event may be a specific interaction between a user and a mobile device. The specific interaction can be used to learn what the user did at a specific location, and therefore can be considered to be a learned trigger event. Examples of learned trigger events are application launches, specific activities within an application, voice commands (e.g., to initiate a voice assistant to perform a search or other activities with an application), and the first interaction of the day. For another example, a trigger event may be when an accessory device is connected to the mobile device, such as plugging headphones into the headphone jack, making a Bluetooth connection, etc. An event list of trigger events may be stored on the mobile device. Such events may be a default list and maintained as part of the operating system and may or may not be configured by the user.

[0055] At block 204, one or more sensor values ​​are measured by one or more sensors of the device to generate sensor positions (e.g., Figure 1A The sensor position is measured at a physical location in physical space. The sensor value can be compared to a value from one or more signal sources (e.g., Figure 1A The signal sources 102A and 102B in FIG. 10A and 102B transmit signals (eg, Figure 1A The sensor value may correspond to one or more signal characteristics of the signals 100 and 101 in FIG. 10A . For example, the sensor value may be a value corresponding to the signal strength of the measured signal, such as a received signal strength indication (RSSI) value or any other suitable signal characteristic whose value varies with respect to the distance from the signal origin point. In other embodiments, the sensor value may include a signal characteristic indicating the distance between the device and the signal origin point, such as a time of flight (TOF) measurement. For example, one or more sensors may include one or more antennas and associated circuits to measure the characteristics of the signal. Other embodiments of the sensor include a light sensor or an audio sensor.

[0056] The signal source may be any suitable device configured to transmit a wireless signal. For example, the signal source may be an access point such as a wireless router, a Bluetooth device, or any other networked device suitable for transmitting and / or receiving signals (e.g., a Bluetooth speaker, a refrigerator, a thermostat, a home automation portal, etc.). Different signal sources may be identified based on identifiers in the signal. Each measurement from a different device may correspond to a different sensor value.

[0057] Even if only signals from one signal source are measured, a data point representing a location may still have multiple dimensions. For example, multiple measurements may be made of a signal from the same signal source, with each measurement corresponding to a different dimension of the data point (e.g., a measurement of a different signal characteristic of the signal). Additional dimensions may correspond to other devices, even if no signal is detected at a given location. Undetected devices may have zero sensor values ​​assigned to them, thereby still having values ​​for these dimensions.

[0058] At block 206, the device identifies the application that was used when the sensor value was measured. The identified application can be assigned to the corresponding sensor location. When an application is used multiple times at a sensor location or a nearby sensor location (e.g., as part of the same cluster), a correlation between the sensor location and the application can be determined. The correlation can be used to predict which application a user will likely use when a given sensor location is measured.

[0059] An application may correspond to any software executed on a processor of a device. For example, an application may be a client application executed by an operating system (e.g., electronic recipe software or software for reading electronic books). In another example, an application may be software that is part of an operating system (e.g., a daemon process).

[0060] Once an application is identified, the method 200 loops back to block 202 and detects the occurrence of another triggering event there. In this case, the method 200 may again measure sensor values ​​at block 204 to generate a sensor location and identify another application used at the sensor location at block 206. Blocks 202, 204, and 206 may be performed multiple times to collect multiple records of various sensor locations and associated applications.

[0061] At box 208, multiple records of individual sensor locations may be analyzed to form clusters of sensor locations. The sensor locations may be analyzed at night when the user is asleep or is not planning to use the mobile device for a long time (e.g., at least 4 hours). The analysis may be a batch analysis performed on multiple sensor locations stored based on usage of the mobile device over a period of days or weeks. A cluster of sensor locations may correspond to a group of sensor locations that are close to each other in sensor space. For example, clustered sensor locations may have data points that are within a threshold distance from each other or from a centroid of the cluster. Clustered sensor locations in sensor space typically have their corresponding physical locations that form a cluster in physical space.

[0062] like Figure 1AAs shown, physical locations 104, 106, 108, and 110 may be grouped into clusters 114 and 116 based on having similar sensor values. For example, physical locations 104 and 106 may be grouped within cluster 114 because the sensor value of physical location 104 is within a threshold distance of the sensor value of physical location 106. Similarly, physical locations 108 and 110 may be grouped within cluster 116 because the sensor value of physical location 108 is within a threshold distance of the sensor value of physical location 110. However, the sensor values ​​of the sensor locations in cluster 114 may be different from the sensor values ​​of the sensor locations in cluster 116, resulting in the separation of clusters 114 and 116. The threshold distance may be defined by the typical use of the device in the physical space, for example, a width of several feet. The threshold distance in the physical space may be associated to the sensor distance based on a mapping function that may be determined via a calibration process, which may be performed by the manufacturer of the mobile device. Further details of the threshold distance may be found in the concurrently filed application entitled “Determining Location of Mobile Device Using Sensor Space to Physical Space Mapping,” which is incorporated by reference in its entirety.

[0063] Since the device has identified the applications that the device runs at each sensor location, one or more applications can be associated with each cluster of sensor locations. For example, if a user runs a food-related application at sensor location 132, the food-related application can be associated with cluster 124. Cluster 124 can be associated with a physical location, such as a kitchen of a residence (e.g., physical location 114). However, the device may generally not be aware of the association between cluster 124 and the kitchen. The device may only know that cluster 124 is associated with food-related applications. Different applications can be associated with the same cluster, which can result in applications having different probabilities of being run by the user, where such probabilities can be used to determine an action to be performed by one or more applications, for example, using a set of one or more evaluation rules.

[0064] At box 209, a set of one or more evaluation rules for each cluster is optionally determined based on the user's historical interactions with the mobile device. The evaluation rules for a cluster can be determined based on the number of times a particular application is run within the cluster, thereby determining the applications that are run the most and possibly determining the actions that are most likely to be performed by the applications. Once clustering is performed, the evaluation rules can be optionally executed to minimize processing time when the cluster is used as part of determining a predicted application in response to a detected event. In another embodiment, the evaluation rules can be executed later (e.g., when an event is detected). This determination can be made by a predictive model, as discussed in more detail below.

[0065] B. Perform proactive actions based on measured sensor locations and clusters

[0066] Once clusters have been determined and possibly after a predictive model has been run, the mobile device may be used in a mode that allows predicted applications to be identified based on the measured sensor values. Even after predictions are made, sensor locations and associated applications may continue to be determined, with clustering and any updates to the predictive model being performed periodically.

[0067] Figure 2B 2 is a flow chart of a method 201 for suggesting applications to a user by referring to clusters of sensor locations according to an embodiment of the present disclosure. At block 210, a new triggering event is detected. Detecting a new triggering event may be similar to referring to Figure 2A The detection trigger event discussed in block 202 of FIG. 1 may be a detection trigger event, but a new trigger event may occur at a different physical location at a later time. The new physical location may be in a cluster of physical locations corresponding to the cluster of previous sensor measurements.

[0068] In some embodiments, the new trigger event is a predicted trigger event, which is used to detect when an action that an application on a mobile device may take is predicted, rather than just learning what the user did. For example, a user may press a button or touch a touch-sensitive display screen to turn on the backlight of the mobile device, such as pressing the home button, thereby indicating that the user intends to interact with the mobile device. In such embodiments, turning on the backlight can be a trigger event. Other embodiments of trigger events include the user moving noticeably on the lock screen or home screen. Some predicted trigger events can also be learned trigger events.

[0069] At block 212 , one or more sensor values ​​are measured by the mobile device to generate a new sensor position. Generating a new sensor position may also be similar to generating a sensor position as discussed with reference to block 204 .

[0070] At block 214, a determination is made as to whether the new sensor location is located within a known sensor location cluster. If the new sensor location is within a threshold distance of the centroid of the known sensor location cluster, the new sensor location may be determined to be within the known sensor location cluster. If the new sensor location is not within the known sensor location cluster, then at block 216, the application may be identified if it is used with the new trigger event. For example, with Figure 1A The sensor location 128 corresponding to the physical location 118 in the example may not be within the threshold distance from the cluster 124 or 126. Therefore, the mobile device may record the sensor location 128 and identify the associated application that the user is running at the sensor location 128 for future reference. However, specific actions may not be taken because a cluster has not yet been identified for the location.

[0071] However, if the new sensor location is within a known sensor location cluster, then at block 218, applications corresponding to the known cluster are identified. If the new sensor location is located within a threshold distance from a sensor location cluster, then one or more applications associated with the sensor location cluster may be identified. The one or more applications may be determined using one or more evaluation rules generated when the sensor location was measured or at a previous time (e.g., after clustering).

[0072] For example, re-referencing Figure 1A , physical location 112 may correspond to sensor location 134. Sensor location 134 may be located within a threshold distance from cluster 124. Thus, an application associated with cluster 124 may be identified for sensor location 134. Continuing with the embodiment discussed with respect to block 208, the application identified for sensor location 134 may be a food-related application. As described herein, the mobile device may not be aware that clusters 124 and 126 are associated with physical locations in a residence, such as a kitchen or a bedroom. Instead, the mobile device may only be aware that the measured sensor locations form a sensor location group (e.g., Figure 1B ), and each set of sensor locations can be associated with a discrete location.

[0073] At box 220, an action is performed in association with the application. In one embodiment, the action may be providing a message including or using the identified application, such as a notification including the application. For example, the message may be a user interface that allows the user to select to run the application. The user interface may be provided in various ways, such as by displaying on a screen of a mobile device, projecting onto a surface, or providing an audio interface. The specific user interface provided to the user may depend on the degree of probability of being executed by the user. For example, the higher the probability of use (e.g., based on more instances of such use), more active actions may be taken, such as automatically opening an application with a corresponding user interface (e.g., a visual or voice command), rather than just providing a mechanism for easier opening of the application (e.g., an icon on a lock screen). In some embodiments, if the probability is too low for any application, no action may be taken.

[0074] A message may correspond to data in any form of communication that may be provided to a user (e.g., displayed to a user) or provided to another device. A message may be generated by an application or may include information related to an application running on a device (e.g., including a link to an application). For example, a message may be an alert, a notification, a suggested application, etc. A message does not necessarily have to include text to convey a readable message, as the message may be to another application, and thus the message may be in binary form.

[0075] At box 222, an application is identified. The application may be the same application identified at box 218, thereby enhancing the identification of the application and the action taken, or the application may be a different application run by the user, for example even after the message is provided to the user. Thus, even if the sensor location is within a cluster, the application used can be identified because iterations of the clusters and updates to the evaluation rules of the prediction model can be performed continuously. The execution of box 222 is an embodiment of a predicted trigger event, which is also used as a learned trigger event. In other embodiments, box 222 may be executed in response to a different learned trigger event (e.g., an application launch rather than a home button press), where the new sensor location can be reused rather than performing a new measurement.

[0076] The method 201 may enable a mobile device to accurately predict applications for a user at a specific location within a place where location information (e.g., information from GPS, Global Navigation Satellite System (GLONASS), BeiDou, Galileo, and wireless fidelity (Wi-Fi)-based positioning) does not exist or is unreliable, or where the spatial resolution of the location information that exists is too large. For example, the method 201 may allow the mobile device to predict food-related applications when the mobile device is located in the kitchen of the user's residence and the mobile device is unaware that it is located in the kitchen of the user's residence, and may allow the mobile device to predict another application (such as a news-related application) when the mobile device is located in the bedroom of the user and the mobile device is unaware that it is located in the bedroom of the user's residence.

[0077] In another embodiment, method 201 may allow the mobile device to send a message or reminder to the user when the mobile device detects that it is located in a specific location. For example, method 201 may allow the mobile device to send the correct meeting location when the mobile device is located in the wrong conference room. In another example, method 200 may allow the mobile device to send a reminder that a client is calling when the mobile device enters the user's office (e.g., when the user accesses the mobile device). In this way, executing method 201 makes the mobile device more user-friendly and has a deeper connection with the user. More details of the implementation scheme corresponding to method 201 are further discussed herein.

[0078] III. Event Trigger Prediction

[0079] Predicted trigger events can be a set of predetermined events that trigger identification of one or more applications to be provided to a user. Events can be detected using signals generated by device components. Embodiments of predicted trigger events are discussed above. The following description may also be applicable to other trigger events.

[0080] Figure 3 A simplified block diagram of a detection system 300 for determining a triggering event according to an embodiment of the present disclosure is shown. The detection system 300 may reside within a device for which a triggering event (also referred to simply as an "event") is being determined. As shown, the detection system 300 may detect a plurality of different events. One or more of the detected events may be determined by the detection system 300 as a triggering event. Other processing modules may then use the triggering event to perform processing.

[0081] A. Detection Events

[0082] In an embodiment, the detection system 300 includes hardware and software components for detecting events. For example, the detection system 300 may include multiple input devices, such as an input device 302. The input device 302 may be any suitable device capable of generating a signal in response to an event. For example, the input device 302 may include a device connection input device 304 and a user interaction input device 306, which may detect device connection events (e.g., headphone jacks, Bluetooth devices, Wi-Fi connections, etc.) and user interaction events (e.g., buttons, switches, latches, touch screens, etc.) respectively. When an event is detected at an input device, the input device may send a signal indicating a specific event for further analysis.

[0083] 1. User interaction events

[0084] The user interaction input device 306 can be used to detect user interaction events. User interaction events can occur when a user interacts with a device. Any suitable device component of a user interface can be used as a user interaction input device 306. The user interface can correspond to any interface that is usually provided for a user to interact with a mobile device or to interact with a specific application. An embodiment of a suitable user interaction input device is a button 314 and a touch screen 316. The button 314 of the mobile device can be a home button, a power button, a volume button, etc. According to an embodiment, any input device that turns on the backlight of the mobile device can be a user interaction input device 306. When a user interacts with a device, it can be determined that the user has provided a user input, and a corresponding user interaction event can be generated.

[0085] Touch screen 316 can allow a user to provide user input via a display screen. For example, a user can swipe his or her finger on the display to generate a user input signal. When the user performs this action, a corresponding user interaction event is detected.

[0086] 2. Device connection events

[0087] A device connection event may be an event that occurs when another device is connected to the device. For example, the device connection input device 304 may detect an event that a device is communicatively coupled to the device. Any suitable device component that forms a wired or wireless connection with an external device may be used as the device connection input device 304. Embodiments of the device connection input device 304 include a headphone jack 310 and a data connection 312, such as a wireless connection circuit (e.g., Bluetooth, Wi-Fi, etc.) or a wired connection circuit (e.g., Ethernet, etc.).

[0088] The headphone jack 310 allows a set of headphones to be coupled to the device. When the headphones are coupled, a signal may be generated, for example, by forming an electrical connection when plugged into the headphone jack 310. In more complex embodiments, the headphone jack 310 may include circuitry that provides an identification signal that identifies the type of headphone jack of the device. Thus, events may be detected in a variety of ways, and signals may be generated and / or transmitted in a variety of ways.

[0089] The data connection 312 may be communicatively coupled to the external device, for example, via a wireless connection. For example, a Bluetooth connection may be coupled to a computer of a vehicle or a computer of a wireless headset. Thus, when an external device is coupled to the mobile device via the data connection 312, it may be determined that the external device is connected, and a corresponding device connection event signal may be generated.

[0090] B. Determine the triggering event

[0091] like Figure 3 As further shown, the input device 302 may output a detection event 322, for example, as a result of any corresponding event. The detection event 322 may include information about which input device is sending the signal for the detection event 322, the subtype used for the particular event (e.g., which type of button was pressed). Such information may be used to determine whether the detection event 322 is a triggering event, and such information may be passed to subsequent modules for determining which predictor module to use to determine which application to suggest, which message should be sent, or which action to perform.

[0092] Detection event 322 may be received by event manager 330. Event manager 330 may receive a signal from input device 302 and determine which type of event is detected. Depending on the type of event, event manager 330 may output a signal (e.g., event signal 332) to different engines. Different engines may have subscriptions to event manager 330 to receive specific event signals 332 that are important to their functionality. For example, trigger event engine 324 may be subscribed to receive event signals 332 generated in response to detection event 322 from input device 302. Event signal 332 may correspond to the event type determined from detection event 322.

[0093] The trigger event engine 324 may be configured to determine whether the detection event 322 is a trigger event and possibly determine the type of the trigger event. To make this determination, the trigger event engine 324 may reference a designated trigger event database 326, which may be coupled to the trigger event engine 324. The designated trigger event database 326 may include a list of predetermined events that are designated as trigger events and possibly include what type of trigger events each is.

[0094] The trigger event engine 324 may compare the received detection event 322 to a list of predetermined events and output a trigger event 328 if the detection event 322 matches a predetermined event listed in a specified trigger event database 326. An embodiment of the predetermined list of events may include pressing a power button, pressing a home button, or performing any other action that turns on a backlight of a mobile device, indicates that a user wishes to interact with the mobile device to perform an action, or run an application.

[0095] As described herein, one aspect of the present technology is to collect and use data from various sources to suggest applications to users. The present disclosure contemplates that, in some instances, such collected data may include personal information data that uniquely identifies or can be used to contact or locate a specific person. Such personal information data may include location-based data, home address, or any other identifying information.

[0096] The present disclosure recognizes that the use of such personal information data in the present invention technology can be used to benefit users. For example, personal information data can be used to suggest applications that users are more interested in. Therefore, the use of such personal information data enables planned control of the content delivered. In addition, the present disclosure also anticipates other uses of personal information data that benefit users.

[0097] The disclosure also contemplates that entities responsible for the collection, analysis, disclosure, transmission, storage or other purposes of such personal information data will comply with established privacy policies and / or privacy practices. Specifically, such entities should implement and adhere to the use of privacy policies and practices that are recognized as meeting or exceeding the industry or government requirements for maintaining the privacy and security of personal information data. For example, personal information from users should be collected for the legal and reasonable purposes of the entity, and not shared or sold outside these legal uses. In addition, such collection should only be carried out after the user's informed consent. In addition, such entities should take any necessary steps to safeguard and protect access to such personal information data, and ensure that other people who can access personal information data comply with their privacy policies and procedures. In addition, such entities can subject themselves to third-party assessments to prove that they comply with widely accepted privacy policies and practices.

[0098] Regardless of the foregoing, the present disclosure also contemplates implementations in which users selectively block the use or access of personal information data. That is, the present disclosure contemplates providing hardware elements and / or software elements to prevent or block access to such personal information data. For example, a user may choose not to provide location information to a target content delivery service. For another example, a user may choose not to provide precise location information but permit the transmission of location area information.

[0099] C. Identify applications and perform associated actions

[0100] After detecting a triggering event, an application can be identified based on the triggering event. In some embodiments, the identification of an application is not a pre-programmed action. Instead, the identification of an application can be a dynamic action that can be changed based on additional information. For example, identifying a suggested application can be determined based on contextual information.

[0101] Figure 4 A simplified block diagram of a prediction system 400 according to an embodiment of the present disclosure is shown, which is used to identify applications and corresponding actions based on triggering events and context information. The prediction system 400 resides in a mobile device that identifies applications. The prediction system 400 may include hardware and software components.

[0102] Predictive system 400 includes a predictive application manager 402 for identifying suggested applications. Predictive application manager 402 may receive trigger events such as Figure 3 . The predictive application manager 402 can use the information collected from the triggering event 328 to identify the recommended application 404. As shown, in addition to the triggering event 328, the predictive application manager 402 can also receive contextual data 406.

[0103] 1. Contextual Information

[0104] Context information can be collected from context data 406 and can be received at any time. For example, context information can be received before and / or after trigger event 328 is detected. In addition, context information can be received during detection of trigger event 328. Context information can specify one or more attributes of a mobile device for a specific context. The context can be the surrounding environment of the mobile device when trigger event 328 is detected (the type of context). For example, context information can be the time when trigger event 328 is detected. In another embodiment, context information can be a specific location of the mobile device when trigger event 328 is detected. In yet another embodiment, context information can be a specific date when trigger event 328 is detected. In addition, context information can be data collected from a calendar. For example, the amount of time (e.g., days or hours) between the current time and the event time. Such context information can provide more meaningful information about the context of the mobile device, so that the prediction application manager 402 can accurately suggest applications that the user may use in the context. Therefore, compared with not using context information, the prediction application manager 402 using context information can more accurately suggest applications to the user.

[0105] Context data 406 may be generated by context sources 408. Context sources 408 may be components of a mobile device that provide data related to the current context of the mobile device. For example, context sources 408 may be hardware devices and / or software code that function as an internal digital clock 410, a GPS device 412, a calendar 414, and a sensor location module 416, which are used to provide information related to the time of day, the location of the mobile device, the time of year, and the sensor location of the mobile device, respectively. Other context sources may be used.

[0106] The sensor location module 416 may be software code configured to receive information from the sensor 418 and write the data to the sensor location database 420. In an embodiment, the sensor location module 416 may receive a measurement of a sensor value from the sensor 418 and may store the measured value as a sensor location in an entry of the sensor location database 420. The sensor 418 may be a hardware component configured to detect a transmission signal, such as a Wi-Fi signal, a Bluetooth signal, a radio frequency (RF) signal, and any other type of signal capable of wirelessly transmitting information. The sensor location module 416 may be coupled to the sensor location database 420 to store the detected sensor value for future reference by the learning expert module 422, as will be discussed further herein. The sensor location module 416 may then output the sensor location as contextual data to the predictive application manager 402 using the measured sensor value.

[0107] 2. Predictor module for determining recommendations

[0108] The predictive application manager 402 can then use the information collected from both the triggering event 328 and the contextual data 406 to identify the suggested application 404. The predictive application manager 402 can also determine the actions to be performed, such as how and when to provide a message including or using the suggested application 404, such as can occur through a user interface provided to the user for interaction with the suggested application 404.

[0109] Predictive application manager 402 may be coupled to several predictor modules 424A-424D to identify suggested applications 404. Each predictor module 424A-424D may be configured to receive information from predictive application manager 402 and output predictions back to predictive application manager 402. The information sent to predictor modules 424A-424D may include triggering event 328 and any related contextual data 406, and the prediction output to predictive application manager 402 may include one or more applications and their corresponding confidence values, which represent the likelihood that a user will run the application based on the received information.

[0110] Predictor modules 424A to 424D may be configured for different purposes. For example, predictor modules 424A to 424D may be configured to predict applications based on trigger events, predict actions for controlling accessories of a residence, predict applications that are not currently installed on a mobile device but may be of interest to the user, and predict applications based on sensor location (i.e., sensor location predictor module 424D). Depending on the type of trigger event detected, predictive application manager 402 may send information to only those predictor modules. Thus, predictive application manager 402 may send information to one predictor module, a subset of predictor modules 424A to 424D, or all predictor modules 424A to 424D.

[0111] According to an embodiment of the present disclosure, each predictor module may have a set of one or more evaluation rules for determining predictions (e.g., applications and actions) sent to the predictive application manager 402. The set of evaluation rules for the sensor location predictor module 424D may include a list of one or more applications corresponding to a sensor location or a cluster of sensor locations, as well as one or more criteria and actions to be taken for the one or more applications. The evaluation rules may select one or more applications based on the one or more criteria. For example, the likelihood (e.g., confidence value) of each application may be provided, and the criterion may be to provide the top 5 most likely applications on a screen of a user interface, where such a display may include a message. The set of evaluation rules may also include confidence values ​​for the applications in the list. The one or more criteria may include a predetermined set of contextual information that, when measured when a triggering event is detected, indicates which application in the list the user is likely to access.

[0112] In an embodiment, each set of evaluation rules may be a set of strings stored in a memory or a code compiled as part of an operating system. When predictor modules 424A to 424D receive information from predictive application manager 402, predictor modules 424A to 424D may compare the received information with the evaluation rules and output the predicted application and confidence that best fits the received information. For example, sensor location predictor module 424D may have a set of evaluation rules that establish the following conditions: if the sensor location is within cluster 1, the likelihood that the user is running a food-related application has a 90% confidence value; and if the sensor location is within cluster 2, the likelihood that the user is running a news-related application has an 80% confidence value.

[0113] Although this embodiment discusses considering the sensor location of the mobile device, other contextual data 406 may also be considered to determine the predicted applications and their corresponding confidence values. For example, the time of day and day of the week may also affect the predictions determined by the predictor modules 424A to 424D.

[0114] Once predictive application manager 402 receives the predicted applications from predictor modules 424A to 424D, predictive application manager 402 may send suggested applications 404 to expert center 426. In an embodiment, expert center 426 may be part of the code that manages what is displayed on a mobile device (e.g., on a lock screen, when a search screen is opened, or other screens). For example, expert center 426 may coordinate which information is displayed to a user, such as suggested applications, suggested contacts, and / or other information. Expert center 426 may also determine how to provide such information to the user. As previously described herein, the specific user interface provided to the user may depend on the degree of probability of being executed by the user. The higher the probability of use, the more proactive actions may be taken, such as automatically opening an application with a corresponding user interface (e.g., a visual or voice command), rather than simply providing a mechanism to more easily open the application.

[0115] If the expert center 426 determines that it is an appropriate time to output the suggested application (or a message generated by the suggested application) to the user (e.g., when the user is not yet running an application on the mobile device but is actively interacting with the mobile device), the expert center 426 can output a message 428 with the suggested application 404 to a recipient component 430. The recipient component 430 can be a user interface of the mobile device itself, or a user interface of another device, such as a tablet, laptop, smart watch, smart phone, or other mobile device. As another example, the recipient component 430 can be another application on the mobile device or an application of another device, where the application can be an operating system (e.g., in firmware) of another device, which can occur when a command message is sent to another device to perform an action. In an embodiment in which the suggested application 404 is included in the message 428, the recipient component 430 (e.g., a user interface) can transmit the suggested application 404 to the user and request a response from the user regarding the suggested application 404.

[0116] Recipient component 430 may require different levels of interaction in order for a user to run suggested application 404. Each level may correspond to a degree of probability that the user will run suggested application 404. For example, if predicted application manager 402 determines that suggested application 404 has a probability of being run by the user greater than a threshold probability, recipient component 430 may output a prompt that allows the user to run the application more quickly by skipping intermediate steps.

[0117] Alternatively, if the predicted application manager 402 determines that the probability of the user running the identified application is less than the high threshold probability but still higher than the lower threshold probability, the identified application may be displayed as an icon. The lower threshold probability may be higher than the baseline threshold probability. The baseline threshold probability may establish the minimum probability that the corresponding application will be suggested. Therefore, the user may have to perform the additional step of clicking on the icon to run the identified application. However, the number of clicks may still be less than the number of clicks required when the application is not suggested to the user. The threshold probability may vary depending on the type of application. In various embodiments, the high threshold probability may be in the range of 75% to 100%, the lower threshold probability may be in the range of 50% to 75%, and the baseline threshold may be in the range of 25% to 50%. In a specific embodiment, the high threshold probability is 75%, the lower threshold probability is 50%, and the baseline probability is 25%.

[0118] In an embodiment, a higher probability can result in more aggressive application suggestions. For example, if an application has a high probability of about 90%, the predictive application manager 402 can provide an icon on the lock screen of the mobile device to allow the user to access the application by clicking the icon once. If the application has a higher probability of about 95%, the predictive application manager 402 can even automatically run the suggested application for the user without the user having to click on anything. In such cases, the predictive application manager 402 can output not only the suggested application, but also commands specific to the application, such as a command to open the first article in a news-related application or a command to query the user whether to accept or reject a set of predetermined actions.

[0119] According to an embodiment of the present disclosure, the predictive application manager 402 can determine what level of interaction is required and can then output this information to the expert center 426. The expert center 426 can then send this information to the recipient component 430 for output to the user.

[0120] In some embodiments, the receiver component 430 may display a notification to the user on a display screen. For example, the notification may be sent via a system notification. The notification may be a visual notification that includes a picture and / or text notifying the user of a suggested application. The notification may suggest an application to the user for the user to select and run at their leisure. In some embodiments, in order to make a more active prediction, the notification may also include a suggested action within the suggested application. That is, the notification may notify the user of the suggested application and the suggested action within the suggested application. Therefore, the user may be provided with the option of running the suggested application or performing the suggested action within the suggested application. For example, the notification may notify the user that the suggested application is a news-related application and that the suggested action is to access the first article within the news-related application. The user may indicate that he or she wants to read the first article by clicking on an icon indicating the first article. Alternatively, the user may indicate that he or she prefers to run the application to read another article by swiping the notification on the screen.

[0121] In an embodiment, the mobile device may identify which application is running at the sensor location and then draw an association between the sensor location and the application. The application may be stored in the sensor location database 420 together with the corresponding sensor location. In an embodiment, the sensor location database 420 may store sensor location data for a certain period of time. For example, the sensor location database 420 may store sensor location data measured during the past seven weeks. Knowing which application is running at the sensor location helps to evaluate the user's habit of updating the evaluation rules stored in the sensor location predictor module 424D to predict the application based on the user's habits. In some embodiments, the expert module may routinely update the predictor modules 424A to 424D.

[0122] 3. Update the controller to determine recommendations

[0123] like Figure 4 As shown, the learned expert module 422 is coupled to the sensor location database 420 and the sensor location predictor module 424D. The learned expert module 422 can be configured to update a set of evaluation rules contained in the sensor location predictor module 424D. Figure 4 Only one learning expert is shown for updating one predictor module, but the embodiment is not so limited. For example, the learning expert module 422 can also be configured to update any one of the predictor modules 424A to 424C. In other cases, additional learning experts can be implemented in the prediction system 400 for updating the predictor modules 424A to 424C.

[0124] The learning expert module 422 may be a software module configured to access the sensor location database 420 and analyze the information stored therein to generate an updated set of evaluation rules for use in the sensor location predictor module 424D. The learning expert module 422 may include one or more prediction models (not shown). Each prediction model may be a portion of code and / or data specifically designed to identify an application for a specific trigger event. For example, a prediction model may be specifically designed to identify an application for a trigger event associated with turning on a backlight of a mobile device. Each prediction model may be coupled to a context source so that each prediction model can utilize context information to identify a recommended application. Embodiments of the prediction model include neural networks, decision trees, multi-label logistic regressions, and combinations thereof, as well as other types of supervised learning. More details may be found in U.S. Patent Application Nos. 14 / 732,359 and 14 / 732,287, which are incorporated by reference in their entirety.

[0125] As described herein, the sensor location database 420 may store sensor location data for a particular time period (e.g., within the past seven weeks of use). Thus, the updated set of evaluation rules generated by the learned expert module 422 for the sensor location predictor module 424D may reflect the pattern of device usage over the past seven weeks. According to an embodiment, once the learned expert module 422 has an updated set of evaluation rules generated, the learned expert module 422 may be deleted or removed from memory. After the next update of the sensor location predictor module 424D, the learned expert module 422 may be initiated again to generate an updated set of evaluation rules and then deleted again. Deleting the learned expert module 422 after generating an updated set of evaluation rules may save memory space and improve device performance.

[0126] In an embodiment, the learning expert module 422 may be run periodically. The time to run the learning expert module 422 may depend on the availability of the mobile device and the likelihood of being used by the user. For example, the learning expert module 422 may be run each night while the user is asleep, e.g., after the sensor location module determines the cluster of sensor locations. In such cases, the mobile device is typically connected to a power source to charge its battery, and the user is unlikely to access the mobile device and interrupt the operation of the learning expert module 422.

[0127] IV. Dual-level resolution for position determination

[0128] According to an embodiment of the present disclosure, predicting applications based on sensor location can be a two-level process. A first level can be performed to determine a general location (also referred to as a location area) of a mobile device, and a second level can be performed to determine a more specific location within the general location of the mobile device. The two-level process can be performed when a predetermined trigger event is detected that indicates a need to determine a higher spatial resolution. The two-level resolution performed by the embodiments discussed herein can ensure that the mobile device performance cost associated with determining sensor location is not wasted on locations where a finer resolution is not needed to determine location.

[0129] Figure 5 is a flow chart of a method 500 for performing dual-level resolution according to an embodiment of the present disclosure. The method 500 may be performed by a mobile device (eg, a phone, a tablet, etc.). For ease of understanding, Figure 5 Discussions periodically refer to Figure 6 , Figure 6 Shows the inclusion of Figure 5 The discussion of the general location and exemplary geographic context of sensor locations is relevant to this discussion. Figure 6 A visual representation of method 500 is shown in FIG. Figure 5 Discussion.

[0130] At block 502, location data (e.g., GPS data) is received to determine a general location of a mobile device. The location data may include latitude and longitude coordinates representing a geographic location. The mobile device may use the location data to determine a general location of the mobile device. For example, Figure 6 As shown, the mobile device can use location data to identify any of general locations 602, 604, 606, and 608. Each general location can represent a location that the user can travel to. For example, general location 602 can be the user's residence, general location 604 can be a grocery store where the user can buy products, general location 606 can be a restaurant where the user can eat, and general location 608 can be an office building where the user can work. The location data can be used to determine whether the mobile device is at any of these locations when a triggering event is detected.

[0131] At block 504, it is determined whether the mobile device is located at a predetermined location area. For example, the latitude and longitude coordinates of the mobile device may be compared to a list of predetermined location areas including the first location area, and it may be determined that the latitude and longitude coordinates are located within the first location area.

[0132] The predetermined location area may be determined as a specific area in which the user has spent a sufficient amount of time (e.g., 10 minutes). The predetermined location area may be a general location, where the user may initiate or use different functions of the mobile device at different locations within the general location, and therefore requires a finer spatial resolution. For example, the predetermined location area may be the user's home, where the user may perform device functions at different locations within the user's home. For example, the user may access food-related applications when the user is in the kitchen, or the user may access news-related applications when the user is in the bedroom. In the case where the general location is the user's workplace, the user may want to send a notification to the user when the user is in the wrong conference room, or the user may want to receive a notification of a call to his client when he steps into his office. Therefore, some exemplary predetermined location areas may be the user's home ( Figure 6 The general location 602 in the user's workplace ( Figure 6 The general position in 608).

[0133] In order to enable the mobile device to predict which applications should be suggested to the user at those different locations within the general location, the mobile device may need to determine the sensor location of the mobile device. If it is determined that the mobile device is not at a predetermined location area, the method 500 may return to block 502 to receive location data (now or at a later time) and determine whether the device has moved to the predetermined location. However, if it is determined that the mobile device is at a predetermined location area, the method 500 may continue to block 506, where the mobile device may attempt to detect a triggering event.

[0134] At block 506, an event is received. For example, a triggering event associated with turning on a backlight of a mobile device may be detected, such as with respect to Figure 3 Other triggering events may also be detected, such as plugging a headset into the headset jack or establishing a connection with an external Bluetooth device.

[0135] At block 508, a determination is made as to whether the event received at block 506 is a predetermined event, such as a learned trigger event or a predicted trigger event. Both trigger events may cause sensor values ​​to be measured when the mobile device is at a predetermined location. Learned trigger events may include, but are not limited to, actions associated with launching an application, calling a user on the phone (e.g., Apple Siri), or otherwise communicating with the user. TM ), the first wake-up of the day (e.g., interacting with the phone after a long period of time), establishing a Bluetooth or connection, or any other relevant triggering event, such as with a dedicated accessory connected to a mobile device (e.g., Apple HomeKit TMIf the event is not a predetermined event, the method 500 may end at block 510.

[0136] One example of a predicted trigger event is turning on the backlight of the mobile device, such as may occur upon initial user interaction. Turning on the backlight of the mobile device is a trigger event that typically occurs when a user wants to access a particular application but has not yet accessed the application. Other predicted trigger events include a button press to open the home screen and substantial movement of the mobile device, such as the mobile device has moved a certain distance, such as may be measured by one or more sensors (such as, an accelerometer and a gyroscope).

[0137] At block 512, when the triggering event is a predetermined event, the mobile device may measure a sensor location of the mobile device. The sensor location may correspond to a physical location within a general location, but at a finer resolution than that achieved by available location data.

[0138] For example, in Figure 6 , when a triggering event is detected, the mobile device can determine a sensor location 610 within the user's residence (general location 602). Sensor location 610 can correspond to a location in a kitchen or bedroom. Similarly, when a triggering event is detected in a different instance, the mobile device can determine a sensor location 612 within the user's workplace (general location 608). Sensor location 612 can correspond to the user's office or conference room.

[0139] V. Sensor Location and Sensor Clustering

[0140] According to an embodiment of the present disclosure, a mobile device may determine a sensor location within a general location. A sensor location may be a location in space represented by a sensor value measured based on a wireless signal emitted from a signal source. When many sensor locations are recorded, the mobile device may identify a distribution of sensor locations that form a sensor location cluster, which is represented by a group of sensor locations with similar sensor values. The sensor location cluster may be used to predict applications and determine actions associated with these applications, as discussed herein.

[0141] Fig. 7A 700 in which sensor locations are measured. One or more signal sources 701, 703, and 705 may be positioned within floor plan 700. Each signal source may be a device configured to transmit wireless signals. For example, a signal source may be an access point (AP), such as a wireless router, a Bluetooth device, or any other communication device suitable for transmitting and / or receiving signals. A signal source may be distinguished from a cell tower that provides telecommunication services to mobile devices because a signal source is a lower power device that provides wireless data transmission over a smaller range for a smaller user base.

[0142] The sensor value measured by the mobile device may be a characteristic of a signal emitted from a signal source. In some embodiments, the sensor value may be a value corresponding to the signal strength of the measured signal, such as a received signal strength indication (RSSI) value or any other suitable signal characteristic that varies relative to the distance from the signal origin point. In other embodiments, the signal value may be a signal indicating the distance between the mobile device and the signal origin point, such as a time of flight (TOF) measurement. Exemplary TOF measurements include round trip time (RTT) and one-way ranging measurements. One-way ranging measurements can be performed by synchronizing the clock of the mobile device with the clock of the signal source using IEEE 1588 or its equivalent, and then using one-way ranging (e.g., via radio waves (such as Wi-Fi, ultra-wideband or radar) or sound waves) to calculate the TOF measurement value. As other embodiments of synchronization, both devices may include a GPS receiver synchronized with GPS time. Both devices may be synchronized via some other means other than ranging waveforms. For example, synchronization can be completed with a Wi-Fi waveform that is not designed for ranging or with a Wi-Fi waveform in a different frequency band. Synchronization can also be accomplished using ultra-wideband (UWB) signals. As another example, both devices contain high-quality atomic clocks, which would require synchronization but not often. Synchronization can be at 10 nanoseconds or better.

[0143] although Fig. 7A Floor plan 700 is shown as having only three signal sources 701, 703, and 705, but embodiments are not limited to such a configuration. Other embodiments may have more or fewer signal sources. For example, an embodiment may have a floor plan that includes ten signal sources. Furthermore, although Fig. 7A The signal sources are shown positioned within floor plan 700, but other embodiments may have one or more signal sources positioned outside of floor plan 700. For example, one or more signal sources may be positioned in a neighboring residence or office outside of floor plan 700. In another embodiment, one or more signal sources may be positioned in a floor above or below floor plan 700 in a multi-story building. It should be appreciated that the signal sources may be positioned in any location from which wireless signals emitted may be measured by a mobile device in accordance with embodiments of the present disclosure.

[0144] A. Measurement of sensor position

[0145] Within floor plan 700, multiple sensor locations may be measured by the same mobile device. Fig. 7AAs shown, sensor values ​​may be measured by the mobile device at physical location 702 at time T0, and other sensor values ​​may be measured by the mobile device at physical location 704 at time T1, where T0 and T1 are not equal. The mobile device may be at physical location 702 in the afternoon when the mobile device determines its sensor location based on detecting a first triggering event, and the mobile device may be at physical location 704 in the evening when the mobile device determines its sensor location based on detecting a second triggering event.

[0146] Physical location 702 may be defined by a sensor location that includes sensor values ​​measured based on signals transmitted from signal sources 701, 703, and 705. The sensor values ​​may represent one or more signal characteristics of the signals transmitted from signal sources 701, 703, and 705. Fig. 7A As shown, physical location 702 may be defined by characteristics of signals 706, 708, and 710 measured from signal sources 701, 703, and 705, respectively. Similarly, physical location 704 may be defined by characteristics of signals 712, 714, and 716 measured from signal sources 701, 703, and 705, respectively. In an embodiment, the sensor value may be the RSSI and / or TOF (e.g., RTT) of the signals transmitted from signal sources 701, 703, and 705.

[0147] In addition to the sensor values, the mobile device may also receive and record an identification (ID) of the signal source. The signal source ID may be any suitable form of identification for the signal source, such as a media access control (MAC) address, an Internet Protocol (IP) address, etc. The identification of the signal source may be appended to the corresponding sensor value so that the mobile device can identify which signal source emitted the measured signal. Other information may also be appended to the measured sensor value. For example, information indicating the time interval over which the sensor value was measured may also be appended to the measured sensor value.

[0148] According to an embodiment, the sensor value may be measured by a sensor in a mobile device. Figure 4 The sensor 418 in question may measure signals 706, 708, and 710 emitted from signal sources 701, 703, and 705. Once the signals are measured, the sensor 418 may send the data to the sensor location module 416 to generate a sensor location corresponding to the physical location 702. In an embodiment, the sensor location may be a multi-dimensional data point, which may be represented as a feature vector x containing the measured signal characteristics. k .

[0149] Eigenvector x k Can be defined as:

[0150]

[0151] For M number of RSSI values ​​and N number of RTT values, where each integer of M and N corresponds to an identifier of the source signal for the associated sensor value (e.g., a media access control (MAC) address, a universal unique identifier (UUID), a shortened UUID, a Bluetooth device address, or an IP address of an access point), where k represents the time interval over which the signal value is measured. It should be understood that one or more RSSI and RTT values ​​may be measured from the same signal source and therefore have the same MAC address. Although the feature vector x k including RSSI and RTT sensor values, but other embodiments are contemplated herein in which the feature vector x is k Includes other types of sensor values ​​used to determine sensor position.

[0152] B. Create multidimensional data points

[0153] To create multi-dimensional data points, sensor values ​​may be measured and then stored in a database such as Figure 4 The sensor position database 420 in the sensor position database 420. In some cases, filtering steps may be performed to avoid storing sensor value measurements that may be distorted or unreliable. Various steps for creating multidimensional data points are further discussed herein. Various aspects of the discussion may also apply when only one sensor value is measured for a data point corresponding to a sensor position.

[0154] 1. Data Measurement

[0155] In an embodiment, multiple sensor values ​​may be measured at predetermined time intervals to form multi-dimensional data points. Figure 7B is a graph illustrating exemplary measurements of sensor values ​​(eg, RSSI signal values) at physical locations 702 and 704 at times T0 and T1, respectively, within time interval 720. The vertical axis may represent signal strength in decibels (dB), and the horizontal axis may represent time (t).

[0156] T0 may be a time instance when a triggering event is detected and causes the mobile device to measure its sensor location. At time T0, sensor values ​​of signals 706, 708, and 710 may be measured starting at physical location 702. Sensor values ​​may be measured for the duration of time interval 720. In some embodiments, multiple measurements of signals 706, 708, and 710 may be performed within time interval 720. Time interval 720 may be a sufficiently long amount of time for the mobile device to accurately measure sensor values, but not too long to draw unnecessary power from a power source (such as a battery). In some embodiments, the predetermined time interval 720 is less than one second.

[0157] At some time after T0, the mobile device may detect another triggering event and begin measuring its sensor position again at time T1, where the mobile device has moved to physical location 704. At this point, the mobile device may measure sensor values ​​of signals 712, 714, and 716 from signal sources 701, 703, and 705, respectively, across time interval 720.

[0158] like Figure 7B As shown, some sensor values ​​may have a higher dB level than other signals at each sensor location. This may be because the signal strength is inversely proportional to the distance between the sensor and the signal origin point (e.g., the signal source), which means that a shorter distance between the sensor and the signal origin point may result in a higher signal strength. Therefore, each sensor location may have its own unique signal strength arrangement. In addition, depending on the position of the mobile device when the sensor values ​​are measured, the mobile device may not detect some signals emitted from certain signal sources. Therefore, each sensor location may include sensor values ​​from a set of unique signal sources. Therefore, some sensor locations may have different sensor values, and other sensor locations may have similar sensor values. These similarities and differences in the arrangement of signal strengths and signal sources can be analyzed to determine clusters of sensor locations with similar characteristics.

[0159] Measuring sensor values ​​over predetermined time intervals can generate trends in the sensor values. Figure 7B As shown, each sensor value measured at physical location 702 and physical location 704 can have a substantially horizontal sensor value trend. Having a horizontal trend indicates that the mobile device did not substantially move during the measurement of the sensor value. Therefore, the horizontal trend can indicate an accurate sensor value measurement. If the trend of the sensor value is not substantially horizontal, this can indicate that the mobile device has substantially moved during the measurement of the sensor value and is therefore an inaccurate measurement that should be filtered out. Figure 7B Such filtering process can be performed on other signal characteristics besides signal intensity as shown in , such as TOF measurements.

[0160] 2. Data Filtering

[0161] Fig. 8A and Figure 8B The case where the measurement results in a trend in the sensor value that is not at a base level is shown. Fig. 8A As shown, the mobile device can move from physical location 802A to physical location 802B during the measurement of sensor values ​​within the time interval corresponding to the sensor locations. Thus, the trend of each sensor value can increase or decrease, such as Figure 8B As shown in the diagram shown.

[0162] At time T0, for signals 806A, 808A and 810A from signal sources 801, 803 and 805, the measured sensor value at physical location 802A can be substantially horizontal until the time when the mobile device moves to physical location 802B before the time interval 720 ends. After moving to physical location 802B, some measured sensor values ​​can increase or decrease to the measured sensor values ​​of signals 806B, 808B and 810B. The change in the trend of the sensor value may cause the mobile device to not record a single sensor position including the sensor values ​​at 802A and 802B. In some embodiments, changes greater than a threshold value of the measured sensor value may be filtered out (e.g., not saved). This is in contrast to the sensor values ​​of signals 812, 814 and 816 measured when the mobile device is in physical location 804, where the sensor values ​​are stable. In some embodiments, when the measured sensor values ​​are stable, such values ​​may be compressed, for example, certain values ​​are decreased or averaged. Such a process may remove redundant information, thereby limiting storage space and reducing calculations due to a sensor space with fewer dimensions.

[0163] 3. Data Storage

[0164] Once the multidimensional data point is generated, it can be stored. For example, the multidimensional data point can be stored in a database such as Figure 4 The sensor location database 420 in the sensor location database 420. The sensor location database 420 can store many other multidimensional data points generated over a period of time. For example, the sensor location database 420 can store multidimensional data points generated within the last seven weeks. In other embodiments, multidimensional data points generated within more or less than seven weeks can be stored. The amount of data points can depend on the storage, processing time, memory capacity and / or privacy policy of the mobile device. The multidimensional data points stored in the sensor location database 420 can be accessed to build a cluster model for predictive applications, as discussed herein.

[0165] C. Building a cluster model

[0166] Cluster models can be constructed from multidimensional data points in a database. Processes such as Figure 4 The learning expert module 422 in the example can analyze the multidimensional data points and determine whether there are groups of multidimensional data points with similar sensor values. Multidimensional data points with similar sensor values ​​can indicate that the multidimensional data points are close to each other.

[0167] In an embodiment, when the multidimensional data points are within a threshold distance of each other, the multidimensional data points can be determined to be similar to each other. The threshold distance can be a distance in sensor space, meaning a distance expressed in decibels (dB). In other embodiments, the threshold distance can be a distance in physical space (e.g., when a mapping function is used to transform the sensor distance into a physical distance), and is therefore expressed in units of physical distance (e.g., meters).

[0168] The unit of the threshold distance can depend on the unit of the sensor position of the measurement. For example, if the sensor position is in dB or meters, the threshold distance can also be expressed in dB or meters, respectively. If the sensor position is in dB and meters (for example, when some measurements come from RSSI measurements and some measurements come from TOF measurements), two threshold distances can be used in dB and meters, respectively. Therefore, the sensor position can be divided into two separate measurements, one in dB and one in meters, thereby effectively providing two positions, both of which need to meet their respective threshold distances. In other embodiments, each distance along a dimension can be determined as a unitless amount by normalization, for example, by using the maximum value of the dimension. In this way, separate sensor values ​​in dB and meters can be combined into a single distance value, which can be compared with a single threshold distance. Therefore, the threshold distance can be normalized to a set of different units. When using signal strength, the typical value of the threshold distance in the sensor space can be between 6dB and 10dB.

[0169] In some embodiments, the threshold distance may be selected based on a correlation between the measured value and the physical distance. Having a correlation between the measured value and the physical distance may allow the mobile device to accurately determine the location of the multi-dimensional data point to determine the relative distance. Fig. 9A 9 is a graph 900 showing a plurality of sampling points, where each point represents a normalized Euclidean distance in dB measured at a respective physical distance. The sampling points may all have a common device ID, which means that the sampling points are all measured from the same signal source. The X-axis represents the physical distance in meters increasing to the right, and the Y-axis represents the normalized Euclidean distance in dB increasing upward. Fig. 9A As shown, a linear correlation can be observed between physical distances of 0m to 15m. Therefore, it would be appropriate to choose a threshold distance no greater than 15m. This ensures that the measured Euclidean distance is monotonic over the entire range and linear in the close range.

[0170] However, if a multidimensional data point cluster with a larger size is desired, a larger threshold distance may be enabled if different types of sensor values ​​are measured. For example, a threshold distance based on measured radio frequency (RF) values ​​may cause the mobile device to apply a larger threshold distance for adjusting the size of the multidimensional data point cluster. Fig. 9B 9 is a graph 902 showing a plurality of sample points, where each point represents an RF signal measured from a signal source at various physical distances from the signal source. The X-axis represents the physical distance in meters increasing to the right, and the Y-axis represents the RF distance in dB increasing upward. Fig. 9B As shown, a linear correlation can be observed between physical distances of 0 m to 25 m. Therefore, when the multidimensional data points include sensor values ​​in the form of RF measurements, the threshold distance can be selected to be a distance no greater than 25 m.

[0171] In other embodiments, even larger clusters of multidimensional data points can be enabled by measuring sensor values ​​based on a combination of signal strength and device ID, where the measured sensor values ​​can come from different signal sources. In such embodiments, the measured sensor values ​​can include not only measured signal parameters (e.g., RSSi or TOF), but also device IDs associated with the respective measured signal parameters. Including the device ID as part of the sensor value of the multidimensional data point allows the mobile device to distinguish the multidimensional data points based on the device from which the signal was measured. For example, if two data points do not have measurements from the same device, the mobile device can determine that the two locations of the measured data points are far apart. Fig. 9C 904 is a graph showing a plurality of sample points, each of which represents a normalized Jaccard distance measured at various physical distances from the signal source. The Jaccard distance is a signal value that is a combination of a measured signal parameter and a device ID of the signal source that transmitted the signal from which the measured signal parameter was determined. The X-axis represents the physical distance in meters increasing to the right, and the Y-axis represents the normalized Jaccard distance increasing upward. Fig. 9C As shown, a linear correlation can be observed between physical distances of 0 m to 40 m. Therefore, when the multidimensional data points include sensor values ​​in the form of normalized Jaccard distance, the threshold distance can be selected to be a distance no greater than 40 m.

[0172] Fig. 10A An exemplary cluster model 1000A constructed by a learning expert module according to an embodiment of the present disclosure is shown. The cluster model 1000A is a two-dimensional model that reflects Fig. 10BIn other words, the cluster model 1000A shows clusters 1002A to 1008A of multidimensional data points in the sensor space, and the environment 1000B shows corresponding clusters 1002B to 1008B at physical locations in the physical space where the multidimensional data points are measured.

[0173] In an embodiment, each cluster 1002A, 1004A, 1006A, and 1008A may be a coordinate-free location, meaning that the mobile device may not associate the clusters 1002A, 1004A, 1006A, and 1008A with their physical locations. The mobile device may only know that there are clusters of multidimensional data points with similar measurements and that the clusters represent discrete physical locations. For example, cluster 1002A may correspond to cluster 1002B, which may be in the kitchen in environment 1000B, and cluster 1006A may correspond to cluster 1006B, which may be in the bedroom in environment 1000B.

[0174] Even though the mobile device may not know the physical location of each cluster, predictions can be performed based only on clusters of multi-dimensional data points in sensor space. The mobile device may only know that the clusters represent discrete locations and assign them a universal identifier, such as location N, where N is an integer. This simplifies and significantly reduces the user's involvement in performing application predictions based on the mobile device's sensor locations compared to other methods that require surveys or floor plans from the user.

[0175] According to an embodiment of the present disclosure, the learning expert module may associate each cluster 1002A, 1004A, 1006A, and 1008A of the multidimensional data points with one or more applications and their corresponding user access probabilities. Figure 4 As mentioned, the sensor location database 420 may also identify which application the user accessed at each corresponding sensor location. One or more applications and their corresponding probabilities may be calculated based on the applications the user ran at each sensor location within the cluster. If a greater number of sensor locations are associated with a particular application, a greater probability may be assigned to that particular application. This information may be used to generate a prediction module such as Figure 4 A set of evaluation rules used by the sensor position predictor module 424D in.

[0176] Although embodiments herein do not require knowledge of the association between clusters of multidimensional data points in sensor space and multidimensional data points in physical space, knowing the association can improve the accuracy of application predictions. Some ways of establishing this association can be performed by collecting additional information such as radar and motion detector data.

[0177] VI. Method for determining sensor location of device

[0178] Fig.11 1 is a flow chart illustrating an exemplary method 1100 of determining a sensor location of a mobile device according to an embodiment of the present disclosure. The method 1100 can determine the physical location of the mobile device using measurements of one or more signal characteristics to effectively determine that the mobile device is in the same physical location as during a previous use of the mobile device.

[0179] At block 1102, a plurality of data points are stored in a database. The data points may be created at different time instances, for example, Figure 7B As discussed. During each time instance, one or more signal characteristics of one or more other devices (e.g., one or more network devices) can be measured across time intervals. For example, RSSI values ​​and / or flight time can be measured across time intervals. In addition, an identifier can be obtained from each signal source. For example, a MAC address, IP address, or any other identifier for identifying the source of the signal can be obtained. One or more signal characteristics can be used to create a data point, which can then be stored in a database.

[0180] Each dimension of the data point may correspond to a corresponding one of the other devices, and the value of the dimension may correspond to the signal characteristic of that dimension. For example, if there are three other devices and a signal characteristic is measured for each of the three other devices, each measured signal characteristic will be a different dimension of the three-dimensional data point, and each measured signal characteristic will correspond to one of the three devices. Even if two signal characteristics are measured from the same one of the three other devices, each of the two signal characteristics will correspond to one of the two dimensions, with each dimension corresponding to one of the devices.

[0181] At block 1104, multiple data points in the database are analyzed to determine clusters of data points. The clusters of data points may represent areas where the mobile device is frequently used. Clustering may be performed as described herein, and clustering techniques known to those skilled in the art may be used.

[0182] At block 1106, an event is detected at an input device of the mobile device. The input device may be any one of one or more input devices of the mobile device. The event may be a predetermined triggering event, such as described herein with respect to Figure 5 In various embodiments, the triggering event can be a learned triggering event or a predicted triggering event.

[0183] At block 1108, one or more new signal characteristics of one or more signal sources may be measured. The measurements may be performed at one or more new times, such as the current time instance, and thus the newly measured signal characteristics may be considered new signal characteristics. The one or more new signal characteristics will correspond to the same type of signal characteristics previously measured and used to determine the cluster.

[0184] At block 1110, the new signal characteristics may be used to create a new data point. As discussed herein, the new data point may represent the current sensor position of the mobile device in the sensor space.

[0185] At block 1112, a first cluster of data points is identified as corresponding to a new data point. The new data point can be determined to be within the first cluster of data points, for example, based on a distance of the new data point from a representative data point of the first cluster (e.g., a centroid of the first cluster). The first cluster of data points represents a discrete location of the mobile device in physical space, thereby allowing the location of the mobile device to be determined without knowing the absolute physical location of the mobile device.

[0186] VII. Device-based sensor location identification applications

[0187] As mentioned herein, determining the sensor locations of a mobile device can enable the mobile device to predict applications for a user. The sensor locations can be aggregated and then used to predict applications when new sensor locations are measured. Fig.12 An exemplary use case for identifying applications based on sensor locations of a mobile device according to an embodiment of the present disclosure is shown. Environment 1200 with signal sources 1201 and 1203 and clusters 1202, 1204, 1206, and 1208 may be similar to environment 900B and clusters 902B, 904B, 906B, and 908B discussed in FIG. 9 .

[0188] Each cluster 1202, 1204, 1206, and 1208 can be associated with one or more applications and probabilities that the user is accessing. In an embodiment, clusters 1202, 1204, 1206, and 1208 and their associated applications and probabilities can be used to determine a set of evaluation rules for a predictor module, such as sensor location predictor module 424D. If the mobile device measures that it is at a sensor location corresponding to physical location 1210, one or more applications and their probabilities associated with cluster 1202 can be suggested to the user. Similarly, if the mobile device measures that it is at a sensor location corresponding to physical location 1212, one or more applications and their probabilities associated with cluster 1206 can be suggested to the user. However, if the mobile device measures that it is at a sensor location corresponding to physical location 1214, the mobile device can determine that it is not at a sensor location associated with a cluster. In this case, no application is suggested to the user. If an additional sensor location subsequently measured has a sensor value similar to physical location 1214, a new cluster can be determined, for example, by a learning expert module, as discussed herein.

[0189] Fig.13 1 is a flow chart of a method 1300 for identifying an application based on a sensor location of a mobile device according to an embodiment of the present disclosure. When the mobile device is in a predetermined location area, such as a user's home or office, the method 1300 can determine a predicted action for the application. The method 1300 can perform a dual-level resolution analysis, such as described herein with respect to Figure 5 discussed.

[0190] At block 1302, an event is detected at an input device of a mobile device. The input device may be any suitable device capable of generating a detection signal in response to an event, such as a device connection event and a user interaction event, respectively, as described herein with respect to Figure 3 The detected event may be a predetermined triggering event, such as a predicted triggering event.

[0191] At block 1304, a first location of the mobile device is determined. The first location may be determined using location circuitry, such as location circuitry for generating information based on GPS, Global Navigation Satellite System (GLONASS), BeiDou, Galileo, and Wi-Fi based positioning systems. The first location may be determined as a set of coordinates, such as latitude and longitude.

[0192] At block 1306, the first location is identified as being within a first location area of ​​a plurality of predetermined location areas, as described herein with respect to Figure 5 and Figure 6 The first location area may be a general location of the mobile device, such as a home or workplace, as discussed herein with respect to Figure 5 and Figure 6 Each predetermined location area may be an area where the user regularly spends sufficient time (e.g., 10 minutes). Thus, the predetermined location areas may be locations where the user may initiate or use different functions of the mobile device at different locations within the general location and therefore require finer spatial resolution.

[0193] At block 1308, one or more sensor values ​​are measured from one or more signals transmitted from one or more signal sources. The sensor values ​​may correspond to characteristics of the one or more signals transmitted from the signal sources. In some embodiments, the one or more sensor values ​​may be measured one or more times, as described herein with respect to Figure 7B As various embodiments, the one or more sensor values ​​may correspond to, for example, a signal strength, a time of flight, or an intensity of a signal in the visible spectrum detected by the image sensor.

[0194] At block 1310, a first data point is created from one or more measured sensor values. The data point may represent a sensor position of the mobile device in the sensor space. In an embodiment with multiple signal sources, each dimension of the multi-dimensional data point may correspond to one of the signal sources. More than one sensor value may be measured for each signal source, where each sensor value corresponds to a different dimension.

[0195] At block 1312, a plurality of data point clusters corresponding to the first location area are retrieved. For example, a plurality of data point clusters stored in a database may be retrieved, such as described herein with respect to Figure 4 As discussed. When home corresponds to the first location area, the retrieved clusters may correspond to measurements taken at the user's home. The plurality of data point clusters may represent groupings of sensor locations stored based on historical usage of the mobile device. Thus, each of the plurality of clusters may correspond to a discrete location within the first location area.

[0196] At block 1314, a first cluster of the plurality of clusters is identified as corresponding to the first data point, e.g., as described herein with respect to Fig.11 As discussed herein, a data point can correspond to a cluster based on a distance from a representative data point of the cluster.

[0197] At box 1316, a set of one or more applications that have a probability of being accessed by the user of at least a threshold probability is identified. The set of one or more applications may be associated with a first data point cluster, such as discussed herein. The probability of accessing the application may be defined relative to an event that occurs in association with a measured sensor value corresponding to the first cluster, for example, based on historical use of the mobile device at different sensor locations. The set of one or more applications may be determined using a set of one or more evaluation rules generated based on historical interactions of the user with the mobile device. The evaluation rules may be generated before the event is detected (e.g., in conjunction with determination of the cluster) or after the event is detected. The evaluation rules may identify one or more applications with corresponding probabilities, which may correspond to a specific use of the application. Each set of evaluation rules may correspond to a different cluster.

[0198] At block 1318, a message may be provided that includes or uses at least one of the set of one or more applications. The message may indicate to the user which application is recommended given the identified cluster of data points. As another example, the message may be provided to another device, for example, to control the other device. Such a control message may occur to turn off or on another device, or to change a setting.

[0199] VIII. Exemplary Apparatus

[0200] Fig.14 1 is a block diagram of an exemplary device 1400 that may be a mobile device. Device 1400 generally includes a computer-readable medium 1402, a processing system 1404, an input / output (I / O) subsystem 1406, a wireless circuit 1408, and an audio circuit 1410 including a speaker 1450 and a microphone 1452. These components may be coupled via one or more communication buses or signal lines 1403. Device 1400 may be any portable electronic device, including a handheld computer, a tablet computer, a mobile phone, a laptop computer, a tablet device, a media player, a personal digital assistant (PDA), a key fob, a car key, an access card, a multifunction device, a mobile phone, a portable gaming device, an automotive display unit, etc., including combinations of two or more of these items.

[0201] Obviously, Fig.14 The architecture shown is only one embodiment of the architecture of device 1400, and device 1400 may have more or fewer components or components in a different configuration than shown. Fig.14 The various components shown in the drawings may be implemented in hardware, software, or a combination of both hardware and software, including one or more signal processing circuits and / or application specific integrated circuits.

[0202] The wireless circuit 1408 is used to send and receive information to conventional circuits of one or more other devices (such as an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, memory, etc.) over a wireless link or network. The wireless circuit 1408 can use various protocols, such as those described herein.

[0203] The wireless circuit 1408 is coupled to the processing system 1404 via the peripheral device interface 1416. The interface 1416 may include conventional components for establishing and maintaining communications between peripheral devices and the processing system 1404. Voice information and data information (e.g., in voice recognition or voice command applications) received by the wireless circuit 1408 is sent to the one or more processors 1418 via the peripheral device interface 1416. The one or more processors 1418 may be configured to process various data formats of the one or more application programs 1434 stored on the medium 1402.

[0204] Peripheral interface 1416 couples the device's input and output peripherals to processor 1418 and computer-readable medium 1402. Processor(s) 1418 communicate with computer-readable medium 1402 via controller 1420. Computer-readable medium 1402 may be any device or medium capable of storing code and / or data for use by processor(s) 1418. Medium 1402 may include a memory hierarchy including cache, main memory, and secondary memory.

[0205] Device 1400 may also include a power system 1442 for powering the various hardware components. Power system 1442 may include a power management system, one or more power sources (e.g., batteries, alternating current (AC)), a recharging system, a power fault detection circuit, a power converter or inverter, a power status indicator (e.g., a light emitting diode (LED)), and any other components typically associated with the generation, management, and distribution of power in a mobile device.

[0206] In some embodiments, device 1400 includes camera 1444. In some embodiments, device 1400 includes sensor 1446. Sensor 1446 may include accelerometer, compass, gyroscope, pressure sensor, audio sensor, light sensor, barometer, etc. Sensor 1446 may be used to sense location aspects, such as auditory markers or light markers of the location.

[0207] In some embodiments, the device 1400 may include a GPS receiver, sometimes referred to as a GPS unit 1448. The mobile device may use a satellite navigation system such as a global positioning system (GPS) to obtain positioning information, timing information, altitude, or other navigation information. During operation, the GPS unit may receive signals from GPS satellites flying around the earth. The GPS unit analyzes the signals to estimate the transmission time and distance. The GPS unit may determine the current location (current position) of the mobile device. Based on these estimates, the mobile device may determine the location position, altitude, and / or current speed. The location position may be a geographic coordinate, such as latitude information and longitude information. In other embodiments, the device 1400 may be configured to recognize GLONASS signals or any other similar type of satellite navigation signals.

[0208] The one or more processors 1418 run various software components stored in the medium 1402 to perform various functions of the device 1400. In some embodiments, the software components include an operating system 1422, a communication module (or instruction set) 1424, a location module (or instruction set) 1426, a trigger event module 1428, a predictive application manager module 1430, and other applications (or instruction sets) 1434, such as a car locator application and a navigation application.

[0209] The operating system 1422 may be any suitable operating system, including iOS, Mac OS, Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks. The operating system may include various programs, instruction sets, software components, and / or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.), and facilitate communication between various hardware and software components.

[0210] Communications module 1424 facilitates communications with other devices through one or more external ports 1436 or via wireless circuitry 1408, and includes various software components for processing data received from wireless circuitry 1408 and / or external ports 1436. External ports 1436 (e.g., USB, FireWire, Lightning connector, 60-pin connector, etc.) are suitable for coupling to other devices directly or indirectly through a network (e.g., the Internet, wireless LAN, etc.).

[0211] The location / motion module 1426 can help determine the current location (e.g., coordinates or other geographic location identifiers) and movement of the mobile device 1400. Modern positioning systems include satellite-based positioning systems such as the Global Positioning System (GPS), cellular network positioning based on "cell IDs," and Wi-Fi positioning technology based on Wi-Fi networks. GPS also relies on the visibility of multiple satellites to determine location estimates, which may not be visible (or have weak signals) indoors or in "urban canyons." In some embodiments, the location / motion module 1426 receives data from the GPS unit 1448 and analyzes the signals to determine the current location of the mobile device. In some embodiments, the location / motion module 1426 can use Wi-Fi or cellular location technology to determine the current location. For example, the location of the mobile device can be estimated using knowledge of nearby cell locations and / or Wi-Fi access points and knowledge of their locations. Information identifying the Wi-Fi or cellular transmitter is received at the wireless circuit 1408 and transmitted to the location / motion module 1426. In some embodiments, the location module receives one or more transmitter IDs. In some embodiments, the sequence of transmitter IDs may be compared to a reference database (e.g., a cell ID database, a Wi-Fi reference database) that maps or associates transmitter IDs to location coordinates of corresponding transmitters and based on the location coordinates of the corresponding transmitters, an estimated location coordinate of the device 1400 is calculated. Regardless of the particular positioning technology used, the position / motion module 1426 receives information from which a position fix can be derived, interprets the information, and returns position information, such as geographic coordinates, latitude / longitude, or other position fix data.

[0212] The trigger event module 1428 may include various sub-modules or systems, such as those described herein with respect to Figure 2A In addition, the prediction application manager module 1430 may include various sub-modules or systems, such as those described herein with respect to Figure 3 described.

[0213] The one or more applications 1434 on the mobile device may include any application installed on the device 1400, including but not limited to a browser, an address book, a contact list, email, instant messaging, word processing, keyboard emulation, desktop applets, JAVA-enabled applications, encryption software, digital rights management, voice recognition, voice replication, a music player (playing back recorded music stored in one or more files such as MP3 files or AAC files), and the like.

[0214] There may be other modules or instruction sets (not shown), such as a graphics module, a time module, and the like. For example, the graphics module may include various conventional software components for presenting, animating, and displaying graphical objects (including but not limited to text, web pages, icons, digital images, animations, etc.) on a display surface. In another example, the timer module may be a software timer. The timer module may also be implemented in hardware. The timer module may maintain various timers for any number of events.

[0215] The I / O subsystem 1406 may be coupled to a display system (not shown) which may be a touch-sensitive display. The display system displays visual output to the user in the GUI. The visual output may include text, graphics, video, and any combination thereof. Some or all of the visual outputs may correspond to user interface objects. Although the display may use LED (light emitting diode) technology, LCD (liquid crystal display) technology, or LPD (light emitting polymer display) technology, other display technologies may be used in other embodiments.

[0216] In some embodiments, I / O subsystem 1406 may include a display and user input devices such as a keyboard, a mouse, and / or a touchpad. In some embodiments, I / O subsystem 1406 may include a touch-sensitive display. The touch-sensitive display may also accept input from a user based on tactile and / or tactile contact. In some embodiments, the touch-sensitive display forms a touch-sensitive surface for accepting user input. The touch-sensitive display / surface (together with any associated modules and / or instruction sets in medium 1402) detects contact (and any movement or release of contact) on the touch-sensitive display, and converts the detected contact into interaction with a user interface object, such as one or more soft keys displayed on a touch screen when contact occurs. In some embodiments, the contact point between the touch-sensitive display and the user corresponds to one or more fingers of the user. The user may contact the touch-sensitive display using any suitable object or accessory such as a stylus, a pen, a finger, etc. The touch-sensitive display surface may use any suitable touch-sensitive technology to detect contact and any movement or release thereof, including capacitive technology, resistive technology, infrared technology, and surface acoustic wave technology, as well as other proximity sensor arrays or other elements for determining one or more contact points with a touch display.

[0217] In addition, the I / O subsystem may also be coupled to one or more other physical control devices (not shown), such as buttons, keys, switches, rocker buttons, dials, slide switches, joysticks, LEDs, etc., for controlling or performing various functions, such as power control, speaker volume control, phone ring volume, keyboard input, scrolling, holding, menus, lock screens, clearing and ending communications, etc. In some embodiments, in addition to the touch screen, the device 1400 may include a touch pad (not shown) for activating or deactivating specific functions. In some embodiments, the touch pad is a touch-sensitive area of ​​the device that, unlike a touch screen, does not display visual output. The touch pad may be a touch-sensitive surface separate from a touch-sensitive display or an extension of a touch-sensitive surface formed by the touch-sensitive display.

[0218] In some embodiments, an application executed on a user's device may be used to perform some or all of the operations described herein. Circuits, logic modules, processors, and / or other components may be configured to perform the various operations described herein. It will be understood by those skilled in the art that such configuration may be accomplished by design, setup, interconnection, and / or programming of specific components, depending on the specific implementation, and again depending on the specific implementation, the configured components may be reconfigurable or not reconfigurable for different operations. For example, a programmable processor may be configured by providing appropriate executable code; a dedicated logic circuit may be configured by appropriately connecting logic gates and other circuit elements; and so on.

[0219] Any software component or function described in this patent application can be implemented as a software code executed by a processor, and the processor uses any suitable computer language, such as, for example, Java, C, C++, C#, Objective-C, Swift, or a scripting language such as Perl or Python using, for example, conventional or object-oriented techniques. The software code can be stored on a computer-readable medium as a series of instructions or commands to achieve storage and / or transmission. Suitable non-transient computer-readable media may include random access memory (RAM), read-only memory (ROM), magnetic media (such as a hard drive or floppy disk), or optical media (such as a compact disc (CD) or DVD (digital versatile disc)), flash memory, etc. The computer-readable medium may be any combination of such storage devices or transmission devices.

[0220] Computer programs incorporating various features of the present disclosure may be encoded on various computer-readable storage media; suitable media include disks or tapes, optical storage media such as compact disks (CDs) or DVDs (digital versatile disks), flash memory, etc. Computer-readable storage media encoded with program code may be packaged with compatible devices or provided separately from other devices. In addition, program code may be encoded and transmitted via wired optical and / or wireless networks (including the Internet) that conform to a variety of protocols, thereby allowing distribution, for example, via Internet downloads. Any such computer-readable medium may reside in or be located in a single computer product (e.g., a solid-state drive, a hard drive, a CD, or an entire computer system), and may be present in or located in different computer products within a system or network. The computer system may include a monitor, a printer, or other suitable display for providing any results mentioned herein to a user.

[0221] Although the disclosure has been described with respect to specific embodiments, it should be understood that the disclosure is intended to cover all modifications and equivalents coming within the scope of the following claims.

Claims

1. A method, comprising executing, by a mobile device: detecting an event at an input device of the mobile device; measuring one or more sensor values ​​one or more times, the one or more sensor values ​​being measured using one or more sensors of the mobile device, wherein the one or more sensor values ​​are determined based on one or more signals emitted by corresponding one or more signal sources; creating a first data point from the one or more sensor values, each of the one or more sensor values ​​corresponding to a respective dimension of the first data point; identifying a first cluster of a plurality of clusters of data points corresponding to the first data point; identifying an application having at least a threshold probability of being accessed by a user when the event occurs in association with the first cluster, the application determined based on a set of one or more evaluation rules generated based on historical interactions of the user with the mobile device; as well as A message including the application or using the application is provided.

2. The method of claim 1, wherein the application is part of an operating system of the mobile device. The method of claim 1 , wherein the message causes another device to perform an action. The method of claim 3 , wherein the action comprises outputting information received from the application.

5. The method of claim 1, further comprising: A user interface is provided for a user to select the application when a probability that the application is accessed by the user is within a first range. 6 . The method of claim 5 , wherein the message is automatically provided to another device when the probability that the application is accessed by the user is within a second range greater than the first range. 7 . The method of claim 1 , wherein the first data point is a multi-dimensional data point, each of the one or more sensor values ​​corresponding to a respective dimension of the first data point.

8. The method of claim 1, wherein the data points in the plurality of clusters of data points correspond to previous measurements made using the one or more sensors, and wherein each cluster in the plurality of clusters of data points corresponds to a discrete location.

9. The method of claim 1, wherein: Detecting the event at an input device of the mobile device includes: Turning on of a backlight of the mobile device is detected.

10. The method of claim 1, further comprising: determining an identifier of the first cluster; retrieving the set of one or more evaluation rules from a plurality of sets of one or more evaluation rules using an identifier of the first cluster, wherein each set of one or more evaluation rules corresponds to a different cluster, Each of the plurality of sets of one or more evaluation rules includes a list of one or more applications and corresponding probabilities determined according to a prediction model generated based on historical interactions between the user and the mobile device.

11. The method of claim 10, further comprising: receiving context information corresponding to a time when the event was detected; as well as A subset of the set of one or more evaluation rules is selected based on the context information.

12. The method of claim 10, wherein the one or more sensor values ​​are signal properties of a transmitted signal that vary with respect to a distance between the mobile device and the one or more signal sources.

13. A computer readable medium storing a plurality of instructions, wherein the plurality of instructions can be executed by a computer system to perform the method according to any one of claims 1 to 12.

14. A mobile device, comprising: A database for storing data points; one or more input devices; as well as One or more processors configured to execute the method according to any one of claims 1-12.

15. A computing device for providing a user interface to a user to interact with suggested applications executing on the computing device, comprising means for performing the operations of the method of any one of claims 1-12.

Citation Information

Patent Citations

  • Application recommendation based on detected triggering events

    US20160357362A1

  • Segmentation techniques for learning user patterns to suggest applications responsive to an event on a device

    US20160357774A1

  • Location-aware mobile application management

    CN104782222A

  • Method and apparatus for starting application of intelligent device

    CN105045610A