Check your Mobile Device capabilities in VB.NET


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.


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]
End Get
ReadOnly Property Value() As [String]
End Get
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.


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
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.LabelField = " CapabilityType"

Compile the sample and test your Mobile Device's Capabilities.

Figure 2: The sample in action