Nokia 6230i telefonszámok átvitele Googlere, Androidra

A HupWiki-ből...

Nokia 6230i (vagy hasonló) telefonokról telefonkönyv szinkronizálása Google Contacts al (Android-hoz)

I. módszer, telefonkönyv lementése wammu segítségével és konvertálás

A telefonkönyvet a telefonról lementjük bluetooth kapcsolaton keresztül. Konkrétan:

  • Kernelben bluetooth eszköz beállítása
  • Wammu telepítése a megfelelő függőségekkel
  • Gentoon:
# emerge -av wammu

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ] app-mobilephone/wammu-0.35  USE="bluetooth" LINGUAS="hu -af -bg -ca -cs -da -de -el -es -et -fi -fr -gl -he -id -it -ko -nl -pl -pt_BR -ru -sk -sv -zh_CN -zh_TW" 0 kB                                                                  

Total: 1 package (1 reinstall), Size of downloads: 0 kB

A kapcsolatnál nem vált be az automatikus felderítés, ezért a varázslóban:

  • Bevezetés - Next -
  • Beállítási stílus: Irányított beállítás - Next -
  • Kapcsolat típusa: Bluetooth - Next -
  • Telefon típusa: Nokia... - Next -
  • Kapcsolat típusa: Nokia szabadalmaztatott protokoll - Next -
  • Használandó meghajtó: Phonet (első) - Next -
  • Telefon: bluetooth mac kiválasztása (elvileg detektálta, ha a telefonon a bt be van kapcsolva) - Next -
  • Kapcsolat tesztelése: - Next -
    • A készüléknek párosítva kell lennie a számítógép bluetooth-jával. Ha nincs, ilyenkor kódot kér (illetve a párosítás beállításaitól függően lehet, hogy mindig), ebben az esetben legegyszerűbb valamelyik bluetooth manager frontend használatával elvégezni a párosítást (pl. blueman, kbluetooth).

A telefon telepítése után: Telefon / kapcsolódás, majd a főmenüben: Letöltés / Névjegyzék (összes) Ebben az esetben mind a SIM, mind a telefonmemórián tárolt névjegyzéket letölti. Ha nincs mindegyikre szükség, értelemszerűen választható a megfelelő menüpont.

Ezután Mentések / Mentés tetszőleges filename (nálunk most mentes.backup).

A file kódolása utf-16, ezt konvertálni kell:

recode utf-16..utf-8 mentes.backup

A konvertált file-ból csv-t csinál a következő perl program.

#!/usr/bin/perl -X
use strict;

my $cat;
my $id;
my $type;
my %data;
my %dataTypes;

# Print de codes?
my $codes;
# Print de raw data
my $raw;
# Print de geparste code
my $parse = 1;

