Como utilizar o Address Chooser Task no Windows Phone
Veja neste artigo como utilizar o Address Chooser Task para obter o endereço de um contato selecionado pelo usuário.
Com certeza, em um dos seus projetos, você terá a necessidade de obter o endereço de um contato do seu usuário no Windows Phone, e esse Task é utilizado justamente para isso. O Address Chooser Task inicia o aplicativo de Contatos, permitindo assim ao usuário escolher um contato de sua lista. Assim que o usuário concluir a tarefa, é gerado um evento e o manipulador de eventos recebe um endereço no resultado.
No exemplo deste artigo será criada uma aplicação em que o usuário irá selecionar o contato e os dados deste contato serão exibidos em seguida na mesma página em um formulário.
Abra o Visual Studio e crie um projeto Windows Phone Application chamado ProjetoAddressChooser conforme a Figura 1.
Ao criar o projeto, é exibida uma caixa com a opção de escolha da versão do Windows Phone, escolha a 7.1, pois assim o seu aplicativo funcionará em todas as versões de Windows Phone disponíveis.
Abra o arquivo MainPage.xaml e vá ao content panel para adicionar um stackpanel que conterá o Botão que irá exibir ao usuário a seleção de contato e um formulário que iniciará no Visibility Collapsed, a MainPage.xaml deverá ficar conforme mostra a Listagem 1.
<phone:PhoneApplicationPage
x:Class="ProjetoAddressChooser.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="MY APPLICATION"
/>
<TextBlock x:Name="PageTitle" Text="contatos" Margin="9,-7,0,0"
/>
</StackPanel>
<!--ContentPanel - place additional content here-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<StackPanel Width="450" Height="500" VerticalAlignment="Top">
<StackPanel Width="450" Height="80" VerticalAlignment="Top">
<Button Name="btnExibirContatos" Width="400" Height="80"
Content="Exibir Contatos" Click="btnExibirContatos_Click_1"/>
</StackPanel>
<Border Name="brdFormulario" BorderBrush="White"
BorderThickness="2" Width="450" Height="400"
Visibility="Collapsed">
<StackPanel Width="450" Height="400">
<TextBlock Foreground="White" Text="Formulário"
FontWeight="Bold" FontSize="25" Margin="10"/>
<TextBlock Name="lblNome" Foreground="White"
Text="Nome : " FontSize="25" Margin="10"/>
<TextBlock Name="lblEndereco" Foreground="White"
Text="Endereço : " FontSize="25" Margin="10"/>
</StackPanel>
</Border>
</StackPanel>
</Grid>
</Grid>
</phone:PhoneApplicationPage>Então, agora abra o arquivo MainPage.xaml.cs e adicione uma referência no topo da classe para o Microsoft.Phone.Tasks como mostra a Listagem 2.
using Microsoft.Phone.Tasks;Agora você deverá tratar e utilizar a classe no evento btnExibirContatos_Click_1 para exibir a lista de contatos, como mostra a listagem 3. No caso, é feita uma instância da classe AddressChooserTask e então a criação do método call-back após o término da escolha do contato e também o método Show para exibir a lista de contatos ao usuário; Você deverá também implementar o método addressChooser_Completed, para manipular e receber as informações do contato que o usuário escolheu, veja na Listagem 3.
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 ProjetoAddressChooser
{
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
}
private void btnExibirContatos_Click_1(object sender, RoutedEventArgs e)
{
AddressChooserTask addressChooser = new AddressChooserTask();
addressChooser.Completed += addressChooser_Completed;
addressChooser.Show();
}
void addressChooser_Completed(object sender, AddressResult e)
{
if (e.TaskResult == TaskResult.OK)
{
string endereco = e.Address;
string nome = e.DisplayName;
exibirFormulario(nome,endereco);
}
else
{
MessageBox.Show("Erro ao buscar contato.");
}
}
private void exibirFormulario(string nome, string endereco)
{
lblNome.Text = nome;
lblEndereco.Text = endereco;
brdFormulario.Visibility = System.Windows.Visibility.Visible;
}
}
}Por ser uma plataforma bastante segura, o Windows Phone restringe e limita certos acessos ao desenvolvedor, como por exemplo, a navegação das páginas com a passagem dos dados do contato como parâmetro. Apesar da limitação, isso garante para os usuários uma maior confiança nas aplicações desenvolvidas para o Windows Phone e aprovadas no Windows Phone Store.
Para efetuar o teste desta aplicação no emulador, é necessário que você adicione uma conta de e-mail para conter os contatos disponíveis para seleção, conforme o exemplo. Então abra o emulador e vá em configuração, conforme a Figura 2.
E então agora selecione email+accounts nas opções de configuração e clique em add na account, como mostra a Figura 3.
Então, agora selecione uma conta de e-mail para vincular e insira os dados seguindo os passos indicados no dispositivo.
Após a configuração de pelo menos uma conta de e-mail, você poderá pressionar F5 e testar sua aplicação, como mostra a Figura 4.
Artigos relacionados
-
Artigo
-
Artigo
-
Vídeo
-
Artigo
-
DevCast