Как стать автором
Обновить

Перенос контактов из Google на телефон Series40 через SyncML

Привет Хабралюди!
Сегодня я поделюсь с вами как, «стоя и в гамаке» и периодически падая, залить контакты из гуглового аккаунта в телефон на платформе Series40.

Действующие лица:
Linux, Funambol, Evolution, SyncEvolution, ну и, конечно, root.

Предыстория

Владею я тремя андроидами: старенький HTC Desire и два планшета. Периодически попадаются новые игрушки — ставлю сразу на несколько девайсов из маркета, а дома включаю инет и они все дружно ставят, что там накопилось. В какой-то момент надоело мне такое обилие железок, да и «желанный» стал глючить так, что невозможно стало им полноценно пользоваться. Пришёл я к неоригинальной, но мысли, что «телефон должен звонить» и купил «просто-фон» Nokia 301 выпуска «февраль 2013». Зверушка, как и ожидалось, долгоживущая, простая как и любая на Series40, WiFi нет, только мобильный инет.

История

Понадобилось мне залить в этот телефон контакты с гугла, а как? Обратился к первоисточнику и скачал с родного сайта с родной страницы «Nokia PC Suite». Поставил, а софт отказывается видеть железку — железку уже продают, а софт про неё ещё не знает. Народ на форумах тоже столкнулся с такой проблемой.
Отказалась в общем от него родина, опередил он своё время, гость и будущего, ну что с ним таким делать?!

Начал смотреть, вариантов несколько:
  • по проводу не получается, софт телефон не опознаёт.
  • адресная книга не умеет пополняться из файла с карточки.
  • по bluetooth контакты с андроида летят да не так, только один из всей пачки долетел, видать они поштучно хотят переносить, но лениво пару сотен так кидать, это не наш метод.
  • остаётся инет, хоть и мобильный.

— И что же ты из воздуха умеешь делать?
Умеет, как и все нокии, по протоколу SyncML общаться.
Протокол такой хороший и повсеместный, что корпорация добра от него пару лет назад отказалась. Остались разные сервисы, платные и не очень, которые выступают в роли SyncML-серверов. Я принципиально смотрел только халявные. Кто-то не умеет работать с гуглом, кто-то умеет, но только контакты без календаря. Смотрел everdroid, он вроде как умеет и контакты и календарь переносить, но как раз контакты из моего гугла он и не взял, зато календарь зацепил. Но без контактов это не жизнь.

Свой SyncML-сервер

В общем с готовыми сервисами не сложилось. Нашёл опенсорсный funambol, он есть даже под мой Linux 64-битный. А вот здесь дядька рассказывает много кому-то полезного, мне было интересно только взять куски скриптов для запуска фанамбола как сервиса, а эта часть начинается со слов «Configure the service to run as user funambol».
Всё делаем, как написано и после перезагрузки получаем SyncML-сервер http://localhost:8080/funambol/ds
Кто умеет запускать без перезагрузки — не подсказываем.
По умолчанию там живут две учётки: admin/sa и guest/guest.
Если надо поменять — запускаем админку /opt/Funambol/admin/bin/funamboladmin и пользуясь интуицией легко находим что хотим.
Ну и ещё надо бы сделать доступ к нему из инета. Роутер ищется через динамический DNS типа «noip», а его внешний порт Х пробрасывается на порт 8080 моей машины.


Всё, получили хранилище, с которым уже сейчас может синхронизироваться наш телефон. Теперь надо в него залить контакты.
Не сочтите меня дарвинистом, но я не буду отрицать существование такой вещи как Evolution, по крайней мере под линуксом. Для меня это просто почтовый клиент, большего от него пока не надо.
Замечены глюки: в процессе опытов в какой-то момент получилась у меня непустая адресная книга, надо было почистить. Так вот по несколько контактов он удаляет, но делать это много раз или удалять контакты пачкой у меня он не стал — моргнул, но всё оставил. К тому же иногда у него случается после старта показывать пустую адресную книгу, а в другой раз — полную.
В общем, чтобы этого избежать, делаем новую адресную книгу и назначаем её книгой по-умолчанию.
Теперь выгружаем контакты из гугла — все одной пачкой в формате vCard.
Вернёмся в Evolution и импортируем их в свежесозданную адресную книгу.


Осталось Evolution как источник контактов связать с Funambol. Для этого существует SyncEvolution — это утилита для синхронизации Evolution со всякими сервисами по разным протоколам, в том числе SyncML. В ней даже есть заготовка для Funambol, остаётся только заполнить поля с адресом сервера (напомню — http://localhost:8080/funambol/ds) и учётки guest/guest. Ещё можно заказать направление синхронизации и галки проставить у объектов синхронизации — пока только у контактов. Ну и осталось нажать «Save and use», чтобы сохранить и активировать этот канал синхронизации, и кнопку «Sync».



Время — деньги

Перекачка в Funambol происходит достаточно быстро, секунд 5. А с него на телефон — секунд 20-30.
Как я говорил в начале, всё это извращение и потраченное время. Но мне нравится решать такого рода задачки, может поэтому я сам их иногда и надумываю.
Другого пути решения я пока не знаю, а этот работает.


Всем удачного хабрадня!

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.