I use TeamViewer Host on Android and it is impossible to remotely wake the device after a period of time. To rectify this, I have a custom app that starts the TeamViewer activity upon receiving normal and high priority FCM data messages. This solution works reliably for me.
This raises the question: Why doesn't TeamViewer do this? The current implementation is unreliable.
On my device, a normal priority FCM message is processed when the device exits Doze mode. A high priority message will wake the device from Doze mode. Of course, the actual behavior would depend on the device, but this is the only solution that works for me. Without it, TeamViewer is unusable for remote access.
Other information:
- FCM stands for Firebase Cloud Messaging. It is the standard service for delivering notifications to Android-based devices with Google Play Services.
- Both TeamViewer Host and my custom FCM app have been excluded from battery optimization.
- The wake issue occurs even when the Android device is not in Doze mode. I have observed that TeamViewer fails to wake even while the device is in active use. However, sending a normal-priority message to my custom FCM app during this period is sufficient to start TeamViewer's activity.
- The custom FCM app is extremely simple and standard.