A method for determining a location of a mobile device comprising: identifying , by an application processor of the mobile device, that the mobile device is currently in a first movement state; sending , by the application processor to a coprocessor of the mobile device, a request to identify a change in a current movement state of the mobile device to a second movement state and to notify the application processor regarding the change in the current movement state of the mobile device; after sending the request, decreasing , by the application processor, a power level of the application processor; monitoring over a period of time, by the coprocessor, movement information and determining, by the coprocessor, a motion classification of the mobile device, wherein determining the motion classification comprises: analyzing the movement information to classify the movement information of the mobile device; generating a motion classification histogram over the period of time, and identifying the motion classification which occurs most often during said period of time; determining , by the coprocessor, that the identified motion classification corresponds to the second movement state; sending , by the coprocessor to the application processor, a notification regarding the motion classification of the mobile device corresponding to the second movement state; receiving, by the application processor, the notification; and determining , by the application processor, based on the notification, whether to obtain location information; in response to determining that the location information should be obtained, increasing , by the application processor, the power level of the application processor; and obtaining, by the application processor, the location information of the mobile device after increasing the power level of the application processor. identifying , by an application processor of the mobile device, that the mobile device is currently in a first movement state; sending , by the application processor to a coprocessor of the mobile device, a request to identify a change in a current movement state of the mobile device to a second movement state and to notify the application processor regarding the change in the current movement state of the mobile device; after sending the request, decreasing , by the application processor, a power level of the application processor; monitoring over a period of time, by the coprocessor, movement information and determining, by the coprocessor, a motion classification of the mobile device, wherein determining the motion classification comprises: analyzing the movement information to classify the movement information of the mobile device; generating a motion classification histogram over the period of time, and identifying the motion classification which occurs most often during said period of time; analyzing the movement information to classify the movement information of the mobile device; generating a motion classification histogram over the period of time, and identifying the motion classification which occurs most often during said period of time; determining , by the coprocessor, that the identified motion classification corresponds to the second movement state; sending , by the coprocessor to the application processor, a notification regarding the motion classification of the mobile device corresponding to the second movement state; receiving, by the application processor, the notification; and determining , by the application processor, based on the notification, whether to obtain location information; in response to determining that the location information should be obtained, increasing , by the application processor, the power level of the application processor; and obtaining, by the application processor, the location information of the mobile device after increasing the power level of the application processor. <EOS>