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. |
ID_CAP_CONTACTS |
Windows Phone OS 7.1 Windows Phone 8 |
Provides access to contacts data. |
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. |
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. |
ID_CAP_LOCATION |
Windows Phone OS 7.1 Windows Phone 8 |
Provides access to location services. |
ID_CAP_MAP |
Windows Phone OS 7.1 Windows Phone 8 |
Provides access to mapping functionality. |
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. |
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. |
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.
|
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. |
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. |
ID_CAP_REMOVABLE_STORAGE |
Windows Phone 8 |
Provides access to data storage on an external storage component, such as an SD card. |
ID_CAP_RINGTONE_ADD |
Windows Phone 8 |
Provides the ability to add ringtones to the phone. |
ID_CAP_SENSORS |
Windows Phone OS 7.1 Windows Phone 8 |
Provides access to any Windows Phone sensor. |
ID_CAP_SPEECH_RECOGNITION |
Windows Phone 8 |
Provides access to speech recognition and text-to-speech (TTS) services. |
ID_CAP_VOIP |
Windows Phone 8 |
Provides access to voice over IP (VoIP) calling services. |
ID_CAP_WALLET |
Windows Phone 8 |
Provides access to interactions with Wallet such as saving, updating, and deleting deals, membership cards, and payment instruments. |
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. |
ID_CAP_WALLET_SECUREELEMENT |
Windows Phone 8 |
Provides access to a Wallet secure element for secure NFC transactions. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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 |