SYSTEM AND METHOD FOR PROVIDING CONTENT TO A MOBILE DEVICE

Abstract
A mobile computing device comprises a memory and a processing circuit. The memory is configured to store use data indicative of a pattern of past uses of the mobile computing device. The processing circuit is configured to determine a present condition and to perform a function based at least in part on the use data and the present condition.
Description
BACKGROUND

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.





BRIEF DESCRIPTION


FIG. 1 is a front view of a mobile device according to an exemplary embodiment.



FIG. 2 is a back view of the mobile device of FIG. 1 according to an exemplary embodiment.



FIG. 3 is a side view of the mobile device of FIG. 1 according to an exemplary embodiment.



FIG. 4 is a block diagram of the mobile device of FIG. 1 according to an exemplary embodiment.



FIG. 5 is a block diagram of a system for providing content to a mobile device according to an exemplary embodiment.



FIG. 6 is a flow chart of a method of providing content to a mobile device according to an exemplary embodiment.



FIG. 7 is a front view of a display of a mobile device according to an exemplary embodiment.



FIG. 8 is a front view of a display of a mobile device according to an exemplary embodiment.



FIG. 9 is a front view of a display of a mobile device according to an exemplary embodiment.



FIG. 10 is a flowchart of a system and method for performing a function based on use data and a present condition, accordingly to an exemplary embodiment.





DETAILED DESCRIPTION

Referring to FIGS. 1-3, a mobile device 10 is shown. The teachings herein can be applied to device 10 or to other electronic devices (e.g., a desktop computer), mobile computing devices (e.g., a laptop computer) or handheld computing devices, such as a personal digital assistant (PDA), smartphone, mobile telephone, personal navigation device, etc. According to one embodiment, device 10 may be a smartphone, which is a combination mobile telephone and handheld computer having PDA functionality. PDA functionality can comprise one or more of personal information management (e.g., including personal data applications such as email, calendar, contacts, etc.), database functions, word processing, spreadsheets, voice memo recording, Global Positioning System (GPS) functionality, etc. Device 10 may be configured to synchronize personal information from these applications with a computer (e.g., a desktop, laptop, server, etc.). Device 10 may be further configured to receive and operate additional applications provided to device 10 after manufacture, e.g., via wired or wireless download, SecureDigital card, etc.


As shown in FIGS. 1-3, device 10 includes a housing 12 and a front side 14 and a back side 16. Device 10 further comprises a display 18 and a user input device 20 (e.g., a QWERTY keyboard, buttons, touch screen, speech recognition engine, etc.). Display 18 may comprise a touch screen display in order to provide user input to a processor 40 (see FIG. 4) to control functions, such as to select options displayed on display 18, enter text input to device 10, or enter other types of input. Display 18 also provides images (see, e.g., FIG. 7) that are displayed and may be viewed by users of device 10. User input device 20 can provide similar inputs as those of touch screen display 18. Device 10 can further comprise a speaker 26, and a stylus 30 to assist the user in making selections on display 18. Display 18 may comprise a capacitive touch screen, a mutual capacitance touch screen, a self capacitance touch screen, a resistive touch screen, a touch screen using cameras and light such as a surface multi-touch screen, proximity sensors, or other touch screen technologies, and so on. Display 18 may be configured to receive inputs from finger touches at a plurality of locations on display 18 at the same time. Display 18 may be configured to receive a finger swipe or other directional input, which may be interpreted by a processing circuit to control certain functions distinct from a single touch input.


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 FIG. 1, the rear surface shown in FIG. 2, the side surfaces as shown in FIG. 3, etc.). Furthermore, various components such as a keyboard etc. may be retractable to slide in and out from a portion of device 10 to be revealed along any of the sides of device 10, etc.


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 FIG. 4, device 10 comprises a processing circuit 46 comprising a processor 40. Processor 40 can comprise one or more microprocessors, microcontrollers, and other analog and/or digital circuit components configured to perform the functions described herein. Processor 40 may comprise one or more memories (e.g., random access memory, read only memory, flash, etc.) configured to store software applications provided during manufacture or subsequent to manufacture by the user or by a distributor of device 10. In one embodiment, processor 40 can comprise a first applications microprocessor configured to run a variety of personal information management applications, such as email, a calendar, contacts, etc., and a second, radio processor on a separate chip or as part of a dual-core chip with the application processor. The radio processor may be configured to operate telephony functionality. Device 10 can be configured for cellular radio telephone communication, such as Code Division Multiple Access (CDMA), Global System for Mobile Communications (GSM), Third Generation (3G) systems such as Wide-Band CDMA (WCDMA), or other cellular radio telephone technologies. Device 10 can further be configured for data communication functionality, for example, via GSM with General Packet Radio Service (GPRS) systems (GSM/GPRS), CDMA/1XRTT systems, Enhanced Data Rates for Global Evolution (EDGE) systems, Evolution Data Only or Evolution Data Optimized (EV-DO), and/or other data communication technologies.


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 FIG. 2) configured to receive audio signals, such as voice signals, from a user or other person in the vicinity of device 10, typically by way of spoken words. Alternatively or in addition, processor 40 can further be configured to provide video conferencing capabilities by displaying on display 18 video from a remote participant to a video conference, by providing a video camera on device 10 for providing images to the remote participant, by providing text messaging, two-way audio streaming in full- and/or half-duplex mode, etc.


