A major problem faced by mobile application developers is that wireless devices such as cell phones have very different capabilities. One feature that is supported on one cell phone model may not be available on another model.

There are a number of methods for detecting the features and capabilities of a user agent or wireless device. In this tutorial, we focus on two of them. The first method is to make use of HTTP headers such as Accept, User-Agent, Accept-Charset and Accept-Language. The other method is to retrieve information from a UAProf (User Agent Profile) document. UAProf was defined by the Open Mobile Alliance for user agent detection and client device capabilities detection.