In my last few articles I was discussing
on Launchers and Choosers of Windows Phone 7. In today’s blog post, I am going
to continue on that again. This time we will discuss on “SmsComposeTask” of the WP7 SDK, which you can use to create SMS from code.
SmsComposeTask launches the Messaging application with a new SMS message displayed and requires user intervention to send the message.
Continue reading to learn in depth of the API implementation and uses of the API.
Related Articles
Know About the API
“SmsComposeTask” is a sealed class present in the “Microsoft.Phone.Tasks
” namespace and contains two properties called “Body
”
and “To
”. You can set the phone number in “To” field where you want to send the
SMS. Set the message in the “Body” field before you call the Show() method
to launch the messaging application. Both the fields are optional. Once the application launched in the UI, user can set those manually in any case.
Here is the meta data of the SmsComposeTask:
namespace Microsoft.Phone.Tasks
{
public sealed class SmsComposeTask
{
public string Body { get; set; }
public string To { get; set; }
public void Show();
}
}
Do you want to know how the class has been implemented internally by the SDK to launch the messaging application? Here is the decompiled version
of the SDK class which will help you to understand the API implementation:
namespace Microsoft.Phone.Tasks
{
public sealed class SmsComposeTask
{
public string Body { get; set; }
public string To { get; set; }
public void Show()
{
if (!ChooserHelper.NavigationInProgressGuard((Action) (() => this.Show())))
return;
ParameterPropertyBag ppb = new ParameterPropertyBag();
string to = this.To;
if (!string.IsNullOrEmpty(to))
ppb.CreateProperty("To").StringValue = to;
string body = this.Body;
if (!string.IsNullOrEmpty(body))
ppb.CreateProperty("Body").StringValue = body;
ppb.CreateProperty("Account").StringValue = "{FD39DA85-C18F-4c0c-AEAC-75867CEA7876}";
ChooserHelper.Navigate(
new Uri("app://5B04B775-356B-4AA0-AAF8-6491FFEA5614/ShareContent",
UriKind.Absolute), ppb);
}
}
}
The SDK creates the ParameterPropertyBag
to set all the properties before launching the APIs. Hope the above code snippet was helpful for you to understand the same.
Implementation Steps
Now let's see how to write a code to integrate the SMS compose feature in your WP7 application. First create the instance of the class and set the optional
properties as shown below and call the Show()
method to launch the application.
var smsComposeTask = new SmsComposeTask
{
To = "+919998881523",
Body = "Check out www.kunal-chowdhury.com for WP7 articles"
};
smsComposeTask.Show();
Remember that, there will be user intervention before sending the SMS and you can’t control sending the SMS silently. Let’s see how the application works after the
Show()
call.
Once you call the Show()
method, the application launches in the screen (figure 1) and the user can change the phone number or the message from the application. Once user taps the “Send” button, the message will deliver to the number mentioned in the “To” field and then you will be able to write more message to the same number. If you tap outside, it will come out from the input screen as shown below:

I hope that this post was very useful for you to understand the SDK API, it’s internal code implementation and the sample code implementation. Please leave your feedback below to leave your comment.
Stay tuned to my blog, twitter or facebook
to read more articles, tutorials, news, tips & tricks on various technology fields.
Reference: http://www.kunal-chowdhury.com. You may like to follow me on
Twitter @kunal2383 or may like the Facebook page
of my blog http://www.facebook.com/blog.kunal2383.