J'ai une application qui permet à l'utilisateur de définir des alarmes à différents moments. Actuellement, elle utilise AlarmManager, un BroadcastReceiver et un AlertDialog pour avertir l'utilisateur qu'une alarme s'est déclenchée.
J'aimerais voir si mon application pourrait utiliser l'horloge d'alarme intégrée. Je sais que je peux programmer des alarmes de la manière suivante:
Intent i = new Intent(AlarmClock.ACTION_SET_ALARM);
i.putExtra(AlarmClock.EXTRA_HOUR, new Date(alarm.getTime()).getHours());
i.putExtra(AlarmClock.EXTRA_MINUTES, new Date(alarm.getTime()).getMinutes());
i.putExtra(AlarmClock.EXTRA_MINUTES, alarm.getDescription());
i.putExtra(AlarmClock.EXTRA_SKIP_UI, true);
context.startActivity(i);
mais cela présente 2 problèmes:
- il ne semble pas y avoir de moyen de programmer une alarme pour dans plus de 24 heures
- l'horloge d'alarme intégrée d'Android ne permet de définir que 10 alarmes
Pour contourner le problème 1, je pourrais utiliser AlarmManager pour programmer l'alarme de l'utilisateur dans les 24 heures suivant l'heure programmée. Cependant, cela me laisse avec le problème 2 - idéalement, j'aurais besoin d'un moyen de supprimer les alarmes de mon application de l'horloge d'alarme Android une fois qu'elles ont été exécutées (pour éviter que les alarmes de mon application occupent de la place dans l'horloge d'alarme), mais je ne trouve pas de moyen d'obtenir une liste d'alarmes et en supprimer une.
Est-ce possible, ou dois-je me contenter de l'approche manuelle AlarmManager/AlertDialog?