Categoría: Programación

ago
17

Sacar las imágenes de una base de datos SQLite que están en campos blob

Hace poco tuve que sacar de una base de datos en SQLite las imágenes que estaban puestas como campos blob. En un rato tenía hecho un script en Python que llevaba tiempo pensando en compartir por aquí y hoy me he decidido por fin a publicarlo.

No es nada del otro mundo, como veis en menos de 20 líneas está todo hecho, eso es una de las maravillas que tiene Python, "en pocas líneas hace grandes cosas".

En la base de datos la columna "0" era el identificador y en la columna "3" era el campo blob.

  1. from pysqlite2 import dbapi2 as sqlite
  2.  
  3. try:
  4. from sqlite import encode, decode
  5. except ImportError:
  6. import base64
  7. sqlite.encode = base64.encodestring
  8. sqlite.decode = base64.decodestring
  9. else:
  10. sqlite.encode = encode
  11. sqlite.decode = decode
  12.  
  13. con = sqlite.connect("basededatos.db")
  14. cursor = con.cursor()
  15.  
  16. cursor.execute('SELECT * FROM Tabla')
  17. for row in cursor:
  18. if not row[3] == "":
  19. binfile = open('image'+str(row[0])+'.jpg', 'wb')
  20. binfile.write(row[3])
  21.  
  22. con.close()
  23.  
ago
04

Como descargar la base de datos de tu aplicación Android

Esto sólo funciona en el caso que estemos trabajando en el emulador y supongo que en los teléfonos Android que tengan acceso a root también.

La idea es poder descargarnos la base de datos SQLite de nuestra aplicación para hacer un backup o comprobar que se están guardando los datos correctamente. Una vez descargada os recomiendo usar SQLiteBrowser para ver los datos.

Simplemente una vez lanzado el emulador desde Eclipse nos vamos a la perspectiva DMMS de Android y seleccionamos la pestaña "File Explorer". Allí podremos acceder a la estructura de directorios de nuestro teléfono (emulador en nuestro caso) y navegamos al directorio "/data/data" (no me he equivocado es el directorio "data" que se encuentra en "data" ;-)).

Al abrir ese directorio veremos muchas carpetas con el nombre de los paquetes de los programas que tenemos instalados en nuestro emulador, abrimos el de nuestro programa (por ejemplo en el caso de AndAndo es "com.javielinux.andando") y si nuestra aplicación usa alguna base de datos deberá tener un directorio llamado "databases". Ábrelo y verás la base datos (si usas Android DataFramework será el nombre que le pusiste en el tables.xml).

Para descargarlo lo seleccionas y pulsas en el botón que hay arriba a la derecha que se llama "Pull a file from the device". Ya puedes ver tus datos en SQLiteBrowser.

jun
22

El código de App to QR ahora en Google Code

Tenía pendiente desde hace tiempo subir el código fuente de App to QR que hace dos versiones que no lo hago y esta mañana me he levantando diciendo que de hoy no pasa.

En lugar de colgarlo en la web como hasta ahora lo he puesto en Google Code, que siempre queda mejor.

Así que si quieres descargar el código fuente de esta aplicación lo pueden hacer en la página de App to QR en Google Code.

mar
31

Leer información de contactos en Android 2.0 o superior

Hace ya tiempo que no publicaba ningún ejemplo de Android y ya tocaba. Esta semana he estado haciendo pruebas para un programa que tengo entre manos y necesitaba leer la información de los contactos de Android. El problema es que en la versión 2.0 han cambiado completamente la forma de acceder a la información de contactos y cada vez que buscas en Google encuentras mucho código de como se hacía antes. Como nadie me había dicho que había cambiado la forma de hacerse, tardé más de lo normal en encontrar la solución.

Después de algunas pruebas ya pude hacerlo y como siempre os dejo el programa en la sección de Android, por si a alguno os interesa.

El programa es muy sencillo y feo, lo único que hace es mostrarte los contactos que tengas marcados como favoritos en el teléfono y al pulsar en él te muestra toda la información de este: teléfonos, correos electrónicos, webs, notas y dirección postal.

Os dejo una captura:

Espero os sirva de ayuda.

jun
01

Trabajar con Servicios en Android

Después de algunas conversaciones en el foro de Android-Spa, finalmente he podido hacer una prueba para trabajar con Servicios en Android.

Estos días estoy teniendo muchos problemas con la adaptación de AndAndo a la versión 1.5 de Android y finalmente he tenido que usar Servicios para el trabajo con el GPS.

En la página donde dejo mis aportaciones de Android, está el código fuente y una pequeña explicación.

Categorías Android Programación
ene
26

Accediendo a Twitter desde PHP

Twitter

Esto de Twitter realmente es un vicio. Creo que a todos nos pasa más o menos igual. Una vez lo conoces piensas que es una tontería, pero cuando empiezas a usarlo empiezas a picarte. Últimamente con mi nuevo móvil y mi tarifa de datos que me hace estar online el 100% del día, veo cada vez más interesante esto de mostrar lo que haces en cada momento.

Hoy me he animado y he puesto en la barra de la derecha el último mensaje enviado a Twitter y para ello he tenido que buscar un cliente en PHP. He usado este creado por Arc90 que es muy sencillo y te muestra toda la información que necesitas.

El cliente PHP sólo lo uso para que me devuelve un XML con el contenido de Twitter, luego uso DOMDocument para acceder a la información.

El código para poder acceder al último mensaje enviado sería este:

require_once('lib/Twitter.php');

$twitter = new Arc90_Service_Twitter('usuario', 'clave');

try
{ 
    $response = $twitter->getUserTimeline('xml');

    $doc = new DOMDocument();
    $doc->loadXML( $response->getData() );

    $texts = $doc->getElementsByTagName( "text" );
    echo $texts->item(0)->nodeValue;

    if($response->isError())
    {
        echo $response->http_code . "\n";
    }
}
catch(Arc90_Service_Twitter_Exception $e)
{
    print $e->getMessage();
}

Tienes toda la documentación necesaria en la web del proyecto y si quieres puedes seguirme en mi Twitter.