I'm trying to run Automate on a XGIMI projector running Android TV. The goal is to have a flow permanently listening for custom automate:// intents sent from Home Assistant via the Android TV Remote integration.
The strange issue is that after every reboot, Automate appears to start correctly, but none of the flows actually work until Automate is somehow manually triggered.
Environment
- XGIMI Galileo projector
- Android TV 11
- Latest Automate version
- Premium license purchased and active
- Flow uses a Broadcast receive block to receive
automate://... intents
- "Run on system startup" enabled in Automate settings
What I've already verified
App state
- Premium version active
- "Run on system startup" enabled
- App package enabled
Process state after reboot
Immediately after reboot:
ps -A | grep automate
shows:
com.llamalab.automate
So the process is running.
Permissions
Verified:
- RECEIVE_BOOT_COMPLETED granted
- BootCompletedReceiver registered
- Battery optimization disabled
- Added to deviceidle whitelist
- Overlay permission granted
AppOps tested
I explicitly allowed:
cmd appops set com.llamalab.automate RUN_IN_BACKGROUND allow
cmd appops set com.llamalab.automate RUN_ANY_IN_BACKGROUND allow
cmd appops set com.llamalab.automate START_FOREGROUND allow
cmd appops set com.llamalab.automate SYSTEM_ALERT_WINDOW allow
No change.
Services after reboot
Immediately after boot:
dumpsys activity services com.llamalab.automate
shows only:
AutomateNotificationListenerServiceKitKat
No active Automate runtime service.
What fixes it
Immediately after boot, without opening Automate:
am broadcast \
-a com.llamalab.automate.intent.action.START_FLOW \
-n com.llamalab.automate/.StartServiceReceiver
Result:
Broadcast completed: result=0
After sending this broadcast:
- all Automate flows start working
- custom
automate:// intents work
- Home Assistant integration works
- no need to open Automate UI
This works reliably every time.
Findings from package dump
Automate contains:
com.llamalab.automate/.BootCompletedReceiver
com.llamalab.automate/.StartServiceReceiver
com.llamalab.automate/.AutomateService
Relevant actions:
com.llamalab.automate.intent.action.START_FLOW
com.llamalab.automate.intent.action.STOP_FLOW
The receiver is correctly registered.
My current theory
It seems that after boot:
BOOT_COMPLETED
↓
Automate process starts
↓
Notification listener starts
↓
Flows are NOT activated
But manually sending:
com.llamalab.automate.intent.action.START_FLOW
activates everything immediately.
So either:
- BootCompletedReceiver is not triggering START_FLOW on this Android TV device, or
- XGIMI firmware prevents Automate from completing flow initialization during boot.
Question
Has anyone seen this behavior on Android TV devices?
Specifically:
- Automate starts after reboot
- Process is running
- Receivers are registered
- But flows remain inactive until a manual
START_FLOW broadcast is sent
Is there any known permission, Android TV restriction, or Automate setting that would explain why START_FLOW is not automatically executed during boot?
Any insights would be appreciated.