Desenvolvimento - Mobile

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

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.

por Marcos Roberto de Moraes



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:

http://www.microsoft.com/downloads/details.aspx?FamilyID=9e641c34-6f7f-404d-a04b-dc09f8141141&DisplayLang=en

e

http://www.microsoft.com/downloads/details.aspx?familyid=06111A3A-A651-4745-88EF-3D48091A390B&displaylang=en

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 podemos fazer a sincronização com outros equipamentos, como o desktop ou notebook na empresa ou em casa.

Como dito antes, 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:

    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 e Classe 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

Marcos Roberto de Moraes

Marcos Roberto de Moraes - Mestrando em Educação (UNISAL)
Especialista em Administração de Sist. Informação (UFLA)
Licenciado Pleno em Informática (UNIMEP)
Professor das Faculdades Santa Lúcia de SI, FATEC e ETEC de Mogi Mirim-SP