Comment configurer AlarmManager récurrent pour exécuter du code quotidiennement

Je suis en train d'essayer d'écrire alarm manager qui feront une alarme d'aller à l'intérieur d'une période de temps spécifiée, tous les jours. J'ai d'abord vérifier pour voir si l'utilisateur a eu une alarme définie pour cette pour cette journée:

      if ((User.getReminderTime(Home.this) > 0)
    && (dt.getDate() != today.getDate() || dt.getDay() != today
      .getDay())) {
   AppointmentManager.setFutureAppointmentCheck(this
     .getApplicationContext());
   User.setLongSetting(this, "futureappts", today.getTime());
  }

Puis-je aller et le réveil pour aller entre 12 et 12:10 de la prochaine journée:

     public static void setFutureAppointmentCheck(Context con) {
  AlarmManager am = (AlarmManager) con
    .getSystemService(Context.ALARM_SERVICE);

  Date futureDate = new Date(new Date().getTime() + 86400000);
  Random generator = new Random();

  futureDate.setHours(0);
  futureDate.setMinutes(generator.nextInt(10));
  futureDate.setSeconds(0);

  Intent intent = new Intent(con, FutureAppointmentReciever.class);

  PendingIntent sender = PendingIntent.getBroadcast(con, 0, intent,
    PendingIntent.FLAG_ONE_SHOT);

  am.set(AlarmManager.RTC_WAKEUP, futureDate.getTime(), sender);

 }

Maintenant je configurer un environnement de test pour ce faire aller de congé toutes les deux minutes et il semble fonctionner correctement, mais quand je le déploiement sur un périphérique réel, le récepteur ne semble pas être de recevoir les alarmes. J'ai pensé qu'il pourrait être un problème avec le dispositif étant endormi, j'ai donc ajouté le gestionnaire d'alimentation. Mais il ne fonctionne toujours pas:

      PowerManager pm = (PowerManager) context
    .getSystemService(Context.POWER_SERVICE);
  PowerManager.WakeLock wl = pm.newWakeLock(
    PowerManager.PARTIAL_WAKE_LOCK, "keepAlive");
  wl.acquire();
  setFutureAppointments(context.getApplicationContext());
  AppointmentManager.setFutureAppointmentCheck(context
    .getApplicationContext());
  User.setLongSetting(context.getApplicationContext(), "futureappts",
    new Date().getTime());
  wl.release();

Quelqu'un a vu quelque chose que je fais manifestement mal ou je suis aller sur ce mal? merci pour toute aide.

source d'informationauteur ninjasense