Introduction
This sample is a utility to determine the capabilities
of a Mobile Device. The MobileCapabilities class available in the Mobile
Internet Toolkit provides a list of useful information on the client device. You
can use this class to determine whether the target client device supports
certain functionality.
Our sample consists of a Mobile Web Form, which
displays the capabilities of the client device. The MobileCapabilities class is
created on Page Load and the Capability information is available
programmatically. We make use of Reflection at run time to peek into the Device
Capabilities class and extract it's properties and the corresponding values into
an ArrayList object. The capabilities and their values for the mobile device are
then displayed in user-friendly format in an ObjectList control using Data
Binding.
Create a new project of Type "Visual Basic Project"
using Template "Mobile Web Application". In the default Mobile Web Form that is
created along with the project, insert a Label and an ObjectList control as
shown in Figure 1.
Figure 1: Designing the Mobile Web Form
Now we will define our class, which will be used to
hold the capability information. Add the following code to the code view just
above the class definition for the Mobile Web Form.
Class
Capability
Private _strName, _strValue
As [String]
Public Sub
New(ByVal
strCapabilityType As [String],
ByVal strValue
As [String])
_strName = strCapabilityType
_strValue = strValue
End Sub
'New
Public
ReadOnly
Property CapabilityType() As
[String]
Get
Return _strName
End Get
End Property
Public ReadOnly
Property Value()
As [String]
Get
Return _strValue
End Get
End Property
End Class
'Capability
Double click on the Mobile Web
Form in Form View and start adding code to the Form_Load event as explained
below.
1. Declare and instantiate an
object of class MobileCapabilities.
Dim
currentCapabilities As
System.Web.Mobile.MobileCapabilities
currentCapabilities = CType(Request.Browser,
MobileCapabilities)
2. Get the properties and the
corresponding values of the MobileCapabilities object in Capability objects
(define in the beginning of the sample). We make use of Reflection to achieve
this. This is a better alternative to hard-coding the property names and
querying for the values. An ArrayList object is used to contain a collection of
these Capability objects.
Dim
oTypePropertyInfo() As PropertyInfo
oTypePropertyInfo = currentCapabilities.GetType().GetProperties()
Dim oAcap
As New ArrayList
Dim i As
Integer
For i = 0 To
oTypePropertyInfo.Length - 1
oAcap.Add(New
Capability(oTypePropertyInfo(i).Name,
currentCapabilities(oTypePropertyInfo(i).Name)))
Next i
3. Use the populated
ArrayList to Bind to the ObjectList control as shown below.
ObjectList1.DataSource = oAcap
ObjectList1.DataBind()
ObjectList1.LabelField = " CapabilityType"
Compile the sample and test
your Mobile Device's Capabilities.
Figure 2: The sample in
action