Я пытаюсь создать локальное уведомление, которое будет отклонено до указанной даты на 2 часа, 4 часа и на данную дату. Это мой код, но он не работает:
private void alarmnotification(String notificationid, String type, long timemills) {
Random rand = new Random();
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(timemills);
AlarmManager mgrAlarm = (AlarmManager)getSystemService(ALARM_SERVICE);
ArrayList<PendingIntent> intentArrayd = new ArrayList<PendingIntent>();
for(int i = 0; i < 4; ++i)
{
long timemfills = timemills - 7200000*i ;
Calendar calendadr = Calendar.getInstance();
calendadr.setTimeInMillis(timemfills);
Calendar calendad0r = Calendar.getInstance();
calendad0r.setTimeInMillis(SystemClock.elapsedRealtime()+calendadr.getTimeInMillis());
Intent intent = new Intent(getApplicationContext(), NotificationPublisher.class);
intent.putExtra("type", type);
intent.putExtra("notificationId", notificationid);
PendingIntent pendingIntent = PendingIntent.getBroadcast(Home.this, i, intent, 0);
mgrAlarm.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, timemfills, pendingIntent);
intentArrayd.add(pendingIntent);
}
}
А это мой код издателя уведомлений:
открытый класс NotificationPublisher расширяет BroadcastReceiver {
public static String NOTIFICATION_ID = "notificationId";
public static String NOTIFICATION = "type";
private LocalBroadcastManager broadcaster;
public void onReceive(Context context, Intent intent) {
// Get id & message from intent.
String notificationId = intent.getStringExtra("notificationId");
String message = intent.getStringExtra("type");
// When notification is tapped, call MainActivity.
Intent mainIntent = new Intent(context, Home.class);
mainIntent.putExtra("retour", message);
mainIntent.putExtra("element_id", notificationId);
mainIntent.setAction(Long.toString(System.currentTimeMillis()));
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, mainIntent, 0);
NotificationManager myNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
// Prepare notification.
Notification.Builder builder = new Notification.Builder(context);
builder.setSmallIcon(R.drawable.icoapp_and)
.setContentTitle(notificationId)
.setContentText(message)
.setAutoCancel(true)
.setContentIntent(contentIntent)
.setWhen(System.currentTimeMillis())
.setPriority(Notification.PRIORITY_MAX)
.setDefaults(Notification.DEFAULT_ALL);
// Notify
Random rand = new Random();
myNotificationManager.notify(rand.nextInt(), builder.build());
}
}
Проблема в том, что я вообще не получаю никаких уведомлений.