I Love Windows Phone–My new HTC 8X

I Love Windows Phone. Before WP, I was and I am still in love with Windows Mobile – only the best (and I still believe) mobile OS till now. I had HTC Touch and i-mate SmartFlip devices.  So, when HTC released Mozart, I and few of my friends ordered it at very high rates and with just 7 day warranty!. Now it’s been ~3 years that I’m using it. However, this device still works and looks like a charm. Never hanged, never crashed and never gave sluggish response. For me, the basic required functionalities and apps were there. However, there was some annoyance about transferring files and some notification fails.

So, I wanted to upgrade. Upgrade to next WP release and here it is. HTC 8X. One of the most beautiful phones out there. A slim-trim-power packed device. You can read the full specs here.


There are some very nice (some asked for and some proactively provided) features included in this release of WP. And here is a quick shot. Here, I would like to point out some of the best features I liked about WP8. For rest of them, click here

01. Direct file transfer from Windows Explorer


As you can see, you can just plug-in your device and it appears in your Windows Explorer. You can transfer any kinds of files just like you do with your devices. Yes, it was most awaited feature and I’m happy that finally it is here. Plus you can set your own ringtones [though I hate personal ringtones other than the default ones. Sometimes it is annoying]. Find more information here.


Also, there is new sync software for Windows 8 users. This one is pretty good to transfer audio/video and images. Still, I would prefer ZUNE anytime. And trust me ZUNE is ANYTIME better than iTunes. iTunes sucks.

02. Indic Support

I’m from India and many of my friends (even my mom) would need Marathi (Devnnagari/Indic Script) to use some of the phone features or browse the net. WP7 didn’t had that functionality. But with WP8, you get it here


03. Total Device Backup

Finding your phone and wiping the data is a nice feature. Remote wipe was there since Windows Mobile days and the legacy was carried forward to WP as well. However, with WP8 you get total backup of your device.


04. Notifications

WP7 had notifications like Toast, Tile and Badge. But for me it was hard to get notified with apps like Skype and WhatsApp. With WP8 you get these notification directly on lock screen and as well as on start screen if you’ve pinned that app. Not a single notification missed till now Smile


05. Offline Maps

With Nokia, you get Nokia Drive and other beautiful navigation apps. With HTC, the choice was limited. However, with WP8 you get offline maps to download (and I think, they’re Nokia Maps). So, you can roam around even if you don’t have good net connectivity.


06. Start Screen Personalization

Well, there is nothing new as such. Live tiles were there before (in WP7), but now you get multiple sizes and it really helps you to personalize your start screen. It takes approx 15-20 mins to customize this screen, but it can be highly productive in long run. Plus, the colors and design are so lively/fresh that I can’t get bored of it. There are many people who feel the same. It is not like a dead icon on other platforms. You can see, how all my important apps/social network apps/mails are just one tap away.



As I mentioned above, there are many new features like Kid’s corner, Wallet, Office Integration and much more. You can get more information about all those features click here.

However, with technology, there can’t be something enough. There will be always a new core in chip, always a new functionality in OS and always a requirement for an app. I know it will take time to grow with Windows Phone, but whatever I’ve, I’m loving it. All my required apps, functionalities are well fitted in this release of WP. For upcoming features, well, we’ve next version coming up. And this time, your device will upgrade to it. Smile


Mayur Tendulkar | www.mayurtendulkar.com

Downloading images and storing in PictureLibrary

Recently, one of my friend Kunal and I were discussing about storing images in Picture Library on Windows Phone. At first, it looks pretty simple task as there are launcher/choosers concepts to handle this kind of situation. People can use PictureChooseTask to select a particular picture from Picture Library, however saving picture to the same is bit tricky. So, here is the solution.

Saving image files (from your application or downloaded from web site) to Picture Library is multistep procedure like:

  • Downloading image from Web or capturing image within your application.
  • Create StreamResourceInfo and StreamReader for returned image stream.
  • Temporarily storing image in application’s IsolatedStorage
  • Creating bitmap image from the temporary image and storing it in Picture Library.

If you’ve your image in your application (may be content or resource), you can follow MSDN Code Sample for storing that image into Picture Library. However, if you’re downloading the image from web, following code will help you.

  • Add reference to following required assemblies or include them into your project:
 using Microsoft.Xna.Framework.Media;  
