| While I agree with you that Google is abusing its power in the Android ecosystem to "encourage" (to put it nicely) developers to use their APIs, it is actually possible to manage this imbalance between what Google wants and what we, as users, want. Specifically with regards to notifications the main things I care about are instant messaging apps (WhatsApp, Telegram, Signal and Element) and email notifications.
All of these apps fall back to either their own implementation of a persistent connection or use the OS' APIs for background job scheduling and polling.
In my experience, having a handful of persistent background connections does not significantly impact battery life (<5%/charge).
Also, modern Android has Doze[1] mode. Unless an app is granted a battery optimization exception, its scheduled tasks (polling) will run within a brief period every N minutes, where N depends on how long the device has been inactive.
This is what I want in most cases.
I personally only give IM apps a battery optimization exception. Notifications from other apps are usually less urgent/important. However if you want the convenience of having a single connection for all your notification delivery,
GrapheneOS[2] (an AOSP-based OS with many security and privacy improvements) has a compatibility layer for Google Play services[3] that allows it to be run with non-system privileges (i.e. the same as every app the user installs).
That means you can choose exactly which permissions are granted to it.
For example, you can revoke all permissions except Network[4].
This lets you use Google's FCM service without Google knowing anything about you except your IP address (and the contents of your notifications). Using Google as the notifications middleman is an ugly crutch though[5], but this setup is solid.
This is only necessary because they have convinced Android developers to use their APIs, but alternatives can and do exist.
I think UnifiedPush[6] is going in the right direction, but they haven't gained much traction yet. [1] https://source.android.com/devices/tech/power/platform_mgmt [2] https://grapheneos.org [3] https://grapheneos.org/usage#sandboxed-play-services [4] https://grapheneos.org/features (ctrl-f Network permission toggle) [5] similar to using Apple as the notifications middleman, although the incentives are slightly different [6] https://unifiedpush.org/ |