microg / microg/GmsCore

[Feature Request] Granular GCM/FCM Push Delivery Control per App

Open
#3,399 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Java
Stars
14.6k
Forks
3.2k
PR merge metrics
PR metrics pending

Description

Currently, microG handles Google Cloud Messaging (GCM/FCM) globally based on the heartbeat interval. While this works well, users have no way to prioritize which apps are allowed to wake the device immediately and which ones can wait. Some non-essential apps (e.g., shopping apps, social media) frequently trigger pushes that drain battery, while others (e.g., messaging) are critical.

I suggest implementing a per-app delivery policy within the microG Settings -> Cloud Messaging section. This would allow users to choose between:

Immediate: Default behavior (push delivered as soon as it's received).

Delayed/Batched: The push is received but notification/intent delivery is delayed until the next system-wide heartbeat or when the screen is turned on.

Quiet Hours: A schedule to disable push delivery for specific apps during the night without turning off GCM entirely.

Describe alternatives you've considered
Turning off GCM per app: Too radical, as you might miss important (though not urgent) updates.

Android's built-in "Battery Optimization": Often unreliable and can lead to apps being killed entirely rather than just managing the push incoming stream.

Additional context
This feature would significantly enhance microG's reputation as a privacy and battery-focused alternative to standard Play Services. It gives the user "Pro" control over their device's standby time.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the microG Settings → Cloud Messaging section and the existing GCM/FCM heartbeat behavior described in the issue. Work out how per-app Immediate, Delayed/Batched, and Quiet Hours policies should interact with push delivery, then verify that critical apps can remain immediate while other apps are deferred or suppressed on schedule.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, firebase, java
Domain
mobile
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.