App capabilities and hardware requirements for Windows Phone 8

Capabilities and hardware requirements are entries in the app manifest that affect the user. You must mark the appropriate capabilities in the manifest so that the user is correctly notified of functionality that your app uses. If you don’t mark the correct capabilities, your app may exit unexpectedly when it is being installed on a user phone. Requirements are used to specify the hardware requirements of your app to ensure that only users with hardware that can run your app can see your app in the Windows Phone Store, and can download and install it. For these reasons, it’s important that you know the capabilities and hardware requirements for your app, and correctly mark the app manifest. This topic discusses capabilities and hardware requirements in more detail. For more info about the format of the app manifest file, and how to specify capabilities and requirements using the manifest editor, see App manifest file for Windows Phone 8.

This topic contains the following sections.

Software capabilities

Capability elements are entries in the manifest file that notify the user while installing the app of special software capabilities that your app receives. When you test your app on Windows Phone Emulator during the development process, if your app uses APIs associated with items such as location services or device ID, your app is automatically granted the corresponding capability. However, to function correctly on a phone, you must modify the WMAppManifest.xml file to include the correct list of capabilities that your app requires. For this reason, you must mark the manifest file appropriately before you submit the app to the Store. For more information about detecting and marking the correct capabilities for your app, see How to determine app capabilities for Windows Phone 8 and how to use the manifest editor. The capabilities listed in the app manifest are disclosed to a user when they view an app for purchase in Windows Phone Store. Some capabilities, such as location services, are prominently displayed so the user is fully aware that an app will be accessing their location information.

The following table lists the software requirements you can specify, and related documentation for that requirement, in addition to documentation related to that capability.

Capability

Version

Description

ID_CAP_APPOINTMENTS

Windows Phone OS 7.1

Windows Phone 8

Provides access to appointment data.

How to access calendar data for Windows Phone 8

ID_CAP_CONTACTS

Windows Phone OS 7.1

Windows Phone 8

Provides access to contacts data.

How to access contact data for Windows Phone 8

ID_CAP_GAMERSERVICES

Windows Phone OS 7.1

Windows Phone 8

Provides access to Xbox LIVE services. This capability must be disclosed because an app could share data with Xbox.

ID_CAP_IDENTITY_DEVICE

Windows Phone OS 7.1

Windows Phone 8

Provides access to device-specific information such as a unique device ID, or the manufacturer or model name.

Device status for Windows Phone 8

ID_CAP_IDENTITY_USER

Windows Phone OS 7.1

Windows Phone 8

Gives an app the ability to use an anonymous Microsoft account to identify the user.

ID_CAP_ISV_CAMERA

Windows Phone OS 7.1

Windows Phone 8

Provides access to the rear (primary) camera or front-facing camera.

Camera and photos for Windows Phone 8

ID_CAP_LOCATION

Windows Phone OS 7.1

Windows Phone 8

Provides access to location services.

Location for Windows Phone 8

ID_CAP_MAP

Windows Phone OS 7.1

Windows Phone 8

Provides access to mapping functionality.

Maps and navigation for Windows Phone 8

ID_CAP_MEDIALIB

Windows Phone OS 7.1 only. Windows Phone 8 apps should use the more specific media library capabilities.

Provides access to the media library.

How to integrate with the Music and Videos Hub for Windows Phone 8

ID_CAP_MEDIALIB_AUDIO

Windows Phone 8

Provides read-only access to audio items, including lists of audio items and audio item properties such as title and description, in the media library. It also provides the ability to add or delete songs. Delete operations display an additional prompt to the user.

How to integrate with the Music and Videos Hub for Windows Phone 8

ID_CAP_MEDIALIB_PHOTO

Windows Phone 8

Provides read-only access to photos in the media library, and photo properties, such as category. It also gives an app the ability to save photos in the Camera Roll and Saved Pictures folders.

Camera and photos for Windows Phone 8

ID_CAP_MEDIALIB_PLAYBACK

Windows Phone 8

Provides read/write access to media items that are currently playing. It also gives an app the ability to add media items to the History, Favorites, and New collections. Also supports background and foreground playback from an app’s isolated storage using the MediaElement control.

How to integrate with the Music and Videos Hub for Windows Phone 8

ID_CAP_MICROPHONE

Windows Phone OS 7.1

Windows Phone 8

Provides access to the phone’s microphone. An app with this capability can record without a visual indication that the microphone is recording.

How to access the microphone for Windows Phone 8

ID_CAP_NETWORKING

Windows Phone OS 7.1

Windows Phone 8

Provides access to network services. This capability must be disclosed because an app could incur charges when a phone is roaming.

Important Note:
The networking capability is automatically included when an app is deployed from Visual Studio to a Windows Phone or Windows Phone Emulator. If your app requires networking, you must specify this capability in the app’s manifest file when you submit the app to the Store. If you don’t specify the networking capability, the app could fail when it’s installed on a user’s phone.

Communications for Windows Phone 8

ID_CAP_PHONEDIALER

Windows Phone OS 7.1

Windows Phone 8

Provides the ability to use the PhoneCallTask API.

ID_CAP_PROXIMITY

Windows Phone 8

Provides access to Near Field Communication (NFC) services.

Proximity for Windows Phone 8

ID_CAP_PUSH_NOTIFICATION

Windows Phone OS 7.1

