The present disclosure relates generally to the field of mobile devices, and more specifically, to systems and methods for performing functions based on past uses of a device or behaviors of a user of the device.
Referring to
As shown in
According to an exemplary embodiment, housing 12 is configured to hold a screen such as display 18 in a fixed relationship above a user input device such as user input device 20 in a substantially parallel or same plane. This fixed relationship excludes a hinged or movable relationship between the screen and the user input device (e.g., a plurality of keys) in the fixed embodiment.
Device 10 may be a handheld computer, which is a computer small enough to be carried in a hand of a user, comprising such devices as typical mobile telephones and personal digital assistants, but excluding typical laptop computers and tablet PCs. The various input devices and other components of device 10 as described below may be positioned anywhere on device 10 (e.g., the front surface shown in
According to various exemplary embodiments, housing 12 may be any size, shape, and have a variety of length, width, thickness, and volume dimensions. For example, width 13 may be no more than about 200 millimeters (mm), 100 mm, 85 mm, or 65 mm, or alternatively, at least about 30 mm, 50 mm, or 55 mm. Length 15 may be no more than about 200 mm, 150 mm, 135 mm, or 125 mm, or alternatively, at least about 70 mm or 100 mm. Thickness 17 may be no more than about 150 mm, 50 mm, 25 mm, or mm, or alternatively, at least about 10 mm, 15 mm, or 50 mm. The volume of housing 12 may be no more than about 2500 cubic centimeters (cc) or 1500 cc, or alternatively, at least about 1000 cc or 600 cc.
Referring now to
Device 10 comprises a receiver 38 which comprises analog and/or digital electrical components configured to receive and transmit wireless signals via antenna 22 to provide cellular telephone and/or data communications with a fixed wireless access point, such as a cellular telephone tower, in conjunction with a network carrier, such as, Verizon Wireless, Sprint, etc. Device 10 can further comprise circuitry to provide communication over a local area network, such as Ethernet or according to an IEEE 802.11x standard or a personal area network, such as a Bluetooth or infrared communication technology.
Device 10 further comprises a microphone 36 (see
Device 10 further comprises a location determining application, shown in
Device 10 may be arranged to operate in one or more location determination modes including, for example, a standalone mode, a mobile station (MS) assisted mode, and/or an MS-based mode. In a standalone mode, such as a standalone GPS mode, device 10 may be arranged to autonomously determine its location without real-time network interaction or support. When operating in an MS-assisted mode or an MS-based mode, however, device 10 may be arranged to communicate over a radio access network (e.g., UMTS radio access network) with a location determination entity such as a location proxy server (LPS) and/or a mobile positioning center (MPC).
Device 10 further comprises a memory 42 coupled to or as part of processor 40. Memory 42 may store a variety of data (e.g., context data, etc.) such as information, data, applications, files, etc. that may be used or accessed using device 10. For example, calendar data may include data regarding various appointments such as location data (e.g., an individual's residence, a commercial establishment, an address or other geographic indicator such as a city, state, etc., a conference room number, and so on), time/date data (e.g., a date and/or time for a specific appointment, data regarding a recurring appointment, etc.), attendee data, and other data related to an appoint or meeting. Contacts data may include information regarding specific contacts, such as names, addresses, phone numbers, email addresses, fax numbers, and contact-specific notes (e.g., notes about the specific contact such as a birthday, anniversary, etc.). Messaging data may include information related to a variety of messaging applications including email, text messaging, short message service (SMS), and so on. According to various other exemplary embodiments, device 10 may utilize other context data in accordance with the various embodiments disclosed herein (e.g., data related to web-sites the user has visited using device 10, bookmarks or favorites for web-sites, data downloaded from a user's social networking account on a web-site (e.g., a MySpace or Facebook account), data related to audio and/or video clips (e.g., songs, videos, etc.), to-do lists, memo applications, gaming applications, etc.). The present disclosure is intended to be applicable to all such embodiments.
Referring now to
According to various exemplary embodiments, the advertisement data or content may include a variety of information and be provided in a variety of ways. For example, content may be provided to a user of device 10 in the form of a visual image provided on display 18. For example, an icon may be displayed on device 10 and may be selected by a user to provide an enlarged advertisement such as an electronic coupon, etc. Alternatively, rather than providing a visual display, device 10 may provide an audible message (e.g., a recording of an advertisement, etc.). Furthermore, advertisement data may be provided on display 18 and superimposed over another image, such as the current image the user is viewing, a geographic map indicating the location of the establishment(s) the advertisement data is associated with, and so on. Further yet, the content may include or be non-advertisement data such as general point-of-interest data, appointment data, etc. According to various other exemplary embodiments, other types of content or advertisement data may be provided to device 10 (e.g., text, graphics, audio data, video data, etc.).
According to various exemplary embodiments, one or more of servers 50, 52 may be involved in providing content or advertisement data to device 10. For example, in one embodiment, server 52 may be associated with an advertisement service (e.g., AdSense, provided by Google, Inc., Mountain View, Calif.) and be configured to provide advertisement data to device 10 independent from server 50. For example, as shown in
According to other embodiments, server 52 may be configured to provide advertisement data or other content to device 10 in conjunction with or through server 50. For example, as noted above, server 50 may be or include a server associated with an application developer that provides applications (e.g., mobile device-specific applications, such as games, financial tools, location-based mapping programs, music players, etc.) to device 10. Advertisement data may be provided to (by one or more of servers 50, 52) and/or displayed on device 10 while one or more applications provided by server 50 are running on device 10. For example, one or more advertisements provided by server 52 may be displayed along a top, side, or bottom portion of display 18 while a user is running an application provided by server 50.
In some embodiments, server 50 may be a server associated with a manufacturer of device 10, and may have wireless or other access to data unavailable to server 52 (e.g., user-specific data such as data from an information management application, including email, calendar, contacts, and other applications). Server 50 may provide data associated with device 10 (and/or the associated user) to server 52. Such data may be used, for example, to filter advertisement data or other content being provided to device 10 to increase the relevancy of the advertisement data to the particular device/user. It should be understood that the various embodiments discussed herein are provided for purposes of illustration only, and that more or fewer servers or other parties/entities may be involved in the provision of advertisement data or other content to device 10. All such embodiments are deemed to be within the scope of the present disclosure.
Referring now to
As an example, device 10 may access data indicating a planned/future destination (e.g., location) of a user (e.g., as indicated by a calendar or other information management application) in addition to the user's current location, and provide the user with data regarding nearby points of interest (e.g., hours of operation, whether open /closed, etc.) or other establishments. Similarly, device 10 may access data indicating that the user is outside of a particular geographic area (e.g., outside a certain distance from a home location, a work location, etc., outside an area code of a mobile phone number associated with device 10, outside of an address contained in a contacts application, and so on), and/or data indicating that a user has recently moved locations (e.g., as a result of travelling via plane, train, etc.), and trigger the delivery of content based on the user's location and/or on a time-sensitive basis (e.g., based on departure times, arrival times, etc.).
Device 10 may further access data indicating that a user has “free time” (e.g., as indicated by an appointment calendar or other application) and provide content regarding points of interest or establishments in the vicinity of the user (or similarly, on or near a route between the user and a location associated with one or more scheduled appointments). As an additional example, should the user be waiting for a bus, train, plane, etc., or some other type of public or other transportation, device 10 may provide time-sensitive offers for nearby establishments to the user based on, for example, the user's available time prior to a scheduled departure time.
As indicated above, device 10 may be configured to provide (e.g., deliver, trigger or initiate the delivery of, filter, etc.) content based on context data. According to some embodiments, the content may be provided in the form of a generic alert or notification (e.g., “Are you hungry?”, “Do you want to listen to music?”, “Would you like to try a new restaurant?”, “Would you like to visit one of your favorite restaurants?”, “Do you want to send an invite out to your friends?”, etc.) that when selected, directs a user to more specific data or information (e.g., “Lunch Special at Sam's Deli today”, etc.).
Other examples of generic content may include content offering the best price for a certain item or service (e.g., “Looking for the best price for gas near you?”), or similarly, content offering to locate a preferred vendor, point of interest, etc., such as a gas station, fast food restaurant, coffee shop, etc. that, based on a user's current location, a given mode of transportation, and/or the hours of operation of the vendor or establishment, will still be open when the user arrives (e.g., “Looking for the nearest gas station?”). Other generic alerts may include offers to locate ATM machines or other computer terminal or user terminals (e.g., taking into account any additional fees charged by the ATM), public parking (e.g., taking into account hours of operation, pricing, etc.), lodging (e.g., taking into account vacancy, room rates, and other data regarding hotels, etc.), and so on. Various other types of generic alerts may be provided that take into account a wide variety of context data and other data (e.g., metadata associated with various establishments, etc.) in order to increase the relevancy of the content to users.
According to various alternative embodiments, context data may be stored in a variety of ways and utilizing a variety of storage devices and systems, such as in memory of a mobile device such as device 10, using one or more servers that are separate from device 10, using one or more servers that are associated with an ad service, an ad sponsor (e.g., a retailer, etc.), via a data storage system accessible via the Internet or another network system, and so on. Other suitable means of storing context data may be used according various other embodiments.
Referring to
Based upon the context data, content may be provided to device 10 (step 64). According to an exemplary embodiment, the content is provided in a generic format (e.g., as a generic notification or alert, etc.) and is not tied to any particular entity such as ad sources 54, 56, 58, etc. The content may include a selectable link such that an input (e.g., a selection of the link) may be received by device 10 (step 66) in response to the content being provided. Upon receipt of the input, additional content may be provided to a user (e.g., more specific data, advertisement data, driving or other directions, etc.) (step 68). The additional content may include, for example, advertisement data from ad sources 54, 56, 58, point of interest information (e.g., non-advertisement data or information about specific destinations, which may be in proximity to device 10 or in some other predetermined geographic location(s), a website, and so on).
It should be understood that the method illustrated in
In some embodiments, content may be provided based on time data and/or data from a personal information management application such as a calendar application. For example, at a predetermined time (e.g., a typical meal time such as lunch time, etc., a user-configurable time, a pre-set time, etc.), calendar data associated with device 10 may be accessed to determine, for example, whether a user has an appointment scheduled (e.g., a lunch appointment). If the user has no appointment scheduled, device 10 may be configured to provide the user with content such as a generic alert or notification (e.g., “Are you hungry?”, “Do you want to go out to eat?”, etc.). The notification may include a selectable link or be otherwise selectable (e.g., via a touch screen or other input device), such that should the user select, for example, a link provided with the generic notification, device 10 may then provide more specific, additional content or information. The additional content may be any of a wide variety of content, including targeted advertisements (e.g., ads, e-coupons, discounts, etc. selected based on past user behavior, the location of the user, user-configurable preference data, etc.), an option to send out a notification to other users or mobile devices (e.g., an option to send out a lunch invitation to other mobile devices identified via a contacts application, a social networking application or listing, the location(s) of other users/devices, etc.), and so on. The process of providing progressively more specific data to device 10 in response to continued responses or other user inputs may be repeated as part of providing content to device 10.
In some embodiments, content may be provided based upon the movement and/or location of device 10. For example, device 10 may be configured to, for example, determine when a user has left a building or similar environment, which may in turn trigger the delivery of content to the user (e.g., “Need directions?”, etc.). In order to provide content with greater relevancy, device 10 may further take into account a direction of travel (e.g., via an integrated compass, etc.), a speed of travel (e.g., via a GPS system, accelerometer, etc.), and so on. For example, the content provided to the user may vary based on what points of interest are in the general direction of travel of device 10, based on a predicted mode of travel (e.g., walking, driving, etc.) determined based upon the speed of travel, based on calendar appointment data (e.g., by knowing where a user may be going based upon appointment data), and so on.
In some embodiments, content may be provided to additional devices based on inputs associated with, or content provided to, device 10. For example, content such as an advertisement may be provided to a user via display 18 of device 10. A user may select the advertisement in order to navigate to, for example, a web site hosted by the source of the advertisement. In response to the user selecting the advertisement, additional content may automatically be provided to additional devices (e.g., additional mobile devices identified in a social network listing, etc.). For example, should a user select a particular advertisement, the same or a similar advertisement may be provided to a group of users that are in a contacts application of the user, users that may be identified based upon some type of social networking grouping or listing (e.g., via being identified as “friends,” contacts,” etc. as part of an application or web-based service such as Facebook, MySpace, etc. (or a list of contacts having a particular designation on such a service)), users that may be designated, flagged or somehow identified by a user and stored on device 10 and/or a server, etc., and so on. Various other means of identifying a social network listing may be used, and the listings may overlap or may be mutually exclusive, etc. For example, social network listings may include email listings (e.g., personal or professional listings or groups, such as a marketing group of a business, a sales team, etc.) a class list for a particular academic institution and/or year, a sports team (e.g., a school and/or youth sports team, etc.) and/or other social network listings that may be more or less permanent/temporary in nature.
Referring to
Referring to
As shown in
According to various exemplary embodiments, as a user continues to engage the content provided to device 10, a user may be permitted to interact (e.g., enter into transactions, make reservations, provide and/or receive contact information, etc.) with various entities associated with the content provided to device 10. For example, as a user selects additional content (e.g., additional content such as additional content 84 shown in
The systems and methods described herein may be implemented to provide data to a wide variety of mobile devices that may take a wide variety of forms (e.g., differing form functions, etc.) and have a wide variety of functional capabilities such as visual display capabilities, input/output capabilities (e.g., touch screen, non-touch screen devices, etc.), audible output capabilities, etc. In some embodiments, the content provided to device 10 may be formatted based on the characteristics or capabilities of device 10. Alternatively, device 10 may be configured to receive the content and perform such formatting based on data stored on device 10, accessible via device 10, provided as part of the content itself (e.g., as embedded data or formatting instructions) and so on. The formatting may further be performed for a wide variety of devices (e.g., a handheld device, a relatively smaller-sized device such as a watch, etc., a relatively larger-sized device such as a television, etc.), and so on.
In some embodiments, device 10 may be configured to provide and/or format content such as advertisements etc. as sessions change (e.g., as an application moves through different modes or states such as downloading, launch, a ready/usage state, ending/shut-down, etc.). For example, a user may download an application to device 10, during which content may be provided in the form of, for example, dynamic and/or static ads, sponsorships, etc. When the application is launched an initial “splash screen” (e.g., a screen or page provided to the user while an application is launched) may be displayed that includes content such as advertisements, etc., and as the application transitions to a “ready” state (e.g., ready to be used by the user), one or more interstitial pages may be provided with further content. Similar content may be provided as the application is closed or shut down.
In some embodiments, while an application is in use, or active, certain display portions or areas may be dedicated to content such as advertisements on a permanent or temporary basis. Alternatively, device 10 may provide users with alerts or other notifications that include relevant content such as advertising or other data. Further, for applications having searching capabilities, content such as sponsored links or logos, etc. may be provided in connection with various search queries. Further yet, certain content provided by device 10 may include brand information such as logos, etc.
Referring now to
The use data may be retrieved or determined based on data from one or more sources operating on the mobile computing device or remote from the computing device, such as a location determination circuit, a time of day clock, a source of a date and day of the week, a database of geographic points of interest (e.g., location and extent of a parking lot, restaurant, bridge, gas station, etc.), a mass transit schedule database or other database stored on a remote server, a phone call log, an application store available on a remote server for downloading new software applications, an on-line reservation system for a restaurant, train, etc., a wireless transceiver circuit configured to receive wireless signals (e.g., radio frequency, infrared, etc.) from nearby or remote devices, metadata for one or more audio music files recently played by the user, textual input from a user entered via a keyboard or data from any other application operating on the mobile computing device, such as a calendar application, contacts application, phone application, notes application, task list application, gaming application, music and/or video player application, etc.
A pattern of past uses may comprise a plurality of past uses of the mobile computing device, based on any of the use data described herein.
At step 1002, the system is configured to determine or detect a present condition, situation, or context of the mobile computing device and/or user thereof. The present condition may be one which is currently applicable, or recently applicable, to the device (e.g., detecting that the mobile device has just passed a point of interest may be a present condition for some period of time). The present condition may be retrieved or determined based on data from one or more sources operating on the mobile computing device or remote from the computing device, such a traffic data available from a remote site (e.g., such as Google Maps), a calendar application, a date and/or time of day source, a location determination circuit, a source of geographic point of interest data, an application store available on a remote server for downloading new software applications, user inputs, a time counter configured to detect the passage of one or more predetermined periods of time, a distance counter configured to detect a traveled distance, a navigation application configured to determine a route traveled, a wireless transceiver circuit configured to receive wireless signals from nearby or remote devices, or other data sources.
At step 1004, the mobile computing device may be configured to perform a function based at least on the use data and the present condition. The function comprise generating a notification to the user, such as by displaying a message, alert, textual data, etc. in a window, full screen, etc., and/or by providing an audible alert, such as a beep, series of beeps, playing an audio file, etc and/or by vibrating or providing other outputs to the user. The function may further comprise performing operations within other applications operable on the mobile computing device, such as adding a resource locator link and/or identifier to a “favorites” or bookmark list in a browser application, adding a phone number to a list of frequently called numbers, etc. The function may further comprise delaying a function to be performed, such as delaying a download of data or a synchronization operation. The function may further comprise downloading a program from a server computer, filtering a list of potential files to be downloaded to present a subset of the list to the user for selection, running a search on a local or remote geographic information database, calculating a route using a navigation or mapping application, etc. The function may further comprise sending wireless data to a remove device containing a command, request, alert, or other data.
Various embodiments are contemplated of processing circuits programmed with algorithms for tracking a user's behavior and performing functions based on the past experience or historical knowledge of the user. As mentioned, the algorithms may be operable on processing circuitry on the mobile computing device, a server computer, or portions of the algorithm on both a mobile device and a server computer. The algorithms may be operable to predict one or more functions the user may wish to perform with the device based on the past experience or historical usage of the device and may be configured to perform the one or more functions based on one or more present conditions, such as a triggering event or occurrence. The mobile device may be configured to suggest a function and await user confirmation (e.g., via pressing a key, speaking into a microphone on the device, etc.) or may be configured to perform the function without awaiting user confirmation.
According to one embodiment, a processing circuit may be configured to generate an alarm to wake up a user at a time earlier than a predetermined typical wake-up time based on a present condition of data from a traffic report indicating traffic is worse than usual along a predetermined traveling route. The processing circuit may be configured to determine based on time of day and location based signals collected over a plurality of days the predetermined traveling route. The processing circuit may further be configured to store data indicative of typical or average traffic conditions at one or more points along the route. The mobile device may be configured to receive a user selection of an alarm time. Each morning, the processing circuit may be configured at some predetermined time period prior to the selected alarm time to receive current traffic data along the predetermined traveling route, calculate or retrieve from memory a time period, subtract the time period from the user-selected alarm time, and then program the mobile device to provide the alarm at the new time. According to another embodiment, the processing circuit may be configured to determine when the mobile device arrives at a location (e.g., a place of work) and to suggest a new alarm or wake-up time based on one or more previous commute times stored by the processing circuit to assist the user in arriving at work more reliably at a predetermined time. For example, if the processing circuit detects the user repeatedly arrives at 8:05 AM and has an alarm set to 6:30 AM, the processing circuit may determine that the user intends to arrive at work at 8:00 AM and to suggest the user switch the alarm time to 6:25 AM.
The processing circuit may be configured to learn over a period of days or weeks where a user will be located with the device at a given time (e.g., during a commute, during lunch, etc.) based on past experience and to predict a function needed by the user at a present or future time based on the data indicative of past experience or behavior. In other embodiments, the mobile device may be configured to receive certain data to replace or supplement the use data or past experience data, such as a desired lunch time, a commute route, current location, etc.
According to another embodiment, a processing circuit may be configured to monitor the presence and/or signal strength of wireless networks at locations along a route, such as a frequently traveled route, such as a commute route or weekend vacation route. The processing circuit may be configured to store one or more locations at which a wireless signal becomes weaker or unavailable (e.g., “dead spots”, weak spots, etc.). Upon a subsequent trip, the mobile device may be configured to notify a user via an alert or other alarm that a dead spot is approaching. The device may further be configured to suggest other available networks for a handoff of a wireless communication session, such as a voice or data session, which may be a handoff to a cellular network of a different carrier, to a Wi-Fi access point, etc. The data of other wireless networks may be stored in a memory from previous data collected by the mobile device along the route or may be retrieved from a commercially-available database of network data accessible on a server computer (e.g., a database offered by Boingo Wireless, Inc., Los Angeles, Calif.). In another embodiment, the processing circuit may be configured to store present and/or signal strength of wireless networks at any location, regardless of any route data. The processing circuit may further obtain such data via download from a server. The processing circuit may be configured to change the behavior of the phone based on knowledge of the level or quality of wireless connectivity the device will have in certain locations. For example, if the device will be approaching a good Wi-Fi network, the device may be configured to delay a wireless download and/or upload operation until the device reaches the Wi-Fi network. This feature may be useful for downloading software updates to the mobile device, software patches or new versions of software, or other data to be communicated wirelessly. The processing circuit may be configured to schedule wireless communications based on predictions of where the device will be at times of the day (e.g., based on a current route, projected route, location and time data from prior days (e.g., the mobile device is home after 6 pm each night for a plurality of nights in communication with a Wi-Fi network with a suitable signal strength), or other based on other characteristics).
According to another embodiment, a processing circuit may be configured to store user preferences or rankings associated with locations and/or types of events previously attended. In response to an indication that the user will participate in a present or future event at a similar location or of a similar types, the device may be configured to alert the user that the user previously indicated they did not want to visit these types of events or locations. The processing circuit may also receive current traffic data and further provide the alert based on the current traffic data to suggest that the user may not want to attend the event because of traffic. In this embodiment, the processing circuit may be configured to learn what not to do based at least in part on things previously done with the device and optionally also in response to a user ranking or assessment of the location or event.
According to another embodiment, a processing circuit may be configured to store a plurality of user-selectable time zones in a list based on locations previously visited by the mobile device. According to another embodiment, the mobile device may be configured to learn a time zone of a person associated with a contact in an contacts location based on the user of the mobile device traveling to visit the person. The time zone may be stored in the contact data file. According to one example, the mobile device may be configured to generate an alert for the user if the user initiates a telephone call to the contact and a time of day source indicates that based on the time zone, the time may be received by the contact at an inconvenient time, such as after and/or before a predetermined time of day, as indicated by a time of day source and the time zone associated with the contact. Also, the contacts application may be configured to display data indicative of a time of day at the contact's location based on time of day data and the time zone associated with the contact.
According to another embodiment, a processing circuit may be configured to store data indicative of where the mobile device has traveled to, such as a foreign country, outside of a home state (as determined based on use data indicating past location), etc. The processing circuit may then be configured to download applications or suggest applications for download to the user based on the data indicative of where the mobile device has traveled to. For example, if the device has recently traveled to a foreign country, the device may be configured to identify one or more applications relating to the foreign country available for download from a remote server or items available for purchase (e.g., a French/English dictionary, a currency exchange application, etc.) and to notify the user of the availability of such applications or items (e.g., a travel book). In this manner, the recently-traveled data may be used as a filter for an application store or other function of the device or a server in communication with the device. The recently-traveled data may further comprise frequency of travel data or number of travel events data, to distinguish a location infrequently visited from one frequently visited, which data may further be used to filter applications for download or items for purchase. For example, if a user frequently travels to France, the mobile device may be configured to suggest downloading applications operable or items written in the French language instead of English language.
According to another embodiment, a processing circuit may be configured to store metadata associated with one or more applications downloaded from a remote server. The processing circuit may then be configured to filter applications available for download or items available for purchase based on one or more of the metadata items. For example, if a user frequently downloads gaming applications, the processing circuit may detect a user request to access an application store at a server and, in response, the processing circuit may be configured to filter a set of applications available for download based on the frequent-download data and to present to the user one or more or only gaming applications. According to yet another embodiment, the processing circuit may be configured to filter applications for download based on applications that are downloaded and frequently used (or recently used), to further reduce the number of applications to be viewed by the user of the mobile computing device.
According to another embodiment, the processing circuit may be configured to store data indicating the mobile device has been used at or in association with a restaurant or other dining location. The use data may comprise data indicating that a dinner reservation has been made using the mobile device and dinner reservation web site, that a phone call has been placed to the restaurant, that the device has entered the restaurant based on location data, that the device has been used to make a purchase at the restaurant, such as with a near-field communication device or other transaction processing circuit, etc. The processing circuit may be configured to store data about the restaurant along with data about other restaurants similarly gathered. The processing circuit may be configured to determine that a user may presently wish to review restaurant suggestions, which may be determined based on time of day (e.g., lunch time, dinner time, etc.), based on a user request to review restaurants suggestions, or based on other present conditions. The processing circuit may then function to generate one or more restaurant or dining location suggestions based on the prior use data and to present the one or more restaurant suggestions to the user, optionally along with location, web site, phone number, mapping, reviews, and/or other data about the restaurant. According to another embodiment, if the processing circuit detects that the user is visiting (e.g., from location data) or plans to visit (e.g., from calendar data, a reservation made using the phone, etc.) a restaurant that has been visited before, been recently visited, and/or been frequently visited, the processing circuit may be configured to suggest a new dish for the user to try, based on dish data received from the restaurant or from a server configured to store dishes recommended by other patrons or by friends in a friend list stored by the mobile device.
According to another embodiment, a processing circuit may be configured to identify one or more gas stations at which a user of a mobile device has recently or frequently fills up their car with gas. The processing circuit may identify the gas station based on one or more of location data, point of interest information (e.g., comprising a location of a gas station and data indicating the point of interest is a gas station), a period of time between visits to the gas station and/or other gas stations (which may indicate whether the gas station was visited for a gas purchase or for a non-gas purchase), transaction data indicating the mobile device was used to make a transaction to purchase gas (e.g., using a near-field communication device or other transaction circuit), or other data. The processing circuit may then be configured to determine a present condition, such as a present location of the device approaching or located at the gas station, a predetermined period of time having passed and/or distance having been traveled at vehicle speeds since the last gas fill-up (e.g., which may indicate that the user's vehicle will soon be in need of fuel), the user traveling near a second gas station selected as described below, and/or other present conditions (e.g., a user turning on the device). The processing circuit may be configured to perform one or more of the following functions based on the identified gas stations and present condition: perform a search of a remote web site for nearby gas stations offering a lower price on gas (e.g., which may include a special, coupon, etc.), present an alert to the user comprising information about the lower price and location, provide directions, a map, or other data about the gas stations offering the lower price.
According to another embodiment, a processing circuit may be configured to present advertisements to a user via the user's mobile computing device based on past usage data of the mobile computing device, such as a past location (e.g., a point of interest recently visited, a point of interest frequented or visited a plurality of times in a predetermined time period, etc.).
According to another embodiment, a processing circuit may be configured to receive a user request for a point of interest or other retail location, which may be provided generically by the user (e.g., a barber, a dry cleaner, a book store, a restaurant, etc.) and may include additional criteria about the point of interest to be found (e.g., a predetermined rating level, such as at least two stars, a price range, etc.). The processing circuit may be configured to identify one or more points of interest meeting the criteria provided by the user based further on location data representative of a route previously or frequently traveled by the user in the past (e.g., a daily commute). Based on the travel history of the device, the processing circuit may be configured to identify one or more points of interest along the route, near a point on the route, or closer than other points to the route, and to present the points of interest to the user, such as in an alert, on a map, etc. This functionality may be operated from within a task list or notes application operable on the mobile device, to assist the user in completing a task entered by the user (e.g., “get a haircut,” “drop off drycleaning,” etc.).
According to another exemplary embodiment, a processing circuit may be configured to store use data from a telephone call log (e.g., phone numbers, times of calls, persons called incoming our outgoing, etc.). The processing circuit may be configured to perform functions based on the telephone call log information and any present condition. For example, if the processing circuit determines that phone calls have been made to Chinese restaurants (e.g., recently, frequently, exclusively, etc.), which may be based on data from the call log and/or data from a web site or other server configured to provide additional data to supplement data from the call log, the processing circuit may be configured to determine and/or store a preference for Chinese restaurants. If a present condition is met, such as a time of day representing a typical time to eat (e.g., noon, 6 pm, etc.), a typical time to eat for the user based on previous times during which the user has eaten (e.g., based on calendar data, location data, reservations made using the mobile device, dining transactions made using the mobile device, periodic eating at a particular restaurant (e.g., every Monday is Chinese food day), etc.), the processing circuit may be configured to provide a function of alerting or suggesting to the user a restaurant or nearby restaurant based on the data (in this case, a Chinese restaurant), or to prompt the user to confirm placing a phone call to a favorite restaurant to place an order or make a reservation. The mobile device may be configured to store preferred menu items and to transfer the menu items as an order to the restaurant through a web site, text message, etc. at a predetermined time and in response to user confirmation to place the order. The mobile device may be configured to prompt the user (e.g., “the usual?”).
According to another embodiment, the processing circuit may be configured to store data representative of a mass transit service (e.g., bus, train, flight, etc.) used or frequently used by a user of the mobile device. The data may be stored based on location data indicating travel along a mass transit route (e.g., a train track or rail line), typically a plurality of times to indicate a pattern or frequency of travel. The processing circuit may then be configured to retrieve data indicating a delay or cancellation in the mass transit route typically traveled, which may be a present condition. The processing circuit may be configured to alert the user of the mobile device as to the delay or cancellation.
Accordingly to another embodiment, the processing circuit may be configured to determine that the mobile device has traveled along two or more different routes, at least one of which has been traveled a plurality of times indicating some frequency or regularity of the travel route. The processing circuit may be configured to determine a present traffic condition and, based on the present traffic condition and past route data, display a recommendation to the user as to which of the two or more different routes to travel. According to another embodiment, the processing circuit may be configured to determine that the mobile device has repeatedly traveled a first route, that an alternative route is available which may be a better route for one or more reasons (e.g., shorter travel time, less traffic, less uncertainty due to potential traffic issues, shorter travel distance, the route goes near a point of interest determined to be of interest to the user, etc.).
According to another embodiment, a processing circuit may be configured to store data indicating a preferred parking lot, such as in an urban setting, at an airport, etc. The preferred or historical parking lot data may be used by the processing circuit to provide an indication the user that the preferred parking lot is full, closed, etc., using data from a web server monitoring the parking lot capacity and status. The processing circuit may provide the indication in response to determining that the user is approaching the parking lot.
According to another embodiment, a processing circuit may be configured to store data indicative of prior music files played by the mobile device and one or more elements of metadata about the prior music files, frequency of playing each music file, date of download or stored on the mobile device, etc. Based on one or more of this data, the processing circuit may be configured to search for additional music files for potential download, using similar styles, artists, genre, etc., and to suggest the additional music files to the user. The processing circuit may further be configured to search for concerts coming to town based on historical music file data, recent location data of the device, determined musical tastes, etc. and to provide an alert to the user of the concert coming to town, for example with a text or e-mail message containing a link for the user to click on to see concert information, order tickets, etc.
According to another embodiment, the processing circuit may be configured to determine a home location from an address data stored in a contact for oneself, based on data indicating the mobile device returns to that location every night or otherwise daily, or based on other data. The processing circuit may then be configured to determine when the mobile device is approaching the home (e.g., a predetermined distance or time away from the home), based on determining that the mobile device has traveled certain points along a previously-traveled route home, and to provide a wireless message to a system in the home or to another mobile or fixed computing system based on the determination that that the device is approaching or nearing the home. For example, if the home is equipped with a home automation or control system (e.g., security system, lighting system, door locking system, audio control system, HVAC control system, etc.) having web access or access to a cellular network, the mobile device may be configured to send a message to the home control system to control one or more of the systems (e.g., disable or check security system, turn on lights, unlock doors, etc.). As another example, the mobile device may be configured to send a text message to another mobile device (e.g., a spouse's or other family members' mobile device) to advise them that the user is nearing home (e.g., “dad will be home in about 5 minutes,” etc.). In alternative embodiments, the message may be based on approaching another location or system other than the home, such as a vehicle, and may further be based on data indicating the mobile device is moving away from another location or system, such as a shopping mail. In such an embodiment, the mobile device may send a message to the vehicle (e.g., directly via Bluetooth or other short-range wireless network, or indirectly via a cellular or Wi-Fi network) to command the vehicle to unlock the doors, release the trunk door, and/or remote start the vehicle.
According to another exemplary embodiment, the processing circuit may be configured to detect a use of the mobile device, such as visiting a web site (or visiting it frequently or a plurality of times in a predetermined time period), making a phone call (or calling a particular number frequently or a plurality of times in a predetermined time period), etc. The processing circuit may be configured to perform a function based on the detected use, such as adding a bookmark, favorite, or link to a list of such favorites in a web browser application, wherein the link is associated with the web site visited. In another embodiment, a phone number may be added to a speed dial list (e.g., having a predetermined number or number sequence associated with it shorter than the phone number, having an icon which can be tapped, such as with a photo of the person associated with the phone number, etc.) based on the phone call data. In another embodiment, the processing circuit may be configured to display an alert based on a frequently-called person approaching the mobile device, may display a map showing their location, etc. In another embodiment, the processing circuit may be configured to determine that another mobile device is typically detected in the proximity of the mobile device at a predetermined time each day or on certain days and that the device has not been detected in proximity. The processing circuit may then be configured to prompt the user to phone or contact the mobile device of the other person. One use of this embodiment may be at a construction site where one or more workers are expected to be located at the site at a predetermined time and a mobile device monitors the locations of the mobile devices of the workers to confirm they have arrived, and to send a communication to the other mobile devices which have not yet arrived (e.g., a text message, phone call, etc.). The expected time of arrival and devices expected may be received via manual input from a user or may be detected based on prior history at the work site and stored in a memory on the mobile device or a server in communication therewith.
According to another embodiment, the processing circuit may be configured to determine use data based on when the device is turned on or off (or allowed to power off) by a user. For example, if the processing circuit determines that the device is typically powered off after 10 PM and night powered on until 5 AM, the processing circuit may be configured to schedule or delay certain wireless download, synchronization, virus scan, or other operations until the time of after 10 PM and/or before 5 AM. The device may further be configured to stop certain operations initiated before a predetermined time period based on an expectation that the user will turn on and use the device, again based on data stored regarding prior usage of the device. In another embodiment, the processing circuit may be configured to determine that the mobile device is located at a work location and may be configured (automatically or in response to a user request) to stop, delay, or cease synchronization of data, such as e-mails, based on an assumption that the user will be handling e-mail communications from a laptop or desktop computer while at work or while at a particular location of work (e.g., the desk versus the lab). Battery life of the mobile device may be conserved using such a feature.
According to another embodiment, a processing circuit is configured to determine that the mobile device is located in a city, state, country or other geographic location not previously visited by the device (or not previously detected by the program operating the feature). Alternatively, the processing circuit may determine that the mobile device is located at a hotel or other lodging point and to determine that the mobile device may want additional data based on the fact that the user is staying at a hotel. The processing circuit may be configured to prompt the user to indicate whether the user is traveling for business or pleasure. The processing circuit may then be configured to provide data indicative of local points of interest and/or events (e.g., things to do, restaurants, attractions, events, etc.) based on the determination and/or collected user input. The processing circuit may be configured to provide restaurant, entertainment, local history, news, or other data to the user based on the determination and/or collected user input.
According to another embodiment, the mobile device may be configured to operate a clock application. A processing circuit may be configured to determine a home time and local times for places visited or commonly visited, based on use data (e.g., where the device is used, for how long the device is used at each location, etc.), and to store these times in the clock application. Any of the functions described herein may then be performed based at least in part on the time information.
According to another embodiment, a processing circuit may be configured to determine times of the day during which a user of a mobile device is typically at work. For example, the device may receive a user selection or input of a work location, or the processing circuit may determine a work location based on a location the device is typically at for a significant portion of a day, estimating based on typical work hours in any one of a plurality of different shifts. The processing circuit may then be configured to determine whether an appointment in a calendar application is scheduled for a time that the user is not typically at work, and may be configured to provide additional reminders or alerts of the meeting beyond a reminder or alert that would typically be provided for a meeting scheduled during typical work hours. For example, the reminders may be greater in number, may use more output devices (e.g., display, speaker, vibration, phone call to home, instant message or text message to second computing device, etc.), may be earlier (e.g., more than an hour before the meeting), may be provided during typical work hours regardless of the time of the meeting, etc.
It should be understood that the various systems and methods described herein may be implemented on or via device 10, via one or more of servers 50, 52 (e.g., a server associated with an ad service, etc.), or via other devices/components and any combination(s) thereof, and all such combinations are deemed to be within the scope of the present disclosure. One or more of device 10 and/or servers 50, 52 may serve as a “content manager” or “offer manager” to manage, trigger, filter, and/or otherwise control the delivery of content (e.g., advertisements, offers, etc.) to device 10. References to a processing circuit may include use of multiple processing circuits, such as one operable on a mobile device and one operable on one or more server computers.
Various embodiments disclosed herein may include or be implemented in connection with computer-readable media configured to store machine-executable instructions therein, and/or one or more modules, circuits, units, or other elements that may comprise analog and/or digital circuit components configured or arranged to perform one or more of the steps recited herein. By way of example, computer-readable media may include RAM, ROM, CD-ROM, or other optical disk storage, magnetic disk storage, or any other medium capable of storing and providing access to desired machine-executable instructions.
While the detailed drawings, specific examples and particular formulations given describe exemplary embodiments, they serve the purpose of illustration only. The hardware and software configurations shown and described may differ depending on the chosen performance characteristics and physical characteristics of the computing devices. The systems shown and described are not limited to the precise details and conditions disclosed. Furthermore, other substitutions, modifications, changes, and omissions may be made in the design, operating conditions, and arrangement of the exemplary embodiments without departing from the scope of the present disclosure as expressed in the appended claims.
The present application claims the benefit of U.S. Provisional Application No. 61/140,562, filed Dec. 23, 2008, which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61140562 | Dec 2008 | US |