O Twitter é a minha rede social favorita, e nesta postagem faremos a integração de uma aplicação Android desenvolvida em Delphi XE7 com a rede social do Passarinho Azul.
Direto ao ponto
Vamos direto ao Delphi e iniciar uma aplicação Multi-Device (File–> New–>Other–>Multi-Device Projects–> Blank Application).
Vamos dar uma recapitulada em como deve ficar configurado o Project Manager:
Para fins didáticos vamos utilizar apenas 1 TImage e 5 TButtons, configuraremos suas propriedades como abaixo:
- Button1
- Align -> Botton
- Text -> Perfil
- Heigth -> 36
- Button2
- Align -> Botton
- Text -> Time Line
- Heigth -> 36
- Button3
- Align -> Botton
- Text -> Categorias
- Heigth -> 36
- Button4
- Align -> Botton
- Text -> DM
- Heigth -> 36
- Button5
- Align -> Botton
- Text -> Enviar Tweet
- Heigth -> 36
- Image1
- MultiResBitmap –> [Uma imagem de sua preferência]
- Align -> Client
Ao final dessas configurações nossa aplicação terá uma aparência similar à imagem abaixo:
Uma vez definida a interface da aplicação, fica subentendido o funcionamento da mesma, para os cliques nos botões serão executadas as respectivas operações descritas nos textos dos mesmo. Enfim, vamos aos códigos.
Codificando as funções
Antes de darmos início aos códigos não podemos nos esquecer de incluir as Units responsáveis pela integração Delphi Android, na seção implementation vamos declarar na uses:
uses FMX.Helpers.Android, Androidapi.Jni.GraphicsContentViewText, Androidapi.Jni.Net, Androidapi.Jni.JavaTypes, idUri, Androidapi.Jni, Androidapi.JNIBridge, Androidapi.Helpers;
Para ganharmos tempo já vamos direto a cada um dos códigos dos buttons:
procedure TForm1.Button1Click(Sender: TObject);
var
IntentPerfil : JIntent;
begin
//Perfil - Funcionando
IntentPerfil := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW);
IntentPerfil.setClassName(StringToJString('com.twitter.android'),
StringToJString('com.twitter.android.ProfileActivity') ); // Perfil
IntentPerfil.putExtra(StringToJString('screen_name'),StringToJString('@landersongomes') ) ;
SharedActivity.startActivity(IntentPerfil);
end;
Para o botão da Time Line temos:
procedure TForm1.Button2Click(Sender: TObject);
var
IntentTimeLine : JIntent;
begin
//Visualizar Time Line
IntentTimeLine := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW);
IntentTimeLine.setClassName(StringToJString('com.twitter.android'),
StringToJString('com.twitter.android.TimelineActivity') ); //Visualizar a TimeLine
SharedActivity.startActivity(IntentTimeLine);
end;
Já para as categorias o código ficará:
procedure TForm1.Button3Click(Sender: TObject);
var
IntentCateg : JIntent;
begin
//Categorias de Contas
IntentCateg := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW);
IntentCateg.setClassName(StringToJString('com.twitter.android'),
StringToJString('com.twitter.android.CategoriesActivity') );
SharedActivity.startActivity(IntentCateg);
end;
A Mensagens Diretas, ou DM terão sua visualização implementada através do código:
procedure TForm1.Button4Click(Sender: TObject);
var
IntentDM : JIntent;
begin
// Visualizar Mensagens Recebidas
IntentDM := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW);
IntentDM.setClassName(StringToJString('com.twitter.android'),
StringToJString('com.twitter.android.MessagesActivity') ); //Visualizar DM recebida
SharedActivity.startActivity(IntentDM);
end;
E por fim, o código para enviarmos um Twett:
procedure TForm1.Button5Click(Sender: TObject);
var
IntentTweet : JIntent;
begin
//Enviar tweet
IntentTweet := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_SEND);
IntentTweet.setClassName(StringToJString('com.twitter.android'),
StringToJString('com.twitter.android.composer.ComposerActivity') ); //Enviar Tweet
IntentTweet.putExtra(TJIntent.JavaClass.EXTRA_TEXT,
StringToJString('Enviando tweet por aplicações #Android desenvolvidas ' +
'com @EmbarcaderoTech #Delphi Xe7. Confira no blog http://goo.gl/tRWiqS.') ) ;
SharedActivity.startActivity(IntentTweet);
end;
Tudo pronto, basta executar e conferir o resultado!
Veja o vídeo do aplicativo em execução:
Nota: Inserindo a Linha EXTRA_TEXT para a intent de DM você também consegue efetuar o envio delas, mais uma vez porém não obtive sucesso e estabelecer o destinatário das mesmas senão através da seleção manual do usuário.
Até a próxima!










Parabéns pelo post.
Nota 10.
Abs.
Parabéns
Ótimo post, porém ficou-me uma dúvida…
Como você está utilizando as API’s do Android, você perde a portabilidade entre plataformas (Android, IOS). Teria alguma forma de fazer essa integração entre redes sociais e o aplicativo, porém sem utilizar as bibliotecas nativas de determinada plataforma, garantindo assim que a aplicação continuará multiplataforma?
Grato desde já
Olá Márcio primeiramente seja muito bem vindo ao blog!
Acredito que o ideal para o seu caso seja utilizar a API dos aplicativos e não as intents como no caso dos meu exemplos. Como o meu foco realmente é todo com base em Android, minhas pesquisas tomam quase sempre este caminho. Cada um dos aplicativos sociais, geralmente, tem sua própria API esse deve ser o caminho que você está buscando.
Obrigado por sua participação!