Nessa postagem vamos enviar SMS através de uma aplicação Delphi XE5 para Android. Poucas linhas de códigos que podem ser adaptadas à realidade de sua aplicação mobile e torná-la ainda mais agradável a seus usuários.

Criação da Interface da aplicação e Conceder Permissão para Envio de SMS

Inicie o Delphi XE5 e crie um novo projeto Mobile em Branco como já fizemos em outras postagens, acesse Menu File –> New –> FireMonkey Mobile Application e em seguida selecione a opção Blank Template .

Vamos inserir em nosso formulário 1 Label, 1 Edit, 1 Memo e 1 Button. Alteraremos a propriedade Text do Label para “Destinatário”. Ao final teremos a interface da aplicação assemelhando-se à figura abaixo:

 

Interface da Aplicação

Como vamos enviar SMS, precisamos solicitar essa permissão ao Android. Abre-se aqui um parêntese,  quando você instala uma aplicação no Android ele sempre informa os recursos que essa aplicação vai usar, por isso vamos setar a permissão para Envio de SMS como verdadeira. No Project Manager selecione o nosso Projeto e clique com o botão direito para que seja exibido o Popup Menu e nele selecione Options (a penúltima opção do menu popup).

Acionando Opções

As opções do Projeto serão abertas e aí procuraremos por Uses Permissions, note que no quadro à direita estão todas as opções de permissões possíveis a um projeto Android. Vamos procurar nas permissões por Send SMS e setá-la para True, ou seja, acabamos de dizer para o Android que usaremos o envio de SMS.

Permissões Android - Envio SMS

 

Feito isso basta clicar em OK e vamos iniciar a codificação de nosso projeto.

Código Delphi… funcionalidade Android

Na seção Implementation, em sua cláusula uses vamos adicionar 2 Namespaces que fazem referências a Classes Android e farão com que nosso projeto se comunique com o telefone e reconheça os tipos de dados do Android/Java, são eles respectivamente abaixo:

implementation
{$R *.fmx}
uses   Androidapi.Jni.Telephony, Androidapi.Jni.JavaTypes;

 

No evento OnClick do Button vamos inserir o seguinte código:

procedure TForm1.btnEnviarClick(Sender: TObject);
var
  GerenciadorSMS : JSmsManager;
begin
  GerenciadorSMS := TJSmsManager.JavaClass.getDefault;
  if not Edit1.Text.IsEmpty then
    begin
      if not Memo1.Lines.Text.IsEmpty then
        GerenciadorSMS.sendTextMessage(StringToJString(Edit1.Text), nil, StringToJString(Memo1.Lines.Text), nil, nil )

      else
        ShowMessage('Escreva a mensagem.');
    end
  else
    ShowMessage('Informe o número de destino para a mensagem.');

end;

Já está pronta nossa aplicação. Acione o Emulador ou conecte um dispositivo Android e execute para conferir o funcionamento.

Traga para sua realidade

Na minha postagem Delphi XE5 Efetuando chamadas telefônicas direto de sua aplicação móvel, populamos um ListBox com elementos de um cadastro de fornecedores fictício e a partir dali efetuávamos chamadas telefônicas. Na postagem de hoje, poderíamos pensar de igual forma, com um cadastro de Gerentes ou Vendedores de sua empresa por exemplo e que você precise enviar  um SMS a eles.

Enfim, a facilidade está disponível, adapte-a à realidade de seu usuário.

Até a próxima.

 

 

 

Comente