0
I am developing an application that must issue a notification with date and time informed by the user and the notification is not being issued.
I’m using Alarmmanager to set the time and another class I inherit from Broadcastreceiver to launch the notification.
I’ve already declared the Receiver on Androidmanifest.
Class scheduler_vaccine.java
Intent intent = new Intent(getBaseContext(), AlarmeNotificiation.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), 0, intent, 0);
Toast.makeText(agendar_vacina.this, "Dia: "+dia+" Mes: "+mes+" Ano: "+ano, Toast.LENGTH_SHORT).show();
Calendar c1 = Calendar.getInstance();
Calendar c = (Calendar) c1.clone();
c.setTimeInMillis(System.currentTimeMillis());
//c.set(Calendar.MONTH, mes);
//c.set(Calendar.YEAR, ano);
//c.set(Calendar.DAY_OF_MONTH, dia);
//c.set(Calendar.HOUR_OF_DAY, 11);
//c.set(Calendar.MINUTE, 33);
c.set(ano, mes, dia, 12, 02);
AlarmManager alarmManager = (AlarmManager) getSystemService((getBaseContext().ALARM_SERVICE));
//alarmManager.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(),pendingIntent);
alarmManager.setExact(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(),pendingIntent);
Alarmenotification class.java
public class AlarmeNotificiation extends BroadcastReceiver {
private static final String CHANNEL_ID = "CHANNEL_ID";
private static final String TAG = "main";
@Override
public void onReceive(Context context, Intent intent) {
int id = (int) (Math.random()*1000);
createNotificationChannel(context);
Intent it = new Intent(context.getApplicationContext(), MainActivity_tela_principal.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context.getApplicationContext(), id, it, 0);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context.getApplicationContext(), CHANNEL_ID)
.setSmallIcon(R.drawable.icon)
.setContentTitle("Notificação")
.setContentText("Descrição")
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
//.addAction(R.drawable.icon, "Ok", pendingIntent);
;
NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(context.getApplicationContext());
notificationManagerCompat.notify(id, builder.build());
}
private void createNotificationChannel(Context context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
CharSequence name = "Channel name";
String description = "Channel description";
int importance = NotificationManager.IMPORTANCE_DEFAULT;
NotificationChannel channel = new NotificationChannel(CHANNEL_ID, name, importance);
channel.setDescription(description);
NotificationManager notificationManager = context.getSystemService(NotificationManager.class);
notificationManager.createNotificationChannel(channel);
}
}
}
Is there an error? Or just doesn’t show the notification.
– Matheus
If the notification has no priority to run at an exact time, you can upgrade the workmanager library....
– André alas