Device 10 further comprises a location determining application, shown in FIG. 3 as GPS application 44. GPS application 44 can communicate with and provide the location of device 10 at any given time. Device 10 may employ one or more location determination techniques including, for example, Global Positioning System (GPS) techniques, Cell Global Identity (CGI) techniques, CGI including timing advance (TA) techniques, Enhanced Forward Link Trilateration (EFLT) techniques, Time Difference of Arrival (TDOA) techniques, Angle of Arrival (AOA) techniques, Advanced Forward Link Trilateration (AFTL) techniques, Observed Time Difference of Arrival (OTDOA) techniques, Enhanced Observed Time Difference (EOTD) techniques, Assisted GPS (AGPS) techniques, hybrid techniques (e.g., GPS/CGI, AGPS/CGI, GPS/AFTL or AGPS/AFTL for CDMA networks, GPS/EOTD or AGPS/EOTD for GSM/GPRS networks, GPS/OTDOA or AGPS/OTDOA for UMTS networks), triangulation techniques such as Wi-Fi triangulation techniques, and so forth.


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 FIG. 5, device 10 may be configured to receive and provide content (e.g., generic alerts or notifications, general inquiries, advertisement data, selectable links, icons, etc., and so on) to users. As shown in FIG. 5, device 10 may communicate with servers 50, 52, which may in turn communicate with one or more advertisement sources 54, 56, 58 (e.g., ad sources such as retailers, restaurants, services, etc.). According to an exemplary embodiment, server 52 may be an advertisement service configured to provide advertisement data (e.g., visual advertisements, audible advertisements, e-coupons, etc.) from ad sources 54, 56, 58 to device 10 (either in coordination with, or independent from, servers 48, 50, as discussed in further detail below). Server 50 may be a server associated with an application developer that provides applications to be run on or provided to device 10. Alternatively, server 50 and/or server 52 may be a server associated with a manufacturer of device 10. In some embodiments, sources 54, 56, 58 may provide advertisement data to device 10 without utilizing servers 50, 52 (e.g., such that the advertisement data is received by processor 40 of device 10 from sources 54, 56, 58).


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 FIG. 5, server 52 may communicate with device 10 and with one or more of ad sources 54, 56, 58. Ad sources 54, 56, 58 may provide advertisement data to server 52, which may in turn provide the advertisement data to mobile device 10. In one example, server 52 may provide the advertisement data based at least in part on certain criteria or data (e.g., to act as a filter to provide advertisement data having higher relevance to a user), such as a location of device 10, historical data associated with the usage of device 10 (e.g., web browsing history, location history), user-specific data (data stored in an information management application such as an email application, calendar application, contacts application, and so on), or some other criteria or data. Such criteria or data may be defined by a user and the access to such criteria or data for filtering or otherwise providing advertisement data and other content to device 10 may be limited by a user or other entity. In some embodiments, server 52 may permit various ad sources (e.g., ad sources 54, 56, 58) to register with server 52 in order to have their advertisement data provided to users (e.g., a user of device 10). Based on certain criteria or data, the advertisement data may then be selected for delivery to various devices/users.


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 FIGS. 6-9, content may be provided to device 10 based on context data or other information that may indicate where a user is, what the user is /will /has been doing, and so on. Context data may generally refer to data associated with the context of device 10 or a user thereof, and may include historical data (e.g., data associated with past usage patterns of device 10 such as movement of the device, locations of the device, messaging data, web browsing activity, transactions executed using device 10, etc.), data associated with the current state of device 10 (e.g., mobile-specific inputs such as a current location, direction of travel, speed/acceleration of movement, etc., a current time of day, date, etc.), data associated with an information management application (e.g., an email or other messaging application, a calendar application, a contacts application, and so on), or other data accessible by or otherwise associated with device 10 or a user thereof (e.g., data associated with mobile devices or users of mobile devices that are included in a contact listing, social networking group, listing, category, etc., other mobile-specific inputs, and so on). Context data may in some embodiments generally refer to any type of data or information that may be used to determine a user's context, and may include or indicate usage patterns of device 10 such as on/off patterns (e.g., a pattern of higher of usage (e.g., times of day during which device 10 is typically on or off, etc.), web browsing (e.g., web sites visited, etc.), location/movement history (e.g., modes of travel, locations visited, etc.), and so on.


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 FIG. 6, a method of providing content to a user is illustrated according to an exemplary embodiment. First, context data may be accessed (e.g., retrieved, monitored, stored, etc.) (step 62). Accessing context data may be done by processor 40, servers 50, 52, or a combination thereof. As discussed above, accessing context data may include accessing or monitoring a wide variety of data either stored on device 10 or otherwise accessible by device 10.


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 FIG. 6 is widely applicable to various types of context data. Utilizing context data takes into consideration a user's context in triggering content such as generic notifications, advertisement data, and other content, and may enhance the quality of the content provided to users by increasing the relevancy of the content to the user in accordance with the user's context (e.g., location, current appointments, historical usage patterns, etc.).


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 FIGS. 7-9, display 18 is shown according to various exemplary embodiments as including content provided to a user. Referring to FIG. 7, content such as generic notifications, advertisement data, etc., may include or be provided in the form of a selectable link or identifier 80 (e.g., an icon, selectable text or graphics, etc.). Link 80 may be an icon with a graphical representation intended to convey a message to a user (e.g., such as an icon with a graphical representation of a map that is associated with driving directions, etc., and so on). Icon 80 may be sized such that it is relatively smaller than one or more other icons or identifiers (e.g., icons or other identifiers associated with applications, files, etc. available to device 10) provided on display 18 in order to provide content to users in an unobtrusive manner. Furthermore, icon 80 may be provided as part of a status or notification bar or area 74 on display 18. As shown in FIG. 7, the content or icon and notification or status bar may be provided in any of wide variety of locations on display 18, including a bottom portion (see icon 80 and notification bar 74), a side portion (see notification bars 72, 76), or a top portion (see notification bar 70). In some embodiments, an application developer (e.g., a developer associated with one of servers 50, 52) may be permitted to feed or provide advertisements or other data to a notification bar displayed on device 10, or alternatively, to have advertisements or other content embedded within the area of the display being used by one or more applications. According to various exemplary embodiments, icon 80 may be provided in other areas or portions than those shown in FIG. 7.


