我正在开展一个项目,我的目标是配置一部手机。我必须将手机的声音与日历相关联。
用户可以选择日期,开始时间和结束时间以及声音的配置参数。 例如,每个星期一,应用程序必须在上午8点到下午4点之间将手机置于静音模式 。
我已经拥有了所有参数,我现在要做的就是应用它们。为此,我认为使用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);
如果你认为,有一个更好的解决方案,或者知道如何正确使用RTC Wake Up
来解决我的问题,我们将不胜感激。
感谢。
答案 0 :(得分:0)
使用警报管理器在特定的定义时间触发警报。
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);