There are four main reasons why DAVdroid synchronization is not run automatically / as expected:
- vendor-specific (for instance: Huawei, LeTV, One Plus, Oppo, Vivo, Xiaomi) restrictions like Autostart, Start in background or App auto-launch permissions prevent DAVdroid from being run, and/or
- vendor-specific (for instance: Samsung) features like Maximum power saving mode have disabled synchronization and reset the sync interval to save power and/or
- DAVdroid has not been whitelisted from battery optimization, and/or
- automatic synchronization is disabled (will be shown in DAVdroid).
Some vendors like Huawei¹, LeTV, Oppo, Vivo, Xiaomi, ZTE and maybe others have added some modifications which are not available in default Android, and which prevent DAVdroid from synchronizing.
To get it working, add DAVdroid to "Autostart" and check DAVdroid permissions to allow things like "start in background". On OnePlus devices, it's named App auto-launch. This is required even if you don't use automatic DAVdroid synchronization.
See the screenshots (taken on a Xiaomi device) for more details. The screens may look different on your device.
If DAVdroid 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) → DAVdroid → Allowed. Also make sure that under Apps → DAVdroid → Battery → Launch all three options are enabled (Auto-Launch, Secondary launch, Run in Background).
Some devices (especially Samsung devices) have a "Power saving mode" which can be set to "Maximum". When you do so, the system tries to save battery by disabling as much functionality as possible.
Maximum power saving mode disables DAVdroid synchronization, but unfortunately does not enable it again when you return from power saving mode.
If you return from maximum power saving mode, you have to set the sync intervals for your DAVdroid accounts again (DAVdroid / Your account / Account settings / Sync intervals).
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 DAVdroid to be run as set in sync interval settings, you have to exempt DAVdroid from battery optimization (app standby, doze mode). Otherwise, synchronization may be delayed until you connect the device to a power supply. DAVdroid 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.