Additional requirements for specific app types for Windows Phone

August 19, 2014

Applies to Windows Phone

An app that uses specific phone capabilities must meet the following additional requirements.

A location aware app can access the phone location by using the classes in the System.Device.Location namespace. For more information, see Location for Windows Phone 8.

Requirement

Requirement Text

Test Steps

6.1.1 - Location aware app

Users have the ability to turn off the Location Service on the phone from the System Settings page. Location aware apps must remain responsive when the Location Service is turned off on the phone.

Recommendations

  • Present a user-friendly message to indicate that location data is not available.

  1. Navigate to the Location page under the Settings menu and set Location services to 'on'.

  2. Launch your app.

  3. Click the Home button on the device to return to the Home screen.

  4. Navigate back to the Location page under the Settings menu and set Location services to 'off'.

  5. Launch your app and verify that the app remains responsive.

6.1.2 - Using the Microsoft Location Services API

Location aware apps must determine location using the Microsoft Location Services API.

It is possible that an app in the foreground can continue to run when the phone screen is locked by setting the ApplicationIdleDetectionMode property.

When your app runs under a locked screen, it could consume power outside of the user's control and could add to their data costs without their awareness. For this reason, your app must minimize power usage when running under a locked screen, and adhere to the following requirements.

Important noteImportant Note:

For the best user experience in apps that target Windows Phone OS 7.1, Microsoft strongly recommends that you utilize the following new features while your app runs under lock, instead of setting the ApplicationIdleDetectionMode property:

Requirement

Requirement Text

Test Steps

6.3.1 - Minimize power usage when running under a locked screen

All apps that run under a locked screen must stop any UI updates, active timers, and other non-critical processing when notified that the screen is locked.

  1. Launch your app.

  2. Lock the device.

  3. Verify that any user interface updates, active timers and other non-critical processing activities are halted by the app.

6.3.2 - Apps that play audio under a locked screen

6.3.2.1 - Audio playback and battery life under a locked screen

The minimum battery life of the phone must be greater than six hours while the app plays audio under a locked screen.

  1. Launch your app.

  2. Play a music file.

  3. Lock the device.

  4. Verify that the battery life is greater than six hours.

6.3.2.2 - Idle behavior under a locked screen

If an app is not playing audio when the phone is locked, the app must remain idle while the phone screen is locked.

  1. Launch your app.

  2. Ensure that no music files are playing on the device.

  3. Lock the device.

  4. Verify that the app does not play music, and the device stays idle.

6.3.3 - Apps that do not play audio under a locked screen

6.3.3.1 - Minimum battery life under a locked screen

The minimum battery life of the phone must be greater than 120 hours while the app is running under a locked screen.

  1. Fully charge the phone battery.

  2. Turn on Airplane mode in the phone Settings page.

  3. Launch your app.

  4. Lock the device.

  5. Verify that the battery life is at least 120 hours.

An app in the Music + Videos Hub provides an integrated music and video experience on the phone as its primary function. When an app calls the MediaHistory or MediaHistoryItem classes, it is considered to be a Music + Videos Hub app and will appear in the Extras list (known in Windows Phone OS 7.0 as Marquee list) when installed on the phone. The submission process detects that the app uses these classes and automatically updates the hub type to Music + Videos in the Windows Phone app manifest file.

The following requirements apply only to a Music + Videos Hub app.

Requirement

Requirement Text

Test Steps

6.4.1 - Music + Videos Hub app functionality

The app functionality must be related to video and/or music media playback.

  1. Launch your app.

  2. Verify that the app functionality is related to video and/or music media.

  3. Verify that the app handles music and/or video playback.

  4. Verify that the app appears in the Extras list (known in Windows Phone OS 7.0 as Marquee list) when installed on the phone.

6.4.2 - Music + Videos Hub History and Now Playing list functionality

