Как работает «Календарь»#

Календарь работает благодаря нескольким компонентам:

  • Приложение Calendar, где находится интерфейс пользователя

  • Evolution Data Server (сокращенно «EDS»), где хранятся сами календари

  • sync-monitor, служба отвечает за синхронизацию через сеть с другими календарями

  • SyncEvolution,служба отвечает за синхронизацию с удаленным календарем WebDAV/CalDAV

Отладка#

Самый удобный способ запускать команды на устройстве и получать лог-файлы - через shell. Это можно сделать с помощью Shell access via ADB или Shell access via SSH. Далее предполагается, что у Вас есть доступ к терминальной консоли устройства.

Ошибки с учетной записью и запланированными делами#

Если Вы не уверены, действительно синхронизация календаря прошла успешно, то следует проверить sync-monitor. Эта служба должна быть всегда запущена в фоновом режиме, лог-файлы можно найти в папке ~/.cache/upstart/sync-monitor.log. Чтобы увидеть актуальные на текущий момент времени данные , выполните команду:

tail -f .cache/upstart/sync-monitor.log

Данных в лог-файлах достаточно, чтобы можно было понять, есть ли проблемы с аккаунтами пользователя и как проходит синхронизация.

Ошибки синхронизации данных календаря#

Выполните следующие действия, чтобы убедиться, что предпринималась хотя бы попытка синхронизации учетной записи, и вы хотите исследовать сбой синхронизации или проблемы с отсутствующими или повторяющимися элементами. На устройстве можно запустить в режиме отладки команду syncevolution. Для этого завершите все существующие процессы:

pkill sync-evo

Затем запустите процесс syncevolution с правильной опцией:

SYNCEVOLUTION_DEBUG=1 /usr/lib/arm-linux-gnueabihf/syncevolution/syncevo-dbus-server

Теперь запустите приложение «Календарь» (если это еще не было сделано) и вручную запустите синхронизацию (обратите внимание, что запустить её можно только в том случае, если устройство подключено к Интернету): все журналы появятся в терминале.

В некоторых случаях вывода syncevolution может быть недостаточно: например, необработанные данные HTTP обычно не показываются. Если они нужны, то придется изменить файл конфигурации. Файлы конфигурации syncevolution находятся в папке ~/.config/syncevolution/ в подкаталоге с названием в формате <provider-name>-<account-id>. Также могут быть устаревшие каталоги, относящиеся к старым учетным записям. Чтобы узнать, какие учетные записи еще действительны, можно использовать утилиту account-console:

account-console list

Будет напечатан список всех действующих учетных записей. Как только станет известно имя нужной учетной записи, откройте файл ~/.config/syncevolution/<account>/peers/target-config/config.ini и поставьте большее значение в переменной loglevel (цифра 11 вполне подойдёт для вывода всего HTTP-трафика):

# level of detail for log messages:
# - 0 (or unset) = INFO messages without log file, DEBUG with log file
# - 1 = only ERROR messages
# - 2 = also INFO messages
# - 3 = also DEBUG messages
# > 3 = increasing amounts of debug messages for developers
loglevel = 11

Чтобы настройки вступили в силу, нужно перезапустить syncevolution, как описывалось выше.