In this tutorial we are going to see how to use the Phone Number Chooser task with Windows Phone development. With this task we can extract the phone number of a particular contact which the user selects to get the information. We can use this task in our application in cases like we need to get the list of contact numbers of a particular contact. This task simply opens the contact application up on which the user selects the contact it will trigger an event to collect the information and gets back in a task result which can be used to get the information which we will be looking for. Let us see the steps on how to achieve this task in real time for a Windows phone application. [more]
Open Visual Studio 2010 IDE and create a new Silverlight for Windows Phone project with a valid project name as shown in the screen below. Once the project is created add some controls which are used to trigger the Phone Number Chooser Task as shown in the screen below.
Now drag and drop few controls to the screen which is used to trigger event that launches the Phone Number Chooser Task. Once we designed the screen with the controls we can see the screen looks like below. We have added a button control to trigger the event and text block control to show the end result after the task is completed as shown in the screen below.
XAML Code:
<phone:PhoneApplicationPage
x:Class=”F5debugHowto27.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=”F5debug How to Series” Style=”{StaticResource PhoneTextNormalStyle}”/>
<TextBlock x:Name=”PageTitle” Text=”Phone Number Chooser” 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″>
<Button Content=”Get Phone Number of Chris” Height=”72″ HorizontalAlignment=”Left” Margin=”9,6,0,0″ Name=”button1″ VerticalAlignment=”Top” Width=”441″ />
<TextBlock Height=”277″ HorizontalAlignment=”Left” TextWrapping=”Wrap” Margin=”29,108,0,0″ Name=”textBlock1″ Text=”" VerticalAlignment=”Top” Width=”407″ />
</Grid>
</Grid>
</phone:PhoneApplicationPage>
Now we need to write our code in the button click event to trigger the Phone Number Chooser task, which basically opens the Contacts application to select a contact from which the phone number will be extracted. To do that just go to the code behind and first add the USING handler code on top with the existing using statements as shown in the code below.
using Microsoft.Phone.Tasks;
Next is to add the below code to the button click event which basically creates an instance of the Phone Number Chooser task and once the event is completed another event is raised which has the selected contacts details in the task result as output as shown in the code below. Basically the Phone number chooser task has 2 properties which we get in the result while the event is triggered. We will be getting the Display name as well as the phone number of the selected contact.
Code:
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;
namespace F5debugHowto27
{
public partial class MainPage : PhoneApplicationPage
{
PhoneNumberChooserTask pncTask;
// Constructor
public MainPage()
{
InitializeComponent();
pncTask = new PhoneNumberChooserTask();
pncTask.Completed += new EventHandler<PhoneNumberResult>(pncTask_Completed);
}
private void button1_Click(object sender, RoutedEventArgs e)
{
pncTask.Show();
}
void pncTask_Completed(object sender, PhoneNumberResult e)
{
if (e.TaskResult == TaskResult.OK)
{
textBlock1.Text = “Selected Contact is – ” + e.DisplayName + ” and Contact number is – ” + e.PhoneNumber;
}
}
}
}
Now we are done with our code, just run the application by pressing F5 directly from the keyboard or we can use the Build and execute the project option from the tool bar to run the application. Once the Build is successful we can see the Windows Phone emulator with the application and the expected outputs as shown in the screens below.
Output Screens:
So in this short tutorial we have seen how to make use of the Phone Number chooser task which is used to choose a contacts phone number that can be used internally with in the application as per the requirement. That’s it from this tutorial on Windows Phone see you all in the next tutorial soon. Mean while Happy Programming!!!
No Comments
I was studying some of your articles on this site and I believe this web site is very informative! Continue putting up.