In ubiquitous computing (ubicomp) environments, it is often necessary for the applications to have situation-awareness capability. Current research on situation-aware applications is mainly based on situations with a predefined set of contexts. To achieve more flexible situation-awareness, situation-aware applications should have the ability to discover and collect contexts in a timely and organized fashion. Due to the dynamic and ephemeral nature of ubicomp environments, a context discovery protocol (CDP) that defines the entire process of discovering, acquiring, aggregating and storing contexts, is needed. Because of the serious resource constraints on ubicomp devices, the CDP must be adaptive, lightweight and energy-efficient. In this paper, a CDP with such characteristics for ubicomp environments is presented. The experimental results to show that our CDP is more energy-efficient and has a small increase in latency, compared to a simple context discovery protocol, are also presented.