Introdução

Uma das tarefas mais realizadas a partir de smartphones é o envio de mensagens de texto (SMS). Muitos preferem enviar um SMS a ligar diretamente para o destinatário, pois com o texto consegue passar toda informação de uma única vez, dispensando cumprimentos e despedidas desnecessários.

Atualmente, muitas empresas também aderiram a este método para passar informações para seus clientes de forma mais prática. Um exemplo disso é observado em algumas operadoras de cartão de crédito, que notificam o usuário quando uma compra é efetuada com seu cartão.Então, sabendo dessa realidade e da importância que possuem as mensagens de texto, nada melhor que integrá-las às nossas aplicações, permitindo ao usuário enviar SMS para um determinado número sem precisar sair da aplicação (ou “minimizá-la”) e acessar o aplicativo de mensagens.

No Windows Phone, essa é uma tarefa consideravelmente simples e pode ser realizada com o auxílio da classe SmsComposeTask, contida no namespace Microsoft.Phone.Tasks.

Essa classe possui basicamente duas propriedades e um método que são relevantes para nós neste momento:

  • Body (string): como o nome sugere, esta propriedade representa o corpo da mensagem. Podemos, por exemplo, solicitar que o usuário digite ou definir um texto fixo via código.
  • To (string): esta propriedade representa o número ou nome para o qual o SMS será enviado. É importante que aqui seja informado um número válido ou o nome de um contato, exatamente como ele aparece na agenda. Podem ser informados vários destinatários, separados por ponto e vírgula, assim como ocorre no aplicativo de mensagens (que será aberto, no fim das contas).
  • Show(): o único método que nos interessa aqui, responsável por abrir o aplicativo de mensagens com os destinatários e o corpo da mensagem já definidos. O usuário precisa somente tocar no botão Enviar.

Mãos à obra

Já conhecemos a classe que iremos utilizar, então já podemos criar uma nova aplicação para Windows Phone no Visual Studio, utilizando o template Windows Phone App.

Na página principal (MainPage.xaml), vamos inserir um botão no grid principal, para enviar o SMS. O conteúdo dessa página deve ficar como mostrado na Listagem 1.

Listagem 1: Conteúdo da página MainPage.xaml





    
        
        
    

    
    
        
        
    

    
    
        
            
        
    

 

A interface da página deve fica como ilustrada na Figura 1.

Interface da aplicação

Figura 1: Interface da aplicação

Para codificar o event handler do evento Click do botão Enviar, podemos dar dois clique sobre ele na interface, ou clicar com o botão direito na tag Button e utilizar a opção Navigate to Event Handler, como mostra a Figura 2.

Navegando para o event handler do botão

Figura 2: Navegando para o event handler do botão

Isso nos levará ao código C#, na função btnEnviar_Click, que trata o evento Click do botão.

Lá instanciaremos a classe SmsComposeTask, preenchendo as propriedade Body e To e invocando o método Show, conforme vemos na Listagem 2.

Listagem 2: Evento Click do botão Enviar

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.UserData;
using Microsoft.Phone.Tasks;

namespace PhoneApp1
{
    public partial class MainPage : PhoneApplicationPage
    {
        // Constructor
        public MainPage()
        {
            InitializeComponent();
        }

        private void btnEnviar_Click(object sender, RoutedEventArgs e)
        {
            SmsComposeTask sms = new SmsComposeTask();
            sms.To = "Andrew Hill; 88997755";
            sms.Body = "Este é o corpo da mensagem";
            sms.Show();
        }
    }
}

É importante observar que na seção de usings adicionamos o namespace Microsoft.Phone.Tasks, onde está contida a classe SmsComposeTask, como já foi citado anteriormente.

Executando a aplicação e tocando no botão, teremos o seguinte resultado:

Navegando para o event handler do botão

Figura 3: Aplicativo de mensagens aberto pela aplicação

Agora basta pressionar o botão “enviar” (send) para que a mensagem seja enviada. Ao fazer isso no emulador, obteremos um erro, pois não há uma conta de telefonia válida para realizar tal serviço.

Para resolver isso, é só executar a aplicação em um aparelho com uma conta válida.

Como vimos, basicamente fizemos uso da classe SmsComposeTask, que abre o aplicativo de mensagens para permitir ao usuário enviar SMS.

Então finalizamos aqui este breve artigo. Quaisquer dúvidas, sugestões ou críticas podem ser registradas na seção de comentários, abaixo.