Я хочу вызвать приемник точно в срок, поэтому я использую будильник, чтобы установить его, используя следующий код. Все работает, кроме моего экрана и в верхней части экрана я вижу значок будильника и время. Подобно тому, что вы видите, когда вы устанавливаете будильник с помощью приложения будильника в Android. Я не хочу видеть это. Как я могу это сделать?
private static void updateNextAlarmInAlarmManager(Context context, long nextAlarmTime) {
// Sets a surrogate alarm with alarm manager that provides the AlarmClockInfo for the
// alarm that is going to fire next. The operation is constructed such that it is ignored
// by AlarmStateManager.
final AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
final int flags = 0;
final PendingIntent operation = PendingIntent.getBroadcast(context, 0 /* requestCode */,
createIndicatorIntent(context), flags);
final AlarmManager.AlarmClockInfo info = new AlarmManager.AlarmClockInfo(nextAlarmTime, getPendingIntentForApp(context, nextAlarmTime));
alarmManager.setAlarmClock(info, operation);
}
Перед перемещением setAlarmClock
я использовал setExactAndAllowWhileIdle
, но setExactAndAllowWhileIdle
гарантирует, что он доставит событие точно в срок. Но на экране не отображается значок будильника, чего я и хочу.
Как я могу это сделать?
Не используйте setAlarmClock()
. Как указано в документации, "система, как правило, также использует информацию, предоставленную здесь, чтобы сообщить пользователю об этой предстоящей тревоге, если это необходимо".