Capabilities are an easy way for the user to know about the resources / functionalities that an app can utilize and then decide to download the app . Some of these include camera access, geographic location data etc .
When a new Windows Phone project is created , by default , all the capabilities are included by default in the WMAppManifest.xml file .
These Capabilities include
- ID_CAP_GAMERSERVICES – This is needed if the Windows Phone App interacts with the XBox Live.
- ID_CAP_IDENTITY_DEVICE – This is needed if the Windows Phone App retreives unique Device ID or other unique device information.
- ID_CAP_IDENTITY_USER – This is needed if the Windows Phone app retreives the anonymous LiveID of the user for identifying the user.
- ID_CAP_LOCATION – This is needed if the Windows Phone app utilizes Geographic location services.
- ID_CAP_MEDIALIB – This is required of the Windows Phone app accessess the phone’s media library.
- ID_CAP_MICROPHONE – This is needed for the Windows Phone app that uses the microphone.
- ID_CAP_NETWORKING – This is needed if the Windows Phone app utilizes the data connection.
- ID_CAP_PUSH_NOTIFICATION – This is needed if the Windows Phone app uses push notifications.
- ID_CAP_SENSORS – Required for the apps that utilizes sensors like accelerometer , gyroscope , compass etc.
- ID_CAP_WEBBROWSERCOMPONENT – This is needed if the Windows Phone app uses WebBrowser control.
- ID_CAP_ISV_CAMERA – This is needed if the Windows Phone app uses the device’s camera.
- ID_CAP_CONTACTS – This is needed if the Windows Phone app uses the Contacts class for searching the users.
- ID_CAP_APPOINTMENTS – This is needed if the Windows Phone app uses the Appointments class to search appointments.
Below is a sample WMAppManifest.xml file
<?xml version="1.0" encoding="utf-8"?>
<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" AppPlatformVersion="7.1">
<App xmlns="" ProductID="{28dcb0f4-93d3-459b-841b-b1a78e9dae09}" Title="PhoneApp4" RuntimeType="Silverlight" Version="1.0.0.0" Genre="apps.normal" Author="PhoneApp4 author" Description="Sample description" Publisher="PhoneApp4">
<IconPath IsRelative="true" IsResource="false">ApplicationIcon.png</IconPath>
<Capabilities>
<Capability Name="ID_CAP_GAMERSERVICES"/>
<Capability Name="ID_CAP_IDENTITY_DEVICE"/>
<Capability Name="ID_CAP_IDENTITY_USER"/>
<Capability Name="ID_CAP_LOCATION"/>
<Capability Name="ID_CAP_MEDIALIB"/>
<Capability Name="ID_CAP_MICROPHONE"/>
<Capability Name="ID_CAP_NETWORKING"/>
<Capability Name="ID_CAP_PHONEDIALER"/>
<Capability Name="ID_CAP_PUSH_NOTIFICATION"/>
<Capability Name="ID_CAP_SENSORS"/>
<Capability Name="ID_CAP_WEBBROWSERCOMPONENT"/>
<Capability Name="ID_CAP_ISV_CAMERA"/>
<Capability Name="ID_CAP_CONTACTS"/>
<Capability Name="ID_CAP_APPOINTMENTS"/>
</Capabilities>
<Tasks>
<DefaultTask Name ="_default" NavigationPage="MainPage.xaml"/>
</Tasks>
<Tokens>
<PrimaryToken TokenID="PhoneApp4Token" TaskName="_default">
<TemplateType5>
<BackgroundImageURI IsRelative="true" IsResource="false">Background.png</BackgroundImageURI>
<Count>0</Count>
<Title>PhoneApp4</Title>
</TemplateType5>
</PrimaryToken>
</Tokens>
</App>
</Deployment>