Android AlarmClock(),设置闹钟日期

3

我在设置AlarmClock()的特定日期时遇到了问题,而不是使用AlarmManager()。我在互联网上找到的所有示例都显示要使用AlarmManager()在特定日期启动活动,但我的应用程序不需要自定义活动。我只需要在特定日期注册系统警报,它将像一般的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()在特定日期设置闹钟。


无法解析符号 @VishalChhodwani - farhad hussain
2个回答

1

文档中提到:

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

实际上,AlarmClock.EXTRA_DAYS 是用于设置该闹钟应在一周中哪些天响铃,因此您无法设置闹钟的确切日期。以下是示例用法:

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

1
尝试并失败了。从Android开发者门户网站上看来,EXTRA_DAYS功能是星期几,而不是像3月28日那样的月份日期。https://developer.android.com/reference/android/provider/AlarmClock.html#EXTRA_DAYS 你能帮我选择正确的参数吗? - farhad hussain
1
我更新了我的回答 - 我认为你不能使用AlarmClock在确切的日期设置闹钟。 - Szymon Chaber

0

调用 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中也没有显示任何警告,但它仍然设置为当前日期。 - farhad hussain
额外天数 在API 19级添加 字符串EXTRA_DAYS Bundle extra:重复闹钟的工作日。由ACTION_SET_ALARM使用。该值是一个ArrayList<Integer>。 每个项目可以是:星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六 - farhad hussain
从开发者网站上看来,Extra_DAYS似乎是以工作日而非日期为单位的!!! - farhad hussain
https://developer.android.com/reference/android/provider/AlarmClock.html#EXTRA_DAYS 请您快速查看并让我选择我需要的确切参数,我的研究得出结论:没有设置日期的方法,但我可以设置一个闹钟日期。如果我在手中的手机上尝试操作,它是 ACTION_SET_TIMER 吗?我很困惑。 - farhad hussain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接