Intent, BroadcastReceiver e NotificationsGustavo Henrique Rodrigues Pinto Tomas    gustavo.rodrigues@cesar.org.br
Agenda• Intent      – Intent Filter      – Desafio 1      – Desafio 2• Broadcast Receiver      – Desafio 3• Notifications ...
Intent• Comunicação de activities, services e broadcast  receiver;• Inicia apenas uma ação;• Falicita a comunicação em uma...
Intent(2)• Exemplo:      Intent it = new Intent(this, ViewFormActivity.class);      it.putExtra(ViewFormActivity.NAME_INTE...
Intent(3)• Utilizando intents é possível invocar outras  aplicações através das respectivas actions.• Exemplos:      – Int...
Intent Filter• Mecanismo alternativo de invocar uma activity: <activity      android:name=“MInhaActivity"      android:lab...
Desafio 1 - Intent• Criar uma aplicação com duas telas:      – A primeira será um formulário com os campos nome, endereço ...
Desafio 2: Intent• Alterar a aplicação anterior para enviar as  informações a partir de uma classe chamada  Form, com as i...
BroadCast Receiver• Permitir que a sua aplicação fique “ouvindo”  intents iniciados por qualquer aplicativo;• Declaração n...
BroadCast Receiver• Quanto algum aplicativo enviar um intent do tipo  PHONE_STATE, será chamado o método  onReceive() da c...
Desafio 3: Broadcast Receiver• Alterar a aplicação Formulário para ao receber  uma chamada telefônica, interceptar e logar...
Notifications• Mecanismo de feedback imediato ao usuário;• Utilizado quando algum processamento em  background precisa de ...
Notifications: Status BarString ns = Context.NOTIFICATION_SERVICE;NotificationManager mNotificationManager = (Notification...
Desafio 4: Status Bar• Alterar a aplicação desenvolvida para assim que  receber uma ligação notificar o usuário usando  St...
Obrigado!         Gustavo Henrique Rodrigues Pinto Tomas          Email: gustavo.rodrigues@cesar.org.br                Twi...
Upcoming SlideShare
Loading in …5
×

Android: Intent, Broadcast Receiver e Notifications

6,215 views

Published on

Slides da apresentação realizada no CESAR Sorocaba a respeito da plataforma Android: Intents, Broadcast Receiver e Notifications

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,215
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
56
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Android: Intent, Broadcast Receiver e Notifications

  1. 1. Intent, BroadcastReceiver e NotificationsGustavo Henrique Rodrigues Pinto Tomas gustavo.rodrigues@cesar.org.br
  2. 2. Agenda• Intent – Intent Filter – Desafio 1 – Desafio 2• Broadcast Receiver – Desafio 3• Notifications – Desafio 416/02/2012 2
  3. 3. Intent• Comunicação de activities, services e broadcast receiver;• Inicia apenas uma ação;• Falicita a comunicação em uma mesma aplicação e entre aplicações;• Envia e recebe dados (tipos primitivos, objetos serializáveis...).16/02/2012 3
  4. 4. Intent(2)• Exemplo: Intent it = new Intent(this, ViewFormActivity.class); it.putExtra(ViewFormActivity.NAME_INTENT, name); it.putExtra(ViewFormActivity.ADDRESS_INTENT, adress); it.putExtra(ViewFormActivity.AGE_INTENT, age); it.putExtra(ViewFormActivity.USER_INTENT, user); startActivity(it); Boas Práticas: Ao setar a key em um método putExtra, utilize sempre constantes definidas como public na activity de destino16/02/2012 4
  5. 5. Intent(3)• Utilizando intents é possível invocar outras aplicações através das respectivas actions.• Exemplos: – Intent.ACTION_CALL: faz uma ligação; – Intent.ACTION_DIAL: abre o aplicativo default de dial; – Intent.ACTION_MAIN: • CATEGORY_APP_EMAIL: abre o aplicativo de email; • CATEGORY_APP_BROWSER: abre o browser; • ATEGORY_APP_CONTACTS abre o aplicativo de calendario;16/02/2012 5
  6. 6. Intent Filter• Mecanismo alternativo de invocar uma activity: <activity android:name=“MInhaActivity" android:label="@string/app_name" > <intent-filter> <action android:name=“ABRA_MINHA_ACTIVITY" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>• Android fica ouvindo um intent com a ação ABRA_MINHA_ACTIVITY.Assim que receber invocará MinhaActivity.16/02/2012 6
  7. 7. Desafio 1 - Intent• Criar uma aplicação com duas telas: – A primeira será um formulário com os campos nome, endereço e idade com um botão “Enviar”. Quando o usuário clicar no botão as informações devem ser enviadas para a segunda activity; – A segunda activity deve apenas receber os dados e exibir na tela; Boas Práticas: Ao definir o id de um componente, utilize: android:id=“@+idNOMEDESCRITIVO/...” na qual NOMEDESCRITIVO pode ser um label para a activity16/02/2012 7
  8. 8. Desafio 2: Intent• Alterar a aplicação anterior para enviar as informações a partir de uma classe chamada Form, com as informações do formulário. Através de um intent é possível enviar objetos serializáveis16/02/2012 8
  9. 9. BroadCast Receiver• Permitir que a sua aplicação fique “ouvindo” intents iniciados por qualquer aplicativo;• Declaração no AndroidManifest.xml:</application> <receiver android:name="ReceiverSample"> <intent-filter> <action android:name="android.intent.action.PHONE_STATE“ /> </intent-filter> </receiver></application><uses-permission android:name="android.permission.CALL_PHONE"/><uses-permission android:name="android.permission.READ_PHONE_STATE"/>16/02/2012 9
  10. 10. BroadCast Receiver• Quanto algum aplicativo enviar um intent do tipo PHONE_STATE, será chamado o método onReceive() da classe ReceiverSample;• ReceiverSample deve estender de BroadcastReceiver;public class ReceiverSample extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { }}16/02/2012 10
  11. 11. Desafio 3: Broadcast Receiver• Alterar a aplicação Formulário para ao receber uma chamada telefônica, interceptar e logar o numero do telefone que esta ligando; Não se esquece de declarar a permissão de android.permission.READ_PHONE_STATE para ler as alterações de estado do telefone16/02/2012 11
  12. 12. Notifications• Mecanismo de feedback imediato ao usuário;• Utilizado quando algum processamento em background precisa de alguma iteração com o usuário;• Mais utilizado: Status Bar16/02/2012 12
  13. 13. Notifications: Status BarString ns = Context.NOTIFICATION_SERVICE;NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);CharSequence tickerText = "New call captured";Notification notification = new Notification(R.drawable.ic_launcher, tickerText, when);CharSequence contentTitle = "Phone Number";CharSequence contentText = “Content message”;Intent notificationIntent = new Intent(this, FormAPKActivity.class);PendingIntent contentIntent = PendingIntent.getActivity(c, 0, notificationIntent, 0);notification.setLatestEventInfo(this, contentTitle, contentText, contentIntent);mNotificationManager.notify(HELLO_ID, notification);16/02/2012 13
  14. 14. Desafio 4: Status Bar• Alterar a aplicação desenvolvida para assim que receber uma ligação notificar o usuário usando Status Bar com o número de telefone; Utilize o BroadcastReceiver criado no desafio anterior.16/02/2012 14
  15. 15. Obrigado! Gustavo Henrique Rodrigues Pinto Tomas Email: gustavo.rodrigues@cesar.org.br Twitter: @gustahrodrigues Código fonte disponível em: http://bit.ly/xGrlTW16/02/2012 15

×