Global Positioning System (GPS) is widely used for the Location-Based Service (LBS) of smartphones. However, GPS dramatically increases the power consumption of a smartphone due to heavy computation overhead. Cell-tower Based Localization (CBL) can be an alternative solution to perform LBS in an energy-efficient way; but its adoption is limited due to the low positioning accuracy. This paper presents a new location estimation scheme for smartphones called Adaptive Location Detection (ALD). ALD adaptively detects the location of a smartphone considering the category of applications executed, movement pattern of a user, and the battery level. Specifically, ALD categorizes applications according to the required level of positioning accuracy, and then adaptively utilizes GPS and CBL. ALD also takes different actions according to the movement pattern of a user and the remaining battery level of the smartphone. To assess the effectiveness of the proposed scheme, we perform simulations under five location based applications and six scenarios. The evaluation results show that ALD reduces the energy consumption of GPS by 49.5% on average. Nevertheless, it satisfies the accuracy requirement of each situation.