2012-05-03 3 views
1

Я намерен разработать приложение, которое попросит включить Bluetooth и отключит тайминги в течение нескольких дней недели от пользователя, а затем воспользуйтесь Службой сигнализации для этого. Я использовал следующий код ворчания для тестирования.Отключить Bluetooth каждый день в указанное время с помощью службы оповещения

Intent myIntent = new Intent(AndroidAlarmService.this, MyAlarmService.class); 

pendingIntent = PendingIntent.getService(AndroidAlarmService.this, 0, myIntent, 0); 

     AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
     /* 
     Calendar calendar = Calendar.getInstance(); 
     calendar.setTimeInMillis(System.currentTimeMillis()); 
     calendar.add(Calendar.SECOND, 30); 
     alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 
     pendingIntent); 

     */ 

     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, 13); 
     cal.set(Calendar.MINUTE, 23); 
     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)); 

    alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent); 

Но это не вызывает моего служения в 13:30. Прокомментированный код работает нормально. он вызывает мои тревоги в 30 мин от текущего времени. но когда я жестко кодирую время. Это не работает. Я не могу понять ошибку в фрагменте кода для Calender cal.

Что я делаю неправильно?

ответ

0

Если вы хотите повторить будильник, вы должны использовать вместо него alarmManager.setRepeating(...). alarmManager.set(...) будет запускаться только один раз.

+0

да offcourse. но я использовал набор для тестирования. будильник не будет в то время, когда я указал – learner

+0

, вы также можете попробовать SystemClock.currentTimeMillis() для начала, чтобы увидеть, что ваш pendingIntent запущен или ваш календарь не будет запускаться. – Thkru

+0

мое ожидающее намерение стреляет, когда я использовал код с комментариями без каких-либо проблем. но жестко закодированный экземпляр календаря не будет запускать его – learner

Смежные вопросы