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#
Segui questi passaggi una volta che sei sicuro che una sincronizzazione del tuo account è almeno tentata, e vuoi indagare su un guasto di sincronizzazione o problemi con elementi mancanti o duplicati. Sul dispositivo, è possibile eseguire ``syncevolution` in modalità debug. Per farlo, terminare qualsiasi processo esistente:
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 alcuni casi, l’output da syncevolution
potrebbe non essere sufficiente: ad esempio, i dati HTTP grezzi di solito non sono stampati. Se avrai bisogno di vederli, allora dovrai modificare anche un file di configurazione. I file di configurazione di syncevolution
si trovano sotto ~/.config/syncevolution/
, in una sottodirectory il cui nome prende il modulo <provider-name>- No.<account-id>
. Ci potrebbero essere anche directory stanti, riferendosi a conti vecchi che sono stati cancellati da allora. Per scoprire quali account sono ancora validi, è possibile invocare il ``account-console``strumento come questo:
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.