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:
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).
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.
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.