Our 2024111700 release overhauled the way sandboxed Google Play runs background services. Our GmsCompat app runs a foreground service and used to keep a connection open to Play services and Play Store. It now creates the connection on-demand when they need a foreground service.

Toggling off background data usage for Play services and Play Store will now stop their background services being able to use data. That now blocks it from using mobile data when it’s not running a foreground service since another foreground service isn’t always using it anymore.

Some users previously blocked background data usage for them and now they don’t have FCM and other features working anymore.

Similarly, some users never granted it Unrestricted battery usage which was required for FCM to work reliably but is now even more required than before.

Apps can be set to one of 3 different battery modes: Restricted, Optimized (Default) and Unrestricted. Optimized heavily restricts the app running in the background based on how much it’s used. Restricted nearly fully prevents apps running in the background on their own.

Android 14 QPR2 changed this from a menu with the 3 options to a toggle for Restricted being on or off. The text next to the toggle is a button to open an inner menu with Optimized vs. Unrestricted. Users find this confusing and we’re considering changing it back to how it was.

Our sandboxed Google Play compatibility layer makes a notification requesting Unrestricted battery usage for Play services with a permission request dialog. The issue is that if users miss this or dismiss it, it’s trickier than before to find the setting to enable it manually.

We also show this as a detected issue in Settings > Apps > Sandboxed Google Play in the suggestions in shows. The issue is that some users may want the background usage heavily restricted for sandboxed Play services. We don’t want to nag people who actually want it very limited.

Our compatibility layer already shows a notification about this until users either grant Unrestricted battery mode for sandboxed Play services or press “Don’t show again” to dismiss the notification permanently. It will show again if it’s only dismissed without pressing that.

It seems this isn’t quite enough because we see a steady stream of people not granting Unrestricted battery mode and not realizing it’s why their push notifications are delayed. It’s valid to not grant it to it. It runs fine without it granted but it means push, etc. won’t work.