Lavorare sulla funzione Calendario¶
La funzione Calendario è fornita da diversi componenti:
La Calendar App, che fornisce l’interfaccia utente
Evolution Data Server (spesso abbreviato in «EDS»), che è il backend in cui sono memorizzati i calendari
sync-monitor, il servizio responsabile della gestione della sincronizzazione con i calendari remoti
SyncEvolution, il servizio responsabile dell’esecuzione della sincronizzazione con un calendario remoto WebDAV/CalDAV
Debugging-¶
Il modo più comodo per eseguire comandi sul dispositivo e raccogliere i log è aprire una shell remota. Questo può essere fatto usando Shell access via ADB o Shell access via SSH. Nelle sezioni seguenti si presuppone che si abbia accesso a una console terminale del dispositivo.
Problemi di programmazione e di account¶
Se non siete sicuri se il calendario è sincronizzato, o se l’operazione ha successo, sync-monitor è il componente che deve essere esaminato. Questo servizio dovrebbe sempre essere in esecuzione in background, e i suoi registri possono essere trovati in ~/.cache/upstart/sync-monitor.log. Per visualizzarli stampati in tempo reale mentre si opera sul dispositivo, è possibile eseguire questo comando:
tail -f .cache/upstart/sync-monitor.log
Questi registri dovrebbero essere sufficienti per darvi un’idea se i vostri conti del calendario sono riconosciuti, e se una sincronizzazione è programmata, accade, e completa con successo.
Problemi di sincronizzazione dei dati del calendario¶
Follow these steps one you are confident that a synchronisation of your account is at least attempted, and want to investigate a synchronisation failure or issues with missing or duplicate items. On the device, it’s possible to run syncevolution in debug mode. To do so, kill any existing processes:
pkill sync-evo
Quindi, avviare il processo syncevolution con la variabile ambiente corretta:
SYNCEVOLUTION_DEBUG=1 /usr/lib/arm-linux-gnueabihf/syncevolution/syncevo-dbus-server
A questo punto, aprire l’App Calendar (se non era già aperta) e attivare manualmente una sincronizzazione (nota che l’azione Synchronisation è disponibile solo se il dispositivo è collegato a Internet): tutti i registri appariranno nel terminale.
In some cases, the output from syncevolution might not be enough: for example, the raw HTTP data is usually not printed. Should you need to see that as well, then you’ll have to modify a configuration file as well. syncevolution’s configuration files are located under ~/.config/syncevolution/, in a subdirectory whose name takes the form <provider-name>-<account-id>. There might be stale directories as well, referring to old accounts which have been since deleted. To find out what accounts are still valid, you can invoke the account-console tool like this:
account-console list
Questo stamperà l’elenco dei conti validi correnti. Una volta capito qual è l’account che ti interessa, apri il file ~/.config/syncevolution/<account>/peers/target-config/config.ini e imposta la variabile loglevel a un valore superiore (11 sembra sufficiente per stampare tutto il traffico 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
Si noti che in modo che queste modifiche abbiano effetto, dovrai riavviare nuovamente il processo syncevolution, come spiegato sopra.