Referring to FIG. 8, should a user select icon 80, the user may be provided with additional content 84. Additional content 84 may include a generic notification or message, advertisement data from an ad source (e.g., one or more of ad sources 54, 56, 58, etc.), non-advertisement data, etc. For example, icon 80 may include a representation of a map. Upon clicking on the map, a user may be provided with additional content 84, which may include a generic notification or question such as “Do you need directions?”. Additional content 84 may include a selectable link that enables a user to select additional content 84. Upon a user selecting additional content 84, the user may be provided with yet further content 86. For example, content 86 may include driving directions, a list of popular destinations for a user (which may be selectable to provide even further content), and so on.


As shown in FIG. 7-9, as a user continues to provide inputs (e.g., selecting content provided to device 10), the content provided may continue to increase in size or prominence (e.g., as shown with the increasing relative sizes of icon 80, additional content 84, and content 86). Furthermore, the amount of content provided may increase as a user continues to engage the content provided. Further yet, the specificity of the content may increase as a user becomes more engaged (e.g., from generic to greater levels of specificity).


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 FIG. 8), a user may be permitted to, for example, make dinner reservations (including automatically making an appointment in a calendar application), enter into transactions such as paying for a dinner, etc., exchange contact data with ad sources and other entities, and so on.


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 FIG. 10, a system and method for performing a function based on past uses of a mobile computing device or behaviors of a user of the mobile computing device will be described. One or more components of the system and method may be operable as an algorithm on the mobile computing device, on a server computer in communication with the mobile computing device, or on another computing device in communication with the mobile computing device. At a step 1000, a memory is configured to store use data indicative of a pattern of past uses of the mobile computing device. The memory may store the data temporarily and then back up the data to a remote server, may receive the data from a remote server configured to monitor and store use data, or may store the use data for a longer period. The use data can represent a past behavior of a user of the device.


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.

