是否可以使用闹钟设置特定日期?

Is it possible to set a specific date with the Alarm Clock?

这是我设置闹钟的方式:

//all this inside a onClickListener
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 30);
cal.set(Calendar.MONTH, 8);
cal.set(Calendar.YEAR, 2020);

Intent intent = new Intent(AlarmClock.ACTION_SET_ALARM);
intent.putExtra(AlarmClock.EXTRA_HOUR, Integer.parseInt(str1));
intent.putExtra(AlarmClock.EXTRA_MINUTES, Integer.parseInt(str2));
intent.putExtra(AlarmClock.EXTRA_MESSAGE, title.getText().toString());
intent.putExtra(AlarmClock.EXTRA_DAYS, cal.get(Calendar.DAY_OF_MONTH));
intent.putExtra(AlarmClock.EXTRA_SKIP_UI, true);
startActivity(intent);

所有这一切都很好地设置了我设备上关于时间的应用程序闹钟,但不是日期。

示例:

  1. 当前时间:12:00星期一

    我的代码时间:13:00星期六

    闹钟设置为 1 小时后播放(铃声)

  2. 当前时间:12:00星期一

    我的代码时间:11:00星期二

    闹钟设置为 25 小时后播放(铃声)

我不知道如何使用这行代码:

intent.putExtra(AlarmClock.EXTRA_DAYS, cal.get(Calendar.DAY_OF_MONTH));

提前致谢

您无法通过 AlarmClock 提供商为特定日期设置闹钟。

AlarmClock.EXTRA_DAYS用于重复报警。你可以使用 Calendar.SUNDAY 这样的东西,它会在每个星期天响起。

如果你想更好地控制闹钟,你必须自己编程。看看 AlarmManager class。它允许您将您的应用程序安排在将来的某个时间运行。