When a user taps a tile associated with the app in the History or Now Playing list of the Music + Videos Hub, the app must either (a) launch the playback experience for the content identified in the tile, or (b) launch a view that provides information about the previously played media content and allows the user to resume. The app must not launch to the main or default landing page when the user taps on a content tile in the History, Now Playing, or New list of the Music + Videos Hub.

  1. Tap on a music or video tile in the History or Now Playing list of the Music + Videos Hub.

  2. Verify that the app launches the playback experience.

6.4.3 - Music + Videos Hub History list updates

The app must update the History list of the Music + Videos Hub when the app plays media.

  1. Launch your app.

  2. Play back a video or music media file within the app.

  3. Navigate to the Music + Videos Hub and ensure that the History list contains information about the video or music media file that you played.

6.4.4 - Music + Videos Hub New list updates

The app must update the New list of the Music + Videos Hub when media is added to the device or when the user creates an "object" in the app (for example, a radio station is created, a music tag is created.)

  1. Launch your app.

  2. Create an object such as a radio station or a music tag within the app.

  3. Navigate to the Music + Videos Hub and ensure that the New list contains information about the object that you created.

6.4.5 - Music + Videos Hub containers

When the media is associated with a container, the hub tile in New and History lists in the Music + Videos Hub must represent a valid container, such as album, artist, playlist, radio station, rather than individual media items.

  1. Launch your app.

  2. Within the app, create a container of video and/or music media. For example, an album, artist, playlist or radio station, not an individual media item.

  3. Playback the container contents.

  4. Navigate to the Music + Videos Hub.

  5. Verify that the New and History lists are updated.

6.4.6 - Music + Videos Hub content

The hub tiles in the Music + Videos Hub must not contain advertisements, media feeds, or other unsolicited content.

  1. Navigate to the Music + Videos Hub.

  2. Verify that each music and video tile does not contain advertisements, media feeds, or other unsolicited content.

6.4.7 - Music + Videos Hub iconography rules

Comply with the iconography rules for the Music + Videos Hub as documented in the How to integrate with the Music and Videos Hub for Windows Phone 8 topic.

  1. Navigate to the Music + Videos Hub.

  2. Verify that each music or video tile contains the app title or logo.

  3. Verify that each music or video tile in the Now Playing list is 358 x 358 pixels.

  4. Verify that each music or video tile in any other list is 173 x 173 pixels.

  5. Verify that the Title property of the MediaHistoryItem class contains text that represents its content, such as a station name or video title.

Important noteImportant Note:

Requirements in section 6.5 do not apply to Music + Videos Hub apps on Windows Phone OS 7.0, Windows Phone OS 7.1, and Windows Phone 8, as described in section 6.4.

An app can play media in the background while it is running even when its primary function is not related to music or video. An app that plays music, audio, or sound effects must meet the following requirements:

Requirement

Requirement Text

Test Steps

6.5.1 - Initial launch functionality

NoteNote:
This requirement only applies to Windows Phone OS 7.1 and Windows Phone OS 8.0 XAML apps.

When the user is already playing music on the phone when the app is launched, the app must not pause, resume, or stop the active music in the phone MediaQueue by calling the Microsoft.Xna.Framework.Media.MediaPlayer class.

If the app plays its own background music or adjusts background music volume, it must ask the user for consent to stop playing/adjust the background music (e.g. message dialog or settings menu). This prompt must occur each time the app launches, unless there is an opt-in setting provided to the user and the user has used this setting to opt-in.

  1. Play a music file.

  2. Launch your app.

  3. Verify that while the app loads, it does not pause, resume or stop the actively playing music.

6.5.2 - Configurable functionality

If an app plays background music, the app must provide the user with configurable settings for both the background music, and the background music volume.

  1. Launch your app.

  2. Verify that the app allows a user to configure the background music or background music volume of the app.

  3. Verify that changes made to these settings do not affect music playback on the device after the app closes.

6.5.3 - Apps that play a video or audio segment

NoteNote:
This requirement only applies to Windows Phone OS 7.1 and Windows Phone OS 8.0 XAML apps.

