Transferir mensajes a Android desde un sqlite db en mi computadora portátil

Soy un nuevo usuario de Android. Me cambié de nokia a android solo hoy. He estado buscando en Google varias soluciones para transferir mis sms (solo mensajes de texto) de mi viejo nokia a mi nuevo Android (Galaxy Ace con Android 2.3).

Después de explorar mi computadora portátil, encontré que los sms sincronizados (usando Nokia PC Suite) estaban almacenados en AppData como un archivo sqlite.

¿Puedo transferir todo esto a mi nuevo Android? ¿Alguna aplicación para esto?

Respuestas (2)

Bueno, resolví el problema. Documentando la solución aquí para futuras referencias.

Usando cualquier administrador de sqlite (utilicé el complemento de Firefox, SQlite Manager), exporte la base de datos a formato XML (generalmente cualquier administrador de db tiene opciones para exportar la base de datos en formatos csv, xls y xml).

Si su sqlite fue generado por nokia pc-suite sync, obtendría un xml como:

<?xml version="1.0" encoding="utf-8"?>
<!--
- sqlite-manager XML Dump
- version 0.7.1
- http://sqlite-manager.googlecode.com
-
- Generation Time: Sun, 08 Jul 2012 14:12:42 GMT
- SQLite version: 3.7.10
-->

<!-- Database: msg_db.sqlite -->
<sm_xml_export version="2.0">
  <database name="msg_db.sqlite">
    <table name="messages">
      <column name="msg_txt" type="3">Your message body</column>
      <column name="msg_address" type="3">+919203487229</column>
      <column name="msg_folder" type="1">1</column>
      <column name="msg_time" type="1">1305483332</column>
      <column name="msg_imei" type="3">355940045825435</column>
      <column name="msg_status" type="1">36</column>
      <column name="msg_uid" type="3">{c33eb602-1456-4542-a755-268dc3728638}</column>
      <column name="msg_address_substr" type="3">4487229</column>
      <column name="msg_subject" type="3"/>
      <column name="msg_attachments" type="3"/>
      <column name="msg_type" type="1">0</column>
      <column name="msg_binary_path" type="3"/>
      <column name="msg_attachment_tns" type="3"/>
      <column name="msg_sent_frompc" type="1">0</column>
    </table>
    <table name="messages">
      <column name="msg_txt" type="3">Hi gopi, how are you? ;)</column>
      <column name="msg_address" type="3">+919582821300</column>
      <column name="msg_folder" type="1">1</column>
      <column name="msg_time" type="1">1305516490</column>
      <column name="msg_imei" type="3">355940045825435</column>
      <column name="msg_status" type="1">36</column>
      <column name="msg_uid" type="3">{15a0d257-2318-4baa-b764-dd14c1aa1fb5}</column>
      <column name="msg_address_substr" type="3">2821300</column>
      <column name="msg_subject" type="3"/>
      <column name="msg_attachments" type="3"/>
      <column name="msg_type" type="1">0</column>
      <column name="msg_binary_path" type="3"/>
      <column name="msg_attachment_tns" type="3"/>
      <column name="msg_sent_frompc" type="1">0</column>
    </table>
  </database>
</smses>

Luego, puede usar el siguiente script php para realizar la conversión y generar el script de formato xml requerido por la aplicación SMS Backup and Restore .

<?php

$file=fopen("sms-20120708160401.xml", "w");
$xml=simplexml_load_file("messages.xml");
echo $xml->getName()."<br/><br/>";
$begin="<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>\n";
$begin.='<?xml-stylesheet type="text/xsl" href="sms.xsl"?>'."\n";
$begin.='<smses count="">'."\n";
fwrite($file,$begin);
$start='  <sms protocol="0" ';
$finish='/>';
$i=1;
$j=0;

foreach($xml->children()->children() as $table) {
    echo $i++."  ";
    $read=1;
    $msg_status=$table->column[5];
    $msg_folder=$table->column[2];
    if($msg_status=="34") {
        $type=1;
        $read=0;
    }
    else if($msg_status=="36") {
        if($msg_folder=="4294967295") {
            $type=3;
        }
        else {
            $type=1;
        }
    }
    else if($msg_status=="1" || $msg_status=="5") {
        if($msg_folder=="4294967295") {
            $type=3;
        }
        else {
            $type=2;
        }
    }
    else {
        echo "<br/>".$msg_status."; ".$msg_folder."<br/><br/>";
    }
    $body=htmlspecialchars($table->column[0]);
    $body=str_replace("\n", '&#10;', $body);
    $address=$table->column[1];
    if(strlen($address)==11) {
        $address="+91".substr($address,1);
    }
    else if(strlen($address)==10) {
        $address="+91".$address;
    }
    else if($address=="") {
        $i--;
        continue;
    }

    $sms=$start;
    $sms.='address="'.$address.'" ';
    $sms.='date="'.$table->column[3].'000" ';
    $sms.='type="'.$type.'" ';
    $sms.='subject="null" ';
    $sms.='body="'.$body.'" ';
    $sms.='toa="null" ';
    $sms.='sc_toa="null" ';
    $sms.='service_center="null" ';
    $sms.='read="'.$read.'" ';
    $sms.='status="-1" ';
    $sms.='locked="0" ';
    $sms.='date_sent="null" ';
    $sms.=$finish."\n";

    fwrite($file, $sms);
}

$end='</smses>';
fwrite($file, $end);
fclose($file);

?>

Un punto a tener en cuenta:

Tienes que escribir manualmente el countatributo en la smsesetiqueta. Simplemente verifique la cantidad de líneas en su archivo xml generado y reste 4 de él O simplemente escriba el último entero repetido por el script

Ahora solo envíe esto a su Android y restáurelo usando la aplicación SMS Backup & Restore . ¡Bingo! ¡estás listo!

No es tan simple como copiar la base de datos SQLite a su nuevo dispositivo Android, ya que las estructuras internas serán diferentes (incluso entre versiones de Android). Hay muchas aplicaciones en Play Store para hacer una copia de seguridad/restaurar sus SMS en Android, utilizando llamadas API definidas para extraer/restaurar mensajes desde/hacia su dispositivo Android. Pero desafortunadamente no vi ninguno capaz de convertir desde otros formatos. Como algunos de ellos almacenan la copia de seguridad de SMS en formato XML, es posible que pueda producir manualmente dicho archivo XML para importar (aunque creo que es una sobrecarga).

está bien. Entonces, ¿alguna otra forma de transferir mis mensajes de nokia a android?
Algunos dispositivos vienen con un "asistente de migración". No estoy seguro acerca de Ace, y no estoy seguro de cómo se llama en el cajón de la aplicación... Es posible que desee echar un vistazo a la herramienta de migración de SBP que pretende migrar contactos, sms y marcadores de dispositivos Windows Mobile y Symbian a Android.
gracias de todos modos. Supongo que tendré que generar un xml desde el sqlite..