List of some new APIs that will be introduced with the updated SDK (Windows Phone - Mango)
Join the DZone community and get the full member experience.Join For Free
Here is a list of API endpoints that will be introduced in the updated version of the Windows Phone OS. The updated bits will be shipped to developers later this spring while the OS itself will arrive on customer devices later this year.
- CaptureDeviceConfiguration - the new developer tools offer the possibility to clearly differentiate two capture devices - the video camera and the static photo camera. This will most likely be the class that will allow device configuration (e.g. enable or disable the flash) depending on a specific instance rather than set it globally.
- StretchDirection - applied to the ViewBox and defines how scaling is applied to it (inherited from Silverlight 4).
- Silverlight + XNA - those who work a lot with XNA know that it lacks an actual UI layer and when it comes to building complex UIs, it might be a pain. With Mango, Silverlight and XNA will act as one framework. That being said, developers will be able to use XNA content in Silverlight applications and vice versa.
- Span, Section, Block, Italic, Paragraph, GlyphTypeFace, Underline, TextPointer - all the goodies needed to create and manipulate custom text documents on the fly.
- ViewBox - the same well-known ViewBox from Silverlight.
- Typeface - a combination of font characteristics, a sort of a font template. Already available in Silverlight.
- TextElement - the same TextElement from Silverlight that can be used as a foundation for text-based components.
- ShellTile - now it will be possible to modify the application tile without invoking push notifications. This was not possible with the current version of the SDK since the data used for the tile itself was hardwired in the application configuration file and the only mechanism having access to its modifiers was the one responsible for tile-based push notifications.
- HTML5 - with the updated version of Internet Explorer (version 9), it will be possible to access rich HTML5 capabilities (like Canvas, new document formatters and video & audio tags) right from the browser.
- AudioFormat - will allow the developer to take advantage of the native wave audio format support to build audio data directly in a format that is supported on various clients. If you've used the Microphone class, you know that the WAV header is missing and all that is being manipulated is the PCM audio data. With this update, developers won't need to add the header-creation layer manually.
- FlowDirection - allows content inside a control to "flow" in a specific direction, making it easier to organize UI components without the need to constantly use StackPanel "hacks".
- Sockets - the long awaited support for networking components that will allow building TCP/UDP-based applications, like Skype and IRC clients. Internal support for sockets was present from the very beginning and Jeremiah Morill built a wrapper around the native layer, but that will only work for unlocked devices and won't get approved in the marketplace. This won't be a problem anymore.
- ElevatedPermissions - this might allow applications to ask for elevated permissions when those need to access the phone on a lower level (e.g. the caller mechanism). Not yet confirmed.
- Deep Linking - applications will be able to store references outside the application to content in the application itself. An example of such an approach can be seen when the application creates external live tiles that will link to different content parts. Let's say there is a Twitter client. The users will be able to deep-link to specific pages, like Mentions, Retweets, Profile, etc.
- Account - might give access to the linked accounts. For example, could be used to directly post on the Facebook wall or upload pictures to the SkyDrive folder.
- Compass - there will finally be support for the Compass API and that will be a great boosting element for new location-based applications.
- IDataErrorInfo - developers will no longer have to rely on third-party client-side validation solutions.
- Live Tiles - with the current build of the SDK, non-system applications cannot create live tiles besides the app icon itself. As I mentioned before, with deep linking there will be the possibility to create multiple live tiles for different application parts. Also, this should enable developers to display content on the home screen that can be related to different content generators (e.g. shortcuts to traffic maps and weather maps). An important thing to mention here is that the application will not be able to create live tiles automatically. The users will have to manually place a live tile outside the app. This precaution measure is introduced to avoid apps that will simply fill the home screen with unnecessary information without the user's consent.
- Clipboard - there will now be limited access to the system clipboard. The developer won't be able to implement clipboard reading capabilities - only setting (via SetText). This is yet another precaution measure to avoid applications that will try to acquire user data in unauthorized ways.
- RichTextBox - this won't really be an editable control but rather a TextBlock with capabilities to display rich content (e.g. custom fonts, text in different colors and styles).
- VideoFormat - should allow developers to have access to the video format used to record in-app video with the updated camera tasks, plus the imported video content.
- BingMapsTask - of course, Maps can be launched from a third-party app at this moment too, but this involves less than an elegant hack. Now it will be an integrated task, making it much easier to invoke and manage.
- Sensor API - this mostly applies to proximity and light sensors, as I would think. Other sensors include the Compass and Gyroscope.
- MediaHistory - there will be the possibility to access media history (referring to locally stored media available through the media hub).
- AddressChooserTask - it will be easier to get more contact information, not just the phone number and the name.
- AudioPlayerAgent - did
you see that little popup whenever you play a song on your phone? That
is one of the linked components related to the AudioPlayerAgent that
will allow the user to play music in the background and control it from
the app and outside it.
- Blob - most likely is related to the local storage (SQLCE) that will be available with the new SDK.
- BackgroundAgent - this should allow applications to perform a limited set of background operations. Initially, BackgroundAgent will be pretty restrictive to avoid abuse.
- Alarms - eager to create a better alarms management application? Then this will be a great addition for you. It is yet to be announced whether this will be a read-only API (only access the list of current alarms) or one that will actually facilitate the creation of new ones.
- PhotoCamera - it will be possible to put the camera viewfinder directly in the application without the need to invoke the CameraCaptureTask. This is already possible via a hidden reflection hook. What's going to be done is making this hook public.
- Fast App Resume - with Mango the default tombstoning process went through an overhaul that will now allow applications to resume their state much faster (especially given that the multi-tasking ability will be available at the time of release).
- AudioSink - this class will allow the developer to minimize the efforts made to read specific audio-related low-level information. For example, the audio graph will be available through an implicit implementation of the abstract class.
- AudioStreamingAgent - will allow streaming audio content in the background. It is safe to assume that this agent will be primarily made for Windows Media and MP3/WAV content.
- GameInviteTask - for those who have an Xbox Live license (to use specific service capabilities) this will allow implementations of multiplayer games, where people can invite each other to play together in a single game session.
- Local Database - SQLCE will be available as a part of the updated platform. Nothing is known yet as to what quotas will be introduced per application (if any).
- Camera - the base class for PhotoCamera and VideoCamera.
- SaveRingToneTask - once again, there was a hidden reflection hook for this too. It will now be open to public.
- AutomationEvent - will facilitate tracking of automation events for UI testing.
- Pickers - the Silverlight for Windows Phone Toolkit already offers some of them (e.g. for time) and the Coding4Fun Toolkit offers color pickers. I can't say anything about the color ones, but the numerical pickers will be bundled with the OS.
- IPAddress - will allow developers to read the current address assigned to the phone.
- IDataObject - used by the Clipboard and can be used to build drag-and-drop solutions. Details on MSDN.
- DomainAcquirer - used to facilitate the playback of protected media content (e.g. videos and/or songs).
- VideoBrush - familiar with ImageBrush? This class follows the same idea, but instead of an image, a video is used as the brush foundation.
- Live Tasks - will allow the display of custom messages that will alert about upcoming tasks related to the application (read: created inside/by it).
- BinMapsDirectionsTask - will provide an easy integration layer for the Maps application to generate directions to specific locations.
- GestureEvent - easier access to on-screen gestures. I can only assume that this will be heavily based on GestureService/GestureListener available in the Silverlight for Windows Phone Toolkit.
- Multitasking - of course there will be support for multitasking. At MIX11 we saw the task manager and how applications are transferred to background operations while other start working.
- Upodated Push Notifications - the process of obtaining and registering a service will be much easier and more reliable. The basic idea behind existing push notifications will remain the same.
- CaptureSource - used to manage the custom viewfinder for PhotoCamera and VideoCamera. Represents the source of imaging content.
- Gyroscope - will facilitate the creation of many new applications and especially games. For a quick demo of what a G-sensor can do, take a look at this video. It is important to mention that not all phones have a gyroscope integrated in the device and this will be a component part of the second generation devices (as outlined in the new specs).
- InteropServices - will most likely give access to some lower-level system APIs (but most likely will only allow the usage of Alarms, RingtoneLibrary and such).
Opinions expressed by DZone contributors are their own.