A vehicle mode manager that manages vehicle state information is provided. The
vehicle mode manager includes a code module that registers an application program
with the vehicle mode manager. Registering indicates the application program will
be notified of vehicle state changes. Also included in the vehicle mode manager
is a code module that receives vehicle status information, and a code module that
determines a vehicle state based on both the vehicle status information and a current
vehicle state. In addition, a privileged application or another manager can also
set the vehicle state. The vehicle mode manager also includes a code module that
provides the vehicle state to an application program. In this manner, the application
program can react to the vehicle state information in a predefined manner.