Android AlarmClock() ,设置闹钟日期

Posted

技术标签:

【中文标题】Android AlarmClock() ,设置闹钟日期【英文标题】:Android AlarmClock() , setting alarm date 【发布时间】:2018-03-27 09:10:37 【问题描述】:

我无法将特定日期设置为 AlarmClock() 而不是 AlarmManager()。我在互联网上的所有示例都显示使用 AlarmManager() 在特定日期开始活动。但我的应用程序有/需要自定义活动。我只需要在特定的一天注册一个系统警报,它会像一般的安卓系统警报一样响起。

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() 设置闹钟。

【问题讨论】:

“无法解析符号”@VishalChhodwani 【参考方案1】:

来自文档:

EXTRA_DAYS(可选):重复闹钟的工作日。

所以实际上,AlarmClock.EXTRA_DAYS 是一周中该闹钟响起的日子,因此您无法设置闹钟的确切日期。用法示例:

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

【讨论】:

尝试并失败了,从 android 开发者门户看来,EXTRA_DAYS 的功能是工作日而不是实际月份的日期,例如 3 月 28 日developer.android.com/reference/android/provider/… 你能帮我选择正确的参数吗?? 更新了我的答案 - 我相信您无法使用闹钟设置确切日期的闹钟【参考方案2】:

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

c.set(Calendar.DAY_OF_MONTH, 30)

然后当你打电话时

c.get(Calendar.DAY_OF_MONTH)

它返回 30。否则,它返回当前日期。

【讨论】:

令人惊讶的是不起作用,尝试了上面的建议和 alarmIntent.putExtra(AlarmClock.EXTRA_DAYS, c.get(Calendar.DAY_OF_MONTH));它记录当天。 alarmIntent.putExtra(AlarmClock.EXTRA_DAYS,30);在 IDE 中也没有显示警告,但它仍然设置当前日期 在 API 级别 19 中添加了 EXTRA_DAYS 字符串 EXTRA_DAYS 额外捆绑:重复警报的工作日。由 ACTION_SET_ALARM 使用。该值为 ArrayList。每个项目可以是:星期日、星期一、星期二、星期三、星期四、星期五、星期六 从开发者网站看来,Extra_DAYS 取的是工作日而不是日期!!! developer.android.com/reference/android/provider/… 你能快速看一下,让我选择我需要的确切参数,我的研究得出的结论是没有设置日期的方法,但我可以设置一个闹钟日期如果我尝试在我手中的 phon 中操作,是 ACTION_SET_TIMER 吗?我很困惑。

以上是关于Android AlarmClock() ,设置闹钟日期的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 AlarmClock 在 android 中设置闹钟的日期

Android AlarmClock ACTION_SET_ALARM 意图产生异常

使用意图设置闹钟(如闹钟)

如何使用闹钟类设置闹钟

是否有用于删除警报的 Android API

使用自定义 Google Now 命令启动 Android 应用