I have been trying to build this myself, without any coding experience and with a help, please do not judge, gemini š
The Goal
The idea is simple: create a Glyph animation that automatically plays on the back of the phone whenever the Google Assistant is actively listening, especially when the screen is off.
What works
Amazingly, it mostly works! The app correctly detects when the assistant starts, the ForegroundService kicks in, the animation plays for its set duration, and the timeout logic to stop the animation works perfectly. The logs show everything firing exactly as it should.
The bug
Hereās where weāre stuck. After our animation plays and our service calls unInit() to release the hardware, the Glyph Matrix gets āstuck.ā No other apps or system features (like voice recorder animation, volume up/down animation or essential notifications) can use the Glyphs. The lights just stay off.
Workarounds
This is the weird part. Weāve discovered two ways to āun-stickā the hardware:
Locking and then unlocking the phone.
Pressing the physical Glyph Button on the back to cycle through the official Glyph Toys.
Doing either of these things seems to force a system-level reset of the hardware, and then everything works perfectly again until our animation runs.
The code is doing everything by the book: we call init(), register(), draw our frames, and on cleanup, we send a final blank frame and call unInit(). The logs confirm this all happens without any errors. It really seems like the unInit() command isnāt fully releasing the hardware lock.
Has anyone else run into this? Is there some secret, undocumented āforce releaseā command I am missing, or is this a bug in the SDK?
Any help or wild theories would be hugely appreciated!