PROGRAMAÇÃO PARA
DISPOSITIVOS MÓVEIS
Notification
Objetivos da aula
 Notification
Sua aplicação em segundo plano
precisa interagir com o usuário. Qual
a melhor maneira?
Toast?
Abrir uma tela sem permissão do
usuário?
Esta barra de status é familiar?
Esta barra de status é familiar?
Te lembra alguma coisa?
android.app.Notification
Não conhece esta barra de status?
Não conhece esta barra de status?
Arraste-a para baixo...
Observe o exemplo abaixo...
Sua aplicação não pode atrapalhar a
atividade atual do usuário, seja uma
leitura de SMS, uma chamada ativa,
jogando um game ou qualquer outra
ação.
Com Notification podemos inclusive
fazer o celular vibrar ou acender as
luzes.
Uma Notification, quando clicada
pode disparar uma Intent.
Se seu serviço precisar avisar algo ao
usuário, lembre-se da classe
Notification.
Activity que irá criar uma
Notification...
public class CriaNotificacao extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView textView = new TextView(this);
textView.setText("Notificação criada...");
setContentView(textView);
String tickerText = "Você recebeu uma mensagem";
String titulo = "Ricardo";
String mensagem = "Exemplo de notificação";
notificar(this, R.drawable.ic_launcher, tickerText, titulo, mensagem, ExecutaNotificacao.class);
}
void notificar(Context ctx, int img, String ticker, String titulo, String msg, Class<?> activity) {
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
PendingIntent p = PendingIntent.getActivity(ctx, 0, new Intent(ctx, activity), 0);
// @formatter:off
Notification n = new Notification.Builder(ctx)
.setTicker(ticker)
.setContentTitle(titulo)
.setSmallIcon(img)
.setContentText(msg)
.setContentIntent(p)
.setWhen(System.currentTimeMillis())
.build();
// @formatter:on
nm.notify(R.string.app_name, n);
}
}
public class CriaNotificacao extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView textView = new TextView(this);
textView.setText("Notificação criada...");
setContentView(textView);
String tickerText = "Você recebeu uma mensagem";
String titulo = "Ricardo";
String mensagem = "Exemplo de notificação";
notificar(this, R.drawable.ic_launcher, tickerText, titulo, mensagem, ExecutaNotificacao.class);
}
void notificar(Context ctx, int img, String ticker, String titulo, String msg, Class<?> activity) {
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
PendingIntent p = PendingIntent.getActivity(ctx, 0, new Intent(ctx, activity), 0);
// @formatter:off
Notification n = new Notification.Builder(ctx)
.setTicker(ticker)
.setContentTitle(titulo)
.setSmallIcon(img)
.setContentText(msg)
.setContentIntent(p)
.setWhen(System.currentTimeMillis())
.build();
// @formatter:on
nm.notify(R.string.app_name, n);
}
}
public class CriaNotificacao extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView textView = new TextView(this);
textView.setText("Notificação criada...");
setContentView(textView);
String tickerText = "Você recebeu uma mensagem";
String titulo = "Ricardo";
String mensagem = "Exemplo de notificação";
notificar(this, R.drawable.ic_launcher, tickerText, titulo, mensagem, ExecutaNotificacao.class);
}
void notificar(Context ctx, int img, String ticker, String titulo, String msg, Class<?> activity) {
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
PendingIntent p = PendingIntent.getActivity(ctx, 0, new Intent(ctx, activity), 0);
// @formatter:off
Notification n = new Notification.Builder(ctx)
.setTicker(ticker)
.setContentTitle(titulo)
.setSmallIcon(img)
.setContentText(msg)
.setContentIntent(p)
.setWhen(System.currentTimeMillis())
.build();
// @formatter:on
nm.notify(R.string.app_name, n);
}
}
public class CriaNotificacao extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView textView = new TextView(this);
textView.setText("Notificação criada...");
setContentView(textView);
String tickerText = "Você recebeu uma mensagem";
String titulo = "Ricardo";
String mensagem = "Exemplo de notificação";
notificar(this, R.drawable.ic_launcher, tickerText, titulo, mensagem, ExecutaNotificacao.class);
}
void notificar(Context ctx, int img, String ticker, String titulo, String msg, Class<?> activity) {
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
PendingIntent p = PendingIntent.getActivity(ctx, 0, new Intent(ctx, activity), 0);
// @formatter:off
Notification n = new Notification.Builder(ctx)
.setTicker(ticker)
.setContentTitle(titulo)
.setSmallIcon(img)
.setContentText(msg)
.setContentIntent(p)
.setWhen(System.currentTimeMillis())
.build();
// @formatter:on
nm.notify(R.string.app_name, n);
}
}
public class CriaNotificacao extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView textView = new TextView(this);
textView.setText("Notificação criada...");
setContentView(textView);
String tickerText = "Você recebeu uma mensagem";
String titulo = "Ricardo";
String mensagem = "Exemplo de notificação";
notificar(this, R.drawable.ic_launcher, tickerText, titulo, mensagem, ExecutaNotificacao.class);
}
void notificar(Context ctx, int img, String ticker, String titulo, String msg, Class<?> activity) {
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
PendingIntent p = PendingIntent.getActivity(ctx, 0, new Intent(ctx, activity), 0);
// @formatter:off
Notification n = new Notification.Builder(ctx)
.setTicker(ticker)
.setContentTitle(titulo)
.setSmallIcon(img)
.setContentText(msg)
.setContentIntent(p)
.setWhen(System.currentTimeMillis())
.build();
// @formatter:on
nm.notify(R.string.app_name, n);
}
}
public class CriaNotificacao extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView textView = new TextView(this);
textView.setText("Notificação criada...");
setContentView(textView);
String tickerText = "Você recebeu uma mensagem";
String titulo = "Ricardo";
String mensagem = "Exemplo de notificação";
notificar(this, R.drawable.ic_launcher, tickerText, titulo, mensagem, ExecutaNotificacao.class);
}
void notificar(Context ctx, int img, String ticker, String titulo, String msg, Class<?> activity) {
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
PendingIntent p = PendingIntent.getActivity(ctx, 0, new Intent(ctx, activity), 0);
// @formatter:off
Notification n = new Notification.Builder(ctx)
.setTicker(ticker)
.setContentTitle(titulo)
.setSmallIcon(img)
.setContentText(msg)
.setContentIntent(p)
.setWhen(System.currentTimeMillis())
.build();
// @formatter:on
nm.notify(R.string.app_name, n);
}
}
public class CriaNotificacao extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView textView = new TextView(this);
textView.setText("Notificação criada...");
setContentView(textView);
String tickerText = "Você recebeu uma mensagem";
String titulo = "Ricardo";
String mensagem = "Exemplo de notificação";
notificar(this, R.drawable.ic_launcher, tickerText, titulo, mensagem, ExecutaNotificacao.class);
}
void notificar(Context ctx, int img, String ticker, String titulo, String msg, Class<?> activity) {
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
PendingIntent p = PendingIntent.getActivity(ctx, 0, new Intent(ctx, activity), 0);
// @formatter:off
Notification n = new Notification.Builder(ctx)
.setTicker(ticker)
.setContentTitle(titulo)
.setSmallIcon(img)
.setContentText(msg)
.setContentIntent(p)
.setWhen(System.currentTimeMillis())
.build();
// @formatter:on
nm.notify(R.string.app_name, n);
}
}
public class CriaNotificacao extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView textView = new TextView(this);
textView.setText("Notificação criada...");
setContentView(textView);
String tickerText = "Você recebeu uma mensagem";
String titulo = "Ricardo";
String mensagem = "Exemplo de notificação";
notificar(this, R.drawable.ic_launcher, tickerText, titulo, mensagem, ExecutaNotificacao.class);
}
void notificar(Context ctx, int img, String ticker, String titulo, String msg, Class<?> activity) {
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
PendingIntent p = PendingIntent.getActivity(ctx, 0, new Intent(ctx, activity), 0);
// @formatter:off
Notification n = new Notification.Builder(ctx)
.setTicker(ticker)
.setContentTitle(titulo)
.setSmallIcon(img)
.setContentText(msg)
.setContentIntent(p)
.setWhen(System.currentTimeMillis())
.build();
// @formatter:on
nm.notify(R.string.app_name, n);
}
}
Activity que será executada através
da Notification...
public class ExecutaNotificacao extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
nm.cancel(R.string.app_name);
TextView textView = new TextView(this);
textView.setText("Usuário selecionou a notificação.");
setContentView(textView);
}
}
public class ExecutaNotificacao extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
nm.cancel(R.string.app_name);
TextView textView = new TextView(this);
textView.setText("Usuário selecionou a notificação.");
setContentView(textView);
}
}
public class ExecutaNotificacao extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
nm.cancel(R.string.app_name);
TextView textView = new TextView(this);
textView.setText("Usuário selecionou a notificação.");
setContentView(textView);
}
}
Até a próxima!

