Code for How to Send SMS in Windows Phone 7


Today, in this article let's play around with one of the mostly used application service in day to day life. This concept is very useful and helps in building some better real time apps based on version and generation changes.

So I think we all are now good to go and implement this concept.

The Complete Code of MainPage.xaml looks like this:

<phone:PhoneApplicationPage
    x:Class="Windows_SMS_Application.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="Portrait" Orientation="Portrait"
    shell:SystemTray.IsVisible="True">

    <!--LayoutRoot is the root grid where all page content is placed-->
    <Grid x:Name="LayoutRoot" Background="Transparent">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <!--TitlePanel contains the name of the application and page title-->
        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
            <TextBlock x:Name="ApplicationTitle" Text="Vijay's SMS Application" Style="{StaticResource PhoneTextNormalStyle}"/>
            <TextBlock x:Name="PageTitle" Text="Windows 7 Phone" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
        </StackPanel>

        <!--ContentPanel - place additional content here-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <TextBlock Height="30" HorizontalAlignment="Left" FontSize="22" Margin="106,24,0,0" Name="textBlock1" Text="Please Enter Number" FontFamily="Verdana" VerticalAlignment="Top" Width="245" />
            <TextBox Height="72" HorizontalAlignment="Left" Margin="87,73,0,0" x:Name="textBox1" VerticalAlignment="Top"  Width="287" FontFamily="Verdana" FontSize="22"/>
            <TextBlock Height="30" HorizontalAlignment="Left" Margin="106,183,0,0" Name="textBlock2" Text="Please Enter Message" VerticalAlignment="Top" Width="240" FontFamily="Verdana" FontSize="22"/>
            <TextBox Height="153" HorizontalAlignment="Left" Margin="87,219,0,0" Name="textBox2" FontFamily="Verdana" FontSize="22" VerticalAlignment="Top" Width="287" />
            <Button Content="Send" Height="72" FontFamily="Verdana" FontSize="22" x:Name="button1" HorizontalAlignment="Left" Margin="157,418,0,0"  VerticalAlignment="Top" Width="160" Click="button1_Click" />
            <TextBlock Height="30" FontFamily="Verdana" FontSize="22" HorizontalAlignment="Left" Margin="87,528,0,0" x:Name="textBlock3" VerticalAlignment="Top" Width="335" />
        </Grid>
    </Grid>

    <!--Sample code showing usage of ApplicationBar-->
    <!--<phone:PhoneApplicationPage.ApplicationBar>
        <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
            <shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Button 1"/>
            <shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png" Text="Button 2"/>
            <shell:ApplicationBar.MenuItems>
                <shell:ApplicationBarMenuItem Text="MenuItem 1"/>
                <shell:ApplicationBarMenuItem Text="MenuItem 2"/>
            </shell:ApplicationBar.MenuItems>
        </shell:ApplicationBar>
    </phone:PhoneApplicationPage.ApplicationBar>-->

</phone:PhoneApplicationPage>

The Complete Code of MainPage.xaml.cs looks like this:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Tasks;
using Microsoft.Phone.Shell;

namespace Windows_SMS_Application
{
    public partial class MainPage : PhoneApplicationPage
    {
        // Constructor
        public MainPage()
        {
            InitializeComponent();

        }
        SmsComposeTask objSmsComposeTask = new SmsComposeTask();
        PhoneApplicationService objPhoneService = PhoneApplicationService.Current;

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            if (textBox1.Text == "" || textBox2.Text == "")
            {
                textBlock3.Text = "Message Sent Unsuccessful";
                textBlock3.Foreground = new SolidColorBrush(Colors.Red);
            }
            else
            {
                objSmsComposeTask.To = textBox1.Text;
                objSmsComposeTask.Body = textBox2.Text;
                objSmsComposeTask.Show();
            }

        }
        protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
        {
            objPhoneService.State["numbertext"] = textBox1.Text;
            objPhoneService.State["messagetext"] = textBox2.Text;
            base.OnNavigatedFrom(e);
        }
        protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
        {
            object sample;
            if (objPhoneService.State.TryGetValue("numbertext", out sample))
                textBox1.Text = sample as string;
            if (objPhoneService.State.TryGetValue("messagetext", out sample))
                textBox2.Text = sample as string;
            base.OnNavigatedTo(e);
        }

    }
}

The Output of the Application looks like this:

SMSPhone0.png

The Output of Sending Application looks like this:

SMSPhone1.png

SMSPhone2.png

The Output of Nothing Entered Application looks like this:

SMSPhone3.png
 

I hope this article is useful for you.