Claims
  • 1. A mobile computing device, comprising: a memory configured to store use data indicative of a pattern of past uses of the mobile computing device; anda processing circuit configured to determine a present condition and to perform a function based at least in part on the use data and the present condition.
  • 2. The mobile computing device of claim 1, wherein the use data comprises location data based at least in part on past uses of the mobile computing device at a location.
  • 3. The mobile computing device of claim 2, wherein the use data comprises route data indicative of a route traveled by the mobile computing device a plurality of times.
  • 4. The mobile computing device of claim 2, wherein the use data comprises point of interest data indicative of a point of interest visited by the mobile computing device.
  • 5. The mobile computing device of claim 1, wherein the use data comprises data uploaded to or downloaded from a remote server computer.
  • 6. The mobile computing device of claim 1, wherein the use data comprises application data indicative of a plurality of applications downloaded from a remote server computer.
  • 7. The mobile computing device of claim 1, wherein the use data comprises device power data indicative of an approximate time of day the device has been powered up and/or powered down.
  • 8. The mobile computing device of claim 1, wherein the present condition data comprises location data representing a present location of the device.
  • 9. The mobile computing device of claim 8, wherein the present condition data comprises a route currently being traveled or point of interest data indicating a point of interest in the present proximity of the mobile computing device.
  • 10. The mobile computing device of claim 8, wherein the present condition data comprises traffic data indicative of traffic along a route indicated by the past usage data.
  • 11. The mobile computing device of claim 1, wherein the present condition data comprises data indicating that a predetermined time period has ended or that a predetermined distance has been traveled by the mobile computing device.
  • 12. The mobile computing device of claim 1, wherein the function comprises providing a notification to a user of the device.
  • 13. The mobile computing device of claim 12, wherein the notification comprises text displayed on a display coupled to the processing circuit.
  • 14. The mobile computing device of claim 1, wherein the function comprises adding a phone number to a list.
  • 15. A mobile computing device, comprising: a processing circuit configured to access historical data for the mobile computing device, the historical data comprising data associated with a usage pattern of the mobile computing device, the processing circuit configured to access location data for the mobile computing device, the location data indicating a current location of the mobile computing device, the processing circuit configured to provide a notification to the user of the mobile computing device based at least in part on the historical data and the location data.
  • 16. The mobile computing device of claim 15, wherein the processing circuit is configured to determine a predicted location for the mobile computing device based on historical data.
CROSS-REFERENCE TO RELATED APPLICATIONS

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.

Provisional Applications (1)
Number Date Country
61140562 Dec 2008 US