Aula 05/06 (Notification)

  • 1.
  • 2.
  • 3.
    Sua aplicação emsegundo plano precisa interagir com o usuário. Qual a melhor maneira?
  • 4.
  • 5.
    Abrir uma telasem permissão do usuário?
  • 6.
    Esta barra destatus é familiar?
  • 7.
    Esta barra destatus é familiar? Te lembra alguma coisa?
  • 8.
  • 9.
    Não conhece estabarra de status?
  • 10.
    Não conhece estabarra de status? Arraste-a para baixo...
  • 11.
  • 12.
    Sua aplicação nãopode atrapalhar a atividade atual do usuário, seja uma leitura de SMS, uma chamada ativa, jogando um game ou qualquer outra ação.
  • 13.
    Com Notification podemosinclusive fazer o celular vibrar ou acender as luzes.
  • 14.
    Uma Notification, quandoclicada pode disparar uma Intent.
  • 15.
    Se seu serviçoprecisar avisar algo ao usuário, lembre-se da classe Notification.
  • 17.
    Activity que irácriar uma Notification...
  • 18.
    public class CriaNotificacaoextends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView textView = new TextView(this); textView.setText("Notificação criada..."); setContentView(textView); String tickerText = "Você recebeu uma mensagem"; String titulo = "Ricardo"; String mensagem = "Exemplo de notificação"; notificar(this, R.drawable.ic_launcher, tickerText, titulo, mensagem, ExecutaNotificacao.class); } void notificar(Context ctx, int img, String ticker, String titulo, String msg, Class<?> activity) { NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); PendingIntent p = PendingIntent.getActivity(ctx, 0, new Intent(ctx, activity), 0); // @formatter:off Notification n = new Notification.Builder(ctx) .setTicker(ticker) .setContentTitle(titulo) .setSmallIcon(img) .setContentText(msg) .setContentIntent(p) .setWhen(System.currentTimeMillis()) .build(); // @formatter:on nm.notify(R.string.app_name, n); } }
  • 19.
    public class CriaNotificacaoextends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView textView = new TextView(this); textView.setText("Notificação criada..."); setContentView(textView); String tickerText = "Você recebeu uma mensagem"; String titulo = "Ricardo"; String mensagem = "Exemplo de notificação"; notificar(this, R.drawable.ic_launcher, tickerText, titulo, mensagem, ExecutaNotificacao.class); } void notificar(Context ctx, int img, String ticker, String titulo, String msg, Class<?> activity) { NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); PendingIntent p = PendingIntent.getActivity(ctx, 0, new Intent(ctx, activity), 0); // @formatter:off Notification n = new Notification.Builder(ctx) .setTicker(ticker) .setContentTitle(titulo) .setSmallIcon(img) .setContentText(msg) .setContentIntent(p) .setWhen(System.currentTimeMillis()) .build(); // @formatter:on nm.notify(R.string.app_name, n); } }
  • 20.
    public class CriaNotificacaoextends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView textView = new TextView(this); textView.setText("Notificação criada..."); setContentView(textView); String tickerText = "Você recebeu uma mensagem"; String titulo = "Ricardo"; String mensagem = "Exemplo de notificação"; notificar(this, R.drawable.ic_launcher, tickerText, titulo, mensagem, ExecutaNotificacao.class); } void notificar(Context ctx, int img, String ticker, String titulo, String msg, Class<?> activity) { NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); PendingIntent p = PendingIntent.getActivity(ctx, 0, new Intent(ctx, activity), 0); // @formatter:off Notification n = new Notification.Builder(ctx) .setTicker(ticker) .setContentTitle(titulo) .setSmallIcon(img) .setContentText(msg) .setContentIntent(p) .setWhen(System.currentTimeMillis()) .build(); // @formatter:on nm.notify(R.string.app_name, n); } }
  • 21.
    public class CriaNotificacaoextends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView textView = new TextView(this); textView.setText("Notificação criada..."); setContentView(textView); String tickerText = "Você recebeu uma mensagem"; String titulo = "Ricardo"; String mensagem = "Exemplo de notificação"; notificar(this, R.drawable.ic_launcher, tickerText, titulo, mensagem, ExecutaNotificacao.class); } void notificar(Context ctx, int img, String ticker, String titulo, String msg, Class<?> activity) { NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); PendingIntent p = PendingIntent.getActivity(ctx, 0, new Intent(ctx, activity), 0); // @formatter:off Notification n = new Notification.Builder(ctx) .setTicker(ticker) .setContentTitle(titulo) .setSmallIcon(img) .setContentText(msg) .setContentIntent(p) .setWhen(System.currentTimeMillis()) .build(); // @formatter:on nm.notify(R.string.app_name, n); } }
  • 22.
    public class CriaNotificacaoextends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView textView = new TextView(this); textView.setText("Notificação criada..."); setContentView(textView); String tickerText = "Você recebeu uma mensagem"; String titulo = "Ricardo"; String mensagem = "Exemplo de notificação"; notificar(this, R.drawable.ic_launcher, tickerText, titulo, mensagem, ExecutaNotificacao.class); } void notificar(Context ctx, int img, String ticker, String titulo, String msg, Class<?> activity) { NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); PendingIntent p = PendingIntent.getActivity(ctx, 0, new Intent(ctx, activity), 0); // @formatter:off Notification n = new Notification.Builder(ctx) .setTicker(ticker) .setContentTitle(titulo) .setSmallIcon(img) .setContentText(msg) .setContentIntent(p) .setWhen(System.currentTimeMillis()) .build(); // @formatter:on nm.notify(R.string.app_name, n); } }
  • 23.
    public class CriaNotificacaoextends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView textView = new TextView(this); textView.setText("Notificação criada..."); setContentView(textView); String tickerText = "Você recebeu uma mensagem"; String titulo = "Ricardo"; String mensagem = "Exemplo de notificação"; notificar(this, R.drawable.ic_launcher, tickerText, titulo, mensagem, ExecutaNotificacao.class); } void notificar(Context ctx, int img, String ticker, String titulo, String msg, Class<?> activity) { NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); PendingIntent p = PendingIntent.getActivity(ctx, 0, new Intent(ctx, activity), 0); // @formatter:off Notification n = new Notification.Builder(ctx) .setTicker(ticker) .setContentTitle(titulo) .setSmallIcon(img) .setContentText(msg) .setContentIntent(p) .setWhen(System.currentTimeMillis()) .build(); // @formatter:on nm.notify(R.string.app_name, n); } }
  • 24.
    public class CriaNotificacaoextends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView textView = new TextView(this); textView.setText("Notificação criada..."); setContentView(textView); String tickerText = "Você recebeu uma mensagem"; String titulo = "Ricardo"; String mensagem = "Exemplo de notificação"; notificar(this, R.drawable.ic_launcher, tickerText, titulo, mensagem, ExecutaNotificacao.class); } void notificar(Context ctx, int img, String ticker, String titulo, String msg, Class<?> activity) { NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); PendingIntent p = PendingIntent.getActivity(ctx, 0, new Intent(ctx, activity), 0); // @formatter:off Notification n = new Notification.Builder(ctx) .setTicker(ticker) .setContentTitle(titulo) .setSmallIcon(img) .setContentText(msg) .setContentIntent(p) .setWhen(System.currentTimeMillis()) .build(); // @formatter:on nm.notify(R.string.app_name, n); } }
  • 25.
    public class CriaNotificacaoextends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView textView = new TextView(this); textView.setText("Notificação criada..."); setContentView(textView); String tickerText = "Você recebeu uma mensagem"; String titulo = "Ricardo"; String mensagem = "Exemplo de notificação"; notificar(this, R.drawable.ic_launcher, tickerText, titulo, mensagem, ExecutaNotificacao.class); } void notificar(Context ctx, int img, String ticker, String titulo, String msg, Class<?> activity) { NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); PendingIntent p = PendingIntent.getActivity(ctx, 0, new Intent(ctx, activity), 0); // @formatter:off Notification n = new Notification.Builder(ctx) .setTicker(ticker) .setContentTitle(titulo) .setSmallIcon(img) .setContentText(msg) .setContentIntent(p) .setWhen(System.currentTimeMillis()) .build(); // @formatter:on nm.notify(R.string.app_name, n); } }
  • 26.
    Activity que seráexecutada através da Notification...
  • 27.
    public class ExecutaNotificacaoextends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); nm.cancel(R.string.app_name); TextView textView = new TextView(this); textView.setText("Usuário selecionou a notificação."); setContentView(textView); } }
  • 28.
    public class ExecutaNotificacaoextends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); nm.cancel(R.string.app_name); TextView textView = new TextView(this); textView.setText("Usuário selecionou a notificação."); setContentView(textView); } }
  • 29.
    public class ExecutaNotificacaoextends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); nm.cancel(R.string.app_name); TextView textView = new TextView(this); textView.setText("Usuário selecionou a notificação."); setContentView(textView); } }
  • 31.