PATENT DOCUMENT

Publication Number: US-8774825-B2
Application Number: US-13507308-A
Country: US
Kind Code: B2

Title: Integration of map services with user applications in a mobile device

Abstract:
A method includes receiving an electronic message at a mobile device; displaying the electronic message in an electronic message user interface, the electronic message including sender information; determining a contact entry of an address book application associated with the sender information of the electronic message, the contact entry including physical address information; determining a geographic location of the mobile device; and displaying the contact entry on an address book application user interface, the displayed contact entry including proximity information indicating a distance from the device to the physical address of the contact entry.

Claims:
What is claimed is: 
     
       1. A method comprising:
 receiving an electronic message at a mobile device; 
 displaying the electronic message in an electronic message user interface, the electronic message including sender information; 
 determining a contact entry of an address book application associated with the sender information of the electronic message, the contact entry including physical address information; 
 determining a geographic location of the mobile device; and 
 displaying the contact entry on an address book application user interface, the displayed contact entry including proximity information indicating a distance from the device to the physical address of the contact entry. 
 
     
     
       2. The method of  claim 1 , wherein the mobile device includes a multi-touch-sensitive display and further comprising:
 receiving input from a user indicating a selection of the sender information, where the input comprises the user touching the sender information on the multi-touch-sensitive display. 
 
     
     
       3. The method of  claim 1 , further comprising:
 determining a route from the geographic location of the mobile device to the physical address of the contact entry; and 
 displaying in a map user interface a graphical representation indicating a route from the geographic location of the mobile device to the physical address of the contact entry. 
 
     
     
       4. The method of  claim 3 , wherein the graphical representation includes a graphical display of the route superimposed on a map. 
     
     
       5. The method of  claim 3 , wherein the map user interface presents textual directions for the route. 
     
     
       6. The method of  claim 3 , wherein the mobile device presents audio directions for the route. 
     
     
       7. The method of  claim 3 , further comprising:
 providing the geographic location of the mobile device and the physical address of the contact entry to a route service with a request for a route therebetween; and 
 receiving route information describing the route in response to the request. 
 
     
     
       8. The method of  claim 1 , further comprising:
 providing the physical address of the contact entry to a map service with a request for a map including the physical address; and 
 receiving the map in response to the request. 
 
     
     
       9. A non-transitory computer-readable medium having instructions stored thereon, which, when executed by a processor, cause the processor to perform operations comprising:
 receiving an electronic message at a mobile device; 
 displaying the electronic message in an electronic message user interface, the electronic message including sender information; 
 determining a contact entry of an address book application associated with the sender information of the electronic message, the contact entry including physical address information; 
 determining a geographic location of the mobile device; and 
 displaying the contact entry on an address book application user interface, the displayed contact entry including proximity information indicating a distance from the device to the physical address of the contact entry. 
 
     
     
       10. The computer-readable medium of  claim 9 , wherein the mobile device includes a multi-touch-sensitive display and further comprising:
 receiving input from a user indicating a selection of the sender information, where the input comprises the user touching the sender information on the multi-touch-sensitive display. 
 
     
     
       11. The computer-readable medium of  claim 9 , further comprising instructions, which, when executed by a processor, cause the processor to perform operations comprising:
 determining a route from the geographic location of the mobile device to the physical address of the contact entry; and 
 displaying in a map user interface a graphical representation indicating a route from the geographic location of the mobile device to the physical address of the contact entry. 
 
     
     
       12. A system comprising:
 a processor; 
 a storage device coupled to the processor and configurable for storing instructions, which, when executed by the processor cause the processor to perform operations comprising: 
 receiving an electronic message at a mobile device; 
 displaying the electronic in an electronic message user interface, the electronic message including sender information; 
 determining a contact entry of an address book application associated with the sender information of the electronic message, the contact entry having physical address information; 
 determining a geographic location of the mobile device; and 
 displaying the contact entry on an address book application user interface, the displayed contact entry including proximity information indicating a distance from the device to the physical address of the contact entry. 
 
     
     
       13. The method of  claim 1 , wherein the proximity information indicates a radial distance from the device to the physical address of the contact entry. 
     
     
       14. The method of  claim 1 , wherein the proximity information indicates a distance associated with the closest travel route from the device and the physical address of the contact entry.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application claims priority to U.S. Provisional Patent Application Ser. No. 60/946,915 filed Jun. 28, 2007, and entitled “Integration of User Applications in a Mobile Device,” the contents of which are incorporated herein by reference. 
    
    
     TECHNICAL FIELD 
     This invention generally relates to mobile devices. 
     BACKGROUND 
     Conventional mobile devices are often dedicated to performing a specific application. For example, a mobile phone provides telephony services; a personal digital assistant (PDA) provides a way to organize address, contacts and notes; a media player plays content; email devices provide email communication, etc. Modern mobile devices can include two or more of these applications. Typically, the two or more applications operate independent of one another, and the device functions as a combination of two or more of the devices described above. 
     SUMMARY 
     This invention relates to mobile devices. In general, in one aspect, the invention features a method including (optionally) receiving at a mobile device an email message from an email address and displaying a representation of the email message on a graphical user interface. An input is received from a user indicating a selection of the email address. Contact information corresponding to a set of contacts is searched for a contact having a contact email address matching the email address. Contact information for the contact includes a geographic location for the contact. A display of a map is provided to the user. The display includes a graphical representation indicating the geographic location for the contact having a contact email address matching the email address. 
     Implementations of the invention can include one or more of the following features. The mobile device can include a multi-touch-sensitive display, and receiving input from a user indicating a selection of the email address can be the user touching the email address on the multi-touch-sensitive display. A current location of the mobile device can be determined, and route information can be provided to the user corresponding to a route from the current location to the geographic location of the contact. The route information can include a graphical display of the route superimposed on the map; textual, directions for the route; and/or audio directions for the route. Providing route information can include providing the geographic location of the contact and the current location of the mobile device to a route service with a request for a route therebetween, and receiving the route information in response to the request. Providing a display of a map can include providing the geographic location of the contact to a map service, with a request for a map including the geographic location and receiving the map in response to the request. 
     In general, in another aspect, the invention features a method including activating a first user application on a mobile device, such that a user can make a request to a directory service for a telephone number. In response to the request, a short message including the telephone number is received. A geographic location is determined associated with the telephone number. A display is provided on a graphical user interface of a map including a graphical representation indicating the geographic location. 
     Implementations can include one or more of the following features. In one example, the first user application is a telephony application and the user request is a telephone call. In another example, the first user application is a short messaging service application and the user request is a short message. The short message received in response to the request can include the geographic location and determining a geographic location can include obtaining the geographic location from the short message. In another example, determining a geographic location associated with the telephone number includes sending a request to a service for providing a geographic location associated with a telephone number, and receiving the geographic location in response to the request. 
     A current location of the mobile device can be determined, and route information can be provided to the user corresponding to a route from the current location to the geographic location associated with the telephone number. The route information can include a graphical display of the route superimposed on the map; textual directions for the route and/or audio directions for the route. Providing route information can include providing the geographic location of the contact and the current location of the mobile device to a route service with a request for a route therebetween, and receiving the route information in response to the request. Providing a display of a map can include providing the geographic location of the contact to a map service with a request for a map including the geographic location, and receiving the map in response to the request. 
     In general, in another aspect, the invention features a system including an email application operable to receive an email message from an email address and a data structure including contact information for a set of contacts. The system further includes a processor configurable for receiving user input selecting the email address and, in response to the user input, searching the data structure for a contact having a contact email address matching the email address. The contact has an associated geographic location. The system further includes a map application and a display. The map application is operable to provide a display of a map. The map includes a graphical representation of the geographic location associated with the contact. The display is operable to display the map. 
     Implementations of the invention can include the following feature. The system can further include a positioning system operable to obtain a current location of a mobile device, and an engine operable to provide a graphical display on the map of a route from the current location to the geographic location associated with the contact. 
     In general, in another aspect, the invention features a system including a telephony application operable to receive user input calling a telephone directory and requesting a telephone number, and a short messaging service application operable to receive a short message including the telephone number in response to the request for a telephone number. The system further includes a communication system configurable for sending the telephone number to a navigation service, and for receiving from the navigation service a geographic location associated with the telephone number. The system further includes a map application and a display. The map application is operable to provide a display of a map, the map including a graphical representation of the geographic location associated with the telephone number. The display is operable to display the map. 
     Implementations of the invention can include the following additional feature. The system can further include a positioning system operable to obtain a current location of a mobile device, and an engine operable to provide a graphical display on the map of a route from the current location to the geographic location associated with the telephone number. 
     In general, in another aspect, the invention features a computer-readable medium having instructions stored thereon, which, when executed by a processor, cause the processor to perform operations including receiving at a mobile device an email message from an email address and displaying a representation of the email message on a graphical user interface. The operations further include receiving input from a user indicating a selection of the email address and searching contact information corresponding to a set of contacts for a contact having a contact email address matching the email address. The contact information for the contact includes a geographic location for the contact. The operations further include providing a display of a map to the user. The display includes a graphical representation indicating the geographic location for the contact having a contact email address matching the email address. 
     Implementations of the invention can include one or more of the following features. The mobile device can include a multi-touch-sensitive display and receiving input from a user indicating a selection of the email address can include the user touching the email address on the multi-touch-sensitive display. The operations can further include determining a current location of the mobile device, and providing route information to the user corresponding to a route from the current location to the geographic location of the contact. 
     In general, in another aspect, the invention features a system including a processor and a storage device. The storage device is coupled to the processor and configurable for storing instructions, which, when executed by the processor, cause the processor to perform operations including receiving at a mobile device an email message from an email address and displaying a representation of the email message on a graphical user interface. The operations further include receiving input from a user indicating a selection of the email address and searching contact information corresponding to a set of contacts for a contact having a contact email address matching the email address. The contact information for the contact includes a geographic location for the contact. The operations further include providing a display of a map to the user. The display includes a graphical representation indicating the geographic location for the contact having a contact email address matching the email address. 
     In general, in another aspect, the invention features a computer readable medium having instructions stored thereon, which, when executed by a processor, cause the processor to perform operations including activating a first user application on a mobile device, such that a user can make a request to a directory service for a telephone number. The operations further include, in response to the request, receiving a short message including the telephone number and determining a geographic location associated with the telephone number. The operations further include providing a display on a graphical user interface of a map including a graphical representation indicating the geographic location. 
     Implementations of the invention can include one or more of the following features. In one implementation, the first user application is a telephony application and the user request is by way of a telephone call. In another implementation, the first user application is a short messaging service application and the user request is by way of a short message. The operations can further include determining a current location of the mobile device and providing route information to the user corresponding to a route from the current location to the geographic location associated with the telephone number. 
     In general, in another aspect, the invention features a system including a processor and a storage device coupled to the processor and configurable for storing instructions, which, when executed by the processor, cause the processor to perform operations including activating a first user application on a mobile device, such that a user can make a request to a directory service for a telephone number. The operations further include, in response to the request, receiving a short message including the telephone number and determining a geographic location associated with the telephone number. The operations further include providing a display on a graphical user interface of a map including a graphical representation indicating the geographic location. 
     In general, in another aspect, the invention features a mobile device including a communication system, an input/output (I/O) system, a processor and a map application. The communication system is configurable for receiving a communication from an individual or entity, the communication including information associated with the individual or entity. The I/O system is coupled to the communication system and configurable for displaying a representation of the information on the mobile device, and for receiving input specifying at least a portion of the information. The processor is coupled to the I/O system and configurable for retrieving from a data structure of the mobile device a geographic location associated with the individual or entity. The communication system sends the geographic information to a navigation service, which service responds by sending map information including coordinates for the geographic location. The map application, which when executed by the processor, uses the map information to generate a map for display by the mobile device. The map includes a graphical representation of the coordinates for the geographic location. 
     In general, in another aspect, the invention features a mobile device including a communication system configurable for sending a communication from a user of the mobile device, the communication including a request for a telephone number, and for receiving a short message including the telephone number. The mobile device further includes an input/output (I/O) system coupled to the communication system and configurable for receiving input specifying the request. The mobile device further includes a processor coupled to the I/O system and configurable for determining a geographic location associated with the telephone number, wherein the communication system sends the geographic information to a navigation service, which service responds by sending map information including coordinates for the geographic location. A map application is included, which when executed by the processor, uses the map information to generate a map for display by the mobile device. The map includes a graphical representation of the coordinates for the geographic location. 
     Implementations of the invention can include one or more of the following features. The communication including a request for a telephone number can be a telephone call to a telephone directory service. In another example, the communication including a request for a telephone number can be a short message to a telephone directory service. 
     In general, in another aspect, the invention features, a method including receiving a request from a mobile device for map information and providing the map information to the mobile device. The request includes a geographic location that was derived by the mobile device from an associated email address and associated contact information included in an address book residing on the mobile device. The map information can be used by the mobile device to display a map including a graphical representation of the geographic location. 
     Implementations of the invention can include the following feature. The method can further include receiving a request for route information from the mobile device and providing the route information to the mobile device. The route is from a current location of the mobile device to the geographic location and the request includes the current location of the mobile device. The route information can be used by the mobile device to display a map including a graphical representation of the route. 
     In general, in another aspect, the invention features a system including a processor and a storage device coupled to the processor and configurable for storing instructions, which, when executed by the processor, cause the processor to perform operations including receiving a request from a mobile device for map information and providing the map information to the mobile device. The request includes a geographic location that was derived by the mobile device from an associated email address and associated contact information included in an address book residing on the mobile device. The map information can be used by the mobile device to display a map including a graphical representation of the geographic location. 
     Implementations of the invention can include the following feature. The instructions, when executed by the processor, further cause the processor to perform operations including receiving a request for route information from the mobile device for a route from a current location of the mobile device to the geographic location. The request includes the current location of the mobile device. The operations further include providing the route information to the mobile device, wherein the route information can be used by the mobile device to display a map including a graphical representation of the route. 
     In general, in another aspect, the invention features a method include receiving a request from a mobile device for map information and providing the map information to the mobile device. The request includes a geographic location that was derived by the mobile device from a short message including a telephone number received by the mobile device from a telephone directory service. The map information can be used by the mobile device to display a map including a graphical representation of the geographic location. 
     Implementations of the invention can include the following additional feature. A request for route information can be received from the mobile device for a route from a current location of the mobile device to the geographic location, the request including the current location of the mobile device. The route information can be provided to the mobile device, wherein the route information can be used by the mobile device to display a map including a graphical representation of the route. 
     In general, in another aspect, the invention features, a system including a processor and a storage device coupled to the processor and configurable for storing instructions, which, when executed by the processor, cause the processor to perform operations including receiving a request from a mobile device for map information and providing the map information to the mobile device. The request includes a geographic location that was derived by the mobile device from a short message including a telephone number received by the mobile device from a telephone directory service. The map information can be used by the mobile device to display a map including a graphical representation of the geographic location. 
     Implementations of the invention can include the following feature. The instructions, when executed by the processor, can further cause the processor to perform operations including receiving a request for route information from the mobile device and providing the route information to the mobile device. The route is from a current location of the mobile device to the geographic location. The request includes the current location of the mobile device. The route information can be used by the mobile device to display a map including a graphical representation of the route. 
     Implementations of the invention can realize one or more of the following advantages. Various different applications provided by a mobile device can be integrated to provide an enhanced user experience. A user can seamlessly use or obtain information provided by multiple applications by interaction with integrated features. The user can efficiently be provided with meaningful information, for example, map and routing information, with reduced effort from the user&#39;s perspective. 
     The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims. 
    
    
     
       DESCRIPTION OF DRAWINGS 
         FIG. 1  is a block diagram of a mobile device. 
         FIG. 2  is a block diagram of an example network operating environment for the mobile device of  FIG. 1 . 
         FIG. 3  is a block diagram of an example implementation of the mobile device of  FIG. 1 . 
         FIG. 4  is an example graphical user interface displaying an email message. 
         FIG. 5  is an example graphical user interface displaying contact information. 
         FIG. 6  is an example graphical user interface displaying an email message. 
         FIG. 7  is a flowchart showing an example process for providing an integrated email/addressbook/map feature. 
         FIG. 8  is an example graphical user interface displaying a map. 
         FIG. 9  is a block diagram representing an example engine. 
         FIG. 10  is an example graphical user interface displaying a map and a route superimposed thereon. 
         FIG. 11  is a flowchart showing an example process for providing an integrated telephony/short messaging service/map feature. 
         FIG. 12  is an example graphical user interface displaying a map and a route and contact information superimposed thereon. 
     
    
    
     Like reference symbols in the various drawings indicate like elements. 
     DETAILED DESCRIPTION 
       FIG. 1  is a block diagram of an example mobile device  100 . The mobile device  100  can be, for example, a handheld computer, a personal digital assistant, a cellular telephone, a network appliance, a camera, a smart phone, an enhanced general packet radio service (EGPRS) mobile phone, a network base station, a media player, a navigation device, an email device, a game console, or other electronic device or a combination of any two or more of these data processing devices or other data processing devices. 
     Mobile Device Overview 
     In some implementations, the mobile device  100  includes a touch-sensitive display  102 . The touch-sensitive display  102  can implement liquid crystal display (LCD) technology, light emitting polymer display (LPD) technology, or some other display technology. The touch-sensitive display  102  can be sensitive to haptic and/or tactile contact with a user. 
     In some implementations, the touch-sensitive display  102  can comprise a multi-touch-sensitive display  102 . A multi-touch-sensitive display  102  can, for example, process multiple simultaneous touch points, including processing data related to the pressure, degree and/or position of each touch point. Such processing facilitates gestures and interactions with multiple fingers, chording, and other interactions. Other touch-sensitive display technologies can also be used, e.g., a display in which a point of contact is made using a stylus or other pointing device. An example of multi-touch sensitive display technology is described in U.S. Pat. Nos. 6,323,846; 6,570,557; 6,677,932; and U.S. Patent Publication No. 2002/0015024A1, each of which are incorporated by reference herein in its entirety. 
     In some implementations, the mobile device  100  can display one or more graphical user interfaces on the touch-sensitive display  102  for providing the user access to various system objects and for conveying information to the user to facilitate an intuitive user experience. In some implementations, the graphical user interface can include one or more display objects  104 ,  106 . In the example shown, the display objects  104 ,  106 , are graphic representations of system objects. Some examples of system objects include device functions, applications, windows, files, alerts, events, or other identifiable system objects. 
     Example Mobile Device Functionality 
     In some implementations, the mobile device  100  can implement multiple device functionalities, such as a telephony device, as indicated by a phone object  110 ; an e-mail device, as indicated by the e-mail object  112 ; a network data communication device, as indicated by the Web object  114 ; and a media processing device, as indicated by the media player object  116 . In some implementations, particular display objects  104 , e.g., the phone object  110 , the e-mail object  112 , the Web object  114 , and the media player object  116 , can be displayed in a menu bar  118 . In some implementations, each of the device functionalities can be accessed from a top-level graphical user interface, such as the graphical user interface illustrated in  FIG. 1 . Touching one of the objects  110 ,  112 ,  114  or  116  can, for example, invoke the corresponding functionality. 
     In some implementations, the mobile device  100  can implement network distribution functionality. For example, the functionality can enable the user to take the mobile device  100  and its associated network while traveling. In particular, the mobile device  100  can extend Internet access (e.g., via Wi-Fi) to other wireless devices in the vicinity. For example, mobile device  100  can be configured as a base station for one or more devices. As such, mobile device  100  can grant or deny network access to other wireless devices. 
     In some implementations, upon invocation of particular device functionality, the graphical user interface of the mobile device  100  changes, or is augmented or replaced with another user interface or user interface elements, to facilitate user access to particular functions associated with the corresponding device functionality. For example, in response to a user touching the phone object  110 , the graphical user interface of the touch-sensitive display  102  may present display objects related to various phone functions; likewise, touching of the email object  112  may cause the graphical user interface to present display objects related to various email functions; touching the Web object  114  may cause the graphical user interface to present display objects related to various Web-surfing functions; and touching the media player object  116  may cause the graphical user interface to present display objects related to various media processing functions. 
     In some implementations, the top-level graphical user interface environment or state of  FIG. 1  can be restored by pressing a button  120  located near the bottom of the mobile device  1   00 . In some implementations, each corresponding device functionality may have corresponding “home” display objects displayed on the touch-sensitive display  102 , and the graphical user interface environment of  FIG. 1  can be restored by touching the “home” display object. 
     In some implementations, the top-level graphical user interface can include additional display objects  106 , such as a short messaging service (SMS) object  130 , a calendar object  132 , a photos object  134 , a camera object  136 , a calculator object  138 , a stocks object  140 , a weather object  142 , a maps object  144 , a notes object  146 , a clock object  148 , an address book object  150 , and a settings object  152 . Touching the SMS display object  130  can, for example, invoke an SMS messaging environment and supporting functionality; likewise, each selection of a display object  132 ,  134 ,  136 ,  138 ,  140 ,  142 ,  144 ,  146 ,  148 ,  150  and  152  can invoke a corresponding object environment and functionality. 
     Additional and/or different display objects can also be displayed in the graphical user interface of  FIG. 1 . In some implementations, the display objects  106  can be configured by a user, e.g., a user may specify which display objects  106  are displayed, and/or may download additional applications or other software that provides other functionalities and corresponding display objects. 
     In some implementations, the mobile device  100  can include one or more input/output (I/O) devices and/or sensor devices. For example, a speaker  160  and a microphone  162  can be included to facilitate voice-enabled functionalities, such as phone and voice mail functions. In some implementations, a loud speaker  164  can be included to facilitate hands-free voice functionalities, such as speaker phone functions. An audio jack  166  can also be included for use of headphones and/or a microphone. 
     In some implementations, a proximity sensor  168  can be included to facilitate the detection of the user positioning the mobile device  100  proximate to the user&#39;s ear and, in response, to disengage the touch-sensitive display  102  to prevent accidental function invocations. In some implementations, the touch-sensitive display  102  can be turned off to conserve additional power when the mobile device  100  is proximate to the user&#39;s ear. 
     Other sensors can also be used. For example, in some implementations, an ambient light sensor  170  can be utilized to facilitate adjusting the brightness of the touch-sensitive display  102 . In some implementations, an accelerometer  172  can be utilized to detect movement of the mobile device  100 , as indicated by the directional arrow  174 . Accordingly, display objects and/or media can be presented according to a detected orientation, e.g., portrait or landscape. In some implementations, the mobile device  100  may include circuitry and sensors for supporting a location determining capability, such as that provided by the global positioning system (GPS). In some implementations, a positioning system (e.g., a GPS receiver) can be integrated into the mobile device  100  through an interface (e.g., port device  190 ) to provide access to location-based services. 
     The mobile device  100  can also include a camera lens and sensor  180 . In some implementations, the camera lens and sensor  180  can be located on the back surface of the mobile device  100 . The camera can capture still images and/or video. 
     The mobile device  100  can also include one or more wireless communication subsystems, such as an 802.11b/g communication device  186 , and/or a Bluetooth™ communication device  188 . Other communication protocols can also be supported, including other 802.x communication protocols (e.g., WiMax, Wi-Fi, 3G), code division multiple access (CDMA), global system for mobile communications (GSM), Enhanced Data GSM Environment (EDGE), etc. 
     In some implementations, a port device  190 , e.g., a Universal Serial Bus (USB) port, or a docking port, or some other wired port connection, can be included. The port device  190  can, for example, be utilized to establish a wired connection to other computing devices, such as other communication devices  100 , a personal computer, a printer, or other processing devices capable of receiving and/or transmitting data. 
     In some implementations, a port device  190 , e.g., a USB port, or a docking port, or some other wired port connection, can be included. The port device  190  can, for example, be utilized to establish a wired connection to other computing devices, such as other communication devices  100 , network access devices, a personal computer, a printer, or other processing devices capable of receiving and/or transmitting data. In some implementations, the port device  190  allows the mobile device  100  to synchronize with a host device using one or more protocols, such as, for example, the TCP/IP over USB protocol described in co-pending U.S. Provisional Patent Application No. 60/945,904, filed Jun. 22, 2007, for “Multiplex Data Stream Protocol”, Attorney Docket No. 004860.P5490, which patent application is incorporated by reference herein in its entirety. 
     Network Operating Environment 
       FIG. 2  is a block diagram of an example network operating environment  200  for the mobile device  100  of  FIG. 1 . The mobile device  100  of  FIG. 1  can, for example, communicate over one or more wired and/or wireless networks  210  in data communication. For example, a wireless network  212 , e.g., a cellular network, can communicate with a wide area network (WAN)  214 , such as the Internet, by use of a gateway  216 . Likewise, an access point  218 , such as an 802.11g wireless access point, can provide communication access to the wide area network  214 . In some implementations, both voice and data communications can be established over the wireless network  212  and the access point  218 . For example, the mobile device  100   a  can place and receive phone calls (e.g., using VoIP protocols), send and receive e-mail messages (e.g., using POP3 protocol), and retrieve electronic documents and/or streams, such as web pages, photographs, and videos, over the wireless network  212 , gateway  216 , and wide area network  214  (e.g., using TCP/IP or UDP protocols). Likewise, the mobile device  100   b  can place and receive phone calls, send and receive e-mail messages, and retrieve electronic documents over the access point  218  and the wide area network  214 . In some implementations, the mobile device  100  can be physically connected to the access point  218  using one or more cables and the access point  218  can be a personal computer. In this configuration, the mobile device  100  can be referred to as a “tethered” device. 
     The mobile devices  100   a  and  100   b  can also establish communications by other means. For example, the wireless device  100   a  can communicate with other wireless devices, e.g., other wireless devices  100 , cell phones, etc., over the wireless network  212 . Likewise, the mobile devices  100   a  and  100   b  can establish peer-to-peer communications  220 , e.g., a personal area network, by use of one or more communication subsystems, such as the Bluetooth™ communication device  188  shown in  FIG. 1 . Other communication protocols and topologies can also be implemented. 
     The mobile device  100  can, for example, communicate with one or more services  230 ,  240 ,  250  and  260  and/or one or more content publishers  270  over the one or more wired and/or wireless networks  210 . For example, a navigation service  230  can provide navigation information, e.g., map information, location information, route information, and other information, to the mobile device  100 . In the example shown, a user of the mobile device  100   b  has invoked a map functionality, e.g., by pressing the maps object  144  on the top-level graphical user interface shown in  FIG. 1 , and has requested and received a map for the location “1 Infinite Loop, Cupertino, Calif.” 
     A messaging service  240  can, for example, provide e-mail and/or other messaging services. A media service  250  can, for example, provide access to media files, such as song files, movie files, video clips, and other media data. One or more other services  260  can also be utilized by the mobile device  100  (e.g., syncing services, software update services, activation services). 
     The mobile device  100  can also access other data and content over the one or more wired and/or wireless networks  210 . For example, content publishers  270 , such as news sites, RSS feeds, web sites, blogs, social networking sites, developer networks, etc. can be accessed by the mobile device  100 . Such access can be provided by invocation of web browsing function or application (e.g., a browser) in response to a user touching the Web object  114 . 
     Example Mobile Device Architecture 
       FIG. 3  is a block diagram  300  of an example implementation of the mobile device  100  of  FIG. 1 . The mobile device  100  can include a memory interface  302  one or more data processors, image processors and/or central processing units  304 , and a peripherals interface  306 . The memory interface  302 , the one or more processors  304  and/or the peripherals interface  306  can be separate components or can be integrated in one or more integrated circuits. The various components in the mobile device  100  can be coupled by one or more communication buses or signal lines. 
     Sensors, devices and subsystems can be coupled to the peripherals interface  306  to facilitate multiple functionalities. For example, a motion sensor  310 , a light sensor  312 , and a proximity sensor  314  can be coupled to the peripherals interface  306  to facilitate the orientation, lighting and proximity functions described with respect to  FIG. 1 . Other sensors  316  can also be connected to the peripherals interface  306 , such as a positioning system (e.g., a GPS receiver), a temperature sensor, a biometric sensor, or other sensing device, to facilitate related functionalities. 
     A camera subsystem  320  and an optical sensor  322 , e.g., a charged coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) optical sensor, can be utilized to facilitate camera functions, such as recording photographs and video clips. 
     Communication functions can be facilitated through one or more wireless communication subsystems  324 , which can include radio frequency receivers and transmitters and/or optical (e.g., infrared) receivers and transmitters. The specific design and implementation of the communication subsystem  324  can depend on the communication network(s) over which the mobile device  100  is intended to operate. For example, a mobile device  100  may include communication subsystems  324  designed to operate over a GSM network, a GPRS network, an EDGE network, a Wi-Fi or WiMax network, and a Bluetooth™ network. 
     An audio subsystem  326  can be coupled to a speaker  328  and a microphone  330  to facilitate voice-enabled functions, such as voice recognition, voice replication, digital recording, and telephony functions. 
     The I/O subsystem  340  can include a touch screen controller  342  and/or other input controller(s)  344 . The touch-screen controller  342  can be coupled to a touch screen  346 . The touch screen  346  and touch screen controller  342  can, for example, detect contact and movement or break thereof using any of a plurality of touch sensitivity technologies, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touch screen  346 . 
     The other input controller(s)  344  can be coupled to other input/control devices  348 , such as one or more buttons, rocker switches, thumb-wheel, infrared port, USB port, and/or a pointer device such as a stylus. The one or more buttons (not shown) can include an up/down button for volume control of the speaker  328  and/or the microphone  330 . 
     In one implementation, a pressing of the button for a first duration may disengage a lock of the touch screen  346 ; and a pressing of the button for a second duration that is longer than the first duration may turn power to the mobile device  100  on or off. The user may be able to customize a functionality of one or more of the buttons. The touch screen  346  can, for example, also be used to implement virtual or soft buttons and/or a keyboard. 
     In some implementations, the mobile device  100  can present recorded audio and/or video files, such as MP3, AAC, and MPEG files. In some implementations, the mobile device  100  can include the functionality of an MP3 player, such as an iPod™. The mobile device  100  may, therefore, include a 36-pin connector that is compatible with the iPod. Other input/output and control devices can also be used. 
     The memory interface  302  can be coupled to memory  350 . The memory  350  can include high-speed random access memory and/or non-volatile memory, such as one or more magnetic disk storage devices, one or more optical storage devices, and/or flash memory (e.g., NAND, NOR). The memory  350  can store an operating system  352 , such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks. The operating system  352  may include instructions for handling basic system services and for performing hardware dependent tasks. In some implementations, the operating system  352  can be a kernel (e.g., UNIX kernel). 
     The memory  350  may also store communication instructions  354  to facilitate communicating with one or more additional devices, one or more computers and/or one or more servers. The memory  350  may include graphical user interface instructions  356  to facilitate graphic user interface processing; sensor processing instructions  358  to facilitate sensor-related processing and functions; phone instructions  360  to facilitate phone-related processes and functions; electronic messaging instructions  362  to facilitate electronic-messaging related processes and functions; web browsing instructions  364  to facilitate web browsing-related processes and functions; media processing instructions  366  to facilitate media processing-related processes and functions; GPS/Navigation instructions  368  to facilitate GPS and navigation-related processes and instructions; camera instructions  370  to facilitate camera-related processes and functions; and/or other software instructions  372  or data to facilitate other related processes and functions (e.g., security instructions, activation record). 
     Each of the above identified instructions and applications can correspond to a set of instructions for performing one or more functions described above. These instructions need not be implemented as separate software programs, procedures or modules. The memory  350  can include additional instructions or fewer instructions. Furthermore, various functions of the mobile device  100  may be implemented in hardware and/or in software, including in one or more signal processing and/or application specific integrated circuits. 
     Integrated User Applications 
     A mobile device, e.g. mobile device  100  shown in  FIG. 1 , can provide multiple user applications, as discussed above. Two or more of the user applications can be integrated, to enhance the user&#39;s experience and provide improved functionality. Some examples of integrated user application features are described in further detail below. 
     Integrated Address Book/Email Feature 
     In one implementation, the mobile device  100  provides an address book application. The user of the mobile device can select the address book display object  150  to invoke the address book application. The address book includes information corresponding to a set of the user&#39;s contacts. For example, the contact information can include a person or entity&#39;s name, address, phone number, email address, and/or other information related to the person or entity. The address book can reside on the mobile device  100 , or be stored externally but accessible by the mobile device  100 . An integrated address book feature can be provided, wherein the address book application is integrated with one or more other applications provided by the mobile device. 
     In one implementation, the mobile device  100  also includes an email application. The email application can be accessed by a user interaction with a user interface. For example, referring again to  FIG. 1 , a user can select the email display object  112  to activate the email application. The email application and the address book application can be integrated, as described further below. 
     Referring to  FIG. 4 , an example graphical user interface is shown displaying an example email message  400 . The email message  400  was received at the mobile device  100  and is displayed using the email application. The email message  400  includes a “to” field  402  indicating the email address to whom the email message  400  was sent, i. e., an email account of the user of the mobile device  100 . The email message further includes a “from” field  404  indicating the email address of the sender of the email message  400 . Optionally, an email message can include a “cc” field  406  indicating email addresses of others copied on the email message. The email message  400  includes a “subject” field  407 , where the sender of the email message can optionally provide an indication of the subject matter of the email message. The email message  400  includes a text field  408 , including the substance of the email message. 
     In this implementation, the user can interact with the email message  400  to select an email address in either the “from” or “cc” fields  404 ,  406 . By way of example, if the mobile device  100  includes a touch-sensitive display, such as the touch-sensitive display  106  in  FIG. 1 , the user can select the email address by touching the email address on the display  106 . 
     Upon selecting an email address, the address book is automatically searched to determine whether a contact is included in the address book with an email address matching the selected email address. In this example, the email message was sent from Rick.Edward@mac.com. The address book is searched for a contact having the same email address in the email address field of the contact information for the contact. Referring now to  FIG. 5 , an example page  500  from the address book is shown including contact information  502  for a contact identified as “Rick Edwards”. The email address  504  for Rick Edwards matches the email address in the “from” field  404  of the email message  400  shown in  FIG. 4 . 
     In one implementation, in response to the user selecting the email address in the “from” field  404  of the email message  400 , if a matching contact is found, the display of the email message is replaced by a display of the page  500  from the address book including the corresponding contact information. In another implementation, both the email message  400  and the page  500  from the address book are displayed simultaneously using a split screen approach. In yet another implementation, at least some of the contact information is displayed superimposed on the email message, for example, within an information balloon  600  as shown in  FIG. 6 . Other techniques for conveying the contact information to the user are possible, and different configurations of graphical user interfaces can be used. The ones described herein are examples for illustrative purposes. 
     In one implementation, the user can use a first mode of selecting the email address to receive a first result and a second mode of selecting the email address to receive a second result. For example, in the case of a mobile device  100  with a touch-sensitive display  106 , a first mode of selecting the email address can be the user briefly touching the email address. The first result displayed in response to the selection can be a display of the information balloon  600  superimposed on the email message  400 , as shown in  FIG. 6 . A second mode of selecting the email address can be the user touching the email address for a sustained period of time (e.g., a few seconds). The second result displayed in response to the selection can be a display of the page  500  from the address book including the entire set of contact information for the contact corresponding to the email address, as shown in  FIG. 5 . 
     In another implementation, where a user can interact with the email message  400  using a mouse or other such pointer device to control a position of a cursor, a first mode of selecting the email address can be to hover the cursor over the email address being selected. A second mode of selecting the email address can be to click on the email address. Other manners of interacting with the email message  400  to select the email address are possible, and the ones described are examples. 
     Integrated Address Book/Email/Map Feature 
     In one implementation, upon a user selecting an email address in the email message  400 , if a matching contact is located in the address book and the contact information for the contact includes an address for a geographic location, then a map is displayed to the user showing the geographic location. Referring to  FIG. 7 , a process  700  is shown for displaying a geographic location on a map to a user in response to selecting an email address within an email message. In step  702 , an email message is received from an email address by an email application operating within a mobile device. By way of example, the email message  400  is received from the email address for Rick Edwards,  404 . A user input is received selecting the email address (Step  704 ). Again, by way of example, the user can select the “from” field to select Rick Edwards&#39; email address. It should be understood that steps  702  and  704  are optional and the process can commence at step  706 . 
     A geographic location associated with the email address is retrieved from an address book application operated by the mobile device (Step  706 ). Referring to the above example, the geographic location associated with the email address for Rick Edwards as shown on a page 500 from the address book is 123 11 Ave SE, Anywhere, USA. An “address” field in the contact information  502  for the contact corresponding to the email address can be searched to retrieve the address. A map is provided on a user interface for display to the user, where the map shows the geographic location (Step  708 ). For example, referring to  FIG. 8 , the map  800  can be displayed with a graphical representation, i.e., the star  802 , at the geographic location corresponding to 123 11 Ave SE, Anywhere, USA. 
     In one implementation, a map application is provided by the mobile device  100 , either internally or by way of interfacing with an external map service. By way of example, the map service can be Google Maps API provided by Google, Inc. of Mountain View, Calif., although other map services can be used. A request for a map that is approximately centered about the geographic location can be sent to the map application and the map received from the map application. The map is displayed on a user interface, for example, the touch-sensitive user interface  106  shown on the mobile device  100  in  FIG. 1 . 
     Integrated Address Book/Email/Map/Route Feature 
     In one implementation, the mobile device  100  is location aware (i.e., can determine its current location). Referring again to  FIG. 3 , in this implementation, the mobile device  100  includes a positioning system  318 . In various implementations, the positioning system  318  can be provided by a separate device coupled to the mobile device  100 , or can be provided internal to the mobile device. In some implementations, the positioning system  318  can employ positioning technology including a GPS, a cellular grid, television signals, Wi-Fi base stations, URIs or any other technology for determining the geographic location of a device. In other implementations, the positioning system  318  can be provided by an accelerometer and a compass using dead reckoning techniques. In such implementations, the user can occasionally reset the positioning system by marking the mobile device&#39;s presence at a known location (e.g., a landmark or intersection). In other implementations, the positioning system  318  can be provided by using wireless signal strength and one or more locations of known wireless signal sources to provide the current location. Wireless signal sources can include access points and/or cellular towers. In still other implementations, the user can enter a set of position coordinates (e.g., latitude, longitude) for the mobile device. For example, the position coordinates can be typed into the phone (e.g., using a virtual keyboard) or selected by touching a point on a map. Position coordinates can also be acquired from another device (e.g., a car navigation system) by syncing or linking with the other device. Other techniques to determine a current location of the mobile device  100  can be used and other configurations of the positioning system  318  are possible. 
     Referring again to  FIG. 7 , in an optional step  710 , the mobile device can determine its current location. The current location can be provided to an engine (e.g., embodied in routing instructions  374  included within the memory  350 , see  FIG. 3 ). The engine can be used to provide navigation guidance to a user of the mobile device  100 . In such implementations, the engine can provide route information to the user from a current location of the mobile device  100  to the geographic location corresponding to a selected email address. 
     Referring again to  FIG. 5 , in an implementation where the mobile device is location aware, a proximity to an address included in the contact information. One example of a display of proximity information is shown at  506 . The distance can represent a radial proximity, proximity by a closest-travel-route, or another measurement of proximity. 
       FIG. 9  is a block diagram illustrating an example operation of the engine  900  (e.g., embodied in routing instructions  374 ). In some implementations, the engine  900  includes a routing engine  902  and a presentation engine  904 . In one implementation, the routing engine  902  can derive a route between two locations, i.e., the current location and a contact location (i.e., a geographic location corresponding to a contact in the address book), using existing routing technology. By way of illustration, Google Maps API is one example of existing routing technology, available from Google, Inc. (Mt. View Calif.). The current location is determined using the positioning system  318 , as described above. The contact location is determined from the contact information included in the address book corresponding to the selected email address. 
     The routing engine  902  provides a route from the current location to the contact location to the presentation engine  904 . The presentation engine  904  can communicate with the map application used to implement the integrated address book feature. The presentation engine  904  can use a map provided by the map application  906  to overlay the route information. Referring to  FIG. 10 , the map  800  of  FIG. 8  is shown with a route  1004  superimposed thereon. A graphical display object  1002  indicates the current location of the mobile device  100  and the graphical display object  802  indicates the contact location. In one implementation, as described above, the user can select a route display object  804  superimposed on the map  800  (or otherwise displayed to the user) to activate the route application. 
     In one implementation, the route information can include either in addition to the route displayed on the map, or instead of the route displayed on the map, an audio file including audio directions from the current location of the mobile device  100  to the contact location. The audio file can be delivered, for example, to a voicemail application provided by the mobile device. In one implementation, the audio file includes chapter marks such that the user can play back the voicemail while traveling the route to the contact location, and pause at the chapter marks while progressing along the route from one instruction to the next. In another implementation, the audio file is included in a podcast delivered to the mobile device  100  over the Internet. The audio file included in the podcast may also include chapter marks to facilitate playback of the route information while progressing along the route. In an implementation where the audio file is provided in conjunction with the route displayed on a map, the mobile device&#39;s current location as the mobile device progresses along the route can be tracked on the map in sync with the directions being provided by audio to the user. 
     Integrated Telephony/Short Messaging Service/Map/Route Application 
     In another implementation, a telephony application, short messaging service application, map application and optionally, a route application, can be integrated into an integrated user feature. Referring to  FIG. 11 , an example process  1100  wherein a user employs the integrated user feature is shown. In a first step  1102 , the mobile device receives user input selecting and using the telephony application to call a telephone directory service. For example, the user can telephone a “411” or similar type of information number. The user can select to have the telephone number and/or address information provided by the telephone directory service delivered to the mobile device by way of a short message. By way of illustrative example, certain mobile service providers enable text messaging delivery of telephone directory information to their mobile telephone customers. The short message is received by a short messaging service application provided by the mobile device, wherein the short message includes a telephone number and optionally a corresponding address (Step  1104 ). 
     If the short message includes an address, then the address can be sent to the map application with a request for a map showing the address. If the short message only includes a telephone number, a corresponding address can be determined based on the telephone number (Optional Step  1106 ), for example, using a reverse look-up service. By way of illustration, a reverse lookup service is provided by www.reversetelephonedirectory.com, wherein a telephone number can be provided to obtain a corresponding address. This service, or a similar service, can be employed to receive the telephone number provided by the mobile device and to send as a response the corresponding address. 
     In either case, the address is provided to the map application (Step  1108 ). The map application provides a map showing the address (Step  1110 ). For example, the map can be the map  800  sown in  FIG. 8 , where the star  802  represents the address. 
     In one implementation, the current location of the mobile device can be determined (Optional Step  1112 ). The current location and the address can be provided to the route application (Step  1114 ). The route application can provide route information including displaying the route superimposed on the map (Optional Step  1116 ). For example, the route  1004  can be superimposed on the map  800 , as shown in  FIG. 12 . As described above, the route information can include an audio file delivered by a podcast, or to a voicemail application. 
     Accordingly, by a user calling a telephone directory service, the user can receive in response a map generated by the map application including a visual representation of a location corresponding to the telephone number requested from the telephone directory service and optionally a route from the current location of the mobile device (and therefore the user) to the location. An information balloon, or other such visual representation, can be provided in conjunction with the map (e.g., superimposed thereon) providing the telephone number, for example, information balloon  1202  shown in  FIG. 12 . The telephony application can be employed by the user to automatically call the telephone number. For example, the user can select the telephone number  1204  displayed within the information balloon  1202  to initiate a call to the number. 
     In another implementation, a user of the mobile device can send a short message (i.e., text message) to a telephone directory service and receive a short message in response including the requested information, e.g., a telephone number and/or address. For example, AT&amp;T Wireless provides a service called TXT-411, wherein mobile customers of AT&amp;T Wireless can use short messaging to communication with a telephone directory service, both to request and receive information. In this implementation, once the short message is received including the telephone number and address, steps  1104  onwards in process  1100  can be performed to provide the user a map and optionally route information. That is, step  1102  can be eliminated in this implementation and replaced by a step wherein user input is received providing a short message to send to a directory service, the short message including a request for a telephone number and/or address. 
     An engine, as the term is used throughout this application, can be a piece of hardware that encapsulates a function, can be firmware or can be a software application. An engine can perform one or more functions, and one piece of hardware, firmware or software can perform the functions of more than one of the engines described herein. Similarly, more than one piece of hardware, firmware and/or software can be used to perform the function of a single engine described herein. 
     The foregoing descriptions of specific embodiments of the present invention are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Rather, it should be appreciated that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other embodiments are within the scope of the following claims.

