Auslesen von MediaSession Notifications

  • Hallo Leute,


    ich bin momentan dran mein Haus zu automatisieren :thumbup:
    Netflix in Kombination mit Philips Hue ist einer der Automatisierungspunkte, wenn ein Film/eine Serie startet geht das Licht aus und wenn er pausiert geht es wieder an.
    Dank Smart-TV und "Airplay" (ich weiß gerade tatsächlich nicht wie das bei Android heißt) klappt das auch schon halbwegs super, nur leider momentan bei mir nur mit einem Workaround.


    Hier meine Idee:


    [Blockierte Grafik: http://i.imgur.com/Ou1gYlh.png]


    Die Knöpfe in der Benachrichtigung dienen als Einstiegspunkte für einen Service.
    Wenn ein Knopf gedrückt wird, reagiert er je nach Knopf und stellt eine voreingestellte Szene ein.
    Idealerweise sollte das tatsächlich auf den Knopf reagieren, oder irgendwie das Icon auslesen welches in der Benachrichtigung angezeigt wird.
    Ich habe aber noch nicht herausgefunden, wie man auf diese Knöpfe zugreifen kann. Es scheint möglich zu sein, die App Sleep Timer scheint genau das zu benutzen.


    [Blockierte Grafik: http://i.imgur.com/JV162nX.png]



    Meine App sieht momentan wie folgt aus:
    Die Verbindung mit Hue steht, und ein NotificationListenerService reagiert auf Netflix Benachrichtigungen.
    Der Workaround klappt bei mir auch soweit, dank der Aktualisierung der Benachrichtigung. Wenn man Play drückt, wird die Benachrichtigung in kurzer Zeit fünfmal aktualisiert, bei Pause zweimal und bei 30 Sekunden zurück einmal und etwas später noch einmal.
    Das klappt auch alles meistens, aber ich finde es trotzdem unschön.


    Daher die Frage/TL;DR:
    Wie kann man die MediaControls aus der Notification auslesen? Es würde ja schon reichen an die Icons zu kommen und da dann alles korrekt reinzuinterpretieren.



    Falls jemand die (bei mir funktionierende) App bei sich ausprobieren möchte, den Code habe ich auf GitHub geladen, hier könnt ihr ihn finden.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!