PATENT DOCUMENT

Publication Number: US-9255814-B2
Application Number: US-55241309-A
Country: US
Kind Code: B2

Title: Systems and methods for transitioning between pedometer modes

Abstract:
Systems and methods are provided that allow steps to be counted in multiple pedometer modes. For example, a pedometer application on an electronic device can count steps in an ambient mode of operation and a session mode of operation. By maintaining separate counters for each pedometer mode and continuously monitoring the desired mode of operation, the pedometer application can accurately count the number of steps during a certain time period. In response to detecting a change in the desired mode, the pedometer application can seamlessly switch to the corresponding mode counter. In some embodiments, the pedometer application can display graphical representations of historical step information for one or more pedometer modes.

Claims:
What is claimed is: 
     
       1. An electronic device for seamlessly switching between multiple pedometer modes, the electronic device comprising:
 a display; 
 a sensor component configured to detect steps of a current user of the electronic device; and 
 control circuitry configured to:
 count steps detected by the sensor component in a first pedometer mode of the electronic device by incrementing a first counter but not a second counter for each step counted when the electronic device is in the first pedometer mode; 
 when the electronic device is in the first pedometer mode, detect a first mode switch event to start a second pedometer mode; 
 switch to counting steps detected by the sensor component in the second pedometer mode of the electronic device in response to detecting the first mode switch event by incrementing the second counter for each step counted when the electronic device is in the second pedometer mode, wherein the second counter is separate from the first counter; 
 when the electronic device is in the second pedometer mode, detect a second mode switch event to end the second pedometer mode; 
 switch back to counting steps detected by the sensor component in the first pedometer mode of the electronic device in response to detecting the second mode switch event; and 
 simultaneously provide the value of the first counter and the value of the second counter on the display, wherein at least one of the following is true:
 the control circuitry is configured to detect the first mode switch event in response to detecting a particular increase in the frequency of steps counted; 
 the control circuitry is configured to detect the first mode switch event in response to detecting a new current user of the electronic device; 
 the control circuitry is configured to detect the second mode switch event in response to determining that the electronic device is operating below a predefined power threshold; and 
 the control circuitry is configured to detect the second mode switch event when a period of time has elapsed since the second counter was last incremented. 
 
 
 
     
     
       2. The electronic device of  claim 1 , wherein the control circuitry is operative to switch to counting steps detected by the sensor component in the second pedometer mode of the electronic device in response to detecting the first mode switch event by incrementing the second counter but not the first counter for each step counted when the electronic device is in the second pedometer mode. 
     
     
       3. The electronic device of  claim 1 , wherein the control circuitry is further configured to stop the counting of steps in the second pedometer mode when switching back to the counting of steps in the first pedometer mode. 
     
     
       4. The electronic device of  claim 1 , wherein the control circuitry is configured to detect the second mode switch event in response to determining that the electronic device is operating below a predefined power threshold. 
     
     
       5. The electronic device of  claim 1 , wherein the first pedometer mode is an ambient mode for counting steps within an ambient period, and wherein the counting of steps in the first pedometer mode automatically restarts at the end of the ambient period. 
     
     
       6. The electronic device of  claim 1 , wherein the second pedometer mode is a session mode for counting steps for a particular session, and wherein the counting of steps in the second pedometer mode starts in response to detecting the first mode switch event. 
     
     
       7. The electronic device of  claim 1 , wherein the control circuitry is configured to detect the second mode switch event when a period of time has elapsed since the second counter was last incremented. 
     
     
       8. The electronic device of  claim 1 , wherein the control circuitry is configured to detect the first mode switch event in response to detecting a particular increase in the frequency of steps counted. 
     
     
       9. The electronic device of  claim 1 , wherein the control circuitry is configured to switch to counting steps detected by the sensor component in the second pedometer mode of the electronic device in response to detecting the first mode switch event by incrementing both the first counter and the second counter for each step counted when the electronic device is in the second pedometer mode. 
     
     
       10. The electronic device of  claim 1 , wherein the control circuitry is configured to detect the first mode switch event in response to detecting a new current user of the electronic device. 
     
     
       11. The electronic device of  claim 1 , wherein the control circuitry is configured to switch to counting steps detected by the sensor component in the second pedometer mode of the electronic device in response to detecting the first mode switch event by incrementing both the first counter and the second counter for each step counted when the electronic device is in the second pedometer mode. 
     
     
       12. The electronic device of  claim 5 , wherein the ambient period is a pre-determined amount of time. 
     
     
       13. A method for seamlessly switching between multiple pedometer modes using an electronic device, the method comprising:
 counting steps in a first pedometer mode using the electronic device, wherein the counting steps in the first pedometer mode comprises incrementing a first counter but not a second counter for each step counted in the first pedometer mode; 
 when in the first pedometer mode, detecting a first mode switch event to start a second pedometer mode using the electronic device; 
 switching to counting steps in the second pedometer mode in response to detecting the first mode switch event using the electronic device, wherein the counting steps in the second pedometer mode comprises incrementing the second counter for each step counted in the second pedometer mode, wherein the second counter is separate from the first counter; 
 when in the second pedometer mode, detecting a second mode switch event to end the second pedometer mode using the electronic device; 
 switching back to counting steps in the first pedometer mode in response to detecting the second mode switch event using the electronic device, wherein at least one of the following is true:
 the detecting the first mode switch event comprises detecting a particular increase in the frequency of steps counted; 
 the detecting the first mode switch event comprises detecting a new current user of the electronic device; 
 the detecting the second mode switch event comprises determining that the electronic device is operating below a predefined power threshold; and 
 the detecting the second mode switch event comprises detecting that a particular period of time has elapsed since the second counter was last incremented; and 
 simultaneously displaying the value of the first counter and the value of the second counter using the electronic device. 
 
 
     
     
       14. The method of  claim 13 , wherein the switching to counting steps in the second pedometer mode comprises continuing the counting of steps in the first pedometer mode. 
     
     
       15. The method of  claim 13 , wherein the switching to counting steps in the second pedometer mode comprises pausing the counting of steps in the first pedometer mode. 
     
     
       16. The method of  claim 13 , further comprising resetting the first counter at the end of a pre-determined period of time. 
     
     
       17. The method of  claim 13 , wherein the detecting the first mode switch event comprises detecting a new current user of the electronic device. 
     
     
       18. The method of  claim 13 , wherein the detecting the first mode switch event comprises detecting a particular increase in the frequency of steps counted. 
     
     
       19. The method of  claim 13 , wherein the detecting the second mode switch event comprises determining that the electronic device is operating below a predefined power threshold. 
     
     
       20. The method of  claim 15 , wherein the switching back comprises:
 pausing the counting of steps in the second pedometer mode; and 
 restarting the counting of steps in the first pedometer mode. 
 
     
     
       21. The method of  claim 16 , further comprising, before the resetting, storing the value of the first counter at the end of the pre-determined amount of time. 
     
     
       22. The method of  claim 20 , wherein the switching back further comprises resetting the first counter before the restarting.

