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以上是关于Android AlarmClock() ,设置闹钟日期的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 AlarmClock 在 android 中设置闹钟的日期