Ubuntu Touch: добавить список контактов и календари
Я успешно настроил синхронизацию календаря по умолчанию для моего сервера Owncloud и списка контактов по умолчанию на основе этого потока аскубунту. У меня есть несколько календарей и список контактов на моем сервере Owncloud. Я проверил календарь и приложения контактов для способов добавления новых списков контактов и календарей. Приложение контакта, кажется, не предлагает эту функцию. Приложение календаря имеет возможность добавлять новые календари, но когда я нажимаю соответствующую кнопку, я перенаправляюсь на страницу настроек системы. Спасибо за ваши подсказки заранее! М.
(мое устройство - BQ Aquaris E4.5 с Ubuntu 14.10-r21)
2 ответа
Я могу поделиться этим сценарием на основе ответов alexandre_payet, которые добавят 1 адресную книгу контактов и 1 календарь с вашего собственного облачного сервера для синхронизации с вашим телефоном.
скрипт
#!/bin/bash
# ---------------------------------------------------------------------------
# Ubuntu Phone - Sync Owncloud Contacts & Calendar Account
# Carddav & Caldav.
# Tested on : Ubuntu-touch vivid - ubuntu-touch/rc-proposed/bq-aquaris.en/vegetahd/
# Last edit : 2015/08/23.
# Author : Romain Fluttaz, boTux.fr, <romain@botux.fr>
# ============= [ Configuration ] ============= #
# --------------- [ OwnCloud ] ---------------- #
# Server and user informations
HTTP_PROTOCOL="https" # "http" or "https". It's recommended to use an $HTTP_PROTOCOL connection
OWNCLOUD_URL="cloud.domain.com" # Without the last /.
USERNAME="owncloud-user" # Your OwnCloud username
PASSWORD="owncloud-password" # Your OwnCloud password
# Contact addressbooks
CONTACT_ADDRESSBOOK_NAME="contacts" # Check in the contact setting page.
# Calendar
CALENDAR_NAME="personnel" # Check in the calendar setting page.
# Database
OC_DATABASE_NAME="owncloud"
# ----------------- [ Phone ] ----------------- #
# Database name :
CONTACT_DB_NAME="Contacts-name" # Contact addressbook name on the phone
CALENDAR_DB_NAME="Calendar-name" # Calendar name on the phone
# CRON job
CRON_FREQUENCY="hourly" # Cronjob frequency. "hourly", "dayly", "weekly", "monthly". See $HTTP_PROTOCOL://help.ubuntu.com/community/CronHowto#Advanced_Crontab
# ============= [ /Configuration ] ============ #
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License at <http://www.gnu.org/licenses/> for
# more details.
# Thanks to :
# alexandre_payet @ https://Ask-ubuntu.ru/questions/616081/ubuntu-touch-add-contact-list-and-calendars
# alexandre_payet @ https://Ask-ubuntu.ru/questions/611761/syncevolution-in-cronjob-to-sync-the-ubuntu-phone-via-caldav-arddav
# alexandre_payet @ https://Ask-ubuntu.ru/questions/629219/automatically-sync-calendar-on-ubuntu-phone/629728#629728
# Usage: Edit the config section and run the script.
# Revision history:
# 2015-08-22 Adding 1 Contact & 1 Calendar.
# 2015-08-22 Add cronjob support.
# ---------------------------------------------------------------------------
echo "\e[4mAdding OwnCloud account : **$OWNCLOUD_URL**\e[0m"
echo ""
# Contact
echo -e "[\e[0;34m Contacts \e[m] $CONTACT_ADDRESSBOOK_NAME @ $OC_DATABASE_NAME"
syncevolution --create-database backend=evolution-contacts database=$CONTACT_DB_NAME
syncevolution --configure --template webdav username=$USERNAME password=$PASSWORD syncURL=$HTTP_PROTOCOL://$OWNCLOUD_URL/remote.php/ keyring=no target-config@$OC_DATABASE_NAME
syncevolution --configure backend=evolution-contacts database=$CONTACT_DB_NAME @default $CONTACT_DB_NAME
syncevolution --configure database=$HTTP_PROTOCOL://$OWNCLOUD_URL/remote.php/carddav/addressbooks/$USERNAME/$CONTACT_ADDRESSBOOK_NAME backend=carddav target-config@$OC_DATABASE_NAME $CONTACT_DB_NAME
syncevolution --configure --template SyncEvolution_Client Sync=None syncURL=local://@$OC_DATABASE_NAME username= password= $OC_DATABASE_NAME $CONTACT_DB_NAME
syncevolution --configure sync=two-way backend=evolution-contacts database=$CONTACT_DB_NAME $OC_DATABASE_NAME $CONTACT_DB_NAME
echo " +--> $CONTACT_DB_NAME @ local"
syncevolution --sync refresh-from-remote $OC_DATABASE_NAME $CONTACT_DB_NAME
syncevolution --sync slow $OC_DATABASE_NAME $CONTACT_DB_NAME
echo -e "[\e[0;34m Contacts \e[m] +--> Done."
echo ""
# Calendar
echo -e "[\e[33m Calendar \e[m] $CALENDAR_NAME @ $OC_DATABASE_NAME"
syncevolution --create-database backend=evolution-calendar database=$CALENDAR_NAME
syncevolution --configure --template webdav username=$USERNAME password=$PASSWORD syncURL=$HTTP_PROTOCOL://$OWNCLOUD_URL/remote.php/ keyring=no target-config@$OC_DATABASE_NAME
syncevolution --configure backend=evolution-calendar database=$CALENDAR_NAME @default $CALENDAR_NAME
syncevolution --configure database=$HTTP_PROTOCOL://$OWNCLOUD_URL/remote.php/caldav/calendars/$USERNAME/$CALENDAR_DB_NAME backend=caldav target-config@$OC_DATABASE_NAME $CALENDAR_NAME
syncevolution --configure --template SyncEvolution_Client syncURL=local://@$OC_DATABASE_NAME username= password= $OC_DATABASE_NAME $CALENDAR_NAME
syncevolution --configure sync=two-way database=$CALENDAR_NAME $OC_DATABASE_NAME $CALENDAR_NAME
echo " +--> $CALENDAR_DB_NAME @ local"
syncevolution --sync refresh-from-remote $OC_DATABASE_NAME $CALENDAR_NAME
echo -e "[\e[33m Calendar \e[m] +--> Done."
echo ""
# Cron
echo -e "[\e[0;36m Cron \e[m]"
echo -e " +--> \e[0;31mGranting SuperUser Access\e[m"
sudo mount /dev/loop0 / -o remount,rw
CRON_LINE="@$CRON_FREQUENCY export DISPLAY=:0.0 && export DBUS_SESSION_BUS_ADDRESS=$(ps -u phablet e | grep -Eo 'dbus-daemon.*address=unix:abstract=/tmp/dbus-[A-Za-z0-9]{10}' | tail -c35) && /usr/bin/syncevolution $OC_DATABASE_NAME"
(crontab -u phablet -l; echo "$CRON_LINE" ) | crontab -u phablet -
sudo service cron restart
crontab -l | grep "$CRON_LINE"
echo -e "[\e[0;36m Cron \e[m] +--> Added."
echo ""
# First Normal Sync
echo -e "[\e[0;32m Syncronisation \e[m]"
syncevolution $OC_DATABASE_NAME
echo -e "[\e[0;32m Syncronisation \e[m] +--> Done."
# Print information
echo ""
echo ""
echo ""
echo "# To manually sync your accounts, use the command below :"
echo ""
echo -e " syncevolution $OC_DATABASE_NAME \e[m"
echo " or"
echo -e "\e[0;34msyncevolution $OC_DATABASE_NAME $CONTACT_DB_NAME\e[m | \e[33msyncevolution $OC_DATABASE_NAME $CALENDAR_NAME\e[m"
echo ""
echo "See 'syncevolution --help' to get more information."
Скачать ubuntu-touch_owncloud-sync_contact-calendar.sh | Github Gist
Протестировано на канале Ubuntu-Touch / RC-предложил / bq-aquaris.en / vegetahd
Как пользоваться
Отредактируйте раздел конфигурации и выполните его на вашем Ubuntu-телефоне.
С рабочего стола Ubuntu
(с установленными из ppa инструментами phablet)
- Добавить фаблет-оболочку
sudo add-apt-repository ppa: phablet-team / tools sudo apt-get обновить sudo apt-get установить phablet-tools
- Активировать режим разработчика
- Скачайте и отредактируйте скрипт:
wget https://gist.githubusercontent.com/boTux/069b53d8e06bdb9b9c97/raw/a03be09136c5275b2956c512accdad69b30e8074/ubuntu-touch_owncloud-sync_contact-calendar.sh gedit ubuntu-touch_owncloud-sync_contact-calendar.sh
- В разделе [Конфигурация] / [OwnCloud]
- Введите свой OWNCLOUD_URL, без последнего /.
- Введите ваше имя пользователя и пароль.
- Введите название своей собственной адресной книги и календаря.
- В разделе[Конфигурация]/ [Телефон]
- ОтредактируйтеCONTACT_DB_NAME& CALENDAR_DB_NAME с именами по вашему выбору.
- ИзменитеCRON_FREQUENCY на нужный вам интервал синхронизации.
- Сохранить
- В разделе [Конфигурация] / [OwnCloud]
- Подключите телефон через USB и скопируйте скрипт (через nautilus, например в Documents/)
- Подключитесь через phablet-shell и запустите скрипт:
Фаблет-оболочки chmod +x Documents/ubuntu-touch_owncloud-sync_contact-calendar.sh ./Documents/ubuntu-touch_owncloud-sync_contact-calendar.sh
Я надеюсь, что это может помочь некоторым из вас...
Чтобы добавить и синхронизировать календари и контакты с owncloud, вы можете использовать строки команд в терминале.
Я нашел его на https://lists.launchpad.net/ubuntu-phone/msg09789.html
Примечание: хороший способ сделать это с терминала Desktop, подключенного к вашему телефону с Ubuntu с помощью ssh (тогда вы можете легко скопировать строки команд). Но это должно работать и в приложении "Терминал" телефона.
Календарь
Создать календарь
syncevolution --create-database backend=evolution-calendar database=Calendar1
Создать Peer
syncevolution --configure --template webdav username=myusername password=mypassword syncURL=https://url-to-owncloud-install/remote.php/caldav/calendars/user-name/defaultcalendar keyring=no target-config@owncloud
Создать новый источник
syncevolution --configure backend=evolution-calendar database=Calendar1 @default Calendar1
Добавить удаленную базу данных
syncevolution --configure database=https://url-to-owncloud-install/remote.php/caldav/calendars/user-name/defaultcalendar backend=caldav target-config@owncloud Calendar1
Подключите удаленные календари с локальными базами данных
syncevolution --configure --template SyncEvolution_Client syncURL=local://@owncloud username= password= owncloud Calendar1
Добавить локальную базу данных в источник
syncevolution --configure sync=two-way database=Calendar1 owncloud Calendar1
Начать первую синхронизацию
syncevolution --sync refresh-from-remote owncloud Calendar1
Вы можете сделать это для calendar1, затем calendar2, ...
В этих командных строках не забудьте заменить:
Для команды № 2
'myusername' by your owncloud username
'mypassword' by your owncloud password
'https://url-to-owncloud-install/remote.php/caldav/calendars/user-name/defaultcalendar' by the adress link of calendar1 or calendar2 , ....
Для команды № 4
'https://url-to-owncloud-install/remote.php/caldav/calendars/user-name/defaultcalendar' by the adress link of calendar1 or calendar2 , ....
Контакт:
Так же:
syncevolution --create-database backend=evolution-contacts database=Contact1
syncevolution --configure --template webdav username=myusername password=mypassword syncURL=Your_contact1_owcloud_adress keyring=no target-config@owncloud
syncevolution --configure backend=evolution-contacts database=Contact1 @default Contact1
syncevolution --configure database=Your_contact1_owcloud_adress backend=carddav target-config@owncloud Contact1
syncevolution --configure --template SyncEvolution_Client Sync=None syncURL=local://@owncloud username= password= owncloud Contact1
syncevolution --configure sync=two-way backend=evolution-contacts database=Contact1 owncloud Contact1
syncevolution --sync refresh-from-remote owncloud Contact1
Те же замечания, что и в календаре. Я проверил это только с одной базой данных контактов, но она должна работать для Contact2, Contact3, ...
Для контакта убедитесь, что вы используете 'backend=evolution-contacts' и 'backend=carddav'(разница между строками команд календаря и контакта)
Важно: для следующей синхронизации вам просто нужно сделать:
syncevolution owncloud calendar1
syncevolution owncloud contact1
и календарь2, контакт2,...
Чтобы автоматически синхронизировать контакты и календари, вы можете использовать задание crontab для запуска этих команд, когда захотите. Вы можете увидеть это сообщение: Syncevolution в cronjob для синхронизации телефона Ubuntu через Caldav/ Arddav
Надеюсь, что в моих командных строках нет ошибок.