2010-12-13 20 views
11

¿Alguien puede darme algunos enlaces/tutoriales para usar el archivo SQLite que está almacenado en una tarjeta SD? No implementando el OpenHandler.Android: use la base de datos SQLite en la tarjeta SD (no use la tienda de datos Android interna)

TARJETA

/SD // info.db

Quiero utilizar un archivo de base de datos SQLite externo (no usar Android almacén de datos interna) porque quiero actualizar con frecuencia el archivo de base de datos para proporcionar más información actualizada sobre info.db.

Gracias.

Respuesta

18

¿Has probado a usar SQLiteDatabase.openOrCreateDatabase(String, SQLiteDatabase.CursorFactory)? Simplemente puede pasar "/sdcard/info.db" como el primero y null como el segundo parámetro.

+4

buen consejo, pero no debe mencionar que, al menos de pasada, lo que sucederá cuando la aplicación no puede cargar la base de datos porque no hay instalada ninguna tarjeta SD? - Entre las otras cosas de 2M que irán mal :) – KevinDTimm

+0

Gracias. Tengo que intentarlo. – rvpals

+2

¡Oh, buen punto! Me olvidé por completo de mencionar que la tarjeta SD podría no estar disponible. Es perfecto que lo hayas notado porque mi proyecto actual también necesita almacenar datos en una base de datos SQLite en la tarjeta SD (si está disponible). – mreichelt

9

Le recomendaría que NO coloque la base de datos en la tarjeta SD debido a problemas de seguridad (todos los que tengan acceso físico al dispositivo y la tarjeta SD, incluidas todas las aplicaciones que se ejecutan en el dispositivo, también tendrán más o menos derechos de acceso completo al archivo de la base de datos) pero también debido a problemas de hardware (una tarjeta SD tiene una vida útil limitada a partir del número total de operaciones de escritura que se pueden realizar en ella). También se discuten

Estas preguntas aquí: SQLite database on SD card

+0

¿Es posible cifrar/descifrar el db en la tarjeta sd? Dado que la fecha debe estar protegida de otras aplicaciones. –

+1

Debe ser posible (técnicamente) ya que una base de datos SQLite es una base de datos de archivos. Dependiendo de la implementación, podría afectar el rendimiento (por ejemplo, si por algún motivo necesita descifrar la base de datos para cada operación de lectura). – dbm

+2

esto es lo que estoy usando https://github.com/sqlcipher/android-database-sqlcipher – Dori

Cuestiones relacionadas