使用警报服务每天在指定时间关闭蓝牙

时间:2012-05-03 08:37:33

标签: android alarmmanager

我打算开发一个应用程序,它会询问蓝牙开启并关闭用户每周几天的时间,然后使用警报服务来执行此操作。我使用了以下grunt代码进行测试。

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);

但这不会在下午1:30触发我的服务。 注释掉的代码工作正常。它从当前时间开始30分钟触发我的警报。但是当我硬编码的时候。它不起作用。我无法弄清楚Calender cal的代码片段中的错误。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果您想要重复闹铃,请改用alarmManager.setRepeating(...)alarmManager.set(...)只会触发一次。