An app may interrupt currently playing music on the phone to play a non-interactive full motion video, or a non-interactive audio segment (e.g. cut-scene or media clip) without asking for user consent.

An app must resume the music that was previously playing, once the app is closed.

For more information on how to meet this requirement for Windows Phone OS 7.0, see Creating and Using an XNA Dispatcher Service.

  1. Play a music file.

  2. While the music file plays, launch your app.

  3. Play a non-interactive, full-motion video file or a non-interactive audio segment within the app.

  4. When the file or audio segment completes, the background music of the device must resume from where it was paused.

6.5.4 - SoundEffect and background music

The SoundEffect class must not be used to play a continuous background music track in an app.

  1. Navigate to the Music + Videos Hub.

  2. Play a music file in the Music + Videos Hub.

  3. Ensure that your app is set up to play background music upon launch.

  4. Launch your app.

  5. Verify that the background music of your app does not overlap with the music being played from the Music + Videos Hub.

Requirement

Requirement Text

Test Steps

6.6.1 - Photo-editing apps: functionality

The app must implement the primary functionality associated with photo manipulation.

  1. Launch your app.

  2. Verify that the app is able to manipulate photos. For example, verify that the app is able to list, open, show or edit photos.

6.6.2 - Photo-editing apps: declaration

Windows Phone OS 7.0 

The Extras.xml file in the root XAP package must be valid according to the description in the Photo Extras App Extensibility for Windows Phone topic, located in the Windows Phone OS 7.0 documentation.

Windows Phone OS 7.1, Windows Phone 8, or Windows Phone 8.1 

The app must correctly declare an extension as described in Photo extensibility for Windows Phone 8.

6.6.3 - Photo-editing apps: launch behaviors

The app must support two kinds of launch behaviors:

  1. When an app is launched from the app list without an input photo, the app must invoke the PhotoChooser method to enable the user to pick up a photo or capture a new one.

  2. When an app is launched from the apps or edit menu in the photo viewer with an input photo in the JPEG file format, the app must implement functionality to allow the user to manipulate the input photo without any photo selection steps.

  1. On the Windows Phone start page, tap the Pictures app.

  2. Navigate to a photo.

  3. Tap the three dots at the bottom of the page on the app bar.

  4. Tap the apps or edit menu option according to the phone OS version, and tap your app name.

  5. Verify that the app allows manipulation of the photo.

  6. Navigate back to the Start screen and launch your app from the App list.

  7. Verify that the app allows the user to choose a photo.

6.6.4 - Photo-editing apps: photo manipulation

The app must display and allow photo manipulation for the photo that is used to launch the app.

  1. On the Windows Phone start page, tap the Pictures app.

  2. Navigate to a photo.

  3. Tap the three dots at the bottom of the page and on the app bar.

  4. Tap the apps or edit menu option according to the phone OS version, and tap your app name.

  5. Verify that the photo that was clicked is visible and able to be manipulated upon launch of the app.

6.6.5 - Photo-editing apps: entry points

A photo-editing app must register for the correct entry point depending on the phone's OS version.

For apps that target Windows Phone OS 7.0 or Windows Phone OS 7.1 

Your app must register for the apps entry point.

For apps that target Windows Phone 8 

Your app must register for the edit entry point.

For more information, see Photo extensibility for Windows Phone 8.

With App Connect, your app can be launched from the share menu in the photo viewer and provide a rich user experience for sharing photos to a web service. For more information about how to extend the photos experience, see Photo extensibility for Windows Phone 8.

Requirement

Requirement Text

Test Steps

6.7.1 - Photo-sharing apps: functionality

The app must implement the primary functionality associated with photo uploading and sharing.

  1. Launch your app.

  2. Verify that the primary functionality of the app is to upload or share photos.

6.7.2 - Photo-sharing apps: launch behaviors

