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!