Metadata:
Filing Date: 20080606
Publication Date: 20140708
Grant Date: 20140708
Priority Date: 20070628
Inventors: FORSTALL SCOTT
CHRISTIE GREGORY N.
BORCHERS ROBERT E.
TIENE KEVIN
Assignee: APPLE INC
CPC Classifications: [{"code": "H04M1/27467", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04M1/27453", "inventive": false, "first": false, "tree": "[]"}, {"code": "H04W4/021", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04M2201/38", "inventive": false, "first": false, "tree": "[]"}, {"code": "G01C21/20", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04M3/42348", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06Q10/107", "inventive": true, "first": false, "tree": "[]"}, {"code": "G01C21/3667", "inventive": true, "first": false, "tree": "[]"}, {"code": "G01C21/362", "inventive": true, "first": true, "tree": "[]"}, {"code": "H04M2242/30", "inventive": false, "first": false, "tree": "[]"}, {"code": "G01C21/362", "inventive": true, "first": true, "tree": "[]"}, {"code": "G01C21/3682", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04M7/006", "inventive": false, "first": false, "tree": "[]"}, {"code": "G01C21/3438", "inventive": true, "first": false, "tree": "[]"}, {"code": "G01C21/3632", "inventive": true, "first": false, "tree": "[]"}, {"code": "G01C21/3629", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04M2250/10", "inventive": false, "first": false, "tree": "[]"}, {"code": "H04W4/024", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04W4/021", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04L61/4594", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04L61/4555", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04M1/72457", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04M1/72436", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04M1/72403", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04M1/72436", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04M1/72457", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04W4/02", "inventive": true, "first": false, "tree": "[]"}, {"code": "G01C21/3682", "inventive": true, "first": false, "tree": "[]"}, {"code": "G01C21/3438", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04M1/27467", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04M2242/30", "inventive": false, "first": false, "tree": "[]"}, {"code": "H04M2201/38", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06Q10/107", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04M2250/10", "inventive": false, "first": false, "tree": "[]"}, {"code": "H04M7/006", "inventive": false, "first": false, "tree": "[]"}, {"code": "H04M3/42348", "inventive": true, "first": false, "tree": "[]"}, {"code": "G01C21/20", "inventive": true, "first": false, "tree": "[]"}]
Family ID: 40161226