web-dev-qa-db-fra.com

Android obtenir la liste des alarmes actives

Existe-t-il un moyen d'obtenir une liste de toutes les alarmes actives dans le périphérique Android par programme dans notre application par programme.J'indique simplement quelques liens qui peuvent être utiles que j'essaie essentiellement de donner) l'utilisateur a la possibilité de visualiser toutes les alarmes dans son appareil, donc je veux obtenir une liste de toutes les alarmes actives dans l'appareil.

25
XylemRaj

Non, AFAIK, vous ne pouvez pas le faire par programmation, il n'est donc pas possible de montrer ces informations à un utilisateur dans l'interface utilisateur.

Cependant, pour votre propre référence, vous pouvez vider les données d'alarme via

adb Shell dumpsys alarm

Vous n'avez pas besoin de l'autorisation root pour cela.

Mais ce que vous obtenez d'en haut peut être très déroutant à comprendre. Afin de comprendre ce vidage complètement, vous devriez vérifier la réponse de morphatic ici .

20

Réponse courte: vous ne pouvez pas.

Le gestionnaire d'alarmes ne donne aucune visibilité sur les alarmes actuellement programmées dans le système. Chaque application qui utilise le gestionnaire d'alarmes doit conserver l'état de chaque alarme définie.

Cependant, vous pouvez obtenir une liste via adb comme décrit dans cette question Obtenir la liste des PendingIntents actifs dans AlarmManager . Et une application pourrait obtenir un vidage système et obtenir les alarmes de cette façon, mais cela nécessiterait un root.

16
Steven Trigg

Si vous entendez par alarmes actives, celles de l'application Réveil de l'appareil, je pense que vous le pouvez. Essayez de vérifier les méthodes de ici .

Cependant, si vous voulez voir toutes les alarmes créées par AlarmManager sur votre appareil, vous ne pouvez malheureusement pas le faire par programmation.

Mais, vous pouvez afficher les données de vidage dans un fichier texte comme celui-ci:

adb Shell dumpsys alarm > dump.txt
10
Mena

Vous pouvez obtenir la prochaine alarme programmée (docs)

getSystemService(AlarmManager::class.Java).nextAlarmClock.triggerTime

Renvoie l'heure à laquelle l'alarme va se déclencher. Cette valeur est le temps d'horloge murale UTC en millisecondes

0
ulcica