open (MYFILE, $ARGV[0]);
while (<MYFILE>) {

  $_ =~ s/[\t\n\r\f]//g;

  if ($_ =~ m/\[.*/) {
    #print $_;
    if ($_ =~ m/\[Phone.*/) {
      $cat = "Phone";
    } else {
      $cat = "??";
    }
  } else {
    if ($cat ne "Phone") {next;}
    my @lijn = split(/ = /);

    if ( $lijn[0] =~ m/.*Location.*/ ) {
      $id = $lijn[1];
    } else {

      if ($type) {
        $data{$id}{$type} = $lijn[1];
        $type = "";
      } elsif ($lijn[1]) {
        $type = $lijn[1];
        $dataTypes{$lijn[1]} = $lijn[1];
      }
    }
  }
}

close (MYFILE); 

if ($codes) {
  print "Codes: \n";
  foreach my $tkey (keys %dataTypes) {
    print $tkey . " ";
  }
  print "\n\n\n";
}


if ($raw) {
  foreach my $key (keys %data) {
    print $key;
    foreach my $tkey (keys %dataTypes) {
      print $tkey . " " . $data{$key}{$tkey} . "\n";
    }
  }
}


if ($parse) {
  # print the first line containing the col titles 
  print "Name,Given Name,Additional Name,Family Name,Yomi Name,Given Name Yomi,Additional Name Yomi,Family Name Yomi,Name Prefix,Name Suffix,Initials,Nickname,Short Name,Maiden Name,Birthday,Gender,Location,Billing Information,Directory Server,Mileage,Occupation,Hobby,Sensitivity,Priority,Subject,Notes,Group Membership,E-mail 1 - Type,E-mail 1 - Value,E-mail 2 - Type,E-mail 2 - Value,E-mail 3 - Type,E-mail 3 - Value,E-mail 4 - Type,E-mail 4 - Value,Phone 1 - Type,Phone 1 - Value,Phone 2 - Type,Phone 2 - Value,Phone 3 - Type,Phone 3 - Value,Phone 4 - Type,Phone 4 - Value,Address 1 - Type,Address 1 - Formatted,Address 1 - Street,Address 1 - City,Address 1 - PO Box,Address 1 - Region,Address 1 - Postal Code,Address 1 - Country,Address 1 - Extended Address\n";

  # Parse data
  # Tinker here if all your data isnt in the .csv output
  foreach my $key (keys %data) {
    print "".
      $data{$key}{Name} . "," . #Name,
      $data{$key}{FirstName} . "," . #Given Name,
      "," . #Additional Name,
      $data{$key}{LastName} . "," . #Family Name,
      "," . #Yomi Name,
      "," . #Given Name Yomi,
      "," . #Additional Name Yomi,
      "," . #Family Name Yomi,
      "," . #Name Prefix,
      "," . #Name Suffix,
      "," . #Initials,
      "," . #Nickname,
      "," . #Short Name,
      "," . #Maiden Name,
      "," . #Birthday,
      "," . #Gender,
      "," . #Location,
      "," . #Billing Information,
      "," . #Directory Server,
      "," . #Mileage,
      $data{$key}{Company} . "," . #Occupation,
      "," . #Hobby,
      "," . #Sensitivity,
      "," . #Priority,
      "," . #Subject,
      $data{$key}{Custom1} ;
    print " - " if ($data{$key}{Custom1} && $data{$key}{Note});
    print $data{$key}{Note} . "," . #Notes,
      "," ; #Group Membership,
    print "* " if ($data{$key}{Email});
    print "," . #E-mail 1 - Type,
      $data{$key}{Email} . "," . #E-mail 1 - Value,
      "," . #E-mail 2 - Type,
      "," . #E-mail 2 - Value,
      "," . #E-mail 3 - Type,
      "," . #E-mail 3 - Value,
      "," . #E-mail 4 - Type,
      "," ; #E-mail 4 - Value,
    print "Other" if ($data{$key}{NumberGeneral});
    print "," . #Phone 1 - Type,
      $data{$key}{NumberGeneral} . "," ; #Phone 1 - Value,
    print "Home" if ($data{$key}{NumberHome});
    print "," . #Phone 2 - Type,
      $data{$key}{NumberHome} . "," ; #Phone 2 - Value,
    print "Work" if ($data{$key}{NumberWork});
    print "," . #Phone 3 - Type,
      $data{$key}{NumberWork} . "," ; #Phone 3 - Value,
    print "Mobile" if ($data{$key}{NumberMobile});
    print "," . #Phone 4 - Type,
      $data{$key}{NumberMobile} . "," ; #Phone 4 - Value,
    print "Home" if ($data{$key}{Address});
    print "," . #Address 1 - Type,
      $data{$key}{Address} . "," . #Address 1 - Formatted,
      $data{$key}{Address} . "," . #Address 1 - Street,
      $data{$key}{City} . "," . #Address 1 - City,
      "," . #Address 1 - PO Box,
      "," . #Address 1 - Region,
      $data{$key}{Postal} . "," . #Address 1 - Postal Code,
      $data{$key}{Country} . "," . #Address 1 - Country,
      "," . #Address 1 - Extended Address
      "\n";
  }
}

Az eredeti file készítőjének blogja (angol): http://blog.cone.be/2010/01/06/convert-a-wammu-backup-file-to-a-csv/

A kimenetét mentsük fileba: perl wammu2csv.pl mentes.backup > szamok.csv

A csv file a http://google.com/contacts oldalon importálható!

Források:

http://blog.cone.be/2010/01/06/convert-a-wammu-backup-file-to-a-csv/ http://wammu.eu/phones/nokia/238/

II. Alternatív megoldás, ha a wammuval nem működne

Sajnos sok esetben előfordul, hogy a wammu által letöltött telefonkönyvben, ill. a belőle készített csv-ben néhány hiba van. Ez legtöbbször nem okoz nagy gondot, pár névjegy javítással megússzuk, ám ha sok hiba van, akkor már célszerűbb lehet más megoldás után nézni. Ilyen esetekben kihasználhatjuk az android tömeges névjegy importálási képességét. (Ez a képesség különösen jól jön a symbian alapú készülékeknél, amelyek tudnak a telefonon backupot készíteni a telefonkönyvről akár az SD kártyára is.)

Ehhez tehát először is a névjegyekhez kell hozzájutnunk vcard formátumban, erre sajnos a wammu nem jó, bár elvben tud vcard exportot, azonban a kapott file egy db vcardban tartalmazza az összes névjegyet, ami kezelhetetlen. sajnos ilyen esetekben szükségünk lesz egy windowsra, legalább egy virtualboxban futóra (virtualboxon kell a működő usb támogatás!), illetve nokia készülékeknél kell az OviSuite (PCSuite) program, valamint vagy kell még egy kártyaolvasó, vagy az androidos telefonunkat kell tudnunk elérni adatcserére - ez nem okozhat problémát. Az OviSuite (PCSuite) program segítségével mentsük le a telefonról a telefonkönyvet vcard-ként egy mappába a gépünkre, majd ha ez megvan, másoljuk fel telefonunk SD kártyájára. Ha kész, akkor már csak be kell importálnunk a Contacts alkalmazással őket.

A leírt módszert kicsit bonyolítja, ha Android 2.0 vagy korábbi verziójú a készülék software-je, ebben az esetben keresni kell egy megfelelő alkalmazást (pl: http://www.dusystems.com/importContacts.html) amellyel ez elvégezhető, mert a korábbi verziójú Contacts még nem tud SD-kártyáról importálni.

Sikeres importálás után a készülékünkről a megfelelő szinkronizálási beállítások (a telefon legyen esetünkben a szinkronizálás forrása), valamint a google account-unk megadása után adataink már szálnak is fel a felhőbe :-).