Description:
FIELD OF THE INVENTION 
     This can relate to systems and methods for switching between multiple pedometer modes. 
     BACKGROUND OF THE DISCLOSURE 
     Pedometers are devices capable of tracking a user&#39;s steps. When a user carries a pedometer while walking, the user can monitor on the pedometer the number of steps he has walked thus far. Some pedometers are low power devices that can automatically count all of the steps that a user has walked over a fixed period of time (e.g., during a 24-hour period). Other pedometers can begin to count a user&#39;s steps only after the user has indicated that he would like his steps to be tracked. 
     Users of current pedometers, however, are limited to choosing between a pedometer operating in an automatic counting mode and a pedometer operating in a manual mode where a manual indication for step counting is required. Users may also desire a pedometer that can seamlessly switch between multiple step counting modes. For example, a user may want the pedometer to seamlessly switch from an automatic counting mode to a manual counting mode and finally back to the automatic counting mode. 
     SUMMARY OF THE DISCLOSURE 
     Accordingly, systems and methods are provided for seamlessly switching between multiple pedometer modes. 
     An electronic device can include a pedometer application that can start counting steps in a first mode. For example, the pedometer application can count steps in an ambient mode for which all of a user&#39;s steps can be automatically counted during an ambient period. For instance, the pedometer application can count all of the user&#39;s steps during a 24-hour period. Moreover, the counting can automatically restart at the end of each 24-hour period. In response to receiving a first input to start a second mode, the pedometer application can switch to counting steps in the second mode. For example, in response to receiving one or more user inputs, the pedometer application can switch to counting steps in a session mode, for which the user&#39;s steps can be counted for a specific session. The counting of steps may be in response to a user input. The user may, for example, press a button on an electronic device (e.g., the electronic device can include the pedometer), select a virtual button on a touch screen of the electronic device, rotate a click wheel on the electronic device, shake the electronic device, or any combination thereof. Then, in response to receiving a second input to end the second mode (e.g., a session mode), the pedometer application can switch back to counting steps in the first mode (e.g., an ambient mode). 
     The pedometer application can also provide historical step information by displaying a calendar to the user. The historical step information can include step information obtained in multiple pedometer modes. In some embodiments, the calendar can include indicators for time periods in which step information were obtained in a session mode of operation. 
     For a given time period, the pedometer application can determine multiple modes of operation. In some embodiments, the pedometer application can combine step information for the multiple modes of operation. For example, the pedometer application can display the total steps counted for both the ambient mode and the session mode for a given time period. In some embodiments, the pedometer application can allow the user to choose whether to combine step information for multiple modes of operation. 
     In response to a user input, for example, the pedometer application can display a graphical representation of the counted steps for a given time period. In some embodiments, the graphical representation can be a bar graph. The pedometer application can, for example, determine a time increment for the graph based on the frequencies used to store the counted steps. The pedometer application can also determine a start time for the graph based on, for example, the start time of the ambient mode. The pedometer application can display the graphical representation based on both the determined time increment and the determined start time. In some embodiments, the graphical representation of the counted steps can change depending on the mode of operation. 
     The graphical representation can also be interactive. For example, the user may select an input to either increase or decrease the time increment of the graphical representation. The user may also select an input to view counted steps for consecutive time periods. 
     The pedometer application can store historical step information for multiple modes of operation. In some embodiments, the duration of historical step information can be specified by the user. In response to the user selecting a longer duration, the pedometer application can download missing historical step information from a server. In response to the user selecting a shorter duration, the pedometer application can upload historical step information to the server. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The above and other aspects and advantages of the invention will be apparent upon consideration of the following detailed description, taken in conjunction with accompanying drawings, in which like reference characters refer to like parts throughout, and in which: 
         FIG. 1  shows a block diagram of an electronic device configured in accordance with various embodiments of the invention; 
         FIG. 2  shows a schematic view of a client-server data system configured in accordance with various embodiments of the invention; 
         FIG. 3  shows a display screen of an illustrative listing of menu options in accordance with various embodiments of the invention; 
         FIG. 4  shows a display screen of an illustrative top level menu of a pedometer application highlighting a first option in accordance with various embodiments of the invention; 
         FIG. 5  shows a display screen associated with a first pedometer mode of a pedometer application in accordance with various embodiments of the invention; 
         FIG. 6  shows a display screen associated with switching to a second pedometer mode of a pedometer application in accordance with various embodiments of the invention; 
         FIGS. 7A-7B  show display screens associated with switching back to the first pedometer mode of a pedometer application in accordance with various embodiments of the invention; 
         FIG. 8  shows a display screen of an illustrative top level menu of a pedometer application, similar to  FIG. 4 , highlighting a second option in accordance with various embodiments of the invention; 
         FIG. 9  shows a display screen associated with a settings option of a pedometer application in accordance with various embodiments of the invention; 
         FIG. 10  shows a display screen of an illustrative top level menu of a pedometer application, similar to  FIGS. 4 and 8 , highlighting a third option in accordance with various embodiments of the invention; 
         FIG. 11  shows a display screen for providing monthly historical step information of a pedometer application in accordance with various embodiments of the invention; 
         FIGS. 12A-12B  show display screens for providing daily historical step information of a pedometer application in accordance with various embodiments of the invention; 
         FIG. 13  shows a display screen for providing a graphical history of step information of a pedometer application in accordance with various embodiments of the invention; 
         FIG. 14  shows a flowchart of an illustrative process for switching between multiple pedometer modes in accordance with various embodiments of the invention; 
         FIG. 15  shows a flowchart of an illustrative process for providing historical step information of a pedometer application in accordance with various embodiments of the invention; and 
         FIG. 16  shows a flowchart of an illustrative process for storing historical step information of a pedometer application in accordance with various embodiments of the invention. 
     
    
    
     DETAILED DESCRIPTION OF THE DISCLOSURE 
     Systems, methods, and machine-readable media (e.g., computer-readable media) are disclosed for switching between multiple pedometer modes. 
       FIG. 1  is a schematic view of an illustrative electronic device  100  configured in accordance with various embodiments of the invention. Electronic device  100  can be any portable electronic device capable of tracking a user&#39;s steps. For example, electronic device  100  can include a portable media player (e.g., an iPod™, made available by Apple Inc. of Cupertino, Calif.), a cellular telephone (e.g., an iPhone™, made available by Apple Inc. of Cupertino, Calif.), a pocket-sized personal computer, a personal digital assistant (PDA), or any combination thereof. Electronic device  100  can include control circuitry  102 , memory  104 , input component  106 , display  108 , pedometer hardware  110 , pedometer application  112 , communications circuitry  114 , and bus  116 . 
     Persons skilled in the art will appreciate that while only one of each component is illustrated, electronic device  100  can include more than one of some or all of the components. Moreover, electronic device  100  can include other components not shown in  FIG. 1 . For example, electronic device  100  can include a power supply for providing power to the components of electronic device  100 . 
     Control circuitry  102  can control the operation and various functions of electronic device  100 . For example, as described in greater detail below, control circuitry  102  can direct display  108  to present a graphical representation of steps that have been counted by pedometer hardware  110  and pedometer application  112 . Control circuitry  102  can include any components, circuitry, or logic operative to drive the functionality of electronic device  100 . For example, control circuitry  102  can include one or more processors acting under the control of an application (e.g., pedometer application  112 ) and an operating system. 
     Memory  104  can include any suitable combination of non-volatile and volatile memories, such as cache memory, Flash memory, random access memory (RAM) (e.g., DDR RAM and/or SRAM), read only memory (ROM), a hard drive, an EPROM, EEPROM, or any combination thereof. In some embodiments, memory  104  can include a memory module specifically dedicated to storing firmware for control circuitry  102 , such as for device applications (e.g., pedometer application  112 , operating system, user interface functions, and other processor functions). 
     In some embodiments, memory  104  may include memory modules operative to provide mass storage for electronic device  100 . For example, memory  104  can be used by control circuitry  102  to store media files (e.g., audio or video files) or other types of electronic data (e.g., text-based files, pictures, graphics, and an address book of contacts). As another example, memory  104  can be used by pedometer application  112  to store step information that has been obtained by the application. Memory  104  can, for instance, store a history of the number of steps that have been counted over a range of different time periods (e.g., daily, weekly, monthly, and/or annually). As yet another example, memory  104  can store information or metadata associated with locally stored and remotely stored elements. Memory  104  can also store any other suitable information, such as preference information (e.g., music playback preferences), lifestyle information, transaction information (e.g., credit card information), subscription information (e.g., for podcasts or television shows), and telephone information (e.g., an address book). 
     Input component  106 , display  108 , and pedometer hardware  110  can provide a user interface for a user to interact with electronic device  100 . Input component  106  may enable a user to provide inputs and feedback to electronic device  100 . Input component  106  can take any of a variety of forms, such as one or more of a button, keypad (e.g., computer keyboard), dial, click wheel, touch screen, or accelerometer. 
     Display  108  can present visual media (e.g., graphics such as graphs, album cover, text and video) to the user. Display  108  can include, for example, a liquid crystal display (LCD), a touchscreen display, or any other type of display. Electronic device  100  can also include any other suitable type of output component in addition to or instead of display  108 , such as, for example, audio outputs and/or haptic outputs (e.g., vibrational outputs). 
     Pedometer hardware  110  can detect steps taken by a user. Pedometer hardware  110  can include any suitable type of sensors such as, for example, mechanical sensors, electrical sensors, microelectromechanical (“MEMS”) sensors, or any combination thereof. In some embodiments, pedometer hardware  110  can be a mechanical sensor for detecting the motion of a user&#39;s hips or feet. In other embodiments, pedometer hardware  110  can be a MEMS sensor for detecting the magnitude and direction of acceleration along one or more axes. 
     Output data generated by pedometer hardware  110  can be sent to pedometer application  112 . Pedometer application  112  can be any suitable software and/or hardware application for analyzing steps detected by pedometer hardware  110 . In some embodiments, in addition to receiving output data from pedometer hardware  110 , pedometer application  112  can also receive data from input component  106 . For example, pedometer application  112  can receive inputs from a button, keypad, dial, click wheel, touch screen and/or microphone indicating a user&#39;s preference for a particular mode of operation of pedometer application  112 . As another example, pedometer application  112  can receive inputs from motion sensors (e.g., one or more accelerometers for detecting motion on electronic device  100 ). Pedometer application  112  will be described in greater detail in connection with  FIG. 2 . 
     Electronic device  100  can include communications circuitry  114  for communicating with other devices (e.g., a server). Communications circuitry  114  can, for example, be used to download historical step information from a server to electronic device  100 . As another example, communications circuitry  114  can be used to upload historical step information locally stored on electronic device  100  to a server (e.g., the historical step information can thus be deleted from electronic device  100 ). Step information can include the number of steps counted and any other suitable information associated with the counted steps (e.g., the number of calories burned, the number of miles walked, and the time period during which the steps were counted). As described in greater detail below, the step information can be uploaded to the server in response to one or more determinations. Communications circuitry  114  can include Wi-Fi enabling circuitry that permits wireless communications according to one of the 802.11 standards or a private network. Other wired or wireless protocol standards, such as Bluetooth™, can be used in addition or instead. 
     Bus  116  may provide a data transfer path for transferring data to, from, or between control circuitry  102 , memory  104 , input component  106 , display  108 , pedometer hardware  110 , pedometer application  112 , communications circuitry  114 , and some or all of the other components of electronic device  100 . 
     Pedometer application  112  can operate in multiple step counting modes. Depending on the type of mode that pedometer application  112  is operating in, the steps detected by pedometer hardware  110  can be handled differently by pedometer application  112 . 
       FIG. 2  is a block diagram of illustrative client-server data system  200  configured in accordance with various embodiments of the invention. Data system  200  can include server  202  and client device  204 . Client device  204  can be a device that is the same as or similar to electronic device  100  ( FIG. 1 ). In some embodiments, data system  200  can include multiple servers  202 , multiple client devices  204 , or both multiple servers  202  and multiple client devices  204 . To prevent overcomplicating the drawing, only one server  202  and one client device  204  are illustrated. 
     Server  202  can include any suitable type of server that can store and provide data to client device  204  (e.g., file server, database server, web server, or media server). Server  202  can store media and other data (e.g., metadata associated with the media), and server  202  can receive requests from client device  204  to obtain data. For example, server  202  can receive requests to obtain historical step information. The requests may include requests to download historical step information for a certain time interval. Responsive to the requests, server  202  can locate and provide the requested historical step information. In some embodiments, server  202  can obtain and process data from one or more client devices  204 . 
     Server  202  can communicate with client device  204  over communications link  206 . Communications link  206  can include any suitable wired or wireless communications link, or combinations thereof, by which data may be exchanged between server  202  and client device  204 . For example, communications link  206  can include a satellite link, a fiber-optic link, a cable link, an Internet link, or any other suitable wired or wireless link. Communications link  206  may enable data transmission using any suitable communications protocol supported by the medium of communications link  206 . Such communications protocols may include, for example, Wi-Fi (e.g., a 802.11 protocol), Ethernet, Bluetooth™, radio frequency systems (e.g., 900 MHz, 2.4 GHz, and 5.6 GHz communication systems), infrared, TCP/IP (e.g., any of the protocols used in each of the TCP/IP layers), HTTP, BitTorrent, FTP, RTP, RTSP, SSH, any other communications protocol, or any combination thereof. 
     Client device  204  can include any electronic device capable of counting the steps walked by a user. Client device  204  may be operative to communicate with server  202 . For example, client device  204  can be any device capable of communicating via wires or wirelessly (with or without the aid of a wireless enabling accessory device). Persons skilled in the art will appreciate that client device  204  can include additional components not shown in  FIG. 2 . 
     Client device  204  can include input component  106  ( FIG. 1 ), pedometer hardware  110  ( FIG. 1 ), and pedometer application  112  ( FIG. 1 ). Pedometer application  112  can operate in one or more modes. In some embodiments, pedometer application  112  can operate in an ambient mode for which all of a user&#39;s steps can be automatically counted during an ambient period. For instance, the pedometer application can count all of the user&#39;s steps during a 24-hour period. Moreover, the counting can automatically restart at the end of each 24-hour period. 
     The start time and/or duration of the time period can be defined in any suitable manner. For example, pedometer application  112  can default to a 24-hour period starting at 12 am each day. As another example, pedometer application  112  can allow the user to select a different starting time and/or duration for the time period. User options for configuring the ambient mode will be further described with respect to  FIG. 9 , for example. 
     In some embodiments, pedometer application  112  can operate in a session mode for which a user&#39;s steps can be counted for a specific session (e.g., within a user-specified duration). Pedometer application  112  can start to count a user&#39;s steps in the session mode only after the application has received a first input from input component  106 . The first input can include an indication from the user that he would like his steps to be counted in a session mode. For example, the user may press a button on client device  204 , select a virtual button on a touch screen of client device  204 , rotate a click wheel on client device  204 , shake client device  204 , use any other suitable inputs, or any combination thereof. For instance, in response to the user shaking client device  204  in a specific pattern (e.g., two shakes), one or more accelerometers on client device  204  can detect the shaking, and the detected output can be sent to pedometer application  112 . 
     In addition, pedometer application  112  can stop counting a user&#39;s steps in the session mode after a suitable condition has been satisfied. In some embodiments, pedometer application  112  can stop counting a user&#39;s steps in a session mode in response to receiving a second input from input component  106 . For example, the user may press a button on client device  204 , select a virtual button on a touch screen of client device  204 , rotate a click wheel on client device  204 , shake client device  204 , use any other suitable inputs, or any combination thereof. 
     In some embodiments, in order to conserve power, pedometer application  112  can automatically stop counting steps in the session mode after a period of time has elapsed since receiving the instruction to enter the session mode. In other embodiments, pedometer application  112  can automatically stop counting steps in the session mode upon detecting that client device  204  is operating below a pre-defined power threshold. Pedometer application  112  may detect that client device  204  is operating below the pre-defined power threshold in any suitable manner, such as, for example, detecting that a battery of the device is operating at a particular energy level (e.g., less than 10% of its full energy level), receiving a signal that the battery is low, monitoring current device usage (e.g., monitoring the number of applications currently activated on the device), and/or any combination thereof. In response to detecting that client device  204  is operating below the pre-defined power threshold, pedometer application  112  can end the session mode. Persons skilled in the art will appreciate that pedometer application  112  can also stop counting steps in the ambient mode upon detecting that client device  204  is operating below the pre-defined power threshold. 
     In some embodiments, pedometer application  112  can operate in a default first mode (e.g., an ambient mode) unless an input is received. In response to receiving the input, pedometer application  112  can switch to a second mode (e.g., a session mode). After the second mode has ended (e.g., due to receiving a second input or due to a specific condition being met), pedometer application  112  can switch back to the first mode. 
     Pedometer application  112  can include step module  208 , first module  210 , and second module  212 . In some embodiments, first module  210  can be an ambient module for counting steps in the ambient mode, and second module  212  can be a session module for counting steps in the session mode. For example, first module  210  and second module  212  can maintain separate counters for counting the number of steps detected in either the ambient mode or the session mode. Thus, if the current mode of operation is the ambient mode, first module  210  can increment its ambient counter by one in response to receiving a detected step from step module  208 . On the other hand, if the current mode of operation is the session mode, second module  212  can increment its session counter by one in response to receiving a detected step from step module  208 . 
     Persons skilled in the art will appreciate that first module  210  and second module  212  can each maintain multiple counters. By maintaining multiple counters in first module  210 , pedometer application  112  can count steps in the ambient mode for multiple users of client device  204 . For example, a first ambient counter can count steps for a first user and a second ambient counter can count steps for a second user. Thus, if the first user is using client device  204 , pedometer application  112  can increment the first ambient counter. Similarly, if the second user is using client device  204 , pedometer application  112  can increment the second ambient counter. It will be understood that client device  204  can identify the first and second users using any suitable approach (e.g., face recognition, username/password entries, etc.). 
     In addition, by maintaining multiple counters in second module  212 , pedometer application  112  can keep track of multiple independent sessions during each ambient period. This feature is described in greater detail in connection with  FIGS. 7A and 7B . 
     The switching between the ambient mode and the session mode can be controlled by one or more modules in pedometer application  112 . In some embodiments, the switching between the two modes can be controlled by step module  208 . For example, step module  208  can detect a desired mode of operation directly from input component  106 . After determining the desired mode of operation, step module  208  can broadcast the detected step only to the module corresponding to the desired mode. For example, step module  208  can broadcast detected steps to first module  210  if pedometer application  112  is currently operating in the ambient mode. Alternatively, step module  208  can broadcast detected steps to second module  212  if pedometer application  112  is currently operating in the session mode. 
     In other embodiments, the switching between the two modes can be controlled by first module  210  and/or second module  212 . Because first and second modules  210  and  212  may control the switching between the two modes, step module  208  can simultaneously broadcast detected steps to first module  210  and second module  212  regardless of the desired mode of operation. 
     First and second modules  210  and  212  can determine that a session mode has been selected in any suitable manner. For example, second module  212  can directly detect the desired mode of operation from input component  106 . Once second module  212  detects that a user has selected the session mode, second module  212  can send an enable signal to step module  208 . For instance, an enable signal can be represented as a binary signal (e.g., an enable signal may be represented by setting the value of the binary signal to one, and a disable signal may be represented by setting the value of the binary signal to zero). First module  210  can then listen for the enable signal sent by second module  212  to step module  208 . In response to detecting the enable signal, first module  210  can determine that the desired mode of operation is the session mode. As another example, first module  210  can directly detect the desired mode of operation from input component  106 . Second module  212  can then listen for a disable signal from first module  210 , and, in response to detecting the disable signal, can determine that the desired mode of operation has switched to the session mode. 
     The selection of either first module  210  or second module  212  as the listener module may depend on which mode is more frequently used. For instance, first module  210  can be selected as the listener module if pedometer application  112  more frequently operates in the ambient mode. Similarly, second module  212  can be selected as the listener module if pedometer application  112  more frequently operates in the session mode. 
     As yet another example, instead of detecting the desired mode of operation directly from input component  106 , first and second modules  210  and  212  can detect the desired mode from step module  208 . In such a case, step module  208  can detect the desired mode of operation from input component  106  and broadcast the desired mode along with the detected step to both first and second modules  210  and  212  (e.g., the desired mode of operation can be broadcasted as part of a message containing the detected step). Thus, first and second modules  210  and  212  can each observe the desired mode of operation without listening for an enable/disable signal. 
     In response to determining that a user has selected the session mode, first module  210  can pause the ambient counter such that the ambient counter no longer increments in response to receiving additional detected steps from step module  208 . At the same time, second module  212  can start incrementing the session counter in response to receiving detected steps from step module  208 . 
     Following the switch to the session mode, the user may select to end the session mode at any time using input component  106 . In response to the user selecting to end the session mode, pedometer application  112  can switch back to the ambient mode. First module  210  and/or second module  212  can determine that the session mode has ended in any suitable manner. For example, if second module  212  directly detects the desired mode of operation from input component  106 , second module  212  can send a disable signal (e.g., set the binary signal to zero) to step module  208 . First module  210  can then listen for the disable signal, and, in response to detecting the disable signal, first module  210  can determine that the desired mode of operation has switched back to the ambient mode. As another example, if first module  210  directly detects the desired mode of operation from input component  106 , first module  210  can send an enable signal to step module  208  in response to the user selecting to end the session mode. Second module  212  can then listen for the enable signal from first module  210 , and, in response to detecting the enable signal, determine that the desired mode of operation has switched back to the ambient mode. 
     In response to determining that the user has selected to end the session mode, second module  212  can stop incrementing the session counter. At the same time, first module  210  can restart incrementing the ambient counter in response to receiving detected steps from step module  208 . 
     By maintaining separate counters for each mode, pedometer application  112  can accurately count the number of steps walked by the user during a certain time period. Moreover, by continuously monitoring the desired mode of operation and switching between the ambient and session counters in response to detecting changes in the desired mode of operation, pedometer application  112  can seamlessly switch between the ambient and session modes. 
     Persons skilled in the art will appreciate that pedometer application  112  can include additional modules not shown in  FIG. 2 , including, for example, modules for maintaining other step counters. For instance, pedometer application  112  can include a third module for counting running steps detected by a motion sensor attached to or incorporated within a user&#39;s body or clothing (e.g., a motion sensor similar to the sensor from the Nike+iPod Sport Kit™ sold by Apple Inc. of Cupertino, Calif. and Nike Inc. of Beaverton, Oreg.). Thus, in addition to receiving steps detected by pedometer hardware  110 , step module  208  can receive additional data from the motion sensor. 
     By receiving data from the motion sensor, pedometer application  112  can differentiate between several different types of steps. For example, the running module can maintain at least one running counter for monitoring running steps. Similar to the manner in which the ambient and session counters may be separately maintained, the running counter can also be maintained separately from the ambient and session counters. Thus, pedometer application  112  can switch between the walking modes (e.g., ambient and session modes) and the running mode by continuously monitoring the desired mode of operation and switching between the walking counters (e.g., ambient and session counters) and the running counter in response to detecting changes in the desired mode. 
     In some embodiments, a user can select a pedometer application (e.g., pedometer application  112  of  FIGS. 1 and 2 ) by using an input component (e.g., input component  106  of  FIGS. 1 and 2 ) on an electronic device (e.g., electronic device  100  of  FIG. 1  or client device  204  of  FIG. 2 ).  FIG. 3  shows a display screen of a listing of menu options, which can be provided by various embodiments of the electronic device. Display screen  300  can include “PEDOMETER APPLICATION” option  302  which can be an option in a listing of menu options  304 . Persons skilled in the art will appreciate that although only the ambient and session modes of operation are discussed in connection with  FIGS. 3-13 , other modes of operation in addition to or instead of the ambient and session modes can also be maintained by the pedometer application. 
     The user may select “PEDOMETER APPLICATION” option  302  in any suitable manner. For example, as shown in display screen  300 , “PEDOMETER APPLICATION” option  302  may be highlighted by highlight region  306 . The user may move highlight region  306  by rotating a click wheel on the electronic device. Thus, while “PEDOMETER APPLICATION” option  302  is highlighted by highlight region  306 , the user may select the pedometer application by clicking on the click wheel. As another example, the pedometer application can be represented as an icon on a home screen of an electronic device (e.g., an electronic device with a touch screen). The user may thus select the pedometer application by touching the icon. 
     Persons skilled in the art will appreciate that the user does not have to manually select the pedometer application in order to launch the application. For example, the pedometer application can continuously run in the background of the electronic device at all times, even while the electronic device is executing other applications or appearing to be in a sleep mode. 
     In response to the user selecting “PEDOMETER APPLICATION” option  302 , the electronic device can present a display screen associated with the pedometer application.  FIG. 4  shows a display screen  400  of an illustrative top level menu of the pedometer application, which can be provided by various embodiments of the electronic device. Display screen  400  can include “PEDOMETER” option  402  highlighted by highlight region  404 . From display screen  400 , the user may select “PEDOMETER” option  402  by using an input component on the electronic device (e.g., by clicking a click wheel while “PEDOMETER” option  402  is highlighted by highlight region  404 ). The pedometer application can then present a display screen associated with “PEDOMETER” option  402 . 
     For example,  FIG. 5  shows a display screen  500  associated with “PEDOMETER” option  402 . Display screen  500  can include icon  502 , which can represent the current mode of operation of the pedometer application. In some embodiments, different icons can represent different modes of operation. As shown in display screen  500 , for example, icon  502  may indicate that the current mode of operation is an ambient mode. In some embodiments, the user may customize the icon associated with a particular mode by selecting icon  502 . For example, in response to the user selecting icon  502 , the pedometer application can display a listing of images. The user may then select an image from the listing to associate with a particular mode. 
     Labels  504 ,  506 , and  508  can provide step information associated with the total number of counted steps for a particular time period. For example, as shown in display screen  500 , label  504  may show the total number of counted steps for a particular day. Labels  506  and  508  may respectively show the amount of calories burned and the number of miles counted for those steps. 
     In some embodiments, if the pedometer application is currently operating in the ambient mode, the pre-defined period can be the duration of the ambient mode (e.g., an ambient period). The ambient period can have a start time which can be specified by the user. For example, if the ambient period lasts  24  hours and the period starts at 12:00 am every day, labels  504 ,  506 , and  508  can provide step information associated with the total number of steps counted since 12:00 am on a particular day. In some embodiments, the total number of counted steps can include steps counted in only the ambient mode or both the ambient and the session modes. As will be further described with respect to  FIG. 9 , the user may specify both the start time of the ambient period and also whether to include the steps counted in a session mode in the total number of counted steps of the ambient mode. Persons skilled in the art will appreciate that display screen  500  can include additional information associated with counted steps that are not shown in  FIG. 5 . 
     Display screen  500  can include “START SESSION” option  510 , which can provide step information associated with one or more sessions that were activated during the ambient period. For example, as shown in display screen  500 , labels  512 ,  514 , and  516  may respectively show the number of steps counted, the number of calories burned, and the number of miles counted for a session mode activated during the 24-hour ambient period. 
     In some embodiments, if more than one session has been activated during an ambient period, the pedometer application can combine the step information obtained in each session. For example, labels  512 ,  514 , and  516  can provide step information that has been combined for all of the sessions that have been activated within a particular ambient period. In other embodiments, the pedometer application can separately display the step information obtained in each session within a particular ambient period or for the most recent session within a particular ambient period. 
     The user may select to switch to the session mode by selecting “START SESSION” option  510 . As shown in display screen  500 , “START SESSION” option  510  can be highlighted by highlight region  518 . Thus, in response to the user selecting option  510  using an input component of the electronic device (e.g., by clicking a click wheel while “START SESSION” option  510  is highlighted by highlight region  518 ), the pedometer application can present a display screen associated with switching to the session mode. 
     For example,  FIG. 6  shows a display screen  600  associated with switching to a session mode. Display screen  600  can include icon  602 , which can represent the current mode of operation of the pedometer application. As shown in display screen  600 , icon  602  may indicate that the pedometer application is currently operating in the session mode. Similar to icon  502 , the user may customize icons associated with different modes of operation by selecting icon  602 . Persons skilled in the art will appreciate that if the pedometer application is currently operating in the session mode, display screen  600  may be displayed instead of display screen  500  ( FIG. 5 ) in response to the user selecting a “PEDOMETER” option (e.g., “PEDOMETER” option  402  of  FIG. 4 ). 
     Labels  604 ,  606 , and  608  can provide step information associated with the number of steps that have been counted during one or more sessions of the current ambient period. In some embodiments, labels  604 ,  606 , and  608  can provide step information accumulated for all of the sessions within a particular ambient period. For example, as shown in display screen  600 , label  604  may show that the user has walked an additional 350 steps since the user selected “START SESSION” option  510  in  FIG. 5 . Thus, the number of steps counted in the session mode may now be 600 steps (e.g., increased from 250 steps as shown in label  512  of  FIG. 5 ). In other embodiments, the pedometer application can display only the step information obtained in the current session. 
     Display screen  600  can include “END SESSION” option  610 , which can provide an option for the user to end the session mode (e.g., end the current session). As shown in  FIG. 6 , “END SESSION” option  610  can be highlighted by highlight region  612 . In response to the user selecting option  610  using an input component of the electronic device (e.g., by clicking a click wheel while “END SESSION” option  610  is highlighted by highlight region  612 ), the pedometer application can present a display screen associated with ending the session mode and switching back to the ambient mode. 
     For example,  FIG. 7A  shows a display screen  700  associated with switching back to the ambient mode. Display screen  700  can be similar to display screen  500 . For example, display screen  700  can include icon  702 , which, as shown, may indicate that the current mode of operation has switched back to the ambient mode. Similar to icons  502  and  602 , the user may customize the icons associated with the different modes of operation by selecting icon  702 . 
     Display screen  700  can include labels  704 ,  706 , and  708 . In some embodiments, if the user has decided to allow steps counted in the session mode to be included in the total number of counted steps of the ambient mode, labels  704 ,  706 , and  708  can be updated with information obtained from the previous session. The values obtained from the previous session (e.g., information associated with the additional steps walked in the previous session) may thus be added to the values of labels  504 ,  506 , and  508  of  FIG. 5  to obtain the values of labels  704 ,  706 , and  708  of  FIG. 7A . For example, as shown in display screen  700 , label  704  may show that the user has walked an additional 350 steps since the user selected “START SESSION” option  510  in  FIG. 5 . As a result, the total number of counted steps may now be 1100 steps (e.g., increased from 750 steps as shown in label  504  of  FIG. 5 ). 
     In other embodiments, if the user has decided not to allow steps counted in the session mode to be included in the total number of counted steps of the ambient mode, labels  704 ,  706 , and  708  can have the same values as labels  504 ,  506 , and  508  (e.g., the values of the ambient mode before the session mode of  FIG. 6  occurred). 
     Display screen  700  can include “START SESSION” option  710 , which can provide step information associated with one or more sessions that were activated during the ambient period. “START SESSION” option  710  can include labels  712 ,  714 , and  716 . 
     In some embodiments, if the pedometer application has been configured to combine information obtained in each session, labels  712 ,  714 , and  716  can be updated with step information obtained in the last session. The values obtained from the previous session (e.g., information associated with the additional steps walked in the previous session) may thus be added to the values of labels  512 ,  514 , and  516  of  FIG. 5  to obtain the values of labels  712 ,  714 , and  716  of  FIG. 7A . For example, as shown in display screen  700 , label  712  may show that the user has walked an additional 350 steps since the user selected “START SESSION” option  510  in  FIG. 5 . As a result, the number of steps counted in the session mode may now be 600 steps (e.g., increased from 250 steps as shown in label  512  of  FIG. 5 ). 
     In other embodiments, the pedometer application can display the values obtained in the last session separately from the values provided by labels  512 ,  514 , and  516 . For example,  FIG. 7B  shows alternative display screen  720  associated with switching back to the ambient mode. Display screen  720  can include “START SESSION” options  722  and  724 , which can provide step information associated with one or more sessions that were activated during the ambient period. “START SESSION” option  722  can include labels  726 ,  728 , and  730 , which can provide the same values as the values provided by labels  512 ,  514 , and  516 , respectively. “START SESSION” option  724  can include labels  732 ,  734 , and  736 , which can display only the values obtained in the last session. 
     From display screen  700  ( FIG. 7A ) or display screen  720  ( FIG. 7B ), the user may choose to restart the session mode by selecting “START SESSION” option  710  ( FIG. 7A ), “START SESSION” option  722  ( FIG. 7B ), or “START SESSION” option  724  ( FIG. 7B ) to switch to the session mode. In response to the user selecting to restart the session mode, the pedometer application can, for example, return to a display screen similar to display screen  600  ( FIG. 6 ). 
     In some embodiments, the pedometer application can maintain step information for multiple sessions. For example, “START SESSION” option  722  and “START SESSION” option  724  can be two independent sessions that the user may activate. For instance, the user may restart a previous session by selecting “START SESSION” option  722 . In response to the user selecting to end the session mode (e.g., by selecting “END SESSION” option  610  of  FIG. 6 ), the pedometer application can update labels  726 ,  728 , and  730  with the values obtained in the new session, while leaving the values in labels  732 ,  734 , and  736  the same as before the new session started. Similarly, in response to the user selecting to end the session mode after selecting “START SESSION” option  724 , the pedometer application can update labels  732 ,  734 , and  736  with the values obtained in the new session, while leaving the values in labels  726 ,  728 , and  730  the same as before the previous session was restarted. In some embodiments, the pedometer application can maintain steps counted for the multiple sessions by maintaining multiple counters in one or more modules on the electronic device (e.g. second module  212  on client device  204  of  FIG. 2 ). 
     In addition,  FIGS. 7A and 7B  can include “NEW SESSION” option  738 , which can allow a user to start a new session independent of any of the previous sessions activated during an ambient period. In response to the user selecting “NEW SESSION” option  738  on display screen  700  ( FIG. 7A ) or display screen  720  ( FIG. 7B ), the pedometer application can create a new session option on the display screen. The new session option can provide information associated with the steps walked in the new session. At the same time, the pedometer application can keep label values for the previous sessions the same as before the new session was started. 
     From display screen  700  ( FIG. 7A ) or display screen  720  ( FIG. 7B ), the user may also choose to return to the top level menu of the pedometer application (e.g., by pressing a menu button or selecting an option on the electronic device). 
     For example,  FIG. 8  shows a display screen  800  of an illustrative top level menu of the pedometer application, similar to display screen  400  of  FIG. 4 . Display screen  800  can include “SETTINGS” option  802  highlighted by highlight region  804 . From display screen  800 , the user may select “SETTINGS” option  802  by using an input component on the electronic device (e.g., by clicking a click wheel while “SETTINGS” option  802  is highlighted by highlight region  804 ). The pedometer application can then present a display screen associated with “SETTINGS” option  802 . 
     For example,  FIG. 9  shows a display screen  900  associated with “SETTINGS” option  802 . Display screen  900  can include a listing of settings  902 . In some embodiments, the user may change an option by rotating a click wheel once the option has been selected (e.g., once the option has been highlighted by highlight region  904 ). Persons skilled in the art will appreciate that the pedometer application can include options different from or additional to the options in  FIG. 9 . 
     Listing of settings  902  can include options  906 ,  908 ,  910 ,  912 , which can modify the settings of one or more features of the pedometer application. Option  906  can control whether steps counted in the session mode are included in the total number of counted steps of the ambient mode (e.g., the data displayed by labels  504 ,  506 , and  508  of  FIG. 5  and labels  704 ,  706 , and  708  of  FIG. 7 ). As shown in display screen  900 , the current value of option  906  is “ON”. Thus, the steps counted in each session mode may be included in the total number of counted steps of the ambient mode. If the user instead changes the value of option  906  to “OFF”, the total number of counted steps of the ambient mode may include only steps counted in the ambient mode. As such, the total number of counted steps of the ambient mode may not include steps counted in any of the session modes performed during the ambient period of the ambient mode. 
     Option  908  can control the start time of the ambient period of the ambient mode. As shown in display screen  900 , for example, the ambient period may start at 12:00 am. In some embodiments, the user may choose a different start time for the ambient period of the ambient mode (e.g., the user may choose a start time coinciding with when the user usually wakes up). The pedometer application can perform one or more actions in response to the user selecting a new start time for the ambient period. The pedometer application can, for example, start to count steps based on the new start time, change one or more display settings, or any combination thereof. Display settings will be further described with respect to  FIG. 13 . 
     Option  910  can control the duration of historical step information stored by the pedometer application. As shown in display screen  900 , for example, the pedometer application may currently store historical step information for up to 6 months. In some embodiments, option  910  can control only the duration of historical step information that is locally stored on the electronic device. Thus, a portion of historical step information that is older than the duration specified in option  910  can be (e.g., automatically) uploaded to a server (e.g., server  202  of  FIG. 2 ). The historical step information can thus be deleted from memory (e.g., memory  104  of  FIG. 1 ) on the electronic device (e.g., electronic device  100  of  FIG. 1 ). 
     In some embodiments, in response to the user selecting a duration longer than the original duration specified in option  910 , the pedometer application can download (e.g., from server  202 ) missing historical step information (e.g., older historical step information falling between the longer duration and the original duration). Similarly, in response to the user selecting a duration shorter than the original duration specified in option  910 , the pedometer application can upload a portion of historical step information that is older than the shorter duration. In some embodiments, the pedometer application can determine whether the amount of memory (e.g., memory  104  of  FIG. 1 ) available is below a pre-defined threshold (e.g., 30% of the total capacity). In response to determining that the amount of memory available is below the pre-defined threshold, the pedometer application can automatically decrease the duration of historical step information locally stored on the electronic device. The pedometer application can also automatically upload a portion of historical step information (e.g., older historical step information) to the server until the amount of memory available is above the pre-defined threshold. Moreover, while the amount of memory available is at or below the pre-defined threshold, the pedometer application can prevent the user from increasing the duration of the historical step information locally stored on the electronic device. 
     In some embodiments, listing of settings  902  can include an additional option for a user to manually delete historical step information. For example, a user may select one or more of the previously stored historical step information (e.g., step information from one or more ambient periods or step information from one or more sessions) to delete from the electronic device. In response to receiving the user selection, the pedometer application can delete the selected step information from memory (e.g., memory  104  of  FIG. 1 ) on the electronic device. In some cases, the pedometer application can simultaneously upload the selected step information to the server. 
     Historical step information can include any suitable step information associated with the number of counted steps. For example, historical step information can include the number of steps counted during each ambient period. As another example, historical step information can include the number of steps counted during one or more sessions within each ambient period. In addition to the steps counted, historical step information can include additional information, such as the calories burned and the miles counted for those steps, for example. 
     Option  912  can control the storage and display of step information for multiple sessions activated during an ambient period. For example, option  912  can control the display of step information for labels  512 ,  514 , and  516  of  FIG. 5 , labels  604 ,  606 , and  608  of  FIG. 6 , and labels  712 ,  714 , and  716  of  FIG. 7 . As shown in display screen  900 , for example, the current value of option  912  may be “YES”. Thus, step information obtained in all of the sessions within a particular ambient period can be combined (e.g., as is the case illustrated in  FIGS. 5-7 ). If, on the other hand, the user sets the value of option  912  to “NO”, the step information obtained in each session within a particular ambient period can be separately displayed. In other embodiments, only the step information obtained for the most recent session within a particular ambient period may be displayed. 
     From display screen  900 , the user may choose to return to the top level menu of the pedometer application (e.g., by pressing a menu button or selecting an option on the electronic device). 
     For example,  FIG. 10  shows a display screen  1000  of an illustrative top level menu of the pedometer application, which may be similar to display screen  400  of  FIG. 4  and display screen  800  of  FIG. 8 . Display screen  1000  can include “HISTORY” option  1002  highlighted by highlight region  1004 . From display screen  1000 , the user may select “HISTORY” option  1002  using an input component of the electronic device (e.g., by clicking on a click wheel while “HISTORY” option  1002  is highlighted by highlight region  1004 ). The pedometer application can then present a display screen associated with “HISTORY” option  1002 . 
     For example,  FIG. 11  shows a display screen  1100  for providing historical step information. Display screen  1100  can include calendar  1102 , which can represent days in a particular month. Persons skilled in the art will appreciate that calendar  1102  can represent any suitable time period and that entries in calendar  1102  can represent any suitable duration within the time period. For example, calendar  1102  can be a yearly calendar, wherein the individual entries are months of the year. 
     In some embodiments, calendar  1102  can display session indicators  1104  on one or more days. For example, the pedometer application can identify one or more days during which step information for one or more sessions was obtained (e.g., session duration). Session indicators  1104  can then be displayed in calendar  1102  for those days. As another example, session indicators  1104  can be displayed for those days during which step information for any mode of operation was obtained. 
     Display screen  1100  can include highlight region  1106 . As shown in display screen  1100 , for example, highlight region  1106  may currently highlight March 8 th . Using an input component of the electronic device (e.g., rotating a click wheel), the user may move highlight region  1106  over different days in the month. 
     When highlight region  1106  is placed over a particular day, step information about the counted steps obtained during that day can be displayed in information region  1108 . In some embodiments, for a particular day, the pedometer application can identify the modes of operation used that day. The pedometer application can then combine step information obtained in each mode of operation. The combined step information can be displayed in information region  1108 . 
     Step information displayed in information region  1108  can include, for example, the total number of steps and the total number of miles counted during the day. In addition, the step information can include the total number of calories burned during the day. Information region  1108  can include icon  1110  which can show one or more modes of operation that have been identified as being associated with the particular day. In some embodiments, if the user used both the ambient mode and the session mode, icon  1110  can be selected to be different from the icons representing either the ambient or session mode. For example, as shown in display screen  1100 , on March 8 th  the user walked 4,500 steps, burned 1425 calories, and walked 5 miles. In addition, icon  1110  shows that the user used both the ambient mode and the session mode. Persons skilled in the art will appreciate that information region  1108  can include additional step information not shown in  FIG. 11 , such as independent step information for each of the modes of operation used during a particular day. 
     From display screen  1100 , the user may choose to return to the top level menu of the pedometer application (e.g., by pressing a menu button or selecting an option on the electronic device). 
     Instead of returning to the top level menu of the pedometer application, however, the user may choose to view step information associated with steps counted during a particular day. In response to the user selecting a particular day (e.g., by clicking the click wheel while highlight region  1106  is highlighting the particular day of interest), the pedometer application can display step information for the particular day (e.g., additional step information not shown by region  1108 ). 
     For example,  FIG. 12A  shows a display screen  1200  for providing daily historical step information. Display screen  1200  can include a listing of step information  1202 . Listing of step information  1202  can display step information associated with a particular day. The step information can include, for example, the number of steps, the duration, and the number of miles that were counted during the day. In addition, the step information can include the number of calories burned during the day. 
     Listing of step information  1202  can also include mode options  1204  and  1206 . In some embodiments, mode options  1204  and  1206  can represent step information for each mode of operation used that day. For example, mode option  1204  can display step information associated with steps counted in the ambient mode that day, while mode option  1206  can display step information associated with steps counted in the session mode that day. Icons associated with each mode option can also be displayed. For example, icon  1208  can be displayed for the ambient mode, and icon  1210  can be displayed for the session mode. 
     Persons skilled in the art will appreciate that listing of step information  1202  can include additional mode options not shown in  FIG. 12 . For example, listing of step information  1202  can include additional mode options for additional modes of operation of the pedometer application. As another example, if the pedometer application was configured to separately display multiple sessions for each ambient period and multiple sessions were obtained during the particular ambient period, listing of step information  1202  can include a mode option for each session. 
     As another example,  FIG. 12B  shows another display screen  1214  for providing daily historical step information. Display screen  1214  may be displayed instead of display screen  1200 , for example, if only a single mode of operation was used for a particular day. For instance, if only the ambient mode or the session mode was used for a particular day of interest, display screen  1214  may be displayed in response to the user selecting the particular day while the day is highlighted by highlight region  1106  ( FIG. 11 ) in calendar  1102  ( FIG. 11 ). As another example, display screen  1214  may be displayed in response to the user selecting a particular mode option (e.g., mode option  1204  or mode option  1206  of  FIG. 12A ) in display screen  1200  ( FIG. 12A ). 
     Display screen  1214  can include step information  1216 , which can display the number of steps counted in a particular mode of operation for the day. Moreover, display screen  1214  can include a listing of step information  1218 . Listing of step information  1218  can display step information associated with the mode of operation. The step information can include, for example, the step goal, the duration, the start time, the end time, the number of miles, and the number of calories for the particular day. In addition, the step information can include the weekly and monthly totals. 
     From display screen  1214 , the user may choose to return to viewing monthly historical step information ( FIG. 11 ) or return to viewing step information for all of the modes of operation used for the particular day ( FIG. 12A ). The user may, for example, press a menu button or select an option on the electronic device. However, the user may instead choose to view a graphical history of step information by selecting “GRAPH” option  1220 . This will be further described in connection with  FIG. 13 . 
     Returning back to display screen  1200  ( FIG. 12A ), the user may choose to return to viewing monthly historical step information (e.g., by pressing a menu button or selecting an option on the electronic device). 
     However, instead of returning to viewing monthly historical step information, the user may choose to view a graphical history of step information. The user may select to view a graphical history of step information by selecting a particular mode of operation. In response to the user selecting a particular mode option (e.g., by clicking the click wheel while highlight region  1212  is highlighting mode option  1206 ), the pedometer application can provide a graphical history of step information. 
     For example,  FIG. 13  shows a display screen  1300  for providing a graphical history of step information. Persons skilled in the art will appreciate that display screen  1300  can be accessed by the user in any suitable manner in the pedometer application. Thus, display screen  1300  does not necessarily have to follow display screen  1200  ( FIG. 12 ). For example, in response to the user selecting a particular day in display screen  1100  ( FIG. 11 ), the pedometer application can provide display screen  1300  for a graphical history corresponding to the selected day. As another example, in response to the user selecting a “GRAPH” option (e.g., “GRAPH” option  1220  of  FIG. 12B ), the pedometer application can provide display screen  1300  for a graphical history corresponding to the day. 
     Display screen  1300  can include label  1302 , which can show the date corresponding to the step information displayed in display screen  1300 . Display screen  1300  can also include information region  1304 . Information region  1304  can include information similar to information region  1108  of  FIG. 11 . Information region  1304  can include, for example, the total number of steps and the total number of miles that were counted during the day. In addition, information region  1304  can include the total number of calories burned and an icon representing one or more modes of operation activated during the day. 
     In some embodiments, information region  1304  can display goal information  1306 . Goal information  1306  can include any suitable information that has been previously set as an exercise goal for that day. For example, goal information  1306  can include goals for steps counted, miles counted, duration counted, calories burned, any other suitable goal, or any combination thereof. 
     Display screen  1300  can include graph region  1308 . In some embodiments, graph region  1308  can include start time  1310  and end time  1312  corresponding to the start time and the end time of the ambient period. For example, as shown in display screen  1300 , the ambient period may start at 12:00 am on March 8 th . Because the ambient period may last for a 24-hour period, for example, the ambient period may end at 12:00 am on March 9 th . The start time of the ambient period can be a display setting that can be changed based on one or more options provided by the pedometer application (e.g., the user may change the start time to 7:00 am by selecting option  908  of  FIG. 9 ). In response to the user selecting to change the start time of the ambient mode, the pedometer application can determine updated steps based on the changed start time. For example, in response to the user changing the start time to 7:00 am, the pedometer application can determine counted steps from 7:00 am on March 8 th  to 7:00 am on March 9 th . The pedometer application can then display a new graphical representation of the updated step count. As another example, the pedometer application can recalculate the totals provided in information region  1304  based on the changed start time. 
     Step information can be displayed in graph region  1308  using any suitable set of time increments. As shown in display screen  1300 , for example, graph region  1308  may be divided into hourly time increments. The set of time increments selected can depend on the frequencies used to store step information (e.g., the set of time increments can be limited by the least frequently stored step information). For example, step information for the ambient mode of operation can be stored at 10-minute increments for a total of 144 data points over a particular day. However, step information for the session mode of operation can be stored at 60-minute increments for a total of 24 data points over a particular day. In such an example, the smallest set of time increments that can be displayed in graph region  1308  are hourly increments. As another example, if step information for both the ambient mode and the session mode of operation are stored at minute increments, the smallest set of time increments that can be displayed are minute increments. 
     The frequencies used to store step information can depend on one or more factors. For example, the user may want to closely examine step information associated with the session mode of operation. Thus, the pedometer application can store step information for the session mode at smaller time increments. As another example, the user may want to keep a reliable history of step information associated with the ambient mode of operation. Thus, the pedometer application can store step information for the ambient mode at smaller time increments. As yet another example, the pedometer application can determine that the electronic device has limited storage capacity in memory, and, as a result, increase the time increments for storing step information. 
     For each time increment in graph region  1308 , the pedometer application can display a graphical representation of the steps counted during that time increment. In other embodiments, the representation can display any other information obtained for each time increment, such as, for example, calories burned, miles walked, and the like. The graphical representation can include any suitable type of graphical representation, such as, for example, a bar graph, a line graph, a scatter plot and/or any other suitable 2-dimensional or 3-dimensional graph. 
     The graphical representation type of the steps counted can change depending on the mode of operation. For example, for each time increment, the pedometer application can determine all of the modes of operation activated during the time increment. The pedometer application can then select a graphical representation type for each time increment based on the determined modes of operation. The graphical representation type can be unique to the modes of operation determined for each time increment (e.g., different colors and/or patterns can represent the ambient mode, the session mode, and a combined ambient/session mode). As a result, for a time increment in which steps were counted in multiple modes of operation (e.g., the combined ambient/session mode), the pedometer application can combine the steps counted in each mode and select a graphical representation type that is different (e.g., a different pattern and/or color) from time increments in which only one mode of operation was determined. Alternatively, for a time increment in which steps were counted in multiple modes of operation, the pedometer application can represent the steps counted in each mode separately (e.g., as adjacent bars or as bars placed on top of each other). 
     As shown in display screen  1300 , for example, bar  1314  may be used to represent the number of steps counted in the ambient mode. In addition, bars  1316 ,  1318 , and  1320  may be used to represent the number of steps counted in the session mode, in which each bar represents the number of steps counted for each hour. Bars  1316 ,  1318 , and  1320  may include all of the steps counted for a single session. In some embodiments, the pedometer application can choose different graphical representation types for steps counted for different users and/or steps counted in different sessions (e.g., by selecting bars of different colors and/or patterns). 
     In addition to displaying a graphical representation of the counted steps, the pedometer application can display step information associated with a particular mode of operation. For example, in response to the user selecting to view a graphical history of step information for a particular mode (e.g., by selecting mode option  1206  of  FIG. 12 ), the pedometer application can display mode information  1322 . 
     For example, mode information  1322  can include information similar to the information provided in listing of step information  1202  ( FIG. 12 ), such as, for example, the number of steps counted, the number of miles counted, and the number of calories burned in the particular mode of operation. In addition, the pedometer application can display the time period during which step information was obtained in the particular mode of operation. For example, as shown in display screen  1300 , for the session mode, step information was obtained from 3:00 pm to 5:22 pm. Mode information  1322  can be placed at any suitable location on display screen  1300 . Mode information  1322  can, for example, be overlaid on top of graph region  1308 , extend from one or more bars representing the steps counted for a particular mode of operation, or any combination thereof. 
     In some embodiments, goal information  1306  can be represented in graph region  1308 . For example, for a monthly graphical representation of the steps counted, the pedometer application can display a line, where each data point on the line represents the step goal for each day of the month. 
     Display screen  1300  can also include display option  1324 , which can indicate the types of steps that are graphically displayed in graph region  1308 . For example, display option  1324  can indicate that the steps represented in graph region  1308  include the ambient mode, the session mode, or any combination thereof. As shown in display screen  1300 , both ambient mode steps and session mode steps are displayed. 
     In some embodiments, the user may select display option  1324  to change the type of steps that are graphically displayed in graph region  1308 . For example, display option  1324  can be a toggle option. Thus, in response to the user selecting display option  1324  (e.g., by rotating a click wheel), the pedometer application can change the type of steps displayed in graph region  1308  and correspondingly change the type of steps indicated in display option  1324 . As an example, after the user selects display option  1324  in display screen  1300 , the pedometer application can display counted steps for only the ambient mode in graph region  1308 , and change display option  1324  to indicate “AMBIENT ONLY”. 
     Indicators  1326  and  1328  can be any suitable indicators of totals calculated over time. Suitable indicators can include, for example, hourly, daily, weekly, monthly, and yearly totals. Indicators  1326  and  1328  can change depending on the set of time increments used in graph region  1308 . For example, weekly and monthly totals can be displayed when daily increments are used in graph region  1308 . As another example, monthly and yearly totals can be displayed when weekly increments are used in graph region  1308 . 
     Graph region  1308  can be interactive such that the user may change the information displayed in graph region  1308  by manipulating display screen  1300 . In some embodiments, the user may view mode information for each mode of operation by selecting an input using an input component of the electronic device (e.g., by rotating a click wheel). For example, in response to the user selecting to view mode information for the ambient mode of operation in graph region  1308 , the pedometer application can remove mode information  1322  and can display mode information for the ambient mode (e.g., the mode information can extend from bar  1314 ). 
     In some embodiments, the user may select to either increase or decrease the set of time increments in graph region  1308 . For example, the user may select one or more inputs using an input component to view step information displayed in increasingly smaller time increments (e.g., from hours to minutes to seconds). The user may, for example, rotate a click wheel to the right or perform a “pinch-out” motion on a touch screen of the electronic device. As another example, the user may select one or more inputs using an input component to view step information displayed in increasingly larger time increments (e.g., from hours to days to months). The user may, for example, rotate a click wheel to the left or perform a “pinch-in” motion on a touch screen of the electronic device. In response to the user selecting to change the set of time increments in graph region  1308 , the pedometer application can reorganize step information based on the new set of time increments in order to properly display the step information (e.g., the pedometer application can combine multiple sets of step information for longer time increments). 
     In some embodiments, the user may view step information for consecutive time periods. For example, the user may select one or more inputs using an input component to view step information for the previous time period (e.g., the previous day, month, year, or any other suitable time period). The user may, for instance, press a button, shake the electronic device in a particular pattern, and/or slide a finger to the right on a touch screen of the electronic device. Similarly, the user may select one or more inputs using an input component to view step information for the next time period (e.g., the next day, month, year, or any other suitable time period). The user may, for instance, press a button, shake the electronic device in a particular pattern, and/or slide a finger to the left on a touch screen of the electronic device. Thus, in the example shown in display screen  1300  of  FIG. 13 , the pedometer application can display step information for either March 7 th  or March 9 th  depending on whether the user selects to view step information for the previous time period or the next time period. 
     From display screen  1300 , the user may choose to return to viewing step information associated with steps counted during a particular day (e.g., by pressing a menu button or selecting an option on the electronic device). In response to the user input, the pedometer application may return to display screen  1200  of  FIG. 12 . 
     Instead of returning to the step information associated with steps counted during a particular day, the user may instead choose exit the pedometer application (e.g., by pressing a home button on the electronic device). 
     Referring now to  FIGS. 14-16 , flowcharts of illustrative processes are shown in accordance with various embodiments of the invention. The processes may be executed by an electronic device, such as electronic device  100  of  FIG. 1  or client device  204  of  FIG. 2 , or the steps may correspond to machine-readable instructions recorded on machine-readable media (e.g., computer-readable media, memory  104  of  FIG. 1 , etc.). It should be understood that these processes are merely illustrative. Any of the steps may be combined, removed, or modified, and any steps may be added, without departing from the scope of the invention. 
     Referring first to  FIG. 14 , a flowchart of illustrative process  1400  is shown for seamlessly switching between multiple pedometer modes. Process  1400  may begin at step  1402  where the pedometer application can count steps in a first mode. For example, the first mode can be an ambient mode (e.g., the steps can be counted by first module  210  of  FIG. 2 ). Thus, in response to the user selecting a “PEDOMETER” option (e.g., “PEDOMETER” option  402  of  FIG. 4 ) while the pedometer application is operating in the ambient mode, the pedometer application can present a display screen similar to display screen  500  ( FIG. 5 ). 
     At step  1404 , the pedometer application can determine whether an input for a second mode has been received. For example, the pedometer application can determine whether an input for a session mode has been received. The pedometer application can determine, for instance, whether the user has selected a “START SESSION” option (e.g., “START SESSION” option  510  of  FIG. 5  or “START SESSION” option  710  of  FIG. 7 ). If the pedometer application determines that an input for a second mode has not been received, process  1400  may move back to step  1402  and continue counting steps in the first mode. Otherwise, process  1400  may continue to step  1406 . 
     At step  1406 , the pedometer application can pause the counting of steps in the first mode. Then, at step  1408 , the pedometer application can count steps in the second mode. For example, the second mode can be a session mode (e.g., the steps can be counted by second module  212  of  FIG. 2 ). Thus, in response to the user selecting a “START SESSION” option, the pedometer application can present a display screen similar to display screen  600  ( FIG. 6 ). 
     In other embodiments, the pedometer application can simultaneously count steps in both the first and second modes when an input for the second mode is received. Thus, in response to receiving an input for the second mode at step  1404 , the pedometer application can continue counting steps in the first mode (e.g., by skipping step  1406 ). Furthermore, after the pedometer application stops counting steps in the second mode at step  1412 , process  1400  may move to step  1404  instead of step  1402 . In such an implementation, in response to a user input to display only the number of counted steps for the first mode exclusive of the second mode, the pedometer application can subtract the number of steps counted in the second mode from the number of steps counted in the first mode. 
     At step  1410 , the pedometer application can determine whether an input to end the second mode has been received. For example, the pedometer application can determine whether the user has selected an “END SESSION” option (e.g., “END SESSION” option  610  of  FIG. 6 ). If not, process  1400  may move back to step  1408  and continue counting steps in the second mode. Otherwise, process  1400  may continue to step  1412 . 
     At step  1412 , the pedometer application can stop counting steps in the second mode. Then, process  1400  may move back to step  1402  and continue counting steps in the first mode. Thus, in response to the user selecting an “END SESSION” option, the pedometer application can present a display screen similar to display screen  700  ( FIG. 7 ). 
       FIG. 15  shows a flowchart of an illustrative process for providing historical step information. Process  1500  may begin at step  1502 . At step  1504 , the pedometer application can generate a calendar of historical step information, and at step  1506 , the pedometer application can display the calendar. For example, the pedometer application can present a display screen similar to display screen  1100  ( FIG. 11 ). 
     Then, at step  1508 , the pedometer application can display step information obtained for a time period. The pedometer application can, for example, display step information obtained for the time period in an information region of the display screen (e.g., information region  1108  of  FIG. 11 ) or in its own display screen (e.g., display screen  1200  of  FIG. 12 ). The step information can include the number of steps counted during the time period. 
     At step  1510 , the electronic device can determine whether an input to view graphical information has been received. For example, the user may select to view graphical information by selecting a day in a calendar (e.g., a day highlighted by highlight region  1106  of  FIG. 11 ) or selecting a particular mode option (e.g., mode option  1206  in listing of step information  1202  of  FIG. 12 ). If the electronic device determines that an input to view graphical information has not been received, process  1500  may end at step  1512 . Otherwise, process  1500  may move to step  1514 . 
     At step  1514 , the pedometer application can determine a set of time increments and a start time for the graphical representation. For example, the set of time increments can be based on frequencies used to store the counted steps for the time period. The start time can be the same as the start time for the ambient mode of operation. At step  1516 , the pedometer application can display the graphical representation. 
     Then, at step  1518 , the pedometer application can determine whether a request to change the start time of the ambient mode has been received. For example, the user may change the start time by selecting a settings option (e.g., option  908  of  FIG. 9 ). If the pedometer application determines that a request to change the start time has been received, process  1500  may move to step  1520 . 
     At step  1520 , the pedometer application can determine an updated set of counted steps based on the changed start time. After the updated set of counted steps has been determined, process  1500  may return to step  1516 , where the pedometer application can display a graphical representation based on the updated set of counted steps. 
     Returning to step  1518 , if the pedometer application instead determines that a request to change the start time has not been received, the pedometer application can move to step  1522 . 
     At step  1522 , the pedometer application can determine whether a request to view a graphical representation of step information using a second set of time increments has been received. The user may select a second set of time increments by using one or more inputs of the electronic device. The user may, for example, rotate a click wheel or perform a pinching motion on a touch screen of the electronic device. If the pedometer application determines that a request to view a graphical representation using a second set of time increments has not been received, process  1500  may end at step  1512 . Otherwise, process  1500  may move to step  1524 . 
     At step  1524 , the pedometer application can reorganize the counted steps based on the second set of time increments. Then, process  1500  may return to step  1516  where the pedometer application can display a graphical representation based on the reorganized steps. 
     Referring now to  FIG. 16 , a flowchart of illustrative process  1600  is shown for storing historical step information. Process  1600  may start at step  1602 . Then, at step  1604 , the pedometer application can store historical step information locally on the electronic device. 
     At step  1606 , the pedometer application can determine a pre-defined duration for the maintenance of historical step information. For example, the pedometer application can determine the pre-defined duration from a settings option (e.g., option  910  of  FIG. 9 ). At step  1608 , the pedometer application can upload a portion of historical step information that is older than the pre-defined duration to a server. For example, the pedometer application can upload a portion of historical step information to server  202  of  FIG. 2 . 
     Then, at step  1610 , the pedometer application can determine whether an input to change the pre-defined duration has been received. For example, the user may select a settings option (e.g., option  910  of  FIG. 9 ) to change the duration of the historical step information locally stored on the electronic device. If the pedometer application determines that an input to change the pre-defined duration has not been received, process  1600  may move to step  1612 . 
     At step  1612 , the pedometer application can determine whether the amount of memory available is below a pre-defined threshold. For example, the pre-defined threshold can be 30% of the total storage capacity available in memory (e.g., memory  104  of  FIG. 1 ). If, at step  1612 , the pedometer application determines that the amount of memory available is not below the pre-defined threshold, process  1600  may end at step  1614 . Otherwise, process  1600  may move to step  1616 . 
     At step  1616 , if the pedometer application instead determines that the amount of memory available is below the pre-defined threshold, the pedometer application can decrease the pre-defined duration of historical step information locally stored on the electronic device. Process  1600  may then return to step  1608 , where the pedometer application can upload historical step information that is older than the pre-defined duration to the server. As a result, more memory can be made available on the electronic device. 
     Referring back to step  1610 , if the pedometer application instead determines that an input to change the pre-defined duration has been received, process  1600  may move to step  1618 . At step  1618 , the pedometer application can compare the changed duration to the pre-defined duration. After comparing the two durations, process  1600  may move to step  1620 . 
     At step  1620 , the pedometer application can determine whether the changed duration is shorter than the pre-defined duration. For example, the pedometer application can determine whether the user has selected a shorter duration using a settings option (e.g., option  910  of  FIG. 9 ). If, at step  1620 , the pedometer application determines that the changed duration is shorter than the pre-defined duration, process  1600  may move to step  1622 . 
     At step  1622 , the pedometer application can upload a portion of historical step information that is older than the changed duration to the server. Process  1600  may then return to step  1612 , where the pedometer application can determine whether the amount of memory available is below the pre-defined threshold. 
     Referring back to step  1620 , if the pedometer application instead determines that the changed duration is not shorter than the pre-defined duration, process  1600  may move to step  1624 . At step  1624 , the pedometer application can determine whether the changed duration is longer than the pre-defined duration. For example, the pedometer application can determine whether the user has selected a longer duration using a settings option (e.g., option  910  of  FIG. 9 ). If, at step  1624 , the pedometer application determines that the changed duration is not longer than the pre-defined duration (e.g., the changed duration is the same as the pre-defined duration), process  1600  may return to step  1612 , as discussed previously. 
     If, at step  1624 , the pedometer application instead determines that the changed duration is longer than the pre-defined duration, process  1600  may move to step  1626 . At step  1626 , the pedometer application can download missing historical step information (e.g., older historical step information falling between the changed duration and the pre-defined duration) from the server. After downloading the historical step information, process  1600  may return to step  1612 , as discussed previously. 
     The described embodiments of the invention are presented for the purpose of illustration and not of limitation.

Metadata:
Filing Date: 20090902
Publication Date: 20160209
Grant Date: 20160209
Priority Date: 20090902
Inventors: ROTTLER BENJAMIN
FINO JORGE
DAVYDOV ANTON
RAMACHANDRAN PRASHANTH
HAUGHAY, JR. ALLEN P.
WOOD POLICARPO
Assignee: APPLE INC
CPC Classifications: [{"code": "G06F15/00", "inventive": true, "first": false, "tree": "[]"}, {"code": "G01C22/006", "inventive": true, "first": true, "tree": "[]"}, {"code": "G01C22/006", "inventive": true, "first": true, "tree": "[]"}]
Family ID: 43626117