Aplicação Contatos para Dispositivos Móveis em C#

Introdução ao Artigo

 
Neste artigo será apresentada uma aplicação prática para Windows Mobile 6 Classic (Pocket PC) escrita em CSharp, com a finalidade do desenvolvimento de uma aplicação que grava os seus contatos na lista Contacts numa sessão do Outlook. Para isso fazer usaremos a biblioteca Microsoft.WindowsMobile.PocketOutlook.
 
Para facilitar o entendimento, está dividido em duas partes, a primeira com uma breve introdução ao Windows Mobile 6 Professional e ao Cenário e a segunda parte é a que chamo de “mão na massa”.
 

Parte 1 - Breve introdução ao Windows Mobile 6 Professional

 
Para atender a nova realidade no mercado de dispositivos móveis, fusão dos dispositivos com mais funcionalidades, a Microsoft revisou as categorias adequando a esta evolução da indústria de dispositivos móveis. Veja o quadro comparativo das categorias anteriores com as novas categorias.
Categorias Anteriores
Novas Categorias
Windows Mobile for Pocket PC
Windows Mobile Classic
Windows Mobile for Pocket PC Phone Edition
Windows Mobile Professional
Windows Mobile for Smartphone
Windows Mobile Standard
 

Características da Interface dos dispositivos móveis

 
Os recursos disponíveis para navegação são limitados.
O sistema de navegação é feito sob a forma de ícones, e com um direcionador, o usuário alterna entre as opções disponíveis, basta clicar com um botão de seleção. Alguns aparelhos possuem tela te toque, outros não.
 

Usabilidade

Devido a pouca dimensão de tela disponível é de fundamental importância que o desenvolvedor simplifique a interface com poucos campos e imagens e use discretamente o recurso de tabs, nesta interface não temos a flexibilidade do mouse.
 

Pré-requisitos para o desenvolvimento:

Microsoft Visual Studio 2005
Microsoft ActiveSync 4.5
Tecnologia SDK Windows Mobile 6
O ActiveSync 4.5 e o Kit SDK poderá ser baixado nos endereços:
e
 
Caso não tenha nenhum dos dois, assim que baixá-los, instale primeiro o Microsoft ActiveSync 4.5, reinicie o sistema e instale o Kit SDK Windows Mobile 6.
 

Pocket Outlook

 
A biblioteca Microsoft Windows Mobile Pocket Outlook contém uma série de funcionalidades que através da API POMM (Microsoft Office Pocket Outlook Object Model) é responsável respectivamente pelo calendário, contatos e tarefas no dispositivo móvel.
Através do ActiveSync como podemos fazer a sincronização com outros equipamentos, como o desktop ou notebook na empresa ou em casa.
 
Como o cenário proposto é a agenda de contatos, vamos conhecer um pouco sobre a classe contatos (Class Contacts).
 

Class Contacts

 
Contacts, é uma classe que contém propriedades que descrevem os vários métodos de cada contato instanciado, por exemplo: número de telefone, endereço de e-mail e endereço do contato, entre outros. Cada tipo de comunicação inclui várias propriedades de modo que um contato pode conter tanto um HomeTelephoneNumber como um MobileTelephoneNumber por exemplo.
 

Parte 2 - Mão na Massa

 
1) Inicie um novo projeto do Tipo Visual C# Smart Device: Windows Mobile 6 Professional. Dê o nome de Contatos.
 
 
2) Arraste para o formulário os controles abaixo:
  • 05 controles do tipo Label;
  • 05 controles do tipo Textbox;
  • Insira o menu em Type here com a palavra opções e em seguida gravar.
 
Veja próxima figura, os nomes dos controles devem ser alterados de acordo com o texto em vermelho:
 
 
 

Funcionamento

 
Assim que o usuário digitar os dados, ele poderá acessar o menu Opções e escolher a opção gravar. Na opção gravar será instanciada uma nova sessão com o Pocket Outlook, onde será adicionado o novo contato com os seus dados, e em seguida a sessão será fechada e as caixas de texto limpas. No final o usuário receberá confirmação da gravação.
 

Sessão do Outlook que serão usadas

 
OutlookSession: Classe responsável que identifica uma sessão Outlook Mobile.
Contact: Classe que provê acesso a um item da coleção de contatos numa sessão do Outlook.
 
3) Antes de continuarmos adicione a reference para a biblioteca Microsoft.WindowsMobile.PocketOutlook, desta forma: Clique com o botão direito no nome do projeto na solution Explorer, em seguida clique em Add Reference e escolha a biblioteca acima, selecionando-a e confirmando através do botão ok. Veja figura:
 
4) Declare a namespace logo no início do projeto, antes de continuar. Digitando:
 
using Microsoft.WindowsMobile.PocketOutlook;
 
4) Agora vamos ao código do botão gravar. Clique em opções, gravar e digite o cole o código abaixo:
 
        private void menuItem2_Click(object sender, EventArgs e)
        {
 
            try
            {
                //Inicia uma nova session do Outlook
                OutlookSession sessao = new OutlookSession();
 
                //Instancia um objeto chamado contato da classe
                //Contact
                Contact contato = sessao.Contacts.Items.AddNew();
 
                //Atribui os valores aos campos
                contato.FirstName = txtNome.Text;
                contato.LastName = txtSobrenome.Text;
                contato.HomeTelephoneNumber = txtFoneRes.Text;
                contato.MobileTelephoneNumber = txtFoneCel.Text;
                contato.Email1Address = txtEmail.Text;
 
                //Grava os contatos na Contacts session do
                //Outlook
                contato.Update();
 
                //Mensagem para o usuário
                MessageBox.Show("Seu novo contato foi adicionado com sucesso","Sucesso", MessageBoxButtons.OK, MessageBoxIcon.None, MessageBoxDefaultButton.Button1);
 
 
                //Fecha a session
                sessao.Dispose();
 
                //limpa as caixas de texto
                foreach (Control ctexto in this.Controls)
                {
                    if (ctexto is TextBox)
                    {
                        ctexto.Text = "";
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não foi possível adicionar o contato, aconteceu o erro: " + ex.Message.ToString());
            }
        }
 
Bom. Agora é só testar. Depois você poderá utilizar o ActiveSync para sincronizar a agenda do seu Pocket PC com o Outlook em seu PC/Notebook.
 
 
 

Conclusão

 
Aqui foi mostrado um recurso interessante para quem utiliza este cenário, pois você poderá com esse programa simples adicionar contatos, com os campos que desejar de forma mais rápida de que pela opção Contacts do próprio pocket.
 
Qualquer dúvida escreva para professormoraes_arroba_gmail.com.
 
Até o próximo artigo.
 
Marcos Roberto de Moraes
Administrador de Sistemas de Informação