Windows Phone 8

Provides the ability to receive push notifications from an internet service. This capability must be disclosed because an app could incur roaming charges.

Sending push notifications for Windows Phone 8

ID_CAP_REMOVABLE_STORAGE

Windows Phone 8

Provides access to data storage on an external storage component, such as an SD card.

Data for Windows Phone 8

ID_CAP_RINGTONE_ADD

Windows Phone 8

Provides the ability to add ringtones to the phone.

How to use the save ringtone task for Windows Phone 8

ID_CAP_SENSORS

Windows Phone OS 7.1

Windows Phone 8

Provides access to any Windows Phone sensor.

Sensors for Windows Phone 8

ID_CAP_SPEECH_RECOGNITION

Windows Phone 8

Provides access to speech recognition and text-to-speech (TTS) services.

Speech for Windows Phone 8

ID_CAP_VOIP

Windows Phone 8

Provides access to voice over IP (VoIP) calling services.

VoIP apps for Windows Phone 8

ID_CAP_WALLET

Windows Phone 8

Provides access to interactions with Wallet such as saving, updating, and deleting deals, membership cards, and payment instruments.

Wallet for Windows Phone 8

ID_CAP_WALLET_PAYMENTINSTRUMENTS

Windows Phone 8

Provides access to Wallet payment instruments such as credit and debit cards. Doesn’t grant access to the secure element for secure NFC transactions.

Wallet for Windows Phone 8

ID_CAP_WALLET_SECUREELEMENT

Windows Phone 8

Provides access to a Wallet secure element for secure NFC transactions.

Wallet for Windows Phone 8

ID_CAP_WEBBROWSERCOMPONENT

Windows Phone OS 7.1

Windows Phone 8

Provides access to a web browser component. This capability must be disclosed because an app could use scripting, which introduces security risks.

WebBrowser control for Windows Phone 8

ID_HW_FRONTCAMERA

Windows Phone OS 7.1 only.

Windows Phone 8 apps should use the ID_REQ_FRONTCAMERA hardware requirement.

Indicates that your app has some features that require the front-facing camera. It is used only to warn users that don’t have a front-facing camera on their phone.

Camera and photos for Windows Phone 8

Functional Capabilities

[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]

A functional capability is an optional entry in the app manifest file that indicates that your app is requesting a hardware capability of the phone which is present, but not automatically granted.

Functional capability

Version

Description

ID_FUNCCAP_EXTEND_MEM

Windows Phone 8

Doesn’t opt out of lower-memory devices (installs on all devices), but is granted the higher memory allocation instead of the default lower level. Requesting this functional capability means that your app receives the maximum memory limit by phone type: 180 MB on lower-memory phones; 380 MB on phones with > 1-GB memory.

App memory limits for Windows Phone 8

Hardware requirements

A requirement element is an optional entry in the app manifest file that is used to specify hardware requirements and limit the exposure of an app to users that have a phone with the necessary hardware to run the app. If your app requires certain hardware to function correctly, you should add the requirement to the app manifest before you submit it to the Store. This means that your app will only be displayed and available for purchase, and then download and installation by users with a phone that has the required hardware. Failure to mark hardware requirements correctly could result in poor ratings for your app because it could be purchased by a user and not function correctly on their phone. For more information about marking the correct hardware requirements see App manifest file for Windows Phone 8.

The following table lists the hardware requirements you can specify, and related documentation for that requirement, in addition to documentation related to that capability.

Requirement

Version

Description

ID_REQ_MEMORY_90

Windows Phone OS 7.1

For Windows Phone OS 7.1, indicates that the app requires more than 90 MB of memory and is not suited for a lower-memory device.

If you are using the Windows Phone SDK 7.1, including this requirement in the app manifest will not prevent the app from being deployed from Visual Studio to the 256-MB Windows Phone Emulator or to a tethered lower-memory device.

Developing apps for lower-memory phones for Windows Phone 8

ID_REQ_MEMORY_300

Windows Phone 8

For Windows Phone 8, indicates that the app requires more than 180 MB of memory and is not suited for a lower-memory device.

App memory limits for Windows Phone 8

ID_REQ_FRONTCAMERA

Windows Phone 8

Indicates that an app requires a front-facing camera to function correctly. Adding this requirement prevents the app from installing on a phone without a front-facing camera.

How to create a base camera app for Windows Phone 8

ID_REQ_REARCAMERA

Windows Phone 8

Indicates that an app requires a back-facing camera to function correctly. Selecting this option prevents the app from installing on a phone without a back-facing camera.

How to create a base camera app for Windows Phone 8

ID_REQ_NFC

Windows Phone 8

Indicates that an app requires a phone with a chip that enables Near Field Communication (NFC) to function correctly. Selecting this option prevents the app from installing on a phone without an NFC chip.

Proximity for Windows Phone 8

ID_REQ_MAGNETOMETER

Windows Phone 8

Indicates that an app requires a phone that contains a compass to function correctly. Selecting this option prevents the app from installing on a phone that doesn’t have a compass.

How to get data from the compass sensor for Windows Phone 8

ID_REQ_GYROSCOPE

Windows Phone 8

Indicates that an app requires a phone that contains a gyroscope to function correctly. Selecting this option prevents the app from installing on a phone that doesn’t have a gyroscope.

How to get data from the gyroscope sensor for Windows Phone 8