U.S. patent application number 12/402386 was filed with the patent office on 2010-06-24 for system and method for providing content to a mobile device.
This patent application is currently assigned to Palm, Inc.. Invention is credited to Edward C. Ballot, Edward T. Colligan, Bernard P. Cousineau, David D. Daetz, Matias G. Duarte, Thomas Fong, Janell Paulson, David Vadasz.
Application Number | 20100161720 12/402386 |
Document ID | / |
Family ID | 42266853 |
Filed Date | 2010-06-24 |
United States Patent
Application |
20100161720 |
Kind Code |
A1 |
Colligan; Edward T. ; et
al. |
June 24, 2010 |
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.
Inventors: |
Colligan; Edward T.; (San
Jose, CA) ; Vadasz; David; (Los Altos, CA) ;
Cousineau; Bernard P.; (Burlingame, CA) ; Daetz;
David D.; (Cupertino, CA) ; Duarte; Matias G.;
(Sunnyvale, CA) ; Paulson; Janell; (Carlsbad,
CA) ; Ballot; Edward C.; (Mountain View, CA) ;
Fong; Thomas; (San Diego, CA) |
Correspondence
Address: |
FOLEY & LARDNER LLP
777 EAST WISCONSIN AVENUE
MILWAUKEE
WI
53202-5306
US
|
Assignee: |
Palm, Inc.
|
Family ID: |
42266853 |
Appl. No.: |
12/402386 |
Filed: |
March 11, 2009 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61140562 |
Dec 23, 2008 |
|
|
|
Current U.S.
Class: |
709/203 ;
711/154; 711/E12.002 |
Current CPC
Class: |
H04W 4/029 20180201;
H04W 4/02 20130101; H04M 3/42357 20130101; G06Q 30/02 20130101;
H04M 3/4878 20130101; H04M 2203/2072 20130101; H04M 2242/15
20130101; H04M 3/42059 20130101; H04W 4/21 20180201; H04W 64/00
20130101; G06Q 30/0261 20130101; H04M 2242/30 20130101; G06Q
30/0267 20130101 |
Class at
Publication: |
709/203 ;
711/154; 711/E12.002 |
International
Class: |
G06F 15/16 20060101
G06F015/16; G06F 12/00 20060101 G06F012/00; G06F 12/02 20060101
G06F012/02 |
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; and a 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.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] 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.
BACKGROUND
[0002] 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
[0003] FIG. 1 is a front view of a mobile device according to an
exemplary embodiment.
[0004] FIG. 2 is a back view of the mobile device of FIG. 1
according to an exemplary embodiment.
[0005] FIG. 3 is a side view of the mobile device of FIG. 1
according to an exemplary embodiment.
[0006] FIG. 4 is a block diagram of the mobile device of FIG. 1
according to an exemplary embodiment.
[0007] FIG. 5 is a block diagram of a system for providing content
to a mobile device according to an exemplary embodiment.
[0008] FIG. 6 is a flow chart of a method of providing content to a
mobile device according to an exemplary embodiment.
[0009] FIG. 7 is a front view of a display of a mobile device
according to an exemplary embodiment.
[0010] FIG. 8 is a front view of a display of a mobile device
according to an exemplary embodiment.
[0011] FIG. 9 is a front view of a display of a mobile device
according to an exemplary embodiment.
[0012] 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
[0013] 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.
[0014] 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.
[0015] 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.
[0016] 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.
[0017] 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.
[0018] 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.
[0019] 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.
[0020] 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.
[0021] 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.
[0022] 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).
[0023] 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.
[0024] 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).
[0025] 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.).
[0026] 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.
[0027] 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.
[0028] 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.
[0029] 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.
[0030] 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.).
[0031] 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.
[0032] 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.).
[0033] 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.
[0034] 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.
[0035] 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.
[0036] 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).
[0037] 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.).
[0038] 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.
[0039] 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.
[0040] 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.
[0041] 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.
[0042] 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.
[0043] 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).
[0044] 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.
[0045] 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.
[0046] 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.
[0047] 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.
[0048] 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.
[0049] 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.
[0050] 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.
[0051] 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.
[0052] 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.
[0053] 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.
[0054] 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.
[0055] 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.
[0056] 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).
[0057] 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.
[0058] 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.
[0059] 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.
[0060] 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.
[0061] 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.
[0062] 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.
[0063] 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.).
[0064] 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.).
[0065] 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?").
[0066] 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.
[0067] 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.).
[0068] 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.
[0069] 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.
[0070] 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.
[0071] 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.
[0072] 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.
[0073] 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.
[0074] 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.
[0075] 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.
[0076] 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.
[0077] 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.
[0078] 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.
* * * * *