Patent Publication Number: US-2023145972-A1

Title: Intelligent restriction of device operations

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. patent application Ser. No. 11/862,054, filed Sep. 26, 2007, the content of which is incorporated herein by reference in its entirety for all purposes. 
    
    
     TECHNICAL FIELD 
     The subject matter of this patent application is generally related to user interfaces. 
     BACKGROUND 
     Navigations systems are rapidly becoming standard features in many automobiles and other vehicles. These navigations systems often rely on satellites or other technology to determine position coordinates of the vehicle. The position coordinates can be used with a map database to generate various map services, such as driving directions, landmarks, etc. 
     The use of a navigation system in a moving vehicle raises safety concerns, particularly if the driver of the vehicle is attempting to operate the navigation system while operating the vehicle. Many navigation systems use knobs and pushbuttons for entering destination and other information for use in determining driving directions. The accurate use of such input devices may force the driver to take her eyes off the road, resulting in a potentially hazardous condition. 
     Conventional solutions to this safety problem detect when the navigation system is being operated while the vehicle is moving and display a warning message notifying the user that operating the navigation system while the vehicle is moving is dangerous. Some conventional solutions may request that the user acknowledge the warning by pressing a pushbutton, for example. Once acknowledged, the navigation system typically becomes operable to the driver. 
     While conventional solutions are useful for providing warnings, many drivers simply ignore the warnings or acknowledge the warnings and continue operating the navigation system while driving the vehicle. Some users may even discover a way to defeat the solution. 
     Also, there are few safety concerns with a passenger in the vehicle operating the navigation system while the vehicle is moving. For passengers, the warnings may be unnecessary or irritating, and locking down the operation of the navigation system would prevent the passenger from operating the navigation system regardless of whether it was safe to do so. 
     SUMMARY 
     A navigation system includes a user interface for detecting touch input. The system uses touch input to determine if a driver or passenger is operating the navigation system. If the system determines that the driver is operating the system, then an action is initiated (e.g., the user interface is locked down, a warning is provided), The navigation system allows a passenger in the vehicle to operate the navigation system while the vehicle is in motion. In an aspect, additional or other sensors (e.g., seat sensor, seat belt sensor, infrared sensor, biometric sensor) can be used to detect whether a driver or passenger is operating the navigation system while the vehicle is in motion. 
     Other implementations are disclosed, including implementations directed to methods, systems and computer-readable mediums. 
    
    
     
       DESCRIPTION OF THE DRAWINGS 
         FIG.  1    illustrates an interface for a vehicle navigation system. 
         FIG.  2    is a flow diagram of an example process for detecting driver/passenger operation of the navigation system of  FIG.  1   . 
         FIG.  3    is a block diagram of an example system architecture for the navigation system of  FIG.  1   . 
     
    
    
     DETAILED DESCRIPTION 
     System Overview 
       FIG.  1    illustrates an interface  100  (e.g., a touch-sensitive display) for a vehicle navigation system  102 . The navigation system  102  can, for example, be implemented as a hardwired device, a removable device, a wireless device, a handheld. computer, a personal digital assistant, a cellular telephone, or some combination of these data processing devices or other data processing devices. The system  102  can generally include satellite navigation functionality designed to acquire position data to locate a user on a road using previously stored or newly acquired map databases. In particular, the navigation system  102  includes circuitry and sensors for supporting a location determining capability, such as that provided by the global positioning system (GPS). In some implementations, the navigation system  102  can implement multiple device functionalities in addition to navigation, such as phone, email, and media processing functionalities, for example. 
     As shown, the vehicle navigation system  102  includes a touch-sensitive display  100 . The touch-sensitive display  100  can implement a liquid crystal display (LCD) device, a light emitting polymer display (LPD) technology, or some other display technology. The touch-sensitive display  100  can be sensitive to haptic and/or tactile contact with a user. 
     In some implementations, contact between the touch-sensitive display  100  and the user corresponds to one or more digits of the user. The touch-sensitive display  100  can, for example, comprise a multi-touch-sensitive display  100 . The multi-touch-sensitive display  100  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 can be utilized to facilitate identifying specific gestures and interactions with multiple fingers, chording, and other interactions. Other touch-sensitive display technologies can also be used, for example, a display in which a point of contact corresponds to a stylus device. 
     In some implementations, the navigation system  102  can include a graphical user interface displayed on the touch-sensitive display  100  that provides the user access to various system objects and conveys information to the user to facilitate an intuitive user experience. In some implementations of the graphical user interface, the touch-sensitive display  100  can, for example, include one or more display objects. Each of the display objects can be a graphic representation of a system object. Example system objects include device functions, applications, windows, files, alerts, map links, events, or other identifiable system objects. 
     As shown in  FIG.  1   , the navigation system  102  is provided in a dashboard between a driver  104  and a passenger  106 . In some implementations, the driver position  104  and the passenger position  106  can be switched (e.g., non-US vehicles and driving conditions). The driver  104  and passenger  106  can provide a multi-touch input into the multi-touch-sensitive display  100 . 
     The navigation system  102  can include one or more input/output devices and/or sensor devices. For example, a speaker and a microphone can be included to facilitate voice-enabled functionalities, such as navigation, stereo, and phone functions. In some implementations, a loudspeaker can be included to facilitate hands-free voice command functionalities, such as voice activated entry for requesting driving directions. 
     In some implementations, a seat sensor can be included to engage safety features for enabling or disabling the navigation device while the vehicle is in motion. For example, while the vehicle is in motion, the seat sensor can be used to facilitate the detection of a particular payload in a one or more of the vehicle seats. In response to the detection, the navigation device  102  can engage the touch-sensitive display  100  to lock, unlock, become operable, or become inoperable, to one or more users based on the sensor trigger. As an example, the system  102  can be preconfigured to allow use of the navigation system functionality by a passenger, but not a driver. In some implementations, the configuration can be based on the seat sensor having a particular weight. For example, if weight is not detected in the passenger seat, the navigation system may be configured to disallow use of functionality related to entering new destinations or any operation that may take the driver&#39;s attention away from the road for too long while the vehicle is in motion. 
     In some implementations, a seat belt sensor can be included in navigation system  102  to determine whether a passenger is present in the vehicle. For example, if the passenger side seat belt is fastened, the navigation system  102  may allow use to the passenger entry of input. The allowed usage may be further scrutinized based on detection of the angle of the input provided on the touch-sensitive display  100  (e.g., angle of the user&#39;s finger at the touch point relative to a predefined reference frame). The angle detection can provide the navigation device  102  with the functionality to determine whether a driver or passenger is operating the navigation system. As such, the combination of any or all of a seat sensor, seat belt sensor, angle detection, or other sensors can determine which user provided input to system  102 . 
     In some implementations, an infrared sensor can be included in navigation system  102  to detect body heat from a passenger position or driver position. The infrared sensor can measure infrared light radiating from one or more objects in a field of view. In one example, a passive infrared (FIR) based motion detector can be used to detect apparent motion. In particular, apparent motion is detected when an infrared source with one temperature, such as a human, passes in front of an infrared source with another temperature, such as a vehicle seat. The difference in the temperature can be used to determine whether a passenger is in the vehicle and operable to input data into device  102 , for example. In another example, the infrared sensor can be used to determine which portion of the touch-sensitive display is infiltrated by a digit or hand. Thus, the navigation system.  102  can detect whether the driver or passenger provided input. 
     In some implementations, a proximity sensor can be included in navigation system  102  to facilitate the detection of the user providing input during use and, in response, to disengage the touch-sensitive display  100  to prevent accidental function invocations while the device displays driving directions, for example. In some implementations, the touch-sensitive display  100  can be turned off to conserve additional power when the navigation device  102  is not in use. 
     In some implementations, a biometric sensor can be included in navigation system  102  to determine intrinsic physical traits of a user. For example, the biometric sensor may be a fingerprint sensor, voice recognition sensor, iris recognition, or other sensor used to recognize a user identity. The recognizing factors can be stored in navigation device  102  where the factors can be used to configure usability information for users of system  102 . For example, a fingerprint can be stored for a vehicle owner which can be configured to enable use of navigation system  102  at all times without limitation. At some point, the vehicle owner may store biometric information about other drivers in the family and place restrictions on the users. The restrictions can include operating navigation system  102  functions related to entering new destinations, for example, when the restricted user is a passenger, but not a driver. As such, the restricted user may input data into the navigation system  102  in the passenger seat, but may not input extensive data into the system  102  when in the driver&#39;s seat. Thus, the restrictions may protect the safety of the driver and the passenger by restricting any operation that may avert the driver&#39;s attention away from the road. 
     In some implementations, the navigation device  102  may include one or more optional optical sensors, such as complementary metal-oxide semiconductor (CMOS) or charged coupled device (CCD) image sensors, for use in imaging applications. Other sensors can also be used. 
     In some implementations, a digital camera can be included on navigation device  102  to capture snapshots of maps, points of interest, directions, and the like. In one example, if the navigation device  102  is removable, the digital camera can perform standard camera functions, such as recording photographs and video clips. 
     Other operations on system  102  can also be allowed or disallowed based on sensing technology. For example, navigation system  102  can lock out functions such as text messaging, mobile device, browsing, and such, based on biometrics, vehicle movement, proximity, and the like. 
     The navigation system  102  can also include one or more wireless communication subsystems, such as an 802.11b/g communication device  186 , and/or a Bluetooth™ communication device. Other communication protocols can also be supported, including other 802.x communication protocols, code division multiple access (CDMA), global system for mobile communications (GSM), Enhanced Data GSM Environment (EDGE), etc. 
     In operation, the navigation system  102  can detect touch input based on an angle of a user&#39;s finger or fingers, a biometric or other sensing capability. The touch input detection can be used to determine whether a driver or passenger can gain access to navigation system  102 . In particular, the input detection can be configured to allow or disallow some or all functionality with the navigation system  102 . For example, based on the angle of touch input, a user may be granted partial use of system  102 , such as canceling a route or receiving directions to home. Other functions, such as using the mobile phone, text messaging, and other navigation functionality may be locked out until the user is no longer driving and/or moving the vehicle. 
       FIG.  2    is a flow diagram of an example process  200  for detecting driver or passenger operation of the navigation system of  FIG.  1   . While the detection process  200  described below includes a number of operations that appear to occur in a specific order, it should be apparent that the process  200  can include more or fewer operations, which can be executed serially or in parallel (e.g., using parallel processors or a multi-threading environment). 
     The detection process  200  includes obtaining input for a navigation system configured for operating in a vehicle ( 202 ). In one example, the input can be obtained by means of touch input through a touch-sensitive display. For example, the input can include a finger gesture on the touch-sensitive display  100  (e.g., a touch input from the driver  104  or passenger  106 ). Other inputs can include sensor input (e.g., input from a seat sensor, a seatbelt sensor, an infrared sensor, a proximity sensor, an optical sensor, etc.), biometric input (e.g., input from a fingerprint sensor, hand geometry sensor, a voice recognition sensor, etc.), user motion input (e.g., a motion detector sensor), digital camera input (e.g., analyzed digital photo), retrieved data (e.g., previously stored data), remotely received data (e.g., data received from a remote device over a communication channel), or other input decipherable by navigation system  102 , for example. In some implementations, input data may be retrieved from user files stored in memory within the navigation system  102 . Any number of user files can be stored in navigation system  102 . The user files can include data about particular drivers or users of system  102 . For example, the user file data can include driving records (e.g., age, driving rules, usage rights on the navigation system, etc.), biometric data (e.g., fingerprints, voice, etc.), mobile phone identifier data e.g., Bluetooth™ identification of a mobile device), or other recognition data used to determine which user is providing the input to system  102 . 
     In some implementations, input can be received in navigation system  102  from a remote device over a communication channel. For example, the driver  104  may possess a mobile phone on her person which can be detected by the navigation system  102  when the driver  104  is proximate to the system. The detection may use Bluetooth™ communication from the navigation system  102  to the driver&#39;s mobile phone. In another example, the detection can occur from the navigation system  102  to the driver&#39;s Bluetooth™ ear piece in the event that the navigation system  102  also hosts the user&#39;s mobile phone functionality e.g., vehicle phone, iPhone™, etc.). 
     The navigation system  102  determines if the vehicle is moving at the time the input is obtained ( 204 ). For example, the navigation system  102  can detect whether a vehicle is in gear or in park to determine if the vehicle is in motion. As another example, the navigation system  102  can be communicatively coupled (wired or wirelessly) to particular sensors in the vehicle, such as tire sensors, engine sensors, steering sensors, or other feedback sensor to determine whether the vehicle is in motion. In general, the coupled communication can enable the navigation system to gain knowledge regarding the state of the vehicle. In some implementations, the navigation system can perform a diagnostic test using the GPS technology, for example, to determine if and/or how fast the vehicle is moving from one point in time to another. 
     If the navigation system.  102  detects the vehicle is not in motion, the navigation device  102  can be operated by any or all users, if the users are authorized to operate the navigation device  102 . For example, one or more users may be locked from using the navigation system whether the vehicle is in motion or not. In particular, a code may be requested by the system  102  to deter unauthorized use of the GPS navigation or other features in system  102 , for example. 
     In the event the navigation system  102  determines the vehicle is currently in motion, the navigation system  102  uses the input to automatically determine if the input is provided by a driver of the vehicle ( 206 ). The automatic determination can include detecting one or more fingers or one or more angles of the fingers based on the multi-touch input. For example, the multi-touch screen  100  can determine a position and pressure or degree of each touch point. The angle detection can provide the navigation device  102  with the functionality to determine whether a driver or passenger is operating the navigation system. For example, the navigation device  102  can determine if the driver  104  is operating the navigation system based on the results of the detection (e.g., the particular angle used to engage the multi touch screen  100 ). For vehicles with the driver seated on the right side (e.g., automobiles operating in the United Kingdom), the navigation system  102  can be configured to account for the seating arrangement. Alternatively, the navigation system  102  can provide an interface for the user to enter in a particular seating arrangement. 
     Techniques for detecting finger angles from multi-touch input are described in, for example, U.S. Pat. No. 6,323,846 (Westerman et al.), 6,570,557 (Westerman et al.), and/or 6,677,932 (Westerman), and/or U.S. Patent Publication 2002/0015024A1, each of which is hereby incorporated by reference in its entirety. 
     In some implementations, it may be difficult to determine the angle of a touch point, such as when multiple gestures and interactions with multiple fingers or hands (similar to chording) provide input on device  102 . As such, the navigation system  102  can be configured to detect a fingerprint, voice or other biometric sensor feedback to determine the user providing the input. 
     In the event that the input is provided by a driver of the vehicle, the navigation system  102  initiates an action associated with the navigation system or the vehicle ( 208 ). For example, system  102  can lock down the touch-sensitive display  100  upon determining the driver provided input to the system  102 . The lock down may be implemented for the safety of the driver and passengers. For example, if the driver is entering input into device  102 , the driver may not be able to concentrate on driving. Thus, the system  102  can automatically lock out some or all navigation entry functionality upon determining the input was provided by the driver of the vehicle. Alternatively, if the input is provided by a passenger (e.g., determined by the particular angle used to engage the multi touch screen  100 ), the system may not lock out navigation entry functions. Advantageously, passengers in the vehicle can operate the device  102  while the vehicle is in motion. In some implementations, an override can be preconfigured for one or more drivers. For example, a more experienced driver may configure the system  102  to allow one or more drivers to interact with the navigation system  102  while the vehicle is in motion. Similarly, the configuration can preclude inexperienced drivers from providing input to the navigation system while the vehicle is in motion. The configuration can include identification of the driver using biometric sensors (e.g., fingerprint, digital camera recognition, hand geometry, voice recognition, etc.), mobile phone identifier (e.g., Bluetooth™, service provider, etc.). In some implementations, the navigation system  102  can use biometric input to determine whether a driver can legally operate the navigation system  102  and or vehicle. For example, upon receiving a fingerprint input, the system  102  can search the department of motor vehicles for validation on the user&#39;s driving record or license and adjust the available navigation system functionality accordingly. 
     In some implementations, upon determining the input is provided by the driver, the system  102  can present a warning message to the user. The warning message can be presented on the touch-sensitive display  100 . For example, a message can be presented indicating the system  102  can not be operated by the driver while the vehicle is in motion, but can be operated upon stopping the vehicle, placing the vehicle in park, or placing the vehicle in some other non-functioning state. In yet another example, the system  102  can lock down the touch-sensitive display  100  and present one or more warning messages to the user. 
     Portable Electronic Device Architecture 
       FIG.  3    is a block diagram of an example system architecture for the navigation system  300  of  FIG.  1   . A navigation system  300  generally includes one or more computer-readable mediums  302 , a processing system  304 , an Input/Output (I/O) subsystem  306 , radio frequency (RF) circuitry  308 , and audio circuitry  310 . These components may be coupled by one or more communication buses or signal lines  303 , The device  300  can be any vehicle or personal navigation device, including but not limited to a hardwired device, a handheld computer, a tablet computer, a mobile phone, a media player, personal digital assistant (PDA) and the like, including a combination of two or more of these items. 
     It should be apparent that the architecture shown in  FIG.  3    is only one example of an architecture for the navigation system  300 , and that the device  300  could have more or fewer components than shown, or a different configuration of components. The various components shown in  FIG.  3    can be implemented in hardware, software, or a combination of both hardware and software, including one or more signal processing and/or application specific integrated circuits. The RF circuitry  308  is used to send and receive information over a wireless link or network to one or more other devices and includes well-known circuitry for performing this function, including but not limited to an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, memory, etc. In some embodiments, the RF circuitry  308  is capable of establishing and maintaining communications with other devices using one or more communications protocols, including but not limited to time division multiple access (TDMA), code division multiple access (CDMA), global system for mobile communications (GSM), Enhanced Data GSM Environment (EDGE), wideband code division multiple access (W-CDMA), Wi-Fi (such as IEEE 802,11a, IEEE 802.11b, IEEE 802.11g and/or IEEE 802.11n), Bluetooth, Wi-MAX, voice over Internet Protocol (VoIP), a protocol for email, instant messaging, and/or a short message service (SMS), or any other suitable communication protocol, including communication protocols not yet developed as of the filing date of this document. 
     The RF circuitry  308  and the audio circuitry  310  are coupled to the processing system  304  via the peripherals interface  316 . The interface  316  includes various known components for establishing and maintaining communication between peripherals and the processing system  304 . The audio circuitry  310  is coupled to an audio speaker  350  and a microphone  352  and includes known circuitry for processing voice signals received from interface  316  to enable a user to communicate in real-time with other users. In some embodiments, the audio circuitry  310  includes a headphone jack (not shown). Voice and data information received by the RF circuitry  308  and the audio circuitry  310  (e.g., in speech recognition or voice command applications) is sent to one or more processors  318  via the peripherals interface  316 . The one or more processors  318  are configurable to process various data formats for one or more applications programs  330  stored on the medium  302 . 
     Note that the term “data” includes but is not limited to text, graphics, Web pages, JAVA applets, widgets, emails, instant messages, voice, digital images or video, widgets, MP3s, etc., which can be used by one or more applications programs  330  stored on the medium  302  (e.g., Web browser, email, etc.). 
     The peripherals interface  316  couples the input and output peripherals of the device to the processor  318  and the computer-readable medium  302 . The one or more processors  318  communicate with the one or more computer-readable mediums  302  via a controller  320 . The computer-readable medium  302  can be any device or medium that can store code and/or data for use by the one or more processors  318 . The medium  302  can include a memory hierarchy, including but not limited to cache, main memory and secondary memory. The memory hierarchy can be implemented using any combination of RAM (e.g., SRAM, DRAM, DDRAM), ROM, FLASH, magnetic and/or optical storage devices, such as disk drives, magnetic tape, CDs (compact disks) and DVDs (digital video discs). The medium  302  may also include a transmission medium for carrying information-bearing signals indicative of computer instructions or data (with or without a carrier wave upon which the signals are modulated). For example, the transmission medium may include a communications network, including but not Limited to the Internet (also referred to as the World Wide Web), intranet(s), Local Area Networks (LANs), Wide Local Area Networks (WLANs), Storage Area Networks (SANs), Metropolitan Area Networks (MAN) and the like. 
     The one or more processors  318  run various software components stored in the medium  302  to perform various functions for the device  300 . In some embodiments, the software components include an operating system  322 , a user interface module (or set of instructions)  324 , a contact motion module (or set of instructions)  326 , a navigation module (or set of instructions)  328 , and one or more applications (or set of instructions)  330 . 
     The operating system  322  (e.g., Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks) includes various procedures, sets of instructions, software components and/or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.) and facilitates communication between various hardware and software components. 
     The user interface module  324  facilitates and manages user-received input. In some implementations, the user interface module  324  may be designed to receive a user input and translate the input into a particular response. The response can be presented in display (e.g., display  100 ) as a sidebar layout, a web page layout, or any other layout that allows for the presentation of user-customizable content. 
     The navigation module  328  includes various software components for determining a location. In some implementations, the navigation module  328  can access services over a network. For example, the navigation module  328  can access a navigation service to retrieve map information, location information, route information, points of interest, and other information. 
     In some implementations, the navigation module  328  includes one or more map databases for accessing a particular location. The map database is generally a vector map of some area of interest. As such, the navigation module  328  can access the map database to obtain street names or numbers and house numbers based on geographic coordinates of the desired street address. In some implementations, the navigation module  328  can also access points of interest based on geographic coordinates. Points of interest can include speed cameras, fuel stations, public parking, and information about a previous visit to a location. 
     The one or more applications  330  can include any applications installed on the device  300 , including without limitation, a browser, address book, contact list, email, instant messaging, word processing, keyboard emulation, widgets, JAVA-enabled applications, encryption, digital rights management, voice recognition, voice replication, location determination capability (such as that provided by the global positioning system (GPS)), a music player (which plays back recorded music stored in one or more files, such as MP3 or AAC files), etc. 
     The contact/motion module  326  includes various software components for performing various tasks associated with the touch-sensitive display system  312 , as previously described with respect to the embodiments in  FIGS.  1 - 3   . 
     The I/O subsystem  306  is coupled to the touch-sensitive display system  312  and a vehicle interface  314  for controlling or performing various functions, such as power control, speaker volume control, ring tone loudness, keyboard input, scrolling, hold, menu, screen lock, clearing and ending communications and the like. The touch-sensitive display  312  communicates with the processing system  304  via the touch-sensitive screen controller  332 , which includes various components for processing user input (e.g., scanning hardware). The one or more other input controllers  334  receives/sends electrical signals from/to the vehicle interface  314 . The vehicle interface  314  may include physical buttons (e.g., push buttons, rocker buttons, etc.), dials, slider switches, sticks, and so forth. 
     The touch-sensitive display  312  displays visual output to the user in a GUI. The visual output may include text, graphics, video, and any combination thereof. Some or all of the visual output may correspond to user-interface objects. The touch-sensitive display  312  may also accept input from the user based on haptic and/or tactile contact. The touch-sensitive display  312  forms a touch-sensitive surface that accepts user input. The touch-sensitive display  312  and the touch screen controller  332  (along with any associated modules and/or sets of instructions in the medium  302 ) detects contact (and any movement or release of the contact) on the touch-sensitive display  312  and converts the detected contact into interaction with user-interface objects, such as one or more soft keys, that are displayed on the touch screen when the contact occurs. In an exemplary embodiment, a point of contact between the touch-sensitive display  312  and the user corresponds to one or more digits of the user. The touch-sensitive display  312  may use LCD (liquid crystal display) technology, or LPD (light emitting polymer display) technology, although other display technologies may be used in other embodiments. The touch-sensitive display  312  and touch screen controller  332  may detect contact and any movement or release 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-sensitive display  312 . 
     The touch-sensitive display may be analogous to the multi-touch-sensitive tablets described in the following U.S. Pat. No. 6,323,846 (Westerman et al.), 6,570,557 (Westerman et al.), and/or 6,677,932 (Westerman), and/or U.S. Patent Publication 2002/0015024A1, each of which is hereby incorporated by reference. However, the touch screen  126  displays visual output from the portable device, whereas touch-sensitive tablets do not provide visual output. The touch-sensitive display  312  may have a resolution in excess of 100 dpi. In an exemplary embodiment, the touch-sensitive display  312  may have a resolution of approximately 168 dpi. The user may make contact with the touch-sensitive display  312  using any suitable object or appendage, such as a stylus, pen, finger, and so forth. 
     In some embodiments, in addition to the touch screen, the device  300  may include a touchpad (not shown) for activating or deactivating particular functions. In some embodiments, the touchpad is a touch-sensitive area of the device that, unlike the touch screen, does not display visual output. The touchpad may be a touch-sensitive surface that is separate from the touch-sensitive display  312  or an extension of the touch-sensitive surface formed by the touch-sensitive display  312 . 
     The device  300  also includes a power system  344  for powering the various hardware components. The power system  344  can include a power management system, one or more power sources (e.g., battery, alternating current (AC)), a recharging system, a power failure detection circuit, a power converter or inverter, a power status indicator (e.g., a light emitting diode (LED)) and any other components typically associated with the generation, management and distribution of power in portable devices. 
     In some embodiments, the peripherals interface  316 , the one or more processors  318 , and the memory controller  320  may be implemented on a single chip, such as the processing system  304 . In some other embodiments, they may be implemented on separate chips. 
     The described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program can be written in any form of programming language (e.g., Objective-C, Java), including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. 
     Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors or cores, of any kind of computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer will also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits). 
     To provide for interaction with a user, the features can be implemented on a computer having a display device such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer. 
     The features can be implemented in a computer system that includes a back-end component, such as a data server, or that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them. The components of the system can be connected by any form or medium of digital data communication such as a communication network, Examples of communication networks include, e.g., a LAN, a WAN, and the computers and networks forming the Internet. 
     The computer system can include clients and servers. A client and server are generally remote from each other and typically interact through a network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. 
     A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. For example, elements of one or more implementations may be combined, deleted, modified, or supplemented to form further implementations. As yet another example, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.