Android: Intent, Broadcast Receiver e Notifications
Upcoming SlideShare
Loading in...5
×
 

Android: Intent, Broadcast Receiver e Notifications

on

  • 5,805 views

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

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

Statistics

Views

Total Views
5,805
Views on SlideShare
5,805
Embed Views
0

Actions

Likes
0
Downloads
39
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Android: Intent, Broadcast Receiver e Notifications Android: Intent, Broadcast Receiver e Notifications Presentation Transcript

    • 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 – Desafio 416/02/2012 2
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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