Sunday, April 21, 2013

Introduction to Speech Capabilities in Windows Phone 8 – Part 3

Today I am going to post last part of this series, Hope Part1 and Part2 went well with you and hope you tried out the Speech Capabilities of Windows Phone 8. We already talked a lot about the different approaches of Text To Speech, In this we will see exactly reverse approach that its Speech To Text. Most of the time it is considered to be vary hard and difficult to implement, But with the given APIs in Windows Phone 8 makes them pretty easy to implement.So Lets see how you can build such app quickly.

Take a new Windows Phone 8 Application Project. Design I will leave that to you, Right now I have put this inside a Pivot item like this :

XAML :

<phone:PivotItem Header="Speech2Text" DoubleTap="LoadSpeechToText">               
</phone:PivotItem>

C# Code :

private async void LoadSpeechToText(object sender, RoutedEventArgs e)
       {
           SpeechRecognizerUI myspeechRecognizer = new SpeechRecognizerUI();
           myspeechRecognizer.Settings.ExampleText = "Ex. Call,Search,Run";
           myspeechRecognizer.Settings.ListenText = "Listening...";
           ….

       }

This will bring up the Popup where you need to suppose to talk or give command, To enable this functionality, you need to add two more lines of code

myspeechRecognizer.Settings.ReadoutEnabled = true;
myspeechRecognizer.Settings.ShowConfirmation = true;

Once you run this you will see our regular Speech Popup like this :

Launching

But just showing this screen is not sufficient, we need to capture the Text and display it to user, So for this we need to add few more lines of code

SpeechRecognitionUIResult Speechresult = await speechRecognizer.RecognizeWithUIAsync();
if (Speechresult.ResultStatus == SpeechRecognitionUIStatus.Succeeded)
{
    MessageBox.Show(Speechresult.RecognitionResult.Text);
}

Now you can see the result on a MessageBox, While doing the test I said “Nokia” and you can see the result on the screen.

Launchingheardsay

And here you can see the Result on MessageBox.  finalNow its your decision where you want this piece of code to be use, There are lot of Business cases where you can use this kind of Speech Recognition. You can use this to launch certain Commands in your application or you can use to record voice as well and convert to text for any purpose.Hope you will find this useful and thus quick end of my Speech Capability series, I have kept it short but in coming days I am going to put detail article on these features by taking a Business Case.Till then Happy Coding, I will soon post a Calendar related article and we will see how we can use that API at our best.

Vikram.

Tuesday, April 2, 2013

Introduction to Speech Capabilities in Windows Phone 8 – Part 2

Hope you enjoyed my last article on Speech Capability in Windows Phone 8, Today I am posting another part or you can say little extension to what I did in Part 1.

In the first part we saw how we can incorporate the built in Speech Capability with the given set of Speech APIs in Windows Phone 8 SDK and how they have edge over earlier Windows Phone builds like 7 and above.We saw I simple Hello World kind of demo, Today I am going to demonstrate how we can leverage the SSML (Speech Synthesis Markup Language) using Speech APIs in Windows Phone.

What is SSML ? :

As per W3C, SSML can be defined as :

SSML is part of a larger set of markup specifications for voice browsers developed through the open processes of the W3C. It is designed to provide a rich, XML-based markup language for assisting the generation of synthetic speech in Web and other applications.

Possible Scenarios of SSML Implementation : This is very useful in a multilingual app where you need to implement Text to Speech of the content in different languages. Also it provides high level control over the grammer, choice of language, voice of male or female etc. with the help of tags defined in SSML.So let’s see a simple demo of incorporating SSML in Windows Phone 8, Then how you will use that in your app, Its your call !

Namespaces :

using Windows.Phone.Speech.Synthesis;

Design (XAML) :

<phone:PivotItem Header="SSML" DoubleTap="LoadSSML">
                <TextBlock x:Name="TTSSSML" HorizontalAlignment="Left" Height="500" Margin="33,26,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="389"/>
</phone:PivotItem>

C# Code :

private async void LoadSSML(object sender,RoutedEventArgs e)
{ … }

I am using an async method here which have 2 parts, First will just display the Text on the Textblock and second part will actually reading of that SSML markup using Speech Synthesizer, Here is the first part :