using System.Windows.Resources;
using System.Windows.Media.Imaging;
using System.IO.IsolatedStorage;
using System.IO;

  • On click of a button, download image from web using WebClient. Along with it add an event handler (for callback) as this method is going to run asynchronously.
 private void button1_Click(object sender, RoutedEventArgs e)  
WebClient web = new WebClient();
web.OpenReadCompleted += web_OpenReadCompleted;
new Uri("http://iunlockjoy.cloudapp.net/Content/images/phone2.jpg",

  • On callback read the image and store it in IsolatedStorage, read it and store in Picture Library.  
 void web_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)  
//Get the image stream and read it
var imageStream = new StreamResourceInfo(e.Result, null);
var streamReader = new StreamReader(imageStream.Stream);
//Create temp holder for image
String tempJPEG = "TempJPEG";
//Get application's ISOStore & check for prior files with same name.
var myStore = IsolatedStorageFile.GetUserStoreForApplication();
if (myStore.FileExists(tempJPEG))
//Create a stream to save the temp file
IsolatedStorageFileStream myFileStream = myStore.CreateFile(tempJPEG);
byte[] contents;
//Binary read to read the image stream
BinaryReader bReader = new BinaryReader(streamReader.BaseStream);
contents = bReader.ReadBytes((int)streamReader.BaseStream.Length);
//Actually creating bitmap here
BitmapImage bitmap = new BitmapImage();
bitmap.CreateOptions = BitmapCreateOptions.None;
WriteableBitmap wb = new WriteableBitmap(bitmap);
//Saving this bitmap into ISOStore
wb.SaveJpeg(myFileStream, wb.PixelWidth, wb.PixelHeight, 0, 85);
//Don't forget to close the stream
//Open stream to read the file
myFileStream = myStore.OpenFile(tempJPEG, FileMode.Open, FileAccess.Read);
//Get access to user's media library for pictures, videos, music files
MediaLibrary library = new MediaLibrary();
// Save the image to the saved pictures album.
Picture pic = library.SavePicture("SavedPicture.jpg", myFileStream);
MessageBox.Show("Image saved to saved pictures album");
//Again, don't FORGET to close the stream

  • Now, navigate to Picture Library > Saved Pictures and you should have the image stored over there.

I’ll really appreciate if Microsoft, will come up with PictureSaveTask (launcher) to save the picture in Picture Library to make the consistent programing methodology.

You can download the entire source code from my SkyDrive. I hope, it will help you to build some great apps. Happy Coding.


Mayur Tendulkar | www.mayurtendulkar.com

Getting Ready for Free PUG WP Training

Thanks for registering to Pune User Group’s Windows Phone Training event. If you haven’t registered yet, you can visit http://iunlockjoy.cloudapp.net for registration. We do have some seats available.

Attendees need to bring their own laptops for this event. And laptops should meet following requirements.

    • Windows® Vista® (x86 and x64) with Service Pack 2 – all editions except Starter Edition OR
    • Windows 7 (x86 and x64) – all editions except Starter Edition
    • 4 GB of free disk space & 3 GB RAM
    • Windows Phone Emulator requires a DirectX 10 or above capable graphics card with a WDDM 1.1 driver. You can verify that by using dxdiag (in Start -> Run) tool. 


    • DAEMON Tools Lite v4.45.2 (with SPTD 1.80) – required to mount ISO files

If you have Visual Studio 2010 already installed, make sure that, you’ve upgraded it with Microsoft Visual Studio 2010 Service Pack 1 BEFORE installing next SDK.

Once you download the WP SDK ISO from Microsoft or take it from PUG, please run the setup.exe from mounted ISO. On next screen, read and accept the agreement as shown below:


Once, accepted, on next screen just click on ‘Install Now’ button as I’ve shown here:


Now, it will start installing the tools and SDK on your machine.


After completing the installation, you should get following window:


If you’re very keen to fire-up the development environment, click on “Run the Product Now” button or wait till the training begins.

For extra controls, you may want to download and install Windows Phone Toolkit – Nov 2011 (7.1 SDK). This will give you more controls like listpicker, phonetextbox, etc…. Please find more information on the same link.

For any technical queries related to Windows Phone Application development, post it on PUG’s Mobile and Embedded Forum at: http://www.puneusergroup.org/Forums/ForumView.aspx?pageid=2&mid=23&ItemID=21 and we’ll make sure that those will be addressed.

See you soon at PUG Windows Phone Training Event.


Mayur Tendulkar | www.mayurtendulkar.com