Search
Write a publication
Pull to refresh

Перенос контактов из 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.
Как я говорил в начале, всё это извращение и потраченное время. Но мне нравится решать такого рода задачки, может поэтому я сам их иногда и надумываю.
Другого пути решения я пока не знаю, а этот работает.


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

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.