曜日ごとにユーザーからの入力として何時間もかかり、「日付」に関係なく、それぞれの日に応じてブルートゥースデバイスのオン/オフを切り替える小さなAndroidアプリケーションについてです。つまり、コードは日、時、分のみをチェックする必要があります。次のコードを使用しました(今日、つまり金曜日のテスト目的で)が、アラームはトリガーされません。
//..........setting calender for MyAlarmService
Calendar cur_cal = new GregorianCalendar();
cur_cal.setTimeInMillis(System.currentTimeMillis());
Calendar cal = new GregorianCalendar();
cal.add(Calendar.DAY_OF_YEAR, cur_cal.get(Calendar.DAY_OF_YEAR));
cal.set(Calendar.HOUR_OF_DAY, 11);
cal.set(Calendar.MINUTE, 5);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, cur_cal.get(Calendar.MILLISECOND));
cal.set(Calendar.DATE, cur_cal.get(Calendar.DATE));
cal.set(Calendar.MONTH, cur_cal.get(Calendar.MONTH));
// here it m setting the "Today"
cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
Intent myIntent = new Intent(AndroidAlarmService.this, MyAlarmService.class);
pendingIntent = PendingIntent.getService(AndroidAlarmService.this, 0, myIntent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
ステートメントを削除すると cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
AlarmService は、上記で指定された時刻、つまり午前 11 時 5 分に「今日」完全にトリガーされます。
私は何を間違っていますか?