Ich versuche programmgesteuert herauszufinden, für welche Apps die Einstellung "Nicht stören" ausnahmsweise umgangen wird.
Bisher verwende ich den folgenden Code, um zu überprüfen, ob das Telefon im Nicht stören-Modus ist oder nicht:
%Vor%Wenn ich auf den Tab Priorität App-Benachrichtigungen klicke, erhalte ich eine Liste aller installierten Apps, für die ich auswählen kann, welche Apps als bevorzugte Ausnahmen zugelassen werden sollen.
Meine Frage ist, wie Sie programmatisch die Liste der Apps abrufen können, die als Prioritätsausnahmen für den Nicht stören-Modus zulässig sind, und dadurch die Logik definieren, die den Kommentar im obigen Code ersetzt? Jede Lösung würde sehr geschätzt werden.
Sie suchen nach einer Möglichkeit, festzustellen, welche Apps auf dem System eine Benachrichtigungsrelevanz von Notification.IMPORTANCE_MAX
haben. Entschuldigen Sie dies, aber dies ist bei einer Nicht-System-App nicht möglich. Sie müssen Zugriff auf INotificationService
haben, damit Sie getImportance(packageName)
aufrufen können. Siehe die Benachrichtigungs-Manager-Quelle , aber
Google ermöglicht einer App, über die Funktion NotificationManager
mit getImportance()
( siehe Dokumente ), aber Sie können es nicht mit einem beliebigen Paket aufrufen.
Die andere Antwort hier bezieht sich auf das Auschecken der Quelle aus der App mit den Systemeinstellungen, und genau das habe ich getan. Nach einer Weile des Durchstöberns des Codes habe ich herausgefunden, welche Apps in den "Overrides Do not Disturb "Menü von dieser Code hier , der mich geführt hat auf dem Weg zu entdecken, wie wir das IMPORTANCE_*
Tut mir leid, aber die Vorschläge des anderen Beantworters funktionieren auch nicht, weil sie entweder falsch sind (packages.xml hat keine Informationen) oder root benötigen, was nicht auf allen Geräten zuverlässig ist .
Sie können versuchen, die folgenden Dinge zu tun (einige dieser Dinge benötigen möglicherweise Zugriffsrechte):
Tags und Links android android-notifications