Criando Notificações no Android
Boa noite!!
Hoje vou falar um pouco sobre Notificações.
Elas são utilizadas pois, em geral, uma aplicação que esteja executando em segundo plano não deve exibir um alerta para o usuário, ou abrir uma tela, pois ele pode estar em uma ligação, ou em qualquer outra aplicação, e isso o atrapalharia.
Para essa finalidade o Android tem a classe Notification (android.app.Notification), que serve para enviar notificações que aparecem na barra de status do telefone, podendo inclusive fazer o celular vibrar ou acender as luzes.
Bom, vamos à prática para exemplificar melhor sua utilização. Criem um projeto ExemploNotificacao que conterá as duas seguintes Activities:
public class ExemploCriaNotificacao extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView text = new TextView(this); text.setText("Notificação disparada."); setContentView(text); // Texto que aparecerá na barra de status (chamada para a notificação) String tickerText = "Você recebeu uma mensagem."; // Detalhes da notificação CharSequence titulo = "André"; CharSequence mensagem = "Exemplo de notificação"; // Exibe a notificação criarNotificacao(this, tickerText, titulo, mensagem, ExemploExecutaNotificacao.class); } // Exibe a notificacao protected void criarNotificacao(Context context, CharSequence mensagemBarraStatus, CharSequence titulo, CharSequence mensagem, Class activity) { // Recupera o serviço do NotificationManager NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); Notification n = new Notification(R.drawable.chat, mensagemBarraStatus, System.currentTimeMillis()); // PendingIntent para executar a Activity se o usuário selecionar a notificação PendingIntent p = PendingIntent.getActivity(this, 0, new Intent(this, activity), 0); // Flag utilizada para remover a notificação da barra de status // quando o usuário clicar nela n.flags |= Notification.FLAG_AUTO_CANCEL; // Informações n.setLatestEventInfo(this, titulo, mensagem, p); // Espera 100ms e vibra por 250ms, espera por mais 100ms e vibra por 500ms n.vibrate = new long[] { 100, 250, 100, 500 }; // id da notificacao nm.notify(R.string.app_name, n); } }
public class ExemploExecutaNotificacao extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); nm.cancel(R.string.app_name); TextView text = new TextView(this); text.setText("Usuário selecionou a notificação"); setContentView(text); } }
Não esqueça de adicionar ao AndroidManifest a Activity adicional e a permissão para o celular vibrar:
<uses-permission android:name="android.permission.VIBRATE" />
<activity android:name="br.com.blogspot.androidandrekunde.ExemploExecutaNotificacao" />Vejamos como ficou a aplicação:
Assim que possível eu atualizo o post com o link para download do projeto.
nossa cara to amando seu site, de verdade. Pra quem ta começando ele ajuda pra caramba...
ResponderExcluirvc podia ajudar mostrando também como excluir o cadastro de um contato da agenda que ensinou no SQLite. pode fazer isso? ...Disponibiliza pra download.
PS: Gostei demais do site;
Boa dia no meu não funcionou dando erro na setLatestEventInfo
ResponderExcluirvocê pode me enviar o projeto para testes??
ResponderExcluir