//Speech Synthesis Markup Language for Display
          TTSSSML.Text = @"<speak version=""1.0""
           xmlns=""http://www.w3.org/2001/10/synthesis"" xml:lang=""ja-JP"">
           <voice gender=""male"">       
               趣味は日本語を勉強することです
               趣味はいろんな新しい食べ物に挑戦することです
               パソコンいじりが得意なので、何か手伝えることがありましたら声をかけて下さい。               
           </voice>                       
           </speak>";

Here you can see the SSML Markup, I agree, I am not SSML Expert and I have taken this piece of SSML tags by doing some research over internet and I spend little time to convert it to Japanese (I actually can read and write Japanese :) ..its a different story ) instead of keeping it in simple English. In your scenario all you need to do is change the “ja-JP” attribute to your own language like en-US etc and try out with that specific language content.You can also change gender to male or female with <voice gender=”<value>> attribute. All assumption is you have Speech enabled on your phone and also you have marked or enabled Speech in manifest file as I have demonstrated in my first article. Then rest is just routine coding nothing else.Now I am showing part two of this snippet, After looking at it, you will realize that I hardly making any changes here :

//Actual Speech in Japanese Language using SSML
            var ttsJP = new SpeechSynthesizer();
            await ttsJP.SpeakSsmlAsync(@"<speak version=""1.0""
            xmlns=""http://www.w3.org/2001/10/synthesis"" xml:lang=""ja-JP"">
            <voice gender=""male"">       
                趣味は日本語を勉強することです
                趣味はいろんな新しい食べ物に挑戦することです
                パソコンいじりが得意なので、何か手伝えることがありましたら声をかけて下さい。
            </voice>                      
            </speak>");

All set ! Now just press F5 and Enjoy ! here are few screenshots if you are trying to visualize how it will look on device.

In English version of SSML :

SSML

In Japanese version of SSML

JPSSML

That’s all ! Hope you like this part, Till now in both parts we actually saw Text To Speech Capability in a nutshell, In my next article which might be last in the short speech capability series, I am going to talk on Speech To Text. Post these parts, I will move to Maps for a while and then will come back with few more interesting and deep dive articles.Till then..enjoy Windows Phone 8

Vikram.

Introduction to Speech Capabilities in Windows Phone 8 – Part 1

After a long..I am writing blog, I hope and I wish I will resume blogging like I use to in past. Lots of things happened in past few months. I changed my job,got married and what not ! Well, Life !

Today I am going to share few things about Speech Capabilities in Windows Phone 8, Although I haven’t talked about it in past for Windows Phone 7-7.5 just because there were lots of limitations in this area in terms of APIs and Accuracy as well.With Phone 8 things are totally different. Earlier till 7.5 it was totally dependent on Bing Service which has to be online and network or internet connection was mandatory to have.Now it works offline without having any data/internet connection. Thanks to Microsoft for this improvement. Little Thanks to Microsoft MVPs like me ! (little pat on back)..surprised? Well I was a volunteer and part of a Secret mission, Proud to get associated with it, Although our contribution was small compare to efforts taken by Microsoft Product Group Members but it was got recognized in recent Microsoft TechEd 2013 at Pune, India by Sanket Akerkar,Managing Director, Microsoft India at Microsoft.

SanketAkerkar

Well, Lets come back to main topic, So I am actually planning to write a big article but now plan to break it in few,So today let’s build a Hello World type App to understand TTS (Text To Speech) Capabilities.

Initial Work :

Open a brand new Windows Phone Project from Visual Studio 2012

Open

Choose Windows Phone OS 8.0

OSChoice

Design :

<phone:Pivot Title="Speech Capability">
            <!--Pivot item one-->
            <phone:PivotItem Header="howdy">
                <Button x:Name="TTSHowdy" Content="Hello World !" HorizontalAlignment="Left" Width="456" Height="87" VerticalAlignment="Top" Margin="0,82,0,0" Click="TTSHowdy_Click"/>
            </phone:PivotItem>

</phone:Pivot>

I am actually putting it in a Pivot Navigation as I wish to demonstrate couple of more features of Speech within a single app, In your design you can very well change the layout.

Namespace Required :

using Windows.Phone.Speech.Synthesis;
using Windows.Phone.Speech.Recognition;

C# Code :

private async void TTSHowdy_Click(object sender, RoutedEventArgs e)
        {
            var TTS = new SpeechSynthesizer();
            await TTS.SpeakTextAsync("Welcome to Microsoft TechEd India 2013 in Pune");
        }

So SpeakTextAsync basically an async method which take 2 parameters as Content and Content and ObjectState. So similarly we can pass big string or textblock data to this method so that it will speak the content for you with the default voices installed on your phone.

Here is the output : (On actual device/emulator, you can hear the Sound )

howdy

Now after this Hello World, Lets build another Pivot which will display as well as play all the voices installed on your phone. To showcase this, I am making use of “Long List Selector” on my UI.

Design :

<phone:PivotItem Header="voices" DoubleTap="LoadTTSAllVoices">
               <phone:LongListSelector  x:Name="llstNames" HorizontalAlignment="Left" Width="456" Height="232" VerticalAlignment="Top" Margin="0,3,0,0"/>              
           </phone:PivotItem>

C# Code :

List<string> lstVoices = new List<string>();

private async void LoadTTSAllVoices(object sender, RoutedEventArgs e)
       {           
           //Get all the Voices
           foreach (var voice in InstalledVoices.All)
           {
               lstVoices.Add(voice.DisplayName + ", " + voice.Language + ", " + voice.Gender);
               using (var text2speech = new SpeechSynthesizer())
               {
                   text2speech.SetVoice(voice);
                   await text2speech.SpeakTextAsync("Hello world! I'm " + voice.DisplayName + ".");
               }

               llstNames.ItemsSource = lstVoices.ToList();
           }
       }

Basically, This async methods loops over collection of Voices installed and add each one to the List<T>. So once the voice is picked and set in the SetVoice Method, We can then use the same method SpeakTextAsync which we used above to read the text content.So after reading via each of the voice, We add the voice reader information to a List<T> and bind it further to Long List Selector. So it reads the content and add each voice to the list one after the another.

Here is the Output : (On actual device/emulator, you can hear the Sound )

voices

So that all I want to cover in Part –1, I will post another interesting stuff in upcoming parts, I am actually planning to post 2-3 more.Meanwhile you can try this and check the point to remember or conclusion :

1. Your PC/Laptop Speakers should be on to experience the voices coming out

2. There is no separate SDKs or Tools to be installed, These Speech APIs comes by default with the Phone SDK.

3. You need to Turn On Microphone and Speech Capability option from WMAppManifest.xml like this :

Capabilities 

So that all I want to cover in Part –1 , I am already in progress for Part 2 and expect few more deep dive stuff on Speech Capabilities in coming parts as we progress. Do enjoy and try out the above capabilities and feel free to share your feedbak.

Vikram.

Sunday, July 29, 2012

MCTS : Microsoft Silverlight 4 Development Exam Guide (70-506) by Packt Publishing

 

Hello, After a long time I got chance to come back here.I will soon resume blogging in month of August. Last 4-5 months were horrible due to workload and some family commitments,but now everything is coming to normal and soon I will start posting some amazing Windows 8 and Windows Phone 8 stuff here.

Today I am talking about a nice handy and in depth Microsoft Certification Exam Guide for Silverlight 4 Development exam written by Johnny Tordgeman for Pack Publishing.

image

Johnny who own expertise on various Web Technologies within Microsoft Platform and who is also a Community Contributor and active Speaker in various events done very amazing write-up in this title.He done a great hard work to give a high quality Exam Guide on Silverlight 4 Development to the Developers,Designers and Others who are doing Certification in Silverlight Track or wish to pursue Silverlight Certification.

This book is a complete Exam Guide in all terms, Great Content with clear Screenshots wherever applicable along with Samples and Questions at the end of each Chapter.These Sample Questions gives Reader a feel of how the actual questions might be in Microsoft Silverlight 4 Exam with “Test your knowledge” section.

image

This book is not only Exam Guide but a complete Book with very unique content that each Silverlight Developer and Designers should have with them today.There are total 8 Chapters in this book which covers all the important aspects of Silverlight 4.

Before this book got published for people, it was also reviewed by my friend and fellow Silverlight MVP Kunal Chowdhury (http://www.kunal-chowdhury.com/) and Evan Hutnick from Telerik.

So if you are planning for this Silverlight 4 Certification or already doing study for this exam or even if you are Silverlight Developer, Then I highly recommend this book and you should get a copy for yourself right today !

http://www.packtpub.com/mcts-microsoft-silverlight-4-development-70-506-certification-guide/book#overview

Wish you all the best for your exam !

Vikram.

Thursday, March 22, 2012

The little Story of “I Unlock Joy” event by Microsoft and Pune User Group

 

This post is about recent “I Unlock Joy” event happened in Pune which was conducted by Microsoft and Pune User Group.

Little History :

I remember I got myself a HTC HD7 in early January 2011. I even did a big post here with fire saying “Its White Elephant” in India.When I saw Tweets,Photos and Mails by people in US who showing off their Windows Phones in early days of Windows Phone, Frankly I was very angry thinking why each and every thing comes to India when Entire US and Europe people about to throw that piece of technology and switch to its version next.I even had fight at various level to get a Test Device for me but my all attempts result was “Fail”, so finally I got HD7 for myself from local shop, by the time few of my friends from User Group ordered it via some online site and got their shipment before me.Neither me or my friends who ordered it online even before it was made available in India officially bothered about Money and what will happen to it. That time even Mango build was not available.

I was already going through lot of frustrating moments due to Silverlight and HTML5 issues around year back and thanks to Windows Phone, It pulled me back on track.Me,Mayur and few other folks from Community started talking about this device from last year.Frankly, early response was very low since most of the people was not having device and was not sure about future of Windows Phone since it was not made available in India.

First call on “I Unlock Joy” :

I remember that around October 2011,I was taking snaps of some Star Fishes near Tarkarli Beach in Sindhudurga and all of a sudden I got a call from Aviraj saying “You are in conference with Mayur Mahesh and Dhaval for upcoming Windows Phone event” ..I replied “What??..Microsoft is planning event on Windows Phone??”..Trust me call went for 5 minutes where each one just saying “what”, “when”,”ok lets see”,”keep us posted”.Then nothing happened on this till Mid December.

fishy

Trust me..before this call..no one was sure about this event.Even we were not sure whether we will be able to host such event or not, Even for Microsoft, it was very first such event in India.

The Plan :

Earlier I was not happy with the event plan just because I misunderstood agenda and found it too much professional, I raise this concern to Mahesh (@maheshmitkari),Mayur (@mayur_tendulkar) and Aviraj (@aviraj111)saying “There are people in Pune, who don’t know what is Windows Phone,How it looks like or they have not even saw or touch that device and how they can build apps for that?”, Thanks to Aviraj Mayur and Mahesh who simplified it for me and told me that its from Hello World to Get Certify from Marketplace over span of 4 Full Days.So after that call on next weekend we started talking more about this event.

Wait..but will people come to this event by paying App Hub Fees?? :

Humm..another 1 hour just went on this discussion,Frankly among our Team, only Mayur was aware of AppHub process since he had account and submitted one or two apps in Marketplace.He and Mahesh and Aviraj show confidence then with 50-50 mind I also said to myself..lets do it people will come ! So Aviraj then given inputs on I Unlock Joy and how it works (MS people really work hard for each of their things,that I re-realize again on that day).He also told about Prizes and how overall things should go if we as Pune User Group want to do it with Microsoft.

imgthink

Execution of Plan :

Here comes our UG Manager Mahesh Mitkari, He drafted overall plan including Days of Trainings,Venue etc.Thanks to Microsoft, This time there was no “Mission :Find Venue” for us ! As usual my all time favorite question came for discussion “What about Food??..are we giving and not giving??” ..Suddenly Mahesh replied “Food later ! First think about event”..I said “Rest is Ok,but Food is equally important” ..Mayur said “If possible do it or people have to eat somewhere around the venue” ..Aviraj was on bit silent mode during this discussion since Budget for this was already allocated and now it was our turn to manage all in that amount.Finally with the years of experience Mahesh have in community, He managed the food for us. Since we took it up this event under support of MS, Content and Speaker for event was from Pune User Group. Mayur took the ownership of this speaking engagement and hence that pain part was already taken care. 

HD7s

Then there was lot of confusion about allowing “Individual”,”Students” and “Business” types of AppHub Account holders.But we decided that aim of this event is to “Empower individuals with great skills and great device”, so we decided to cut off Students and Companies and fixed our agenda accordingly.

Since this was very first event so we decided to keep the number of attendees equal with the capacity of hall or even less will do.

Registration Process and getting people to Venue : Mission Impossible

We hosted a lovely Website using ASP.NET MVC + Cloud for this event using shiny logos and stuff.

For first week, there was not a single registration, all we had is test records entered by us for testing of that portal.Week went bad for us.No one turn to site for registration.We were almost feeling dead at that moment since it was January 1st week and we were about to kick off the event from end of January 2012, we paid for venue, book food counters, done all formalities with MS,ok but where are attendees??

WP_000307

Mahesh Me,Mayur and Aviraj come back to our old conclusion “Its paid event so people are not coming ..maybe?” since Pune User Group events are never paid.So how to solve this problem??

Meetings Meetings..Calls Calls .. :

We decided to do quick analysis of this thing and jumped to a conclusion that it was not about spending money but we came to know about following concerns :

  • Its Credit Card thing..is it safe?
  • Will they pull some extra money from Background?
  • Do they will come to know whether I am using illegal software?
  • I will seriously get Windows Phone if I build apps for I Unlock Joy?

Ok ! we got our answers, the very first thing we did is added a big “FAQ” section on our site and made publicity of the same, we captured most common uncommon and unique Questions,As a result, in last week of Registration count went to almost 40+ and we closed registration.We are all set for First ever such event by any User Group in India..Get Set Go !

Four

Overall Event :

Now the next tension on mind was, whether people will adopt the skills and able to build and submit apps or not,else again everything will go waste !

Kudos to Mayur Tendulkar and Amol Vaidya ( and me as a Backup Speaker with full support from MSPs Omkar,Sneha and Apporva) who carried out training successfully.4 Days were full of gyan and not like typical sessions happens around where speaker comes in drag drop things and execute. Some real code and real stuff happened here in Pune.Thanks to AKant (Abhishek Kant who was our Ex-MVP Lead and now Country Manager for Telerik in India) for his valuable time at Keynote session and giving Telerik Controls for free to all attendees there at event.

IMG_0308

Very Special Thanks to Harish Vaidyanathan (@harishv ), Girish Joshi, Aditee Rele (@aditeerele ) and our big brother from Microsoft (@aviraj111), without these people it was impossible to unlock the joy !

What went wrong in this event :

  • Shortage of Power Plugs and less power extensions at Venue on Day1, From Day 2 we fixed that by adding more plugs-extensions
  • Delay in distribution of Pen Drives, instead of day 1 people got that on day 4
  • Connectivity and WiFi was not available due to infra issues
  • 1 Test Device out of 2 was not Mango, we updated that to Mango from Day 2

What people went home with :

  • Some amazing knowledge about Windows Phone Application Development
  • Confidence to build Windows Phone Apps
  • Joy and Fun moment during all 4 Days and great device experience with Test Devices kept for them
  • Some even went away with Nokia Lumia 800

WP_000379

What’s the outcome of all this 4 month story from October 2011 to January 2012 ? :

  • Some 30+ Quality Apps already in Marketplace from this event
  • Around 45+ are due for Certification
  • Around 20+ new apps getting developed from people who already submitted apps
  • Me, Mahesh and Mayur declared officially from Microsoft as “Agents of Joy” and now visible on Microsoft’s I Unlock Joy Portal

http://www.microsoft.com/india/developer/windowsphone/

Click on “Agents of Joy” tile at the bottom !

IUnlockJoy

Final Day :

I Unlock Joy Members snap with Harish Vaidyanathan at Pune

Team

Conclusion :

Its for the “Community” by the “Community” to build more better and better “Community”, so despite of all challenges we faced.The passion of working towards “Community” made all things easy.

There are so many things happen in those 4 months, so its difficult for me to put down all things here,still I tried my best to cover up the entire story.

I am proud that I am associated with such a wonderful community in Pune. Microsoft and Pune User Group Rocks !!

Thanks to all who are directly or indirectly involved in this activity, its difficult to take all names since its very big community effort.so thanks to all !

After this event, Girish Joshi from Microsoft asked Me and Mahesh to give a snap of ours and we given below snap :

Well ! There is again a Big story behind this photo which we took at midnight at Mahesh’s home..that story..well..some other time !

Vikram.

Friday, March 9, 2012

Resolving Prohibited Applications 2.7.2 Issue in Windows Phone Application Certification Process

 

If you are building a Windows Phone Application especially which deals with Location based Services or Location related information share,then this blogpost might come to your help.

Recently,I submitted one Windows Phone Application titled as "LocateMe" to Microsoft Windows Phone Marketplace as a normal procedure of Marketplace of Microsoft, After 2-3 Days I got email as follows :

certierr

When I logged into AppHub account, I got one PDF file having detail description of above mail along with complete error details. When I saw that PDF, It was written like :

police1

Since such kind of rejection is very new to me,For day or two I was wondering what to do and resolved so that my application can clear certification.Since comments was clear on the test result like this :

police2

One of my friend Mayur Tendulkar suggested that my application is using Location Service without User Consent or User's permission which indirectly crossing Privacy of the User of that application, In other way its like taking or using User's location without giving him any intimation or notification. This was the issue which my application was doing.

Solution :

I came across this blogpost which exactly states the above problem, Solution suggested there is to create a Custom Page with On/Off Switch which can Enable or Disable Location which will be provided by User of the application.

Somehow I felt it as little extra work in terms of coding and navigation to user.So I given a try to a very simple solution and I am happy that it worked for me and my application came out of this Privacy issue and got certified. I just given a message box like this :

MessageBoxResult result = MessageBox.Show("For Tracking on Map you need to Enable Location,For More Information Read Privacy Statement,Are you sure you want to enable Tracking?", "LocateMe", MessageBoxButton.OKCancel);

                if (result == MessageBoxResult.OK)
                {
                   // Turn On the Location
                }
                else
                {
                    // Turn Off the Location
                }

This saved me from that extra step of navigating to Location Setup Page and Set Reset location and come back to application.This helped me to get consent of user to use Location on his/her device.This allows user to choose to Turn On or Off the location service and does not force the user anyway and does not disclose any location data of user anywhere.

To be on safer side, I added a Privacy Statement Page in Application Bar Menu so that User can know more about in what way and terms the User location which is his/her private data is getting used.This page looks like below :

loc3

What I learn from this problem :

Its not always mandatory to have a separate page just for turning On or Off the location but it can just be done by a message box since its all about giving notification to the user and asking his/her permission to use and or share his/her location in any way.

Since I didn't came across any valid or legal solution for this problem,hence I thought I should share my experience with you all, So in future any of you got into such problem, should not be a big issue for your application during the Certification Process of Microsoft Marketplace.

Although in terms of legal aspect, this is not a valid or legal solution which is full proof,however I will claim this only as "work around" to get ride of Prohibited Applications 2.7.2 Issue in Windows Phone Application Certification.If you want More information about 2.7.2 section,I encourage you to go through following MSDN Documentation available on this subject :

http://msdn.microsoft.com/en-us/library/hh184841%28v=VS.92%29.aspx

With this, I conclude this post, The only intention of this post is to make you aware of this issue and not get lost anywhere like I got in initial go of my application development.This might help you to be extra careful while you are building your app especially location based.So make sure you keep these things in your mind and while building such kinds of apps, think from all aspects and build your own Privacy Statement or Policy according to need of your application.

Well, I recently submitted few apps and in my next post I am talking some interesting things happen last month in my town where me and my User Group friends conducted Windows Phone Training Program, till that time, Just check out my "LocateMe" app and let me know your feedback.Take care and see you soon.

Warning : Above post and solution given came out of my own experience and might not applicable as a general solution to all generic location based applications on Windows Phone Marketplace,Hence use this post as just a guideline and not as a final and/or Legal solution in any way.Only intention of this post is to create awareness about this  Prohibited Applications 2.7.2 Issue in Windows Phone Application Certification Process.

Vikram.

Saturday, January 21, 2012

Share Status and Link on Socials in Windows Phone

 

Hope you all doing good.Sorry for the great delay here,I am almost working for all 7 days in week and that too on SQL Server – SSIS which is totally Alien to me but now I have good hands-on (In future you might get to see few post on that as well) for a critical project in my company. Due to this I couldn’t meet you here.

Today finally I got sometime to spend here and on Windows Phone and Silverlight, So I thought I can share something quickly with you before I get to other big topics.Our today’s topic is small but very unique and useful. Today I am going to talk about 2 set of Tasks and how to use them effectively available with new Windows Phone SDK as ShareStatusTask and ShareLinkTask  which comes under Microsoft.Phone.Tasks Namespace.So lets start with it.

So all we need is a simple Textbox and Button like this :

UITaskShare

XAML Code :

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <TextBox x:Name="txtStatus" Height="100" />
            <Button x:Name="btnShare" Height="100" Width="200" Margin="0,358,0,149" Click="btnShare_Click">Share</Button>
</Grid>

Namespace :

using Microsoft.Phone.Tasks;

C# Code :

private void btnShare_Click(object sender, RoutedEventArgs e)
{
    ShareStatusTask mySocialTasks = new ShareStatusTask();

    mySocialTasks.Status = txtStatus.Text.ToString() + System.DateTime.Now.ToString();

    mySocialTasks.Show();
}

Above code is simple, We have a ShareStatusTask which comes with Property Status like this in ShareStatusTask which is Inherited from ShareTaskBase whose Show() method Causes the sharing dialog to be displayed to the user.

public string Status { get; set; }

public void Show();

So we are passing our/user defined Status message from Textbox txtStatus and appending DateTime with it (You can append anything or customize as per your need), Once you click on Share you will get Share Dialog like this :

WP_000005

Sorry for bit low screenshot, but you can see the list of Socials available on your device as

  • Windows Live
  • Facebook
  • Twitter
  • LinkedIn

If something new comes up tomorrow might get added to list, So all you need to do is pick the Socials and go ahead and share. Please note that this does not work on Windows Phone Emulator so you need to port this on actual Windows Phone Device.Also note that availability of Socials on your phone depends on your configuration and choice to have.So Don’t waste your time in emulator since it will not give any output or will not give any response.

On similar lines, we can implement ShareLinkTask Class like this :

private void btnShare_Click(object sender, RoutedEventArgs e)
      {
          ShareLinkTask mySocialLinks = new ShareLinkTask();

          mySocialLinks.Title = "Explore .NET with Vikram Pendse";
          mySocialLinks.LinkUri = new Uri("http://pendsevikram.blogspot.com", UriKind.Absolute);
          mySocialLinks.Message = txtStatus.Text.ToString() + System.DateTime.Now.ToString();

          mySocialLinks.Show();
      }

Choose “Windows Phone Device” and hit F5, you can see in Output window how it ports to Device and confirm the same like this it got displayed in my VS Output Window : (Observe lines in Bold)

------ Deploy started: Project: Demo_ShareStatus_Task, Configuration: Debug Any CPU ------
Deploying D:\Silverlight_On_Mobile\Demo_ShareStatus_Task\Demo_ShareStatus_Task\Bin\Debug\Demo_ShareStatus_Task.xap...
Connecting to Windows Phone Device...
The application is already installed on the device. Checking if an incremental deployment is possible...
Doing incremental deployment...
Updating information related to modified files...
Deployment of D:\Silverlight_On_Mobile\Demo_ShareStatus_Task\Demo_ShareStatus_Task\Bin\Debug\Demo_ShareStatus_Task.xap succeeded.
========== Deploy: 1 succeeded, 0 failed, 0 skipped ==========

Now your app is ready to test on your WP Device, But make note of 2 things before you deploy :

  • Phone is ON and at Home Screen is visible and not pin locked
  • Zune instance is up and running

Now start from App list like this : (Demo_ShareStatus Icon)

WP_000003

Type your Message :

WP_000004

Share Link and Select Social Networks like this :

WP_000006

Finally you can see this happening in real on your respective Social Networks, Like in my case this got posted on my Facebook,Twitter and LinkedIn in one shot and at same time at all place like this :

Facebook :

Facebook

Twitter :

Twitter

LinkedIn :

LinkedIn

So this is how you can share Status or Link in very short piece of Code by making use of ShareStatusTask and ShareLinkTask given by Windows Phone Development Environment. Now how to make use of these tasks in your app,I leave this for you to decide,Let me know if you need any help using this and also let me know your feedback.I hope you will enjoy this small post after a long time here. Now since I am bit relax from work schedule so I will be back soon with some more interesting posts on Windows Phone, WinRT and Silverlight soon.So keep visiting this place now.

Vikram.