Beruflich Dokumente
Kultur Dokumente
Landerson Gomes
DELPHI
Compartilhe
sobre o cliente pode gerar um ganho de tempo significativo na atividade de seu usurio,
exatamente isso que faremos nessa postagem.
Sempre Intent
Mais uma vez vamos nos comunicar diretamente com o Sistema Operacional Android, para faz-
lo a melhor maneira fazendo uso de Intents, volto a lembrar que caso no tenha lido ainda a
postagem que j fiz sobre o assunto considero altamente recomendvel a leitura:INTENTS COM
DELPHI XE5 COMUNICANDO APPS ATRAVS DO ANDROID.
Concebendo a aplicao
Abra o Delphi XE5 e inicie um Novo Projeto Mobile em Branco, como j fizemos inmeras vezes
aqui no blog. Construiremos uma interface bem simples, inserindo no formulrio principal da
aplicao: 1 Button, 1 Edit e 1 Image. Como descrito abaixo alteraremos suas propriedades:
Button1
Align -> alBottom
Text -> E-mail
Edit1
Align -> alTop
KeyboardTye ->vktEmailAddress
Image1
Align -> alClient
MultiResBitmap -> [selecione uma imagem de sua preferncia]
WrapMode ->iwStretch
Ao final do processo teremos uma tela bem parecida com a imagem abaixo.
http://vivaitaocara.com.br/landersongomes/embarcadero/delphi/enviandoemailnoandroidcomdelphixe5 2/10
27/11/2015 EnviandoemailnoAndroidcomDelphiXE|LandersonGomes
Basicamente, ao clicar no Boto o usurio vai enviar um e-mail para o destinatrio informado no
Edit. Vamos aos cdigos!
Implementando a funcionalidade
Primeiramente vamos inserir na clusula uses da seo implementation os seguintes
Namespaces:
1 implementation
2
3 {$R*.fmx}
4 uses
5 FMX.Helpers.Android,Androidapi.Jni.GraphicsContentViewText,
6 Androidapi.Jni.Net,Androidapi.Jni.JavaTypes,Androidapi.JNIBridge;
1 procedureTForm1.Button1Click(Sender:TObject);
2 var
3 Destinatario:string;
4 Intent:JIntent;
5 Destinatarios:TJavaObjectArray<JString>;
6 begin
7 ifEdit1.Text<>EmptyStrthen
8 begin
9 Destinatario:=Edit1.Text;
10 Destinatarios:=TJavaObjectArray<JString>.Create(1);
11
12 Intent:=TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_SEN
13 Destinatarios.Items[0]:=StringToJString(Destinatario);
14 Intent.putExtra(TJIntent.JavaClass.EXTRA_EMAIL,Destinatarios);
15 Intent.putExtra(TJIntent.JavaClass.EXTRA_SUBJECT,StringToJStri
16 Intent.putExtra(TJIntent.JavaClass.EXTRA_TEXT,StringToJString(
17 Intent.setType(StringToJString('plain/text'));
18 SharedActivity.startActivity(TJIntent.JavaClass.createChooser(I
19 StrToJCharSequence('Qualaplicativodesejausar?'))); 3/10
http://vivaitaocara.com.br/landersongomes/embarcadero/delphi/enviandoemailnoandroidcomdelphixe5
27/11/2015 EnviandoemailnoAndroidcomDelphiXE|LandersonGomes
19 StrToJCharSequence('Qualaplicativodesejausar?')));
20 end;
21
22 end;
Destinatarios TJavaObjectArray<JString>;
Que declara um array de strings do nativas doJava (JString), que instanciado para conter uma
nica posio na linha: Destinatarios := TJavaObjectArray<JString>.Create(1);, para depois neste
array inserirmos o destinatrio de nosso e-mail, vide linha contendo o
cdigo:Destinatarios.Items[0] := StringToJString(Destinatario);
Conferindo o Resultado
Execute o projeto e confira o resultado!
Temos nossa aplicao Delphi XE5 enviando e-mail pelo prprio Android.
At a prxima!
http://vivaitaocara.com.br/landersongomes/embarcadero/delphi/enviandoemailnoandroidcomdelphixe5 4/10
27/11/2015 EnviandoemailnoAndroidcomDelphiXE|LandersonGomes
Relacionado:
Adicionando eventos agenda do Intents com Delphi XE5 Leitura de Cdigo de Barras em
Android com Delphi XE5 comunicando Apps atravs do Android com Delphi XE5
Em "Delphi" Android Em "Delphi"
Em "Delphi"
Arley
AGOSTO 20, 2014 S 12:31
Tudo bem, essa aplicao at funciona, mas no acrescenta muita coisa ao fato de que isso
com o aap inventor da pra fazer tranquilo.
Agora a situao :
mailto:
?subject=
&body=
agora! Esta bem complicado, sem dar tanta volta.
&attachment=
O ANEXO!
Consegue fazer isso incluindo por exemplo uma foto para envio por attachment.
http://vivaitaocara.com.br/landersongomes/embarcadero/delphi/enviandoemailnoandroidcomdelphixe5 5/10
27/11/2015 EnviandoemailnoAndroidcomDelphiXE|LandersonGomes
Landerson Gomes
AGOSTO 20, 2014 S 14:23
Ol Arley. Primeiramente bem vindo ao Blog! Fazendo uma breve leitura no blog
perceber que todo o contedo busca sempre retratar solues em Delphi, o que
realmente pode no acrescentar muito a outras ferramentas, entre estas incluo o APP
Inventor que como voc disse d pra fazer tranquilo.
Talvez voc possa pesquisar um pouco sobre como fazer no App Inventor o envio de e-mail
com anexo.
Embora, no classifique o contedo aqui do blog como sendo sua melhor fonte de pesquisa
para a referida ferramenta, j que as experincias aqui relatadas, volto a repetir, so
Delphi.
Talvez acrescente sua busca, uma breve observada no Android Developers Reference
procurando por ACTION_SEND_MULTIPLE, esta ao para o envio contendo anexo.
Tente a no APP INVENTOR, se tiver algo a meu alcance em Delphi j sabe onde acessar,
s postar, fao questo de sempre que posso responder e interagir com os comentrios!
Arley
AGOSTO 20, 2014 S 14:41
Sim, Claro! Eu concordo s fiz aluso ao fato que seria interessante no seu exemplo uma
soluo mais ampla sem esquecer os pormenores do uso do que chamamos enviar email.
Acredito que acrescentaria mais interesse aos seus post e contribuiria mais a criar novas
ideias do que reproduzir.
Tambm sou programador Delphi. E acredito que seu objetivo no seu blog e ajudar na
fundamentao de novas ideias sobre integraes programadas nas dois plataformas,
por isso minha referncia ao app inventor.
Landerson Gomes
http://vivaitaocara.com.br/landersongomes/embarcadero/delphi/enviandoemailnoandroidcomdelphixe5 6/10
27/11/2015 EnviandoemailnoAndroidcomDelphiXE|LandersonGomes
Arley, vou tentar jogar um exemplo com anexo nos prximos dias, mas como citei o
caminho Atravs de ACTION_SEND_MULTIPLE.
Na verdade no blog eu apenas relato partes do meu desenvolvimento que possa ser
comum a dvidas dos demais, como tenho focado em aplicaes mobile Andoird veio
essa sequncia de postagens, mas sempre situaes que j tenha utilizado em meus
projetos no cotidiano.
De qualquer forma, reitero meu agradecimento por sua participao no blog, e como
falei procuro sempre que possvel interagir com os leitores, e espero que possamos
interagir em novas postagens quando as mesma despertarem seu interesse.
Um cordial abrao!
Renan Kemp
AGOSTO 30, 2014 S 02:00
Rafael
SETEMBRO 26, 2014 S 23:07
Como posso deixar apenas os clientes de email aparecendo na lista? Com esse exemplo
aparece skype, google drive etc, mas gostaria que aparecesse somente gmail, outlook etc
Eduardo
NOVEMBRO 13, 2014 S 12:19
Tem como colocar um anexo? Quero gerar um arquivo Texto e j anexar no email. Tem
como?
Landerson Gomes
NOVEMBRO 14, 2014 S 18:34
Ol Eduardo requer um pouco mais de estudo, mas tem como sim! De uma pesquisada em
SEND_MULTIPLE do Android e faa a adaptao.
Vou tentar procurar, me recordo de j ter encontrado a soluo com anexo porm no
cheguei a codific-la nem mesmo a post-la!
Sara
http://vivaitaocara.com.br/landersongomes/embarcadero/delphi/enviandoemailnoandroidcomdelphixe5 7/10
27/11/2015 EnviandoemailnoAndroidcomDelphiXE|LandersonGomes
Quando eu coloco para rodar no telefone aparece Aplication does not support this device o
que eu fao ?
Landerson Gomes
NOVEMBRO 15, 2014 S 08:31
Ol Sara! Bem vinda!!! Esta mensagem voc est recebendo no exemplo utilizado no post
do seu comentrio? Se sim, qual verso do Android do seu telefone, qual marca e modelo
do aparelho? E principalmente, qual verso do Delphi voc est utilizando?
Eduardo
NOVEMBRO 21, 2014 S 12:03
Tem como enviar um email sem a necessidade de abrir o gerenciador de email do android??
Landerson Gomes
NOVEMBRO 22, 2014 S 10:24
Rodrigo
JULHO 24, 2015 S 11:08
Ol!
Pessoal, estou usando XE8 e ao utilizar o cdigo acima, recebo msg de no declarado para
SharedActivity.startActivity e para StringToJString.
J adicionei todas as units citadas acima e o problema continua. podem me ajudar? Obrigado
Landerson Gomes
AGOSTO 13, 2015 S 10:35
http://vivaitaocara.com.br/landersongomes/embarcadero/delphi/enviandoemailnoandroidcomdelphixe5 8/10
27/11/2015 EnviandoemailnoAndroidcomDelphiXE|LandersonGomes
Alexandre
AGOSTO 21, 2015 S 13:35
Ol Landerson,
Eu estou usando Delphi XE8, porm ele no reconhece tambm a UNIT Androidapi.Helpers.
O nome dessa Unit mudou?
marcos roberto
SETEMBRO 18, 2015 S 14:05
vc tem alguem exemplo para mandar imprimir .. ?? e tambem mexendo em arquivos txt
Landerson Gomes
SETEMBRO 29, 2015 S 12:34
Ol Marcos, estive para tentar faz-lo por diversas vezes mas sempre chega um
projetinho mais urgente que me tira da linha.
Jefferson
SETEMBRO 21, 2015 S 13:30
Landerson, gostaria de enviar um e-mail com anexo em background sem usar o cliente de e-
mail do android, como se fosse usar o componente indy
Landerson Gomes
SETEMBRO 29, 2015 S 12:06
http://vivaitaocara.com.br/landersongomes/embarcadero/delphi/enviandoemailnoandroidcomdelphixe5 9/10
27/11/2015 EnviandoemailnoAndroidcomDelphiXE|LandersonGomes
Espero t-lo ajudado, obrigado por sua participao e no deixe de postar um feedback!
At mais!
http://vivaitaocara.com.br/landersongomes/embarcadero/delphi/enviandoemailnoandroidcomdelphixe5 10/10