The app must support two kinds of launch behaviors:

  1. When an app is launched from the App list without an input photo, the app must invoke the PhotoChooser method to enable the user to pick up a photo or capture a new one.

  2. When an app is launched from the share picker through the photo viewer with an input photo in the JPEG file format, the app must implement a functionality to allow the user to upload or share the input photo without any photo selection steps.

  1. On the Windows Phone start page, tap the Pictures app.

  2. Navigate to a photo.

  3. Tap the three dots at the bottom of the page on the App Bar.

  4. Tap the share menu option and tap your app name.

  5. Verify that the app allows the user to upload or share the photo.

  6. Navigate back to the Start screen and launch your app from the App list.

  7. Verify that the app allows the user to choose a photo to upload or share.

The following requirements in section 6.8 apply only to apps developed for Windows Phone OS 7.1, Windows Phone 8, or Windows Phone 8.1.

Requirement

Requirement Text

Test Steps

6.8.1 Photos Hub apps: primary app functionality

For Windows Phone OS 7.1, Windows Phone 8, or Windows Phone 8.1 

The primary functionality of the app must be related to the camera or to photos.

  1. On the Windows Phone start page, tap the Pictures app.

  2. Navigate to the "apps" pane.

  3. Launch your app from the "apps" pane.

  4. Verify that the primary functionality of the app is related to the camera or to photos.

The following requirements in section 6.9 apply only to apps developed for Windows Phone OS 7.1, Windows Phone 8, or Windows Phone 8.1.

For more information about background audio, see Background audio overview for Windows Phone 8.

Requirement

Requirement Text

Test Steps

6.9.1 - Removed

6.9.2 - Removed

6.9.3 - Universal volume control commands

For Windows Phone OS 7.1, Windows Phone 8, or Windows Phone 8.1 

An app must stop playing audio in the background when the user taps the stop button on the universal volume control.

If the playback service supports the pause action, pausing the background audio through the universal volume control must pause or restart the audio according to the user's actions.

  1. Launch your app.

  2. Begin audio playback.

  3. Close the app.

  4. Verify that the audio continues to play in the background.

  5. View the universal volume control.

  6. If the playback service supports the pause command, pause the audio through the universal volume control, verify that playback is paused, restart the audio through the universal volume control, and verify that playback restarts.

  7. Stop the audio through the universal volume control.

  8. Verify that the playback stops.

6.9.4 - Universal volume control strings

For Windows Phone OS 7.1, Windows Phone 8, or Windows Phone 8.1 

When background audio from an app plays, the metadata sent from the app to be displayed in the universal volume control must describe the audio, such as the song, track, artist, playback status or app name.

App error codes must not be displayed in the universal volume control.

Advertisements and other irrelevant content are prohibited in the universal volume control.

  1. Launch your app.

  2. Begin audio playback.

  3. Close the app.

  4. Verify that the audio continues to play in the background.

  5. View the universal volume control.

  6. Verify that the metadata for the audio playback appears and is relevant to the audio content.

6.9.5 - Background audio streaming agent

For Windows Phone OS 7.1, Windows Phone 8, or Windows Phone 8.1 

An app that uses the AudioStreamingAgent API must use it only to perform tasks related to audio playback and management of associated metadata.

  1. Launch your app.

  2. Close the app.

  3. Verify that the Background Audio Streaming Agent is only being used to stream the intended audio content and related metadata management.

The following requirements in section 6.10 apply only to apps developed for Windows Phone OS 7.1 or higher.

For more information about background file transfers, see Background file transfers for Windows Phone 8.

Requirement

Requirement Text

Test Steps

6.10.1 - User-initiated background transfers

For Windows Phone OS 7.1, Windows Phone 8, or Windows Phone 8.1 

The app must not initiate a background transfer unless a user activates a discoverable UI element that the app provides.

  1. Launch your app.

  2. Verify that there is a discoverable UI element in the app that allows background transfers.

  3. Activate the UI element to begin a background transfer.

  4. Verify that a background transfer occurs.

6.10.2 - Status of background transfers

For Windows Phone OS 7.1, Windows Phone 8, or Windows Phone 8.1 

