ПО моей основной деятельности я вызываю метод для установки AlarmManager. Цель - запускать ежедневные уведомления в определенное время. Однако я не могу заставить его работать. Ниже я добавил весь код, который я использую.
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent alarmIntent = new Intent(MainActivity.this, NotificationReciever.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast( this, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmIntent.setData((Uri.parse("custom://"+System.currentTimeMillis())));
alarmManager.cancel(pendingIntent);
Calendar alarmStartTime = Calendar.getInstance();
Calendar now = Calendar.getInstance();
alarmStartTime.set(Calendar.HOUR_OF_DAY, 7);
alarmStartTime.set(Calendar.MINUTE, 15);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, alarmStartTime, AlarmManager.INTERVAL_DAY, pendingIntent);
Log.d("Alarm","Alarms set");
Это onReceive моего NotificationReciever.class
Intent service1 = new Intent(context, NotificationService1.class);
service1.setData((Uri.parse("custom://"+System.currentTimeMillis())));
context.startService(service1);
и моего NotificationService1.class
public class NotificationService1 extends IntentService {
Notification notification;
public NotificationService1() {
super("NotificationService1");
}
public NotificationService1(String name, Notification notification) {
super(name);
this.notification = notification;
}
@Override
protected void onHandleIntent(Intent intent) {
Context context = this.getApplicationContext();
Intent mIntent = new Intent(this, howtoActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, mIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification.Builder builder = new Notification.Builder(this);
Uri soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
notification = new Notification.Builder(this)
.setContentIntent(pendingIntent)
.setSmallIcon(R.mipmap.ic_launcher)
.setAutoCancel(true)
.setPriority(Notification.PRIORITY_MAX)
.setContentTitle("Notif title")
.setContentText("Text").build();
notification.flags |= Notification.FLAG_AUTO_CANCEL | Notification.FLAG_SHOW_LIGHTS;
notification.defaults |= Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE;
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
int NOTIFICATION_ID = 1;
notificationManager.notify(NOTIFICATION_ID, notification);
Log.i("notif","Notifications sent.");
}
}
Я вижу все журналы в Logcat, но уведомление по-прежнему не запускается. Я не знаю, где я не прав.