There are four main reasons why DAVx⁵ synchronization is not run as expected:
- vendor-specific restrictions like Autostart, Start in background or App auto-launch permissions prevent DAVx⁵ from being run, and/or
- vendor-specific "power-saving apps" prevent DAVx⁵ from being run, and/or
- DAVx⁵ has not been whitelisted from Android's battery optimization and/or
- vendor-specific features like Maximum power saving mode have disabled synchronization.
The names of and workarounds against these "battery-saving features" are changing quickly. Please find up-to-date information and solutions for various manufacturers here:
By the way, DAVx⁵ is not the only app that is affected by these "features" – there are many other affected apps. Big apps like Facebook or WhatsApp are often explicitly (hard-coded) excluded, so that they don't get killed while spying into your phone.
Huawei¹, Lenovo, Meizu, Nubia, One Plus, Oppo, Vivo, Xiaomi², Viko and maybe others have added modifications which are not available in default Android and prevent DAVx⁵ from synchronizing as expected.
To get it working, add DAVx⁵ to "Autostart" (may have another name) and check DAVx⁵ permissions to allow "start in background" (may have another name; on OnePlus it's called auto-launch). This is required even if you don't use automatic DAVx⁵ synchronization.
See the screenshots (taken on a Xiaomi device) for more details. The screens may look different on your device.
If DAVx⁵ doesn't synchronize automatically after a reboot, check those settings again.
¹ On some Huawei devices this is very hard to find – go to: Settings → Apps → Settings (little wheel on the bottom of the screen) → Special Access → Ignore Battery Optimization → All Apps (drop down menu) → DAVx⁵ → Allowed. Also make sure that under Apps → DAVx⁵ → Battery → Launch all three options are enabled (Auto-Launch, Secondary launch, Run in Background).
² In some cases contacts are synchronized but not displayed on Xiaomi devices (in the Xiaomi contacts app). To get it working a user reported that this setting helped: Contacts app → Parameters → Hide incomplete numbers switch off.
If there are (pre-installed) apps like AppBlocker, DuraSpeed, Evenwell power saver, PowerGenie or PowerMaster on your device, open their settings and whitelist DAVx⁵.
Otherwise, these apps may prevent DAVx⁵ from being run or kill it arbitrarily.
Since Android 6, Google has put much effort in battery optimization. As a result, apps are very restricted when they may wake up and connect to the Internet.
If you want DAVx⁵ to be run as set in sync interval settings, you have to exempt DAVx⁵ from battery optimization (app standby, doze mode). Otherwise, synchronization may be delayed until you connect the device to a power supply. DAVx⁵ asks to be white-listed when it's started the first time.
Some devices require that you have to disable battery optimization manually. See the screenshots (taken on a Xiaomi device) for more details. The screens make look different on your device.
Samsung (and maybe other) devices have a "Power saving mode" which can be set to "Maximum". In Maximum mode, the system saves battery by disabling as much functionality as possible – including DAVx⁵ synchronization. Unfortunately, the system does not enable synchronization again when you return from power saving mode.
So, if you return from maximum power saving mode, you have to set the sync intervals for your DAVx⁵ accounts again (DAVx⁵ / Your account / Account settings / Sync intervals).