The app must allow a user to view the status of all active and pending background transfers through a discoverable UI element while the app is in the foreground.

  1. Launch your app.

  2. Initiate a background transfer.

  3. Verify that there is a discoverable UI element that displays transfers that are in progress.

  4. Verify that the UI element correctly displays the background transfer.

  5. Activate the UI element that stops the background transfer.

  6. Verify that the progress UI element does not show the stopped background transfer.

6.10.3 - Cancelling background transfers

For Windows Phone OS 7.1, Windows Phone 8, or Windows Phone 8.1 

The app must provide a user with a discoverable UI element that allows the user to cancel an active or pending background transfer.

  1. Launch your app.

  2. Initiate a background transfer.

  3. Verify that there is a discoverable UI element that allows a user to cancel the background transfer.

  4. Activate the UI element to stop the background transfer.

  5. Verify that the background transfer stops and is no longer displayed in related UI elements.

The following requirements in section 6.11 apply only to apps developed for Windows Phone 8.

Apps that register one or both of the two navigation URI schemes, "ms-drive-to" and "ms-walk-to", must adhere to the following requirements:

Requirement

Requirement Text

Test Steps

6.11.1 - Navigation URI scheme turn by turn navigation

For Windows Phone 8 

Your app must provide real-time turn by turn navigation.

  1. Tap the hardware search button on the phone and enable location consent.

  2. Search for a term such as "pizza".

  3. Tap the first local search result in the local pivot.

  4. Tap address to view the physical address of the local search result. You will use this information to verify step 6.

  5. Return to the main local search result page, and tap directions to launch your app.

  6. Verify that the app provides a route to the local search result's physical location by comparing the destination address in your app with the physical address in step 4.

  7. Begin following the displayed directions by tapping on the first instruction.

  8. Verify that the app automatically prompts the user to continue to the second instruction, without requiring user input such as tapping the screen or speaking a command.

  9. Choose a new route for the destination by taking a different route than the directions suggest.

  10. Verify that the app adjusts the directions accordingly and continues to provide a route to the destination.

6.11.2 - Navigation URI scheme information modification

For Windows Phone 8 

Your app must not modify the information received from the navigation URI schemes, including, without limitation:

  • Modification of the starting and destination latitude and longitude; and

  • Modification of the name/label of the starting location and destination.

  1. Tap the hardware search button on the phone and enable location consent.

  2. Search for a term such as "pizza".

  3. Tap the first local search result in the local pivot.

  4. Make a note of the local search result's destination name (for example, the name of the business). You will use this information to verify step 8.

  5. Tap address to view the physical address of the local search result. You will use this information to verify step 7.

  6. Return to the main local search result page, and tap directions to launch your app.

  7. Verify that the app provides a route to the local search result's physical location by comparing the destination address in your app with the physical address in step 5.

  8. Verify that your app's representation of the destination's name matches the information in step 4.

6.11.3 - Navigation URI scheme latitude and longitude

For Windows Phone 8 

Your app must not route to a destination other than the destination latitude and longitude provided by the navigation URI schemes.

  1. Tap the hardware search button on the phone and enable location consent.

  2. Search for a term such as "pizza".

  3. Tap the first local search result in the local pivot.

  4. Tap address to view the physical address of the local search result. You will use this information to verify step 6.

  5. Tap directions to launch your app.

  6. Verify that the app provides a route to the local search result's physical location by comparing the destination address in your app with the physical address in step 4.

6.11.4 - Navigation URI launch

For Windows Phone 8 

Your app must not launch any other app prior to providing real-time turn by turn navigation

  1. Tap the hardware search button on the phone and enable location consent.

  2. Search for a term such as "pizza".

  3. Tap the first local search result in the local pivot.

  4. Tap directions to launch your app.

  5. Verify that no other app launches before navigation commences in your app.

6.11.5 - Navigation URI launch delay

For Windows Phone 8 

