Tenho procurado como fazer notificações temporizadas, ou seja numa hora pré determinada, mas tudo o que encontro é bastante confuso.
Será que alguém me pode dar uma dica?
Obrigado!
Tenho procurado como fazer notificações temporizadas, ou seja numa hora pré determinada, mas tudo o que encontro é bastante confuso.
Será que alguém me pode dar uma dica?
Obrigado!
Oi, vc pode usar mensagem Toast, dá um olhada, é otimo.
https://developer.android.com/guide/topics/ui/notifiers/toasts.html
Obrigada, mas eu pretendo mesmo fazer notificações e não lançar mensagens que é o que o toast faz se não estou em erro. Quero fazer uma aplicação em que mesmo a aplicação estando fechada o telemóvel receba esses alertas.
Ah sim, vc quer que o aplicativo exiba notificações mesmo fechado, se for isso, use a classe Notification.Builder
https://developer.android.com/guide/topics/ui/notifiers/notifications.html#Design
Obrigada vou tentar!
Tenta sim ! No site do Android tem bastante exemplo de como usar e a explicação é excelente!
Deixe-me saber se deu udo certo.
Abraço.
Para notificar o usuário em um horário em específico utiliza as classe AlarmManager e Calendar. Aqui o link de um exemplo e explicações em PT-BR.
Segui alguns conselhos dados e estou a utilizar o alarm manager para lançar as notificações. Consigo lançar apenas uma notificação.
Apresento aqui a minha ideia base, com dois horários diferentes. Queria entender porque é que apenas um é lançado, neste caso é o último que é lançado.
->MainActivity
Intent intent = new Intent("ALARME_DISPARADO");
PendingIntent p = PendingIntent.getBroadcast(this, 0, intent, 0);
Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
c.set(Calendar.HOUR_OF_DAY, 12);
c.set(Calendar.MINUTE, 00);
c.set(Calendar.SECOND, 00);
AlarmManager alarme = (AlarmManager) getSystemService(ALARM_SERVICE);
alarme.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), p);
Calendar c1 = Calendar.getInstance();
c1.setTimeInMillis(System.currentTimeMillis());
c1.set(Calendar.HOUR_OF_DAY, 16);
c1.set(Calendar.MINUTE, 30);
c1.set(Calendar.SECOND, 00);
AlarmManager alarme1 = (AlarmManager) getSystemService(ALARM_SERVICE);
alarme1.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), p);
-> class BroadcastReceiverAux extends BroadcastReceiver
public void onReceive(Context context, Intent intent) {
Log.i("Script", "-> Alarme");
gerarNotificacao(context, new Intent(context, NotificationActivity.class), "Nova mensagem", "Título", "Descrição nova mensagem");
}
public void gerarNotificacao(Context context, Intent intent, CharSequence ticker, CharSequence titulo, CharSequence descricao) {
NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
PendingIntent p = PendingIntent.getActivity(context, 0, intent, 0);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
builder.setTicker(ticker);
builder.setContentTitle(titulo);
builder.setContentText(descricao);
builder.setSmallIcon(R.drawable.ic_launcher);
builder.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher));
builder.setContentIntent(p);
Notification n = builder.build();
n.vibrate = new long[]{150, 300, 150, 600};
n.flags = Notification.FLAG_AUTO_CANCEL;
nm.notify(R.drawable.ic_launcher, n);
try {
Uri som = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Ringtone toque = RingtoneManager.getRingtone(context, som);
toque.play();
} catch (Exception e) {
}
}
Será que me podem ajudar?
Context context = getApplicationContext();
CharSequence text = “Hello toast!”;
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
Desculpe mas não compreendi como isso poderá enquadrar-se na minha dúvida…