Fala galera!! Tudo na paz?

Continuando nossos posts sobre Windows Phone, hoje vamos conhecer um pouco sobre Launchers and Choosers.

Mas o que seria isso?

Durante o processo de desenvolvimento de um software é comum nos depararmos com requisitos onde há a necessidade de acesso direto às APIs do sistema operacional. Se estivéssemos desenvolvendo um sistema para Windows (Forms, Services, etc.) seria relativamente simples realizar o acesso a determinadas API´s, porém, no Windows Phone, isso é um pouco diferente, isso porque no modelo de execução do Windows Phone, as aplicações são totalmente isoladas, tanto para armazenamento de arquivos como para a própria execução de aplicações.

Resumindo, não é possível que as aplicações acessem diretamente recursos do sistema operacional – Contatos, Câmera, SMS, triste não?

E agora, quem poderá nos ajudar?

Eis que surjem nossos salvadores – Launchers and Choosers! Yeeesss!!

De modo geral, Launchers and Choosers são API´s que, de forma controlada, permitem que você tenha acesso à algumas funções do seu telefone, como por exemplo seus Contatos, SMS e até mesmo ao MarketPlace (MarketplaceHubTask). Vale lembrar que, no Windows Phone, o modelo de execução só permite que uma aplicação seja executada por vez, isso faz com que seja necessário o gerenciamento do estado das páginas Ok?!

Uma melhor definição para cada um deles seria:

Launchers

Bibliotecas que permitem que sejam executadas determinadas tarefas, e que, ao final de sua execução não retornam nenhuma informação à aplicação que realizou a chamada. Podemos citar a classe PhoneCallTask como sendo um Launcher pois, passado os parâmetros necessários, ela irá realizar sua operação (ligar para um contato) e ao término, não irá enviar nenhum retorno para nossa aplicação chamadora ou seja, nossa aplicação apenas irá retornar para seu estado anterior – ativada.

Choosers

Assim como o Launcher, permitem que sejam executadas determinadas tarefas, mas que, ao final de sua execução retornam alguma informação para a aplicação que realizou a chamada. Como Chooser, um exemplo seria a classe CameraCaptureTask, isso porque após sua utilização, a mesma retorna para a aplicação cliente uma informação, que neste caso é uma foto.

Ao desenvolvermos aplicações, é comum utilizarmos o emulador do Windows Phone para realizarmos alguns testes correto? Pois bem, é importante entendermos quais são os Launchers e Choosers suportados pelo emulador e suas diferenças.

Nas classes abaixo, não há diferença entre Emulador e o Dispositivo:

EmailAddressChooserTask
– Permite acessar a lista de contatos, que possuem email cadastrado, retornando o email para a aplicação;

MarketplaceDetailTask
– Inicia o Marketplace e exibe a página de detalhes de uma determinada aplicação;

MarketplaceHubTask
– Inicia o Marketplace e permite o usuário selecionar o hub de Música + Vídeo ou de Aplicação;

MarketplaceSearchTask
– Permite a realização de pesquisa no Marketplace e exibe a página de resultados;

PhoneNumberChooserTask
– Permite acessar a lista de contatos, que possuem telefone cadastrado, retornando o número para a aplicação;

PhotoChooserTask
– Permite acessa a biblioteca de imagens, retornando a imagem selecionada;

SaveEmailAddressTask
– Permite acessa a lista de contatos. É possível salvar o email para um novo contato, ou um já existente;

SavePhoneNumberTask
– Permite acessa a lista de contatos. É possível salvar o número para um novo contato, ou um já existente;

SearchTask
– Permite que a aplicação inicie  o Web Search;

WebBrowserTask
– Permite que a aplicação inicie o navegador e navegue para uma URL específica.

Já nas classes abaixo, tem-se algumas diferenças:

CameraCaptureTask
– Windows Phone – Permite utilizar a câmera para obter uma nova foto e fornecê-la para a aplicação
– Emulador – Não existe câmera. Será retornada uma imagem padrão

EmailComposeTask
– Windows Phone – Permite que a aplicação inicie a criação de um novo email. Caso não existe conta de email cadastrada, será solicitada a configuração.
– Emulador – Não funciona pois não é possível configurar contas de email no emulador

MarketplaceReviewTask
– Windows Phone – Inicia o Marketplace e exibe a página de classificação e revisão de um determinado produto. É necessário um Windows Live ID para escrever uma revisão
– Emulador – Será retornado um erro pois não existe um Windows Live ID

MediaPlayerLaucher
– Windows Phone – Inicia o media player de acordo com a URI informada
– Emulador – É possível iniciar o media player e tocar músicas, porém vídeos não são renderizados

PhoneCallTask
– Windows Phone – Permite iniciar o mecanismo de chamadas, especificando o número a ser chamado. Caso o aparelho não possua um cartão SIM, será solicitada a adição do SIM e sairá da aplicação
– Emulador – O emulador utiliza um GSM falso e sempre retornará que não existe um cartão SIM inserido. No entanto as chamadas sempre são realizadas com sucesso por meio de uma conexão simulada

SmsComposeTask
– Windows Phone – Permite iniciar o mecanismo de mensagens, especificando o número do telefone e/ou a mensagem. Nenhum retorno é oferecido à aplicação. Caso o aparelho não possua um cartão SIM, o Windows Phone receberá uma notificação que o envio falhar
– Emulador – O emulador permite iniciar a mensagem SMS com o número do telefone e/ou a mensagem. A mensagem SMS sempre será “enviada” com sucesso devido ao falso SIM que o emulador possui.

That´s all folks!

Nos próximos posts irei demonstrar como utilizar nossos amigos Launchers and Choosers Ok!

Enjoy!