Android AlarmClock() , 设置闹钟日期

Android AlarmClock() , setting alarm date

我在将特定日期设置为 AlarmClock() 而不是 AlarmManager() 时遇到问题。我在 Internet 上看到的所有示例都显示使用 AlarmManager() 在特定日期启动 activity。但是我的应用程序没有/需要自定义 activity。我只需要在特定日期注册一个系统警报,它会像通用 android 系统警报一样响起。

Calendar c = Calendar.getInstance();
Intent alarmIntent = new Intent(AlarmClock.ACTION_SET_ALARM);
alarmIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
alarmIntent.putExtra(AlarmClock.EXTRA_MESSAGE, "Polo!");
alarmIntent.putExtra(AlarmClock.EXTRA_HOUR, c.get(Calendar.HOUR_OF_DAY));
alarmIntent.putExtra(AlarmClock.EXTRA_MINUTES, c.get(Calendar.MINUTE) + 1);
context.startActivity(alarmIntent);

以上是我的代码。我尝试使用

alarmIntent.putExtra(AlarmClock.EXTRA_DAYS, c.get(Calendar.DAY_OF_MONTH));

但只需要当天。

请帮助我在特定日期使用 AlarmClock() 设置闹钟。

调用 Calendar.getInstance() 将 return 一个用当前日期初始化的 Calendar 对象。您需要将 Calendar 对象设置为所需的日期,然后访问其字段,例如:

c.set(Calendar.DAY_OF_MONTH, 30)

那么当你打电话时

c.get(Calendar.DAY_OF_MONTH)

它 return 是 30。否则,它 return 是当前日期。

来自文档:

EXTRA_DAYS (optional): Weekdays for repeating alarm.

所以实际上,AlarmClock.EXTRA_DAYS 是指一周中闹钟应该响起的那几天,所以您无法为闹钟设置确切的日期。用法示例:

ArrayList<Integer> days = new ArrayList<Integer>();
days.add(Calendar.SATURDAY);
alarmIntent.putExtra(AlarmClock.EXTRA_DAYS, days);