Java 如何使用RTC唤醒和报警意图
我正在做一个项目,我的目标是配置一部手机。我必须将电话的声音与日历关联起来 用户可以选择日期、开始时间和结束时间以及声音的配置参数例如,每周一,应用程序必须在上午8点到下午4点之间将手机置于静音模式 我已经有了所有的参数,我现在要做的就是应用它们。为此,我认为使用Java 如何使用RTC唤醒和报警意图,java,android,alarm,android-alarms,Java,Android,Alarm,Android Alarms,我正在做一个项目,我的目标是配置一部手机。我必须将电话的声音与日历关联起来 用户可以选择日期、开始时间和结束时间以及声音的配置参数例如,每周一,应用程序必须在上午8点到下午4点之间将手机置于静音模式 我已经有了所有的参数,我现在要做的就是应用它们。为此,我认为使用RTC Wake-Up是最好的 下面是我正在编写的代码: TimePicker hourBeginning = (TimePicker)findViewById(R.id.hourBeginningTimePicker); TimePi
RTC Wake-Up
是最好的
下面是我正在编写的代码:
TimePicker hourBeginning = (TimePicker)findViewById(R.id.hourBeginningTimePicker);
TimePicker hourEnding = (TimePicker)findViewById(R.id.hourEndingTimePicker);
SeekBar volumePhone = (SeekBar)findViewById(R.id.volumePhoneOptionSeekBar);
SeekBar volumeAlarm = (SeekBar)findViewById(R.id.volumeAlarmOptionSeekBar);
SeekBar volumeApplication = (SeekBar)findViewById(R.id.volumeApplicationOptionSeekBar);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, heureBeginning.getCurrentHour());
calendar.set(Calendar.MINUTE, heureEnding.getCurrentMinute());
// With setInexactRepeating(), you have to use one of the AlarmManager interval
// constants--in this case, AlarmManager.INTERVAL_DAY.
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, alarmIntent);
// With setInexactRepeating(), you have to use one of the AlarmManager interval
// constants--in this case, AlarmManager.INTERVAL_DAY.
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, alarmIntent);
我不明白这是怎么回事,也不明白它是如何解决我的问题的:
TimePicker hourBeginning = (TimePicker)findViewById(R.id.hourBeginningTimePicker);
TimePicker hourEnding = (TimePicker)findViewById(R.id.hourEndingTimePicker);
SeekBar volumePhone = (SeekBar)findViewById(R.id.volumePhoneOptionSeekBar);
SeekBar volumeAlarm = (SeekBar)findViewById(R.id.volumeAlarmOptionSeekBar);
SeekBar volumeApplication = (SeekBar)findViewById(R.id.volumeApplicationOptionSeekBar);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, heureBeginning.getCurrentHour());
calendar.set(Calendar.MINUTE, heureEnding.getCurrentMinute());
// With setInexactRepeating(), you have to use one of the AlarmManager interval
// constants--in this case, AlarmManager.INTERVAL_DAY.
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, alarmIntent);
// With setInexactRepeating(), you have to use one of the AlarmManager interval
// constants--in this case, AlarmManager.INTERVAL_DAY.
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, alarmIntent);
如果您认为有更好的解决方案,或者知道如何正确使用RTC Wake Up
来解决我的问题,我们将不胜感激
谢谢。使用报警管理器在指定的时间触发报警
AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(getApplicationContext(),
xyz.class);
PendingIntent alarmIntent = PendingIntent
.getService(getApplicationContext(), 0, intent,
PendingIntent.FLAG_ONE_SHOT);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 14);
calendar.set(Calendar.MINUTE, 00);
calendar.set(Calendar.SECOND, 00);
alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), 1000 * 60 * 60 * 24, alarmIntent);
是的,这是可行的,当然你需要创建一个新的类