When your app is launched via the navigation URI scheme, the app must begin real-time navigation immediately unless user authentication or identification is necessary prior to launching navigation.

  1. Tap the hardware search button on the phone and enable location consent.

  2. Search for a term such as "pizza".

  3. Tap the first local search result in the local pivot.

  4. Tap directions to launch your app.

  5. If user authentication or identification is not necessary prior to launching real-time navigation, verify that the app immediately begins real-time navigation, without requiring user input such as tapping the screen or speaking a command.

  6. If user authentication or identification is necessary prior to launching real-time navigation, verify that the identification information is necessary for user identity or payment information. Verify that real-time navigation begins after the process is complete.

6.11.6 - Navigation URI scheme access

For Windows Phone 8 

You may not sell, lease or sublicense access to the navigation URI schemes.

The following requirements in section 6.12 apply only to apps developed for Windows Phone 8.

Rich media apps must adhere to the following requirements. For more information about rich media apps, see Rich media extensibility for Windows Phone 8.

Requirement

Requirement Text

Test Steps

6.12.1 - Rich media apps: functionality

When a photo is opened by using the open link in the photo viewer, the app must immediately load a unique viewing or editing experience for the photo

  1. Use your app to associate rich media content with a photo or photos.

  2. Navigate to one of the photos in the photo viewer.

  3. Tap the photo and tap the open link.

  4. Verify that the photo loads into a unique viewing or editing experience.

The following requirements in section 6.13 apply only to apps developed for Windows Phone 8.

Lens apps must adhere to the following requirements. For more information about lens apps, see Lenses for Windows Phone 8.

Requirement

Requirement Text

Test Steps

6.13.1 - Lens apps: functionality

When a lens app is launched from the lens picker, the app must immediately display the app viewfinder.

If a lens app requires the user to complete either of the following actions, the app must immediately display the app viewfinder after the action is completed:

  • A one-time user policy consent

  • Authentication credentials

  1. Navigate to a photo in the photo viewer.

  2. Tap the photo and tap the lens link, then tap the name of your app.

  3. Verify that the app immediately displays the app viewfinder.

The following requirements in section 6.14 apply only to apps developed for Windows Phone 8.

VoIP apps must adhere to the following requirements. For more information about VoIP apps, see VoIP apps for Windows Phone 8.

Requirement

Requirement Text

Test Steps

6.14.1 - Call coordinator registration

All incoming and outgoing VoIP calls must use the Voip.VoipCallCoordinator class.

  1. Verify that your app uses the Voip.VoipCallCoordinator class for any incoming and outgoing VoIP call.

6.14.2 - Audio-only VoIP calls

If a user taps the audio button for a VoIP call, the app must not display a video feed of the user to the other party.

  1. Receive an incoming VoIP call.

  2. Tap the audio button.

  3. Verify that a video feed is not displayed to the other party.

6.14.3 - Raw push notifications for VoIP apps

The raw push notification type 4 must be used only for incoming VoIP calls.

  1. Receive an incoming VoIP call for an app that uses the raw push notification type 4.

  2. Verify that the incoming call phone user interface displays.

6.14.4 - VoIP ringtone duration

The VoIP ringtone duration must be between 5 to 120 seconds, inclusive.

  1. Receive an incoming VoIP call.

  2. Verify that the duration of the ringtone meets the requirement criteria.

6.14.5 - VoIP ringtone file size

The VoIP ringtone file size must be 2 MB or less.

  1. Navigate to the VoIP ringtone file.

  2. Verify that the VoIP ringtone file meets the file size requirement criteria.

For more information about video upgrade customization, see How to implement video streaming for VoIP calls for Windows Phone 8.

Requirement

Requirement Text

Test Steps

6.15.1

The video upgrade customization feature must be used only for video telephony.

  1. Verify that your app can only be used for video telephony.

6.15.2

If your app replaces the default video icon provided by Windows Phone, you must display an icon that clearly indicates to the user that the icon is for a video experience rather than displaying a brand or a logo.

  1. Start a phone call.

  2. Verify that the icon of your app clearly indicates a video experience.

Show:
© 2014 Microsoft